From a0a9d03c747c9240e4329b52fb11eda38a7e53a2 Mon Sep 17 00:00:00 2001 From: Thilo Maier Date: Fri, 29 May 2026 23:32:18 +0200 Subject: [PATCH 1/2] Update guides Fixes #1247 --- package.json | 6 +- pnpm-lock.yaml | 282 ++++++++++++++-------------- src/routes/guides/claude/+page.md | 11 -- src/routes/guides/mcp/+page.md | 72 ------- src/routes/guides/mistral/+page.md | 37 ---- src/routes/guides/opencode/+page.md | 80 ++++++++ src/routes/guides/skills/+page.md | 108 +++-------- src/routes/guides/zed/+page.md | 122 ++++++++++-- 8 files changed, 355 insertions(+), 363 deletions(-) delete mode 100644 src/routes/guides/claude/+page.md delete mode 100644 src/routes/guides/mcp/+page.md delete mode 100644 src/routes/guides/mistral/+page.md create mode 100644 src/routes/guides/opencode/+page.md diff --git a/package.json b/package.json index d9350663..bb5ab4cd 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "format": "prettier --write ." }, "devDependencies": { - "@content-collections/core": "^0.15.0", + "@content-collections/core": "^0.15.1", "@content-collections/vite": "^0.3.0", "@eslint/compat": "^2.1.0", "@eslint/js": "^10.0.1", @@ -35,7 +35,7 @@ "dotenv": "^17.4.2", "eslint": "^10.4.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-svelte": "^3.17.1", + "eslint-plugin-svelte": "^3.18.0", "globals": "^17.6.0", "mdsvex": "^0.12.7", "mode-watcher": "^1.1.0", @@ -50,7 +50,7 @@ "tailwind-merge": "^3.6.0", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.59.4", + "typescript-eslint": "^8.60.0", "vite": "^8.0.14", "zod": "^4.4.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ea33687..7304bda0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: devDependencies: '@content-collections/core': - specifier: ^0.15.0 - version: 0.15.0(typescript@6.0.3) + specifier: ^0.15.1 + version: 0.15.1(typescript@6.0.3) '@content-collections/vite': specifier: ^0.3.0 - version: 0.3.0(@content-collections/core@0.15.0(typescript@6.0.3))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 0.3.0(@content-collections/core@0.15.1(typescript@6.0.3))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@eslint/compat': specifier: ^2.1.0 version: 2.1.0(eslint@10.4.0(jiti@2.7.0)) @@ -28,10 +28,10 @@ importers: version: 5.2.8 '@lucide/svelte': specifier: ^1.16.0 - version: 1.16.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 1.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) '@maiertech/sveltekit-helpers': specifier: ^0.51.2 - version: 0.51.2(@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)))(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(tailwindcss@4.3.0)(zod@4.4.3) + version: 0.51.2(@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)))(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(tailwindcss@4.3.0)(zod@4.4.3) '@playwright/test': specifier: ^1.60.0 version: 1.60.0 @@ -40,16 +40,16 @@ importers: version: 1.11.0 '@sveltejs/adapter-node': specifier: ^5.5.4 - version: 5.5.4(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))) + version: 5.5.4(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))) '@sveltejs/enhanced-img': specifier: ^0.10.4 - version: 0.10.4(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 0.10.4(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@sveltejs/kit': specifier: ^2.61.1 - version: 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@sveltejs/vite-plugin-svelte': specifier: ^7.1.2 - version: 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@tailwindcss/vite': specifier: ^4.3.0 version: 4.3.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) @@ -69,26 +69,26 @@ importers: specifier: ^10.1.8 version: 10.1.8(eslint@10.4.0(jiti@2.7.0)) eslint-plugin-svelte: - specifier: ^3.17.1 - version: 3.17.1(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + specifier: ^3.18.0 + version: 3.18.0(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0)) globals: specifier: ^17.6.0 version: 17.6.0 mdsvex: specifier: ^0.12.7 - version: 0.12.7(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 0.12.7(svelte@5.55.9(@typescript-eslint/types@8.60.0)) mode-watcher: specifier: ^1.1.0 - version: 1.1.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 1.1.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) prettier: specifier: ^3.8.3 version: 3.8.3 prettier-plugin-svelte: specifier: ^3.5.2 - version: 3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) prettier-plugin-tailwindcss: specifier: ^0.8.0 - version: 0.8.0(prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4)))(prettier@3.8.3) + version: 0.8.0(prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)))(prettier@3.8.3) shiki: specifier: ^4.1.0 version: 4.1.0 @@ -97,13 +97,13 @@ importers: version: 16.21.0 svelte: specifier: ^5.55.9 - version: 5.55.9(@typescript-eslint/types@8.59.4) + version: 5.55.9(@typescript-eslint/types@8.60.0) svelte-check: specifier: ^4.4.8 - version: 4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3) + version: 4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3) sveltekit-embed: specifier: ^0.0.22 - version: 0.0.22(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + version: 0.0.22(svelte@5.55.9(@typescript-eslint/types@8.60.0)) tailwind-merge: specifier: ^3.6.0 version: 3.6.0 @@ -114,8 +114,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.59.4 - version: 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.60.0 + version: 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) vite: specifier: ^8.0.14 version: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) @@ -125,8 +125,8 @@ importers: packages: - '@content-collections/core@0.15.0': - resolution: {integrity: sha512-GCbG7p+7cGnPUAyoOPoT8ABsd9D6VWF17YJUl+IHJWr+VYTYNKyDaQtJ+6Pfg55GvtuW3gCfqJkOx6Pu2SB6YA==} + '@content-collections/core@0.15.1': + resolution: {integrity: sha512-uQmhvvsSgNJs7QOi4+IgvDhv7v1yueCr6n7WgMahUDFeVchML/WFl9D2vrklxUnXY+YaBGTkc2+q8PcEVM19WA==} peerDependencies: typescript: ^5.0.2 || ^6.0.0 @@ -1062,63 +1062,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.59.4': - resolution: {integrity: sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==} + '@typescript-eslint/eslint-plugin@8.60.0': + resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.59.4 + '@typescript-eslint/parser': ^8.60.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.59.4': - resolution: {integrity: sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==} + '@typescript-eslint/parser@8.60.0': + resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.59.4': - resolution: {integrity: sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==} + '@typescript-eslint/project-service@8.60.0': + resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.59.4': - resolution: {integrity: sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==} + '@typescript-eslint/scope-manager@8.60.0': + resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.59.4': - resolution: {integrity: sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==} + '@typescript-eslint/tsconfig-utils@8.60.0': + resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.59.4': - resolution: {integrity: sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==} + '@typescript-eslint/type-utils@8.60.0': + resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.59.4': - resolution: {integrity: sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==} + '@typescript-eslint/types@8.60.0': + resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.59.4': - resolution: {integrity: sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==} + '@typescript-eslint/typescript-estree@8.60.0': + resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.59.4': - resolution: {integrity: sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==} + '@typescript-eslint/utils@8.60.0': + resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.59.4': - resolution: {integrity: sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==} + '@typescript-eslint/visitor-keys@8.60.0': + resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.1': @@ -1257,8 +1257,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-svelte@3.17.1: - resolution: {integrity: sha512-NyiXHtS3Ni7e532RBwS9OXlMKDIrENg3gY+/+ODjZzQx2xhU3NlJ+nIl1a93iUUQeiJL3lS8KLmY+W8hklzweQ==} + eslint-plugin-svelte@3.18.0: + resolution: {integrity: sha512-vc3P37lrDronWDb2kPXiG8sqkuiMqitGXSSaflb7Y+jpDgNoAzW8i7tdqyJKpcLZmFIqZCD+je2oZRf9qyRyBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 @@ -1998,8 +1998,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.59.4: - resolution: {integrity: sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==} + typescript-eslint@8.60.0: + resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2147,7 +2147,7 @@ packages: snapshots: - '@content-collections/core@0.15.0(typescript@6.0.3)': + '@content-collections/core@0.15.1(typescript@6.0.3)': dependencies: '@standard-schema/spec': 1.1.0 camelcase: 8.0.0 @@ -2162,14 +2162,14 @@ snapshots: typescript: 6.0.3 yaml: 2.9.0 - '@content-collections/integrations@0.5.0(@content-collections/core@0.15.0(typescript@6.0.3))': + '@content-collections/integrations@0.5.0(@content-collections/core@0.15.1(typescript@6.0.3))': dependencies: - '@content-collections/core': 0.15.0(typescript@6.0.3) + '@content-collections/core': 0.15.1(typescript@6.0.3) - '@content-collections/vite@0.3.0(@content-collections/core@0.15.0(typescript@6.0.3))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@content-collections/vite@0.3.0(@content-collections/core@0.15.1(typescript@6.0.3))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: - '@content-collections/core': 0.15.0(typescript@6.0.3) - '@content-collections/integrations': 0.5.0(@content-collections/core@0.15.0(typescript@6.0.3)) + '@content-collections/core': 0.15.1(typescript@6.0.3) + '@content-collections/integrations': 0.5.0(@content-collections/core@0.15.1(typescript@6.0.3)) vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) '@emnapi/core@1.10.0': @@ -2441,16 +2441,16 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.59.4))': + '@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0))': dependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - '@maiertech/sveltekit-helpers@0.51.2(@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)))(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(tailwindcss@4.3.0)(zod@4.4.3)': + '@maiertech/sveltekit-helpers@0.51.2(@lucide/svelte@1.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)))(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(tailwindcss@4.3.0)(zod@4.4.3)': dependencies: - '@lucide/svelte': 1.16.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@lucide/svelte': 1.16.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) shiki: 4.1.0 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) tailwind-merge: 3.6.0 tailwindcss: 4.3.0 zod: 4.4.3 @@ -2680,32 +2680,32 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-node@5.5.4(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))': + '@sveltejs/adapter-node@5.5.4(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))': dependencies: '@rollup/plugin-commonjs': 29.0.2(rollup@4.60.4) '@rollup/plugin-json': 6.1.0(rollup@4.60.4) '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.4) - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) rollup: 4.60.4 - '@sveltejs/enhanced-img@0.10.4(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/enhanced-img@0.10.4(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(rollup@4.60.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) magic-string: 0.30.21 sharp: 0.34.5 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) - svelte-parse-markup: 0.1.5(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte-parse-markup: 0.1.5(svelte@5.55.9(@typescript-eslint/types@8.60.0)) vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) vite-imagetools: 9.0.3(rollup@4.60.4) zimmerframe: 1.1.4 transitivePeerDependencies: - rollup - '@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -2716,17 +2716,17 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) optionalDependencies: typescript: 6.0.3 - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.59.4))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.9(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) vitefu: 1.1.3(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) @@ -2833,14 +2833,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/parser': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.60.0 eslint: 10.4.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 @@ -2849,41 +2849,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3 eslint: 10.4.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.4(typescript@6.0.3)': + '@typescript-eslint/project-service@8.60.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/types': 8.60.0 debug: 4.4.3 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.59.4': + '@typescript-eslint/scope-manager@8.60.0': dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/visitor-keys': 8.60.0 - '@typescript-eslint/tsconfig-utils@8.59.4(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 eslint: 10.4.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@6.0.3) @@ -2891,14 +2891,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.59.4': {} + '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/typescript-estree@8.59.4(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.59.4(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/project-service': 8.60.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.1 @@ -2908,20 +2908,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) eslint: 10.4.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.59.4': + '@typescript-eslint/visitor-keys@8.60.0': dependencies: - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/types': 8.60.0 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.1': {} @@ -3047,7 +3047,7 @@ snapshots: dependencies: eslint: 10.4.0(jiti@2.7.0) - eslint-plugin-svelte@3.17.1(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + eslint-plugin-svelte@3.18.0(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -3059,9 +3059,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.15) postcss-safe-parser: 7.0.1(postcss@8.5.15) semver: 7.8.1 - svelte-eslint-parser: 1.6.1(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + svelte-eslint-parser: 1.6.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)) optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) transitivePeerDependencies: - ts-node @@ -3140,11 +3140,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.9(@typescript-eslint/types@8.59.4): + esrap@2.2.9(@typescript-eslint/types@8.60.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/types': 8.60.0 esrecurse@4.3.0: dependencies: @@ -3372,13 +3372,13 @@ snapshots: unist-util-visit: 5.1.0 vfile: 6.0.3 - mdsvex@0.12.7(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + mdsvex@0.12.7(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: '@types/mdast': 4.0.4 '@types/unist': 2.0.11 prism-svelte: 0.4.7 prismjs: 1.30.0 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) unist-util-visit: 2.0.3 vfile-message: 2.0.4 @@ -3403,11 +3403,11 @@ snapshots: dependencies: brace-expansion: 5.0.6 - mode-watcher@1.1.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + mode-watcher@1.1.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: - runed: 0.25.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)) - svelte: 5.55.9(@typescript-eslint/types@8.59.4) - svelte-toolbelt: 0.7.1(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + runed: 0.25.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) + svelte-toolbelt: 0.7.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)) mri@1.2.0: {} @@ -3498,16 +3498,16 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: prettier: 3.8.3 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - prettier-plugin-tailwindcss@0.8.0(prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4)))(prettier@3.8.3): + prettier-plugin-tailwindcss@0.8.0(prettier-plugin-svelte@3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)))(prettier@3.8.3): dependencies: prettier: 3.8.3 optionalDependencies: - prettier-plugin-svelte: 3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + prettier-plugin-svelte: 3.5.2(prettier@3.8.3)(svelte@5.55.9(@typescript-eslint/types@8.60.0)) prettier@3.8.3: {} @@ -3590,15 +3590,15 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.60.4 fsevents: 2.3.3 - runed@0.23.4(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + runed@0.23.4(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: esm-env: 1.2.2 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - runed@0.25.0(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + runed@0.25.0(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: esm-env: 1.2.2 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) sade@1.8.1: dependencies: @@ -3690,19 +3690,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.59.4))(typescript@6.0.3): + svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.9(@typescript-eslint/types@8.60.0))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) typescript: 6.0.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.6.1(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + svelte-eslint-parser@1.6.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -3712,20 +3712,20 @@ snapshots: postcss-selector-parser: 7.1.1 semver: 7.8.1 optionalDependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte-parse-markup@0.1.5(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + svelte-parse-markup@0.1.5(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte-toolbelt@0.7.1(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + svelte-toolbelt@0.7.1(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: clsx: 2.1.1 - runed: 0.23.4(svelte@5.55.9(@typescript-eslint/types@8.59.4)) + runed: 0.23.4(svelte@5.55.9(@typescript-eslint/types@8.60.0)) style-to-object: 1.0.14 - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) - svelte@5.55.9(@typescript-eslint/types@8.59.4): + svelte@5.55.9(@typescript-eslint/types@8.60.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -3738,7 +3738,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.9(@typescript-eslint/types@8.59.4) + esrap: 2.2.9(@typescript-eslint/types@8.60.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -3746,9 +3746,9 @@ snapshots: transitivePeerDependencies: - '@typescript-eslint/types' - sveltekit-embed@0.0.22(svelte@5.55.9(@typescript-eslint/types@8.59.4)): + sveltekit-embed@0.0.22(svelte@5.55.9(@typescript-eslint/types@8.60.0)): dependencies: - svelte: 5.55.9(@typescript-eslint/types@8.59.4) + svelte: 5.55.9(@typescript-eslint/types@8.60.0) tailwind-merge@3.6.0: {} @@ -3776,12 +3776,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.4.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: diff --git a/src/routes/guides/claude/+page.md b/src/routes/guides/claude/+page.md deleted file mode 100644 index 51adf544..00000000 --- a/src/routes/guides/claude/+page.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Claude guide -description: How setup and configure Claude Code. ---- - -## Directories - -| Directory | Type | Description | -| ------------------ | --------- | --------------------------------------------------------- | -| `.claude/skills` | workspace | Claude code does not read skills from `.agents/skills`. | -| `~/.claude/skills` | global | Claude code does not read skills from `~/.agents/skills`. | diff --git a/src/routes/guides/mcp/+page.md b/src/routes/guides/mcp/+page.md deleted file mode 100644 index c5ba7078..00000000 --- a/src/routes/guides/mcp/+page.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: MCP guide -description: How to setup and configure MCP servers. ---- - -In the [Skills guide](/guides/skills) I mentioned that the `.agents/skills` workspace directory is a -convention that many agents honor. Unfortunately, there is no such standardization for MCP servers. - -## How do I configure MCP servers? - -1. **Option 1 (agent-vendor-specific workspace config):** Add an agent-vendor-specific config to - your workspace. You will have to add one config per agent, e.g. `.vibe/config.toml` for Mistral - Vibe. Since you cannot share MCP server configs across agents, you will have to add multiple - workspace configs if you want to use multiple agents. If you configure an MCP server for Zed by - adding it to `.zed/settings.json` in your workspace, you can at least share the MCP server config - with every model supported by the Zed agent. - -2. **Option 2 (agent-vendor-specific global configs):** Every agent vendor offers a custom way to - configure an MCP server globally in your home directory. Again, you have to add one config per - agent vendor. Like before, you can add MCP servers to `~/.config/zed/settings.json`, which makes - them available to every model supported by the Zed agent. - -3. **Option 3 (use MCP server extensions):** A selection of MCP servers can be installed as - extensions in Zed. This makes them available globally to the Zed agent and all supported models. - -## Configuration examples - -### Svelte MCP server - -This MCP server makes most sense when configured in a workspace. For Zed, you need to add -`.zed/settings.json` to your workspace with the following config: - -```json -{ - "context_servers": { - "Svelte": { - "command": "npx", - "args": ["-y", "@sveltejs/mcp"] - } - } -} -``` - -For Mistral Vibe support, you need to add `.vibe/config.toml` with the following config: - -```toml -[[mcp_servers]] -name = "Svelte" -transport = "stdio" -command = "npx" -args = ["-y", "@sveltejs/mcp"] -``` - -### GitHub MCP server - -This one is not project-specific and should be added globally. You can install it as an extension in -Zed. This results in this config in `~/.config/zed/settings.json`: - -```json - "context_servers": { - "mcp-server-github": { - "enabled": true, - "remote": false, - "settings": { - "github_personal_access_token": "token", - }, - }, - }, -``` - -Token permissions depend on what you want to do with the MCP server. Start with `repo` permissions -for read-only access. diff --git a/src/routes/guides/mistral/+page.md b/src/routes/guides/mistral/+page.md deleted file mode 100644 index d19eb04e..00000000 --- a/src/routes/guides/mistral/+page.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Mistral guide -description: How setup and configure Mistral. ---- - -## Mistral Vibe CLI - -Install with `brew install mistral-vibe`. Generate an API key -[here](https://console.mistral.ai/codestral/cli). This creates an API key of type `Vibe`, which you -can manage [here](https://admin.mistral.ai/organization/api-keys). - -Then run - -```sh -vibe --setup -``` - -and paste the generated API key when prompted. - -## Use Mistral Vibe with Zed - -You have two options for using Mistral Vibe with Zed: - -1. Install Mistral Vibe from the Zed ACP registry. With the configuration from the previous step, - there is nothing else you need to configure. -2. You can also use Mistral with Zed's agent. Create an API key - [here](https://admin.mistral.ai/organization/workspaces?profile_dialog=api-keys) and copy it into - the Mistral config (Zed LLM Providers). - -## Directories - -| Directory | Type | Description | -| ---------------- | --------- | ------------------------------- | -| `.agents/skills` | workspace | Cross-harness skills directory. | -| `~/.vibe/skills` | global | Global skills directory. | -| `.vibe/mcp` | workspace | Workspace MCP directory. | -| `~/.vibe/mcp` | global | Global MCP directory. | diff --git a/src/routes/guides/opencode/+page.md b/src/routes/guides/opencode/+page.md new file mode 100644 index 00000000..10b85fce --- /dev/null +++ b/src/routes/guides/opencode/+page.md @@ -0,0 +1,80 @@ +--- +title: OpenCode +description: How to use and configure OpenCode. +--- + +## Running OpenCode + +### OpenCode in the terminal + +I run OpenCode in the terminal only to configure it, e.g. to connect to LLM providers with API keys. + +### OpenCode via ACP in Zed + +With this option I get access to all OpenCode Go models while enjoying a polished integration with +Zed: + +- Access project skills in `.agent/skills` and global skills in `~/.agent/skills`. +- Access MCP servers configured for Zed and in `~/.config/opencode/opencode.jsonc`. +- No pull request-style reviews for agent code changes. + +### OpenCode models in Zed agent + +With this option I can access a subset of OpenCode Go models: + +- Access project skills in `.agent/skills` and global skills in `~/.agent/skills`. +- Access MCP servers configured for Zed. +- Pull-request-style reviews for agent code changes. + +## OpenCode Go models + +For coding I currently use these models: + +- opencode-go/qwen3.7-max (default) +- opencode-go/kimi-k2.6 +- opencode-go/glm-5.1 + +## Configuration + +### Default model + +```json +{ + "model": "opencode-go/qwen3.7-max" +} +``` + +### MCP servers + +Since I use OpenCode within Zed only, there is no real point configuring MCP servers for OpenCode. +It makes sense to configure MCP servers in Zed instead. For reference, two MCP server examples. + +#### Railway MCP server + +```json +{ + "mcp": { + "railway": { + "type": "local", + "command": ["railway", "mcp"] + } + } +} +``` + +This requires the Railway CLI to be installed locally. + +#### Context7 MCP server + +```json +{ + "mcp": { + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp" + } + } +} +``` + +This MCP server is a remote server. diff --git a/src/routes/guides/skills/+page.md b/src/routes/guides/skills/+page.md index 2b0babc5..ac5c6f8f 100644 --- a/src/routes/guides/skills/+page.md +++ b/src/routes/guides/skills/+page.md @@ -7,88 +7,36 @@ description: How to manage agentic skills. You can install skills from [skills.sh](https://skills.sh) with the Skills CLI using `npx skills add` and `npx skills add -g`. `npx skills` does not require anything installed locally. -Starting with Node v26, you can install the Skills CLI via Homebrew for better performance: -`brew install skills`. If you opt for this method, you do not need the `npx` prefix in all commands -listed on this page. +Starting with Node v26, you can install the Skills CLI via Homebrew: `brew install skills`. If you +opt for this method, you do not need the `npx` prefix in the commands listed on this page. You need to be mindful that skills can be malicious. Your first instinct should be to distrust any -skill for which you cannot corroborate that it is legit. You should also always read the skill to -verify that it does not do anything fishy. There is no harm in installing a skill, but before -letting it loose on your agent, you really need to verify that it is safe to use. - -Let's take the [official Svelte skills](https://svelte.dev/docs/ai/skills) as an example. On the -[Svelte skills page on skills.sh](https://skills.sh/sveltejs/ai-tools) you can double-check from -which repository the skills will be installed. Since the -[repository is managed by the Svelte team](https://skills.sh/sveltejs/ai-tools), you can be -confident that these skills are legit and you can use the command from skills.sh to install them. +skill for which you cannot verify that it is legit. You should also always read the skill to check +that it does not do anything fishy. ## Where should I install my skills? -Project-specific skills should be installed into your workspace in directory `.agents/skills` if you -want to share them with your team. When you install workspace skills into `.agents/skills`, chances -are that your agent will be able to discover them (there are notable exceptions, e.g. Claude Code). - -Skills that are not project-specific (global skills) should be installed into your home directory. -For global skills, there is even less support for the `~/.agents/skills` directory, e.g. Claude Code -and the Zed agent do not read skills from this directory. - -As a workaround, you can install global skills into `~/.agents/skills` and create a symbolic link to -whatever directory your agent requires: - -| Agent | Symbolic link | -| ------------ | --------------------------------------------- | -| Claude Code | `ln -s ~/.agents/skills ~/.claude/skills` | -| Mistral Vibe | `ln -s ~/.agents/skills ~/.vibe/skills` | -| Zed agent | `ln -s ~/.agents/skills ~/.config/zed/skills` | - -## List skills - -Run - -```bash -npx skills list -``` - -to list installed workspace skills. Run - -```bash -npx skills list -g -``` - -to list globally installed skills. - -## Update skills - -Run - -```bash -npx skills update -``` - -to update installed skills. You will be prompted if you would like to update workspace skills or -global skills. - -## Remove skills - -Run - -```bash -npx skills remove -``` - -to remove a workspace skill. Run - -```bash -npx skills remove -g -``` - -to remove a global skill. - -## Skills I use - -| Skill | Type | Link | -| ------------------------- | --------- | -------------------------------------------------------------------------- | -| modern-web-guidance | global | https://www.skills.sh/googlechrome/modern-web-guidance/modern-web-guidance | -| nuxt-ui | workspace | https://www.skills.sh/nuxt/ui/nuxt-ui | -| svelte-code-writer | workspace | https://www.skills.sh/sveltejs/ai-tools/svelte-code-writer | -| svelte-core-bestpractices | workspace | https://www.skills.sh/sveltejs/ai-tools/svelte-core-bestpractices | +Project-specific skills should be installed into `.agents/skills` in your project. Non-project-specific +skills should be installed into global `~/.agents/skills`. Both directories are the default directories +when using `npx skills add` and `npx skills add -g`. Many agents honor these two standardized +directories: + +- Zed agent (with any supported provider) +- OpenCode via ACP in Zed (with any connected model) +- OpenCode in the terminal (with any connected model) + +There are still many agents that roll their own skill directories, e.g. Claude Code. You can create +a symbolic link, e.g. `ln -s ~/.agents/skills ~/.claude/skills`, to avoid having to install skills +into multiple directories. Or you can choose to use models from non-compliant vendors only through +harnesses that support standard skill directories. I recommend using a harness that is +agent-agnostic. [Zed](/guides/zed) and [OpenCode](/guides/opencode) are great options. + +## `npx skills` + +| Command | Description | +| :--------------------- | :------------------------------- | +| `npx skills list` | List installed workspace skills. | +| `npx skills list -g` | List installed global skills. | +| `npx skills update` | Update installed skills. | +| `npx skills remove` | Remove a workspace skill. | +| `npx skills remove -g` | Remove a global skill. | diff --git a/src/routes/guides/zed/+page.md b/src/routes/guides/zed/+page.md index 445e9618..12850ec4 100644 --- a/src/routes/guides/zed/+page.md +++ b/src/routes/guides/zed/+page.md @@ -3,13 +3,6 @@ title: Zed guide description: How to use Zed for agentic coding. --- -## Directories - -| Directory | Type | Description | -| ---------------------- | --------- | ------------------------------------------------------------- | -| `.agents/skills` | workspace | Hooray, the Zed agent reads skills from a standard directory. | -| `~/.config/zed/skills` | global | Zed agent does not read skills from `~/.agents/skills`. | - ## Shortcuts | Shortcut | Description | @@ -30,12 +23,11 @@ description: How to use Zed for agentic coding. | `⇧ ⌘ A` | Add folder to project. | You can add multiple projects to the sidebar. A project is a GitHub repository. The sidebar shows -all agent sessions for a project, including sessions for worktrees. The default is that an agent -session runs on one project. The idea of the sidebar is to make switching between agent sessions -seamless. +all agent sessions for a project, including sessions for worktrees. The idea of the sidebar is to +make switching between agent sessions seamless. If you want an agent session to run on more than one project, you can add the folder of the second -project with above shortcut. This creates a multi-root workspace. +project with the shortcut above. This creates a multi-root workspace. ## Agent panel @@ -51,13 +43,13 @@ example, not all agents support code reviews in which you can accept or reject c ## Worktrees -Since v1, worktree support in Zed is usable. Using Git worktrees to isolate workspaces within the -same project is seamless. Click the branch name at the top to create a headless worktree. Then add a -branch. +Since version 1, worktree support in Zed is usable. Using Git worktrees to isolate workspaces within +the same project is seamless. Click the branch name at the top to create a headless worktree. Then +add a branch. Zed keeps all worktrees in a configurable folder. However, it is opinionated about how worktrees are organized within that folder. But since you can switch between worktrees in the UI, you don't need -to care where worktrees are located. +to worry about where worktrees are located. ## Code reviews @@ -101,8 +93,8 @@ Run git remote set-head origin develop ``` -to update the ref `origin/HEAD` to `origin/develop` locally. Any `git: branch diff` will then pickup -this config. +to update the ref `origin/HEAD` to `origin/develop` locally. Any `git: branch diff` will then pick +up this config. Make use of these features for PR reviews: @@ -112,6 +104,98 @@ Make use of these features for PR reviews: - Use the file history to see how a file has changed over time. - Add review comments to individual files via your Git provider's PR website. -## Resolve merge conflicts +## Configuration + +| Directory | Type | +| :---------------------------- | :------ | +| `.zed/settings.json` | project | +| `~/.config/zed/settings.json` | global | + +### MCP servers + +You need to decide whether an MCP server should be defined as a global server or a project server. + +#### Context7 MCP server + +This MCP server should be installed as a global server: + +```json +{ + "context_servers": { + "context7": { + "url": "https://mcp.context7.com/mcp" + } + } +} +``` + +It is a remote MCP server with rate limiting when used without authentication. + +#### GitHub MCP server + +The GitHub MCP server should be defined as a global server. This configuration should work: + +```json +{ + "context_servers": { + "github": { + "url": "https://api.githubcopilot.com/mcp/" + } + } +} +``` + +This config should prompt you to log in with your GitHub credentials. But because of a bug with +GitHub's MCP server, this does not work. Instead you have to install the GitHub MCP server +extension, which adds this config: + +```json +{ + "context_servers": { + "mcp-server-github": { + "enabled": true, + "remote": false, + "settings": { + // Zed settings token. + "github_personal_access_token": "token" + } + } + } +} +``` + +The extension runs an MCP server that communicates with GitHub locally. + +#### Railway MCP server + +The Railway MCP server should be defined as a global server: + +```json +{ + "context_servers": { + "railway": { + "command": "railway", + "args": ["mcp"] + } + } +} +``` + +It requires the Railway CLI to be installed, which runs the MCP server locally. + +#### Svelte MCP server + +This MCP server should be defined as a project server: + +```json +{ + "context_servers": { + "Svelte": { + "command": "npx", + "args": ["-y", "@sveltejs/mcp"] + } + } +} +``` -Zed has built-in merge conflict resolution (not tested yet). +This is another example of an MCP server. From 21fad7251a558c0534da7b6958b78d404b205227 Mon Sep 17 00:00:00 2001 From: Thilo Maier Date: Fri, 29 May 2026 23:33:42 +0200 Subject: [PATCH 2/2] Fix lint errors --- src/routes/guides/skills/+page.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/guides/skills/+page.md b/src/routes/guides/skills/+page.md index ac5c6f8f..8d679261 100644 --- a/src/routes/guides/skills/+page.md +++ b/src/routes/guides/skills/+page.md @@ -16,10 +16,10 @@ that it does not do anything fishy. ## Where should I install my skills? -Project-specific skills should be installed into `.agents/skills` in your project. Non-project-specific -skills should be installed into global `~/.agents/skills`. Both directories are the default directories -when using `npx skills add` and `npx skills add -g`. Many agents honor these two standardized -directories: +Project-specific skills should be installed into `.agents/skills` in your project. +Non-project-specific skills should be installed into global `~/.agents/skills`. Both directories are +the default directories when using `npx skills add` and `npx skills add -g`. Many agents honor these +two standardized directories: - Zed agent (with any supported provider) - OpenCode via ACP in Zed (with any connected model)