@qwen-code/qwen-code 0.19.3-nightly.20260701.a974594d7 → 0.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/loop/loop-tick-resolver.test.ts +42 -0
- package/bundled/loop/loop-tick-resolver.ts +1 -1
- package/bundled/qc-helper/docs/configuration/auth.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +23 -11
- package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
- package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
- package/bundled/qc-helper/docs/features/code-review.md +17 -61
- package/bundled/qc-helper/docs/features/commands.md +6 -6
- package/bundled/qc-helper/docs/features/mcp.md +3 -1
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
- package/bundled/qc-helper/docs/qwen-serve.md +19 -0
- package/bundled/review/DESIGN.md +21 -26
- package/bundled/review/SKILL.md +45 -129
- package/chunks/{MaxSizedBox-UZHJ73JB.js → MaxSizedBox-ERTNFI22.js} +20 -18
- package/chunks/{StandaloneSessionPicker-GGUIZWCE.js → StandaloneSessionPicker-Y5NGRLRY.js} +32 -29
- package/chunks/{acpAgent-QYZFICEZ.js → acpAgent-UMN6OYTR.js} +473 -187
- package/chunks/{agent-2EN7YNSW.js → agent-56DZU4ZU.js} +17 -15
- package/chunks/{agent-headless-SLTEZ5LV.js → agent-headless-SR7N2IJG.js} +17 -15
- package/chunks/{anthropicContentGenerator-CA3JTAMO.js → anthropicContentGenerator-5OZFO6WQ.js} +1 -1
- package/chunks/{artifact-tool-RM7WINJO.js → artifact-tool-JVZMHA4B.js} +1 -1
- package/chunks/{askUserQuestion-J3P6QAJ7.js → askUserQuestion-CMJZ2F3D.js} +1 -1
- package/chunks/{bridge-HZVAUTMX.js → bridge-AUHNFOUS.js} +23 -21
- package/chunks/channel-worker-supervisor-A74FV522.js +308 -0
- package/chunks/{chunk-N4V4VBP6.js → chunk-2X2JUE47.js} +2 -2
- package/chunks/{chunk-JV7A66DR.js → chunk-4VZH35PN.js} +528 -358
- package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
- package/chunks/{chunk-WGY3GIPP.js → chunk-6AQR7732.js} +1 -1
- package/chunks/{chunk-FR3II765.js → chunk-6CIIP6OE.js} +4 -4
- package/chunks/{chunk-IKO44NAT.js → chunk-6TLY5W3B.js} +2 -2
- package/chunks/{chunk-VN4CKYUW.js → chunk-73H73ASU.js} +1 -1
- package/chunks/{chunk-IBEM64M4.js → chunk-75X2VLSH.js} +36 -25
- package/chunks/{chunk-PLQTLKMR.js → chunk-7KPI4LAI.js} +3 -3
- package/chunks/{chunk-NVTRORSK.js → chunk-7VPC7D7O.js} +2 -2
- package/chunks/chunk-AHNXYU4O.js +24 -0
- package/chunks/{chunk-MTJVHQDP.js → chunk-B7KGXIPZ.js} +302 -257
- package/chunks/{chunk-35FH347N.js → chunk-BFG6OZN7.js} +16097 -16236
- package/chunks/{chunk-T44AF4I6.js → chunk-BNJLLAQ7.js} +1 -1
- package/chunks/{chunk-OEY3YAL2.js → chunk-BQNJBEUA.js} +2 -2
- package/chunks/{chunk-Q7TDHJ2G.js → chunk-C2IHHGBZ.js} +10 -10
- package/chunks/chunk-CG7SVARK.js +367 -0
- package/chunks/{chunk-7SP275SH.js → chunk-CS5XYDBO.js} +5 -5
- package/chunks/{chunk-V5YJAUHW.js → chunk-CUGEBAKG.js} +1 -1
- package/chunks/{chunk-FQDMX5IL.js → chunk-D5KISTLW.js} +309 -72
- package/chunks/{chunk-I4MXURND.js → chunk-DQ74W65K.js} +356 -468
- package/chunks/chunk-E5A7LHNN.js +51 -0
- package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
- package/chunks/chunk-EDAGQADF.js +21 -0
- package/chunks/{chunk-HUGAEYZR.js → chunk-FNLXLI4I.js} +2 -2
- package/chunks/{chunk-WJAY4WXR.js → chunk-FYKX6XOT.js} +1 -1
- package/chunks/{chunk-CA4ML3VH.js → chunk-G7OQ3RFJ.js} +1 -1
- package/chunks/{chunk-VHRREANT.js → chunk-GICCHL2Q.js} +3 -1
- package/chunks/{chunk-QHHNFG22.js → chunk-GLPV75ES.js} +1 -1
- package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
- package/chunks/chunk-HI55Z6PR.js +3523 -0
- package/chunks/{chunk-B5MPZI4K.js → chunk-HJDF3ZVU.js} +2670 -1233
- package/chunks/{chunk-GDIG7TMG.js → chunk-HRZB5CSC.js} +1 -1
- package/chunks/{chunk-LDWTYE33.js → chunk-J3F7X3LW.js} +1 -1
- package/chunks/{chunk-FV4SQ54H.js → chunk-KVPFPC4J.js} +227 -85
- package/chunks/{chunk-Q3JOGB4U.js → chunk-L7QPM2YD.js} +1 -1
- package/chunks/{chunk-4722VFFU.js → chunk-L7VH7HQA.js} +6 -6
- package/chunks/{chunk-HWG4XLD7.js → chunk-LKWAVAB5.js} +1 -1
- package/chunks/{chunk-YCRTJYSQ.js → chunk-MEQWZGK5.js} +1 -1
- package/chunks/{chunk-6FIWYVN4.js → chunk-MKHC4BYZ.js} +30 -5
- package/chunks/{chunk-YCEHOJZJ.js → chunk-MNDTD5E5.js} +65 -38
- package/chunks/{chunk-ZGSV5ORL.js → chunk-MVZXZWGT.js} +809 -759
- package/chunks/chunk-MX2YXRER.js +44 -0
- package/chunks/{chunk-TMILTLP3.js → chunk-ND25GXEU.js} +21 -4
- package/chunks/{chunk-AIBPG5MB.js → chunk-OAFUMTWW.js} +2 -2
- package/chunks/chunk-OJCECIJA.js +238 -0
- package/chunks/{chunk-EUURTJY7.js → chunk-PIYV6COW.js} +1 -1
- package/chunks/{chunk-LXEW6BHF.js → chunk-Q7VHIRDD.js} +1 -1
- package/chunks/{chunk-DBR7PF4B.js → chunk-QAFQLTXG.js} +1 -1
- package/chunks/{chunk-3TK7FSCP.js → chunk-QMIND2AS.js} +3 -3
- package/chunks/{chunk-ESVSWG6Z.js → chunk-QOMAHFYI.js} +1 -1
- package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
- package/chunks/chunk-RM3PGSGL.js +66 -0
- package/chunks/chunk-RNBYOUGV.js +42 -0
- package/chunks/chunk-S5EQPDTM.js +91 -0
- package/chunks/{chunk-GZKQ36JS.js → chunk-SFN4TEHY.js} +4 -4
- package/chunks/{chunk-DHXWNSJA.js → chunk-T22H4V4R.js} +42 -0
- package/chunks/{chunk-LXGWLOCM.js → chunk-TENOUWY2.js} +1 -1
- package/chunks/{chunk-BLAE2TCO.js → chunk-TTFNVEO5.js} +3 -3
- package/chunks/{chunk-FZY7NH37.js → chunk-UANCYOOQ.js} +1 -1
- package/chunks/{chunk-E5I6YSNO.js → chunk-UQFP2FEF.js} +1 -1
- package/chunks/{chunk-3O2BJMFW.js → chunk-UQYOMM6J.js} +4 -4
- package/chunks/{chunk-JERW36RG.js → chunk-UT5JU5DJ.js} +15 -15
- package/chunks/{chunk-DJ25MIU2.js → chunk-VKGG724L.js} +8 -8
- package/chunks/{chunk-G525INVW.js → chunk-W2ZOAX7F.js} +3 -3
- package/chunks/{chunk-HIYUAXBG.js → chunk-W6X4FGWX.js} +1 -1
- package/chunks/{chunk-OE5J6UA7.js → chunk-XCUFHOAD.js} +1 -1
- package/chunks/{chunk-KXVVXAAC.js → chunk-YBDZ63KI.js} +3 -3
- package/chunks/{chunk-Z34RYLRO.js → chunk-ZJP5T7IA.js} +1 -1
- package/chunks/{chunk-NOYV2NXI.js → chunk-ZXCVPMIK.js} +411 -43
- package/chunks/{computer-use-FCNWHVPW.js → computer-use-VWN5HH6A.js} +20 -18
- package/chunks/{contextCommand-FVFMZZEU.js → contextCommand-DFFG5KDJ.js} +19 -17
- package/chunks/{cron-create-IY5NMIHQ.js → cron-create-CSSWJ67I.js} +1 -1
- package/chunks/{cron-delete-OLNEQWKO.js → cron-delete-E56CFQ7A.js} +1 -1
- package/chunks/{cron-list-YAUAUV24.js → cron-list-BKSINY6Y.js} +1 -1
- package/chunks/daemon-5T6IHWJV.js +8430 -0
- package/chunks/{daemon-status-provider-42JEXENZ.js → daemon-status-provider-V5UY7O7J.js} +26 -24
- package/chunks/{dist-4FCNM6KJ.js → dist-2HDL5SHQ.js} +2 -2
- package/chunks/{dist-SU6L7ZNJ.js → dist-B7SSDVWT.js} +3 -3
- package/chunks/{dist-VD7HXTML.js → dist-BL3SL665.js} +1 -1
- package/chunks/{dist-UKPWQJCL.js → dist-TAVAGZU6.js} +37 -13
- package/chunks/{dist-K4XZILIO.js → dist-XBOVZ3R5.js} +26 -5
- package/chunks/{earlyInputCapture-FFFEC6P4.js → earlyInputCapture-VVYU4FDO.js} +17 -15
- package/chunks/{edit-32ILSGZY.js → edit-F35PTMBA.js} +17 -15
- package/chunks/{en-U3LWGSFX.js → en-FZREZFPO.js} +18 -0
- package/chunks/{enter-worktree-XWZKIN6A.js → enter-worktree-3DIW7EGJ.js} +17 -15
- package/chunks/{enterPlanMode-LPFFY7BJ.js → enterPlanMode-QNXT77KP.js} +27 -15
- package/chunks/{errors-UXBPYPI2.js → errors-M53YG76R.js} +19 -17
- package/chunks/{exit-worktree-IBS4UIU7.js → exit-worktree-BSDWNWHZ.js} +17 -15
- package/chunks/{exitPlanMode-JA72YHII.js → exitPlanMode-EL7AY327.js} +41 -23
- package/chunks/{fast-path-7UU67Y2W.js → fast-path-DUCSMUFW.js} +2 -2
- package/chunks/{gemini-GMVKJNMX.js → gemini-F3IERB37.js} +59 -51
- package/chunks/{geminiContentGenerator-7NIFF2L4.js → geminiContentGenerator-6OULAKFQ.js} +1 -1
- package/chunks/{glob-4NJCW5HI.js → glob-ZMLFTD4T.js} +17 -15
- package/chunks/{grep-PAIMLQEL.js → grep-H5X66EI7.js} +17 -15
- package/chunks/{initializer-R6KU4VYM.js → initializer-LEOT2OLH.js} +21 -19
- package/chunks/{list-H7LXAO64.js → list-M3DKXML6.js} +23 -21
- package/chunks/{loadedSettingsAdapter-H27JMTLU.js → loadedSettingsAdapter-OKMQFGGG.js} +21 -19
- package/chunks/{loop-wakeup-Y3OIRQFM.js → loop-wakeup-FPBAVVPR.js} +2 -2
- package/chunks/{ls-TVJEYS7O.js → ls-UGWQXPTY.js} +1 -1
- package/chunks/{lsp-JZSDVR3F.js → lsp-24WV7NXB.js} +1 -1
- package/chunks/{monitor-JSIHDPXP.js → monitor-ARL5P45R.js} +19 -16
- package/chunks/{nonInteractiveCli-Y4CHOETG.js → nonInteractiveCli-NUVLF3YR.js} +53 -45
- package/chunks/{notebook-edit-SHRNL2UM.js → notebook-edit-ANTZ2DDY.js} +17 -15
- package/chunks/{openaiContentGenerator-ORZZ7VFO.js → openaiContentGenerator-TFGMKGHN.js} +6 -6
- package/chunks/pidfile-AWTL4C63.js +72 -0
- package/chunks/{qwenContentGenerator-H643PL2G.js → qwenContentGenerator-6QWAYTWS.js} +18 -16
- package/chunks/{qwenOAuth2-OI2B7PES.js → qwenOAuth2-LWLA6MQG.js} +3 -3
- package/chunks/{read-file-5PRNPTTY.js → read-file-EJY73XQ3.js} +4 -4
- package/chunks/{read-mcp-resource-QTXGKTEV.js → read-mcp-resource-NCBTPP7X.js} +1 -1
- package/chunks/{ripGrep-JIKZMABJ.js → ripGrep-HC4SA6CQ.js} +17 -15
- package/chunks/{run-qwen-serve-PQV7QOHZ.js → run-qwen-serve-AGLZ642J.js} +291 -55
- package/chunks/{scheduler-OS3R5MGU.js → scheduler-TURO7NGY.js} +17 -15
- package/chunks/{send-message-DKGHWSTF.js → send-message-3S2NYS3O.js} +5 -3
- package/chunks/{serve-LVYZDKCZ.js → serve-5DAMOIDW.js} +22 -19
- package/chunks/{server-P4YIH35I.js → server-4AGEK2HC.js} +2268 -1222
- package/chunks/{session-DE4TZBKH.js → session-7ZOQUC4Y.js} +54 -46
- package/chunks/{settings-DFTYMJYF.js → settings-DR4V6L5Y.js} +20 -18
- package/chunks/{shell-3GNQLNV7.js → shell-H5WFKUXH.js} +17 -15
- package/chunks/{skill-NCNG4KKZ.js → skill-ANHU5ZCR.js} +4 -4
- package/chunks/{spawnChannel-DHRIMDVL.js → spawnChannel-VN5LJV7Z.js} +19 -17
- package/chunks/{src-PNZYGM3R.js → src-OVZLTVVM.js} +49 -17
- package/chunks/{startInteractiveUI-P6GZBFQW.js → startInteractiveUI-OA22V32P.js} +11110 -10670
- package/chunks/{syntheticOutput-X7L5HWLN.js → syntheticOutput-SV7GBHZ5.js} +2 -2
- package/chunks/{task-create-AWEUI4GI.js → task-create-W2H2UJCH.js} +6 -5
- package/chunks/{task-list-KZ3VJLDU.js → task-list-THBOPV4G.js} +5 -4
- package/chunks/{task-stop-GUNOZKJ5.js → task-stop-33FVCNCJ.js} +1 -1
- package/chunks/{task-update-Y56GP6DU.js → task-update-LVFQLXEI.js} +6 -5
- package/chunks/{team-create-6JMW3KQK.js → team-create-OYL5CAQO.js} +17 -15
- package/chunks/{team-delete-6AFRGDJY.js → team-delete-NTUQ25UY.js} +5 -4
- package/chunks/{theme-manager-FEHQO22G.js → theme-manager-XCMPF2SI.js} +17 -15
- package/chunks/{todoWrite-JRS6NOEU.js → todoWrite-SEPO2RI3.js} +1 -1
- package/chunks/{tool-search-IXAEKS7J.js → tool-search-YXW55X6Z.js} +29 -5
- package/chunks/{trustedFolders-SJRXNHZE.js → trustedFolders-TEPGM5YL.js} +18 -16
- package/chunks/{validateNonInterActiveAuth-HCH7OBDH.js → validateNonInterActiveAuth-OQIS7WUE.js} +50 -42
- package/chunks/{web-fetch-RELNL37A.js → web-fetch-OE7LHURA.js} +4 -4
- package/chunks/{workflow-M2COBI7R.js → workflow-RTUWORAP.js} +48 -27
- package/chunks/{workspace-providers-status-GOCWYDMK.js → workspace-providers-status-DM2XANVB.js} +23 -21
- package/chunks/{workspace-service-34C7SUBU.js → workspace-service-VKBI2KZD.js} +27 -25
- package/chunks/{write-file-E52WRXZL.js → write-file-WGALQ53L.js} +17 -15
- package/chunks/{zh-TW-LKLBTZHE.js → zh-TW-6GIKXEAN.js} +18 -0
- package/chunks/{zh-F5T4WWZO.js → zh-V3B4TFWL.js} +18 -0
- package/cli.js +6 -6
- package/locales/en.js +30 -0
- package/locales/fr.js +1 -2
- package/locales/ja.js +1 -2
- package/locales/zh-TW.js +29 -0
- package/locales/zh.js +29 -0
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-C2DILvUl.js → arc-Det5Ccum.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-b8gZ2cNw.js → architectureDiagram-3BPJPVTR-DqNWVFpl.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BuRpghMj.js → blockDiagram-GPEHLZMM-CYl7tYBi.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-2ItdhFmE.js → c4Diagram-AAUBKEIU-DaAEi0NQ.js} +1 -1
- package/web-shell/assets/channel-Bm0bFauD.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-B1QXa0q3.js → chunk-2J33WTMH-Df2CDEE2.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DXfhKlNq.js → chunk-4BX2VUAB-DNBFcyL2.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-ClSNjxLo.js → chunk-55IACEB6-BKjF-0HI.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dsh2wisB.js → chunk-727SXJPM-DYwAwfIM.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C1TkY5AR.js → chunk-AQP2D5EJ-C6FswLqy.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CGtN9XR6.js → chunk-FMBD7UC4-DRWAcZSY.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BHiPi1SS.js → chunk-ND2GUHAM-AoL16mNR.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CzG3I5o1.js → chunk-QZHKN3VN-a8PtLMck.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--NgUfb55.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--NgUfb55.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-EgrIoH_K.js → cose-bilkent-S5V4N54A-C4Aeu5qf.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BUnpdX8S.js → dagre-BM42HDAG-BOulamjo.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BlLUCVYu.js → diagram-2AECGRRQ-D1wt2ykO.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-FG-enmjQ.js → diagram-5GNKFQAL-BRseus-O.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BlzmTONk.js → diagram-KO2AKTUF-XSMkNzpZ.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-CoBQ8mIx.js → diagram-LMA3HP47-21KNLqoi.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DvxV6sX8.js → diagram-OG6HWLK6-DnUI8F5G.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Jq1tpAoj.js → erDiagram-TEJ5UH35-BVSOMuM2.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CbtYOry5.js → flowDiagram-I6XJVG4X-fYtDPJsW.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-ZEn2VEKR.js → ganttDiagram-6RSMTGT7-CmRXosW_.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BZh-LkhJ.js → gitGraphDiagram-PVQCEYII-DPrmySxO.js} +1 -1
- package/web-shell/assets/index-BpKnmyFV.js +717 -0
- package/web-shell/assets/index-fLrtxpOG.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-B9HuZygK.js → infoDiagram-5YYISTIA-x3VbEuCV.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D76cNpYG.js → ishikawaDiagram-YF4QCWOH-SmitHRMC.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-6bGo7P1t.js → journeyDiagram-JHISSGLW-BxvA551S.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DuYyRBvB.js → kanban-definition-UN3LZRKU-DNHC16jY.js} +1 -1
- package/web-shell/assets/{linear-CpdSW1BC.js → linear-CQ6irBL9.js} +1 -1
- package/web-shell/assets/{mermaid.core-s5xbZMMj.js → mermaid.core-DtB6NO1e.js} +72 -72
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-go01fZ2y.js → mindmap-definition-RKZ34NQL-QKMAgV2v.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BfuZiEHO.js → pieDiagram-4H26LBE5-bvb6dGn6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DsoINqV6.js → quadrantDiagram-W4KKPZXB-DLgdlG4D.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7FU4LiU.js → requirementDiagram-4Y6WPE33-2M9YH4GF.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BEDjFnGB.js → sankeyDiagram-5OEKKPKP-DzwfclTH.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-gzmmL5tK.js → sequenceDiagram-3UESZ5HK-BvPmTuy2.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BtHD4IN_.js → stateDiagram-AJRCARHV-BjwUmrJF.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C4L8zXeL.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-T_8gmMCf.js → timeline-definition-PNZ67QCA-CXzS6qqz.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DdjuqnjO.js → vennDiagram-CIIHVFJN-yRSolF5B.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-Cgtrvb37.js → wardley-L42UT6IY-ClLJjHPG.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BW3f3-yW.js → wardleyDiagram-YWT4CUSO-VIa6t2p2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BUS9IKkc.js → xychartDiagram-2RQKCTM6-CtmrkezW.js} +1 -1
- package/web-shell/index.html +18 -2
- package/chunks/chunk-2JKEQWDZ.js +0 -1596
- package/chunks/chunk-32MCHZQC.js +0 -73
- package/chunks/chunk-UAKXW3DN.js +0 -30
- package/web-shell/assets/channel-eRvn2UA3.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-YZNwy1rx.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-YZNwy1rx.js +0 -1
- package/web-shell/assets/index-5FhE0ORO.css +0 -5
- package/web-shell/assets/index-CDTGmqVm.js +0 -720
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DFy6gLDd.js +0 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
isLoopbackBind
|
|
5
|
+
} from "./chunk-RNBYOUGV.js";
|
|
3
6
|
import {
|
|
4
7
|
require_lib
|
|
5
8
|
} from "./chunk-3HX5LZ6R.js";
|
|
@@ -11332,13 +11335,13 @@ var require_is_promise = __commonJS({
|
|
|
11332
11335
|
}
|
|
11333
11336
|
});
|
|
11334
11337
|
|
|
11335
|
-
// node_modules/
|
|
11338
|
+
// node_modules/path-to-regexp/dist/index.js
|
|
11336
11339
|
var require_dist2 = __commonJS({
|
|
11337
|
-
"node_modules/
|
|
11340
|
+
"node_modules/path-to-regexp/dist/index.js"(exports) {
|
|
11338
11341
|
"use strict";
|
|
11339
11342
|
init_esbuild_shims();
|
|
11340
11343
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11341
|
-
exports.TokenData = void 0;
|
|
11344
|
+
exports.PathError = exports.TokenData = void 0;
|
|
11342
11345
|
exports.parse = parse;
|
|
11343
11346
|
exports.compile = compile;
|
|
11344
11347
|
exports.match = match;
|
|
@@ -11348,176 +11351,129 @@ var require_dist2 = __commonJS({
|
|
|
11348
11351
|
var NOOP_VALUE = /* @__PURE__ */ __name((value) => value, "NOOP_VALUE");
|
|
11349
11352
|
var ID_START = /^[$_\p{ID_Start}]$/u;
|
|
11350
11353
|
var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u;
|
|
11351
|
-
var
|
|
11352
|
-
var SIMPLE_TOKENS = {
|
|
11353
|
-
// Groups.
|
|
11354
|
-
"{": "{",
|
|
11355
|
-
"}": "}",
|
|
11356
|
-
// Reserved.
|
|
11357
|
-
"(": "(",
|
|
11358
|
-
")": ")",
|
|
11359
|
-
"[": "[",
|
|
11360
|
-
"]": "]",
|
|
11361
|
-
"+": "+",
|
|
11362
|
-
"?": "?",
|
|
11363
|
-
"!": "!"
|
|
11364
|
-
};
|
|
11354
|
+
var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;
|
|
11365
11355
|
function escapeText(str) {
|
|
11366
|
-
return str.replace(/[{}()\[\]
|
|
11356
|
+
return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&");
|
|
11367
11357
|
}
|
|
11368
11358
|
__name(escapeText, "escapeText");
|
|
11369
11359
|
function escape(str) {
|
|
11370
11360
|
return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&");
|
|
11371
11361
|
}
|
|
11372
11362
|
__name(escape, "escape");
|
|
11373
|
-
|
|
11374
|
-
const chars = [...str];
|
|
11375
|
-
let i = 0;
|
|
11376
|
-
function name() {
|
|
11377
|
-
let value = "";
|
|
11378
|
-
if (ID_START.test(chars[++i])) {
|
|
11379
|
-
value += chars[i];
|
|
11380
|
-
while (ID_CONTINUE.test(chars[++i])) {
|
|
11381
|
-
value += chars[i];
|
|
11382
|
-
}
|
|
11383
|
-
} else if (chars[i] === '"') {
|
|
11384
|
-
let pos = i;
|
|
11385
|
-
while (i < chars.length) {
|
|
11386
|
-
if (chars[++i] === '"') {
|
|
11387
|
-
i++;
|
|
11388
|
-
pos = 0;
|
|
11389
|
-
break;
|
|
11390
|
-
}
|
|
11391
|
-
if (chars[i] === "\\") {
|
|
11392
|
-
value += chars[++i];
|
|
11393
|
-
} else {
|
|
11394
|
-
value += chars[i];
|
|
11395
|
-
}
|
|
11396
|
-
}
|
|
11397
|
-
if (pos) {
|
|
11398
|
-
throw new TypeError(`Unterminated quote at ${pos}: ${DEBUG_URL}`);
|
|
11399
|
-
}
|
|
11400
|
-
}
|
|
11401
|
-
if (!value) {
|
|
11402
|
-
throw new TypeError(`Missing parameter name at ${i}: ${DEBUG_URL}`);
|
|
11403
|
-
}
|
|
11404
|
-
return value;
|
|
11405
|
-
}
|
|
11406
|
-
__name(name, "name");
|
|
11407
|
-
while (i < chars.length) {
|
|
11408
|
-
const value = chars[i];
|
|
11409
|
-
const type = SIMPLE_TOKENS[value];
|
|
11410
|
-
if (type) {
|
|
11411
|
-
yield { type, index: i++, value };
|
|
11412
|
-
} else if (value === "\\") {
|
|
11413
|
-
yield { type: "ESCAPED", index: i++, value: chars[i++] };
|
|
11414
|
-
} else if (value === ":") {
|
|
11415
|
-
const value2 = name();
|
|
11416
|
-
yield { type: "PARAM", index: i, value: value2 };
|
|
11417
|
-
} else if (value === "*") {
|
|
11418
|
-
const value2 = name();
|
|
11419
|
-
yield { type: "WILDCARD", index: i, value: value2 };
|
|
11420
|
-
} else {
|
|
11421
|
-
yield { type: "CHAR", index: i, value: chars[i++] };
|
|
11422
|
-
}
|
|
11423
|
-
}
|
|
11424
|
-
return { type: "END", index: i, value: "" };
|
|
11425
|
-
}
|
|
11426
|
-
__name(lexer, "lexer");
|
|
11427
|
-
var Iter = class {
|
|
11363
|
+
var TokenData = class {
|
|
11428
11364
|
static {
|
|
11429
|
-
__name(this, "
|
|
11365
|
+
__name(this, "TokenData");
|
|
11430
11366
|
}
|
|
11431
|
-
constructor(tokens) {
|
|
11367
|
+
constructor(tokens, originalPath) {
|
|
11432
11368
|
this.tokens = tokens;
|
|
11433
|
-
|
|
11434
|
-
peek() {
|
|
11435
|
-
if (!this._peek) {
|
|
11436
|
-
const next = this.tokens.next();
|
|
11437
|
-
this._peek = next.value;
|
|
11438
|
-
}
|
|
11439
|
-
return this._peek;
|
|
11440
|
-
}
|
|
11441
|
-
tryConsume(type) {
|
|
11442
|
-
const token = this.peek();
|
|
11443
|
-
if (token.type !== type)
|
|
11444
|
-
return;
|
|
11445
|
-
this._peek = void 0;
|
|
11446
|
-
return token.value;
|
|
11447
|
-
}
|
|
11448
|
-
consume(type) {
|
|
11449
|
-
const value = this.tryConsume(type);
|
|
11450
|
-
if (value !== void 0)
|
|
11451
|
-
return value;
|
|
11452
|
-
const { type: nextType, index } = this.peek();
|
|
11453
|
-
throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}: ${DEBUG_URL}`);
|
|
11454
|
-
}
|
|
11455
|
-
text() {
|
|
11456
|
-
let result = "";
|
|
11457
|
-
let value;
|
|
11458
|
-
while (value = this.tryConsume("CHAR") || this.tryConsume("ESCAPED")) {
|
|
11459
|
-
result += value;
|
|
11460
|
-
}
|
|
11461
|
-
return result;
|
|
11369
|
+
this.originalPath = originalPath;
|
|
11462
11370
|
}
|
|
11463
11371
|
};
|
|
11464
|
-
|
|
11372
|
+
exports.TokenData = TokenData;
|
|
11373
|
+
var PathError = class extends TypeError {
|
|
11465
11374
|
static {
|
|
11466
|
-
__name(this, "
|
|
11375
|
+
__name(this, "PathError");
|
|
11467
11376
|
}
|
|
11468
|
-
constructor(
|
|
11469
|
-
|
|
11377
|
+
constructor(message, originalPath) {
|
|
11378
|
+
let text = message;
|
|
11379
|
+
if (originalPath)
|
|
11380
|
+
text += `: ${originalPath}`;
|
|
11381
|
+
text += `; visit https://git.new/pathToRegexpError for info`;
|
|
11382
|
+
super(text);
|
|
11383
|
+
this.originalPath = originalPath;
|
|
11470
11384
|
}
|
|
11471
11385
|
};
|
|
11472
|
-
exports.
|
|
11386
|
+
exports.PathError = PathError;
|
|
11473
11387
|
function parse(str, options = {}) {
|
|
11474
11388
|
const { encodePath = NOOP_VALUE } = options;
|
|
11475
|
-
const
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
|
|
11479
|
-
|
|
11480
|
-
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
|
|
11484
|
-
|
|
11485
|
-
|
|
11486
|
-
|
|
11487
|
-
|
|
11389
|
+
const chars = [...str];
|
|
11390
|
+
let index = 0;
|
|
11391
|
+
function consumeUntil(end) {
|
|
11392
|
+
const output = [];
|
|
11393
|
+
let path3 = "";
|
|
11394
|
+
function writePath() {
|
|
11395
|
+
if (!path3)
|
|
11396
|
+
return;
|
|
11397
|
+
output.push({
|
|
11398
|
+
type: "text",
|
|
11399
|
+
value: encodePath(path3)
|
|
11400
|
+
});
|
|
11401
|
+
path3 = "";
|
|
11402
|
+
}
|
|
11403
|
+
__name(writePath, "writePath");
|
|
11404
|
+
while (index < chars.length) {
|
|
11405
|
+
const value = chars[index++];
|
|
11406
|
+
if (value === end) {
|
|
11407
|
+
writePath();
|
|
11408
|
+
return output;
|
|
11409
|
+
}
|
|
11410
|
+
if (value === "\\") {
|
|
11411
|
+
if (index === chars.length) {
|
|
11412
|
+
throw new PathError(`Unexpected end after \\ at index ${index}`, str);
|
|
11413
|
+
}
|
|
11414
|
+
path3 += chars[index++];
|
|
11488
11415
|
continue;
|
|
11489
11416
|
}
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
11493
|
-
|
|
11494
|
-
|
|
11495
|
-
|
|
11417
|
+
if (value === ":" || value === "*") {
|
|
11418
|
+
const type = value === ":" ? "param" : "wildcard";
|
|
11419
|
+
let name = "";
|
|
11420
|
+
if (ID_START.test(chars[index])) {
|
|
11421
|
+
do {
|
|
11422
|
+
name += chars[index++];
|
|
11423
|
+
} while (ID_CONTINUE.test(chars[index]));
|
|
11424
|
+
} else if (chars[index] === '"') {
|
|
11425
|
+
let quoteStart = index;
|
|
11426
|
+
while (index < chars.length) {
|
|
11427
|
+
if (chars[++index] === '"') {
|
|
11428
|
+
index++;
|
|
11429
|
+
quoteStart = 0;
|
|
11430
|
+
break;
|
|
11431
|
+
}
|
|
11432
|
+
if (chars[index] === "\\")
|
|
11433
|
+
index++;
|
|
11434
|
+
name += chars[index];
|
|
11435
|
+
}
|
|
11436
|
+
if (quoteStart) {
|
|
11437
|
+
throw new PathError(`Unterminated quote at index ${quoteStart}`, str);
|
|
11438
|
+
}
|
|
11439
|
+
}
|
|
11440
|
+
if (!name) {
|
|
11441
|
+
throw new PathError(`Missing parameter name at index ${index}`, str);
|
|
11442
|
+
}
|
|
11443
|
+
writePath();
|
|
11444
|
+
output.push({ type, name });
|
|
11496
11445
|
continue;
|
|
11497
11446
|
}
|
|
11498
|
-
|
|
11499
|
-
|
|
11500
|
-
|
|
11447
|
+
if (value === "{") {
|
|
11448
|
+
writePath();
|
|
11449
|
+
output.push({
|
|
11501
11450
|
type: "group",
|
|
11502
|
-
tokens:
|
|
11451
|
+
tokens: consumeUntil("}")
|
|
11503
11452
|
});
|
|
11504
11453
|
continue;
|
|
11505
11454
|
}
|
|
11506
|
-
|
|
11507
|
-
|
|
11455
|
+
if (value === "}" || value === "(" || value === ")" || value === "[" || value === "]" || value === "+" || value === "?" || value === "!") {
|
|
11456
|
+
throw new PathError(`Unexpected ${value} at index ${index - 1}`, str);
|
|
11457
|
+
}
|
|
11458
|
+
path3 += value;
|
|
11508
11459
|
}
|
|
11460
|
+
if (end) {
|
|
11461
|
+
throw new PathError(`Unexpected end at index ${index}, expected ${end}`, str);
|
|
11462
|
+
}
|
|
11463
|
+
writePath();
|
|
11464
|
+
return output;
|
|
11509
11465
|
}
|
|
11510
|
-
__name(
|
|
11511
|
-
|
|
11512
|
-
return new TokenData(tokens);
|
|
11466
|
+
__name(consumeUntil, "consumeUntil");
|
|
11467
|
+
return new TokenData(consumeUntil(""), str);
|
|
11513
11468
|
}
|
|
11514
11469
|
__name(parse, "parse");
|
|
11515
11470
|
function compile(path3, options = {}) {
|
|
11516
11471
|
const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
|
|
11517
|
-
const data = path3
|
|
11472
|
+
const data = typeof path3 === "object" ? path3 : parse(path3, options);
|
|
11518
11473
|
const fn = tokensToFunction(data.tokens, delimiter, encode);
|
|
11519
|
-
return /* @__PURE__ */ __name(function path4(
|
|
11520
|
-
const
|
|
11474
|
+
return /* @__PURE__ */ __name(function path4(params = {}) {
|
|
11475
|
+
const missing = [];
|
|
11476
|
+
const path5 = fn(params, missing);
|
|
11521
11477
|
if (missing.length) {
|
|
11522
11478
|
throw new TypeError(`Missing parameters: ${missing.join(", ")}`);
|
|
11523
11479
|
}
|
|
@@ -11527,12 +11483,10 @@ var require_dist2 = __commonJS({
|
|
|
11527
11483
|
__name(compile, "compile");
|
|
11528
11484
|
function tokensToFunction(tokens, delimiter, encode) {
|
|
11529
11485
|
const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));
|
|
11530
|
-
return (data) => {
|
|
11531
|
-
|
|
11486
|
+
return (data, missing) => {
|
|
11487
|
+
let result = "";
|
|
11532
11488
|
for (const encoder of encoders) {
|
|
11533
|
-
|
|
11534
|
-
result[0] += value;
|
|
11535
|
-
result.push(...extras);
|
|
11489
|
+
result += encoder(data, missing);
|
|
11536
11490
|
}
|
|
11537
11491
|
return result;
|
|
11538
11492
|
};
|
|
@@ -11540,43 +11494,51 @@ var require_dist2 = __commonJS({
|
|
|
11540
11494
|
__name(tokensToFunction, "tokensToFunction");
|
|
11541
11495
|
function tokenToFunction(token, delimiter, encode) {
|
|
11542
11496
|
if (token.type === "text")
|
|
11543
|
-
return () =>
|
|
11497
|
+
return () => token.value;
|
|
11544
11498
|
if (token.type === "group") {
|
|
11545
11499
|
const fn = tokensToFunction(token.tokens, delimiter, encode);
|
|
11546
|
-
return (data) => {
|
|
11547
|
-
const
|
|
11548
|
-
|
|
11549
|
-
|
|
11550
|
-
|
|
11500
|
+
return (data, missing) => {
|
|
11501
|
+
const len = missing.length;
|
|
11502
|
+
const value = fn(data, missing);
|
|
11503
|
+
if (missing.length === len)
|
|
11504
|
+
return value;
|
|
11505
|
+
missing.length = len;
|
|
11506
|
+
return "";
|
|
11551
11507
|
};
|
|
11552
11508
|
}
|
|
11553
11509
|
const encodeValue = encode || NOOP_VALUE;
|
|
11554
11510
|
if (token.type === "wildcard" && encode !== false) {
|
|
11555
|
-
return (data) => {
|
|
11511
|
+
return (data, missing) => {
|
|
11556
11512
|
const value = data[token.name];
|
|
11557
|
-
if (value == null)
|
|
11558
|
-
|
|
11513
|
+
if (value == null) {
|
|
11514
|
+
missing.push(token.name);
|
|
11515
|
+
return "";
|
|
11516
|
+
}
|
|
11559
11517
|
if (!Array.isArray(value) || value.length === 0) {
|
|
11560
11518
|
throw new TypeError(`Expected "${token.name}" to be a non-empty array`);
|
|
11561
11519
|
}
|
|
11562
|
-
|
|
11563
|
-
|
|
11564
|
-
|
|
11565
|
-
|
|
11566
|
-
|
|
11567
|
-
|
|
11568
|
-
|
|
11569
|
-
|
|
11520
|
+
let result = "";
|
|
11521
|
+
for (let i = 0; i < value.length; i++) {
|
|
11522
|
+
if (typeof value[i] !== "string") {
|
|
11523
|
+
throw new TypeError(`Expected "${token.name}/${i}" to be a string`);
|
|
11524
|
+
}
|
|
11525
|
+
if (i > 0)
|
|
11526
|
+
result += delimiter;
|
|
11527
|
+
result += encodeValue(value[i]);
|
|
11528
|
+
}
|
|
11529
|
+
return result;
|
|
11570
11530
|
};
|
|
11571
11531
|
}
|
|
11572
|
-
return (data) => {
|
|
11532
|
+
return (data, missing) => {
|
|
11573
11533
|
const value = data[token.name];
|
|
11574
|
-
if (value == null)
|
|
11575
|
-
|
|
11534
|
+
if (value == null) {
|
|
11535
|
+
missing.push(token.name);
|
|
11536
|
+
return "";
|
|
11537
|
+
}
|
|
11576
11538
|
if (typeof value !== "string") {
|
|
11577
11539
|
throw new TypeError(`Expected "${token.name}" to be a string`);
|
|
11578
11540
|
}
|
|
11579
|
-
return
|
|
11541
|
+
return encodeValue(value);
|
|
11580
11542
|
};
|
|
11581
11543
|
}
|
|
11582
11544
|
__name(tokenToFunction, "tokenToFunction");
|
|
@@ -11610,112 +11572,161 @@ var require_dist2 = __commonJS({
|
|
|
11610
11572
|
function pathToRegexp(path3, options = {}) {
|
|
11611
11573
|
const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
|
|
11612
11574
|
const keys = [];
|
|
11613
|
-
|
|
11614
|
-
|
|
11615
|
-
|
|
11616
|
-
|
|
11617
|
-
|
|
11618
|
-
|
|
11619
|
-
|
|
11620
|
-
sources.push(regexp2);
|
|
11575
|
+
let source = "";
|
|
11576
|
+
let combinations = 0;
|
|
11577
|
+
function process2(path4) {
|
|
11578
|
+
if (Array.isArray(path4)) {
|
|
11579
|
+
for (const p of path4)
|
|
11580
|
+
process2(p);
|
|
11581
|
+
return;
|
|
11621
11582
|
}
|
|
11583
|
+
const data = typeof path4 === "object" ? path4 : parse(path4, options);
|
|
11584
|
+
flatten(data.tokens, 0, [], (tokens) => {
|
|
11585
|
+
if (combinations >= 256) {
|
|
11586
|
+
throw new PathError("Too many path combinations", data.originalPath);
|
|
11587
|
+
}
|
|
11588
|
+
if (combinations > 0)
|
|
11589
|
+
source += "|";
|
|
11590
|
+
source += toRegExpSource(tokens, delimiter, keys, data.originalPath);
|
|
11591
|
+
combinations++;
|
|
11592
|
+
});
|
|
11622
11593
|
}
|
|
11623
|
-
|
|
11594
|
+
__name(process2, "process");
|
|
11595
|
+
process2(path3);
|
|
11596
|
+
let pattern = `^(?:${source})`;
|
|
11624
11597
|
if (trailing)
|
|
11625
|
-
pattern +=
|
|
11626
|
-
pattern += end ? "$" :
|
|
11627
|
-
|
|
11628
|
-
return { regexp, keys };
|
|
11598
|
+
pattern += "(?:" + escape(delimiter) + "$)?";
|
|
11599
|
+
pattern += end ? "$" : "(?=" + escape(delimiter) + "|$)";
|
|
11600
|
+
return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys };
|
|
11629
11601
|
}
|
|
11630
11602
|
__name(pathToRegexp, "pathToRegexp");
|
|
11631
|
-
function
|
|
11632
|
-
|
|
11633
|
-
|
|
11634
|
-
|
|
11635
|
-
|
|
11636
|
-
|
|
11637
|
-
|
|
11638
|
-
|
|
11639
|
-
yield* flatten(tokens, index + 1, seq);
|
|
11603
|
+
function flatten(tokens, index, result, callback) {
|
|
11604
|
+
while (index < tokens.length) {
|
|
11605
|
+
const token = tokens[index++];
|
|
11606
|
+
if (token.type === "group") {
|
|
11607
|
+
const len = result.length;
|
|
11608
|
+
flatten(token.tokens, 0, result, (seq) => flatten(tokens, index, seq, callback));
|
|
11609
|
+
result.length = len;
|
|
11610
|
+
continue;
|
|
11640
11611
|
}
|
|
11641
|
-
|
|
11642
|
-
init.push(token);
|
|
11612
|
+
result.push(token);
|
|
11643
11613
|
}
|
|
11644
|
-
|
|
11614
|
+
callback(result);
|
|
11645
11615
|
}
|
|
11646
11616
|
__name(flatten, "flatten");
|
|
11647
|
-
function
|
|
11617
|
+
function toRegExpSource(tokens, delimiter, keys, originalPath) {
|
|
11648
11618
|
let result = "";
|
|
11649
11619
|
let backtrack = "";
|
|
11650
|
-
let
|
|
11651
|
-
|
|
11652
|
-
|
|
11620
|
+
let wildcardBacktrack = "";
|
|
11621
|
+
let prevCaptureType = 0;
|
|
11622
|
+
let hasSegmentCapture = 0;
|
|
11623
|
+
let index = 0;
|
|
11624
|
+
function hasInSegment(index2, type) {
|
|
11625
|
+
while (index2 < tokens.length) {
|
|
11626
|
+
const token = tokens[index2++];
|
|
11627
|
+
if (token.type === type)
|
|
11628
|
+
return true;
|
|
11629
|
+
if (token.type === "text") {
|
|
11630
|
+
if (token.value.includes(delimiter))
|
|
11631
|
+
break;
|
|
11632
|
+
}
|
|
11633
|
+
}
|
|
11634
|
+
return false;
|
|
11635
|
+
}
|
|
11636
|
+
__name(hasInSegment, "hasInSegment");
|
|
11637
|
+
function peekText(index2) {
|
|
11638
|
+
let result2 = "";
|
|
11639
|
+
while (index2 < tokens.length) {
|
|
11640
|
+
const token = tokens[index2++];
|
|
11641
|
+
if (token.type !== "text")
|
|
11642
|
+
break;
|
|
11643
|
+
result2 += token.value;
|
|
11644
|
+
}
|
|
11645
|
+
return result2;
|
|
11646
|
+
}
|
|
11647
|
+
__name(peekText, "peekText");
|
|
11648
|
+
while (index < tokens.length) {
|
|
11649
|
+
const token = tokens[index++];
|
|
11653
11650
|
if (token.type === "text") {
|
|
11654
11651
|
result += escape(token.value);
|
|
11655
11652
|
backtrack += token.value;
|
|
11656
|
-
|
|
11653
|
+
if (prevCaptureType === 2)
|
|
11654
|
+
wildcardBacktrack += token.value;
|
|
11655
|
+
if (token.value.includes(delimiter))
|
|
11656
|
+
hasSegmentCapture = 0;
|
|
11657
11657
|
continue;
|
|
11658
11658
|
}
|
|
11659
11659
|
if (token.type === "param" || token.type === "wildcard") {
|
|
11660
|
-
if (
|
|
11661
|
-
throw new
|
|
11660
|
+
if (prevCaptureType && !backtrack) {
|
|
11661
|
+
throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath);
|
|
11662
11662
|
}
|
|
11663
11663
|
if (token.type === "param") {
|
|
11664
|
-
result += `(${negate(delimiter,
|
|
11664
|
+
result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape(backtrack)})` : `(${negate(delimiter, "")}+)`;
|
|
11665
|
+
hasSegmentCapture |= prevCaptureType = 1;
|
|
11665
11666
|
} else {
|
|
11666
|
-
result += `([
|
|
11667
|
+
result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`;
|
|
11668
|
+
wildcardBacktrack = "";
|
|
11669
|
+
hasSegmentCapture |= prevCaptureType = 2;
|
|
11667
11670
|
}
|
|
11668
11671
|
keys.push(token);
|
|
11669
11672
|
backtrack = "";
|
|
11670
|
-
isSafeSegmentParam = false;
|
|
11671
11673
|
continue;
|
|
11672
11674
|
}
|
|
11675
|
+
throw new TypeError(`Unknown token type: ${token.type}`);
|
|
11673
11676
|
}
|
|
11674
11677
|
return result;
|
|
11675
11678
|
}
|
|
11676
|
-
__name(
|
|
11677
|
-
function negate(
|
|
11678
|
-
if (
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
|
|
11686
|
-
return `
|
|
11679
|
+
__name(toRegExpSource, "toRegExpSource");
|
|
11680
|
+
function negate(a, b) {
|
|
11681
|
+
if (b.length > a.length)
|
|
11682
|
+
return negate(b, a);
|
|
11683
|
+
if (a === b)
|
|
11684
|
+
b = "";
|
|
11685
|
+
if (b.length > 1)
|
|
11686
|
+
return `(?:(?!${escape(a)}|${escape(b)})[^])`;
|
|
11687
|
+
if (a.length > 1)
|
|
11688
|
+
return `(?:(?!${escape(a)})[^${escape(b)}])`;
|
|
11689
|
+
return `[^${escape(a + b)}]`;
|
|
11687
11690
|
}
|
|
11688
11691
|
__name(negate, "negate");
|
|
11689
|
-
function
|
|
11690
|
-
|
|
11691
|
-
|
|
11692
|
-
|
|
11692
|
+
function stringifyTokens(tokens, index) {
|
|
11693
|
+
let value = "";
|
|
11694
|
+
while (index < tokens.length) {
|
|
11695
|
+
const token = tokens[index++];
|
|
11696
|
+
if (token.type === "text") {
|
|
11697
|
+
value += escapeText(token.value);
|
|
11698
|
+
continue;
|
|
11699
|
+
}
|
|
11693
11700
|
if (token.type === "group") {
|
|
11694
|
-
|
|
11701
|
+
value += "{" + stringifyTokens(token.tokens, 0) + "}";
|
|
11702
|
+
continue;
|
|
11695
11703
|
}
|
|
11696
|
-
|
|
11697
|
-
|
|
11698
|
-
|
|
11699
|
-
|
|
11700
|
-
if (token.type === "wildcard")
|
|
11701
|
-
|
|
11702
|
-
|
|
11703
|
-
|
|
11704
|
+
if (token.type === "param") {
|
|
11705
|
+
value += ":" + stringifyName(token.name, tokens[index]);
|
|
11706
|
+
continue;
|
|
11707
|
+
}
|
|
11708
|
+
if (token.type === "wildcard") {
|
|
11709
|
+
value += "*" + stringifyName(token.name, tokens[index]);
|
|
11710
|
+
continue;
|
|
11711
|
+
}
|
|
11712
|
+
throw new TypeError(`Unknown token type: ${token.type}`);
|
|
11713
|
+
}
|
|
11714
|
+
return value;
|
|
11704
11715
|
}
|
|
11705
|
-
__name(
|
|
11706
|
-
function
|
|
11707
|
-
|
|
11708
|
-
if (!ID_START.test(first))
|
|
11709
|
-
return false;
|
|
11710
|
-
return rest.every((char) => ID_CONTINUE.test(char));
|
|
11716
|
+
__name(stringifyTokens, "stringifyTokens");
|
|
11717
|
+
function stringify(data) {
|
|
11718
|
+
return stringifyTokens(data.tokens, 0);
|
|
11711
11719
|
}
|
|
11712
|
-
__name(
|
|
11713
|
-
function
|
|
11714
|
-
if ((
|
|
11715
|
-
return
|
|
11716
|
-
|
|
11720
|
+
__name(stringify, "stringify");
|
|
11721
|
+
function stringifyName(name, next) {
|
|
11722
|
+
if (!ID.test(name))
|
|
11723
|
+
return JSON.stringify(name);
|
|
11724
|
+
if ((next === null || next === void 0 ? void 0 : next.type) === "text" && ID_CONTINUE.test(next.value[0])) {
|
|
11725
|
+
return JSON.stringify(name);
|
|
11726
|
+
}
|
|
11727
|
+
return name;
|
|
11717
11728
|
}
|
|
11718
|
-
__name(
|
|
11729
|
+
__name(stringifyName, "stringifyName");
|
|
11719
11730
|
}
|
|
11720
11731
|
});
|
|
11721
11732
|
|
|
@@ -16100,19 +16111,6 @@ function createBridgeFileSystemAdapter(factory) {
|
|
|
16100
16111
|
}
|
|
16101
16112
|
__name(createBridgeFileSystemAdapter, "createBridgeFileSystemAdapter");
|
|
16102
16113
|
|
|
16103
|
-
// packages/cli/src/serve/loopback-binds.ts
|
|
16104
|
-
init_esbuild_shims();
|
|
16105
|
-
var LOOPBACK_BINDS = /* @__PURE__ */ new Set([
|
|
16106
|
-
"127.0.0.1",
|
|
16107
|
-
"localhost",
|
|
16108
|
-
"::1",
|
|
16109
|
-
"[::1]"
|
|
16110
|
-
]);
|
|
16111
|
-
function isLoopbackBind(hostname) {
|
|
16112
|
-
return LOOPBACK_BINDS.has(hostname.toLowerCase());
|
|
16113
|
-
}
|
|
16114
|
-
__name(isLoopbackBind, "isLoopbackBind");
|
|
16115
|
-
|
|
16116
16114
|
// packages/cli/src/serve/web-shell-resolver.ts
|
|
16117
16115
|
init_esbuild_shims();
|
|
16118
16116
|
import { existsSync } from "node:fs";
|
|
@@ -16454,6 +16452,10 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
16454
16452
|
// hierarchical QWEN.md state and accepts append/replace writes scoped
|
|
16455
16453
|
// to either the bound workspace or the global ~/.qwen directory.
|
|
16456
16454
|
workspace_memory: { since: "v1" },
|
|
16455
|
+
workspace_memory_remember: {
|
|
16456
|
+
since: "v1",
|
|
16457
|
+
modes: ["workspace", "clean"]
|
|
16458
|
+
},
|
|
16457
16459
|
// Workspace agents CRUD (`GET/POST /workspace/agents` +
|
|
16458
16460
|
// `GET/POST/DELETE /workspace/agents/:agentType`). Wraps
|
|
16459
16461
|
// `SubagentManager` over HTTP so remote clients can list / read /
|
|
@@ -16471,6 +16473,7 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
16471
16473
|
session_lsp: { since: "v1" },
|
|
16472
16474
|
session_status: { since: "v1" },
|
|
16473
16475
|
session_close: { since: "v1" },
|
|
16476
|
+
session_archive: { since: "v1" },
|
|
16474
16477
|
session_metadata: { since: "v1" },
|
|
16475
16478
|
// Daemon supports the MCP client guardrail surface: an in-process
|
|
16476
16479
|
// counter exposed on `GET /workspace/mcp`, a `--mcp-client-budget=N`
|
|
@@ -16641,14 +16644,15 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
16641
16644
|
// reusing the SDK-MCP-server control-plane pattern. Inbound WS frame types:
|
|
16642
16645
|
// `mcp_register` { server }, `mcp_message` { id, server, payload }
|
|
16643
16646
|
// (bidirectional, request/response correlated by `id`), `mcp_unregister`
|
|
16644
|
-
// { server }. Advertised CONDITIONALLY
|
|
16645
|
-
//
|
|
16646
|
-
//
|
|
16647
|
+
// { server }. Advertised CONDITIONALLY so clients pre-flight this tag before
|
|
16648
|
+
// attempting to register a client-hosted server. `runQwenServe` enables it
|
|
16649
|
+
// only when explicitly requested by option or env.
|
|
16647
16650
|
client_mcp_over_ws: { since: "v1" },
|
|
16648
16651
|
// Plan C "CDP tunnel" (issue #5626): the daemon exposes a `/cdp` WebSocket
|
|
16649
16652
|
// where a loopback puppeteer client (chrome-devtools-mcp) drives ONE real tab
|
|
16650
16653
|
// via the extension's `chrome.debugger`, tunneled over `/acp` as `cdp_*`
|
|
16651
|
-
// frames. Advertised
|
|
16654
|
+
// frames. Advertised when explicitly enabled or when the daemon is serving a
|
|
16655
|
+
// Chrome extension origin.
|
|
16652
16656
|
cdp_tunnel_over_ws: { since: "v1" },
|
|
16653
16657
|
// Daemon hosts the `/voice/stream` WebSocket: the browser captures audio and
|
|
16654
16658
|
// streams raw PCM, the daemon transcribes server-side via the configured
|
|
@@ -17198,9 +17202,21 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
17198
17202
|
const bridgeSnapshot = input.bridge.getDaemonStatusSnapshot();
|
|
17199
17203
|
const acpSnapshot = input.acpHandle?.registry.getSnapshot();
|
|
17200
17204
|
const rateLimitHits = input.rateLimiter?.getHitCounts() ?? zeroRateHits();
|
|
17205
|
+
const channelWorker = input.getChannelWorkerSnapshot?.() ?? {
|
|
17206
|
+
enabled: false,
|
|
17207
|
+
state: "disabled",
|
|
17208
|
+
channels: []
|
|
17209
|
+
};
|
|
17201
17210
|
const issues = [];
|
|
17202
17211
|
let full;
|
|
17203
|
-
pushRuntimeIssues(
|
|
17212
|
+
pushRuntimeIssues(
|
|
17213
|
+
issues,
|
|
17214
|
+
bridgeSnapshot,
|
|
17215
|
+
acpSnapshot,
|
|
17216
|
+
rateLimitHits,
|
|
17217
|
+
input,
|
|
17218
|
+
channelWorker
|
|
17219
|
+
);
|
|
17204
17220
|
if (detail === "full") {
|
|
17205
17221
|
full = await buildFullStatus(input, bridgeSnapshot, acpSnapshot);
|
|
17206
17222
|
pushFullIssues(issues, full);
|
|
@@ -17251,6 +17267,7 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
17251
17267
|
policy: bridgeSnapshot.permissionPolicy
|
|
17252
17268
|
},
|
|
17253
17269
|
channel: { live: bridgeSnapshot.channelLive },
|
|
17270
|
+
channelWorker,
|
|
17254
17271
|
transport: {
|
|
17255
17272
|
restSseActive: input.getRestSseActive(),
|
|
17256
17273
|
acp: {
|
|
@@ -17385,7 +17402,7 @@ async function withTimeout(promise, section, timeoutMs) {
|
|
|
17385
17402
|
}
|
|
17386
17403
|
}
|
|
17387
17404
|
__name(withTimeout, "withTimeout");
|
|
17388
|
-
function pushRuntimeIssues(issues, bridgeSnapshot, acpSnapshot, rateLimitHits, input) {
|
|
17405
|
+
function pushRuntimeIssues(issues, bridgeSnapshot, acpSnapshot, rateLimitHits, input, channelWorker) {
|
|
17389
17406
|
if (bridgeSnapshot.limits.maxSessions !== null && bridgeSnapshot.limits.maxSessions > 0 && bridgeSnapshot.sessionCount / bridgeSnapshot.limits.maxSessions >= CAPACITY_WARNING_RATIO) {
|
|
17390
17407
|
issues.push({
|
|
17391
17408
|
code: "session_capacity_high",
|
|
@@ -17421,6 +17438,35 @@ function pushRuntimeIssues(issues, bridgeSnapshot, acpSnapshot, rateLimitHits, i
|
|
|
17421
17438
|
message: `${sumRateHits(rateLimitHits)} request(s) have been rejected by rate limiting since start.`
|
|
17422
17439
|
});
|
|
17423
17440
|
}
|
|
17441
|
+
if (channelWorker.enabled && (channelWorker.state === "exited" || channelWorker.state === "failed")) {
|
|
17442
|
+
const detailParts = [
|
|
17443
|
+
channelWorker.pid !== void 0 ? `pid=${channelWorker.pid}` : void 0,
|
|
17444
|
+
channelWorker.exitCode !== void 0 ? `code=${channelWorker.exitCode ?? "null"}` : void 0,
|
|
17445
|
+
channelWorker.signal ? `signal=${channelWorker.signal}` : void 0
|
|
17446
|
+
].filter(Boolean);
|
|
17447
|
+
const details = detailParts.length > 0 ? ` (${detailParts.join(", ")})` : "";
|
|
17448
|
+
const error = channelWorker.error ? `: ${channelWorker.error}` : "";
|
|
17449
|
+
issues.push({
|
|
17450
|
+
code: "channel_worker_exited",
|
|
17451
|
+
severity: "warning",
|
|
17452
|
+
message: `Channel worker is ${channelWorker.state}${details}${error}.`,
|
|
17453
|
+
section: "runtime.channelWorker"
|
|
17454
|
+
});
|
|
17455
|
+
}
|
|
17456
|
+
if (channelWorker.enabled && channelWorker.state === "running" && channelWorker.requestedChannels !== void 0) {
|
|
17457
|
+
const connected = new Set(channelWorker.channels);
|
|
17458
|
+
const failed = channelWorker.requestedChannels.filter(
|
|
17459
|
+
(channel) => !connected.has(channel)
|
|
17460
|
+
);
|
|
17461
|
+
if (failed.length > 0) {
|
|
17462
|
+
issues.push({
|
|
17463
|
+
code: "channel_worker_partial_connect",
|
|
17464
|
+
severity: "warning",
|
|
17465
|
+
message: `Channel worker connected ${channelWorker.channels.length}/${channelWorker.requestedChannels.length} channel(s). Failed: ${failed.join(", ")}.`,
|
|
17466
|
+
section: "runtime.channelWorker"
|
|
17467
|
+
});
|
|
17468
|
+
}
|
|
17469
|
+
}
|
|
17424
17470
|
}
|
|
17425
17471
|
__name(pushRuntimeIssues, "pushRuntimeIssues");
|
|
17426
17472
|
function pushFullIssues(issues, full) {
|
|
@@ -17630,7 +17676,6 @@ export {
|
|
|
17630
17676
|
getDeviceFlowRegistry,
|
|
17631
17677
|
DeviceFlowRegistry,
|
|
17632
17678
|
createBridgeFileSystemAdapter,
|
|
17633
|
-
isLoopbackBind,
|
|
17634
17679
|
resolveWebShellDir,
|
|
17635
17680
|
denyBrowserOriginCors,
|
|
17636
17681
|
parseAllowOriginPatterns,
|