@qwen-code/qwen-code 0.19.5 → 0.19.6
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/dataviz/SKILL.md +50 -0
- package/bundled/dataviz/references/anti-patterns.md +12 -0
- package/bundled/dataviz/references/choosing-a-form.md +16 -0
- package/bundled/dataviz/references/palette.md +57 -0
- package/bundled/dataviz/scripts/validate_palette.js +328 -0
- package/bundled/loop/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +9 -8
- package/bundled/qc-helper/docs/features/headless.md +2 -2
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +4 -2
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-SK7CUWZQ.js} +14 -14
- package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-G44HGSAP.js} +25 -25
- package/chunks/{acpAgent-4F36XM3X.js → acpAgent-PKCTYWJV.js} +346 -131
- package/chunks/{agent-IWBUZI6A.js → agent-IYMHUXWB.js} +11 -11
- package/chunks/{agent-headless-JUTICAYO.js → agent-headless-L2DAW6I5.js} +11 -11
- package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-H5ZOEENQ.js} +2 -2
- package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-SLYPWG3C.js} +15 -2
- package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-OKPTECON.js} +1 -1
- package/chunks/{bridge-DHZHQ4UV.js → bridge-DF3IJQ5V.js} +17 -16
- package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
- package/chunks/chunk-2INJBYLJ.js +949 -0
- package/chunks/chunk-3RW4AZJV.js +5063 -0
- package/chunks/{chunk-NSSVORTQ.js → chunk-3UC7ZC43.js} +16 -12
- package/chunks/chunk-3VJ7MT3N.js +111 -0
- package/chunks/{chunk-DRS2HTNT.js → chunk-3X76L4UF.js} +5 -5
- package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
- package/chunks/{chunk-EROWZQN7.js → chunk-57NRQM3P.js} +6 -6
- package/chunks/{chunk-L7OJ3ZO3.js → chunk-5ES5YPED.js} +1 -1
- package/chunks/{chunk-RNGAT2Y2.js → chunk-5WQF27GW.js} +1 -1
- package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
- package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
- package/chunks/{chunk-DM4E337C.js → chunk-6QVRLKTZ.js} +4 -4
- package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
- package/chunks/{chunk-LHMZCIKL.js → chunk-7Z6UEJA4.js} +3 -1
- package/chunks/{chunk-SBMHB6N5.js → chunk-A34EPIUV.js} +12 -12
- package/chunks/{chunk-6QTCOQX7.js → chunk-AGZF43UV.js} +1967 -1399
- package/chunks/{chunk-QHYITL6P.js → chunk-BOAWGUY6.js} +5 -11
- package/chunks/{chunk-TN6RT6EJ.js → chunk-C2QKQZEQ.js} +16 -4
- package/chunks/{chunk-BC4R5C5R.js → chunk-CEYA7K7C.js} +32 -6
- package/chunks/{chunk-R6RI2HIC.js → chunk-CLQPBI4H.js} +40 -13
- package/chunks/{chunk-OQHLUA2Y.js → chunk-DBF3HTLT.js} +3 -3
- package/chunks/{chunk-SJBIFVD2.js → chunk-DMSNJDWG.js} +5 -1
- package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
- package/chunks/chunk-DXXNMPJH.js +5468 -0
- package/chunks/{chunk-CBJE2PLG.js → chunk-FDY3XOTM.js} +2 -2
- package/chunks/{chunk-NDY7OENU.js → chunk-FPHA7WIZ.js} +2 -2
- package/chunks/{chunk-MNOXKSM2.js → chunk-FZ5NVRVK.js} +1 -1
- package/chunks/{chunk-UJT42DB6.js → chunk-GQBRGBLS.js} +5 -5
- package/chunks/{chunk-Y4UQT3PM.js → chunk-HCFSKO6K.js} +1 -1
- package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
- package/chunks/{chunk-WALEWZ44.js → chunk-IUSKVKH5.js} +1 -1
- package/chunks/{chunk-XKSCTXPK.js → chunk-J6ABRKAB.js} +2 -1
- package/chunks/{chunk-DX3TKXNT.js → chunk-JA5KWZTJ.js} +1 -1
- package/chunks/{chunk-CHY5C5T4.js → chunk-JN2VJ33O.js} +171 -79
- package/chunks/{chunk-YTFBURQD.js → chunk-KYTQOCDE.js} +1 -1
- package/chunks/{chunk-BPFJQGY7.js → chunk-LM3YCCZJ.js} +164 -5
- package/chunks/{chunk-ZISMVA6U.js → chunk-LXFCHX4X.js} +1371 -24
- package/chunks/{chunk-6KPZJJ6U.js → chunk-MBWLP5OT.js} +9 -9
- package/chunks/{chunk-IMAMNLY6.js → chunk-MHQKYQDS.js} +3 -3
- package/chunks/{chunk-M5ITDKSM.js → chunk-MJKEQSZI.js} +1 -1
- package/chunks/{chunk-MTNTVOJR.js → chunk-MJKMIQMK.js} +5 -2
- package/chunks/{chunk-CSPSJU5R.js → chunk-MX7CTJHR.js} +16 -16
- package/chunks/{chunk-HISPEX42.js → chunk-N2IJLN2L.js} +7 -7
- package/chunks/{chunk-YCU7QV7Q.js → chunk-N4YJQTRL.js} +4 -0
- package/chunks/{chunk-R3UWLLRQ.js → chunk-NUK2PFSU.js} +1 -1
- package/chunks/{chunk-YXK4GPYO.js → chunk-NVFJSIAX.js} +29 -0
- package/chunks/{chunk-4MCC4XHH.js → chunk-O2RJARYU.js} +38 -37
- package/chunks/{chunk-JKGCBO3O.js → chunk-OAYOHSGP.js} +3 -3
- package/chunks/{chunk-G4M7FPNY.js → chunk-OBVBTAX5.js} +1 -1
- package/chunks/{chunk-JJ6B3ZD3.js → chunk-OIFSBXSP.js} +2 -2
- package/chunks/{chunk-NNEJEBCF.js → chunk-QOKV6AO4.js} +30 -21
- package/chunks/{chunk-DG573EOO.js → chunk-RZORUN6X.js} +1 -1
- package/chunks/{chunk-RSBQS6M4.js → chunk-SL2P3JUA.js} +1 -1
- package/chunks/{chunk-K4I4STSL.js → chunk-SOT7OMGL.js} +2 -2
- package/chunks/{chunk-MDBNFHIO.js → chunk-SRNPMG7J.js} +3 -3
- package/chunks/{chunk-SJVPSHXU.js → chunk-UNXGEDX2.js} +4 -4
- package/chunks/{chunk-WZ724G6K.js → chunk-UTL7KABL.js} +5 -5
- package/chunks/{chunk-UY2TCIZS.js → chunk-V5VTULL5.js} +2 -2
- package/chunks/{chunk-Z7XNVNPM.js → chunk-V6NH3CUC.js} +1 -1
- package/chunks/{chunk-J3ERRYYI.js → chunk-WXUDZHOJ.js} +2 -2
- package/chunks/{chunk-2CAII5HD.js → chunk-XH7H6YG4.js} +1 -1
- package/chunks/{chunk-XKZXGIRM.js → chunk-YSU33ACT.js} +2 -2
- package/chunks/{chunk-6QVQZAW6.js → chunk-YTWX5TT2.js} +1 -1
- package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
- package/chunks/{chunk-2YH27UNF.js → chunk-ZO5EA3XJ.js} +1 -1
- package/chunks/{computer-use-ON3JQUHW.js → computer-use-5S3NVXRA.js} +11 -11
- package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-DPBALZFK.js} +13 -13
- package/chunks/{cron-create-6YTCOX6P.js → cron-create-7JYUDTUY.js} +20 -5
- package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-YPULQQAK.js} +2 -2
- package/chunks/{cron-list-Q64MNQNE.js → cron-list-HJIW5MHP.js} +2 -2
- package/chunks/{daemon-EEB2RYOL.js → daemon-7XYW4BC3.js} +102 -0
- package/chunks/{daemon-status-provider-P72STMLB.js → daemon-status-provider-2EWTHT7Y.js} +20 -19
- package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
- package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
- package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
- package/chunks/{dist-Z57Q4YF5.js → dist-BV56HW3W.js} +276 -95
- package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
- package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-GGPV4IFT.js} +11 -11
- package/chunks/{edit-3QFNCSZH.js → edit-HJ7ISN4C.js} +12 -12
- package/chunks/{en-M4EBUBNU.js → en-XR3S5VWY.js} +1 -0
- package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-2BQT675D.js} +11 -11
- package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-SJXHJ3WD.js} +11 -11
- package/chunks/{errors-PW75PZXE.js → errors-EVGER4AZ.js} +13 -13
- package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-RPDDOSPM.js} +11 -11
- package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-BQEROAJ7.js} +11 -11
- package/chunks/{fast-path-TFRJRTTR.js → fast-path-FX2ICJ2O.js} +3 -3
- package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
- package/chunks/{gemini-XW7ZDUVR.js → gemini-EHUXCOUI.js} +69 -64
- package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-YDUUKAM2.js} +1 -1
- package/chunks/{glob-WAY2PUWA.js → glob-3VIGV2DL.js} +11 -11
- package/chunks/{grep-W6CBKSYC.js → grep-4D3S4NUC.js} +11 -11
- package/chunks/{initializer-HK2XE6P2.js → initializer-QZTZSSLW.js} +16 -16
- package/chunks/{list-RVLIIKKL.js → list-WQ24EAMK.js} +18 -18
- package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-XV74KOSR.js} +16 -16
- package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-34YK7T7O.js} +3 -3
- package/chunks/{ls-IDHUVSAG.js → ls-MPD5OJUX.js} +1 -1
- package/chunks/{lsp-FSRYXGFT.js → lsp-72PWTDW7.js} +1 -1
- package/chunks/{workspace-skills-status-ONEPXJV6.js → mcp-CO3MKM7N.js} +20 -16
- package/chunks/{monitor-FOG36ABM.js → monitor-GB56T65A.js} +11 -11
- package/chunks/{nonInteractiveCli-6BYQSJTB.js → nonInteractiveCli-HNZRIM5I.js} +46 -44
- package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-VMXAAE3R.js} +12 -12
- package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-GM77FLII.js} +6 -6
- package/chunks/{pidfile-FNZM2DDH.js → pidfile-HFXSHR64.js} +11 -11
- package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-QSCXQIKJ.js} +13 -13
- package/chunks/{read-file-6JL4ULMY.js → read-file-SVH6CGQY.js} +3 -3
- package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-OWOBJY72.js} +1 -1
- package/chunks/record-artifact-URK3YUDJ.js +343 -0
- package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-JD5O2FLX.js} +11 -11
- package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-FADLRJUN.js} +67 -28
- package/chunks/{scheduler-L7F6GDDT.js → scheduler-Q65SB7DJ.js} +11 -11
- package/chunks/{send-message-33PYFMCT.js → send-message-L7OLQEKH.js} +2 -2
- package/chunks/{serve-SRCBOJGP.js → serve-6ZXAMQ4M.js} +18 -18
- package/chunks/{server-QSQ45QFR.js → server-WKDQA6XR.js} +1184 -490
- package/chunks/{session-5DG6NXHZ.js → session-STWOX7RA.js} +48 -46
- package/chunks/{settings-3EEQI4MN.js → settings-LC4CCWQQ.js} +15 -15
- package/chunks/{shell-B7FNYF5S.js → shell-FEG3RLPW.js} +11 -11
- package/chunks/{skill-AAOGHD5O.js → skill-XTXAMDAP.js} +4 -4
- package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-B6JJPBPV.js} +15 -15
- package/chunks/{src-T5A7P7FS.js → src-HITDGVRM.js} +47 -21
- package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-IT423PW4.js} +354 -152
- package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-J3MLCQAR.js} +2 -2
- package/chunks/{task-create-NHS2NGB3.js → task-create-ELEBZ7H2.js} +3 -3
- package/chunks/{task-list-5UIB564R.js → task-list-IEUZLF3Y.js} +1 -1
- package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-QEZW3UDY.js} +1 -1
- package/chunks/{task-update-IYYWUILG.js → task-update-DW36J5P5.js} +3 -3
- package/chunks/{team-create-KDF6W6PV.js → team-create-DAG6SNHZ.js} +11 -11
- package/chunks/{team-delete-FEKJCU4P.js → team-delete-SVITIMBO.js} +1 -1
- package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-DRDY5OPC.js} +11 -11
- package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-N67EZC6B.js} +11 -11
- package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-SFFQHZYY.js} +2 -2
- package/chunks/{tool-search-LFRILZXC.js → tool-search-CMDJ5HGM.js} +4 -4
- package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-JD4QX6UJ.js} +12 -12
- package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-ADDCGZ6A.js} +43 -41
- package/chunks/version-VAONYVE5.js +10 -0
- package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-SXAXJHIO.js} +2 -2
- package/chunks/{workflow-KUTESS6L.js → workflow-DG2BR42M.js} +20 -13
- package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-XGW5OZTD.js} +18 -18
- package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-GX3GGZLU.js} +23 -23
- package/chunks/workspace-skills-status-LFK5WV2V.js +68 -0
- package/chunks/{write-file-FJYBZUHP.js → write-file-UR7FXWOU.js} +12 -12
- package/chunks/yargs-B64EYTCF.js +10 -0
- package/chunks/{zh-SLZNSSZB.js → zh-FSVJTXA4.js} +1 -0
- package/chunks/{zh-TW-P53C2SL5.js → zh-TW-66MG4LWL.js} +1 -0
- package/cli-entry.js +81 -8
- package/cli.js +348 -55
- package/locales/en.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -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-D_rAuMDd.js → arc-CUpe0ibu.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-JvyrY_mK.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-CK3Y_vom.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-DprSnyrf.js} +1 -1
- package/web-shell/assets/channel-BAxQ2-aZ.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-DJtRJPmu.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-ON6Q2-BG.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-c60ou5HZ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-BamtPKxx.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-CsVgpu-T.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-vZrpjAx4.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-qxyNOd5t.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-BvTJSM_S.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-1tXB4pju.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-DglBzme8.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-DEJpqsWz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-CsQ1NrMG.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-Z-3codAi.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-mBuPTA2i.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-tcA3K3s9.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-D9bXFRyZ.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-Ck0Py04s.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-rOevCekE.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-CoPQaLj0.js} +1 -1
- package/web-shell/assets/index-Cr7MYW6T.css +5 -0
- package/web-shell/assets/index-DCHPAUp3.js +730 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-a77CUKoI.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-DlLgUAO-.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-BXR5kVAZ.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-h5CoHZg7.js} +1 -1
- package/web-shell/assets/{linear-BjoycSSY.js → linear-BkaREbyD.js} +1 -1
- package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-Bkagz0ng.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-D7EMKR_5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DAmPOjsL.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-e4WFQkQu.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-v1zo7OiV.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Bstm4aW_.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-DzcZy6xN.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-BEJH6YbH.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-TI1wH-Pm.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-YaH8VDMS.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-B80co7OP.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-4fHNDEMl.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DT3q4Z3J.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/loop/SKILL.test.ts +0 -119
- package/bundled/loop/autonomous-loop.test.ts +0 -59
- package/bundled/loop/loop-task-file.test.ts +0 -1064
- package/bundled/loop/loop-tick-resolver.test.ts +0 -906
- package/chunks/chunk-EJ7BN3EN.js +0 -11396
- package/web-shell/assets/channel-B5ynH0q8.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
- package/web-shell/assets/index-9qfvU0_r.css +0 -5
- package/web-shell/assets/index-CWzDaQT5.js +0 -717
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
- package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
OpenAIContentConverter,
|
|
5
5
|
TaggedThinkingParser,
|
|
6
6
|
openaiRequestCaptureContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JN2VJ33O.js";
|
|
8
8
|
import {
|
|
9
9
|
RequestTokenizer
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JA5KWZTJ.js";
|
|
11
11
|
import {
|
|
12
12
|
DASHSCOPE_PROXY_BASE_URL,
|
|
13
13
|
DEFAULT_DASHSCOPE_BASE_URL,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
hasExplicitOutputLimit,
|
|
20
20
|
parsePositiveIntegerEnvValue,
|
|
21
21
|
tokenLimit
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-KYTQOCDE.js";
|
|
23
23
|
import {
|
|
24
24
|
runtimeDiagnostics,
|
|
25
25
|
safeJsonParse
|
|
@@ -7263,12 +7263,6 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
|
|
|
7263
7263
|
getDefaultGenerationConfig() {
|
|
7264
7264
|
return {};
|
|
7265
7265
|
}
|
|
7266
|
-
getResponseParsingOptions(model) {
|
|
7267
|
-
if (this.isGlmModel(model ?? this.contentGeneratorConfig.model)) {
|
|
7268
|
-
return { taggedThinkingTags: true };
|
|
7269
|
-
}
|
|
7270
|
-
return {};
|
|
7271
|
-
}
|
|
7272
7266
|
/**
|
|
7273
7267
|
* Add cache control flag to specified message(s) for DashScope providers
|
|
7274
7268
|
*/
|
|
@@ -8118,7 +8112,7 @@ var StreamContentError = class extends Error {
|
|
|
8118
8112
|
var StreamInactivityTimeoutError = class extends Error {
|
|
8119
8113
|
constructor(idleMs, chunksReceived, streamLifetimeMs) {
|
|
8120
8114
|
super(
|
|
8121
|
-
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms)
|
|
8115
|
+
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} to increase this window (or 0 to disable it).`
|
|
8122
8116
|
);
|
|
8123
8117
|
this.idleMs = idleMs;
|
|
8124
8118
|
this.chunksReceived = chunksReceived;
|
|
@@ -8539,7 +8533,7 @@ var ContentGenerationPipeline = class {
|
|
|
8539
8533
|
const effectiveModel = request.model || this.contentGeneratorConfig.model;
|
|
8540
8534
|
const providerOverrides = this.config.provider.getRequestContextOverrides?.() ?? {};
|
|
8541
8535
|
const toolCallParser = isStreaming ? new StreamingToolCallParser() : void 0;
|
|
8542
|
-
const responseParsingOptions = this.config.provider.getResponseParsingOptions?.(
|
|
8536
|
+
const responseParsingOptions = this.config.provider.getResponseParsingOptions?.();
|
|
8543
8537
|
const taggedThinkingParser = isStreaming && responseParsingOptions?.taggedThinkingTags ? new TaggedThinkingParser() : void 0;
|
|
8544
8538
|
return {
|
|
8545
8539
|
model: effectiveModel,
|
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
mapSkillConfigToStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6IAWPIQ6.js";
|
|
6
|
+
import {
|
|
7
|
+
loadSettings
|
|
8
|
+
} from "./chunk-CEYA7K7C.js";
|
|
6
9
|
import {
|
|
7
10
|
STATUS_SCHEMA_VERSION
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7Z6UEJA4.js";
|
|
9
12
|
import {
|
|
10
13
|
writeStderrLine
|
|
11
14
|
} from "./chunk-Y6Z2O3WR.js";
|
|
12
15
|
import {
|
|
13
16
|
SkillManager,
|
|
14
17
|
isSafeModeEnv
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AGZF43UV.js";
|
|
16
19
|
import {
|
|
17
20
|
init_esbuild_shims
|
|
18
21
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -47,12 +50,13 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
|
|
|
47
50
|
skillManager = new SkillManager(shim);
|
|
48
51
|
managers.set(workspaceCwd, skillManager);
|
|
49
52
|
}
|
|
53
|
+
const disabled = readDisabledSkillNames(workspaceCwd);
|
|
50
54
|
const skills = await skillManager.listSkills();
|
|
51
55
|
return {
|
|
52
56
|
v: STATUS_SCHEMA_VERSION,
|
|
53
57
|
workspaceCwd,
|
|
54
58
|
initialized: true,
|
|
55
|
-
skills: skills.map(mapSkillConfigToStatus)
|
|
59
|
+
skills: skills.map((skill) => mapSkillConfigToStatus(skill, disabled))
|
|
56
60
|
};
|
|
57
61
|
} catch (error) {
|
|
58
62
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -75,6 +79,14 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers) {
|
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
81
|
__name(buildWorkspaceSkillsStatus, "buildWorkspaceSkillsStatus");
|
|
82
|
+
function readDisabledSkillNames(workspaceCwd) {
|
|
83
|
+
const raw = loadSettings(workspaceCwd, false).merged.skills?.disabled;
|
|
84
|
+
if (!Array.isArray(raw)) return /* @__PURE__ */ new Set();
|
|
85
|
+
return new Set(
|
|
86
|
+
raw.filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
__name(readDisabledSkillNames, "readDisabledSkillNames");
|
|
78
90
|
|
|
79
91
|
export {
|
|
80
92
|
createWorkspaceSkillsStatusProvider
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getLanguageNameFromLocale,
|
|
7
7
|
getLanguageSettingsOptions,
|
|
8
8
|
t
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6QVRLKTZ.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_DARK_THEME_NAME,
|
|
12
12
|
DEFAULT_LIGHT_THEME_NAME
|
|
@@ -25,22 +25,23 @@ import {
|
|
|
25
25
|
getSystemDefaultsPath,
|
|
26
26
|
getSystemSettingsPath,
|
|
27
27
|
resolveEnvVarsInObject
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-4RQIB5UZ.js";
|
|
29
29
|
import {
|
|
30
30
|
isWorkspaceTrusted,
|
|
31
31
|
updateSettingsFilePreservingFormat
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-V6NH3CUC.js";
|
|
33
33
|
import {
|
|
34
34
|
require_strip_json_comments
|
|
35
35
|
} from "./chunk-QYUE6W3T.js";
|
|
36
36
|
import {
|
|
37
|
+
DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
37
38
|
DEFAULT_STOP_HOOK_BLOCK_CAP,
|
|
38
39
|
DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
|
|
39
40
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
40
41
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
41
42
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
|
|
42
43
|
stripRuntimeSnapshotPrefix
|
|
43
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-AGZF43UV.js";
|
|
44
45
|
import {
|
|
45
46
|
require_main
|
|
46
47
|
} from "./chunk-SKAZWEV5.js";
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
import {
|
|
51
52
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
52
53
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-JN2VJ33O.js";
|
|
54
55
|
import {
|
|
55
56
|
FatalConfigError,
|
|
56
57
|
QWEN_DIR,
|
|
@@ -1170,6 +1171,15 @@ var SETTINGS_SCHEMA = {
|
|
|
1170
1171
|
description: 'Cumulative tool-call budget for a run (counts every executed tool, success or failure; structured_output under --json-schema is exempt). -1 means unlimited; 0 means "no tool calls allowed" (first call aborts). Capped at 1,000,000 to catch typos. Overridable via --max-tool-calls.',
|
|
1171
1172
|
showInDialog: false
|
|
1172
1173
|
},
|
|
1174
|
+
maxSubagentDepth: {
|
|
1175
|
+
type: "number",
|
|
1176
|
+
label: "Max Sub-agent Nesting Depth",
|
|
1177
|
+
category: "Model",
|
|
1178
|
+
requiresRestart: false,
|
|
1179
|
+
default: DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
1180
|
+
description: "Maximum sub-agent nesting depth (1-based levels: a top-level sub-agent is level 1). 1 keeps sub-agents available but disables nesting; the default 5 allows nesting up to five levels deep. Values clamp to the range 1-100; non-finite values fall back to the default. Teammates, forks, and workflow-spawned agents never nest regardless of this setting. Overridable via --max-subagent-depth.",
|
|
1181
|
+
showInDialog: false
|
|
1182
|
+
},
|
|
1173
1183
|
chatCompression: {
|
|
1174
1184
|
type: "object",
|
|
1175
1185
|
label: "Chat Compression",
|
|
@@ -2623,6 +2633,22 @@ var SETTINGS_SCHEMA = {
|
|
|
2623
2633
|
description: "Enable in-session cron/loop tools. When enabled, the model can create recurring prompts using cron_create, cron_list, and cron_delete tools. Can be disabled via QWEN_CODE_DISABLE_CRON=1 environment variable.",
|
|
2624
2634
|
showInDialog: true
|
|
2625
2635
|
},
|
|
2636
|
+
cronRecurringMaxAgeDays: {
|
|
2637
|
+
type: "number",
|
|
2638
|
+
label: "Recurring Cron Max Age (Days)",
|
|
2639
|
+
category: "Experimental",
|
|
2640
|
+
requiresRestart: true,
|
|
2641
|
+
default: 7,
|
|
2642
|
+
description: "Days a recurring cron/loop job lives before auto-expiring (it fires one final time, then is deleted). Set to 0 to disable expiry so jobs run until deleted \u2014 useful for long-running daemon deployments. Can be overridden via the QWEN_CODE_CRON_MAX_AGE_DAYS environment variable.",
|
|
2643
|
+
// A deployment-time knob (cloud daemons, containers), not a common
|
|
2644
|
+
// interactive preference.
|
|
2645
|
+
showInDialog: false,
|
|
2646
|
+
jsonSchemaOverride: {
|
|
2647
|
+
type: "number",
|
|
2648
|
+
minimum: 0,
|
|
2649
|
+
default: 7
|
|
2650
|
+
}
|
|
2651
|
+
},
|
|
2626
2652
|
agentTeam: {
|
|
2627
2653
|
type: "boolean",
|
|
2628
2654
|
label: "Enable Agent Team",
|
|
@@ -2638,7 +2664,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2638
2664
|
category: "Experimental",
|
|
2639
2665
|
requiresRestart: true,
|
|
2640
2666
|
default: false,
|
|
2641
|
-
description: "Enable the Artifact tool (experimental). When enabled, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Interactive, non-SDK sessions only.
|
|
2667
|
+
description: "Enable the Artifact tool (experimental). When enabled, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Interactive, non-SDK sessions only. QWEN_CODE_ENABLE_ARTIFACT=1 enables the metadata-only record_artifact tool for non-SDK daemon sessions, and also enables the Artifact tool in interactive sessions. QWEN_CODE_DISABLE_ARTIFACT=1 hard-disables both.",
|
|
2642
2668
|
showInDialog: true
|
|
2643
2669
|
},
|
|
2644
2670
|
emitToolUseSummaries: {
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
readCronTasks,
|
|
16
16
|
removeCronTasks,
|
|
17
17
|
updateCronTasks
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DMSNJDWG.js";
|
|
19
19
|
import {
|
|
20
20
|
ToolNames
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MJKMIQMK.js";
|
|
22
22
|
import {
|
|
23
23
|
Storage,
|
|
24
24
|
createDebugLogger,
|
|
@@ -139,7 +139,13 @@ __name(releaseLock, "releaseLock");
|
|
|
139
139
|
// packages/core/src/services/cronScheduler.ts
|
|
140
140
|
var debugLogger = createDebugLogger("CRON_SCHEDULER");
|
|
141
141
|
var MAX_JOBS = 50;
|
|
142
|
-
var
|
|
142
|
+
var DEFAULT_RECURRING_MAX_AGE_DAYS = 7;
|
|
143
|
+
var DEFAULT_RECURRING_MAX_AGE_MS = DEFAULT_RECURRING_MAX_AGE_DAYS * 24 * 60 * 60 * 1e3;
|
|
144
|
+
function normalizeRecurringMaxAge(value, fallback) {
|
|
145
|
+
if (value === 0) return Infinity;
|
|
146
|
+
return value > 0 ? value : fallback;
|
|
147
|
+
}
|
|
148
|
+
__name(normalizeRecurringMaxAge, "normalizeRecurringMaxAge");
|
|
143
149
|
var MAX_RECURRING_JITTER_MS = 15 * 60 * 1e3;
|
|
144
150
|
var MAX_ONESHOT_JITTER_MS = 90 * 1e3;
|
|
145
151
|
var LOCK_PROBE_INTERVAL_MS = 5e3;
|
|
@@ -218,9 +224,18 @@ __name(truncatePrompt, "truncatePrompt");
|
|
|
218
224
|
var CronScheduler = class {
|
|
219
225
|
/** `projectRoot` anchors durable storage; without it only session-only
|
|
220
226
|
* jobs work. Production constructs via `Config.getCronScheduler()`,
|
|
221
|
-
* which always supplies it.
|
|
222
|
-
|
|
227
|
+
* which always supplies it (and the configured `recurringMaxAgeMs`).
|
|
228
|
+
* `normalizeRecurringMaxAge` owns the expiry contract for both this
|
|
229
|
+
* constructor and the config layer: `0` and `Infinity` both mean
|
|
230
|
+
* "never expire" — so a direct caller passing `0` gets disabled
|
|
231
|
+
* expiry, not the default — while negative or NaN input falls back to
|
|
232
|
+
* the 7-day default rather than expiring everything at birth. */
|
|
233
|
+
constructor(projectRoot = null, recurringMaxAgeMs = DEFAULT_RECURRING_MAX_AGE_MS) {
|
|
223
234
|
this.projectRoot = projectRoot;
|
|
235
|
+
this.recurringMaxAgeMs = normalizeRecurringMaxAge(
|
|
236
|
+
recurringMaxAgeMs,
|
|
237
|
+
DEFAULT_RECURRING_MAX_AGE_MS
|
|
238
|
+
);
|
|
224
239
|
}
|
|
225
240
|
static {
|
|
226
241
|
__name(this, "CronScheduler");
|
|
@@ -284,6 +299,9 @@ var CronScheduler = class {
|
|
|
284
299
|
// removals), chained so stop() can hold the lock until they land — a
|
|
285
300
|
// successor reading the file pre-write would re-run the same work.
|
|
286
301
|
pendingPersist = Promise.resolve();
|
|
302
|
+
/** Age after which recurring jobs expire, evaluated at fire time.
|
|
303
|
+
* Infinity = never expire. Guarded in the constructor. */
|
|
304
|
+
recurringMaxAgeMs;
|
|
287
305
|
/**
|
|
288
306
|
* Creates a new session-only cron job. Returns the created job.
|
|
289
307
|
* Throws if the max job limit is reached.
|
|
@@ -303,7 +321,7 @@ var CronScheduler = class {
|
|
|
303
321
|
prompt,
|
|
304
322
|
recurring,
|
|
305
323
|
createdAt: now,
|
|
306
|
-
expiresAt: recurring ? now +
|
|
324
|
+
expiresAt: recurring ? now + this.recurringMaxAgeMs : Infinity,
|
|
307
325
|
// Prevent the scheduler from firing during the creation minute
|
|
308
326
|
lastFiredAt: now - now % 6e4,
|
|
309
327
|
jitterMs
|
|
@@ -558,7 +576,12 @@ var CronScheduler = class {
|
|
|
558
576
|
if (nextFire === null || nextFire >= now) continue;
|
|
559
577
|
if (!t.recurring) {
|
|
560
578
|
missedOneShots.push(t);
|
|
561
|
-
} else if (now - t.createdAt >=
|
|
579
|
+
} else if (now - t.createdAt >= this.recurringMaxAgeMs) {
|
|
580
|
+
console.warn(
|
|
581
|
+
`Durable cron task ${t.id} (created ${new Date(
|
|
582
|
+
t.createdAt
|
|
583
|
+
).toISOString()}) is past the recurring max age at load; it will fire one final time and be deleted.`
|
|
584
|
+
);
|
|
562
585
|
finalTasks.push(t);
|
|
563
586
|
} else {
|
|
564
587
|
catchUpIds.push(t.id);
|
|
@@ -588,7 +611,7 @@ var CronScheduler = class {
|
|
|
588
611
|
);
|
|
589
612
|
continue;
|
|
590
613
|
}
|
|
591
|
-
const job = durableTaskToJob(task, existing);
|
|
614
|
+
const job = durableTaskToJob(task, this.recurringMaxAgeMs, existing);
|
|
592
615
|
if (existing?.lastFiredAt !== void 0) {
|
|
593
616
|
job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
|
|
594
617
|
}
|
|
@@ -610,7 +633,9 @@ var CronScheduler = class {
|
|
|
610
633
|
if (finalTasks.length > 0) {
|
|
611
634
|
this.fireOrBuffer({
|
|
612
635
|
kind: "final",
|
|
613
|
-
jobs: finalTasks.map(
|
|
636
|
+
jobs: finalTasks.map(
|
|
637
|
+
(t) => durableTaskToJob(t, this.recurringMaxAgeMs)
|
|
638
|
+
)
|
|
614
639
|
});
|
|
615
640
|
}
|
|
616
641
|
}
|
|
@@ -633,7 +658,7 @@ var CronScheduler = class {
|
|
|
633
658
|
case "missed": {
|
|
634
659
|
const skipped = [];
|
|
635
660
|
const runnable = pending.tasks.filter((t) => {
|
|
636
|
-
const job = durableTaskToJob(t);
|
|
661
|
+
const job = durableTaskToJob(t, this.recurringMaxAgeMs);
|
|
637
662
|
if (job.durable && this.skipDurableFire?.(job)) {
|
|
638
663
|
debugLogger.debug(
|
|
639
664
|
`Skipping durable job ${t.id} (missed): consumer cannot run it`
|
|
@@ -646,7 +671,7 @@ var CronScheduler = class {
|
|
|
646
671
|
for (const id of skipped) this.pendingRemoval.delete(id);
|
|
647
672
|
if (runnable.length > 0) {
|
|
648
673
|
onFire({
|
|
649
|
-
...durableTaskToJob(runnable[0]),
|
|
674
|
+
...durableTaskToJob(runnable[0], this.recurringMaxAgeMs),
|
|
650
675
|
prompt: buildMissedCronNotification(runnable),
|
|
651
676
|
missed: true
|
|
652
677
|
});
|
|
@@ -1034,7 +1059,7 @@ function hasParseableCron(task) {
|
|
|
1034
1059
|
}
|
|
1035
1060
|
}
|
|
1036
1061
|
__name(hasParseableCron, "hasParseableCron");
|
|
1037
|
-
function durableTaskToJob(task, existing) {
|
|
1062
|
+
function durableTaskToJob(task, recurringMaxAgeMs, existing) {
|
|
1038
1063
|
const jitterMs = existing && existing.cronExpr === task.cron && existing.recurring === task.recurring ? existing.jitterMs : computeJitter(task.id, task.cron, task.recurring);
|
|
1039
1064
|
return {
|
|
1040
1065
|
id: task.id,
|
|
@@ -1042,7 +1067,7 @@ function durableTaskToJob(task, existing) {
|
|
|
1042
1067
|
prompt: task.prompt,
|
|
1043
1068
|
recurring: task.recurring,
|
|
1044
1069
|
createdAt: task.createdAt,
|
|
1045
|
-
expiresAt: task.recurring ? task.createdAt +
|
|
1070
|
+
expiresAt: task.recurring ? task.createdAt + recurringMaxAgeMs : Infinity,
|
|
1046
1071
|
lastFiredAt: task.lastFiredAt ?? void 0,
|
|
1047
1072
|
jitterMs,
|
|
1048
1073
|
durable: true
|
|
@@ -1072,6 +1097,8 @@ function computeNextFireMs(cronExpr, afterMs, jitterMs) {
|
|
|
1072
1097
|
__name(computeNextFireMs, "computeNextFireMs");
|
|
1073
1098
|
|
|
1074
1099
|
export {
|
|
1100
|
+
DEFAULT_RECURRING_MAX_AGE_DAYS,
|
|
1101
|
+
normalizeRecurringMaxAge,
|
|
1075
1102
|
WAKEUP_MIN_SECONDS,
|
|
1076
1103
|
WAKEUP_MAX_SECONDS,
|
|
1077
1104
|
clampWakeupSeconds,
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
import {
|
|
4
4
|
getGitVersion,
|
|
5
5
|
getNpmVersion
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OAYOHSGP.js";
|
|
7
7
|
import {
|
|
8
8
|
STATUS_SCHEMA_VERSION,
|
|
9
9
|
mapDomainErrorToErrorKind
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7Z6UEJA4.js";
|
|
11
11
|
import {
|
|
12
12
|
canUseRipgrep
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-AGZF43UV.js";
|
|
14
14
|
import {
|
|
15
15
|
detectRuntime,
|
|
16
16
|
redactProxyCredentials
|
|
@@ -160,10 +160,14 @@ async function removeCronTasks(projectRoot, ids) {
|
|
|
160
160
|
return removed;
|
|
161
161
|
}
|
|
162
162
|
__name(removeCronTasks, "removeCronTasks");
|
|
163
|
+
function isFiniteTimestamp(value) {
|
|
164
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
165
|
+
}
|
|
166
|
+
__name(isFiniteTimestamp, "isFiniteTimestamp");
|
|
163
167
|
function isValidTask(value) {
|
|
164
168
|
if (typeof value !== "object" || value === null) return false;
|
|
165
169
|
const obj = value;
|
|
166
|
-
return typeof obj["id"] === "string" && typeof obj["cron"] === "string" && typeof obj["prompt"] === "string" && typeof obj["recurring"] === "boolean" &&
|
|
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"]));
|
|
167
171
|
}
|
|
168
172
|
__name(isValidTask, "isValidTask");
|
|
169
173
|
|