@qwen-code/qwen-code 0.19.6 → 0.19.7-nightly.20260708.394c1a289
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/configuration/model-providers.md +5 -1
- package/bundled/qc-helper/docs/configuration/settings.md +33 -1
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +41 -31
- 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/commands.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +6 -0
- package/bundled/qc-helper/docs/features/skills.md +5 -3
- package/bundled/qc-helper/docs/integration-github-action.md +1 -1
- package/bundled/review/DESIGN.md +50 -18
- package/bundled/review/SKILL.md +102 -12
- package/chunks/{MaxSizedBox-SK7CUWZQ.js → MaxSizedBox-XS37LWTD.js} +31 -29
- package/chunks/{StandaloneSessionPicker-G44HGSAP.js → StandaloneSessionPicker-LPALJTKN.js} +44 -41
- package/chunks/{acpAgent-PKCTYWJV.js → acpAgent-4VE3FGJX.js} +769 -366
- package/chunks/{agent-IYMHUXWB.js → agent-CCHERW6L.js} +24 -24
- package/chunks/{agent-headless-L2DAW6I5.js → agent-headless-55N6UBUU.js} +24 -24
- package/chunks/{anthropicContentGenerator-H5ZOEENQ.js → anthropicContentGenerator-AKYPSZIV.js} +7 -7
- package/chunks/{artifact-tool-SLYPWG3C.js → artifact-tool-D233YJFH.js} +27 -8
- package/chunks/{askUserQuestion-OKPTECON.js → askUserQuestion-MKL5ZTMC.js} +2 -2
- package/chunks/{bridge-DF3IJQ5V.js → bridge-U6HXOHE7.js} +34 -32
- package/chunks/{channel-worker-supervisor-JUYQ5Z4R.js → channel-worker-supervisor-CRCVYQIE.js} +1 -1
- package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
- package/chunks/chunk-2DYY5XUZ.js +8223 -0
- package/chunks/chunk-2FHWCKWA.js +262 -0
- package/chunks/{chunk-6BEOH4KK.js → chunk-2NPS2UDH.js} +767 -122
- package/chunks/{chunk-N2IJLN2L.js → chunk-2SWMCXVR.js} +13 -5
- package/chunks/{chunk-OBVBTAX5.js → chunk-2YELHTUE.js} +2 -2
- package/chunks/chunk-332PWN27.js +19 -0
- package/chunks/{chunk-CLQPBI4H.js → chunk-3B26UVCX.js} +132 -26
- package/chunks/{chunk-HCFSKO6K.js → chunk-3QDZDAJG.js} +1 -1
- package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
- package/chunks/{chunk-SL2P3JUA.js → chunk-43W4YSO6.js} +1 -12
- package/chunks/{chunk-JA5KWZTJ.js → chunk-44NROQYV.js} +5 -3
- package/chunks/{chunk-BOAWGUY6.js → chunk-4AFOWB47.js} +121 -49
- package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
- package/chunks/{chunk-YTWX5TT2.js → chunk-5FL2K3ZB.js} +1 -1
- package/chunks/{chunk-UNXGEDX2.js → chunk-5OSSOBZC.js} +133 -25
- package/chunks/{chunk-JN2VJ33O.js → chunk-7I4MGFBN.js} +966 -121
- package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
- package/chunks/chunk-A2X3KLC3.js +3807 -0
- package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
- package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
- package/chunks/{chunk-IUSKVKH5.js → chunk-AXTPFMRS.js} +1 -1
- package/chunks/{chunk-T22H4V4R.js → chunk-B34OV7K2.js} +1 -1
- package/chunks/{chunk-FZ5NVRVK.js → chunk-B5FOCTEZ.js} +3 -3
- package/chunks/{chunk-3UC7ZC43.js → chunk-B6WUEODT.js} +7 -7
- package/chunks/{chunk-MJKEQSZI.js → chunk-BGL43SJ3.js} +1 -1
- package/chunks/{chunk-OAYOHSGP.js → chunk-BHRU4SDF.js} +4 -4
- package/chunks/{chunk-YPCPZSZB.js → chunk-CCGOFQV3.js} +56 -4
- package/chunks/{chunk-FDY3XOTM.js → chunk-CR5IU2RX.js} +4 -4
- package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
- package/chunks/{chunk-AGZF43UV.js → chunk-E7HM76PR.js} +7153 -4406
- package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
- package/chunks/{chunk-YSU33ACT.js → chunk-ELMPRVCB.js} +5 -13
- package/chunks/{chunk-SEZC2725.js → chunk-ER3BKOLB.js} +13 -0
- package/chunks/{chunk-3VJ7MT3N.js → chunk-EXPMGZZV.js} +14 -3
- package/chunks/{chunk-DBF3HTLT.js → chunk-FB2ULV4M.js} +4 -4
- package/chunks/{chunk-RZORUN6X.js → chunk-FEJ2FZ3U.js} +1 -1
- package/chunks/chunk-FK77ILF5.js +2477 -0
- package/chunks/{chunk-DMSNJDWG.js → chunk-FV7425LN.js} +38 -3
- package/chunks/{chunk-ALX6BUYW.js → chunk-G7ZG7CA6.js} +186 -27
- package/chunks/{chunk-2INJBYLJ.js → chunk-GIY6JTTC.js} +6 -6
- package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
- package/chunks/{chunk-KYTQOCDE.js → chunk-HW4N45EE.js} +17 -46
- package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
- package/chunks/chunk-II73RK2S.js +158 -0
- package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
- package/chunks/{chunk-GQBRGBLS.js → chunk-J43WPR6U.js} +9 -9
- package/chunks/{chunk-SRNPMG7J.js → chunk-JYOWO2F7.js} +16 -10
- package/chunks/{chunk-57NRQM3P.js → chunk-K34DD7FH.js} +2 -2
- package/chunks/{chunk-O2RJARYU.js → chunk-KKWO4IX2.js} +1409 -4088
- package/chunks/{chunk-SOT7OMGL.js → chunk-KT3SI3CQ.js} +2 -2
- package/chunks/{chunk-NUK2PFSU.js → chunk-L7IWK7JY.js} +1 -1
- package/chunks/{chunk-MHQKYQDS.js → chunk-LC4SMGYY.js} +158 -3
- package/chunks/chunk-LGFAYIKX.js +115 -0
- package/chunks/{chunk-MBWLP5OT.js → chunk-LKXDC3AW.js} +162 -40
- package/chunks/{chunk-7Z6UEJA4.js → chunk-ME344634.js} +5 -2
- package/chunks/{chunk-V6NH3CUC.js → chunk-MOQOAH7N.js} +3 -3
- package/chunks/{chunk-FPHA7WIZ.js → chunk-MYZWWRVW.js} +3 -3
- package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
- package/chunks/chunk-N74BA4VP.js +949 -0
- package/chunks/{chunk-B236XPGF.js → chunk-NQKLOAVJ.js} +29 -2
- package/chunks/{chunk-LXFCHX4X.js → chunk-OU6FPTJZ.js} +312 -25
- package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
- package/chunks/{chunk-3X76L4UF.js → chunk-PLGONYEL.js} +5 -5
- package/chunks/{chunk-WXUDZHOJ.js → chunk-PVXPDMGP.js} +10 -2
- package/chunks/{chunk-ZO5EA3XJ.js → chunk-QCSLZO6J.js} +1 -1
- package/chunks/{chunk-CEYA7K7C.js → chunk-QHT5USLK.js} +62 -12
- package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
- package/chunks/{chunk-N4YJQTRL.js → chunk-RFIL6REB.js} +71 -2
- package/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
- package/chunks/{chunk-OIFSBXSP.js → chunk-SJHAUELE.js} +3 -3
- package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
- package/chunks/{chunk-QOKV6AO4.js → chunk-T2EJHSE3.js} +184 -147
- package/chunks/{chunk-ZI4MGBB5.js → chunk-TBAZMRW3.js} +1 -1
- package/chunks/{chunk-6QVRLKTZ.js → chunk-TBLJNMI7.js} +7 -7
- package/chunks/{chunk-J6ABRKAB.js → chunk-TDGF35EN.js} +2 -2
- package/chunks/chunk-TEYGKLIZ.js +167 -0
- package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
- package/chunks/chunk-UIDXQNMV.js +13 -0
- package/chunks/{chunk-MX7CTJHR.js → chunk-UZCT5OLN.js} +9 -9
- package/chunks/{chunk-LM3YCCZJ.js → chunk-VEB3NYSO.js} +1 -1
- package/chunks/{chunk-UTL7KABL.js → chunk-VQJ64BIQ.js} +7 -7
- package/chunks/{chunk-C2QKQZEQ.js → chunk-VTCPREC7.js} +3 -3
- package/chunks/{chunk-5ES5YPED.js → chunk-VZ7HY3YU.js} +1 -1
- package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
- package/chunks/{chunk-NVFJSIAX.js → chunk-WMPVYQ4P.js} +1 -1
- package/chunks/{chunk-V5VTULL5.js → chunk-X265R5C6.js} +3 -3
- package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
- package/chunks/{chunk-MJKMIQMK.js → chunk-X3YGAX7V.js} +1 -1
- package/chunks/{chunk-5WQF27GW.js → chunk-XQ2GVLNJ.js} +1 -1
- package/chunks/chunk-XUSONNJ4.js +28 -0
- package/chunks/{chunk-DXXNMPJH.js → chunk-YMWIKAEE.js} +460 -93
- package/chunks/{chunk-A34EPIUV.js → chunk-YYU6H66M.js} +18 -15
- package/chunks/{chunk-XH7H6YG4.js → chunk-ZK5EI6NR.js} +4 -107
- package/chunks/{computer-use-5S3NVXRA.js → computer-use-4CTF6WS3.js} +24 -24
- package/chunks/{contextCommand-DPBALZFK.js → contextCommand-Z3XWQCY6.js} +28 -27
- package/chunks/{cron-create-7JYUDTUY.js → cron-create-JSXEIPVS.js} +4 -4
- package/chunks/{cron-delete-YPULQQAK.js → cron-delete-OIFVEPGU.js} +4 -4
- package/chunks/{cron-list-HJIW5MHP.js → cron-list-D4ZX4IOE.js} +11 -7
- package/chunks/{daemon-7XYW4BC3.js → daemon-F3I2RXP6.js} +208 -63
- package/chunks/daemon-status-provider-6A4QCG6Q.js +74 -0
- package/chunks/dist-573HNSVO.js +3217 -0
- package/chunks/{dist-ABQ7VWRR.js → dist-FQ5WRJPL.js} +2 -2
- package/chunks/{dist-JPSVN367.js → dist-IMFFBMAT.js} +6 -3792
- package/chunks/{dist-BV56HW3W.js → dist-OT7G2WNM.js} +250 -1
- package/chunks/{dist-AW5ZYMUI.js → dist-PKFTNUHO.js} +10 -11
- package/chunks/{dist-AAO65DPC.js → dist-YTRKAVUB.js} +1 -1
- package/chunks/{earlyInputCapture-GGPV4IFT.js → earlyInputCapture-7O47HW62.js} +25 -25
- package/chunks/{edit-HJ7ISN4C.js → edit-E32KWLF2.js} +25 -25
- package/chunks/{en-XR3S5VWY.js → en-GA2RMXY5.js} +6 -1
- package/chunks/{enter-worktree-2BQT675D.js → enter-worktree-ZKFFMHUD.js} +24 -24
- package/chunks/{enterPlanMode-SJXHJ3WD.js → enterPlanMode-HLDC6NGX.js} +24 -24
- package/chunks/{errors-EVGER4AZ.js → errors-MTIDDXX7.js} +26 -26
- package/chunks/{exit-worktree-RPDDOSPM.js → exit-worktree-YHY72XA2.js} +24 -24
- package/chunks/{exitPlanMode-BQEROAJ7.js → exitPlanMode-JNXKBZ2C.js} +24 -24
- package/chunks/{fast-path-FX2ICJ2O.js → fast-path-DVAGBROV.js} +5 -2
- package/chunks/{fr-MBMNQSQ6.js → fr-GWNQG4XH.js} +4 -0
- package/chunks/{gemini-EHUXCOUI.js → gemini-2TMHJVRC.js} +444 -256
- package/chunks/{geminiContentGenerator-YDUUKAM2.js → geminiContentGenerator-WCH4GWD3.js} +4 -4
- package/chunks/{glob-3VIGV2DL.js → glob-I6Y4AGKO.js} +52 -28
- package/chunks/{grep-4D3S4NUC.js → grep-3P2J3LU5.js} +24 -24
- package/chunks/handleAutoUpdate-4IVRMRG4.js +65 -0
- package/chunks/{initializer-QZTZSSLW.js → initializer-DVNCPVTC.js} +31 -29
- package/chunks/{ja-HFV5QCHR.js → ja-2HOTA47X.js} +4 -0
- package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
- package/chunks/{list-WQ24EAMK.js → list-4D6QK2KZ.js} +30 -30
- package/chunks/{loadedSettingsAdapter-XV74KOSR.js → loadedSettingsAdapter-GNGELH6Q.js} +28 -28
- package/chunks/{loop-wakeup-34YK7T7O.js → loop-wakeup-OHWEMFP5.js} +5 -5
- package/chunks/{ls-MPD5OJUX.js → ls-L654WOAT.js} +4 -4
- package/chunks/{lsp-72PWTDW7.js → lsp-M35KE54Y.js} +2 -2
- package/chunks/{mcp-CO3MKM7N.js → mcp-2IL72YJP.js} +28 -28
- package/chunks/{monitor-GB56T65A.js → monitor-BLVCZAVX.js} +32 -27
- package/chunks/nonInteractiveCli-UD3V7UOO.js +116 -0
- package/chunks/{notebook-edit-VMXAAE3R.js → notebook-edit-5TVMWIWY.js} +25 -25
- package/chunks/{openaiContentGenerator-GM77FLII.js → openaiContentGenerator-5LJ5A7YY.js} +12 -12
- package/chunks/{pidfile-HFXSHR64.js → pidfile-AN5JQJ2T.js} +25 -25
- package/chunks/{qwenContentGenerator-QSCXQIKJ.js → qwenContentGenerator-E2JSB4FJ.js} +26 -26
- package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
- package/chunks/{read-file-SVH6CGQY.js → read-file-N5DEFUDU.js} +8 -8
- package/chunks/{read-mcp-resource-OWOBJY72.js → read-mcp-resource-CNQHBSJM.js} +2 -2
- package/chunks/{record-artifact-URK3YUDJ.js → record-artifact-PP3LKHTS.js} +2 -2
- package/chunks/{ripGrep-JD5O2FLX.js → ripGrep-BLJHTHKE.js} +24 -24
- package/chunks/{run-qwen-serve-FADLRJUN.js → run-qwen-serve-4JDO64RN.js} +785 -35
- package/chunks/{scheduler-Q65SB7DJ.js → scheduler-FQR4XA7J.js} +24 -24
- package/chunks/{send-message-L7OLQEKH.js → send-message-OA6MV4EU.js} +3 -3
- package/chunks/{serve-6ZXAMQ4M.js → serve-ZOCFC7YM.js} +29 -29
- package/chunks/{server-WKDQA6XR.js → server-GEOYEPYT.js} +2504 -439
- package/chunks/{session-STWOX7RA.js → session-NJCONHGX.js} +66 -61
- package/chunks/{settings-LC4CCWQQ.js → settings-QBGGXANI.js} +27 -27
- package/chunks/{shell-FEG3RLPW.js → shell-2DVPSEKT.js} +24 -24
- package/chunks/{skill-XTXAMDAP.js → skill-HIPXUHV7.js} +24 -12
- package/chunks/{spawnChannel-B6JJPBPV.js → spawnChannel-3JYXY52G.js} +27 -27
- package/chunks/{src-HITDGVRM.js → src-NLEX4CUC.js} +91 -36
- package/chunks/{startInteractiveUI-IT423PW4.js → startInteractiveUI-TYGZIU27.js} +6213 -14273
- package/chunks/{syntheticOutput-J3MLCQAR.js → syntheticOutput-F7LSDCAR.js} +3 -3
- package/chunks/{task-create-ELEBZ7H2.js → task-create-RPFZNB4B.js} +7 -7
- package/chunks/{task-list-IEUZLF3Y.js → task-list-TGGJX7EA.js} +5 -5
- package/chunks/{task-stop-QEZW3UDY.js → task-stop-W7NGTMYQ.js} +2 -2
- package/chunks/{task-update-DW36J5P5.js → task-update-5WUG5MVQ.js} +7 -7
- package/chunks/{team-create-DAG6SNHZ.js → team-create-MGX57SZJ.js} +24 -24
- package/chunks/{team-delete-SVITIMBO.js → team-delete-UHQQ2QQX.js} +5 -5
- package/chunks/{team-plan-approval-DRDY5OPC.js → team-plan-approval-BO2N7J3E.js} +24 -24
- package/chunks/{theme-manager-N67EZC6B.js → theme-manager-WU7LOA64.js} +25 -25
- package/chunks/{todoWrite-SFFQHZYY.js → todoWrite-C4ZAMSR3.js} +4 -4
- package/chunks/{tool-search-CMDJ5HGM.js → tool-search-CLBKVEVK.js} +11 -28
- package/chunks/{trustedFolders-JD4QX6UJ.js → trustedFolders-GAQM2GHB.js} +25 -25
- package/chunks/updateCheck-RIK2YIQE.js +65 -0
- package/chunks/{validateNonInterActiveAuth-ADDCGZ6A.js → validateNonInterActiveAuth-NS3GBIJZ.js} +61 -56
- package/chunks/{version-VAONYVE5.js → version-B3RSLP54.js} +2 -1
- package/chunks/{web-fetch-SXAXJHIO.js → web-fetch-UYGMOHW4.js} +5 -5
- package/chunks/{workflow-DG2BR42M.js → workflow-7APPIGND.js} +25 -25
- package/chunks/{workspace-providers-status-XGW5OZTD.js → workspace-providers-status-SC67GLMY.js} +30 -30
- package/chunks/{workspace-service-GX3GGZLU.js → workspace-service-ZJHF22WA.js} +35 -35
- package/chunks/{workspace-skills-status-LFK5WV2V.js → workspace-skills-status-NJEK6P6Y.js} +29 -29
- package/chunks/{write-file-UR7FXWOU.js → write-file-R6Z3VLRY.js} +25 -25
- package/chunks/{zh-FSVJTXA4.js → zh-7XVVRTDH.js} +6 -1
- package/chunks/{zh-TW-66MG4LWL.js → zh-TW-DPH554OG.js} +6 -1
- package/cli.js +19 -11
- package/locales/en.js +9 -2
- package/locales/fr.js +6 -0
- package/locales/ja.js +6 -0
- package/locales/zh-TW.js +9 -2
- package/locales/zh.js +9 -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-CUpe0ibu.js → arc-C7hjaa7g.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-JvyrY_mK.js → architectureDiagram-3BPJPVTR-pm9KtMZY.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CK3Y_vom.js → blockDiagram-GPEHLZMM-CApElKsU.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DprSnyrf.js → c4Diagram-AAUBKEIU-BeDe0-9N.js} +1 -1
- package/web-shell/assets/channel-BNf1dW-j.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJtRJPmu.js → chunk-2J33WTMH-DJEkmLdl.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-ON6Q2-BG.js → chunk-4BX2VUAB-DXX8gdpe.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-c60ou5HZ.js → chunk-55IACEB6-DORmk1kQ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BamtPKxx.js → chunk-727SXJPM-DWmO4mCZ.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CsVgpu-T.js → chunk-AQP2D5EJ-C7LRaYw2.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-vZrpjAx4.js → chunk-FMBD7UC4-CCdXgyC5.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qxyNOd5t.js → chunk-ND2GUHAM-SyL_xvWc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BvTJSM_S.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-1tXB4pju.js → cose-bilkent-S5V4N54A-BMPWyDKc.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DglBzme8.js → dagre-BM42HDAG-B_GnPWik.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-DEJpqsWz.js → diagram-2AECGRRQ-fJqMc3S_.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CsQ1NrMG.js → diagram-5GNKFQAL-ximV3O9D.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Z-3codAi.js → diagram-KO2AKTUF-2vVyjzqw.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-mBuPTA2i.js → diagram-LMA3HP47-Dckcx1sT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-tcA3K3s9.js → diagram-OG6HWLK6-BAVv47ga.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D9bXFRyZ.js → erDiagram-TEJ5UH35-Bn3nf5J0.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Ck0Py04s.js → flowDiagram-I6XJVG4X-BIbGF9JT.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-rOevCekE.js → ganttDiagram-6RSMTGT7-CDbhb3AH.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CoPQaLj0.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-a77CUKoI.js → infoDiagram-5YYISTIA-DUFxTy8m.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DlLgUAO-.js → ishikawaDiagram-YF4QCWOH-D69hrBG8.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BXR5kVAZ.js → journeyDiagram-JHISSGLW-DsvEw51Y.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-h5CoHZg7.js → kanban-definition-UN3LZRKU-lFFjZEYd.js} +1 -1
- package/web-shell/assets/{linear-BkaREbyD.js → linear-Bo5bWzvo.js} +1 -1
- package/web-shell/assets/{mermaid.core-Bkagz0ng.js → mermaid.core-C_HKMJx5.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D7EMKR_5.js → mindmap-definition-RKZ34NQL-DlV-NUTs.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DAmPOjsL.js → pieDiagram-4H26LBE5-B2e6FH2a.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-e4WFQkQu.js → quadrantDiagram-W4KKPZXB-D75kSk-b.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-v1zo7OiV.js → requirementDiagram-4Y6WPE33-CQ6xakhM.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bstm4aW_.js → sankeyDiagram-5OEKKPKP-J_XTKrcY.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DzcZy6xN.js → sequenceDiagram-3UESZ5HK-D7jTcBtf.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BEJH6YbH.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-TI1wH-Pm.js → timeline-definition-PNZ67QCA-5oZi76Ef.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-YaH8VDMS.js → vennDiagram-CIIHVFJN-DO5YptPK.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B80co7OP.js → wardley-L42UT6IY-4t1eJDvM.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-4fHNDEMl.js → wardleyDiagram-YWT4CUSO-DKZc661S.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DT3q4Z3J.js → xychartDiagram-2RQKCTM6-su9hp08G.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-L7QPM2YD.js +0 -481
- package/chunks/daemon-status-provider-2EWTHT7Y.js +0 -73
- package/chunks/nonInteractiveCli-HNZRIM5I.js +0 -111
- package/web-shell/assets/channel-BAxQ2-aZ.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +0 -1
- package/web-shell/assets/index-Cr7MYW6T.css +0 -5
- package/web-shell/assets/index-DCHPAUp3.js +0 -730
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +0 -1
|
@@ -8,17 +8,17 @@ import {
|
|
|
8
8
|
} from "./chunk-MX2YXRER.js";
|
|
9
9
|
import {
|
|
10
10
|
loadSettings
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QHT5USLK.js";
|
|
12
12
|
import {
|
|
13
13
|
DEFAULT_RING_SIZE
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-G7ZG7CA6.js";
|
|
15
15
|
import {
|
|
16
16
|
writeStderrLine
|
|
17
17
|
} from "./chunk-Y6Z2O3WR.js";
|
|
18
18
|
import {
|
|
19
19
|
MCP_BUDGET_WARN_FRACTION,
|
|
20
20
|
parsePositiveIntegerEnv
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-E7HM76PR.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-4JDO64RN.js");
|
|
283
291
|
try {
|
|
284
292
|
const handle = await runQwenServe({
|
|
285
293
|
port: argv.port,
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
escapeAnsiCtrlCodes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZK5EI6NR.js";
|
|
6
6
|
import {
|
|
7
7
|
wrapper_default
|
|
8
8
|
} from "./chunk-H6BD2ELD.js";
|
|
9
9
|
import {
|
|
10
10
|
createDebugLogger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-22MNNNXE.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
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/patches/is-in-ci.ts
|
|
8
|
+
init_esbuild_shims();
|
|
9
|
+
var isInCi = false;
|
|
10
|
+
var is_in_ci_default = isInCi;
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
is_in_ci_default
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @license
|
|
17
|
+
* Copyright 2025 Google LLC
|
|
18
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
19
|
+
*/
|
|
@@ -11,19 +11,21 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
CRON_TASKS_DISPLAY_PATH,
|
|
13
13
|
addCronTask,
|
|
14
|
+
appendCronRun,
|
|
15
|
+
generateCronTaskId,
|
|
14
16
|
getCronFilePath,
|
|
15
17
|
readCronTasks,
|
|
16
18
|
removeCronTasks,
|
|
17
19
|
updateCronTasks
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-FV7425LN.js";
|
|
19
21
|
import {
|
|
20
22
|
ToolNames
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-X3YGAX7V.js";
|
|
22
24
|
import {
|
|
23
25
|
Storage,
|
|
24
26
|
createDebugLogger,
|
|
25
27
|
getProjectHash
|
|
26
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-22MNNNXE.js";
|
|
27
29
|
import {
|
|
28
30
|
init_esbuild_shims
|
|
29
31
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -187,15 +189,7 @@ function computeJitter(id, cronExpr, recurring) {
|
|
|
187
189
|
return 0;
|
|
188
190
|
}
|
|
189
191
|
__name(computeJitter, "computeJitter");
|
|
190
|
-
|
|
191
|
-
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
192
|
-
let id = "";
|
|
193
|
-
for (let i = 0; i < 8; i++) {
|
|
194
|
-
id += chars[Math.floor(Math.random() * chars.length)];
|
|
195
|
-
}
|
|
196
|
-
return id;
|
|
197
|
-
}
|
|
198
|
-
__name(generateId, "generateId");
|
|
192
|
+
var generateId = generateCronTaskId;
|
|
199
193
|
function clampWakeupSeconds(delaySeconds) {
|
|
200
194
|
if (!Number.isFinite(delaySeconds)) return WAKEUP_DEFAULT_SECONDS;
|
|
201
195
|
return Math.min(
|
|
@@ -289,6 +283,42 @@ var CronScheduler = class {
|
|
|
289
283
|
// the live job away (or clear its pendingRemoval guard) as if it had
|
|
290
284
|
// been deleted on disk.
|
|
291
285
|
pendingAdd = /* @__PURE__ */ new Set();
|
|
286
|
+
// Durable ids whose lastFiredAt persist is in flight after a fire — the tick
|
|
287
|
+
// (on-time) OR a catch-up delivery. A reload racing that async write reads the
|
|
288
|
+
// stale disk stamp, so it must not re-detect and re-fire the same slot. Only
|
|
289
|
+
// populated once a fire has actually been stamped/delivered, so a catch-up that
|
|
290
|
+
// was merely buffered and then dropped never enters it and still re-detects.
|
|
291
|
+
//
|
|
292
|
+
// REF-COUNTED per id (not a plain Set): the same task can have two persists in
|
|
293
|
+
// flight at once (it fired again before the first write landed). Clearing on
|
|
294
|
+
// the FIRST settle would drop the guard while the second write is still
|
|
295
|
+
// pending; the count keeps it until the LAST in-flight persist for that id
|
|
296
|
+
// settles.
|
|
297
|
+
//
|
|
298
|
+
// LIMITATION: this guard is INSTANCE-scoped in-memory state. It protects
|
|
299
|
+
// against a reload racing a persist WITHIN one scheduler. It does NOT survive
|
|
300
|
+
// a new scheduler instance (daemon restart, keepalive revive, session reload):
|
|
301
|
+
// a fresh instance starts with an empty map, so if the previous instance died
|
|
302
|
+
// with a persist still in flight, the new one reads the stale on-disk stamp
|
|
303
|
+
// and can re-fire that slot once. Fully closing that narrow cross-instance
|
|
304
|
+
// window would need a durable stamp (in the tasks file or a lock file); it's
|
|
305
|
+
// accepted here as a sub-second restart-timing edge.
|
|
306
|
+
firePersistPending = /* @__PURE__ */ new Map();
|
|
307
|
+
markFirePersistPending(ids) {
|
|
308
|
+
for (const id of ids) {
|
|
309
|
+
this.firePersistPending.set(
|
|
310
|
+
id,
|
|
311
|
+
(this.firePersistPending.get(id) ?? 0) + 1
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
clearFirePersistPending(ids) {
|
|
316
|
+
for (const id of ids) {
|
|
317
|
+
const next = (this.firePersistPending.get(id) ?? 0) - 1;
|
|
318
|
+
if (next > 0) this.firePersistPending.set(id, next);
|
|
319
|
+
else this.firePersistPending.delete(id);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
292
322
|
fileWatcher = null;
|
|
293
323
|
lockProbeTimer = null;
|
|
294
324
|
debounceTimer = null;
|
|
@@ -557,19 +587,29 @@ var CronScheduler = class {
|
|
|
557
587
|
try {
|
|
558
588
|
read = await readCronTasks(projectRoot);
|
|
559
589
|
} catch {
|
|
590
|
+
if (this.jobs.size > 0) {
|
|
591
|
+
console.warn(
|
|
592
|
+
"CronScheduler: durable tasks reload failed; keeping the previous schedule (a just-disabled or -deleted task may keep firing until the next successful reload)."
|
|
593
|
+
);
|
|
594
|
+
}
|
|
560
595
|
return;
|
|
561
596
|
}
|
|
562
597
|
if (generation !== this.durableGeneration) {
|
|
563
598
|
return;
|
|
564
599
|
}
|
|
565
|
-
const tasks = read.filter(
|
|
600
|
+
const tasks = read.filter(
|
|
601
|
+
(t) => hasParseableCron(t) && t.enabled !== false
|
|
602
|
+
);
|
|
566
603
|
const now = Date.now();
|
|
567
604
|
const missedOneShots = [];
|
|
568
605
|
const catchUpIds = [];
|
|
569
606
|
const finalTasks = [];
|
|
570
|
-
|
|
607
|
+
{
|
|
571
608
|
for (const t of tasks) {
|
|
572
609
|
if (this.pendingRemoval.has(t.id)) continue;
|
|
610
|
+
const responsibleForMissed = typeof t.sessionId === "string" && t.sessionId.length > 0 ? t.sessionId === this.sessionId : handleMissed;
|
|
611
|
+
if (!responsibleForMissed) continue;
|
|
612
|
+
if (this.firePersistPending.has(t.id)) continue;
|
|
573
613
|
const jitter = computeJitter(t.id, t.cron, t.recurring);
|
|
574
614
|
const anchor = t.recurring ? t.lastFiredAt ?? t.createdAt : t.createdAt;
|
|
575
615
|
const nextFire = computeNextFireMs(t.cron, anchor, jitter);
|
|
@@ -602,12 +642,14 @@ var CronScheduler = class {
|
|
|
602
642
|
for (const id of this.pendingRemoval) {
|
|
603
643
|
if (!diskIds.has(id)) this.pendingRemoval.delete(id);
|
|
604
644
|
}
|
|
645
|
+
let durableJobCount = 0;
|
|
646
|
+
for (const j of this.jobs.values()) if (j.durable) durableJobCount++;
|
|
605
647
|
for (const task of tasks) {
|
|
606
648
|
if (this.pendingRemoval.has(task.id)) continue;
|
|
607
649
|
const existing = this.jobs.get(task.id);
|
|
608
|
-
if (!existing &&
|
|
650
|
+
if (!existing && durableJobCount >= MAX_JOBS) {
|
|
609
651
|
debugLogger.warn(
|
|
610
|
-
`Durable task ${task.id} skipped \u2014
|
|
652
|
+
`Durable task ${task.id} skipped \u2014 durable cap (${MAX_JOBS}) reached.`
|
|
611
653
|
);
|
|
612
654
|
continue;
|
|
613
655
|
}
|
|
@@ -616,6 +658,7 @@ var CronScheduler = class {
|
|
|
616
658
|
job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
|
|
617
659
|
}
|
|
618
660
|
this.jobs.set(task.id, job);
|
|
661
|
+
if (!existing) durableJobCount++;
|
|
619
662
|
}
|
|
620
663
|
if (catchUpIds.length > 0) {
|
|
621
664
|
const nowMinuteMs = now - now % 6e4;
|
|
@@ -730,16 +773,28 @@ var CronScheduler = class {
|
|
|
730
773
|
if (fired !== void 0) stamps.set(id, fired);
|
|
731
774
|
}
|
|
732
775
|
if (stamps.size === 0) return;
|
|
776
|
+
const guarded = [...stamps.keys()];
|
|
777
|
+
this.markFirePersistPending(guarded);
|
|
733
778
|
this.trackPersist(
|
|
734
779
|
updateCronTasks(this.projectRoot, (tasks) => {
|
|
735
780
|
let changed = false;
|
|
736
781
|
const next = tasks.map((t) => {
|
|
737
782
|
const stamp = stamps.get(t.id);
|
|
738
|
-
if (stamp === void 0 || t.lastFiredAt
|
|
783
|
+
if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp) return t;
|
|
739
784
|
changed = true;
|
|
740
|
-
return {
|
|
785
|
+
return {
|
|
786
|
+
...t,
|
|
787
|
+
lastFiredAt: stamp,
|
|
788
|
+
runs: appendCronRun(t.runs, {
|
|
789
|
+
at: stamp,
|
|
790
|
+
kind: "catch-up",
|
|
791
|
+
...this.sessionId ? { sessionId: this.sessionId } : {}
|
|
792
|
+
})
|
|
793
|
+
};
|
|
741
794
|
});
|
|
742
795
|
return changed ? next : tasks;
|
|
796
|
+
}).finally(() => {
|
|
797
|
+
this.clearFirePersistPending(guarded);
|
|
743
798
|
})
|
|
744
799
|
);
|
|
745
800
|
}
|
|
@@ -908,6 +963,20 @@ var CronScheduler = class {
|
|
|
908
963
|
this._disabled = true;
|
|
909
964
|
this.stop();
|
|
910
965
|
}
|
|
966
|
+
/**
|
|
967
|
+
* Whether THIS session should fire a given durable job:
|
|
968
|
+
* - A session-bound task (`boundSessionId` set) fires only in its own
|
|
969
|
+
* session, independent of the per-project lock — so each task's fires
|
|
970
|
+
* land in its dedicated transcript and no two sessions race it.
|
|
971
|
+
* - An unbound task fires only in the lock owner (the legacy shared model).
|
|
972
|
+
* A task bound to a *different* session is never fired here.
|
|
973
|
+
*/
|
|
974
|
+
#shouldFireDurable(job) {
|
|
975
|
+
if (job.boundSessionId !== void 0) {
|
|
976
|
+
return job.boundSessionId === this.sessionId;
|
|
977
|
+
}
|
|
978
|
+
return this.isOwner;
|
|
979
|
+
}
|
|
911
980
|
/**
|
|
912
981
|
* Manual tick — checks all jobs against the current time and fires those
|
|
913
982
|
* that are due. Exported for testing.
|
|
@@ -919,7 +988,7 @@ var CronScheduler = class {
|
|
|
919
988
|
const firedAt = /* @__PURE__ */ new Map();
|
|
920
989
|
const removedIds = [];
|
|
921
990
|
for (const job of this.jobs.values()) {
|
|
922
|
-
if (job.durable && !this
|
|
991
|
+
if (job.durable && !this.#shouldFireDurable(job)) continue;
|
|
923
992
|
if (job.durable && this.skipDurableFire?.(job)) {
|
|
924
993
|
debugLogger.debug(
|
|
925
994
|
`Skipping durable job ${job.id} (tick): consumer cannot run it`
|
|
@@ -937,13 +1006,30 @@ var CronScheduler = class {
|
|
|
937
1006
|
if (this.projectRoot && (firedAt.size > 0 || removedIds.length > 0)) {
|
|
938
1007
|
for (const id of removedIds) this.pendingRemoval.add(id);
|
|
939
1008
|
const removed = new Set(removedIds);
|
|
1009
|
+
const guarded = [...firedAt.keys()];
|
|
1010
|
+
this.markFirePersistPending(guarded);
|
|
940
1011
|
this.trackPersist(
|
|
941
1012
|
updateCronTasks(
|
|
942
1013
|
this.projectRoot,
|
|
943
|
-
(tasks) => tasks.filter((t) => !removed.has(t.id)).map(
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
1014
|
+
(tasks) => tasks.filter((t) => !removed.has(t.id)).map((t) => {
|
|
1015
|
+
const stamp = firedAt.get(t.id);
|
|
1016
|
+
if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp)
|
|
1017
|
+
return t;
|
|
1018
|
+
return {
|
|
1019
|
+
...t,
|
|
1020
|
+
lastFiredAt: stamp,
|
|
1021
|
+
runs: appendCronRun(t.runs, {
|
|
1022
|
+
at: stamp,
|
|
1023
|
+
kind: "scheduled",
|
|
1024
|
+
// The owner session that ran this fire — links the run back
|
|
1025
|
+
// to its transcript. Set whenever a durable fire persists.
|
|
1026
|
+
...this.sessionId ? { sessionId: this.sessionId } : {}
|
|
1027
|
+
})
|
|
1028
|
+
};
|
|
1029
|
+
})
|
|
1030
|
+
).finally(() => {
|
|
1031
|
+
this.clearFirePersistPending(guarded);
|
|
1032
|
+
})
|
|
947
1033
|
);
|
|
948
1034
|
}
|
|
949
1035
|
for (const wakeup of this.wakeups.values()) {
|
|
@@ -1070,7 +1156,8 @@ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
|
|
|
1070
1156
|
expiresAt: task.recurring ? task.createdAt + recurringMaxAgeMs : Infinity,
|
|
1071
1157
|
lastFiredAt: task.lastFiredAt ?? void 0,
|
|
1072
1158
|
jitterMs,
|
|
1073
|
-
durable: true
|
|
1159
|
+
durable: true,
|
|
1160
|
+
...task.sessionId ? { boundSessionId: task.sessionId } : {}
|
|
1074
1161
|
};
|
|
1075
1162
|
}
|
|
1076
1163
|
__name(durableTaskToJob, "durableTaskToJob");
|
|
@@ -1081,7 +1168,8 @@ function jobToDurableTask(job) {
|
|
|
1081
1168
|
prompt: job.prompt,
|
|
1082
1169
|
recurring: job.recurring,
|
|
1083
1170
|
createdAt: job.createdAt,
|
|
1084
|
-
lastFiredAt: job.lastFiredAt ?? null
|
|
1171
|
+
lastFiredAt: job.lastFiredAt ?? null,
|
|
1172
|
+
...job.boundSessionId ? { sessionId: job.boundSessionId } : {}
|
|
1085
1173
|
};
|
|
1086
1174
|
}
|
|
1087
1175
|
__name(jobToDurableTask, "jobToDurableTask");
|
|
@@ -1095,13 +1183,31 @@ function computeNextFireMs(cronExpr, afterMs, jitterMs) {
|
|
|
1095
1183
|
}
|
|
1096
1184
|
}
|
|
1097
1185
|
__name(computeNextFireMs, "computeNextFireMs");
|
|
1186
|
+
var nextDurableFireCache = /* @__PURE__ */ new Map();
|
|
1187
|
+
var NEXT_DURABLE_FIRE_CACHE_MAX = 512;
|
|
1188
|
+
function nextDurableFireMs(task) {
|
|
1189
|
+
const anchor = task.recurring ? task.lastFiredAt ?? task.createdAt : task.createdAt;
|
|
1190
|
+
const key = `${task.id}\0${task.cron}\0${task.recurring ? 1 : 0}\0${anchor}`;
|
|
1191
|
+
const cached = nextDurableFireCache.get(key);
|
|
1192
|
+
if (cached !== void 0) return cached;
|
|
1193
|
+
const jitter = computeJitter(task.id, task.cron, task.recurring);
|
|
1194
|
+
const result = computeNextFireMs(task.cron, anchor, jitter);
|
|
1195
|
+
if (nextDurableFireCache.size >= NEXT_DURABLE_FIRE_CACHE_MAX) {
|
|
1196
|
+
nextDurableFireCache.clear();
|
|
1197
|
+
}
|
|
1198
|
+
nextDurableFireCache.set(key, result);
|
|
1199
|
+
return result;
|
|
1200
|
+
}
|
|
1201
|
+
__name(nextDurableFireMs, "nextDurableFireMs");
|
|
1098
1202
|
|
|
1099
1203
|
export {
|
|
1204
|
+
MAX_JOBS,
|
|
1100
1205
|
DEFAULT_RECURRING_MAX_AGE_DAYS,
|
|
1101
1206
|
normalizeRecurringMaxAge,
|
|
1102
1207
|
WAKEUP_MIN_SECONDS,
|
|
1103
1208
|
WAKEUP_MAX_SECONDS,
|
|
1104
1209
|
clampWakeupSeconds,
|
|
1105
1210
|
CronScheduler,
|
|
1106
|
-
buildMissedCronNotification
|
|
1211
|
+
buildMissedCronNotification,
|
|
1212
|
+
nextDurableFireMs
|
|
1107
1213
|
};
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import {
|
|
4
4
|
getTasksDir,
|
|
5
5
|
require_proper_lockfile
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-X2XNQQJI.js";
|
|
7
7
|
import {
|
|
8
8
|
Mutex
|
|
9
9
|
} from "./chunk-OMX7CUOE.js";
|
|
10
10
|
import {
|
|
11
11
|
atomicWriteJSON
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7LTB54MK.js";
|
|
13
13
|
import {
|
|
14
14
|
createDebugLogger,
|
|
15
15
|
isNodeError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-22MNNNXE.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esbuild_shims
|
|
19
19
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
__name
|
|
8
8
|
} from "./chunk-J2S4EL5Y.js";
|
|
9
9
|
|
|
10
|
-
// packages/cli/src/utils/version.ts
|
|
11
|
-
init_esbuild_shims();
|
|
12
|
-
|
|
13
10
|
// packages/cli/src/utils/package.ts
|
|
14
11
|
init_esbuild_shims();
|
|
15
12
|
import { fileURLToPath } from "node:url";
|
|
@@ -31,16 +28,8 @@ async function getPackageJson() {
|
|
|
31
28
|
}
|
|
32
29
|
__name(getPackageJson, "getPackageJson");
|
|
33
30
|
|
|
34
|
-
// packages/cli/src/utils/version.ts
|
|
35
|
-
async function getCliVersion() {
|
|
36
|
-
const pkgJson = await getPackageJson();
|
|
37
|
-
return "0.19.6";
|
|
38
|
-
}
|
|
39
|
-
__name(getCliVersion, "getCliVersion");
|
|
40
|
-
|
|
41
31
|
export {
|
|
42
|
-
getPackageJson
|
|
43
|
-
getCliVersion
|
|
32
|
+
getPackageJson
|
|
44
33
|
};
|
|
45
34
|
/**
|
|
46
35
|
* @license
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
TextTokenizer,
|
|
5
4
|
isSupportedImageMimeType
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HW4N45EE.js";
|
|
6
|
+
import {
|
|
7
|
+
TextTokenizer
|
|
8
|
+
} from "./chunk-CCGOFQV3.js";
|
|
7
9
|
import {
|
|
8
10
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-22MNNNXE.js";
|
|
10
12
|
import {
|
|
11
13
|
init_esbuild_shims
|
|
12
14
|
} from "./chunk-A4BMJM77.js";
|