@qwen-code/qwen-code 0.21.0 → 0.21.1-simplify-system-prompt.0
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/chunks/{MaxSizedBox-5DPPWPGT.js → MaxSizedBox-INHRH72H.js} +11 -10
- package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-O6RKBPU4.js} +25 -24
- package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-HYFVXVDR.js} +119 -74
- package/chunks/{agent-6ODUANDO.js → agent-VXDAN5JK.js} +10 -9
- package/chunks/{agent-headless-7BYQTMHW.js → agent-headless-K4ZMMNBD.js} +10 -9
- package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-LXUXMOE7.js} +20 -9
- package/chunks/{bridge-ZUB64FAE.js → bridge-LGPZCFHO.js} +14 -13
- package/chunks/channel-management-service-G74LFADV.js +403 -0
- package/chunks/channel-settings-store-CHCDRTPY.js +89 -0
- package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-PTJIJSKC.js} +6 -5
- package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-WIMGM2FD.js} +6 -5
- package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-KUFTR6P5.js} +5 -4
- package/chunks/{chunk-OFDOK3VM.js → chunk-2JM6GZ5D.js} +3 -3
- package/chunks/{chunk-H4SBPHSA.js → chunk-2OM7GEXO.js} +1 -1
- package/chunks/{chunk-TGILQ3YH.js → chunk-2Q3OT4OV.js} +7 -7
- package/chunks/{chunk-PC6JANNU.js → chunk-2YZJCM5T.js} +4 -4
- package/chunks/{chunk-QAF7NMK7.js → chunk-32MVHM4T.js} +1 -1
- package/chunks/{chunk-K36B6G2O.js → chunk-3HBZKBMQ.js} +3 -3
- package/chunks/{chunk-GSN55ZRI.js → chunk-3IXOIAKE.js} +4 -4
- package/chunks/{chunk-IJTOWOD7.js → chunk-3JAQDSXN.js} +12 -0
- package/chunks/{chunk-UDX5OBWR.js → chunk-3MSHSCSN.js} +2 -2
- package/chunks/{chunk-ZFDTEDCF.js → chunk-4M377AZG.js} +3 -3
- package/chunks/{chunk-U7M2DMGW.js → chunk-52O2CIUL.js} +2 -2
- package/chunks/{chunk-R5AFZNQW.js → chunk-5THCYPLO.js} +3 -3
- package/chunks/{chunk-7MVVZO4N.js → chunk-5U4IPFBR.js} +4 -4
- package/chunks/{chunk-KIM5GUMA.js → chunk-66RMLJHC.js} +21 -21
- package/chunks/{chunk-FSITMZJH.js → chunk-6PSLCFQ2.js} +5 -5
- package/chunks/{chunk-ACY3A37B.js → chunk-7FZEBPKS.js} +3 -3
- package/chunks/{chunk-7JURR4JT.js → chunk-A6UO2C7C.js} +1 -1
- package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
- package/chunks/{chunk-PWVFN2LF.js → chunk-B4UMZKMU.js} +1 -1
- package/chunks/{chunk-SQCQ4KO2.js → chunk-B6ZJ7SI6.js} +14 -14
- package/chunks/{chunk-YPE6A4GC.js → chunk-B7QDM6Z7.js} +1 -1
- package/chunks/{chunk-NIBLUX3Y.js → chunk-BO4XCS7P.js} +195 -3
- package/chunks/{chunk-WCXCRJYB.js → chunk-BRRAJXPA.js} +1 -1
- package/chunks/{chunk-TPRQ7RZH.js → chunk-BYFNTGKI.js} +37 -35
- package/chunks/{chunk-Y34KJKDC.js → chunk-C3NS4F2Q.js} +1 -1
- package/chunks/{chunk-Q4M4MDQ4.js → chunk-CC4N4M36.js} +1 -1
- package/chunks/{chunk-EBJQ6AXW.js → chunk-DM22XS4K.js} +5 -5
- package/chunks/{chunk-PHOF65IG.js → chunk-DM4Q4JJH.js} +1059 -722
- package/chunks/{chunk-JXJFVC6E.js → chunk-DN6ZX5AY.js} +3 -3
- package/chunks/{chunk-J24WCGIN.js → chunk-E5WH5O3C.js} +4 -4
- package/chunks/{chunk-4WIZGAH3.js → chunk-ER5LWJR6.js} +5 -57
- package/chunks/chunk-FY3M44RD.js +463 -0
- package/chunks/{chunk-IO3IX5Q4.js → chunk-G4WFQUYQ.js} +1 -1
- package/chunks/{chunk-VULLI6WQ.js → chunk-GDIPH4JY.js} +3 -3
- package/chunks/chunk-HV3G62R6.js +76 -0
- package/chunks/{chunk-YX324OPW.js → chunk-I7XZ3RY5.js} +1 -1
- package/chunks/{chunk-BULDBTYC.js → chunk-INADJJGW.js} +1 -26
- package/chunks/{chunk-RIBKPMRP.js → chunk-J6D3VXCC.js} +3 -3
- package/chunks/{chunk-TEHGS6UP.js → chunk-JALU3ZDU.js} +6 -6
- package/chunks/{chunk-YBL3QUDD.js → chunk-KIUFNBHR.js} +1 -1
- package/chunks/{chunk-VIA5XA4U.js → chunk-KU5XMLDK.js} +1 -1
- package/chunks/{chunk-KMQ33DO4.js → chunk-LG4GZIVV.js} +3 -3
- package/chunks/{chunk-ZNAUOR2I.js → chunk-LNARWLZQ.js} +1 -1
- package/chunks/{chunk-LQIW3YFY.js → chunk-LNURQEMZ.js} +4 -4
- package/chunks/{chunk-VRYUBFMC.js → chunk-LZEMEFKY.js} +1 -1
- package/chunks/{chunk-LB6DUZ26.js → chunk-M4UKFCZ2.js} +65 -46
- package/chunks/chunk-MK7VQDN3.js +79 -0
- package/chunks/{chunk-RWTEFFPU.js → chunk-ML52PL6O.js} +211 -209
- package/chunks/{chunk-RF3EXIHJ.js → chunk-MSLKI6C2.js} +12 -12
- package/chunks/{chunk-X5XDDSSH.js → chunk-MVS3NS2N.js} +1 -1
- package/chunks/{chunk-5NBDS5S6.js → chunk-N3FAY5CM.js} +7 -5
- package/chunks/{chunk-55DJUCI2.js → chunk-OJGCZBB7.js} +14 -9
- package/chunks/{chunk-BKHWX6I2.js → chunk-P5V4T7NK.js} +3 -3
- package/chunks/{chunk-LH2BYDQ5.js → chunk-PANH4R3B.js} +1 -1
- package/chunks/{chunk-RZIX2G32.js → chunk-PHVR5UUY.js} +1 -1
- package/chunks/{chunk-MZAXJAUM.js → chunk-PSWQZHEA.js} +1 -1
- package/chunks/{chunk-3RN6GBKS.js → chunk-QPDRAXDJ.js} +1 -1
- package/chunks/{chunk-2X55UKQE.js → chunk-QY5MMZ6O.js} +2 -2
- package/chunks/{chunk-CIKQ7KKO.js → chunk-RWS5VYWC.js} +14 -8
- package/chunks/{chunk-MVSUYZDT.js → chunk-SASBXAQL.js} +3 -3
- package/chunks/chunk-SQBYH7PX.js +1252 -0
- package/chunks/{chunk-MB4MZHMJ.js → chunk-SRZ6DXVG.js} +170 -389
- package/chunks/chunk-TF2X2WCT.js +363 -0
- package/chunks/{chunk-2SCDWPXI.js → chunk-TQCBGUHN.js} +2 -2
- package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
- package/chunks/{chunk-IKCX4CCL.js → chunk-U7TXFVUN.js} +6 -6
- package/chunks/{chunk-2NH6DYI4.js → chunk-V6VRAM7B.js} +10 -10
- package/chunks/{chunk-Z2BC6UJ5.js → chunk-VCBZUOSI.js} +1 -1
- package/chunks/{chunk-IKYJHJNF.js → chunk-VFSJ5VRH.js} +2 -2
- package/chunks/{chunk-LKEJ26GS.js → chunk-VV6XU5L7.js} +1 -1
- package/chunks/{chunk-7ZCNENPP.js → chunk-W4CQXHT6.js} +1 -1
- package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
- package/chunks/{chunk-ETSW4KLJ.js → chunk-WDSWXQU3.js} +1 -1
- package/chunks/{chunk-PSOO6YXD.js → chunk-XHRTVPG2.js} +8 -6
- package/chunks/{chunk-ZJHVAS7M.js → chunk-YAF5VNU7.js} +1 -1
- package/chunks/{chunk-JVPM2ULZ.js → chunk-Z5BLYMZM.js} +4 -4
- package/chunks/{chunk-M4FMGVY4.js → chunk-ZE5WPL4I.js} +2 -2
- package/chunks/{computer-use-SOQ4E3VX.js → computer-use-DOFAHZAB.js} +10 -9
- package/chunks/{config-utils-7V7GGIW6.js → config-utils-VFQXVGNR.js} +4 -3
- package/chunks/{contextCommand-JLHYA34Z.js → contextCommand-QIZYHDR5.js} +12 -11
- package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-7543K2QA.js} +10 -9
- package/chunks/{daemon-YO6433NF.js → daemon-VOMQW7KZ.js} +189 -0
- package/chunks/{daemon-status-provider-2233Q37D.js → daemon-status-provider-OS5UWBHV.js} +18 -17
- package/chunks/{dist-WEAHOXDM.js → dist-ANLAT3GS.js} +1 -1
- package/chunks/{dist-BBLXMS3N.js → dist-BRB6EXK4.js} +1 -1
- package/chunks/{dist-YFNEUWSE.js → dist-K6Y4E7FX.js} +1 -1
- package/chunks/{dist-F6IBUDR4.js → dist-KTYYJ2C5.js} +1 -1
- package/chunks/{dist-46NQKLTW.js → dist-NNVBBOGU.js} +2 -2
- package/chunks/{dist-AIKFMUKK.js → dist-RTJFMNEZ.js} +1 -1
- package/chunks/{earlyInputCapture-A7NDU3PF.js → earlyInputCapture-WQT24RWD.js} +10 -9
- package/chunks/{edit-OBDSQURM.js → edit-RIEOJWKB.js} +10 -9
- package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-OGK5FQ3R.js} +10 -9
- package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-IWZYALIB.js} +10 -9
- package/chunks/{environment-W5UFC2CH.js → environment-VZ7BRI4Q.js} +12 -11
- package/chunks/{errors-M7CLORXH.js → errors-PCX25DVP.js} +12 -11
- package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-4TEYVIVP.js} +10 -9
- package/chunks/{exitPlanMode-GXTBWQAR.js → exitPlanMode-GHPUHBZJ.js} +38 -18
- package/chunks/{fast-path-JJZFJANL.js → fast-path-HYE7IFEV.js} +5 -5
- package/chunks/{gemini-QS36EBZV.js → gemini-NGRQX3YJ.js} +54 -51
- package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-FQHPFZSR.js} +36 -7
- package/chunks/{glob-V7R3PSK3.js → glob-FRTM3X2E.js} +10 -9
- package/chunks/{grep-QYPSK7OP.js → grep-RKWVROCW.js} +10 -9
- package/chunks/{handleAutoUpdate-6DBEZYPV.js → handleAutoUpdate-2CZQRJ66.js} +14 -13
- package/chunks/{i18n-VUJJZIMU.js → i18n-XEQVMRKN.js} +11 -10
- package/chunks/{image-gen-Z3VPGKRC.js → image-gen-WIEM7KZA.js} +1 -1
- package/chunks/{initializer-UWAK5U5O.js → initializer-OVGZ4FLY.js} +15 -14
- package/chunks/{installationInfo-6O2YAA52.js → installationInfo-5UUQJI6Y.js} +11 -10
- package/chunks/{list-GB4ESM3T.js → list-HODU6RXD.js} +18 -17
- package/chunks/{loadedSettingsAdapter-OT6JVQ7U.js → loadedSettingsAdapter-TYNLBALY.js} +15 -14
- package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-WGM27QAW.js} +55 -91
- package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-JQ2CG3RH.js} +11 -10
- package/chunks/{mcp-6DBDJPFU.js → mcp-J3DFWX4A.js} +15 -14
- package/chunks/{monitor-R3ODH5U6.js → monitor-7FEWXX5F.js} +10 -9
- package/chunks/{nonInteractiveCli-MOYCYBBU.js → nonInteractiveCli-F4GYSMHT.js} +50 -47
- package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-JGJV2K6J.js} +10 -9
- package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-JPVXDTAO.js} +8 -7
- package/chunks/{pidfile-TFRZZZIO.js → pidfile-4VNAR3EP.js} +10 -9
- package/chunks/{processUtils-RT7UNCC2.js → processUtils-V2LCK6T6.js} +2 -2
- package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-TICV2W2Z.js} +12 -11
- package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-XGFI5XJG.js} +1 -1
- package/chunks/{read-file-APMO3PSX.js → read-file-LZXUR4TO.js} +5 -5
- package/chunks/{resumeHistoryUtils-6KRYEAWZ.js → resumeHistoryUtils-65OX3SGJ.js} +14 -13
- package/chunks/{ripGrep-BEJDEDXW.js → ripGrep-2U2FRGMV.js} +10 -9
- package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-3VCV4I7E.js} +69 -33
- package/chunks/{runtime-XXRRTNP6.js → runtime-AXJWIEDU.js} +20 -18
- package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-RS2I6RU5.js} +10 -9
- package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-FS6ZV7MF.js} +2 -2
- package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-7FZSCSXB.js} +6 -6
- package/chunks/{serve-7BSTXJ4T.js → serve-W2GC47CM.js} +16 -15
- package/chunks/{server-4UMH7OIZ.js → server-HRZ23U7M.js} +499 -93
- package/chunks/{session-K3O3Q2SV.js → session-7XHZKTVV.js} +51 -48
- package/chunks/{settings-CR2EWTBA.js → settings-7ZGZDXAS.js} +14 -13
- package/chunks/{shell-HH3PF3A2.js → shell-45IPBDP5.js} +10 -9
- package/chunks/{skill-I3SDA4MB.js → skill-LIWXNLDW.js} +7 -6
- package/chunks/{spawnChannel-RWNDBXGA.js → spawnChannel-PVXQ5AGV.js} +12 -11
- package/chunks/{src-GE4TTTML.js → src-AY65BYR7.js} +36 -17
- package/chunks/{standalone-update-Q6WFRZZQ.js → standalone-update-ZMFNKAEY.js} +12 -11
- package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-IW3CSKHA.js} +87 -88
- package/chunks/{team-create-YJALH5D2.js → team-create-O2FROQ4R.js} +10 -9
- package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-Q6WDBXTQ.js} +10 -9
- package/chunks/{theme-manager-SWRILQHI.js → theme-manager-YYPZFBAH.js} +10 -9
- package/chunks/{tool-search-NF7GB6LE.js → tool-search-APECNQ3Z.js} +5 -5
- package/chunks/{total-session-admission-DLHHHLD3.js → total-session-admission-JXES723M.js} +14 -13
- package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-FS4VPMZA.js} +1 -1
- package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-6B46JJCV.js} +1 -1
- package/chunks/{trustedFolders-KHXHY6PY.js → trustedFolders-HVI7IXUH.js} +11 -10
- package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-ON5MDJQG.js} +5 -5
- package/chunks/{updateCheck-RKL6M5XN.js → updateCheck-WUJGHWZZ.js} +13 -12
- package/chunks/{useAutoAcceptIndicator-CFQ5BUJL.js → useAutoAcceptIndicator-CHSTZLZD.js} +17 -16
- package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-JBLKBKRD.js} +47 -44
- package/chunks/{version-HS7YSFHV.js → version-LTNUBQJY.js} +1 -1
- package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-L5UTI53V.js} +5 -5
- package/chunks/{web-search-S62WAP4S.js → web-search-KM33JOS3.js} +2 -2
- package/chunks/{workflow-QAGU5RU4.js → workflow-K7FAWV77.js} +11 -10
- package/chunks/{workspace-providers-status-QSVZUETE.js → workspace-providers-status-GAKSF4LL.js} +18 -17
- package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-6TGVDJV5.js} +1 -1
- package/chunks/{workspace-registry-UT4RBNBM.js → workspace-registry-A7NQUONG.js} +14 -13
- package/chunks/{workspace-service-JFWRUS4V.js → workspace-service-STGVSO4N.js} +19 -18
- package/chunks/{workspace-skills-status-ZBBKJOI2.js → workspace-skills-status-66AK3DUA.js} +16 -15
- package/chunks/{write-file-VHIXW5M7.js → write-file-HUUCEG4P.js} +10 -9
- package/cli.js +12 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-DcbWnB9T.js → arc-BbHijhiN.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-Cb4B_JD0.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-Dsjlh3H-.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-Cp5AeR4U.js} +1 -1
- package/web-shell/assets/channel-Bzdx6E8P.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-CLcY7W2e.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-BUhvY2LR.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-kDIFC_71.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CIBO15f2.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-BJ_T_slV.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-BEkW35J8.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-GGPxofay.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-Bifllrb6.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cd6wbiuK.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cd6wbiuK.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-C-Add_Dp.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-B7MfwNq2.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-CY_0zuDz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-VyYSbCgA.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-CBiIZ2PL.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-BL3CrVOx.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-CZUPx96P.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-B81xHr1-.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-EZWhir-J.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-CVFSuIAg.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-C1H2uQDv.js} +1 -1
- package/web-shell/assets/{index-ckX9Pq5k.js → index-B2bXx96W.js} +273 -254
- package/web-shell/assets/{index-D0GX0zZf.js → index-BYo99NBH.js} +1 -1
- package/web-shell/assets/{index-D9haPt0X.css → index-_8mKjx8q.css} +1 -1
- package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-BwyFMlF8.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-CQ7Yhn2Y.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-CJn2sf0l.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-DaNRqwVN.js} +1 -1
- package/web-shell/assets/{linear-BkoihsaA.js → linear-DCKODZe2.js} +1 -1
- package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-CTGJOk27.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-BKU3_3rg.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-COcwBJ82.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-CQnQ443x.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-CZ2oj5cD.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-BxAv5mNu.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-CztaySPs.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-CTQT1oGD.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BjMdT6E_.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-K9Mkex5A.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-B2rVIw76.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-Z1w2JR4M.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-CIX9aKXf.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-CI9DLIKB.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-LEH5C7FV.js +0 -232
- package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
shouldSuppressRememberErrorDetails,
|
|
17
17
|
workspaceMemoryFailureCode,
|
|
18
18
|
workspaceMemoryFailureDiagnostics
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-J6D3VXCC.js";
|
|
20
20
|
import {
|
|
21
21
|
openQwenAsrRealtimeStream,
|
|
22
22
|
openVoiceStream,
|
|
@@ -33,66 +33,17 @@ import {
|
|
|
33
33
|
toJson,
|
|
34
34
|
toJsonl,
|
|
35
35
|
toMarkdown
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-DM22XS4K.js";
|
|
37
37
|
import {
|
|
38
38
|
OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
|
|
39
39
|
ObservedChannelContactStore
|
|
40
40
|
} from "./chunk-RHLZR4E5.js";
|
|
41
41
|
import "./chunk-IPUUTYMV.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-BRRAJXPA.js";
|
|
43
43
|
import "./chunk-2MIN6GRR.js";
|
|
44
44
|
import "./chunk-QHTIBUWB.js";
|
|
45
45
|
import "./chunk-QTERJVPZ.js";
|
|
46
46
|
import "./chunk-3Z43GZUQ.js";
|
|
47
|
-
import {
|
|
48
|
-
EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
|
|
49
|
-
MAX_WORKSPACE_SKILL_NAME_LENGTH,
|
|
50
|
-
WorkspaceSkillManagementError,
|
|
51
|
-
WorkspaceVoiceError,
|
|
52
|
-
buildWorkspaceVoiceSettingsWrites,
|
|
53
|
-
buildWorkspaceVoiceStatus,
|
|
54
|
-
createDaemonWorkspaceService,
|
|
55
|
-
hasConfiguredBatchVoiceTranscriptionModel,
|
|
56
|
-
transcribeWorkspaceVoiceAudio,
|
|
57
|
-
validateWorkspaceSkillName,
|
|
58
|
-
validateWorkspaceVoiceState,
|
|
59
|
-
voiceSettingsScopeToWire
|
|
60
|
-
} from "./chunk-TGILQ3YH.js";
|
|
61
|
-
import {
|
|
62
|
-
PermissionRulesValidationError,
|
|
63
|
-
buildPermissionSettings,
|
|
64
|
-
isPermissionRuleType,
|
|
65
|
-
normalizePermissionRules,
|
|
66
|
-
readPermissionRuleSet
|
|
67
|
-
} from "./chunk-VRYUBFMC.js";
|
|
68
|
-
import {
|
|
69
|
-
assertVoiceBaseUrlNetworkAllowed,
|
|
70
|
-
isStreamingVoiceModel,
|
|
71
|
-
resolveVoiceStreamConfig,
|
|
72
|
-
resolveVoiceTranscriptionConfig,
|
|
73
|
-
sanitizeVoiceErrorMessage,
|
|
74
|
-
transcribeVoiceAudio
|
|
75
|
-
} from "./chunk-H4SBPHSA.js";
|
|
76
|
-
import {
|
|
77
|
-
isVoiceEnabled,
|
|
78
|
-
isVoiceMode,
|
|
79
|
-
readVoiceModel
|
|
80
|
-
} from "./chunk-YBL3QUDD.js";
|
|
81
|
-
import "./chunk-ZD6UTE4A.js";
|
|
82
|
-
import {
|
|
83
|
-
WorkspacePermissionRulesSessionRequiredError,
|
|
84
|
-
WorkspaceSettingsPartialPersistError,
|
|
85
|
-
WorkspaceSkillNotFoundError,
|
|
86
|
-
WorkspaceSkillNotToggleableError
|
|
87
|
-
} from "./chunk-OA4JVLSA.js";
|
|
88
|
-
import {
|
|
89
|
-
createTotalSessionAdmissionController
|
|
90
|
-
} from "./chunk-VYPFXUCB.js";
|
|
91
|
-
import {
|
|
92
|
-
createSingleWorkspaceRegistry,
|
|
93
|
-
createWorkspaceSessionOwnerIndex
|
|
94
|
-
} from "./chunk-UGYMA4EI.js";
|
|
95
|
-
import "./chunk-GRC5HGPI.js";
|
|
96
47
|
import {
|
|
97
48
|
CAPABILITIES_SCHEMA_VERSION,
|
|
98
49
|
CLIENT_ID_HEADER,
|
|
@@ -150,33 +101,87 @@ import {
|
|
|
150
101
|
setRateLimiter,
|
|
151
102
|
unsafeRevealSecret,
|
|
152
103
|
validateMcpRuntimeServerName
|
|
153
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-3JAQDSXN.js";
|
|
154
105
|
import {
|
|
155
106
|
isLoopbackBind
|
|
156
107
|
} from "./chunk-RXFQM6FQ.js";
|
|
108
|
+
import {
|
|
109
|
+
EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
|
|
110
|
+
MAX_WORKSPACE_SKILL_NAME_LENGTH,
|
|
111
|
+
WorkspaceSkillManagementError,
|
|
112
|
+
WorkspaceVoiceError,
|
|
113
|
+
buildWorkspaceVoiceSettingsWrites,
|
|
114
|
+
buildWorkspaceVoiceStatus,
|
|
115
|
+
createDaemonWorkspaceService,
|
|
116
|
+
hasConfiguredBatchVoiceTranscriptionModel,
|
|
117
|
+
transcribeWorkspaceVoiceAudio,
|
|
118
|
+
validateWorkspaceSkillName,
|
|
119
|
+
validateWorkspaceVoiceState,
|
|
120
|
+
voiceSettingsScopeToWire
|
|
121
|
+
} from "./chunk-2Q3OT4OV.js";
|
|
122
|
+
import {
|
|
123
|
+
PermissionRulesValidationError,
|
|
124
|
+
buildPermissionSettings,
|
|
125
|
+
isPermissionRuleType,
|
|
126
|
+
normalizePermissionRules,
|
|
127
|
+
readPermissionRuleSet
|
|
128
|
+
} from "./chunk-LZEMEFKY.js";
|
|
129
|
+
import {
|
|
130
|
+
assertVoiceBaseUrlNetworkAllowed,
|
|
131
|
+
isStreamingVoiceModel,
|
|
132
|
+
resolveVoiceStreamConfig,
|
|
133
|
+
resolveVoiceTranscriptionConfig,
|
|
134
|
+
sanitizeVoiceErrorMessage,
|
|
135
|
+
transcribeVoiceAudio
|
|
136
|
+
} from "./chunk-2OM7GEXO.js";
|
|
137
|
+
import {
|
|
138
|
+
isVoiceEnabled,
|
|
139
|
+
isVoiceMode,
|
|
140
|
+
readVoiceModel
|
|
141
|
+
} from "./chunk-KIUFNBHR.js";
|
|
142
|
+
import "./chunk-ZD6UTE4A.js";
|
|
143
|
+
import {
|
|
144
|
+
WorkspacePermissionRulesSessionRequiredError,
|
|
145
|
+
WorkspaceSettingsPartialPersistError,
|
|
146
|
+
WorkspaceSkillNotFoundError,
|
|
147
|
+
WorkspaceSkillNotToggleableError
|
|
148
|
+
} from "./chunk-OA4JVLSA.js";
|
|
149
|
+
import {
|
|
150
|
+
createTotalSessionAdmissionController
|
|
151
|
+
} from "./chunk-VYPFXUCB.js";
|
|
152
|
+
import {
|
|
153
|
+
createSingleWorkspaceRegistry,
|
|
154
|
+
createWorkspaceSessionOwnerIndex
|
|
155
|
+
} from "./chunk-UGYMA4EI.js";
|
|
156
|
+
import "./chunk-GRC5HGPI.js";
|
|
157
|
+
import {
|
|
158
|
+
assertValidChannelSecretUpdates
|
|
159
|
+
} from "./chunk-TF2X2WCT.js";
|
|
157
160
|
import {
|
|
158
161
|
daemonObservedContactsPath,
|
|
159
162
|
loadChannelsConfig
|
|
160
|
-
} from "./chunk-
|
|
161
|
-
import "./chunk-
|
|
163
|
+
} from "./chunk-XHRTVPG2.js";
|
|
164
|
+
import "./chunk-2YZJCM5T.js";
|
|
162
165
|
import "./chunk-57OAHC2Y.js";
|
|
163
166
|
import {
|
|
164
167
|
createDaemonStatusProvider
|
|
165
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-E5WH5O3C.js";
|
|
166
169
|
import "./chunk-LXXMOYPL.js";
|
|
167
|
-
import "./chunk-
|
|
170
|
+
import "./chunk-SASBXAQL.js";
|
|
168
171
|
import "./chunk-E5Z2AVNV.js";
|
|
169
172
|
import {
|
|
170
173
|
SessionArtifactAuthorizationError,
|
|
171
174
|
SessionArtifactValidationError,
|
|
172
175
|
createAcpSessionBridge,
|
|
173
176
|
parseSessionSource
|
|
174
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-66RMLJHC.js";
|
|
175
178
|
import {
|
|
176
179
|
EVENT_SCHEMA_VERSION,
|
|
177
180
|
EventBus,
|
|
178
181
|
SubscriberLimitExceededError
|
|
179
182
|
} from "./chunk-GLWP3FDB.js";
|
|
183
|
+
import "./chunk-COH43MRJ.js";
|
|
184
|
+
import "./chunk-3SJ43L4W.js";
|
|
180
185
|
import {
|
|
181
186
|
BranchWhilePromptActiveError,
|
|
182
187
|
CancelSentinelCollisionError,
|
|
@@ -210,34 +215,35 @@ import {
|
|
|
210
215
|
WorkspaceInitSymlinkError,
|
|
211
216
|
WorkspaceMismatchError
|
|
212
217
|
} from "./chunk-UH3WSE5L.js";
|
|
213
|
-
import "./chunk-
|
|
214
|
-
import "./chunk-3SJ43L4W.js";
|
|
215
|
-
import "./chunk-7JURR4JT.js";
|
|
218
|
+
import "./chunk-A6UO2C7C.js";
|
|
216
219
|
import {
|
|
217
220
|
createWorkspaceProvidersStatusProvider
|
|
218
|
-
} from "./chunk-
|
|
221
|
+
} from "./chunk-6PSLCFQ2.js";
|
|
219
222
|
import {
|
|
220
223
|
getAuthTypeFromEnv,
|
|
221
224
|
resolveCliGenerationConfig
|
|
222
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-LG4GZIVV.js";
|
|
223
226
|
import {
|
|
224
227
|
snapshotProcessEnv
|
|
225
|
-
} from "./chunk-
|
|
228
|
+
} from "./chunk-WDSWXQU3.js";
|
|
226
229
|
import {
|
|
227
230
|
createWorkspaceSkillsStatusProvider
|
|
228
|
-
} from "./chunk-
|
|
231
|
+
} from "./chunk-7FZEBPKS.js";
|
|
229
232
|
import "./chunk-2W3OOD4W.js";
|
|
230
233
|
import {
|
|
231
234
|
STATUS_SCHEMA_VERSION,
|
|
232
235
|
createIdleWorkspaceMemoryStatus,
|
|
233
236
|
mapDomainErrorToErrorKind
|
|
234
|
-
} from "./chunk-
|
|
237
|
+
} from "./chunk-KU5XMLDK.js";
|
|
235
238
|
import "./chunk-WBL3FJEU.js";
|
|
236
239
|
import "./chunk-T2NCM2ET.js";
|
|
237
240
|
import {
|
|
238
241
|
parseChannelWebhookConfigLenient
|
|
239
|
-
} from "./chunk-
|
|
240
|
-
import "./chunk-
|
|
242
|
+
} from "./chunk-ER5LWJR6.js";
|
|
243
|
+
import "./chunk-W4CQXHT6.js";
|
|
244
|
+
import {
|
|
245
|
+
supportedChannelCatalog
|
|
246
|
+
} from "./chunk-MK7VQDN3.js";
|
|
241
247
|
import "./chunk-V6WHFGST.js";
|
|
242
248
|
import {
|
|
243
249
|
MAX_REGISTERED_WORKSPACES,
|
|
@@ -246,7 +252,7 @@ import {
|
|
|
246
252
|
WorkspaceRegistrationStoreLimitError,
|
|
247
253
|
normalizeWorkspaceDisplayName,
|
|
248
254
|
workspaceRegistrationId
|
|
249
|
-
} from "./chunk-
|
|
255
|
+
} from "./chunk-CC4N4M36.js";
|
|
250
256
|
import {
|
|
251
257
|
MAX_WORKSPACE_PATH_LENGTH,
|
|
252
258
|
canonicalizeWorkspace,
|
|
@@ -261,19 +267,21 @@ import {
|
|
|
261
267
|
MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
|
|
262
268
|
QWEN_SERVER_TOKEN_ENV,
|
|
263
269
|
isChannelDeliveryError,
|
|
264
|
-
isChannelWebhookEnqueueError
|
|
270
|
+
isChannelWebhookEnqueueError
|
|
271
|
+
} from "./chunk-U4VTUMMK.js";
|
|
272
|
+
import {
|
|
265
273
|
normalizeWorkerDiagnostic
|
|
266
|
-
} from "./chunk-
|
|
274
|
+
} from "./chunk-HV3G62R6.js";
|
|
267
275
|
import {
|
|
268
276
|
normalizeServeChannelSelection
|
|
269
|
-
} from "./chunk-
|
|
277
|
+
} from "./chunk-ALMR3E6Q.js";
|
|
270
278
|
import "./chunk-BK2UNYWD.js";
|
|
271
279
|
import {
|
|
272
280
|
redactLogCredentials
|
|
273
281
|
} from "./chunk-M5GB774H.js";
|
|
274
282
|
import {
|
|
275
283
|
sanitizeLogText
|
|
276
|
-
} from "./chunk-
|
|
284
|
+
} from "./chunk-ML52PL6O.js";
|
|
277
285
|
import "./chunk-UDXSXLER.js";
|
|
278
286
|
import "./chunk-5HBA2Z7V.js";
|
|
279
287
|
import {
|
|
@@ -285,7 +293,7 @@ import {
|
|
|
285
293
|
getWritableScopes,
|
|
286
294
|
loadSettings,
|
|
287
295
|
validateSettingValue
|
|
288
|
-
} from "./chunk-
|
|
296
|
+
} from "./chunk-JALU3ZDU.js";
|
|
289
297
|
import "./chunk-RKUWKYED.js";
|
|
290
298
|
import "./chunk-GOXKNSDZ.js";
|
|
291
299
|
import "./chunk-IDS7MSUP.js";
|
|
@@ -294,14 +302,14 @@ import {
|
|
|
294
302
|
detectSystemLanguage,
|
|
295
303
|
resolveLanguageSetting,
|
|
296
304
|
resolveSupportedLanguage
|
|
297
|
-
} from "./chunk-
|
|
298
|
-
import "./chunk-
|
|
305
|
+
} from "./chunk-VV6XU5L7.js";
|
|
306
|
+
import "./chunk-PANH4R3B.js";
|
|
299
307
|
import "./chunk-6PEXNQTX.js";
|
|
300
|
-
import "./chunk-
|
|
308
|
+
import "./chunk-I7XZ3RY5.js";
|
|
301
309
|
import "./chunk-VJNBRRZG.js";
|
|
302
310
|
import {
|
|
303
311
|
getWorkspaceTrustStatus
|
|
304
|
-
} from "./chunk-
|
|
312
|
+
} from "./chunk-VCBZUOSI.js";
|
|
305
313
|
import "./chunk-ALGGS7UH.js";
|
|
306
314
|
import {
|
|
307
315
|
isWithinRoot as isWithinRoot2
|
|
@@ -317,6 +325,7 @@ import {
|
|
|
317
325
|
ClientMcpRegistrar,
|
|
318
326
|
DEFAULT_LOG_LIMIT,
|
|
319
327
|
ExtensionManager,
|
|
328
|
+
GITHUB_PR_ERROR_MESSAGE_MAX,
|
|
320
329
|
GROUP_COLOR_OPTIONS,
|
|
321
330
|
GitWorktreeService,
|
|
322
331
|
IMAGE_CAPABILITY,
|
|
@@ -350,6 +359,7 @@ import {
|
|
|
350
359
|
fetchGitCommitDetail,
|
|
351
360
|
fetchGitDiff,
|
|
352
361
|
fetchGitDiffHunksForFile,
|
|
362
|
+
fetchGitHubPullRequests,
|
|
353
363
|
fetchGitLog,
|
|
354
364
|
getGitWorkingTreeStatus,
|
|
355
365
|
getSubagentSessionDir,
|
|
@@ -369,7 +379,7 @@ import {
|
|
|
369
379
|
writeWorkspaceContextFile,
|
|
370
380
|
writeWorktreeSession,
|
|
371
381
|
writeWorktreeSessionMarker
|
|
372
|
-
} from "./chunk-
|
|
382
|
+
} from "./chunk-DM4Q4JJH.js";
|
|
373
383
|
import "./chunk-5M6IDOMF.js";
|
|
374
384
|
import "./chunk-TWPJO254.js";
|
|
375
385
|
import "./chunk-H6XPXXMH.js";
|
|
@@ -395,7 +405,7 @@ import "./chunk-ZOIFNCKL.js";
|
|
|
395
405
|
import "./chunk-PWTZEM3C.js";
|
|
396
406
|
import "./chunk-KRXPRVGL.js";
|
|
397
407
|
import "./chunk-6PVPNMXU.js";
|
|
398
|
-
import "./chunk-
|
|
408
|
+
import "./chunk-PSWQZHEA.js";
|
|
399
409
|
import "./chunk-SZRN75WQ.js";
|
|
400
410
|
import "./chunk-HTO4JFDZ.js";
|
|
401
411
|
import "./chunk-CPBF7KYF.js";
|
|
@@ -427,7 +437,7 @@ import "./chunk-XVNQMZ2I.js";
|
|
|
427
437
|
import "./chunk-FODK6UMO.js";
|
|
428
438
|
import "./chunk-GLNBDYUX.js";
|
|
429
439
|
import "./chunk-DJ2GSRLV.js";
|
|
430
|
-
import "./chunk-
|
|
440
|
+
import "./chunk-YAF5VNU7.js";
|
|
431
441
|
import {
|
|
432
442
|
addDaemonRequestAttribute,
|
|
433
443
|
emitDaemonLog,
|
|
@@ -437,11 +447,12 @@ import {
|
|
|
437
447
|
recordDaemonHttpRequest,
|
|
438
448
|
recordDaemonHttpResponse,
|
|
439
449
|
withDaemonRequestSpan
|
|
440
|
-
} from "./chunk-
|
|
450
|
+
} from "./chunk-BO4XCS7P.js";
|
|
441
451
|
import "./chunk-BPJSQIJX.js";
|
|
442
452
|
import "./chunk-P3QQPMQA.js";
|
|
443
453
|
import "./chunk-6FGBXPWM.js";
|
|
444
454
|
import "./chunk-LS77BEZP.js";
|
|
455
|
+
import "./chunk-SQBYH7PX.js";
|
|
445
456
|
import "./chunk-CR3C7WXL.js";
|
|
446
457
|
import {
|
|
447
458
|
decodeBufferWithEncodingInfo,
|
|
@@ -450,10 +461,10 @@ import {
|
|
|
450
461
|
isWithinRoot,
|
|
451
462
|
parseLineTolerant,
|
|
452
463
|
read
|
|
453
|
-
} from "./chunk-
|
|
464
|
+
} from "./chunk-RWS5VYWC.js";
|
|
454
465
|
import "./chunk-VGC4I5JJ.js";
|
|
455
466
|
import "./chunk-MUP3T3AD.js";
|
|
456
|
-
import "./chunk-
|
|
467
|
+
import "./chunk-U7TXFVUN.js";
|
|
457
468
|
import "./chunk-46UV252V.js";
|
|
458
469
|
import "./chunk-A4UCTEB5.js";
|
|
459
470
|
import "./chunk-XWRJCPHC.js";
|
|
@@ -461,9 +472,9 @@ import "./chunk-UW5EOVUN.js";
|
|
|
461
472
|
import "./chunk-2JZBVYTU.js";
|
|
462
473
|
import "./chunk-5I2IWRSH.js";
|
|
463
474
|
import "./chunk-A5L3JMUA.js";
|
|
464
|
-
import "./chunk-
|
|
465
|
-
import "./chunk-
|
|
466
|
-
import "./chunk-
|
|
475
|
+
import "./chunk-SRZ6DXVG.js";
|
|
476
|
+
import "./chunk-W4RQUHY3.js";
|
|
477
|
+
import "./chunk-INADJJGW.js";
|
|
467
478
|
import "./chunk-U7ZFW55U.js";
|
|
468
479
|
import "./chunk-UUUTRMI2.js";
|
|
469
480
|
import "./chunk-PR75REBZ.js";
|
|
@@ -23903,14 +23914,14 @@ __name(canonicalCron, "canonicalCron");
|
|
|
23903
23914
|
function registerScheduledTaskCrudRoutes(app, deps) {
|
|
23904
23915
|
const {
|
|
23905
23916
|
prefix,
|
|
23906
|
-
resolveTarget,
|
|
23917
|
+
resolveTarget: resolveTarget2,
|
|
23907
23918
|
mutate,
|
|
23908
23919
|
safeBody: safeBody2,
|
|
23909
23920
|
channelDeliveryAuthorizations
|
|
23910
23921
|
} = deps;
|
|
23911
23922
|
const base = `${prefix}/scheduled-tasks`;
|
|
23912
23923
|
app.get(base, async (req, res) => {
|
|
23913
|
-
const target =
|
|
23924
|
+
const target = resolveTarget2(req, res);
|
|
23914
23925
|
if (!target) return;
|
|
23915
23926
|
try {
|
|
23916
23927
|
const tasks = await readCronTasks(target.workspaceCwd);
|
|
@@ -23926,7 +23937,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
|
|
|
23926
23937
|
}
|
|
23927
23938
|
});
|
|
23928
23939
|
app.post(base, mutate(), async (req, res) => {
|
|
23929
|
-
const target =
|
|
23940
|
+
const target = resolveTarget2(req, res);
|
|
23930
23941
|
if (!target) return;
|
|
23931
23942
|
const { workspaceCwd, bridge } = target;
|
|
23932
23943
|
const body = safeBody2(req);
|
|
@@ -24102,7 +24113,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
|
|
|
24102
24113
|
res.status(201).json(toView(task));
|
|
24103
24114
|
});
|
|
24104
24115
|
app.patch(`${base}/:id`, mutate(), async (req, res) => {
|
|
24105
|
-
const target =
|
|
24116
|
+
const target = resolveTarget2(req, res);
|
|
24106
24117
|
if (!target) return;
|
|
24107
24118
|
const { workspaceCwd, bridge } = target;
|
|
24108
24119
|
const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
|
|
@@ -24292,7 +24303,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
|
|
|
24292
24303
|
res.status(200).json(toView(updated));
|
|
24293
24304
|
});
|
|
24294
24305
|
app.delete(`${base}/:id`, mutate(), async (req, res) => {
|
|
24295
|
-
const target =
|
|
24306
|
+
const target = resolveTarget2(req, res);
|
|
24296
24307
|
if (!target) return;
|
|
24297
24308
|
const { workspaceCwd, bridge } = target;
|
|
24298
24309
|
const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
|
|
@@ -24341,7 +24352,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
|
|
|
24341
24352
|
res.status(200).json({ deleted: true, id });
|
|
24342
24353
|
});
|
|
24343
24354
|
app.post(`${base}/:id/run`, mutate(), async (req, res) => {
|
|
24344
|
-
const target =
|
|
24355
|
+
const target = resolveTarget2(req, res);
|
|
24345
24356
|
if (!target) return;
|
|
24346
24357
|
const { workspaceCwd } = target;
|
|
24347
24358
|
const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
|
|
@@ -25332,6 +25343,7 @@ function createServeFeatures(deps) {
|
|
|
25332
25343
|
reloadAvailable,
|
|
25333
25344
|
channelReloadAvailable,
|
|
25334
25345
|
channelControlAvailable,
|
|
25346
|
+
channelManagementAvailable,
|
|
25335
25347
|
sessionShellCommandEnabled,
|
|
25336
25348
|
multiWorkspaceSessionsEnabled,
|
|
25337
25349
|
dynamicWorkspaceRegistrationAvailable,
|
|
@@ -25370,6 +25382,7 @@ function createServeFeatures(deps) {
|
|
|
25370
25382
|
reloadAvailable,
|
|
25371
25383
|
channelReloadAvailable: channelReloadAvailable(),
|
|
25372
25384
|
channelControlAvailable,
|
|
25385
|
+
channelManagementAvailable,
|
|
25373
25386
|
multiWorkspaceSessionsEnabled: multiWorkspaceSessionsEnabled(),
|
|
25374
25387
|
dynamicWorkspaceRegistrationAvailable,
|
|
25375
25388
|
persistentWorkspaceRegistrationAvailable,
|
|
@@ -29437,6 +29450,73 @@ function registerWorkspaceQualifiedGitLogRoutes(app, deps) {
|
|
|
29437
29450
|
}
|
|
29438
29451
|
__name(registerWorkspaceQualifiedGitLogRoutes, "registerWorkspaceQualifiedGitLogRoutes");
|
|
29439
29452
|
|
|
29453
|
+
// packages/cli/src/serve/routes/workspace-github-prs.ts
|
|
29454
|
+
init_esbuild_shims();
|
|
29455
|
+
function sanitizeMessage(message, workspaceCwd) {
|
|
29456
|
+
return message.split(workspaceCwd).join("<workspace>");
|
|
29457
|
+
}
|
|
29458
|
+
__name(sanitizeMessage, "sanitizeMessage");
|
|
29459
|
+
function registerWorkspaceQualifiedGitHubPrsRoutes(app, deps) {
|
|
29460
|
+
app.get("/workspaces/:workspace/github/prs", async (req, res) => {
|
|
29461
|
+
const route = "GET /workspaces/:workspace/github/prs";
|
|
29462
|
+
const runtime = resolveWorkspaceRuntimeFromParam(
|
|
29463
|
+
deps.workspaceRegistry,
|
|
29464
|
+
req,
|
|
29465
|
+
res
|
|
29466
|
+
);
|
|
29467
|
+
if (!runtime) return;
|
|
29468
|
+
if (!requireTrustedWorkspaceRuntime(runtime, res)) return;
|
|
29469
|
+
applyReadHeaders(res);
|
|
29470
|
+
try {
|
|
29471
|
+
const result = await fetchGitHubPullRequests(runtime.workspaceCwd);
|
|
29472
|
+
switch (result.kind) {
|
|
29473
|
+
case "ok":
|
|
29474
|
+
res.status(200).json({
|
|
29475
|
+
v: 1,
|
|
29476
|
+
workspaceCwd: runtime.workspaceCwd,
|
|
29477
|
+
available: true,
|
|
29478
|
+
pullRequests: result.pullRequests
|
|
29479
|
+
});
|
|
29480
|
+
return;
|
|
29481
|
+
case "not_a_repo":
|
|
29482
|
+
res.status(200).json({
|
|
29483
|
+
v: 1,
|
|
29484
|
+
workspaceCwd: runtime.workspaceCwd,
|
|
29485
|
+
available: false,
|
|
29486
|
+
pullRequests: []
|
|
29487
|
+
});
|
|
29488
|
+
return;
|
|
29489
|
+
case "cli_unavailable":
|
|
29490
|
+
res.status(502).json({
|
|
29491
|
+
error: "The GitHub CLI (gh) is not installed on the daemon host; install it and run `gh auth login`.",
|
|
29492
|
+
code: "github_cli_unavailable",
|
|
29493
|
+
status: 502
|
|
29494
|
+
});
|
|
29495
|
+
return;
|
|
29496
|
+
case "failed": {
|
|
29497
|
+
const error2 = sanitizeMessage(
|
|
29498
|
+
sanitizeMessage(result.message, runtime.workspaceCwd),
|
|
29499
|
+
result.gitRoot
|
|
29500
|
+
).slice(0, GITHUB_PR_ERROR_MESSAGE_MAX);
|
|
29501
|
+
res.status(502).json({
|
|
29502
|
+
error: error2,
|
|
29503
|
+
code: "github_prs_failed",
|
|
29504
|
+
status: 502
|
|
29505
|
+
});
|
|
29506
|
+
return;
|
|
29507
|
+
}
|
|
29508
|
+
default:
|
|
29509
|
+
throw new Error(
|
|
29510
|
+
`unexpected fetchGitHubPullRequests result: ${JSON.stringify(result)}`
|
|
29511
|
+
);
|
|
29512
|
+
}
|
|
29513
|
+
} catch (err) {
|
|
29514
|
+
deps.sendBridgeError(res, err, { route });
|
|
29515
|
+
}
|
|
29516
|
+
});
|
|
29517
|
+
}
|
|
29518
|
+
__name(registerWorkspaceQualifiedGitHubPrsRoutes, "registerWorkspaceQualifiedGitHubPrsRoutes");
|
|
29519
|
+
|
|
29440
29520
|
// packages/cli/src/serve/workspace-git-state.ts
|
|
29441
29521
|
init_esbuild_shims();
|
|
29442
29522
|
var WorkspaceGitState = class {
|
|
@@ -30275,6 +30355,317 @@ function registerWorkspaceChannelControlRoutes(app, deps) {
|
|
|
30275
30355
|
}
|
|
30276
30356
|
__name(registerWorkspaceChannelControlRoutes, "registerWorkspaceChannelControlRoutes");
|
|
30277
30357
|
|
|
30358
|
+
// packages/cli/src/serve/routes/workspace-channel-management.ts
|
|
30359
|
+
init_esbuild_shims();
|
|
30360
|
+
var MAX_ERROR_LENGTH = 512;
|
|
30361
|
+
var MAX_INSTANCE_NAME_BYTES = 255;
|
|
30362
|
+
var WINDOWS_DEVICE_NAME = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])$/iu;
|
|
30363
|
+
function isRecord(value) {
|
|
30364
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
30365
|
+
}
|
|
30366
|
+
__name(isRecord, "isRecord");
|
|
30367
|
+
function isWellFormed(value) {
|
|
30368
|
+
try {
|
|
30369
|
+
encodeURIComponent(value);
|
|
30370
|
+
return true;
|
|
30371
|
+
} catch {
|
|
30372
|
+
return false;
|
|
30373
|
+
}
|
|
30374
|
+
}
|
|
30375
|
+
__name(isWellFormed, "isWellFormed");
|
|
30376
|
+
function isPortableInstanceName(name, allowReservedAll = false) {
|
|
30377
|
+
if (allowReservedAll && name.trim() === "all") return true;
|
|
30378
|
+
const baseName = name.split(".", 1)[0].trimEnd();
|
|
30379
|
+
return isWellFormed(name) && name.trim().length > 0 && name !== "." && name !== ".." && name.trim() !== "all" && !name.includes("/") && !name.includes("\\") && !/[:*?"<>|\p{Cc}]/u.test(name) && !name.endsWith(".") && !name.endsWith(" ") && !WINDOWS_DEVICE_NAME.test(baseName) && Buffer.byteLength(name, "utf8") <= MAX_INSTANCE_NAME_BYTES;
|
|
30380
|
+
}
|
|
30381
|
+
__name(isPortableInstanceName, "isPortableInstanceName");
|
|
30382
|
+
function parseInstanceName(req, res, allowReservedAll = false) {
|
|
30383
|
+
const name = req.params["name"] ?? "";
|
|
30384
|
+
if (!isPortableInstanceName(name, allowReservedAll)) {
|
|
30385
|
+
res.status(400).json({
|
|
30386
|
+
error: `Channel instance names must be portable path components, differ from the reserved name "all", and be at most ${MAX_INSTANCE_NAME_BYTES} UTF-8 bytes.`,
|
|
30387
|
+
code: "invalid_channel_instance_name"
|
|
30388
|
+
});
|
|
30389
|
+
return void 0;
|
|
30390
|
+
}
|
|
30391
|
+
return name;
|
|
30392
|
+
}
|
|
30393
|
+
__name(parseInstanceName, "parseInstanceName");
|
|
30394
|
+
function parseRevision(body, res) {
|
|
30395
|
+
const expectedRevision = body["expectedRevision"];
|
|
30396
|
+
if (typeof expectedRevision !== "string" || expectedRevision.length === 0) {
|
|
30397
|
+
res.status(400).json({
|
|
30398
|
+
error: "`expectedRevision` must be a non-empty string.",
|
|
30399
|
+
code: "invalid_channel_management_request"
|
|
30400
|
+
});
|
|
30401
|
+
return void 0;
|
|
30402
|
+
}
|
|
30403
|
+
return { expectedRevision };
|
|
30404
|
+
}
|
|
30405
|
+
__name(parseRevision, "parseRevision");
|
|
30406
|
+
function parseUpsert(body, res) {
|
|
30407
|
+
const revision = parseRevision(body, res);
|
|
30408
|
+
if (!revision) return void 0;
|
|
30409
|
+
const config = body["config"];
|
|
30410
|
+
if (!isRecord(config) || typeof config["type"] !== "string" || config["type"].length === 0) {
|
|
30411
|
+
res.status(400).json({
|
|
30412
|
+
error: "`config` must contain a non-empty Channel type.",
|
|
30413
|
+
code: "invalid_channel_management_request"
|
|
30414
|
+
});
|
|
30415
|
+
return void 0;
|
|
30416
|
+
}
|
|
30417
|
+
const secrets = body["secrets"];
|
|
30418
|
+
if (secrets !== void 0) {
|
|
30419
|
+
try {
|
|
30420
|
+
assertValidChannelSecretUpdates(secrets);
|
|
30421
|
+
} catch {
|
|
30422
|
+
res.status(400).json({
|
|
30423
|
+
error: "Secret updates are invalid.",
|
|
30424
|
+
code: "channel_settings_invalid_secret"
|
|
30425
|
+
});
|
|
30426
|
+
return void 0;
|
|
30427
|
+
}
|
|
30428
|
+
}
|
|
30429
|
+
return {
|
|
30430
|
+
...revision,
|
|
30431
|
+
config,
|
|
30432
|
+
...secrets === void 0 ? {} : { secrets }
|
|
30433
|
+
};
|
|
30434
|
+
}
|
|
30435
|
+
__name(parseUpsert, "parseUpsert");
|
|
30436
|
+
function parseStartup(body, res) {
|
|
30437
|
+
const revision = parseRevision(body, res);
|
|
30438
|
+
if (!revision) return void 0;
|
|
30439
|
+
if (typeof body["enabled"] !== "boolean") {
|
|
30440
|
+
res.status(400).json({
|
|
30441
|
+
error: "`enabled` must be a boolean.",
|
|
30442
|
+
code: "invalid_channel_management_request"
|
|
30443
|
+
});
|
|
30444
|
+
return void 0;
|
|
30445
|
+
}
|
|
30446
|
+
return { ...revision, enabled: body["enabled"] };
|
|
30447
|
+
}
|
|
30448
|
+
__name(parseStartup, "parseStartup");
|
|
30449
|
+
function parsePairingCode(body, res) {
|
|
30450
|
+
const code = body["code"];
|
|
30451
|
+
if (typeof code !== "string" || !/^[A-HJ-NP-Z2-9]{8}$/iu.test(code.trim())) {
|
|
30452
|
+
res.status(400).json({
|
|
30453
|
+
error: "`code` must be an 8-character pairing code.",
|
|
30454
|
+
code: "invalid_channel_pairing_code"
|
|
30455
|
+
});
|
|
30456
|
+
return void 0;
|
|
30457
|
+
}
|
|
30458
|
+
return code.trim().toUpperCase();
|
|
30459
|
+
}
|
|
30460
|
+
__name(parsePairingCode, "parsePairingCode");
|
|
30461
|
+
function errorCode2(error2) {
|
|
30462
|
+
if (!error2 || typeof error2 !== "object") return void 0;
|
|
30463
|
+
try {
|
|
30464
|
+
const code = Reflect.get(error2, "code");
|
|
30465
|
+
return typeof code === "string" ? code : void 0;
|
|
30466
|
+
} catch {
|
|
30467
|
+
return void 0;
|
|
30468
|
+
}
|
|
30469
|
+
}
|
|
30470
|
+
__name(errorCode2, "errorCode");
|
|
30471
|
+
var ERROR_STATUS = /* @__PURE__ */ new Map([
|
|
30472
|
+
["invalid_channel_instance_name", 400],
|
|
30473
|
+
["channel_settings_invalid_name", 400],
|
|
30474
|
+
["channel_settings_invalid_config", 400],
|
|
30475
|
+
["channel_settings_invalid_secret", 400],
|
|
30476
|
+
["channel_settings_unmanageable", 400],
|
|
30477
|
+
["channel_workspace_mismatch", 400],
|
|
30478
|
+
["ambiguous_channel_workspace", 400],
|
|
30479
|
+
["untrusted_workspace", 403],
|
|
30480
|
+
["channel_instance_not_found", 404],
|
|
30481
|
+
["channel_pairing_request_not_found", 404],
|
|
30482
|
+
["channel_pairing_not_enabled", 409],
|
|
30483
|
+
["channel_settings_conflict", 409],
|
|
30484
|
+
["channel_runtime_owner_mismatch", 409],
|
|
30485
|
+
["channel_worker_not_enabled", 409],
|
|
30486
|
+
["channel_service_conflict", 409],
|
|
30487
|
+
["channel_worker_start_failed", 502],
|
|
30488
|
+
["channel_worker_stop_failed", 500],
|
|
30489
|
+
["daemon_draining", 503],
|
|
30490
|
+
["channel_worker_unavailable", 503]
|
|
30491
|
+
]);
|
|
30492
|
+
function sendManagementError(res, error2) {
|
|
30493
|
+
const code = errorCode2(error2);
|
|
30494
|
+
const status = code ? ERROR_STATUS.get(code) : void 0;
|
|
30495
|
+
if (code && status !== void 0) {
|
|
30496
|
+
const raw = error2 instanceof Error ? error2.message : String(error2);
|
|
30497
|
+
res.status(status).json({
|
|
30498
|
+
error: sanitizeLogText(redactLogCredentials(raw), MAX_ERROR_LENGTH),
|
|
30499
|
+
code
|
|
30500
|
+
});
|
|
30501
|
+
return;
|
|
30502
|
+
}
|
|
30503
|
+
res.status(500).json({
|
|
30504
|
+
error: "Channel management operation failed.",
|
|
30505
|
+
code: "channel_management_failed"
|
|
30506
|
+
});
|
|
30507
|
+
}
|
|
30508
|
+
__name(sendManagementError, "sendManagementError");
|
|
30509
|
+
function noStore(res) {
|
|
30510
|
+
res.set("Cache-Control", "no-store");
|
|
30511
|
+
}
|
|
30512
|
+
__name(noStore, "noStore");
|
|
30513
|
+
async function resolveTarget(req, res, resolveRuntime, resolveService) {
|
|
30514
|
+
const runtime = resolveRuntime(req, res);
|
|
30515
|
+
if (!runtime || !requireTrustedWorkspaceRuntime(runtime, res)) return;
|
|
30516
|
+
try {
|
|
30517
|
+
const service = await resolveService(runtime);
|
|
30518
|
+
if (!service) {
|
|
30519
|
+
res.status(503).json({
|
|
30520
|
+
error: "Channel management is unavailable.",
|
|
30521
|
+
code: "channel_management_unavailable"
|
|
30522
|
+
});
|
|
30523
|
+
return;
|
|
30524
|
+
}
|
|
30525
|
+
return { runtime, service };
|
|
30526
|
+
} catch (error2) {
|
|
30527
|
+
sendManagementError(res, error2);
|
|
30528
|
+
return;
|
|
30529
|
+
}
|
|
30530
|
+
}
|
|
30531
|
+
__name(resolveTarget, "resolveTarget");
|
|
30532
|
+
function registerWorkspaceChannelManagementRoutes(app, deps) {
|
|
30533
|
+
const primary = /* @__PURE__ */ __name(() => deps.primaryRuntime, "primary");
|
|
30534
|
+
const qualified = /* @__PURE__ */ __name((req, res) => resolveWorkspaceRuntimeFromParam(deps.workspaceRegistry, req, res), "qualified");
|
|
30535
|
+
const register = /* @__PURE__ */ __name((prefix, resolveRuntime) => {
|
|
30536
|
+
const pairingRead = deps.mutate({ strict: true });
|
|
30537
|
+
const pairingApprove = deps.mutate({ strict: true });
|
|
30538
|
+
const upsert = deps.mutate({ strict: true });
|
|
30539
|
+
const remove = deps.mutate({ strict: true });
|
|
30540
|
+
const startup = deps.mutate({ strict: true });
|
|
30541
|
+
const start = deps.mutate({ strict: true });
|
|
30542
|
+
const stop = deps.mutate({ strict: true });
|
|
30543
|
+
const restart = deps.mutate({ strict: true });
|
|
30544
|
+
const target = /* @__PURE__ */ __name((req, res) => resolveTarget(req, res, resolveRuntime, deps.resolveService), "target");
|
|
30545
|
+
const validateClient = /* @__PURE__ */ __name((req, res, runtime) => deps.parseAndValidateClientId(req, res, runtime) !== null, "validateClient");
|
|
30546
|
+
app.get(`${prefix}/channel-types`, async (req, res) => {
|
|
30547
|
+
const runtime = resolveRuntime(req, res);
|
|
30548
|
+
if (!runtime || !requireTrustedWorkspaceRuntime(runtime, res)) return;
|
|
30549
|
+
try {
|
|
30550
|
+
noStore(res);
|
|
30551
|
+
res.status(200).json(await supportedChannelCatalog());
|
|
30552
|
+
} catch (error2) {
|
|
30553
|
+
sendManagementError(res, error2);
|
|
30554
|
+
}
|
|
30555
|
+
});
|
|
30556
|
+
app.get(`${prefix}/channels`, async (req, res) => {
|
|
30557
|
+
const resolved = await target(req, res);
|
|
30558
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30559
|
+
try {
|
|
30560
|
+
noStore(res);
|
|
30561
|
+
res.status(200).json(await resolved.service.list());
|
|
30562
|
+
} catch (error2) {
|
|
30563
|
+
sendManagementError(res, error2);
|
|
30564
|
+
}
|
|
30565
|
+
});
|
|
30566
|
+
app.get(
|
|
30567
|
+
`${prefix}/channels/:name/pairing-requests`,
|
|
30568
|
+
pairingRead,
|
|
30569
|
+
async (req, res) => {
|
|
30570
|
+
const resolved = await target(req, res);
|
|
30571
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30572
|
+
const name = parseInstanceName(req, res);
|
|
30573
|
+
if (!name) return;
|
|
30574
|
+
try {
|
|
30575
|
+
noStore(res);
|
|
30576
|
+
res.status(200).json(await resolved.service.pairingRequests(name));
|
|
30577
|
+
} catch (error2) {
|
|
30578
|
+
sendManagementError(res, error2);
|
|
30579
|
+
}
|
|
30580
|
+
}
|
|
30581
|
+
);
|
|
30582
|
+
app.post(
|
|
30583
|
+
`${prefix}/channels/:name/pairing-requests/approve`,
|
|
30584
|
+
pairingApprove,
|
|
30585
|
+
async (req, res) => {
|
|
30586
|
+
const resolved = await target(req, res);
|
|
30587
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30588
|
+
const name = parseInstanceName(req, res);
|
|
30589
|
+
if (!name) return;
|
|
30590
|
+
const code = parsePairingCode(deps.safeBody(req), res);
|
|
30591
|
+
if (!code) return;
|
|
30592
|
+
try {
|
|
30593
|
+
noStore(res);
|
|
30594
|
+
res.status(200).json(await resolved.service.approvePairing(name, code));
|
|
30595
|
+
} catch (error2) {
|
|
30596
|
+
sendManagementError(res, error2);
|
|
30597
|
+
}
|
|
30598
|
+
}
|
|
30599
|
+
);
|
|
30600
|
+
app.put(`${prefix}/channels/:name`, upsert, async (req, res) => {
|
|
30601
|
+
const resolved = await target(req, res);
|
|
30602
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30603
|
+
const name = parseInstanceName(req, res);
|
|
30604
|
+
if (!name) return;
|
|
30605
|
+
const request2 = parseUpsert(deps.safeBody(req), res);
|
|
30606
|
+
if (!request2) return;
|
|
30607
|
+
try {
|
|
30608
|
+
noStore(res);
|
|
30609
|
+
res.status(200).json(await resolved.service.upsert(name, request2));
|
|
30610
|
+
} catch (error2) {
|
|
30611
|
+
sendManagementError(res, error2);
|
|
30612
|
+
}
|
|
30613
|
+
});
|
|
30614
|
+
app.delete(`${prefix}/channels/:name`, remove, async (req, res) => {
|
|
30615
|
+
const resolved = await target(req, res);
|
|
30616
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30617
|
+
const name = parseInstanceName(req, res);
|
|
30618
|
+
if (!name) return;
|
|
30619
|
+
const request2 = parseRevision(deps.safeBody(req), res);
|
|
30620
|
+
if (!request2) return;
|
|
30621
|
+
try {
|
|
30622
|
+
noStore(res);
|
|
30623
|
+
res.status(200).json(await resolved.service.remove(name, request2));
|
|
30624
|
+
} catch (error2) {
|
|
30625
|
+
sendManagementError(res, error2);
|
|
30626
|
+
}
|
|
30627
|
+
});
|
|
30628
|
+
app.put(`${prefix}/channels/:name/startup`, startup, async (req, res) => {
|
|
30629
|
+
const resolved = await target(req, res);
|
|
30630
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30631
|
+
const name = parseInstanceName(req, res);
|
|
30632
|
+
if (!name) return;
|
|
30633
|
+
const request2 = parseStartup(deps.safeBody(req), res);
|
|
30634
|
+
if (!request2) return;
|
|
30635
|
+
try {
|
|
30636
|
+
noStore(res);
|
|
30637
|
+
res.status(200).json(await resolved.service.setStartup(name, request2));
|
|
30638
|
+
} catch (error2) {
|
|
30639
|
+
sendManagementError(res, error2);
|
|
30640
|
+
}
|
|
30641
|
+
});
|
|
30642
|
+
const action = /* @__PURE__ */ __name((operation, middleware) => {
|
|
30643
|
+
app.post(
|
|
30644
|
+
`${prefix}/channels/:name/${operation}`,
|
|
30645
|
+
middleware,
|
|
30646
|
+
async (req, res) => {
|
|
30647
|
+
const resolved = await target(req, res);
|
|
30648
|
+
if (!resolved || !validateClient(req, res, resolved.runtime)) return;
|
|
30649
|
+
const name = parseInstanceName(req, res);
|
|
30650
|
+
if (!name) return;
|
|
30651
|
+
try {
|
|
30652
|
+
noStore(res);
|
|
30653
|
+
res.status(200).json(await resolved.service[operation](name));
|
|
30654
|
+
} catch (error2) {
|
|
30655
|
+
sendManagementError(res, error2);
|
|
30656
|
+
}
|
|
30657
|
+
}
|
|
30658
|
+
);
|
|
30659
|
+
}, "action");
|
|
30660
|
+
action("start", start);
|
|
30661
|
+
action("stop", stop);
|
|
30662
|
+
action("restart", restart);
|
|
30663
|
+
}, "register");
|
|
30664
|
+
register("/workspace", primary);
|
|
30665
|
+
register("/workspaces/:workspace", qualified);
|
|
30666
|
+
}
|
|
30667
|
+
__name(registerWorkspaceChannelManagementRoutes, "registerWorkspaceChannelManagementRoutes");
|
|
30668
|
+
|
|
30278
30669
|
// packages/cli/src/serve/routes/workspace-channel-observed-contacts.ts
|
|
30279
30670
|
init_esbuild_shims();
|
|
30280
30671
|
var DEFAULT_FRESH_WITHIN_SECONDS = 7 * 24 * 60 * 60;
|
|
@@ -31171,6 +31562,7 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
|
|
|
31171
31562
|
// runtime, so it has the same reload surface as legacy deps.workspace.
|
|
31172
31563
|
reloadAvailable: deps.workspace !== void 0 || injectedWorkspaceRegistry !== void 0,
|
|
31173
31564
|
channelControlAvailable: deps.getChannelWorkerControl !== void 0 && deps.setChannelWorkerSelection !== void 0 && deps.stopChannelWorker !== void 0,
|
|
31565
|
+
channelManagementAvailable: deps.channelManagementService !== void 0,
|
|
31174
31566
|
channelReloadAvailable: /* @__PURE__ */ __name(() => {
|
|
31175
31567
|
if (deps.reloadChannelWorker === void 0) return false;
|
|
31176
31568
|
const control = deps.getChannelWorkerControl?.();
|
|
@@ -31505,6 +31897,10 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
|
|
|
31505
31897
|
workspaceRegistry,
|
|
31506
31898
|
sendBridgeError: sendBridgeError2
|
|
31507
31899
|
});
|
|
31900
|
+
registerWorkspaceQualifiedGitHubPrsRoutes(app, {
|
|
31901
|
+
workspaceRegistry,
|
|
31902
|
+
sendBridgeError: sendBridgeError2
|
|
31903
|
+
});
|
|
31508
31904
|
mountWorkspaceMemoryRoutes(app, {
|
|
31509
31905
|
bridge: primaryBridge,
|
|
31510
31906
|
boundWorkspace: primaryBoundWorkspace,
|
|
@@ -31768,6 +32164,16 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
|
|
|
31768
32164
|
parseAndValidateClientId: /* @__PURE__ */ __name((req, res) => parseAndValidateWorkspaceClientId(req, res, primaryBridge), "parseAndValidateClientId")
|
|
31769
32165
|
});
|
|
31770
32166
|
}
|
|
32167
|
+
if (deps.channelManagementService) {
|
|
32168
|
+
registerWorkspaceChannelManagementRoutes(app, {
|
|
32169
|
+
primaryRuntime,
|
|
32170
|
+
workspaceRegistry,
|
|
32171
|
+
resolveService: deps.channelManagementService,
|
|
32172
|
+
mutate,
|
|
32173
|
+
safeBody,
|
|
32174
|
+
parseAndValidateClientId: /* @__PURE__ */ __name((req, res, runtime) => parseAndValidateWorkspaceClientId(req, res, runtime.bridge), "parseAndValidateClientId")
|
|
32175
|
+
});
|
|
32176
|
+
}
|
|
31771
32177
|
registerWorkspaceChannelObservedContactRoutes(app, {
|
|
31772
32178
|
primaryWorkspace: primaryBoundWorkspace,
|
|
31773
32179
|
workspaceRegistry
|