@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
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
BaseDeclarativeTool,
|
|
5
|
+
BaseToolInvocation,
|
|
6
|
+
ToolDisplayNames,
|
|
7
|
+
ToolNames
|
|
8
|
+
} from "./chunk-MJKMIQMK.js";
|
|
9
|
+
import "./chunk-AVQDCKNF.js";
|
|
10
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
11
|
+
import {
|
|
12
|
+
init_esbuild_shims
|
|
13
|
+
} from "./chunk-A4BMJM77.js";
|
|
14
|
+
import {
|
|
15
|
+
__name
|
|
16
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
17
|
+
|
|
18
|
+
// packages/core/src/tools/record-artifact.ts
|
|
19
|
+
init_esbuild_shims();
|
|
20
|
+
import path from "node:path";
|
|
21
|
+
var DESCRIPTION = `Registers a session artifact so clients can show it in an artifacts panel. Use it after creating a useful file, URL, image, report, notebook, or other intermediate result that the user may want to open later.
|
|
22
|
+
|
|
23
|
+
This tool only records metadata. It does not publish, upload, read, write, or verify the referenced resource. Provide exactly one locator: workspacePath, managedId, or url. Use the Artifact tool, not record_artifact, for published interactive HTML artifacts.`;
|
|
24
|
+
var RecordArtifactInvocation = class extends BaseToolInvocation {
|
|
25
|
+
static {
|
|
26
|
+
__name(this, "RecordArtifactInvocation");
|
|
27
|
+
}
|
|
28
|
+
getDescription() {
|
|
29
|
+
return `Recording artifact ${this.params.title}`;
|
|
30
|
+
}
|
|
31
|
+
execute(_signal) {
|
|
32
|
+
const artifact = {
|
|
33
|
+
title: this.params.title.trim(),
|
|
34
|
+
kind: this.params.kind,
|
|
35
|
+
storage: this.params.storage ?? inferStorage(this.params),
|
|
36
|
+
description: trimOptional(this.params.description),
|
|
37
|
+
workspacePath: trimOptional(this.params.workspacePath),
|
|
38
|
+
managedId: trimOptional(this.params.managedId),
|
|
39
|
+
url: trimOptional(this.params.url),
|
|
40
|
+
mimeType: trimOptional(this.params.mimeType),
|
|
41
|
+
sizeBytes: this.params.sizeBytes,
|
|
42
|
+
metadata: this.params.metadata
|
|
43
|
+
};
|
|
44
|
+
return Promise.resolve({
|
|
45
|
+
llmContent: `Recorded artifact "${artifact.title}".`,
|
|
46
|
+
returnDisplay: `Recorded artifact **${artifact.title}**.`,
|
|
47
|
+
artifacts: [artifact]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var RecordArtifactTool = class _RecordArtifactTool extends BaseDeclarativeTool {
|
|
52
|
+
static {
|
|
53
|
+
__name(this, "RecordArtifactTool");
|
|
54
|
+
}
|
|
55
|
+
static Name = ToolNames.RECORD_ARTIFACT;
|
|
56
|
+
constructor() {
|
|
57
|
+
super(
|
|
58
|
+
_RecordArtifactTool.Name,
|
|
59
|
+
ToolDisplayNames.RECORD_ARTIFACT,
|
|
60
|
+
DESCRIPTION,
|
|
61
|
+
"other" /* Other */,
|
|
62
|
+
{
|
|
63
|
+
type: "object",
|
|
64
|
+
properties: {
|
|
65
|
+
title: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "Concise title shown in the client artifact list."
|
|
68
|
+
},
|
|
69
|
+
kind: {
|
|
70
|
+
type: "string",
|
|
71
|
+
enum: [
|
|
72
|
+
"file",
|
|
73
|
+
"link",
|
|
74
|
+
"html",
|
|
75
|
+
"image",
|
|
76
|
+
"video",
|
|
77
|
+
"audio",
|
|
78
|
+
"pdf",
|
|
79
|
+
"notebook",
|
|
80
|
+
"other"
|
|
81
|
+
],
|
|
82
|
+
description: "Best-effort artifact type for client rendering."
|
|
83
|
+
},
|
|
84
|
+
storage: {
|
|
85
|
+
type: "string",
|
|
86
|
+
enum: ["workspace", "external_url", "managed"],
|
|
87
|
+
description: "Storage class. Omit it to infer from the provided locator."
|
|
88
|
+
},
|
|
89
|
+
description: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "Optional short description for the user."
|
|
92
|
+
},
|
|
93
|
+
workspacePath: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "Workspace-relative path for a file produced in the current workspace."
|
|
96
|
+
},
|
|
97
|
+
managedId: {
|
|
98
|
+
type: "string",
|
|
99
|
+
description: "Opaque identifier for a resource managed by an extension or tool."
|
|
100
|
+
},
|
|
101
|
+
url: {
|
|
102
|
+
type: "string",
|
|
103
|
+
description: "HTTP or HTTPS URL that the user can open for details."
|
|
104
|
+
},
|
|
105
|
+
mimeType: {
|
|
106
|
+
type: "string",
|
|
107
|
+
description: "Optional MIME type."
|
|
108
|
+
},
|
|
109
|
+
sizeBytes: {
|
|
110
|
+
type: "integer",
|
|
111
|
+
minimum: 0,
|
|
112
|
+
description: "Optional size in bytes."
|
|
113
|
+
},
|
|
114
|
+
metadata: {
|
|
115
|
+
type: "object",
|
|
116
|
+
additionalProperties: {
|
|
117
|
+
anyOf: [
|
|
118
|
+
{ type: "string" },
|
|
119
|
+
{ type: "number" },
|
|
120
|
+
{ type: "boolean" },
|
|
121
|
+
{ type: "null" }
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
description: "Small primitive metadata bag for client-specific display hints."
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
required: ["title"]
|
|
128
|
+
},
|
|
129
|
+
true,
|
|
130
|
+
false,
|
|
131
|
+
true,
|
|
132
|
+
false,
|
|
133
|
+
"artifact url link file image report notebook dashboard"
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
validateToolParamValues(params) {
|
|
137
|
+
params.title = (params.title ?? "").trim();
|
|
138
|
+
const titleError = validateString(params.title, "title", 200, true);
|
|
139
|
+
if (titleError) {
|
|
140
|
+
return titleError;
|
|
141
|
+
}
|
|
142
|
+
const descriptionError = validateString(
|
|
143
|
+
params.description,
|
|
144
|
+
"description",
|
|
145
|
+
1e3,
|
|
146
|
+
false
|
|
147
|
+
);
|
|
148
|
+
if (descriptionError) {
|
|
149
|
+
return descriptionError;
|
|
150
|
+
}
|
|
151
|
+
const mimeTypeError = validateString(
|
|
152
|
+
params.mimeType,
|
|
153
|
+
"mimeType",
|
|
154
|
+
120,
|
|
155
|
+
false
|
|
156
|
+
);
|
|
157
|
+
if (mimeTypeError) {
|
|
158
|
+
return mimeTypeError;
|
|
159
|
+
}
|
|
160
|
+
if (params.kind && !isArtifactKind(params.kind)) {
|
|
161
|
+
return '"kind" must be a supported artifact kind';
|
|
162
|
+
}
|
|
163
|
+
if (params.storage && params.storage !== "workspace" && params.storage !== "external_url" && params.storage !== "managed") {
|
|
164
|
+
return '"storage" must be workspace, external_url, or managed';
|
|
165
|
+
}
|
|
166
|
+
const locators = [
|
|
167
|
+
trimOptional(params.workspacePath),
|
|
168
|
+
trimOptional(params.managedId),
|
|
169
|
+
trimOptional(params.url)
|
|
170
|
+
].filter(Boolean);
|
|
171
|
+
if (locators.length !== 1) {
|
|
172
|
+
return 'Provide exactly one of "workspacePath", "managedId", or "url"';
|
|
173
|
+
}
|
|
174
|
+
const inferredStorage = inferStorage(params);
|
|
175
|
+
if (params.storage && params.storage !== inferredStorage) {
|
|
176
|
+
return `"storage" must be "${inferredStorage}" for the provided locator`;
|
|
177
|
+
}
|
|
178
|
+
if (params.workspacePath) {
|
|
179
|
+
const workspacePathError = validateWorkspacePath(params.workspacePath);
|
|
180
|
+
if (workspacePathError) {
|
|
181
|
+
return workspacePathError;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (params.managedId) {
|
|
185
|
+
const managedIdError = validateManagedId(params.managedId);
|
|
186
|
+
if (managedIdError) {
|
|
187
|
+
return managedIdError;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (params.url) {
|
|
191
|
+
try {
|
|
192
|
+
const parsed = new URL(params.url);
|
|
193
|
+
if (parsed.username || parsed.password) {
|
|
194
|
+
return '"url" must not include credentials';
|
|
195
|
+
}
|
|
196
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
197
|
+
return '"url" must use http or https';
|
|
198
|
+
}
|
|
199
|
+
} catch {
|
|
200
|
+
return '"url" must be a valid URL';
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (params.sizeBytes !== void 0 && (!Number.isSafeInteger(params.sizeBytes) || params.sizeBytes < 0)) {
|
|
204
|
+
return '"sizeBytes" must be a non-negative safe integer';
|
|
205
|
+
}
|
|
206
|
+
const metadataError = validateMetadata(params.metadata);
|
|
207
|
+
if (metadataError) {
|
|
208
|
+
return metadataError;
|
|
209
|
+
}
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
createInvocation(params) {
|
|
213
|
+
return new RecordArtifactInvocation(params);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
function inferStorage(params) {
|
|
217
|
+
if (trimOptional(params.workspacePath)) {
|
|
218
|
+
return "workspace";
|
|
219
|
+
}
|
|
220
|
+
if (trimOptional(params.managedId)) {
|
|
221
|
+
return "managed";
|
|
222
|
+
}
|
|
223
|
+
return "external_url";
|
|
224
|
+
}
|
|
225
|
+
__name(inferStorage, "inferStorage");
|
|
226
|
+
function trimOptional(value) {
|
|
227
|
+
const trimmed = value?.trim();
|
|
228
|
+
return trimmed ? trimmed : void 0;
|
|
229
|
+
}
|
|
230
|
+
__name(trimOptional, "trimOptional");
|
|
231
|
+
function validateString(value, field, maxLength, required) {
|
|
232
|
+
const trimmed = value?.trim();
|
|
233
|
+
if (!trimmed) {
|
|
234
|
+
return required ? `Missing or empty "${field}"` : null;
|
|
235
|
+
}
|
|
236
|
+
if (trimmed.length > maxLength) {
|
|
237
|
+
return `"${field}" exceeds ${maxLength} characters`;
|
|
238
|
+
}
|
|
239
|
+
if (hasControlCharacter(trimmed, field === "description")) {
|
|
240
|
+
return `"${field}" contains control characters`;
|
|
241
|
+
}
|
|
242
|
+
if (isDisplayField(field) && hasUnsafeDisplayPayload(trimmed)) {
|
|
243
|
+
return `"${field}" contains unsafe markup`;
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
__name(validateString, "validateString");
|
|
248
|
+
function validateManagedId(value) {
|
|
249
|
+
const trimmed = value.trim();
|
|
250
|
+
const stringError = validateString(trimmed, "managedId", 200, true);
|
|
251
|
+
if (stringError) {
|
|
252
|
+
return stringError;
|
|
253
|
+
}
|
|
254
|
+
if (trimmed.includes("/") || trimmed.includes("\\") || trimmed.includes("..") || path.isAbsolute(trimmed) || path.win32.isAbsolute(trimmed)) {
|
|
255
|
+
return '"managedId" must be an opaque managed resource id';
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
__name(validateManagedId, "validateManagedId");
|
|
260
|
+
function isDisplayField(field) {
|
|
261
|
+
return field === "title" || field === "description" || field === "mimeType" || field === "workspacePath" || field === "managedId";
|
|
262
|
+
}
|
|
263
|
+
__name(isDisplayField, "isDisplayField");
|
|
264
|
+
function hasControlCharacter(value, allowLineWhitespace = false) {
|
|
265
|
+
for (let i = 0; i < value.length; i++) {
|
|
266
|
+
const code = value.charCodeAt(i);
|
|
267
|
+
if (allowLineWhitespace && (code === 9 || code === 10 || code === 13)) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
if (code <= 31 || code === 127 || code >= 8203 && code <= 8207 || code === 8232 || code === 8233 || code >= 8234 && code <= 8238 || code >= 8294 && code <= 8297 || code === 65279) {
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
__name(hasControlCharacter, "hasControlCharacter");
|
|
277
|
+
function hasUnsafeDisplayPayload(value) {
|
|
278
|
+
return /<\s*\/?[a-z!]|&(?:#[0-9]+|#x[0-9a-f]+|[a-z][a-z0-9]+);|javascript\s*:|data\s*:\s*(?:text\/(?:html|javascript)|application\/javascript|image\/svg\+xml)/i.test(
|
|
279
|
+
value
|
|
280
|
+
) || /(?:^|[\s"'`<])on[a-z][a-z0-9-]*\s*=/i.test(value);
|
|
281
|
+
}
|
|
282
|
+
__name(hasUnsafeDisplayPayload, "hasUnsafeDisplayPayload");
|
|
283
|
+
function validateWorkspacePath(value) {
|
|
284
|
+
const trimmed = value.trim();
|
|
285
|
+
const stringError = validateString(trimmed, "workspacePath", 500, true);
|
|
286
|
+
if (stringError) {
|
|
287
|
+
return stringError;
|
|
288
|
+
}
|
|
289
|
+
if (path.isAbsolute(trimmed)) {
|
|
290
|
+
return '"workspacePath" must be relative to the workspace';
|
|
291
|
+
}
|
|
292
|
+
const normalized = path.normalize(trimmed);
|
|
293
|
+
if (normalized === ".." || normalized.startsWith(`..${path.sep}`) || path.isAbsolute(normalized)) {
|
|
294
|
+
return '"workspacePath" must stay inside the workspace';
|
|
295
|
+
}
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
__name(validateWorkspacePath, "validateWorkspacePath");
|
|
299
|
+
function validateMetadata(metadata) {
|
|
300
|
+
if (metadata === void 0) {
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata)) {
|
|
304
|
+
return '"metadata" must be an object';
|
|
305
|
+
}
|
|
306
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
307
|
+
if (!key) {
|
|
308
|
+
return '"metadata" keys must not be empty';
|
|
309
|
+
}
|
|
310
|
+
if (key.length > 120) {
|
|
311
|
+
return '"metadata" keys must be 120 characters or fewer';
|
|
312
|
+
}
|
|
313
|
+
if (hasControlCharacter(key) || hasUnsafeDisplayPayload(key)) {
|
|
314
|
+
return '"metadata" keys contain unsafe content';
|
|
315
|
+
}
|
|
316
|
+
if (value !== null && typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") {
|
|
317
|
+
return '"metadata" values must be primitive';
|
|
318
|
+
}
|
|
319
|
+
if (typeof value === "number" && !Number.isFinite(value)) {
|
|
320
|
+
return '"metadata" numbers must be finite';
|
|
321
|
+
}
|
|
322
|
+
if (typeof value === "string" && (hasControlCharacter(value) || hasUnsafeDisplayPayload(value))) {
|
|
323
|
+
return '"metadata" string values contain unsafe content';
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (Buffer.byteLength(JSON.stringify(metadata), "utf8") > 4096) {
|
|
327
|
+
return '"metadata" must be 4096 bytes or fewer';
|
|
328
|
+
}
|
|
329
|
+
return null;
|
|
330
|
+
}
|
|
331
|
+
__name(validateMetadata, "validateMetadata");
|
|
332
|
+
function isArtifactKind(kind) {
|
|
333
|
+
return kind === "file" || kind === "link" || kind === "html" || kind === "image" || kind === "video" || kind === "audio" || kind === "pdf" || kind === "notebook" || kind === "other";
|
|
334
|
+
}
|
|
335
|
+
__name(isArtifactKind, "isArtifactKind");
|
|
336
|
+
export {
|
|
337
|
+
RecordArtifactTool
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* @license
|
|
341
|
+
* Copyright 2025 Google LLC
|
|
342
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
343
|
+
*/
|
|
@@ -3,42 +3,42 @@
|
|
|
3
3
|
import {
|
|
4
4
|
RipGrepTool,
|
|
5
5
|
_resetRipGrepCachesForTest
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AGZF43UV.js";
|
|
7
7
|
import "./chunk-5P5XGNYH.js";
|
|
8
|
-
import "./chunk-K5PGHDBN.js";
|
|
9
8
|
import "./chunk-SKAZWEV5.js";
|
|
9
|
+
import "./chunk-K5PGHDBN.js";
|
|
10
|
+
import "./chunk-CLQPBI4H.js";
|
|
10
11
|
import "./chunk-QOMAHFYI.js";
|
|
11
12
|
import "./chunk-G7OQ3RFJ.js";
|
|
12
13
|
import "./chunk-LKWAVAB5.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-R6RI2HIC.js";
|
|
14
|
+
import "./chunk-5ES5YPED.js";
|
|
15
15
|
import "./chunk-2MPVVENX.js";
|
|
16
16
|
import "./chunk-ZTQ26VBE.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-DMSNJDWG.js";
|
|
18
18
|
import "./chunk-MLZQVCF3.js";
|
|
19
19
|
import "./chunk-LQ7TMOCE.js";
|
|
20
20
|
import "./chunk-E5A7LHNN.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-LM3YCCZJ.js";
|
|
22
22
|
import "./chunk-GO6LNQXT.js";
|
|
23
23
|
import "./chunk-B236XPGF.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-NVFJSIAX.js";
|
|
25
25
|
import "./chunk-TOAUDIS7.js";
|
|
26
26
|
import "./chunk-NPQWQYU6.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-JN2VJ33O.js";
|
|
28
28
|
import "./chunk-E6US47KI.js";
|
|
29
29
|
import "./chunk-UWCTAVOD.js";
|
|
30
30
|
import "./chunk-OFEVLU4C.js";
|
|
31
31
|
import "./chunk-OMX7CUOE.js";
|
|
32
32
|
import "./chunk-MOUXUCXQ.js";
|
|
33
33
|
import "./chunk-BZHLWC6T.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-RZORUN6X.js";
|
|
35
|
+
import "./chunk-MJKMIQMK.js";
|
|
36
36
|
import "./chunk-TENOUWY2.js";
|
|
37
37
|
import "./chunk-GLPV75ES.js";
|
|
38
38
|
import "./chunk-22IFUCVR.js";
|
|
39
39
|
import "./chunk-T42ACHFI.js";
|
|
40
40
|
import "./chunk-SIUQ3YYX.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-KYTQOCDE.js";
|
|
42
42
|
import "./chunk-YPCPZSZB.js";
|
|
43
43
|
import "./chunk-IRJWHZWU.js";
|
|
44
44
|
import "./chunk-SYCJMSIJ.js";
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
import {
|
|
4
4
|
findCliEntryPath
|
|
5
5
|
} from "./chunk-AHNXYU4O.js";
|
|
6
|
+
import {
|
|
7
|
+
RUNTIME_STARTUP_CANCELLED_MESSAGE
|
|
8
|
+
} from "./chunk-GHOTR7HL.js";
|
|
6
9
|
import {
|
|
7
10
|
CAPABILITIES_SCHEMA_VERSION,
|
|
8
11
|
ClientMcpSenderRegistry,
|
|
@@ -23,36 +26,33 @@ import {
|
|
|
23
26
|
positiveFiniteOrNull,
|
|
24
27
|
require_express,
|
|
25
28
|
resolveWebShellDir
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-N4YJQTRL.js";
|
|
27
30
|
import {
|
|
28
31
|
isLoopbackBind
|
|
29
32
|
} from "./chunk-RNBYOUGV.js";
|
|
30
33
|
import "./chunk-3HX5LZ6R.js";
|
|
31
34
|
import "./chunk-7RYW5LQV.js";
|
|
32
35
|
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
getCliVersion
|
|
37
|
-
} from "./chunk-RSBQS6M4.js";
|
|
38
|
-
import "./chunk-EWALXUAD.js";
|
|
39
|
-
import {
|
|
40
|
-
canonicalizeWorkspace
|
|
41
|
-
} from "./chunk-SEZC2725.js";
|
|
36
|
+
loadServeFastPathSettings,
|
|
37
|
+
preResolveServeFastPathHomeEnvOverrides
|
|
38
|
+
} from "./chunk-DNV4FSN5.js";
|
|
42
39
|
import {
|
|
43
40
|
QWEN_SERVER_TOKEN_ENV
|
|
44
41
|
} from "./chunk-S6RLAIUR.js";
|
|
45
42
|
import {
|
|
46
43
|
channelSelectionNames
|
|
47
44
|
} from "./chunk-MX2YXRER.js";
|
|
48
|
-
import {
|
|
49
|
-
loadServeFastPathSettings,
|
|
50
|
-
preResolveServeFastPathHomeEnvOverrides
|
|
51
|
-
} from "./chunk-KKQWC6WS.js";
|
|
52
45
|
import {
|
|
53
46
|
getGlobalQwenDirLite,
|
|
54
47
|
resolveConfigPathLite
|
|
55
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-4RQIB5UZ.js";
|
|
49
|
+
import "./chunk-EWALXUAD.js";
|
|
50
|
+
import {
|
|
51
|
+
canonicalizeWorkspace
|
|
52
|
+
} from "./chunk-SEZC2725.js";
|
|
53
|
+
import {
|
|
54
|
+
getCliVersion
|
|
55
|
+
} from "./chunk-SL2P3JUA.js";
|
|
56
56
|
import {
|
|
57
57
|
writeStderrLine,
|
|
58
58
|
writeStdoutLine
|
|
@@ -531,8 +531,8 @@ __name(withSettingsLock, "withSettingsLock");
|
|
|
531
531
|
var channelWorkerRuntimePromise;
|
|
532
532
|
async function loadChannelWorkerRuntime() {
|
|
533
533
|
channelWorkerRuntimePromise ??= Promise.all([
|
|
534
|
-
import("./channel-worker-supervisor-
|
|
535
|
-
import("./pidfile-
|
|
534
|
+
import("./channel-worker-supervisor-JUYQ5Z4R.js"),
|
|
535
|
+
import("./pidfile-HFXSHR64.js")
|
|
536
536
|
]).then(([supervisor, pidfile]) => ({
|
|
537
537
|
createChannelWorkerSupervisor: supervisor.createChannelWorkerSupervisor,
|
|
538
538
|
channelServicePidfile: pidfile
|
|
@@ -603,7 +603,7 @@ function shouldPreheatBridge(deps) {
|
|
|
603
603
|
__name(shouldPreheatBridge, "shouldPreheatBridge");
|
|
604
604
|
var coreRuntimePromise;
|
|
605
605
|
function loadCoreRuntime() {
|
|
606
|
-
coreRuntimePromise ??= import("./src-
|
|
606
|
+
coreRuntimePromise ??= import("./src-HITDGVRM.js");
|
|
607
607
|
return coreRuntimePromise;
|
|
608
608
|
}
|
|
609
609
|
__name(loadCoreRuntime, "loadCoreRuntime");
|
|
@@ -633,9 +633,9 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
|
|
|
633
633
|
var settingsRuntimePromise;
|
|
634
634
|
function loadSettingsRuntimeModules() {
|
|
635
635
|
settingsRuntimePromise ??= Promise.all([
|
|
636
|
-
import("./settings-
|
|
637
|
-
import("./loadedSettingsAdapter-
|
|
638
|
-
import("./trustedFolders-
|
|
636
|
+
import("./settings-LC4CCWQQ.js"),
|
|
637
|
+
import("./loadedSettingsAdapter-XV74KOSR.js"),
|
|
638
|
+
import("./trustedFolders-JD4QX6UJ.js")
|
|
639
639
|
]).then(([settings, loadedSettingsAdapter, trustedFolders]) => ({
|
|
640
640
|
settings,
|
|
641
641
|
loadedSettingsAdapter,
|
|
@@ -655,14 +655,14 @@ async function loadServeRuntimeModules() {
|
|
|
655
655
|
workspaceProvidersStatusModule,
|
|
656
656
|
workspaceSkillsStatusModule
|
|
657
657
|
] = await Promise.all([
|
|
658
|
-
import("./server-
|
|
659
|
-
import("./bridge-
|
|
660
|
-
import("./spawnChannel-
|
|
661
|
-
import("./workspace-service-
|
|
658
|
+
import("./server-WKDQA6XR.js"),
|
|
659
|
+
import("./bridge-DF3IJQ5V.js"),
|
|
660
|
+
import("./spawnChannel-B6JJPBPV.js"),
|
|
661
|
+
import("./workspace-service-GX3GGZLU.js"),
|
|
662
662
|
import("./types-QX5C3CHJ.js"),
|
|
663
|
-
import("./daemon-status-provider-
|
|
664
|
-
import("./workspace-providers-status-
|
|
665
|
-
import("./workspace-skills-status-
|
|
663
|
+
import("./daemon-status-provider-2EWTHT7Y.js"),
|
|
664
|
+
import("./workspace-providers-status-XGW5OZTD.js"),
|
|
665
|
+
import("./workspace-skills-status-LFK5WV2V.js")
|
|
666
666
|
]);
|
|
667
667
|
return {
|
|
668
668
|
createServeApp: serverModule.createServeApp,
|
|
@@ -1445,6 +1445,7 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1445
1445
|
let runtimeApp;
|
|
1446
1446
|
let runtimeAppForCleanup;
|
|
1447
1447
|
let bridgeRef = deps.bridge;
|
|
1448
|
+
let daemonEventLoopMonitor;
|
|
1448
1449
|
let runtimeStartupError;
|
|
1449
1450
|
let runtimeStarting;
|
|
1450
1451
|
let markRuntimeReady;
|
|
@@ -1459,6 +1460,10 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1459
1460
|
});
|
|
1460
1461
|
void runtimeReady.catch(() => {
|
|
1461
1462
|
});
|
|
1463
|
+
const disposeDaemonEventLoopMonitor = /* @__PURE__ */ __name(() => {
|
|
1464
|
+
daemonEventLoopMonitor?.dispose();
|
|
1465
|
+
daemonEventLoopMonitor = void 0;
|
|
1466
|
+
}, "disposeDaemonEventLoopMonitor");
|
|
1462
1467
|
let channelWorker = createDisabledChannelWorkerSupervisor();
|
|
1463
1468
|
const getChannelWorkerSnapshot = /* @__PURE__ */ __name(() => channelWorker.snapshot(), "getChannelWorkerSnapshot");
|
|
1464
1469
|
const writeChannelWorkerPidfile = /* @__PURE__ */ __name((snapshot = channelWorker.snapshot(), options = {}) => {
|
|
@@ -1532,6 +1537,27 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1532
1537
|
)
|
|
1533
1538
|
);
|
|
1534
1539
|
core.initializeDaemonMetrics();
|
|
1540
|
+
daemonEventLoopMonitor?.dispose();
|
|
1541
|
+
daemonEventLoopMonitor = core.startEventLoopLagMonitor({
|
|
1542
|
+
onNewMaxStall: /* @__PURE__ */ __name((maxMs) => {
|
|
1543
|
+
daemonLog.warn("daemon event loop stall detected", { maxMs });
|
|
1544
|
+
}, "onNewMaxStall")
|
|
1545
|
+
});
|
|
1546
|
+
const currentDaemonEventLoopMonitor = daemonEventLoopMonitor;
|
|
1547
|
+
core.registerDaemonEventLoopLagGauge(
|
|
1548
|
+
() => currentDaemonEventLoopMonitor.snapshot()
|
|
1549
|
+
);
|
|
1550
|
+
const pipeStats = {
|
|
1551
|
+
inbound: { count: 0, totalBytes: 0, maxBytes: 0 },
|
|
1552
|
+
outbound: { count: 0, totalBytes: 0, maxBytes: 0 }
|
|
1553
|
+
};
|
|
1554
|
+
const recordPipeMessage = /* @__PURE__ */ __name((direction, bytes) => {
|
|
1555
|
+
const stats = pipeStats[direction];
|
|
1556
|
+
stats.count += 1;
|
|
1557
|
+
stats.totalBytes += bytes;
|
|
1558
|
+
stats.maxBytes = Math.max(stats.maxBytes, bytes);
|
|
1559
|
+
core.recordDaemonPipeMessage(direction, bytes);
|
|
1560
|
+
}, "recordPipeMessage");
|
|
1535
1561
|
const daemonTelemetry = core.createDaemonBridgeTelemetry();
|
|
1536
1562
|
daemonTelemetry.metrics = {
|
|
1537
1563
|
sessionLifecycle(action) {
|
|
@@ -1577,6 +1603,10 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1577
1603
|
});
|
|
1578
1604
|
const channelFactory = runtime.createSpawnChannelFactory({
|
|
1579
1605
|
onDiagnosticLine: diagnosticSink,
|
|
1606
|
+
pipeHooks: {
|
|
1607
|
+
onMessageSent: /* @__PURE__ */ __name((bytes) => recordPipeMessage("outbound", bytes), "onMessageSent"),
|
|
1608
|
+
onMessageReceived: /* @__PURE__ */ __name((bytes) => recordPipeMessage("inbound", bytes), "onMessageReceived")
|
|
1609
|
+
},
|
|
1580
1610
|
...opts.experimentalLsp === true ? { extraArgs: ["--experimental-lsp"] } : {}
|
|
1581
1611
|
});
|
|
1582
1612
|
const statusProvider = runtime.createDaemonStatusProvider();
|
|
@@ -1697,6 +1727,13 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1697
1727
|
fsFactory,
|
|
1698
1728
|
daemonLog,
|
|
1699
1729
|
getChannelWorkerSnapshot,
|
|
1730
|
+
getPerfSnapshot: /* @__PURE__ */ __name(() => ({
|
|
1731
|
+
eventLoop: currentDaemonEventLoopMonitor.snapshot(),
|
|
1732
|
+
pipe: {
|
|
1733
|
+
inbound: { ...pipeStats.inbound },
|
|
1734
|
+
outbound: { ...pipeStats.outbound }
|
|
1735
|
+
}
|
|
1736
|
+
}), "getPerfSnapshot"),
|
|
1700
1737
|
workspace: workspaceService,
|
|
1701
1738
|
// Reverse tool channel (#5626): the SAME registry wired into `bridge` above,
|
|
1702
1739
|
// so the WS provider and the child-answering bridge share one sender map.
|
|
@@ -1951,6 +1988,7 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1951
1988
|
writeStderrLine(`qwen serve: runtime startup failed: ${message}`);
|
|
1952
1989
|
daemonLog.error("runtime startup failed", error);
|
|
1953
1990
|
await stopChannelWorkerAfterFailedStartup();
|
|
1991
|
+
disposeDaemonEventLoopMonitor();
|
|
1954
1992
|
removeCurrentServePidfile();
|
|
1955
1993
|
await shutdownBridgeAfterFailedStartup(bridgeForCleanup ?? bridgeRef);
|
|
1956
1994
|
markRuntimeFailed(error);
|
|
@@ -2163,6 +2201,7 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
2163
2201
|
rl.setDraining(true);
|
|
2164
2202
|
rl.dispose();
|
|
2165
2203
|
}
|
|
2204
|
+
disposeDaemonEventLoopMonitor();
|
|
2166
2205
|
await channelWorker.stop().catch((err) => {
|
|
2167
2206
|
daemonLog.error(
|
|
2168
2207
|
"channel worker stop error",
|
|
@@ -6,42 +6,42 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
FILE_HISTORY_DIR,
|
|
8
8
|
getSubagentsRootDir
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AGZF43UV.js";
|
|
10
10
|
import "./chunk-5P5XGNYH.js";
|
|
11
|
-
import "./chunk-K5PGHDBN.js";
|
|
12
11
|
import "./chunk-SKAZWEV5.js";
|
|
12
|
+
import "./chunk-K5PGHDBN.js";
|
|
13
|
+
import "./chunk-CLQPBI4H.js";
|
|
13
14
|
import "./chunk-QOMAHFYI.js";
|
|
14
15
|
import "./chunk-G7OQ3RFJ.js";
|
|
15
16
|
import "./chunk-LKWAVAB5.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-R6RI2HIC.js";
|
|
17
|
+
import "./chunk-5ES5YPED.js";
|
|
18
18
|
import "./chunk-2MPVVENX.js";
|
|
19
19
|
import "./chunk-ZTQ26VBE.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-DMSNJDWG.js";
|
|
21
21
|
import "./chunk-MLZQVCF3.js";
|
|
22
22
|
import "./chunk-LQ7TMOCE.js";
|
|
23
23
|
import "./chunk-E5A7LHNN.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-LM3YCCZJ.js";
|
|
25
25
|
import "./chunk-GO6LNQXT.js";
|
|
26
26
|
import "./chunk-B236XPGF.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-NVFJSIAX.js";
|
|
28
28
|
import "./chunk-TOAUDIS7.js";
|
|
29
29
|
import "./chunk-NPQWQYU6.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-JN2VJ33O.js";
|
|
31
31
|
import "./chunk-E6US47KI.js";
|
|
32
32
|
import "./chunk-UWCTAVOD.js";
|
|
33
33
|
import "./chunk-OFEVLU4C.js";
|
|
34
34
|
import "./chunk-OMX7CUOE.js";
|
|
35
35
|
import "./chunk-MOUXUCXQ.js";
|
|
36
36
|
import "./chunk-BZHLWC6T.js";
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-RZORUN6X.js";
|
|
38
|
+
import "./chunk-MJKMIQMK.js";
|
|
39
39
|
import "./chunk-TENOUWY2.js";
|
|
40
40
|
import "./chunk-GLPV75ES.js";
|
|
41
41
|
import "./chunk-22IFUCVR.js";
|
|
42
42
|
import "./chunk-T42ACHFI.js";
|
|
43
43
|
import "./chunk-SIUQ3YYX.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-KYTQOCDE.js";
|
|
45
45
|
import "./chunk-YPCPZSZB.js";
|
|
46
46
|
import "./chunk-IRJWHZWU.js";
|
|
47
47
|
import "./chunk-SYCJMSIJ.js";
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getPlanRequiredTeammatePreApprovalMessage,
|
|
8
8
|
isPlanRequiredTeammateAwaitingApproval
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LM3YCCZJ.js";
|
|
10
10
|
import {
|
|
11
11
|
getAgentName,
|
|
12
12
|
isTeammate
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
BaseToolInvocation,
|
|
17
17
|
ToolDisplayNames,
|
|
18
18
|
ToolNames
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-MJKMIQMK.js";
|
|
20
20
|
import "./chunk-AVQDCKNF.js";
|
|
21
21
|
import "./chunk-Z2Z3GUXZ.js";
|
|
22
22
|
import {
|