@zubriq/code 0.19.8-1 → 0.19.9-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/dist/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/dist/bundled/qc-helper/docs/features/channels/overview.md +23 -12
- package/dist/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/dist/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
- package/dist/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/dist/bundled/qc-helper/docs/features/memory.md +1 -1
- package/dist/bundled/qc-helper/docs/qwen-serve.md +17 -10
- package/dist/bundled/review/SKILL.md +6 -2
- package/dist/chunks/{MaxSizedBox-OWTCJQNO.js → MaxSizedBox-W6SAJMJC.js} +13 -11
- package/dist/chunks/{StandaloneSessionPicker-6NGEQFBH.js → StandaloneSessionPicker-YBKZZKIA.js} +28 -23
- package/dist/chunks/{acpAgent-XPRWSNOW.js → acpAgent-SQJQBOTS.js} +110 -80
- package/dist/chunks/{agent-TB6S4VXU.js → agent-QU7Q2RZN.js} +8 -8
- package/dist/chunks/{agent-headless-R3XYK5TT.js → agent-headless-PBHLWHND.js} +8 -8
- package/dist/chunks/{anthropicContentGenerator-FZQAEMYK.js → anthropicContentGenerator-52G6ZA3D.js} +31 -4
- package/dist/chunks/{artifact-tool-H2TNPNP5.js → artifact-tool-D233YJFH.js} +25 -6
- package/dist/chunks/{bridge-HVRG6SMU.js → bridge-LJLLDUMW.js} +17 -14
- package/dist/chunks/{ca-HCMB2I54.js → ca-MKD32FQL.js} +26 -1
- package/dist/chunks/{channel-worker-supervisor-B7MSMB5K.js → channel-worker-supervisor-NZQUOEFJ.js} +3 -3
- package/dist/chunks/{chunk-YRM6BC6H.js → chunk-27AYMAL6.js} +506 -63
- package/dist/chunks/{chunk-536GZ6UF.js → chunk-2MDC5WDB.js} +17 -111
- package/dist/chunks/{chunk-H3D6XAOL.js → chunk-2PRSBVPI.js} +3 -3
- package/dist/chunks/chunk-332PWN27.js +19 -0
- package/dist/chunks/{chunk-FVMWEHWU.js → chunk-3B26UVCX.js} +114 -12
- package/dist/chunks/{chunk-ZM5BPDXV.js → chunk-3F22JT4E.js} +1 -1
- package/dist/chunks/{chunk-W6RH6KHR.js → chunk-3GPVYALM.js} +4 -2
- package/dist/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
- package/dist/chunks/{chunk-PA7QS4X5.js → chunk-43W4YSO6.js} +1 -12
- package/dist/chunks/{chunk-5EB2HK3X.js → chunk-4IK56VLC.js} +1 -1
- package/dist/chunks/{chunk-UE5TCZE6.js → chunk-5FAUIGXH.js} +5 -13
- package/dist/chunks/{chunk-VEB3NYSO.js → chunk-5MBO76SL.js} +5 -0
- package/dist/chunks/{chunk-PDITONOB.js → chunk-5MRUKUOG.js} +5347 -4132
- package/dist/chunks/{chunk-4UC3U66K.js → chunk-6EUMFVPJ.js} +5 -5
- package/dist/chunks/{chunk-YOGGIAGF.js → chunk-6JL5OVLX.js} +1 -1
- package/dist/chunks/{chunk-QG4ZO2EB.js → chunk-74E6VVF6.js} +11 -11
- package/dist/chunks/chunk-A2X3KLC3.js +3807 -0
- package/dist/chunks/{chunk-BA4HLTG2.js → chunk-B6B2MUUF.js} +5 -5
- package/dist/chunks/{chunk-XKYOIERV.js → chunk-BN5VYAOZ.js} +681 -1239
- package/dist/chunks/{chunk-IO76BGJ3.js → chunk-BYUA6YYS.js} +15 -9
- package/dist/chunks/{chunk-NCFY7PWS.js → chunk-CCGOFQV3.js} +51 -2
- package/dist/chunks/{chunk-66KNL43D.js → chunk-CD6USWHZ.js} +1 -1
- package/dist/chunks/{chunk-ZWSTIPSW.js → chunk-CEITMQ62.js} +2 -2
- package/dist/chunks/{chunk-7AQTBTVY.js → chunk-EJP6Z7NU.js} +4 -3
- package/dist/chunks/{chunk-RTW5ZXHO.js → chunk-EZTNYRHH.js} +6 -5
- package/dist/chunks/{chunk-MJQFA66Z.js → chunk-FAATDXYS.js} +308 -81
- package/dist/chunks/{chunk-DNV4FSN5.js → chunk-FBET5XZ2.js} +6 -4
- package/dist/chunks/{chunk-HTC4R67V.js → chunk-FES4YXJ3.js} +9 -9
- package/dist/chunks/{chunk-NBKE6QRZ.js → chunk-FHTUTVIQ.js} +10 -5
- package/dist/chunks/chunk-FII3C4E7.js +168 -0
- package/dist/chunks/{chunk-2NL7ED5Q.js → chunk-FV7425LN.js} +22 -1
- package/dist/chunks/{chunk-J6OET6C3.js → chunk-GAI76CFX.js} +4 -4
- package/dist/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
- package/dist/chunks/chunk-GLE2YUPU.js +34 -0
- package/dist/chunks/{chunk-X265R5C6.js → chunk-GN3F6PIU.js} +1 -1
- package/dist/chunks/{chunk-SM624MOZ.js → chunk-GWUN54UD.js} +1 -1
- package/dist/chunks/chunk-H3TELH3H.js +942 -0
- package/dist/chunks/{chunk-XZULYFIX.js → chunk-HD4DZI2L.js} +2 -2
- package/dist/chunks/{chunk-KLLLWQM2.js → chunk-HPQIVXSP.js} +1 -1
- package/dist/chunks/{chunk-WSVZFWN4.js → chunk-IBY3Q3HG.js} +693 -104
- package/dist/chunks/{chunk-JSEOX4CM.js → chunk-JGR6W4IX.js} +14 -8
- package/dist/chunks/chunk-K652V4NH.js +283 -0
- package/dist/chunks/{chunk-OCBJKHF2.js → chunk-KH2CZZDD.js} +2 -2
- package/dist/chunks/chunk-LGFAYIKX.js +115 -0
- package/dist/chunks/{chunk-QG5KDB6X.js → chunk-LZDW5TDV.js} +5 -5
- package/dist/chunks/{chunk-ENKWIF75.js → chunk-MA4AZNP7.js} +10 -10
- package/dist/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
- package/dist/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
- package/dist/chunks/{chunk-ML2ZWH2K.js → chunk-PCWYMX57.js} +14 -153
- package/dist/chunks/{chunk-NHFBLJOI.js → chunk-Q3PQ5VGJ.js} +1 -1
- package/dist/chunks/{chunk-LGXBB2R2.js → chunk-QK3I36QG.js} +1 -1
- package/dist/chunks/chunk-RA7TR75G.js +8223 -0
- package/dist/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
- package/dist/chunks/{chunk-DHKDK57Q.js → chunk-SNZPA74J.js} +146 -54
- package/dist/chunks/{chunk-PWR5MVM3.js → chunk-SSP3UT5C.js} +4 -4
- package/dist/chunks/{chunk-4LETJLG2.js → chunk-SUCRVT5L.js} +1 -1
- package/dist/chunks/{chunk-5YLZHETW.js → chunk-TRR5KGDN.js} +1 -1
- package/dist/chunks/chunk-UIDXQNMV.js +13 -0
- package/dist/chunks/{chunk-PIORL4OD.js → chunk-UKV3D7WB.js} +0 -44
- package/dist/chunks/chunk-UYNUIGUR.js +167 -0
- package/dist/chunks/chunk-V2TYBEWU.js +28 -0
- package/dist/chunks/chunk-V35MD7KN.js +13 -0
- package/dist/chunks/{chunk-N4HTVZDZ.js → chunk-VR3KCBHH.js} +1 -1
- package/dist/chunks/{chunk-APYUOROB.js → chunk-W4CTWW7M.js} +423 -61
- package/dist/chunks/{chunk-ABANKQYY.js → chunk-WJAW2O5H.js} +92 -465
- package/dist/chunks/{chunk-6RSBRKF5.js → chunk-WN4YJJGH.js} +2 -2
- package/dist/chunks/chunk-XNXVCNAT.js +88 -0
- package/dist/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
- package/dist/chunks/chunk-XQPMKWSV.js +487 -0
- package/dist/chunks/{chunk-4FQL7KUS.js → chunk-XWDHZP7P.js} +8 -8
- package/dist/chunks/{chunk-REPRY4F7.js → chunk-YCKKP4QA.js} +10 -10
- package/dist/chunks/{chunk-YNWQ3PUQ.js → chunk-YJWMOGGZ.js} +3 -3
- package/dist/chunks/{chunk-RFIL6REB.js → chunk-YKZIAK7C.js} +119 -29
- package/dist/chunks/{chunk-45YCXM2H.js → chunk-YZDBUH6S.js} +45 -9
- package/dist/chunks/chunk-Z3I3QJK3.js +47 -0
- package/dist/chunks/{chunk-G23FFNLT.js → chunk-ZDGPPCTW.js} +20 -8
- package/dist/chunks/chunk-ZL5HN75Q.js +61 -0
- package/dist/chunks/{chunk-IQX5S2RS.js → chunk-ZL7JCYWM.js} +66 -7
- package/dist/chunks/{computer-use-A72BECH4.js → computer-use-4B45EG2F.js} +8 -8
- package/dist/chunks/{contextCommand-RREXA4B7.js → contextCommand-GIVRWNTS.js} +12 -11
- package/dist/chunks/{cron-create-DDYU4DIR.js → cron-create-JSXEIPVS.js} +1 -1
- package/dist/chunks/{cron-delete-DFKOUZWN.js → cron-delete-OIFVEPGU.js} +1 -1
- package/dist/chunks/{cron-list-ME5QGAR5.js → cron-list-D4ZX4IOE.js} +1 -1
- package/dist/chunks/{daemon-XWG2EGFX.js → daemon-WPAENEBW.js} +71 -3
- package/dist/chunks/{daemon-status-provider-Y6AFXTET.js → daemon-status-provider-WBOAMCHE.js} +20 -17
- package/dist/chunks/{de-PLLFDERI.js → de-ZFPPQVSF.js} +26 -1
- package/dist/chunks/{dist-LPVU3L2M.js → dist-BEXOZXLQ.js} +6 -3792
- package/dist/chunks/{dist-7GU63KI5.js → dist-E6UANPIM.js} +1 -1
- package/dist/chunks/{dist-VHBP2PIG.js → dist-H2AEJCZ5.js} +2 -2
- package/dist/chunks/{dist-3UDX5T4T.js → dist-O2IRTRPP.js} +1 -1
- package/dist/chunks/dist-SCFLLYMK.js +3217 -0
- package/dist/chunks/{dist-H4HHZYCI.js → dist-Z34QPAQW.js} +2 -2
- package/dist/chunks/{earlyInputCapture-OAHBOGOO.js → earlyInputCapture-JWMCAJZR.js} +8 -8
- package/dist/chunks/{edit-SFYW3FOV.js → edit-O5FUVHBE.js} +9 -9
- package/dist/chunks/{en-AXARKOWO.js → en-N4EPZAQI.js} +31 -2
- package/dist/chunks/{enter-worktree-LUPPQ2NH.js → enter-worktree-LOJFRC3D.js} +8 -8
- package/dist/chunks/{enterPlanMode-44GEN5U6.js → enterPlanMode-VS3FAUPX.js} +8 -8
- package/dist/chunks/environment-WKW5TLSH.js +90 -0
- package/dist/chunks/{errors-H3Q3W3DL.js → errors-LEZXHJMR.js} +10 -10
- package/dist/chunks/{exit-worktree-34CVVWT4.js → exit-worktree-RN2NXRMP.js} +8 -8
- package/dist/chunks/{exitPlanMode-5G5BHNUP.js → exitPlanMode-EPC424I4.js} +8 -8
- package/dist/chunks/{fast-path-7PKGFBRM.js → fast-path-UUPAFOSQ.js} +12 -3
- package/dist/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-7RIFI3PK.js} +3 -2
- package/dist/chunks/{fr-MBMNQSQ6.js → fr-5WWMY53B.js} +30 -1
- package/dist/chunks/{gemini-2II6JH4H.js → gemini-QCKK4XNU.js} +438 -265
- package/dist/chunks/{geminiContentGenerator-SWEJVOC4.js → geminiContentGenerator-DX4SRXJA.js} +1 -1
- package/dist/chunks/{glob-5DFC7DXW.js → glob-4URMJWRX.js} +8 -8
- package/dist/chunks/{grep-QYVXGRRJ.js → grep-AEQB5KED.js} +8 -8
- package/dist/chunks/handleAutoUpdate-Y4YNG34Y.js +65 -0
- package/dist/chunks/{initializer-XX3UGUHE.js → initializer-NDEBMSOG.js} +17 -13
- package/dist/chunks/{ja-HFV5QCHR.js → ja-CUHZOLEJ.js} +30 -1
- package/dist/chunks/{list-AX5FWBVC.js → list-VSCBNOWT.js} +17 -15
- package/dist/chunks/{loadedSettingsAdapter-ISOM6GJ7.js → loadedSettingsAdapter-FDO752BA.js} +15 -13
- package/dist/chunks/{loop-wakeup-ZW5P6VPY.js → loop-wakeup-OHWEMFP5.js} +2 -2
- package/dist/chunks/{ls-L654WOAT.js → ls-7MFU2QYW.js} +1 -1
- package/dist/chunks/{lsp-M35KE54Y.js → lsp-XHDTPTGV.js} +2 -4
- package/dist/chunks/{mcp-74F6725E.js → mcp-MLPWTHUV.js} +15 -13
- package/dist/chunks/{monitor-W4WRSC2C.js → monitor-WCVHIJUJ.js} +16 -11
- package/dist/chunks/{nonInteractiveCli-4QMV6C4J.js → nonInteractiveCli-32HZK274.js} +52 -44
- package/dist/chunks/{notebook-edit-XBZEIP42.js → notebook-edit-NPOMPKS4.js} +9 -9
- package/dist/chunks/{openaiContentGenerator-RTUJDESE.js → openaiContentGenerator-6AIBSRQK.js} +6 -6
- package/dist/chunks/{pidfile-YWSGNTPK.js → pidfile-7Y3QEDSZ.js} +8 -8
- package/dist/chunks/{pt-2THT3YHA.js → pt-OLYN42DS.js} +26 -1
- package/dist/chunks/{qwenContentGenerator-4ZFYAZLY.js → qwenContentGenerator-OUYOAYT4.js} +10 -10
- package/dist/chunks/{read-file-D7DKDIAC.js → read-file-EESFA24L.js} +3 -3
- package/dist/chunks/{record-artifact-PP3LKHTS.js → record-artifact-SQ2OKRJW.js} +3 -3
- package/dist/chunks/{ripGrep-KG7JYNER.js → ripGrep-DLYV7ZZG.js} +8 -8
- package/dist/chunks/{ru-PER5I4OI.js → ru-MKM2HFDS.js} +26 -1
- package/dist/chunks/{run-qwen-serve-XGJSNF6S.js → run-qwen-serve-WUEHQROF.js} +602 -143
- package/dist/chunks/{scheduler-MOLWOE4G.js → scheduler-SK4Y66V4.js} +8 -8
- package/dist/chunks/{send-message-OA6MV4EU.js → send-message-76GT3JMC.js} +1 -1
- package/dist/chunks/{serve-4ZNVPYND.js → serve-UCDGVZFI.js} +17 -14
- package/dist/chunks/{server-ACWDFHIF.js → server-FVGFFVZ4.js} +1394 -328
- package/dist/chunks/{session-VYO2GRO2.js → session-RIGKDMGR.js} +53 -45
- package/dist/chunks/{settings-4J2O3K22.js → settings-LVFFGXGE.js} +24 -20
- package/dist/chunks/{shell-RKERJYXR.js → shell-PAWNAFYN.js} +8 -8
- package/dist/chunks/{skill-JYACZJ5V.js → skill-5YIN3Z6Y.js} +15 -5
- package/dist/chunks/{spawnChannel-BA3U3RGX.js → spawnChannel-KIMZHWNR.js} +10 -10
- package/dist/chunks/{src-3P337V4P.js → src-BIWCD3VX.js} +21 -9
- package/dist/chunks/{startInteractiveUI-SUSZ6FWB.js → startInteractiveUI-AFXLGUFI.js} +33759 -41620
- package/dist/chunks/{task-create-RPFZNB4B.js → task-create-WCHTB435.js} +2 -2
- package/dist/chunks/{task-update-5WUG5MVQ.js → task-update-XYWMHJGJ.js} +2 -2
- package/dist/chunks/{team-create-YVWGRZEA.js → team-create-26WOMISV.js} +8 -8
- package/dist/chunks/{team-plan-approval-VRF54TTI.js → team-plan-approval-B5XB6UQC.js} +8 -8
- package/dist/chunks/{theme-manager-JW2KOACL.js → theme-manager-4TJ5TEFD.js} +8 -8
- package/dist/chunks/{tool-search-KUSMAZBN.js → tool-search-FFU63E6M.js} +6 -23
- package/dist/chunks/total-session-admission-JOD7SMPJ.js +72 -0
- package/dist/chunks/{trustedFolders-ERGSUCDK.js → trustedFolders-IJ2QHXSC.js} +9 -9
- package/dist/chunks/updateCheck-5Z25DCBP.js +65 -0
- package/dist/chunks/{validateNonInterActiveAuth-DDI62H5X.js → validateNonInterActiveAuth-G5EY47DE.js} +49 -41
- package/dist/chunks/{version-VB3AHVUF.js → version-LGO3GOKQ.js} +2 -1
- package/dist/chunks/{workflow-WINKRCI4.js → workflow-ZTK3WT3D.js} +9 -9
- package/dist/chunks/{workspace-providers-status-ZVZPXKSO.js → workspace-providers-status-YMPTRKW2.js} +18 -15
- package/dist/chunks/workspace-registry-NBUL6LBH.js +74 -0
- package/dist/chunks/{workspace-service-GAS2LV2P.js → workspace-service-V6G2RCD4.js} +21 -19
- package/dist/chunks/{workspace-skills-status-4WGKYJVA.js → workspace-skills-status-ZCW44BCH.js} +16 -14
- package/dist/chunks/{write-file-UTLKVZNN.js → write-file-4FUTAEW6.js} +9 -9
- package/dist/chunks/{zh-RS3HZHFH.js → zh-J4F6QWQV.js} +31 -2
- package/dist/chunks/{zh-TW-L5GRQ4S4.js → zh-TW-XVDWOLSW.js} +31 -2
- package/dist/cli.js +11 -11
- package/dist/locales/ca.js +30 -0
- package/dist/locales/de.js +30 -0
- package/dist/locales/en.js +38 -2
- package/dist/locales/fr.js +36 -0
- package/dist/locales/ja.js +36 -0
- package/dist/locales/pt.js +30 -0
- package/dist/locales/ru.js +30 -0
- package/dist/locales/zh-TW.js +38 -2
- package/dist/locales/zh.js +38 -2
- package/dist/package.json +3 -3
- package/dist/web-shell/assets/{arc-C6tzvtOa.js → arc-BWyoJpY2.js} +1 -1
- package/dist/web-shell/assets/{architectureDiagram-3BPJPVTR-DSYQFGn9.js → architectureDiagram-3BPJPVTR-BT0mGrz2.js} +1 -1
- package/dist/web-shell/assets/{blockDiagram-GPEHLZMM-CHjBdXAD.js → blockDiagram-GPEHLZMM-BLgUWvyf.js} +1 -1
- package/dist/web-shell/assets/{c4Diagram-AAUBKEIU-BQzK6Yyb.js → c4Diagram-AAUBKEIU-DYx9M7oU.js} +1 -1
- package/dist/web-shell/assets/channel-wmPUGHtg.js +1 -0
- package/dist/web-shell/assets/{chunk-2J33WTMH-hpP2p3Ij.js → chunk-2J33WTMH-CfMHWbuZ.js} +1 -1
- package/dist/web-shell/assets/{chunk-4BX2VUAB-B5KtK1JJ.js → chunk-4BX2VUAB-B1URoqEV.js} +1 -1
- package/dist/web-shell/assets/{chunk-55IACEB6-BDv6Mfr2.js → chunk-55IACEB6-DAIaM4QF.js} +1 -1
- package/dist/web-shell/assets/{chunk-727SXJPM-BevPWfrX.js → chunk-727SXJPM-B2X34knw.js} +1 -1
- package/dist/web-shell/assets/{chunk-AQP2D5EJ-ChDrz2ad.js → chunk-AQP2D5EJ-Cif-zLTQ.js} +1 -1
- package/dist/web-shell/assets/{chunk-FMBD7UC4-ClMdVSDs.js → chunk-FMBD7UC4-H18WCXdY.js} +1 -1
- package/dist/web-shell/assets/{chunk-ND2GUHAM-BceV8kZS.js → chunk-ND2GUHAM-YFtetHi0.js} +1 -1
- package/dist/web-shell/assets/{chunk-QZHKN3VN-DtyK2wwc.js → chunk-QZHKN3VN-By2hiH3r.js} +1 -1
- package/dist/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +1 -0
- package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +1 -0
- package/dist/web-shell/assets/{cose-bilkent-S5V4N54A-BGMsqwmE.js → cose-bilkent-S5V4N54A-VrcnnLZu.js} +1 -1
- package/dist/web-shell/assets/{dagre-BM42HDAG-C-71clpF.js → dagre-BM42HDAG-CGo-IaVV.js} +1 -1
- package/dist/web-shell/assets/{diagram-2AECGRRQ-WIzzlkec.js → diagram-2AECGRRQ-Dl4QjzIB.js} +1 -1
- package/dist/web-shell/assets/{diagram-5GNKFQAL-CtnhZUP1.js → diagram-5GNKFQAL-qMLmsO0u.js} +1 -1
- package/dist/web-shell/assets/{diagram-KO2AKTUF-CS_IUezp.js → diagram-KO2AKTUF-CHlmuxPI.js} +1 -1
- package/dist/web-shell/assets/{diagram-LMA3HP47-BQnGRwN9.js → diagram-LMA3HP47-BUwU3GwT.js} +1 -1
- package/dist/web-shell/assets/{diagram-OG6HWLK6-By2VIocq.js → diagram-OG6HWLK6-HEhwPDUM.js} +1 -1
- package/dist/web-shell/assets/{erDiagram-TEJ5UH35-Dy8WeNkr.js → erDiagram-TEJ5UH35-1n0llBmM.js} +1 -1
- package/dist/web-shell/assets/{flowDiagram-I6XJVG4X-Diu_4y0w.js → flowDiagram-I6XJVG4X-BN74uMnt.js} +1 -1
- package/dist/web-shell/assets/{ganttDiagram-6RSMTGT7-CH8euujP.js → ganttDiagram-6RSMTGT7-BoOq78i3.js} +1 -1
- package/dist/web-shell/assets/{gitGraphDiagram-PVQCEYII-DHiObZq1.js → gitGraphDiagram-PVQCEYII-CN8b00c8.js} +1 -1
- package/dist/web-shell/assets/index-CNwoO1Cn.js +783 -0
- package/dist/web-shell/assets/index-CWQ0z6kZ.css +5 -0
- package/dist/web-shell/assets/{infoDiagram-5YYISTIA-CvC9A6fh.js → infoDiagram-5YYISTIA-CCurnIna.js} +1 -1
- package/dist/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK46kC4E.js → ishikawaDiagram-YF4QCWOH-AwuRqdUP.js} +1 -1
- package/dist/web-shell/assets/{journeyDiagram-JHISSGLW-B2TIiKq4.js → journeyDiagram-JHISSGLW-B7IICk-E.js} +1 -1
- package/dist/web-shell/assets/{kanban-definition-UN3LZRKU-Bh0WAulO.js → kanban-definition-UN3LZRKU-BYF0OKhx.js} +1 -1
- package/dist/web-shell/assets/{linear-Bxe9SHMk.js → linear-GWWguGfD.js} +1 -1
- package/dist/web-shell/assets/{mermaid.core-B1Pv6D5B.js → mermaid.core-JqtkxvCl.js} +5 -5
- package/dist/web-shell/assets/{mindmap-definition-RKZ34NQL-Bz0joLH8.js → mindmap-definition-RKZ34NQL-B0MmHsZ6.js} +1 -1
- package/dist/web-shell/assets/{pieDiagram-4H26LBE5-CnN4x-VS.js → pieDiagram-4H26LBE5-DhImUZLQ.js} +1 -1
- package/dist/web-shell/assets/{quadrantDiagram-W4KKPZXB-BYWD4xO4.js → quadrantDiagram-W4KKPZXB-DGeSC3DT.js} +1 -1
- package/dist/web-shell/assets/{requirementDiagram-4Y6WPE33-B4MEhI9h.js → requirementDiagram-4Y6WPE33-DkspY6Re.js} +1 -1
- package/dist/web-shell/assets/{sankeyDiagram-5OEKKPKP-Dk_FgKLp.js → sankeyDiagram-5OEKKPKP-CaOofS2x.js} +1 -1
- package/dist/web-shell/assets/{sequenceDiagram-3UESZ5HK-B4ksiBZQ.js → sequenceDiagram-3UESZ5HK-DFQ_kFnN.js} +1 -1
- package/dist/web-shell/assets/{stateDiagram-AJRCARHV-CYf0xSPl.js → stateDiagram-AJRCARHV-D3snw0Tz.js} +1 -1
- package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +1 -0
- package/dist/web-shell/assets/{timeline-definition-PNZ67QCA-0CXeWHNY.js → timeline-definition-PNZ67QCA-l4zH8nLM.js} +1 -1
- package/dist/web-shell/assets/{vennDiagram-CIIHVFJN-DHoYY9v2.js → vennDiagram-CIIHVFJN-BnRlA98M.js} +1 -1
- package/dist/web-shell/assets/{wardley-L42UT6IY-D_65qshr.js → wardley-L42UT6IY-BS0xUdmd.js} +1 -1
- package/dist/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cv90x1sd.js → wardleyDiagram-YWT4CUSO-DKGBUWyQ.js} +1 -1
- package/dist/web-shell/assets/{xychartDiagram-2RQKCTM6-5FQCYJyh.js → xychartDiagram-2RQKCTM6-DVb2HuOB.js} +1 -1
- package/dist/web-shell/index.html +2 -2
- package/package.json +3 -2
- package/dist/web-shell/assets/channel-V-ZaJrA6.js +0 -1
- package/dist/web-shell/assets/classDiagram-4FO5ZUOK-s-H0snGT.js +0 -1
- package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-s-H0snGT.js +0 -1
- package/dist/web-shell/assets/index-DW75jq0K.css +0 -5
- package/dist/web-shell/assets/index-tiCo0xbZ.js +0 -779
- package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-CMtrFRUb.js +0 -1
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
handleAtCommand,
|
|
5
5
|
resolveAtCommandQuery,
|
|
6
6
|
sanitizeDisplayText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SSP3UT5C.js";
|
|
8
8
|
import {
|
|
9
9
|
isAtCommand,
|
|
10
10
|
isBtwCommand,
|
|
11
11
|
isSlashCommand,
|
|
12
12
|
normalizePartList,
|
|
13
13
|
recordGoalStatusItem
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BN5VYAOZ.js";
|
|
15
15
|
import {
|
|
16
16
|
SHELL_COMMAND_NAME,
|
|
17
17
|
fitPendingSlice,
|
|
18
18
|
useSessionStats
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-YZDBUH6S.js";
|
|
20
20
|
import {
|
|
21
21
|
require_react
|
|
22
22
|
} from "./chunk-KYMBIKIW.js";
|
|
@@ -28,10 +28,10 @@ import {
|
|
|
28
28
|
} from "./chunk-KHDZHZMH.js";
|
|
29
29
|
import {
|
|
30
30
|
isInlineModelOverrideAllowed
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-XWDHZP7P.js";
|
|
32
32
|
import {
|
|
33
33
|
t
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-MA4AZNP7.js";
|
|
35
35
|
import {
|
|
36
36
|
AutonomousLoopTickResolver,
|
|
37
37
|
CoreToolScheduler,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
setActiveGoal,
|
|
54
54
|
shouldRunVisionBridge,
|
|
55
55
|
splitImageParts
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-5MRUKUOG.js";
|
|
57
57
|
import {
|
|
58
58
|
ApiCancelEvent,
|
|
59
59
|
ConversationFinishedEvent,
|
|
@@ -63,17 +63,17 @@ import {
|
|
|
63
63
|
logConversationFinishedEvent,
|
|
64
64
|
logUserPrompt,
|
|
65
65
|
logUserRetry
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-27AYMAL6.js";
|
|
67
67
|
import {
|
|
68
68
|
isAnyAutoMemPath
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-OACJLMLD.js";
|
|
70
70
|
import {
|
|
71
71
|
ToolNames
|
|
72
72
|
} from "./chunk-X3YGAX7V.js";
|
|
73
73
|
import {
|
|
74
74
|
getUnsupportedImageFormatWarning,
|
|
75
75
|
isSupportedImageMimeType
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-UKV3D7WB.js";
|
|
77
77
|
import {
|
|
78
78
|
FinishReason
|
|
79
79
|
} from "./chunk-55ZMG67I.js";
|
|
@@ -1466,7 +1466,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1466
1466
|
);
|
|
1467
1467
|
if (!clipped) break;
|
|
1468
1468
|
let boundaryLine = -1;
|
|
1469
|
-
for (let k = Math.min(keptLines, bufferLines.length
|
|
1469
|
+
for (let k = Math.min(keptLines, bufferLines.length - 1); k >= 0; k--) {
|
|
1470
1470
|
if (bufferLines[k].trim() === "") {
|
|
1471
1471
|
boundaryLine = k;
|
|
1472
1472
|
break;
|
|
@@ -5,17 +5,17 @@ import {
|
|
|
5
5
|
} from "./chunk-6IAWPIQ6.js";
|
|
6
6
|
import {
|
|
7
7
|
loadSettings
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WJAW2O5H.js";
|
|
9
9
|
import {
|
|
10
10
|
STATUS_SCHEMA_VERSION
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-Q3PQ5VGJ.js";
|
|
12
12
|
import {
|
|
13
13
|
writeStderrLine
|
|
14
14
|
} from "./chunk-Y6Z2O3WR.js";
|
|
15
15
|
import {
|
|
16
16
|
SkillManager,
|
|
17
17
|
isSafeModeEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5MRUKUOG.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -16668,6 +16668,9 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
16668
16668
|
session_branch: { since: "v1" },
|
|
16669
16669
|
rate_limit: { since: "v1" },
|
|
16670
16670
|
workspace_reload: { since: "v1" },
|
|
16671
|
+
// Multi-workspace sessions closed loop (issue #6378 Phase 2a). Advertised
|
|
16672
|
+
// only when one daemon hosts more than one registered workspace runtime.
|
|
16673
|
+
multi_workspace_sessions: { since: "v1" },
|
|
16671
16674
|
// Phase 2 "reverse tool channel" (issue #5626). A connected WS client (e.g.
|
|
16672
16675
|
// the Chrome extension) can host an MCP server that the daemon's agent
|
|
16673
16676
|
// calls by carrying `mcp_message` JSON-RPC frames over the daemon WS,
|
|
@@ -16720,6 +16723,10 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
|
|
|
16720
16723
|
],
|
|
16721
16724
|
["rate_limit", (toggles) => toggles.rateLimit === true],
|
|
16722
16725
|
["workspace_reload", (toggles) => toggles.reloadAvailable === true],
|
|
16726
|
+
[
|
|
16727
|
+
"multi_workspace_sessions",
|
|
16728
|
+
(toggles) => toggles.multiWorkspaceSessionsEnabled === true
|
|
16729
|
+
],
|
|
16723
16730
|
["client_mcp_over_ws", (toggles) => toggles.clientMcpOverWsEnabled === true],
|
|
16724
16731
|
["cdp_tunnel_over_ws", (toggles) => toggles.cdpTunnelOverWsEnabled === true],
|
|
16725
16732
|
[
|
|
@@ -17231,35 +17238,78 @@ __name(parseDaemonStatusDetail, "parseDaemonStatusDetail");
|
|
|
17231
17238
|
async function buildDaemonStatusResponse(detail, input) {
|
|
17232
17239
|
const bridgeSnapshot = input.bridge.getDaemonStatusSnapshot();
|
|
17233
17240
|
const lastActivity = input.bridge.lastActivityAt ?? null;
|
|
17241
|
+
const workspaceRuntimes = input.workspaceRegistry?.list();
|
|
17242
|
+
const workspaceSnapshots = workspaceRuntimes?.map((runtime) => ({
|
|
17243
|
+
workspaceCwd: runtime.workspaceCwd,
|
|
17244
|
+
snapshot: runtime.bridge === input.bridge ? bridgeSnapshot : runtime.bridge.getDaemonStatusSnapshot(),
|
|
17245
|
+
lastActivity: runtime.bridge === input.bridge ? lastActivity : runtime.bridge.lastActivityAt ?? null
|
|
17246
|
+
})) ?? [
|
|
17247
|
+
{
|
|
17248
|
+
workspaceCwd: input.boundWorkspace,
|
|
17249
|
+
snapshot: bridgeSnapshot,
|
|
17250
|
+
lastActivity
|
|
17251
|
+
}
|
|
17252
|
+
];
|
|
17253
|
+
const aggregatedSessionCount = workspaceSnapshots.reduce(
|
|
17254
|
+
(sum, item) => sum + item.snapshot.sessionCount,
|
|
17255
|
+
0
|
|
17256
|
+
);
|
|
17257
|
+
const aggregatedPendingPermissionCount = workspaceSnapshots.reduce(
|
|
17258
|
+
(sum, item) => sum + item.snapshot.pendingPermissionCount,
|
|
17259
|
+
0
|
|
17260
|
+
);
|
|
17261
|
+
const aggregatedChannelLive = workspaceSnapshots.some(
|
|
17262
|
+
(item) => item.snapshot.channelLive
|
|
17263
|
+
);
|
|
17264
|
+
const aggregatedLastActivity = workspaceSnapshots.reduce(
|
|
17265
|
+
(latest, item) => item.lastActivity !== null && (latest === null || item.lastActivity > latest) ? item.lastActivity : latest,
|
|
17266
|
+
null
|
|
17267
|
+
);
|
|
17234
17268
|
const acpSnapshot = input.acpHandle?.registry.getSnapshot();
|
|
17235
17269
|
const rateLimitHits = input.rateLimiter?.getHitCounts() ?? zeroRateHits();
|
|
17236
17270
|
let pendingPrompts = 0;
|
|
17237
17271
|
let derivedQueuedPrompts = 0;
|
|
17238
|
-
|
|
17239
|
-
|
|
17240
|
-
|
|
17241
|
-
|
|
17242
|
-
|
|
17243
|
-
|
|
17272
|
+
const derivedQueuedPromptsByWorkspace = [];
|
|
17273
|
+
for (const [index, { snapshot }] of workspaceSnapshots.entries()) {
|
|
17274
|
+
let derivedQueuedPromptsForWorkspace = 0;
|
|
17275
|
+
for (const session of snapshot.sessions) {
|
|
17276
|
+
pendingPrompts += session.pendingPromptCount;
|
|
17277
|
+
const sessionQueuedPrompts = Math.max(
|
|
17278
|
+
0,
|
|
17279
|
+
session.pendingPromptCount - (session.hasActivePrompt ? 1 : 0)
|
|
17280
|
+
);
|
|
17281
|
+
derivedQueuedPrompts += sessionQueuedPrompts;
|
|
17282
|
+
derivedQueuedPromptsForWorkspace += sessionQueuedPrompts;
|
|
17283
|
+
}
|
|
17284
|
+
derivedQueuedPromptsByWorkspace[index] = derivedQueuedPromptsForWorkspace;
|
|
17244
17285
|
}
|
|
17245
|
-
const queuedPrompts =
|
|
17286
|
+
const queuedPrompts = workspaceRuntimes?.reduce(
|
|
17287
|
+
(sum, runtime, index) => sum + (runtime.bridge.pendingPromptTotal ?? derivedQueuedPromptsByWorkspace[index] ?? 0),
|
|
17288
|
+
0
|
|
17289
|
+
) ?? input.bridge.pendingPromptTotal ?? derivedQueuedPrompts;
|
|
17246
17290
|
const channelWorker = input.getChannelWorkerSnapshot?.() ?? {
|
|
17247
17291
|
enabled: false,
|
|
17248
17292
|
state: "disabled",
|
|
17249
17293
|
channels: []
|
|
17250
17294
|
};
|
|
17295
|
+
const totalAdmissionSnapshot = input.getTotalSessionAdmissionSnapshot?.();
|
|
17251
17296
|
const issues = [];
|
|
17252
17297
|
let full;
|
|
17253
17298
|
pushRuntimeIssues(
|
|
17254
17299
|
issues,
|
|
17255
|
-
bridgeSnapshot,
|
|
17256
17300
|
acpSnapshot,
|
|
17257
17301
|
rateLimitHits,
|
|
17258
17302
|
input,
|
|
17259
|
-
channelWorker
|
|
17303
|
+
channelWorker,
|
|
17304
|
+
totalAdmissionSnapshot,
|
|
17305
|
+
workspaceSnapshots
|
|
17260
17306
|
);
|
|
17261
17307
|
if (detail === "full") {
|
|
17262
|
-
full = await buildFullStatus(
|
|
17308
|
+
full = await buildFullStatus(
|
|
17309
|
+
input,
|
|
17310
|
+
acpSnapshot,
|
|
17311
|
+
workspaceSnapshots.flatMap((item) => item.snapshot.sessions)
|
|
17312
|
+
);
|
|
17263
17313
|
pushFullIssues(issues, full);
|
|
17264
17314
|
}
|
|
17265
17315
|
return {
|
|
@@ -17288,26 +17338,39 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
17288
17338
|
},
|
|
17289
17339
|
limits: {
|
|
17290
17340
|
maxSessions: bridgeSnapshot.limits.maxSessions,
|
|
17341
|
+
maxTotalSessions: positiveFiniteOrNull(input.opts.maxTotalSessions),
|
|
17291
17342
|
maxPendingPromptsPerSession: bridgeSnapshot.limits.maxPendingPromptsPerSession,
|
|
17292
17343
|
listenerMaxConnections: listenerMaxConnections(input.opts.maxConnections),
|
|
17293
17344
|
eventRingSize: bridgeSnapshot.limits.eventRingSize,
|
|
17345
|
+
compactedReplayMaxBytes: bridgeSnapshot.limits.compactedReplayMaxBytes,
|
|
17294
17346
|
promptDeadlineMs: positiveFiniteOrNull(input.opts.promptDeadlineMs),
|
|
17295
17347
|
writerIdleTimeoutMs: positiveFiniteOrNull(input.opts.writerIdleTimeoutMs),
|
|
17296
17348
|
channelIdleTimeoutMs: bridgeSnapshot.limits.channelIdleTimeoutMs,
|
|
17297
17349
|
sessionIdleTimeoutMs: bridgeSnapshot.limits.sessionIdleTimeoutMs,
|
|
17298
17350
|
acpConnectionCap: acpSnapshot?.connectionCap ?? null
|
|
17299
17351
|
},
|
|
17352
|
+
...workspaceRuntimes && workspaceRuntimes.length > 1 ? {
|
|
17353
|
+
workspaces: workspaceRuntimes.map((runtime) => ({
|
|
17354
|
+
id: runtime.workspaceId,
|
|
17355
|
+
cwd: runtime.workspaceCwd,
|
|
17356
|
+
primary: runtime.primary,
|
|
17357
|
+
trusted: runtime.trusted
|
|
17358
|
+
}))
|
|
17359
|
+
} : {},
|
|
17300
17360
|
capabilities: {
|
|
17301
17361
|
protocolVersions: input.protocolVersions,
|
|
17302
17362
|
features: [...input.features]
|
|
17303
17363
|
},
|
|
17304
17364
|
runtime: {
|
|
17305
|
-
sessions: {
|
|
17365
|
+
sessions: {
|
|
17366
|
+
active: aggregatedSessionCount,
|
|
17367
|
+
...totalAdmissionSnapshot ? { admissionInFlight: totalAdmissionSnapshot.inFlight } : {}
|
|
17368
|
+
},
|
|
17306
17369
|
permissions: {
|
|
17307
|
-
pending:
|
|
17370
|
+
pending: aggregatedPendingPermissionCount,
|
|
17308
17371
|
policy: bridgeSnapshot.permissionPolicy
|
|
17309
17372
|
},
|
|
17310
|
-
channel: { live:
|
|
17373
|
+
channel: { live: aggregatedChannelLive },
|
|
17311
17374
|
channelWorker,
|
|
17312
17375
|
transport: {
|
|
17313
17376
|
restSseActive: input.getRestSseActive(),
|
|
@@ -17328,11 +17391,14 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
17328
17391
|
...input.getPerfSnapshot ? { perf: input.getPerfSnapshot() } : {},
|
|
17329
17392
|
...input.getMetricsSeries ? { metrics: { series: input.getMetricsSeries() } } : {},
|
|
17330
17393
|
activity: {
|
|
17331
|
-
activePrompts:
|
|
17394
|
+
activePrompts: workspaceRuntimes?.reduce(
|
|
17395
|
+
(sum, runtime) => sum + (runtime.bridge.activePromptCount ?? 0),
|
|
17396
|
+
0
|
|
17397
|
+
) ?? input.bridge.activePromptCount ?? 0,
|
|
17332
17398
|
pendingPrompts,
|
|
17333
17399
|
queuedPrompts,
|
|
17334
|
-
lastActivityAt:
|
|
17335
|
-
idleSinceMs:
|
|
17400
|
+
lastActivityAt: aggregatedLastActivity !== null ? new Date(aggregatedLastActivity).toISOString() : null,
|
|
17401
|
+
idleSinceMs: aggregatedLastActivity !== null ? Date.now() - aggregatedLastActivity : null
|
|
17336
17402
|
},
|
|
17337
17403
|
process: process.memoryUsage()
|
|
17338
17404
|
},
|
|
@@ -17354,7 +17420,7 @@ function cloneStartup(startup) {
|
|
|
17354
17420
|
};
|
|
17355
17421
|
}
|
|
17356
17422
|
__name(cloneStartup, "cloneStartup");
|
|
17357
|
-
async function buildFullStatus(input,
|
|
17423
|
+
async function buildFullStatus(input, acpSnapshot, sessions) {
|
|
17358
17424
|
const ctx = {
|
|
17359
17425
|
route: "GET /daemon/status",
|
|
17360
17426
|
workspaceCwd: input.boundWorkspace
|
|
@@ -17394,7 +17460,7 @@ async function buildFullStatus(input, bridgeSnapshot, acpSnapshot) {
|
|
|
17394
17460
|
)
|
|
17395
17461
|
]);
|
|
17396
17462
|
return {
|
|
17397
|
-
sessions
|
|
17463
|
+
sessions,
|
|
17398
17464
|
acpConnections: acpSnapshot?.connections ?? [],
|
|
17399
17465
|
workspace: {
|
|
17400
17466
|
mcp,
|
|
@@ -17452,13 +17518,30 @@ async function withTimeout(promise, section, timeoutMs) {
|
|
|
17452
17518
|
}
|
|
17453
17519
|
}
|
|
17454
17520
|
__name(withTimeout, "withTimeout");
|
|
17455
|
-
function pushRuntimeIssues(issues,
|
|
17456
|
-
|
|
17457
|
-
|
|
17458
|
-
|
|
17459
|
-
|
|
17460
|
-
|
|
17461
|
-
|
|
17521
|
+
function pushRuntimeIssues(issues, acpSnapshot, rateLimitHits, input, channelWorker, totalAdmissionSnapshot, workspaceSnapshots) {
|
|
17522
|
+
for (const { workspaceCwd, snapshot } of workspaceSnapshots) {
|
|
17523
|
+
if (snapshot.limits.maxSessions !== null && snapshot.limits.maxSessions > 0 && snapshot.sessionCount / snapshot.limits.maxSessions >= CAPACITY_WARNING_RATIO) {
|
|
17524
|
+
issues.push({
|
|
17525
|
+
code: "session_capacity_high",
|
|
17526
|
+
severity: "warning",
|
|
17527
|
+
message: workspaceSnapshots.length > 1 ? `Workspace ${workspaceCwd} active sessions are at ${snapshot.sessionCount}/${snapshot.limits.maxSessions}.` : `Active sessions are at ${snapshot.sessionCount}/${snapshot.limits.maxSessions}.`
|
|
17528
|
+
});
|
|
17529
|
+
}
|
|
17530
|
+
}
|
|
17531
|
+
const maxTotalSessions = positiveFiniteOrNull(input.opts.maxTotalSessions);
|
|
17532
|
+
if (maxTotalSessions !== null) {
|
|
17533
|
+
const fallbackLiveCount = workspaceSnapshots.reduce(
|
|
17534
|
+
(sum, item) => sum + item.snapshot.sessionCount,
|
|
17535
|
+
0
|
|
17536
|
+
);
|
|
17537
|
+
const totalActive = (totalAdmissionSnapshot?.liveCount ?? fallbackLiveCount) + (totalAdmissionSnapshot?.inFlight ?? 0);
|
|
17538
|
+
if (totalActive / maxTotalSessions >= CAPACITY_WARNING_RATIO) {
|
|
17539
|
+
issues.push({
|
|
17540
|
+
code: "total_session_capacity_high",
|
|
17541
|
+
severity: "warning",
|
|
17542
|
+
message: `Total active and in-flight sessions are at ${totalActive}/${maxTotalSessions}.`
|
|
17543
|
+
});
|
|
17544
|
+
}
|
|
17462
17545
|
}
|
|
17463
17546
|
if (acpSnapshot !== void 0 && acpSnapshot.connectionCap !== null && acpSnapshot.connectionCap > 0 && acpSnapshot.connectionCount / acpSnapshot.connectionCap >= CAPACITY_WARNING_RATIO) {
|
|
17464
17547
|
issues.push({
|
|
@@ -17467,18 +17550,25 @@ function pushRuntimeIssues(issues, bridgeSnapshot, acpSnapshot, rateLimitHits, i
|
|
|
17467
17550
|
message: `ACP connections are at ${acpSnapshot.connectionCount}/${acpSnapshot.connectionCap}.`
|
|
17468
17551
|
});
|
|
17469
17552
|
}
|
|
17470
|
-
|
|
17553
|
+
const pendingPermissionCount = workspaceSnapshots.reduce(
|
|
17554
|
+
(sum, item) => sum + item.snapshot.pendingPermissionCount,
|
|
17555
|
+
0
|
|
17556
|
+
);
|
|
17557
|
+
if (pendingPermissionCount > 0) {
|
|
17471
17558
|
issues.push({
|
|
17472
17559
|
code: "pending_permissions",
|
|
17473
17560
|
severity: "warning",
|
|
17474
|
-
message: `${
|
|
17561
|
+
message: `${pendingPermissionCount} permission request(s) are pending.`
|
|
17475
17562
|
});
|
|
17476
17563
|
}
|
|
17477
|
-
|
|
17564
|
+
const downWorkspaces = workspaceSnapshots.filter(
|
|
17565
|
+
(item) => item.snapshot.sessionCount > 0 && !item.snapshot.channelLive
|
|
17566
|
+
);
|
|
17567
|
+
if (downWorkspaces.length > 0) {
|
|
17478
17568
|
issues.push({
|
|
17479
17569
|
code: "acp_channel_down",
|
|
17480
17570
|
severity: "error",
|
|
17481
|
-
message:
|
|
17571
|
+
message: downWorkspaces.length === 1 ? `Active sessions exist but the ACP channel is not live for ${downWorkspaces[0].workspaceCwd}.` : `Active sessions exist but the ACP channel is not live for ${downWorkspaces.length} workspace(s).`
|
|
17482
17572
|
});
|
|
17483
17573
|
}
|
|
17484
17574
|
if (input.opts.rateLimit === true && sumRateHits(rateLimitHits) > 0) {
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getEffectiveSupportedModes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6EUMFVPJ.js";
|
|
6
6
|
import {
|
|
7
7
|
require_jsx_runtime
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5FAUIGXH.js";
|
|
9
9
|
import {
|
|
10
10
|
require_react
|
|
11
11
|
} from "./chunk-KYMBIKIW.js";
|
|
12
12
|
import {
|
|
13
13
|
getCachedStringWidth
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2MDC5WDB.js";
|
|
15
15
|
import {
|
|
16
16
|
uiTelemetryService
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-27AYMAL6.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -376,6 +376,7 @@ __name(getCommandSubcommandNames, "getCommandSubcommandNames");
|
|
|
376
376
|
// packages/cli/src/ui/utils/pending-rendered-height.ts
|
|
377
377
|
init_esbuild_shims();
|
|
378
378
|
var TABLE_CHROME_ROWS = 5;
|
|
379
|
+
var TABLE_MAX_ROW_LINES = 4;
|
|
379
380
|
var TABLE_ROW_RE = /^\s*\|(.+)\|\s*$/;
|
|
380
381
|
var TABLE_SEPARATOR_RE = /^(?=.*\|)\s*\|?\s*(:?-+:?)\s*(\|\s*(:?-+:?)\s*)*\|?\s*$/;
|
|
381
382
|
var CODE_FENCE_RE = /^ *(`{3,}|~{3,}) *([^`]*)$/;
|
|
@@ -490,13 +491,47 @@ function fitPendingSlice(allLines, contentWidth, budget, tableClampRows) {
|
|
|
490
491
|
let j = i + 2;
|
|
491
492
|
while (j < allLines.length && TABLE_ROW_RE.test(allLines[j])) j++;
|
|
492
493
|
const dataRows = j - (i + 2);
|
|
493
|
-
const
|
|
494
|
+
const headerCells = splitMarkdownTableRow(
|
|
494
495
|
TABLE_ROW_RE.exec(allLines[i])[1]
|
|
495
|
-
)
|
|
496
|
+
);
|
|
497
|
+
const colCount = headerCells.length;
|
|
496
498
|
const minHorizontalWidth = Math.max(24, 6 * colCount + 5);
|
|
497
|
-
const
|
|
498
|
-
|
|
499
|
-
|
|
499
|
+
const perColWidth = Math.max(
|
|
500
|
+
3,
|
|
501
|
+
Math.floor((contentWidth - (1 + 3 * colCount) - 4) / colCount)
|
|
502
|
+
);
|
|
503
|
+
let contentRows = 0;
|
|
504
|
+
let verticalRows = 0;
|
|
505
|
+
let maxRowLines = 1;
|
|
506
|
+
for (const label of headerCells) {
|
|
507
|
+
maxRowLines = Math.max(
|
|
508
|
+
maxRowLines,
|
|
509
|
+
estimateWrappedRows(label, perColWidth)
|
|
510
|
+
);
|
|
511
|
+
}
|
|
512
|
+
contentRows += maxRowLines;
|
|
513
|
+
for (let r = i + 2; r < j; r++) {
|
|
514
|
+
const cells = splitMarkdownTableRow(
|
|
515
|
+
TABLE_ROW_RE.exec(allLines[r])[1]
|
|
516
|
+
);
|
|
517
|
+
let rowMax = 1;
|
|
518
|
+
for (let colIdx = 0; colIdx < cells.length; colIdx++) {
|
|
519
|
+
const value = cells[colIdx];
|
|
520
|
+
rowMax = Math.max(rowMax, estimateWrappedRows(value, perColWidth));
|
|
521
|
+
const label = headerCells[colIdx] ?? "";
|
|
522
|
+
verticalRows += estimateWrappedRows(
|
|
523
|
+
label ? `${label}: ${value}` : value,
|
|
524
|
+
contentWidth
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
contentRows += rowMax;
|
|
528
|
+
if (r === i + 2) {
|
|
529
|
+
maxRowLines = Math.max(maxRowLines, rowMax);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
const usesVertical = dataRows > 0 && (contentWidth < minHorizontalWidth || maxRowLines > TABLE_MAX_ROW_LINES);
|
|
533
|
+
const rows = usesVertical ? verticalRows + Math.max(0, dataRows - 1) + 2 : contentRows + Math.max(0, dataRows - 1) + TABLE_CHROME_ROWS;
|
|
534
|
+
const cost = Math.min(rows, tableClampRows + 2);
|
|
500
535
|
if (rendered + cost > budget && i > 0) {
|
|
501
536
|
kept = i;
|
|
502
537
|
break;
|
|
@@ -538,6 +573,7 @@ var TOOL_STATUS = {
|
|
|
538
573
|
};
|
|
539
574
|
|
|
540
575
|
export {
|
|
576
|
+
TABLE_MAX_ROW_LINES,
|
|
541
577
|
TABLE_ROW_RE,
|
|
542
578
|
TABLE_SEPARATOR_RE,
|
|
543
579
|
CODE_FENCE_RE,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
|
|
7
|
+
// packages/cli/src/config/shared-env-keys.ts
|
|
8
|
+
init_esbuild_shims();
|
|
9
|
+
var DEFAULT_EXCLUDED_ENV_VARS = ["DEBUG", "DEBUG_MODE"];
|
|
10
|
+
var ENV_CORRUPTED_PATH = "QWEN_CODE_SETTINGS_CORRUPTED_PATH";
|
|
11
|
+
var ENV_WAS_RECOVERED = "QWEN_CODE_SETTINGS_WAS_RECOVERED";
|
|
12
|
+
var PROJECT_ENV_HARDCODED_EXCLUSIONS = [
|
|
13
|
+
"QWEN_HOME",
|
|
14
|
+
"QWEN_RUNTIME_DIR",
|
|
15
|
+
"QWEN_CODE_MCP_APPROVALS_PATH",
|
|
16
|
+
"QWEN_CODE_TRUSTED_FOLDERS_PATH",
|
|
17
|
+
ENV_CORRUPTED_PATH,
|
|
18
|
+
ENV_WAS_RECOVERED,
|
|
19
|
+
// QWEN_TLS_INSECURE (and NODE_TLS_REJECT_UNAUTHORIZED, which it mirrors)
|
|
20
|
+
// disable TLS certificate verification for all outbound API connections. A
|
|
21
|
+
// project `.env` must never enable either — that would let an untrusted repo
|
|
22
|
+
// silently turn off MITM protection. Opt-in stays with the user via the
|
|
23
|
+
// `--insecure` flag, the shell environment, or a home `.env`. The initial
|
|
24
|
+
// `.env` load only consults this list, so both keys must be here (not just
|
|
25
|
+
// RELOAD_EXCLUDED_KEYS, which only applies on reload).
|
|
26
|
+
"QWEN_TLS_INSECURE",
|
|
27
|
+
"NODE_TLS_REJECT_UNAUTHORIZED"
|
|
28
|
+
];
|
|
29
|
+
var HOME_ENV_BOOTSTRAP_KEYS = [
|
|
30
|
+
"QWEN_HOME",
|
|
31
|
+
"QWEN_RUNTIME_DIR",
|
|
32
|
+
"QWEN_CODE_MCP_APPROVALS_PATH",
|
|
33
|
+
"QWEN_CODE_TRUSTED_FOLDERS_PATH"
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
DEFAULT_EXCLUDED_ENV_VARS,
|
|
38
|
+
ENV_CORRUPTED_PATH,
|
|
39
|
+
ENV_WAS_RECOVERED,
|
|
40
|
+
PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
41
|
+
HOME_ENV_BOOTSTRAP_KEYS
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @license
|
|
45
|
+
* Copyright 2025 Qwen Team
|
|
46
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
47
|
+
*/
|
|
@@ -3,22 +3,25 @@
|
|
|
3
3
|
import {
|
|
4
4
|
HEADLESS_YOLO_NO_SANDBOX_WARNING
|
|
5
5
|
} from "./chunk-BJBWRCSK.js";
|
|
6
|
+
import {
|
|
7
|
+
DEFAULT_RING_SIZE
|
|
8
|
+
} from "./chunk-3UP777ZS.js";
|
|
9
|
+
import {
|
|
10
|
+
DEFAULT_COMPACTED_REPLAY_MAX_BYTES
|
|
11
|
+
} from "./chunk-GLE2YUPU.js";
|
|
6
12
|
import {
|
|
7
13
|
normalizeServeChannelSelection
|
|
8
14
|
} from "./chunk-MX2YXRER.js";
|
|
9
15
|
import {
|
|
10
16
|
loadSettings
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
DEFAULT_RING_SIZE
|
|
14
|
-
} from "./chunk-G7ZG7CA6.js";
|
|
17
|
+
} from "./chunk-WJAW2O5H.js";
|
|
15
18
|
import {
|
|
16
19
|
writeStderrLine
|
|
17
20
|
} from "./chunk-Y6Z2O3WR.js";
|
|
18
21
|
import {
|
|
19
22
|
MCP_BUDGET_WARN_FRACTION,
|
|
20
23
|
parsePositiveIntegerEnv
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-5MRUKUOG.js";
|
|
22
25
|
import {
|
|
23
26
|
openBrowserSecurely,
|
|
24
27
|
shouldLaunchBrowser
|
|
@@ -88,6 +91,9 @@ var serveCommand = {
|
|
|
88
91
|
type: "number",
|
|
89
92
|
default: 20,
|
|
90
93
|
description: "Cap on concurrent live sessions. New spawn requests beyond this return 503; attach to existing sessions still works. Set to 0 to disable."
|
|
94
|
+
}).option("max-total-sessions", {
|
|
95
|
+
type: "number",
|
|
96
|
+
description: "Non-negative integer cap on concurrent live sessions across all workspace runtimes. Set to 0 to disable."
|
|
91
97
|
}).option("max-pending-prompts-per-session", {
|
|
92
98
|
type: "number",
|
|
93
99
|
default: 5,
|
|
@@ -96,7 +102,7 @@ var serveCommand = {
|
|
|
96
102
|
type: "string",
|
|
97
103
|
array: true,
|
|
98
104
|
requiresArg: true,
|
|
99
|
-
description: "Absolute workspace path this daemon binds to. POST /session requests with a mismatched cwd return 400 workspace_mismatch. Defaults to process.cwd() when omitted.
|
|
105
|
+
description: "Absolute workspace path this daemon binds to. POST /session requests with a mismatched cwd return 400 workspace_mismatch. Defaults to process.cwd() when omitted. Repeat for sessions-only multi-workspace mode; legacy workspace APIs remain primary-workspace only."
|
|
100
106
|
}).option("max-connections", {
|
|
101
107
|
type: "number",
|
|
102
108
|
default: 256,
|
|
@@ -139,10 +145,14 @@ var serveCommand = {
|
|
|
139
145
|
// one place rather than drifting between CLI and bus.
|
|
140
146
|
default: DEFAULT_RING_SIZE,
|
|
141
147
|
description: "Per-session SSE replay ring depth. Sets the replay backlog available to `GET /session/:id/events` reconnects that send a `Last-Event-ID: N` header. Larger = more reconnect headroom at the cost of a few hundred KB extra RAM per session. Must be a positive finite integer."
|
|
148
|
+
}).option("compacted-replay-max-bytes", {
|
|
149
|
+
type: "number",
|
|
150
|
+
default: DEFAULT_COMPACTED_REPLAY_MAX_BYTES,
|
|
151
|
+
description: "Per-session in-memory compacted replay snapshot byte cap for `POST /session/:id/load` late attaches. Larger = more recent history in load snapshots at higher heap cost. Must be a positive safe integer no larger than 256 MiB."
|
|
142
152
|
}).option("http-bridge", {
|
|
143
153
|
type: "boolean",
|
|
144
154
|
default: true,
|
|
145
|
-
description: "
|
|
155
|
+
description: "HTTP bridge mode: one `qwen --acp` child per registered workspace (sessions-only multi-workspace routing is enabled when multiple --workspace values are supplied). Stage 2 native in-process mode is not yet implemented; this flag will become opt-in then."
|
|
146
156
|
}).option("mcp-client-budget", {
|
|
147
157
|
type: "number",
|
|
148
158
|
description: "Cap on live MCP clients spawned inside the ACP child for the bound workspace. Positive integer. Combine with --mcp-budget-mode to control behavior at the cap. When unset, mode defaults to off (no accounting-driven enforcement, but GET /workspace/mcp still reports `clientCount`). Distinct from claude-code MCP_SERVER_CONNECTION_BATCH_SIZE which gates startup concurrency, not the total client count."
|
|
@@ -287,7 +297,7 @@ var serveCommand = {
|
|
|
287
297
|
process.exit(1);
|
|
288
298
|
}
|
|
289
299
|
}
|
|
290
|
-
const { runQwenServe } = await import("./run-qwen-serve-
|
|
300
|
+
const { runQwenServe } = await import("./run-qwen-serve-WUEHQROF.js");
|
|
291
301
|
try {
|
|
292
302
|
const handle = await runQwenServe({
|
|
293
303
|
port: argv.port,
|
|
@@ -295,9 +305,11 @@ var serveCommand = {
|
|
|
295
305
|
token: argv.token,
|
|
296
306
|
mode: "http-bridge",
|
|
297
307
|
maxSessions: argv["max-sessions"],
|
|
308
|
+
...argv["max-total-sessions"] !== void 0 ? { maxTotalSessions: argv["max-total-sessions"] } : {},
|
|
298
309
|
maxPendingPromptsPerSession,
|
|
299
310
|
maxConnections: argv["max-connections"],
|
|
300
311
|
eventRingSize: argv["event-ring-size"],
|
|
312
|
+
compactedReplayMaxBytes: argv["compacted-replay-max-bytes"],
|
|
301
313
|
workspace: argv.workspace,
|
|
302
314
|
requireAuth: argv["require-auth"],
|
|
303
315
|
enableSessionShell: argv["enable-session-shell"],
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
TotalSessionLimitExceededError
|
|
5
|
+
} from "./chunk-GGQQA4JW.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esbuild_shims
|
|
8
|
+
} from "./chunk-A4BMJM77.js";
|
|
9
|
+
import {
|
|
10
|
+
__name
|
|
11
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
12
|
+
|
|
13
|
+
// packages/cli/src/serve/total-session-admission.ts
|
|
14
|
+
init_esbuild_shims();
|
|
15
|
+
function createTotalSessionAdmissionController({
|
|
16
|
+
maxTotalSessions,
|
|
17
|
+
getBridges
|
|
18
|
+
}) {
|
|
19
|
+
let inFlight = 0;
|
|
20
|
+
const limit = maxTotalSessions === void 0 || maxTotalSessions === 0 || maxTotalSessions === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : maxTotalSessions;
|
|
21
|
+
return {
|
|
22
|
+
admit(context) {
|
|
23
|
+
if (limit !== Number.POSITIVE_INFINITY) {
|
|
24
|
+
if (getLiveCount(getBridges()) + inFlight >= limit) {
|
|
25
|
+
throw Object.assign(new TotalSessionLimitExceededError(limit), {
|
|
26
|
+
operation: context.operation,
|
|
27
|
+
workspaceCwd: context.workspaceCwd,
|
|
28
|
+
...context.sessionId ? { sessionId: context.sessionId } : {},
|
|
29
|
+
...context.sourceSessionId ? { sourceSessionId: context.sourceSessionId } : {}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
inFlight++;
|
|
34
|
+
let released = false;
|
|
35
|
+
return {
|
|
36
|
+
release() {
|
|
37
|
+
if (released) return;
|
|
38
|
+
released = true;
|
|
39
|
+
inFlight--;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
snapshot() {
|
|
44
|
+
return { liveCount: getLiveCount(getBridges()), inFlight };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
__name(createTotalSessionAdmissionController, "createTotalSessionAdmissionController");
|
|
49
|
+
function getLiveCount(bridges) {
|
|
50
|
+
return bridges.reduce((sum, bridge) => sum + bridge.sessionCount, 0);
|
|
51
|
+
}
|
|
52
|
+
__name(getLiveCount, "getLiveCount");
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
createTotalSessionAdmissionController
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* @license
|
|
59
|
+
* Copyright 2026 Qwen Team
|
|
60
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
61
|
+
*/
|