@qwen-code/qwen-code 0.19.6-nightly.20260706.47f62a466 → 0.19.6-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +17 -9
- package/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
- package/bundled/qc-helper/docs/features/code-review.md +16 -6
- package/bundled/qc-helper/docs/features/hooks.md +6 -0
- package/bundled/qc-helper/docs/integration-github-action.md +1 -1
- package/bundled/review/DESIGN.md +27 -18
- package/bundled/review/SKILL.md +37 -4
- package/chunks/{MaxSizedBox-JCOL4CAA.js → MaxSizedBox-2JOX4MMR.js} +11 -10
- package/chunks/{StandaloneSessionPicker-BLFN63BV.js → StandaloneSessionPicker-Z2G37ETA.js} +24 -22
- package/chunks/{acpAgent-3KQMM3LN.js → acpAgent-MQJT2H4Y.js} +103 -61
- package/chunks/{agent-3SQT4Q6F.js → agent-HEVJ76EO.js} +6 -7
- package/chunks/{agent-headless-XMYIIWGF.js → agent-headless-UNB5SWYC.js} +6 -7
- package/chunks/{anthropicContentGenerator-L7J7PVYL.js → anthropicContentGenerator-AKYPSZIV.js} +3 -3
- package/chunks/{artifact-tool-H2TNPNP5.js → artifact-tool-D233YJFH.js} +25 -6
- package/chunks/{bridge-VL53WCNP.js → bridge-GX2LGQDS.js} +11 -10
- package/chunks/{channel-worker-supervisor-B7MSMB5K.js → channel-worker-supervisor-CRCVYQIE.js} +1 -1
- package/chunks/{chunk-6T6SXQNR.js → chunk-27QGW3BK.js} +5 -5
- package/chunks/{chunk-YMVK4LS2.js → chunk-2D5Q33PT.js} +3 -3
- package/chunks/{chunk-IKCFWN3Y.js → chunk-2MDHTI6A.js} +2 -2
- package/chunks/{chunk-BBKXTYL6.js → chunk-2MJAXDFK.js} +6 -6
- package/chunks/{chunk-WSVZFWN4.js → chunk-2NPS2UDH.js} +305 -97
- package/chunks/{chunk-HALA655G.js → chunk-2X3ZVAAT.js} +2 -2
- package/chunks/chunk-332PWN27.js +19 -0
- package/chunks/{chunk-ACD5DFUY.js → chunk-3B26UVCX.js} +130 -24
- package/chunks/{chunk-Z7RPIVIC.js → chunk-43W4YSO6.js} +1 -12
- package/chunks/{chunk-3QAQS4IM.js → chunk-44NROQYV.js} +4 -2
- package/chunks/{chunk-N7K5TYQW.js → chunk-4XV2MRNK.js} +1 -1
- package/chunks/{chunk-VCHDUDLM.js → chunk-5HMMLTUD.js} +11 -11
- package/chunks/{chunk-JZLDAWNW.js → chunk-5IGNZP2J.js} +1 -1
- package/chunks/{chunk-NCFVPWRR.js → chunk-6GHEZDDX.js} +1 -1
- package/chunks/{chunk-AQOYX6KA.js → chunk-7O6DD2ES.js} +1 -1
- package/chunks/{chunk-SN3W7PFN.js → chunk-7R62CLMI.js} +4 -4
- package/chunks/{chunk-FB75L4ZI.js → chunk-7SAH6M3Y.js} +3 -3
- package/chunks/{chunk-RMIXI7TN.js → chunk-7VCI24VZ.js} +4 -107
- package/chunks/chunk-A2X3KLC3.js +3807 -0
- package/chunks/chunk-A3ZQMFO6.js +949 -0
- package/chunks/{chunk-B7E6VU5A.js → chunk-A7UKINBT.js} +7 -7
- package/chunks/{chunk-VDTH6RD3.js → chunk-ADO6IDOZ.js} +15 -9
- package/chunks/{chunk-FDVILPGP.js → chunk-AJ3CEJRJ.js} +10 -5
- package/chunks/{chunk-NCFY7PWS.js → chunk-CCGOFQV3.js} +51 -2
- package/chunks/{chunk-HSO66R46.js → chunk-DB7CZERZ.js} +1 -1
- package/chunks/{chunk-LAW3LHN6.js → chunk-DF74IL3R.js} +67 -42
- package/chunks/{chunk-U3RZKQXS.js → chunk-FCEHOKYP.js} +5 -5
- package/chunks/{chunk-OQLSVZAA.js → chunk-FRR5I3SQ.js} +1 -1
- package/chunks/{chunk-NFE3DQ4R.js → chunk-FV7425LN.js} +36 -1
- package/chunks/{chunk-NOAYCIDS.js → chunk-GPLKAQUX.js} +8 -8
- package/chunks/{chunk-VS64QG5I.js → chunk-GV2S4F6Q.js} +12 -4
- package/chunks/{chunk-ZNUVV3IQ.js → chunk-GW67O5SO.js} +1 -1
- package/chunks/{chunk-6QXGBCAH.js → chunk-HW4N45EE.js} +1 -45
- package/chunks/{chunk-OGC64RKC.js → chunk-IFDJAMJW.js} +484 -1222
- package/chunks/{chunk-7AEMHW7Y.js → chunk-ILFQAFWH.js} +1 -1
- package/chunks/chunk-JYFZFWSL.js +167 -0
- package/chunks/{chunk-JZGYH2ST.js → chunk-K56RTEBN.js} +1 -1
- package/chunks/chunk-LGFAYIKX.js +115 -0
- package/chunks/{chunk-QR2KK6CG.js → chunk-LLTFLVFK.js} +4 -4
- package/chunks/{chunk-654I2NBH.js → chunk-MZWODTEA.js} +5 -13
- package/chunks/{chunk-FCCBH56M.js → chunk-N33JAGJ7.js} +812 -78
- package/chunks/{chunk-K2KVPZM5.js → chunk-NVQVIJMO.js} +112 -42
- package/chunks/{chunk-LH6D765T.js → chunk-O6T7PBUM.js} +30 -6
- package/chunks/{chunk-QOKVIOLW.js → chunk-P452E6XF.js} +2 -2
- package/chunks/chunk-PS2NG7KU.js +262 -0
- package/chunks/{chunk-RG6ZAMMW.js → chunk-QM4FKX7H.js} +2 -2
- package/chunks/chunk-RODQXLGZ.js +28 -0
- package/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
- package/chunks/{chunk-5QNTAU44.js → chunk-SJ3QRPN2.js} +14 -8
- package/chunks/{chunk-FTXYSZOJ.js → chunk-SKO6VJHG.js} +16 -4
- package/chunks/{chunk-66KNL43D.js → chunk-TBAZMRW3.js} +1 -1
- package/chunks/{chunk-KDCCKYPM.js → chunk-TPTG52XG.js} +1 -1
- package/chunks/chunk-UIDXQNMV.js +13 -0
- package/chunks/chunk-VP2FB7OC.js +8223 -0
- package/chunks/{chunk-QLEBY26M.js → chunk-WKBA74DD.js} +1 -1
- package/chunks/{chunk-XRKPKL3R.js → chunk-WKTLDGD6.js} +1 -1
- package/chunks/{chunk-O2I6MGPK.js → chunk-WRLMLPWI.js} +3 -3
- package/chunks/{chunk-PRO3AHV3.js → chunk-XXICIIS5.js} +5 -5
- package/chunks/{chunk-GIXLNFID.js → chunk-Y3QQV7WE.js} +2 -2
- package/chunks/{chunk-LTDPXBIJ.js → chunk-ZKX7IBXU.js} +4 -4
- package/chunks/{chunk-J7JIBDUN.js → chunk-ZOSL7K3L.js} +221 -42
- package/chunks/{chunk-4VVDPKQ6.js → chunk-ZWFS7YCB.js} +4941 -3908
- package/chunks/{computer-use-JZO5THQ4.js → computer-use-IQ46C3YP.js} +6 -7
- package/chunks/{contextCommand-B3US3GS2.js → contextCommand-TTT6AP2W.js} +10 -10
- package/chunks/{cron-create-O6ZHD3JN.js → cron-create-JSXEIPVS.js} +1 -1
- package/chunks/{cron-delete-BFD5B2XX.js → cron-delete-OIFVEPGU.js} +1 -1
- package/chunks/{cron-list-KI6FV4KN.js → cron-list-D4ZX4IOE.js} +8 -4
- package/chunks/{daemon-WQXSK7GF.js → daemon-F3I2RXP6.js} +59 -3
- package/chunks/{daemon-status-provider-FYMIAJ74.js → daemon-status-provider-5GAWK65R.js} +13 -13
- package/chunks/dist-573HNSVO.js +3217 -0
- package/chunks/{dist-VHBP2PIG.js → dist-FQ5WRJPL.js} +2 -2
- package/chunks/{dist-LPVU3L2M.js → dist-IMFFBMAT.js} +6 -3792
- package/chunks/{dist-7GU63KI5.js → dist-OT7G2WNM.js} +1 -1
- package/chunks/{dist-H4HHZYCI.js → dist-PKFTNUHO.js} +2 -2
- package/chunks/{dist-3UDX5T4T.js → dist-YTRKAVUB.js} +1 -1
- package/chunks/{earlyInputCapture-5GY56LUS.js → earlyInputCapture-LAGZUGGV.js} +6 -7
- package/chunks/{edit-A26XF3GQ.js → edit-Q5BUQC2S.js} +6 -7
- package/chunks/{en-AXARKOWO.js → en-GA2RMXY5.js} +5 -1
- package/chunks/{enter-worktree-LXWZ7LPU.js → enter-worktree-DC4FHMVF.js} +6 -7
- package/chunks/{enterPlanMode-OZPTJ4LY.js → enterPlanMode-5BGJBWIY.js} +6 -7
- package/chunks/{errors-HC6JMZ7A.js → errors-EGX5DECS.js} +8 -9
- package/chunks/{exit-worktree-5SMO7MH5.js → exit-worktree-2EOSZNZI.js} +6 -7
- package/chunks/{exitPlanMode-EFPLGAND.js → exitPlanMode-JAQ35ELJ.js} +6 -7
- package/chunks/{fast-path-TF2IF5WZ.js → fast-path-QEWDA6O6.js} +5 -2
- package/chunks/{fr-MBMNQSQ6.js → fr-GWNQG4XH.js} +4 -0
- package/chunks/{gemini-XTISXYIY.js → gemini-TQ5XANRS.js} +64 -188
- package/chunks/{geminiContentGenerator-5W62YCSD.js → geminiContentGenerator-DCM2XGDQ.js} +1 -1
- package/chunks/{glob-YVWLTWR4.js → glob-7JLTQ4IQ.js} +6 -7
- package/chunks/{grep-TMLRZONJ.js → grep-CAUXEO7Q.js} +6 -7
- package/chunks/handleAutoUpdate-XKXULZQX.js +65 -0
- package/chunks/{initializer-7SJAWILK.js → initializer-3NRWU5JV.js} +12 -11
- package/chunks/{ja-HFV5QCHR.js → ja-2HOTA47X.js} +4 -0
- package/chunks/{list-JE74WAG2.js → list-NWO6QBDQ.js} +12 -13
- package/chunks/{loadedSettingsAdapter-R3DCJQ5W.js → loadedSettingsAdapter-PJ77LGFS.js} +10 -11
- package/chunks/{loop-wakeup-CUVIY2JY.js → loop-wakeup-OHWEMFP5.js} +2 -2
- package/chunks/{mcp-AJ2ZHF2N.js → mcp-VFEHVF5A.js} +10 -11
- package/chunks/{monitor-UH6ORENE.js → monitor-FY2ITVSC.js} +14 -10
- package/chunks/{nonInteractiveCli-CCYM24DQ.js → nonInteractiveCli-KPCXTVWY.js} +41 -37
- package/chunks/{notebook-edit-VW6QKDC6.js → notebook-edit-BSJMXIWX.js} +6 -7
- package/chunks/{openaiContentGenerator-2HIY7ZUY.js → openaiContentGenerator-BA6NWY4S.js} +5 -6
- package/chunks/{pidfile-QGNMZ5SP.js → pidfile-WXMRN6QF.js} +6 -7
- package/chunks/{qwenContentGenerator-JFQNSKW4.js → qwenContentGenerator-U4ZSLGFN.js} +8 -9
- package/chunks/{read-file-LTJRKWK2.js → read-file-VMVHNOMA.js} +2 -2
- package/chunks/{ripGrep-X65NYSFJ.js → ripGrep-NC6MUWXN.js} +6 -7
- package/chunks/{run-qwen-serve-CLVQV6WU.js → run-qwen-serve-NQH6LQTH.js} +144 -27
- package/chunks/{scheduler-NUTJ4FRU.js → scheduler-35T3E2UQ.js} +6 -7
- package/chunks/{serve-4DVF5UCI.js → serve-C36LOB5N.js} +10 -11
- package/chunks/{server-ZFRDBIFR.js → server-TDFPIDC3.js} +1342 -160
- package/chunks/{session-YQPMXZCZ.js → session-STHNQGRJ.js} +42 -38
- package/chunks/{settings-2P6SMCR5.js → settings-GIE22AYF.js} +9 -10
- package/chunks/{shell-5V6CJVMZ.js → shell-JD52AIMU.js} +6 -7
- package/chunks/{skill-YCDQKIQQ.js → skill-L4IFKRQ5.js} +14 -4
- package/chunks/{spawnChannel-NEOZMKQL.js → spawnChannel-HGMOEPM7.js} +8 -9
- package/chunks/{src-OSBARWA7.js → src-3SNF3G3V.js} +40 -17
- package/chunks/{startInteractiveUI-YKNL25BC.js → startInteractiveUI-C7DCDHGF.js} +5011 -13181
- package/chunks/{team-create-DWR5UZIT.js → team-create-NYL7KAMA.js} +6 -7
- package/chunks/{team-plan-approval-IVROZF6V.js → team-plan-approval-LH65JBEH.js} +6 -7
- package/chunks/{theme-manager-C5E2HDJG.js → theme-manager-ANKQO5DR.js} +6 -7
- package/chunks/{tool-search-YX2YOBFJ.js → tool-search-WZEGJFO4.js} +4 -21
- package/chunks/{trustedFolders-7KI7ETLR.js → trustedFolders-HECAG3S3.js} +7 -8
- package/chunks/updateCheck-72BBAE5V.js +65 -0
- package/chunks/{validateNonInterActiveAuth-JUTUFRSI.js → validateNonInterActiveAuth-PDQCPSNA.js} +38 -34
- package/chunks/{version-4DEOOFHV.js → version-VSEUTPNM.js} +2 -1
- package/chunks/{workflow-FSJVAP5Q.js → workflow-DPF2CL7U.js} +7 -8
- package/chunks/{workspace-providers-status-YBIB2D77.js → workspace-providers-status-TQ23DQ2D.js} +12 -13
- package/chunks/{workspace-service-K27FZHY6.js → workspace-service-D34UDMEY.js} +14 -15
- package/chunks/{workspace-skills-status-QKXCNLVT.js → workspace-skills-status-4DR5UNNC.js} +11 -12
- package/chunks/{write-file-7XMET6EL.js → write-file-VFNAKGYM.js} +6 -7
- package/chunks/{zh-RS3HZHFH.js → zh-7XVVRTDH.js} +5 -1
- package/chunks/{zh-TW-L5GRQ4S4.js → zh-TW-DPH554OG.js} +5 -1
- package/cli.js +11 -11
- package/locales/en.js +8 -2
- package/locales/fr.js +6 -0
- package/locales/ja.js +6 -0
- package/locales/zh-TW.js +8 -2
- package/locales/zh.js +8 -2
- 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-DsvupRmw.js → arc-C7hjaa7g.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BwogiDi8.js → architectureDiagram-3BPJPVTR-pm9KtMZY.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BibxECWL.js → blockDiagram-GPEHLZMM-CApElKsU.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-7cCkrqli.js → c4Diagram-AAUBKEIU-BeDe0-9N.js} +1 -1
- package/web-shell/assets/channel-BNf1dW-j.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DVJvJrzC.js → chunk-2J33WTMH-DJEkmLdl.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BFd1gVwi.js → chunk-4BX2VUAB-DXX8gdpe.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BW2NnZiy.js → chunk-55IACEB6-DORmk1kQ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-FUpKPObH.js → chunk-727SXJPM-DWmO4mCZ.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DqoSTkq2.js → chunk-AQP2D5EJ-C7LRaYw2.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-D6Tt9URv.js → chunk-FMBD7UC4-CCdXgyC5.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-B9pTpaYB.js → chunk-ND2GUHAM-SyL_xvWc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-KJs617M2.js → chunk-QZHKN3VN-BzOuCKxa.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-B-pCB_lI.js → cose-bilkent-S5V4N54A-BMPWyDKc.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-pCqrm_dE.js → dagre-BM42HDAG-B_GnPWik.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CJd4RXQc.js → diagram-2AECGRRQ-fJqMc3S_.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CP0ntTEt.js → diagram-5GNKFQAL-ximV3O9D.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-HKMjC8U_.js → diagram-KO2AKTUF-2vVyjzqw.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BnUMTzxK.js → diagram-LMA3HP47-Dckcx1sT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CY2kjke3.js → diagram-OG6HWLK6-BAVv47ga.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Q-P2C_2c.js → erDiagram-TEJ5UH35-Bn3nf5J0.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-D5dDqv6k.js → flowDiagram-I6XJVG4X-BIbGF9JT.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-D6e_nLNG.js → ganttDiagram-6RSMTGT7-CDbhb3AH.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Cagi_aG2.js → gitGraphDiagram-PVQCEYII-CbKG1a_w.js} +1 -1
- package/web-shell/assets/index-CnE2ur2L.js +779 -0
- package/web-shell/assets/index-hSKXrlSE.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CCRsrfey.js → infoDiagram-5YYISTIA-DUFxTy8m.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-o1nEXhOa.js → ishikawaDiagram-YF4QCWOH-D69hrBG8.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-yNY7DUDz.js → journeyDiagram-JHISSGLW-DsvEw51Y.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-C2CG5vmP.js → kanban-definition-UN3LZRKU-lFFjZEYd.js} +1 -1
- package/web-shell/assets/{linear-Jsjhveg2.js → linear-Bo5bWzvo.js} +1 -1
- package/web-shell/assets/{mermaid.core-CCrKRcoG.js → mermaid.core-C_HKMJx5.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C8yHT5I5.js → mindmap-definition-RKZ34NQL-DlV-NUTs.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BnVzUzO5.js → pieDiagram-4H26LBE5-B2e6FH2a.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-EP9K_nK2.js → quadrantDiagram-W4KKPZXB-D75kSk-b.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-D_Q9FvKR.js → requirementDiagram-4Y6WPE33-CQ6xakhM.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bh08id0J.js → sankeyDiagram-5OEKKPKP-J_XTKrcY.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Btm9ZGN_.js → sequenceDiagram-3UESZ5HK-D7jTcBtf.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CR9Ym-Fy.js → stateDiagram-AJRCARHV-CrlM_OT3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-TUsY0ZLs.js → timeline-definition-PNZ67QCA-5oZi76Ef.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DqzVmJAq.js → vennDiagram-CIIHVFJN-DO5YptPK.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DlUQaEG_.js → wardley-L42UT6IY-4t1eJDvM.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-mvwPkaJp.js → wardleyDiagram-YWT4CUSO-DKZc661S.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-CJfXdkkx.js → xychartDiagram-2RQKCTM6-su9hp08G.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-QT7XKZT7.js +0 -293
- package/web-shell/assets/channel-Bhs5kHEh.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BGHJQZmo.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGHJQZmo.js +0 -1
- package/web-shell/assets/index-DoGSgv5C.css +0 -5
- package/web-shell/assets/index-lWWJkqt9.js +0 -754
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-6aAMKcly.js +0 -1
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
buildPermissionSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6GHEZDDX.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveVoiceStreamConfig,
|
|
8
8
|
resolveVoiceTranscriptionConfig,
|
|
9
9
|
transcribeVoiceAudio
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WKTLDGD6.js";
|
|
11
11
|
import {
|
|
12
12
|
getVoiceSettingsScope,
|
|
13
13
|
isSelectableVoiceModel,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
readVoiceMode,
|
|
17
17
|
readVoiceModel,
|
|
18
18
|
resolveVoiceTransport
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ILFQAFWH.js";
|
|
20
20
|
import {
|
|
21
21
|
WorkspacePermissionRulesSessionRequiredError,
|
|
22
22
|
WorkspaceSettingsPartialPersistError
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
getPersistScopeForModelSelection,
|
|
26
26
|
loadSettings
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-O6T7PBUM.js";
|
|
28
28
|
import {
|
|
29
29
|
MCP_RESTART_SERVER_DEADLINE_MS
|
|
30
30
|
} from "./chunk-P7M4GA57.js";
|
|
@@ -49,16 +49,16 @@ import {
|
|
|
49
49
|
createIdleWorkspaceProvidersStatus,
|
|
50
50
|
createIdleWorkspaceSkillsStatus,
|
|
51
51
|
mapDomainErrorToErrorKind
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-7O6DD2ES.js";
|
|
53
53
|
import {
|
|
54
54
|
getWorkspaceTrustStatus
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-WKBA74DD.js";
|
|
56
56
|
import {
|
|
57
57
|
writeStderrLine
|
|
58
58
|
} from "./chunk-Y6Z2O3WR.js";
|
|
59
59
|
import {
|
|
60
60
|
ModelsConfig
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-ZWFS7YCB.js";
|
|
62
62
|
import {
|
|
63
63
|
createDebugLogger
|
|
64
64
|
} from "./chunk-22MNNNXE.js";
|
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
handleAtCommand,
|
|
5
5
|
resolveAtCommandQuery,
|
|
6
6
|
sanitizeDisplayText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LLTFLVFK.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-IFDJAMJW.js";
|
|
15
15
|
import {
|
|
16
16
|
SHELL_COMMAND_NAME,
|
|
17
17
|
fitPendingSlice,
|
|
18
18
|
useSessionStats
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7R62CLMI.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-QM4FKX7H.js";
|
|
32
32
|
import {
|
|
33
33
|
t
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-2MJAXDFK.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-ZWFS7YCB.js";
|
|
57
57
|
import {
|
|
58
58
|
ApiCancelEvent,
|
|
59
59
|
ConversationFinishedEvent,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
logConversationFinishedEvent,
|
|
64
64
|
logUserPrompt,
|
|
65
65
|
logUserRetry
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-N33JAGJ7.js";
|
|
67
67
|
import {
|
|
68
68
|
isAnyAutoMemPath
|
|
69
69
|
} from "./chunk-4KJ2BPIT.js";
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
import {
|
|
74
74
|
getUnsupportedImageFormatWarning,
|
|
75
75
|
isSupportedImageMimeType
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-HW4N45EE.js";
|
|
77
77
|
import {
|
|
78
78
|
FinishReason
|
|
79
79
|
} from "./chunk-55ZMG67I.js";
|
|
@@ -2509,7 +2509,13 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2509
2509
|
async (newApprovalMode) => {
|
|
2510
2510
|
if (newApprovalMode === "yolo" /* YOLO */ || newApprovalMode === "auto-edit" /* AUTO_EDIT */) {
|
|
2511
2511
|
let awaitingApprovalCalls = toolCalls.filter(
|
|
2512
|
-
(call) =>
|
|
2512
|
+
(call) => {
|
|
2513
|
+
if (call.status !== "awaiting_approval") {
|
|
2514
|
+
return false;
|
|
2515
|
+
}
|
|
2516
|
+
const { confirmationDetails } = call;
|
|
2517
|
+
return !(confirmationDetails && "hideAlwaysAllow" in confirmationDetails && confirmationDetails.hideAlwaysAllow === true);
|
|
2518
|
+
}
|
|
2513
2519
|
);
|
|
2514
2520
|
if (newApprovalMode === "auto-edit" /* AUTO_EDIT */) {
|
|
2515
2521
|
awaitingApprovalCalls = awaitingApprovalCalls.filter(
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-Y6Z2O3WR.js";
|
|
9
9
|
import {
|
|
10
10
|
getActiveGoal
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZWFS7YCB.js";
|
|
12
12
|
import {
|
|
13
13
|
ToolNames
|
|
14
14
|
} from "./chunk-X3YGAX7V.js";
|
|
@@ -136,12 +136,16 @@ var MessageEmitter = class extends BaseEmitter {
|
|
|
136
136
|
* @param text - The user message text content
|
|
137
137
|
* @param timestamp - Optional server-side timestamp (ISO string or ms) for message ordering
|
|
138
138
|
*/
|
|
139
|
-
async emitUserMessage(text, timestamp) {
|
|
139
|
+
async emitUserMessage(text, timestamp, options = {}) {
|
|
140
140
|
const epochMs = BaseEmitter.toEpochMs(timestamp);
|
|
141
|
+
const _meta = {
|
|
142
|
+
...epochMs != null ? { timestamp: epochMs } : {},
|
|
143
|
+
...options.source ? { source: options.source } : {}
|
|
144
|
+
};
|
|
141
145
|
await this.sendUpdate({
|
|
142
146
|
sessionUpdate: "user_message_chunk",
|
|
143
147
|
content: { type: "text", text },
|
|
144
|
-
...
|
|
148
|
+
...Object.keys(_meta).length > 0 ? { _meta } : {}
|
|
145
149
|
});
|
|
146
150
|
}
|
|
147
151
|
/**
|
|
@@ -734,7 +738,8 @@ var HistoryReplayer = class {
|
|
|
734
738
|
if (displayText) {
|
|
735
739
|
await this.messageEmitter.emitUserMessage(
|
|
736
740
|
displayText,
|
|
737
|
-
record.timestamp
|
|
741
|
+
record.timestamp,
|
|
742
|
+
record.subtype === "cron" ? { source: "cron" } : void 0
|
|
738
743
|
);
|
|
739
744
|
}
|
|
740
745
|
break;
|
|
@@ -1598,7 +1603,7 @@ async function extractMetadata(conversation, config) {
|
|
|
1598
1603
|
const gitBranch = firstRecord?.gitBranch;
|
|
1599
1604
|
let gitRepo;
|
|
1600
1605
|
if (cwd) {
|
|
1601
|
-
const { getGitRepoName } = await import("./src-
|
|
1606
|
+
const { getGitRepoName } = await import("./src-3SNF3G3V.js");
|
|
1602
1607
|
gitRepo = getGitRepoName(cwd);
|
|
1603
1608
|
}
|
|
1604
1609
|
let model;
|
|
@@ -10,6 +10,53 @@ import {
|
|
|
10
10
|
__name
|
|
11
11
|
} from "./chunk-J2S4EL5Y.js";
|
|
12
12
|
|
|
13
|
+
// packages/core/src/utils/request-tokenizer/textTokenizer.ts
|
|
14
|
+
init_esbuild_shims();
|
|
15
|
+
function estimateTextTokens(text) {
|
|
16
|
+
if (!text || text.length === 0) {
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
let asciiChars = 0;
|
|
20
|
+
let nonAsciiChars = 0;
|
|
21
|
+
for (let i = 0; i < text.length; i++) {
|
|
22
|
+
const charCode = text.charCodeAt(i);
|
|
23
|
+
if (charCode < 128) {
|
|
24
|
+
asciiChars++;
|
|
25
|
+
} else {
|
|
26
|
+
nonAsciiChars++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const tokens = asciiChars / 4 + nonAsciiChars * 1.1;
|
|
30
|
+
return Math.ceil(tokens);
|
|
31
|
+
}
|
|
32
|
+
__name(estimateTextTokens, "estimateTextTokens");
|
|
33
|
+
var TextTokenizer = class {
|
|
34
|
+
static {
|
|
35
|
+
__name(this, "TextTokenizer");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate tokens for text content
|
|
39
|
+
*
|
|
40
|
+
* @param text - The text to estimate tokens for
|
|
41
|
+
* @returns The estimated token count
|
|
42
|
+
*/
|
|
43
|
+
async calculateTokens(text) {
|
|
44
|
+
return this.calculateTokensSync(text);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Calculate tokens for multiple text strings
|
|
48
|
+
*
|
|
49
|
+
* @param texts - Array of text strings to estimate tokens for
|
|
50
|
+
* @returns Array of token counts corresponding to each input text
|
|
51
|
+
*/
|
|
52
|
+
async calculateTokensBatch(texts) {
|
|
53
|
+
return texts.map((text) => this.calculateTokensSync(text));
|
|
54
|
+
}
|
|
55
|
+
calculateTokensSync(text) {
|
|
56
|
+
return estimateTextTokens(text);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
13
60
|
// packages/core/src/utils/runtimeDiagnostics.ts
|
|
14
61
|
init_esbuild_shims();
|
|
15
62
|
var RUNTIME_PROFILE_ENV = "QWEN_CODE_PROFILE_RUNTIME";
|
|
@@ -1193,6 +1240,8 @@ function toOpenAPI30(schema) {
|
|
|
1193
1240
|
__name(toOpenAPI30, "toOpenAPI30");
|
|
1194
1241
|
|
|
1195
1242
|
export {
|
|
1243
|
+
estimateTextTokens,
|
|
1244
|
+
TextTokenizer,
|
|
1196
1245
|
safeJsonParse,
|
|
1197
1246
|
convertSchema,
|
|
1198
1247
|
isRuntimeDiagnosticsEnabled,
|
|
@@ -1203,12 +1252,12 @@ export {
|
|
|
1203
1252
|
};
|
|
1204
1253
|
/**
|
|
1205
1254
|
* @license
|
|
1206
|
-
* Copyright
|
|
1255
|
+
* Copyright 2025 Qwen
|
|
1207
1256
|
* SPDX-License-Identifier: Apache-2.0
|
|
1208
1257
|
*/
|
|
1209
1258
|
/**
|
|
1210
1259
|
* @license
|
|
1211
|
-
* Copyright
|
|
1260
|
+
* Copyright 2026 Qwen
|
|
1212
1261
|
* SPDX-License-Identifier: Apache-2.0
|
|
1213
1262
|
*/
|
|
1214
1263
|
/**
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
getRateLimitErrorDetails
|
|
5
|
-
} from "./chunk-QT7XKZT7.js";
|
|
6
3
|
import {
|
|
7
4
|
OpenAIContentConverter,
|
|
8
5
|
TaggedThinkingParser,
|
|
6
|
+
getRateLimitErrorDetails,
|
|
9
7
|
openaiRequestCaptureContext
|
|
10
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N33JAGJ7.js";
|
|
11
9
|
import {
|
|
12
10
|
RequestTokenizer
|
|
13
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-44NROQYV.js";
|
|
14
12
|
import {
|
|
15
13
|
DASHSCOPE_PROXY_BASE_URL,
|
|
16
14
|
DEFAULT_DASHSCOPE_BASE_URL,
|
|
@@ -22,11 +20,11 @@ import {
|
|
|
22
20
|
parsePositiveIntegerEnvValue,
|
|
23
21
|
resolveRequestTimeout,
|
|
24
22
|
tokenLimit
|
|
25
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HW4N45EE.js";
|
|
26
24
|
import {
|
|
27
25
|
runtimeDiagnostics,
|
|
28
26
|
safeJsonParse
|
|
29
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-CCGOFQV3.js";
|
|
30
28
|
import {
|
|
31
29
|
GenerateContentResponse
|
|
32
30
|
} from "./chunk-55ZMG67I.js";
|
|
@@ -7818,11 +7816,17 @@ var StreamingToolCallParser = class {
|
|
|
7818
7816
|
const existingBuffer = this.buffers.get(index);
|
|
7819
7817
|
const existingDepth = this.depths.get(index);
|
|
7820
7818
|
const existingMeta = this.toolCallMeta.get(index);
|
|
7821
|
-
if (
|
|
7822
|
-
|
|
7823
|
-
|
|
7819
|
+
if (existingMeta?.name && existingDepth === 0 && existingMeta?.id && existingMeta.id !== id) {
|
|
7820
|
+
let existingComplete = true;
|
|
7821
|
+
if (existingBuffer.trim()) {
|
|
7822
|
+
try {
|
|
7823
|
+
JSON.parse(existingBuffer);
|
|
7824
|
+
} catch {
|
|
7825
|
+
existingComplete = false;
|
|
7826
|
+
}
|
|
7827
|
+
}
|
|
7828
|
+
if (existingComplete) {
|
|
7824
7829
|
actualIndex = this.findNextAvailableIndex();
|
|
7825
|
-
} catch {
|
|
7826
7830
|
}
|
|
7827
7831
|
}
|
|
7828
7832
|
}
|
|
@@ -7853,14 +7857,21 @@ var StreamingToolCallParser = class {
|
|
|
7853
7857
|
}
|
|
7854
7858
|
const currentBuffer = this.buffers.get(actualIndex);
|
|
7855
7859
|
const currentDepth = this.depths.get(actualIndex);
|
|
7856
|
-
if (isKnownId &&
|
|
7857
|
-
|
|
7858
|
-
|
|
7860
|
+
if (isKnownId && currentDepth === 0) {
|
|
7861
|
+
if (currentBuffer.trim()) {
|
|
7862
|
+
try {
|
|
7863
|
+
JSON.parse(currentBuffer);
|
|
7864
|
+
debugLogger3.debug(
|
|
7865
|
+
`Ignoring replay chunk for completed toolCall id=${id}`
|
|
7866
|
+
);
|
|
7867
|
+
return { complete: false };
|
|
7868
|
+
} catch {
|
|
7869
|
+
}
|
|
7870
|
+
} else if (this.toolCallMeta.get(actualIndex)?.name && name && !chunk.trim()) {
|
|
7859
7871
|
debugLogger3.debug(
|
|
7860
|
-
`Ignoring
|
|
7872
|
+
`Ignoring replayed opener for no-argument toolCall id=${id}`
|
|
7861
7873
|
);
|
|
7862
7874
|
return { complete: false };
|
|
7863
|
-
} catch {
|
|
7864
7875
|
}
|
|
7865
7876
|
}
|
|
7866
7877
|
const meta = this.toolCallMeta.get(actualIndex);
|
|
@@ -7927,8 +7938,10 @@ var StreamingToolCallParser = class {
|
|
|
7927
7938
|
* 2. Auto-close unclosed strings and retry
|
|
7928
7939
|
* 3. Fallback to safeJsonParse for malformed data
|
|
7929
7940
|
*
|
|
7930
|
-
* Only returns tool calls with
|
|
7931
|
-
*
|
|
7941
|
+
* Only returns tool calls with name metadata. An empty buffer yields
|
|
7942
|
+
* empty arguments ({}), matching the non-streaming path for no-argument
|
|
7943
|
+
* tools. Should be called when streaming is complete (finish_reason is
|
|
7944
|
+
* present).
|
|
7932
7945
|
*
|
|
7933
7946
|
* @returns Array of completed tool calls with their metadata and parsed arguments
|
|
7934
7947
|
*/
|
|
@@ -7937,7 +7950,7 @@ var StreamingToolCallParser = class {
|
|
|
7937
7950
|
const emittedIds = /* @__PURE__ */ new Set();
|
|
7938
7951
|
for (const [index, buffer] of this.buffers.entries()) {
|
|
7939
7952
|
const meta = this.toolCallMeta.get(index);
|
|
7940
|
-
if (meta?.name
|
|
7953
|
+
if (meta?.name) {
|
|
7941
7954
|
if (meta.id) {
|
|
7942
7955
|
if (emittedIds.has(meta.id)) {
|
|
7943
7956
|
continue;
|
|
@@ -7945,19 +7958,31 @@ var StreamingToolCallParser = class {
|
|
|
7945
7958
|
emittedIds.add(meta.id);
|
|
7946
7959
|
}
|
|
7947
7960
|
let args = {};
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7961
|
+
if (buffer.trim()) {
|
|
7962
|
+
try {
|
|
7963
|
+
args = JSON.parse(buffer);
|
|
7964
|
+
} catch {
|
|
7965
|
+
const inString = this.inStrings.get(index);
|
|
7966
|
+
if (inString) {
|
|
7967
|
+
try {
|
|
7968
|
+
args = JSON.parse(buffer + '"');
|
|
7969
|
+
} catch {
|
|
7970
|
+
args = safeJsonParse(buffer, {});
|
|
7971
|
+
}
|
|
7972
|
+
} else {
|
|
7956
7973
|
args = safeJsonParse(buffer, {});
|
|
7957
7974
|
}
|
|
7958
|
-
} else {
|
|
7959
|
-
args = safeJsonParse(buffer, {});
|
|
7960
7975
|
}
|
|
7976
|
+
if (typeof args !== "object" || args === null || Array.isArray(args)) {
|
|
7977
|
+
debugLogger3.debug(
|
|
7978
|
+
`Collapsing non-object arguments for tool call ${meta.name} (id=${meta.id}) at index ${index}; buffer likely polluted by a misrouted fragment`
|
|
7979
|
+
);
|
|
7980
|
+
args = {};
|
|
7981
|
+
}
|
|
7982
|
+
} else {
|
|
7983
|
+
debugLogger3.debug(
|
|
7984
|
+
`Emitting no-argument tool call ${meta.name} (id=${meta.id}) at index ${index} with empty buffer`
|
|
7985
|
+
);
|
|
7961
7986
|
}
|
|
7962
7987
|
completed.push({
|
|
7963
7988
|
id: meta.id,
|
|
@@ -7973,8 +7998,9 @@ var StreamingToolCallParser = class {
|
|
|
7973
7998
|
* Finds the next available index for a new tool call
|
|
7974
7999
|
*
|
|
7975
8000
|
* Scans indices starting from nextAvailableIndex to find one that's safe to use.
|
|
7976
|
-
* Reuses indices
|
|
7977
|
-
* Skips indices with complete
|
|
8001
|
+
* Reuses indices never claimed by a named tool call or with incomplete
|
|
8002
|
+
* parsing states. Skips indices with complete tool call data — including
|
|
8003
|
+
* no-argument calls with empty buffers — to prevent overwriting.
|
|
7978
8004
|
*
|
|
7979
8005
|
* @returns The next available index safe for storing a new tool call
|
|
7980
8006
|
*/
|
|
@@ -7983,17 +8009,15 @@ var StreamingToolCallParser = class {
|
|
|
7983
8009
|
const buffer = this.buffers.get(this.nextAvailableIndex);
|
|
7984
8010
|
const depth = this.depths.get(this.nextAvailableIndex);
|
|
7985
8011
|
const meta = this.toolCallMeta.get(this.nextAvailableIndex);
|
|
7986
|
-
if (!
|
|
8012
|
+
if (!meta?.name || depth > 0 || !meta?.id) {
|
|
7987
8013
|
return this.nextAvailableIndex;
|
|
7988
8014
|
}
|
|
7989
|
-
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
7993
|
-
|
|
8015
|
+
if (buffer.trim()) {
|
|
8016
|
+
try {
|
|
8017
|
+
JSON.parse(buffer);
|
|
8018
|
+
} catch {
|
|
8019
|
+
return this.nextAvailableIndex;
|
|
7994
8020
|
}
|
|
7995
|
-
} catch {
|
|
7996
|
-
return this.nextAvailableIndex;
|
|
7997
8021
|
}
|
|
7998
8022
|
this.nextAvailableIndex++;
|
|
7999
8023
|
}
|
|
@@ -8003,8 +8027,9 @@ var StreamingToolCallParser = class {
|
|
|
8003
8027
|
* Finds the most recent incomplete tool call index
|
|
8004
8028
|
*
|
|
8005
8029
|
* Used when continuation chunks arrive without IDs. Scans existing tool calls
|
|
8006
|
-
* to find the highest index with incomplete parsing state (depth > 0, empty
|
|
8007
|
-
* or unparseable JSON). Falls back to
|
|
8030
|
+
* to find the highest index with incomplete parsing state (depth > 0, empty
|
|
8031
|
+
* buffer with no name metadata yet, or unparseable JSON). Falls back to
|
|
8032
|
+
* creating a new index if none found.
|
|
8008
8033
|
*
|
|
8009
8034
|
* @returns The index of the most recent incomplete tool call, or a new available index
|
|
8010
8035
|
*/
|
|
@@ -8013,7 +8038,7 @@ var StreamingToolCallParser = class {
|
|
|
8013
8038
|
for (const [index, buffer] of this.buffers.entries()) {
|
|
8014
8039
|
const depth = this.depths.get(index);
|
|
8015
8040
|
const meta = this.toolCallMeta.get(index);
|
|
8016
|
-
if (meta?.id && (depth > 0 || !buffer.trim())) {
|
|
8041
|
+
if (meta?.id && (depth > 0 || !buffer.trim() && !meta?.name)) {
|
|
8017
8042
|
maxIndex = Math.max(maxIndex, index);
|
|
8018
8043
|
} else if (buffer.trim()) {
|
|
8019
8044
|
try {
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2MJAXDFK.js";
|
|
6
6
|
import {
|
|
7
7
|
computeThresholds,
|
|
8
8
|
getCoreSystemPrompt
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZWFS7YCB.js";
|
|
10
10
|
import {
|
|
11
11
|
buildSkillLlmContent
|
|
12
12
|
} from "./chunk-NQKLOAVJ.js";
|
|
13
13
|
import {
|
|
14
14
|
DiscoveredMCPTool,
|
|
15
15
|
uiTelemetryService
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-N33JAGJ7.js";
|
|
17
17
|
import {
|
|
18
18
|
ToolNames
|
|
19
19
|
} from "./chunk-X3YGAX7V.js";
|
|
20
20
|
import {
|
|
21
21
|
DEFAULT_TOKEN_LIMIT
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-HW4N45EE.js";
|
|
23
23
|
import {
|
|
24
24
|
init_esbuild_shims
|
|
25
25
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -90,7 +90,7 @@ async function collectContextData(config, showDetails) {
|
|
|
90
90
|
const builtinTools = [];
|
|
91
91
|
const mcpTools = [];
|
|
92
92
|
for (const tool of allTools) {
|
|
93
|
-
if (
|
|
93
|
+
if (toolRegistry?.isDeferredAndHidden(tool.name)) {
|
|
94
94
|
continue;
|
|
95
95
|
}
|
|
96
96
|
const toolJsonStr = JSON.stringify(tool.schema);
|
|
@@ -21,6 +21,22 @@ import {
|
|
|
21
21
|
init_esbuild_shims();
|
|
22
22
|
import * as fs from "node:fs/promises";
|
|
23
23
|
import * as path from "node:path";
|
|
24
|
+
var MAX_TASK_RUNS = 20;
|
|
25
|
+
function appendCronRun(runs, entry) {
|
|
26
|
+
const base = Array.isArray(runs) ? runs : [];
|
|
27
|
+
const next = [...base, entry];
|
|
28
|
+
return next.length > MAX_TASK_RUNS ? next.slice(next.length - MAX_TASK_RUNS) : next;
|
|
29
|
+
}
|
|
30
|
+
__name(appendCronRun, "appendCronRun");
|
|
31
|
+
function generateCronTaskId() {
|
|
32
|
+
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
33
|
+
let id = "";
|
|
34
|
+
for (let i = 0; i < 8; i++) {
|
|
35
|
+
id += chars[Math.floor(Math.random() * chars.length)];
|
|
36
|
+
}
|
|
37
|
+
return id;
|
|
38
|
+
}
|
|
39
|
+
__name(generateCronTaskId, "generateCronTaskId");
|
|
24
40
|
var TASKS_FILENAME = "scheduled_tasks.json";
|
|
25
41
|
var CRON_TASKS_DISPLAY_PATH = `~/.qwen/tmp/<project-hash>/${TASKS_FILENAME}`;
|
|
26
42
|
var UPDATE_LOCK_RETRY_MS = 15;
|
|
@@ -164,14 +180,33 @@ function isFiniteTimestamp(value) {
|
|
|
164
180
|
return typeof value === "number" && Number.isFinite(value);
|
|
165
181
|
}
|
|
166
182
|
__name(isFiniteTimestamp, "isFiniteTimestamp");
|
|
183
|
+
function isValidRuns(value) {
|
|
184
|
+
if (!Array.isArray(value)) return false;
|
|
185
|
+
return value.every((entry) => {
|
|
186
|
+
if (typeof entry !== "object" || entry === null) return false;
|
|
187
|
+
const run = entry;
|
|
188
|
+
return isFiniteTimestamp(run["at"]) && (run["kind"] === void 0 || typeof run["kind"] === "string") && (run["sessionId"] === void 0 || typeof run["sessionId"] === "string");
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
__name(isValidRuns, "isValidRuns");
|
|
167
192
|
function isValidTask(value) {
|
|
168
193
|
if (typeof value !== "object" || value === null) return false;
|
|
169
194
|
const obj = value;
|
|
170
|
-
return typeof obj["id"] === "string" && typeof obj["cron"] === "string" && typeof obj["prompt"] === "string" && typeof obj["recurring"] === "boolean" && isFiniteTimestamp(obj["createdAt"]) && (obj["lastFiredAt"] === null || isFiniteTimestamp(obj["lastFiredAt"]))
|
|
195
|
+
return typeof obj["id"] === "string" && typeof obj["cron"] === "string" && typeof obj["prompt"] === "string" && typeof obj["recurring"] === "boolean" && isFiniteTimestamp(obj["createdAt"]) && (obj["lastFiredAt"] === null || isFiniteTimestamp(obj["lastFiredAt"])) && // Optional fields (added for the management UI): absent is valid and
|
|
196
|
+
// means "unnamed" / "enabled". Present-but-wrong-type routes through
|
|
197
|
+
// the same fix-or-delete contract as any other corrupt field rather
|
|
198
|
+
// than being silently coerced or dropped.
|
|
199
|
+
(obj["name"] === void 0 || typeof obj["name"] === "string") && (obj["enabled"] === void 0 || typeof obj["enabled"] === "boolean") && (obj["disabledByArchive"] === void 0 || typeof obj["disabledByArchive"] === "boolean") && // A bound sessionId must be a NON-EMPTY string: an empty string would pass
|
|
200
|
+
// a bare `typeof` check but the scheduler's truthy `task.sessionId` guard
|
|
201
|
+
// would treat it as unbound, so a "bound" task would silently run unbound.
|
|
202
|
+
(obj["sessionId"] === void 0 || typeof obj["sessionId"] === "string" && obj["sessionId"].length > 0) && (obj["runs"] === void 0 || isValidRuns(obj["runs"]));
|
|
171
203
|
}
|
|
172
204
|
__name(isValidTask, "isValidTask");
|
|
173
205
|
|
|
174
206
|
export {
|
|
207
|
+
MAX_TASK_RUNS,
|
|
208
|
+
appendCronRun,
|
|
209
|
+
generateCronTaskId,
|
|
175
210
|
CRON_TASKS_DISPLAY_PATH,
|
|
176
211
|
getCronFilePath,
|
|
177
212
|
readCronTasks,
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
noteInteraction
|
|
5
|
-
} from "./chunk-MRO43B25.js";
|
|
6
3
|
import {
|
|
7
4
|
require_jsx_runtime,
|
|
8
5
|
use_stdin_default,
|
|
9
6
|
use_stdout_default
|
|
10
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MZWODTEA.js";
|
|
11
8
|
import {
|
|
12
9
|
require_react
|
|
13
10
|
} from "./chunk-KYMBIKIW.js";
|
|
11
|
+
import {
|
|
12
|
+
noteInteraction
|
|
13
|
+
} from "./chunk-MRO43B25.js";
|
|
14
14
|
import {
|
|
15
15
|
sanitizeFilenameForDisplay
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7VCI24VZ.js";
|
|
17
17
|
import {
|
|
18
18
|
t
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2MJAXDFK.js";
|
|
20
20
|
import {
|
|
21
21
|
fetchGitDiff,
|
|
22
22
|
findProviderByCredentials,
|
|
23
23
|
resolveMetadataKey
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-ZWFS7YCB.js";
|
|
25
25
|
import {
|
|
26
26
|
KittySequenceOverflowEvent,
|
|
27
27
|
logKittySequenceOverflow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-N33JAGJ7.js";
|
|
29
29
|
import {
|
|
30
30
|
createDebugLogger
|
|
31
31
|
} from "./chunk-22MNNNXE.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-MX2YXRER.js";
|
|
9
9
|
import {
|
|
10
10
|
loadSettings
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-O6T7PBUM.js";
|
|
12
12
|
import {
|
|
13
13
|
DEFAULT_RING_SIZE
|
|
14
14
|
} from "./chunk-G7ZG7CA6.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
MCP_BUDGET_WARN_FRACTION,
|
|
20
20
|
parsePositiveIntegerEnv
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ZWFS7YCB.js";
|
|
22
22
|
import {
|
|
23
23
|
openBrowserSecurely,
|
|
24
24
|
shouldLaunchBrowser
|
|
@@ -66,6 +66,10 @@ async function maybeOpenWebShellBrowser(handle, open) {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
__name(maybeOpenWebShellBrowser, "maybeOpenWebShellBrowser");
|
|
69
|
+
function primaryWorkspaceArg(workspace) {
|
|
70
|
+
return Array.isArray(workspace) ? workspace[0] : workspace;
|
|
71
|
+
}
|
|
72
|
+
__name(primaryWorkspaceArg, "primaryWorkspaceArg");
|
|
69
73
|
var serveCommand = {
|
|
70
74
|
command: "serve",
|
|
71
75
|
describe: "Run Qwen Code as a local HTTP daemon (Stage 1 experimental: --http-bridge)",
|
|
@@ -90,6 +94,8 @@ var serveCommand = {
|
|
|
90
94
|
description: "Per-session cap on accepted prompts waiting or running. New prompts beyond this return 503. Set to 0 to disable."
|
|
91
95
|
}).option("workspace", {
|
|
92
96
|
type: "string",
|
|
97
|
+
array: true,
|
|
98
|
+
requiresArg: true,
|
|
93
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. For multi-workspace deployments, run one `qwen serve` per workspace on separate ports (or behind an external orchestrator)."
|
|
94
100
|
}).option("max-connections", {
|
|
95
101
|
type: "number",
|
|
@@ -235,7 +241,9 @@ var serveCommand = {
|
|
|
235
241
|
);
|
|
236
242
|
}
|
|
237
243
|
try {
|
|
238
|
-
const loaded = loadSettings(
|
|
244
|
+
const loaded = loadSettings(
|
|
245
|
+
primaryWorkspaceArg(argv.workspace) ?? process.cwd()
|
|
246
|
+
);
|
|
239
247
|
const merged = loaded.merged;
|
|
240
248
|
const approvalMode = merged.tools?.approvalMode;
|
|
241
249
|
const sandbox = merged.tools?.sandbox;
|
|
@@ -279,7 +287,7 @@ var serveCommand = {
|
|
|
279
287
|
process.exit(1);
|
|
280
288
|
}
|
|
281
289
|
}
|
|
282
|
-
const { runQwenServe } = await import("./run-qwen-serve-
|
|
290
|
+
const { runQwenServe } = await import("./run-qwen-serve-NQH6LQTH.js");
|
|
283
291
|
try {
|
|
284
292
|
const handle = await runQwenServe({
|
|
285
293
|
port: argv.port,
|