Compare commits

..

17 Commits

Author SHA1 Message Date
github-actions[bot]
a668188dfa Version Packages (#229) 2026-06-26 18:20:51 +02:00
paoloricciuti
59dcbff136 fix: better wording for desired_svelte_version 2026-06-26 12:37:50 +02:00
prajwal
129a307df0 docs: migrate to agy (#228)
Co-authored-by: prajwal <prajwal@hopbox.in>
2026-06-24 18:16:22 +02:00
Paolo Ricciuti
d051d7ce6c chore: remove log 2026-06-12 11:12:22 +02:00
Copilot
54a84c5512 Updating Svelte version in mcp-remote app (#226)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-12 11:09:38 +02:00
Paolo Ricciuti
2e8f79038e chore: test version 2026-06-12 10:56:20 +02:00
github-actions[bot]
1b6b7589b5 Version Packages (#223) 2026-06-04 18:31:47 +02:00
Paolo Ricciuti
fea691996f chore: support declaration tags (#222) 2026-06-04 17:07:27 +02:00
github-actions[bot]
802b379f7a Version Packages (#208)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-22 12:11:32 +02:00
Paolo Ricciuti
fc391d0128 fix: remove restrictive permissions from subagent (#219) 2026-05-22 11:07:01 +02:00
Elliott Johnson
575dcc7d2b chore: Supply chain hardening (#217) 2026-05-22 08:24:32 +02:00
Elliott Johnson
88cea9e539 Revert "chore: Supply chain hardening" (#216) 2026-05-20 08:53:28 -06:00
Elliott Johnson
fdb1bc7370 chore: Supply chain hardening 2026-05-20 08:46:41 -06:00
Tee Ming
5b4d3aa68a docs: fix broken skills link (#211)
Co-authored-by: Paolo Ricciuti <ricciutipaolo@gmail.com>
2026-05-15 21:51:07 +02:00
github-actions[bot]
04c52f2b72 Version Packages (#197)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-13 20:51:10 +02:00
Paolo Ricciuti
0ea2a617ef docs: overhaul docs focus on all ai tools (#188)
Co-authored-by: jyc.dev <jycouet@gmail.com>
Co-authored-by: Tee Ming <chewteeming01@gmail.com>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2026-05-13 20:50:40 +02:00
Paolo Ricciuti
484453e5f8 feat: allow stdio mcp to read the content of the file directly (#198) 2026-05-13 20:26:18 +02:00
32 changed files with 430 additions and 252 deletions

View File

@@ -1,5 +0,0 @@
---
'@sveltejs/mcp': patch
---
fix: handle non call expressions passed to `is_rune`

View File

@@ -1,5 +0,0 @@
---
'@sveltejs/mcp': patch
---
chore: remove db requirement

View File

@@ -13,12 +13,10 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.28.2
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0

View File

@@ -13,12 +13,10 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.28.2
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0

View File

@@ -1,23 +0,0 @@
name: Publish Any Commit
on: [push, pull_request]
permissions: {}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- run: pnpm dlx pkg-pr-new publish --compact './packages/mcp-stdio' './packages/opencode' --pnpm

View File

@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Publish to MCP Registry
working-directory: packages/mcp-stdio

View File

@@ -21,7 +21,7 @@ jobs:
skills: ${{ steps.find-skills.outputs.skills }}
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Find all skills
id: find-skills
@@ -41,7 +41,7 @@ jobs:
skill: ${{ fromJson(needs.detect-skills.outputs.skills) }}
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Get version from date
id: version
@@ -53,7 +53,7 @@ jobs:
zip -r ${{ matrix.skill }}.zip ${{ matrix.skill }}/
- name: Create Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2
with:
tag_name: ${{ matrix.skill }}-v${{ steps.version.outputs.version }}
name: ${{ matrix.skill }} v${{ steps.version.outputs.version }}

View File

@@ -25,7 +25,7 @@ jobs:
os: [ubuntu-latest]
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

View File

@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

View File

@@ -13,12 +13,10 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.28.2
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0

View File

@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

View File

@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0

1
.npmrc
View File

@@ -1 +0,0 @@
engine-strict=true

View File

@@ -66,16 +66,21 @@ Alternatively, create or edit `~/.copilot/mcp-config.json` and add the following
}
```
## Gemini CLI
## Antigravity CLI
To include the local MCP version in Gemini CLI, simply run the following command:
To use the local MCP version in Antigravity CLI, create or edit `~/.gemini/config/mcp_config.json` and add the following configuration:
```bash
gemini mcp add -t stdio -s [scope] svelte npx -y @sveltejs/mcp
```json
{
"mcpServers": {
"svelte": {
"command": "npx",
"args": ["-y", "@sveltejs/mcp"]
}
}
}
```
The `[scope]` must be `user`, `project` or `local`.
## OpenCode
You can automatically configure the MCP server using the [OpenCode plugin](opencode-plugin) (recommended). If you prefer to configure the MCP server manually, run:

View File

@@ -56,16 +56,20 @@ Alternatively, create or edit `~/.copilot/mcp-config.json` and add the following
}
```
## Gemini CLI
## Antigravity CLI
To use the remote MCP server with Gemini CLI, simply run the following command:
To use the remote MCP version in Antigravity CLI, create or edit `~/.gemini/config/mcp_config.json` and add the following configuration:
```bash
gemini mcp add -t http -s [scope] svelte https://mcp.svelte.dev/mcp
```json
{
"mcpServers": {
"svelte": {
"url": "https://mcp.svelte.dev/mcp"
}
}
}
```
The `[scope]` must be `user` or `project`.
## OpenCode
You can automatically configure the MCP server using the [OpenCode plugin](opencode-plugin) (recommended). If you prefer to configure the MCP server manually, run:

View File

@@ -6,6 +6,6 @@ This is the list of available skills provided by the Svelte MCP package. Skills
Skills are available in both the Claude Code plugin (installed via the marketplace) and the OpenCode plugin (`@sveltejs/opencode`). They can also be manually installed in your `.claude/skills` or `.opencode/skills` folder.
You can download the latest skills from the [releases page](https://github.com/sveltejs/ai-tools/releases) of the repo, or find them in the [`plugins/svelte/skills`](https://github.com/sveltejs/ai-tools/tree/main/plugins/svelte/skills) folder.
You can download the latest skills from the [releases page](https://github.com/sveltejs/ai-tools/releases) of the repo, or find them in the [`tools/skills`](https://github.com/sveltejs/ai-tools/tree/main/tools/skills) folder.
@include .generated/skills.md

View File

@@ -3,7 +3,7 @@
"version": "0.0.1",
"description": "The official Svelte MCP server implementation",
"type": "module",
"packageManager": "pnpm@10.28.2",
"packageManager": "pnpm@10.33.4+sha512.1c67b3b359b2d408119ba1ed289f34b8fc3c6873412bec6fd264fbdc82489e510fcbecb9ce9d22dae7f3b76269d8441046014bdca53b9979cd7a561ad631b800",
"scripts": {
"build": "pnpm -r run build",
"dev": "pnpm --filter @sveltejs/mcp-remote run dev",

View File

@@ -36,7 +36,6 @@
"devDependencies": {
"@anthropic-ai/sdk": "catalog:ai",
"@sveltejs/kit": "catalog:svelte",
"@types/eslint-scope": "catalog:lint",
"@types/estree": "catalog:tooling",
"@typescript-eslint/types": "catalog:lint",
"dotenv": "catalog:tooling"

View File

@@ -1,4 +1,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { writeFileSync, unlinkSync } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
import { InMemoryTransport } from '@tmcp/transport-in-memory';
import { beforeEach, describe, expect, it } from 'vitest';
import { server } from '../../index.js';
@@ -12,13 +15,18 @@ async function autofixer_tool_call(
is_error = false,
desired_svelte_version = 5,
async = false,
ctx?: { stdio?: boolean },
) {
const result = await session.callTool('svelte-autofixer', {
code,
desired_svelte_version,
filename: 'App.svelte',
async,
});
const result = await session.callTool(
'svelte-autofixer',
{
code,
desired_svelte_version,
filename: 'App.svelte',
async,
},
ctx,
);
expect(result).toBeDefined();
if (is_error) {
@@ -146,4 +154,40 @@ describe('svelte-autofixer tool', () => {
'The desired_svelte_version MUST be either 4 or 5 but received "3"',
);
});
it('should read file content from path when stdio context is true', async () => {
const tmp_file = join(tmpdir(), `svelte-autofixer-test-${Date.now()}.svelte`);
const file_content = `<script>
$state count = 0;
</script>`;
writeFileSync(tmp_file, file_content, 'utf-8');
try {
// with stdio: true, the file is read from disk and parsed, producing issues
const content = await autofixer_tool_call(tmp_file, false, 5, false, { stdio: true });
expect(content.issues.length).toBeGreaterThan(0);
expect(content.suggestions.length).toBeGreaterThan(0);
} finally {
unlinkSync(tmp_file);
}
});
it('should treat file path as code when stdio context is not set', async () => {
const tmp_file = join(tmpdir(), `svelte-autofixer-test-${Date.now()}.svelte`);
const file_content = `<script>
$state count = 0;
</script>`;
writeFileSync(tmp_file, file_content, 'utf-8');
try {
// without stdio context, the path string is treated as raw code (plain text), no issues
const content = await autofixer_tool_call(tmp_file, false, 5, false);
expect(content.issues).toHaveLength(0);
expect(content.suggestions).toHaveLength(0);
} finally {
unlinkSync(tmp_file);
}
});
});

View File

@@ -1,33 +1,47 @@
import { basename } from 'node:path';
import type { SvelteMcp } from '../../index.js';
import { tool } from 'tmcp/utils';
import * as v from 'valibot';
import { add_autofixers_issues } from '../../autofixers/add-autofixers-issues.js';
import { add_compile_issues } from '../../autofixers/add-compile-issues.js';
import { add_eslint_issues } from '../../autofixers/add-eslint-issues.js';
import { add_autofixers_issues } from '../../autofixers/add-autofixers-issues.js';
import { icons } from '../../icons/index.js';
import { tool } from 'tmcp/utils';
import { type SvelteMcp } from '../../index.js';
const autofixer_schema = v.object({
code: v.string(),
desired_svelte_version: v.pipe(
v.union([v.string(), v.number()]),
v.description(
'The desired svelte version...if possible read this from the package.json of the user project, otherwise use some hint from the wording (if the user asks for runes it wants version 5). Default to 5 in case of doubt.',
let cached_schema: ReturnType<typeof get_autofixer_schema> | null = null;
function get_autofixer_schema(stdio: boolean) {
let code = v.string();
if (stdio) {
// we only add the description if we are running in stdio, this saves a few tokens for the remote server
code = v.pipe(
v.string(),
v.description(
"The code to be processed by the autofixer. It can also be a path to a file containing the code. If the file doesn't exists the string will be treated as the code",
),
);
}
return v.object({
code,
desired_svelte_version: v.pipe(
v.union([v.string(), v.number()]),
v.description(
'The desired major svelte version as an integer (must be 4 or 5)...if possible read this from the package.json of the user project, otherwise use some hint from the wording (if the user asks for runes it wants version 5). Default to 5 in case of doubt.',
),
),
),
async: v.pipe(
v.optional(v.boolean()),
v.description(
'If true the code is an async component/module and might use await in the markup or top-level awaits in the script tag. If possible check the svelte.config.js/svelte.config.ts to check if the option is enabled otherwise asks the user if they prefer using it or not. You can only use this option if the version is 5.',
async: v.pipe(
v.optional(v.boolean()),
v.description(
'If true the code is an async component/module and might use await in the markup or top-level awaits in the script tag. If possible check the svelte.config.js/svelte.config.ts to check if the option is enabled otherwise asks the user if they prefer using it or not. You can only use this option if the version is 5.',
),
),
),
filename: v.pipe(
v.optional(v.string()),
v.description(
'The filename of the component if available, it MUST be only the Component name with .svelte or .svelte.ts extension and not the entire path.',
filename: v.pipe(
v.optional(v.string()),
v.description(
'The filename of the component if available, it MUST be only the Component name with .svelte or .svelte.ts extension and not the entire path.',
),
),
),
});
});
}
const autofixer_output_schema = v.object({
issues: v.array(v.string()),
@@ -40,7 +54,7 @@ export async function svelte_autofixer_handler({
desired_svelte_version: desired_svelte_version_unchecked,
async,
filename: filename_or_path,
}: v.InferInput<typeof autofixer_schema>) {
}: v.InferInput<ReturnType<typeof get_autofixer_schema>>) {
// we validate manually because some clients don't support union in the input schema (looking at you cursor)
const parsed_version = v.safeParse(
v.union([v.literal(4), v.literal(5), v.literal('4'), v.literal('5')]),
@@ -110,7 +124,11 @@ export function svelte_autofixer(server: SvelteMcp) {
title: 'Svelte Autofixer',
description:
'Given a svelte component or module returns a list of suggestions to fix any issues it has. This tool MUST be used whenever the user is asking to write svelte code before sending the code back to the user',
schema: autofixer_schema,
get schema() {
return (
cached_schema ?? (cached_schema = get_autofixer_schema(server.ctx.custom?.stdio ?? false))
);
},
outputSchema: autofixer_output_schema,
annotations: {
title: 'Svelte Autofixer',
@@ -129,6 +147,18 @@ export function svelte_autofixer(server: SvelteMcp) {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'svelte-autofixer');
}
// we only do this if we know we are running in stdio mode (only stdio pass the context as true)
if (server.ctx.custom?.stdio) {
const [exists_sync, read_file] = await Promise.all([
import('node:fs').then((mod) => mod.existsSync),
import('node:fs/promises').then((mod) => mod.readFile),
]);
if (exists_sync(code)) {
code = await read_file(code, 'utf-8');
}
}
try {
const content = await svelte_autofixer_handler({
code,

View File

@@ -24,6 +24,7 @@ export const server = new McpServer(
},
).withContext<{
track?: (sessionId: string, event: string, extra?: string) => Promise<void>;
stdio?: boolean;
}>();
export type SvelteMcp = typeof server;

View File

@@ -1,17 +1,11 @@
import ts_parser from '@typescript-eslint/parser';
import type * as eslint from 'eslint';
import type { CallExpression, Identifier } from 'estree';
import type { Reference, Variable } from 'eslint-scope';
import { parseForESLint as svelte_eslint_parse } from 'svelte-eslint-parser';
import { runes } from '../constants.js';
type Scope = {
variables?: Variable[];
references?: Reference[];
childScopes?: Scope[];
};
type ScopeManager = {
globalScope: Scope;
};
type Scope = eslint.Scope.Scope;
type ScopeManager = eslint.Scope.ScopeManager;
function collect_scopes(scope: Scope, acc: Scope[] = []) {
acc.push(scope);
@@ -27,12 +21,12 @@ export function parse(code: string, file_path: string) {
parser: { ts: ts_parser, typescript: ts_parser },
});
let all_scopes: Scope[] | undefined;
let all_variables: Variable[] | undefined;
let all_references: Reference[] | undefined;
let all_variables: eslint.Scope.Variable[] | undefined;
let all_references: eslint.Scope.Reference[] | undefined;
function get_all_scopes() {
if (!all_scopes) {
all_scopes = collect_scopes(parsed.scopeManager!.globalScope);
all_scopes = collect_scopes(parsed.scopeManager!.globalScope!);
}
return all_scopes;
}

View File

@@ -1,5 +1,27 @@
# @sveltejs/mcp
## 0.1.25
### Patch Changes
- fix: better wording for `desired_svelte_version` ([`59dcbff`](https://github.com/sveltejs/ai-tools/commit/59dcbff136a91efad5a0e978e8208e1b1d277f97))
## 0.1.24
### Patch Changes
- chore: support declaration tags ([#222](https://github.com/sveltejs/ai-tools/pull/222))
## 0.1.23
### Patch Changes
- feat: allow stdio mcp to read the content of the file directly ([#198](https://github.com/sveltejs/ai-tools/pull/198))
- fix: handle non call expressions passed to `is_rune` ([#201](https://github.com/sveltejs/ai-tools/pull/201))
- chore: remove db requirement ([#196](https://github.com/sveltejs/ai-tools/pull/196))
## 0.1.22
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@sveltejs/mcp",
"version": "0.1.22",
"version": "0.1.25",
"type": "module",
"license": "MIT",
"mcpName": "dev.svelte/mcp",

View File

@@ -9,7 +9,7 @@
"subfolder": "packages/mcp-stdio",
"source": "github"
},
"version": "0.1.22",
"version": "0.1.25",
"websiteUrl": "https://svelte.dev/docs/mcp/overview",
"icons": [
{
@@ -25,7 +25,7 @@
{
"registryType": "npm",
"identifier": "@sveltejs/mcp",
"version": "0.1.22",
"version": "0.1.25",
"runtimeHint": "npx",
"transport": {
"type": "stdio"

View File

@@ -14,7 +14,9 @@ const cli = sade('svelte-mcp');
cli.command('__mcp', '', { default: true }).action(() => {
const transport = new StdioTransport(server);
transport.listen();
transport.listen({
stdio: true,
});
});
cli

View File

@@ -1,5 +1,11 @@
# @sveltejs/opencode
## 0.1.9
### Patch Changes
- fix: remove restrictive permissions from subagent ([#219](https://github.com/sveltejs/ai-tools/pull/219))
## 0.1.8
### Patch Changes

View File

@@ -81,12 +81,7 @@ export const svelte_plugin: Plugin = async (ctx) => {
prompt: agent_data.prompt,
description: agent_data.description,
permission: {
bash: 'ask',
edit: 'allow',
webfetch: 'ask',
},
tools: {
[`${svelte_mcp_name}_*`]: true,
[`${svelte_mcp_name}_*`]: 'allow',
},
};

View File

@@ -1,6 +1,6 @@
{
"name": "@sveltejs/opencode",
"version": "0.1.8",
"version": "0.1.9",
"type": "module",
"license": "MIT",
"homepage": "https://github.com/sveltejs/ai-tools#readme",

347
pnpm-lock.yaml generated
View File

@@ -6,9 +6,18 @@ settings:
catalogs:
ai:
'@anthropic-ai/sdk':
specifier: ^0.71.0
version: 0.71.2
'@mcp-ui/server':
specifier: ^6.0.0
version: 6.0.0
'@modelcontextprotocol/inspector':
specifier: ^0.19.0
version: 0.19.0
'@opencode-ai/plugin':
specifier: ^1.1.44
version: 1.1.44
lint:
'@eslint/compat':
specifier: ^2.0.0
@@ -19,11 +28,23 @@ catalogs:
'@typescript-eslint/parser':
specifier: ^8.44.0
version: 8.54.0
'@typescript-eslint/types':
specifier: ^8.44.0
version: 8.54.0
eslint:
specifier: ^9.36.0
version: 9.39.2
eslint-config-prettier:
specifier: ^10.0.1
version: 10.1.8
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0
eslint-plugin-pnpm:
specifier: ^1.3.0
version: 1.5.0
eslint-plugin-svelte:
specifier: ^3.12.5
specifier: ^3.19.0
version: 3.14.0
globals:
specifier: ^17.0.0
@@ -35,8 +56,11 @@ catalogs:
specifier: ^3.3.3
version: 3.4.1
svelte-eslint-parser:
specifier: ^1.4.0
version: 1.4.1
specifier: ^1.7.1
version: 1.7.1
typescript-eslint:
specifier: ^8.44.0
version: 8.54.0
svelte:
'@sveltejs/adapter-vercel':
specifier: ^6.0.0
@@ -48,28 +72,70 @@ catalogs:
specifier: ^6.0.0
version: 6.2.4
svelte:
specifier: ^5.47.0
version: 5.48.4
specifier: ^5.56.1
version: 5.56.1
svelte-check:
specifier: ^4.0.0
version: 4.3.5
tmcp:
'@tmcp/adapter-valibot':
specifier: ^0.1.5
version: 0.1.5
'@tmcp/transport-http':
specifier: ^0.8.4
version: 0.8.4
specifier: ^0.8.5
version: 0.8.5
'@tmcp/transport-in-memory':
specifier: ^0.0.6
version: 0.0.6
'@tmcp/transport-stdio':
specifier: ^0.4.2
version: 0.4.2
tmcp:
specifier: ^1.19.0
version: 1.19.2
specifier: ^1.19.3
version: 1.19.3
tooling:
'@changesets/cli':
specifier: ^2.29.7
version: 2.29.8
'@svitejs/changesets-changelog-github-compact':
specifier: ^1.2.0
version: 1.2.0
'@types/estree':
specifier: ^1.0.8
version: 1.0.8
'@types/node':
specifier: ^24.3.1
version: 24.10.9
'@valibot/to-json-schema':
specifier: ^1.5.0
version: 1.5.0
'@vercel/analytics':
specifier: ^2.0.0
version: 2.0.1
dotenv:
specifier: ^17.2.3
version: 17.2.3
node-resolve-ts:
specifier: ^1.0.2
version: 1.0.2
publint:
specifier: ^0.3.13
version: 0.3.17
sade:
specifier: 1.8.1
version: 1.8.1
ts-blank-space:
specifier: ^0.7.0
version: 0.7.0
tsdown:
specifier: ^0.20.0
version: 0.20.1
typescript:
specifier: ^5.0.0
version: 5.9.3
valibot:
specifier: ^1.2.0
version: 1.2.0
vite:
specifier: ^7.0.4
version: 7.3.1
@@ -79,6 +145,9 @@ catalogs:
vitest:
specifier: ^4.0.0
version: 4.0.18
zimmerframe:
specifier: ^1.1.4
version: 1.1.4
importers:
@@ -98,7 +167,7 @@ importers:
version: 0.19.0(@types/node@24.10.9)(hono@4.11.7)(typescript@5.9.3)
'@sveltejs/adapter-vercel':
specifier: catalog:svelte
version: 6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)
version: 6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)
'@svitejs/changesets-changelog-github-compact':
specifier: catalog:tooling
version: 1.2.0
@@ -110,13 +179,13 @@ importers:
version: 10.1.8(eslint@9.39.2)
eslint-plugin-import:
specifier: catalog:lint
version: 2.32.0(eslint@9.39.2)
version: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)
eslint-plugin-pnpm:
specifier: catalog:lint
version: 1.5.0(eslint@9.39.2)
eslint-plugin-svelte:
specifier: catalog:lint
version: 3.14.0(eslint@9.39.2)(svelte@5.48.4)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
version: 3.19.0(eslint@9.39.2)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
globals:
specifier: catalog:lint
version: 17.2.0
@@ -128,7 +197,7 @@ importers:
version: 3.8.1
prettier-plugin-svelte:
specifier: catalog:lint
version: 3.4.1(prettier@3.8.1)(svelte@5.48.4)
version: 3.4.1(prettier@3.8.1)(svelte@5.56.1(@typescript-eslint/types@8.54.0))
publint:
specifier: catalog:tooling
version: 0.3.17
@@ -149,13 +218,13 @@ importers:
version: link:../../packages/mcp-server
'@tmcp/transport-http':
specifier: catalog:tmcp
version: 0.8.4(tmcp@1.19.2(typescript@5.9.3))
version: 0.8.5(tmcp@1.19.3(typescript@5.9.3))
'@vercel/analytics':
specifier: catalog:tooling
version: 2.0.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(react@18.3.1)(svelte@5.48.4)
version: 2.0.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(react@18.3.1)(svelte@5.56.1(@typescript-eslint/types@8.54.0))
tmcp:
specifier: catalog:tmcp
version: 1.19.2(typescript@5.9.3)
version: 1.19.3(typescript@5.9.3)
devDependencies:
'@eslint/compat':
specifier: catalog:lint
@@ -168,13 +237,13 @@ importers:
version: 0.19.0(@types/node@24.10.9)(hono@4.11.7)(typescript@5.9.3)
'@sveltejs/adapter-vercel':
specifier: catalog:svelte
version: 6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)
version: 6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)
'@sveltejs/kit':
specifier: catalog:svelte
version: 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
version: 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/vite-plugin-svelte':
specifier: catalog:svelte
version: 6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
version: 6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@types/node':
specifier: catalog:tooling
version: 24.10.9
@@ -186,7 +255,7 @@ importers:
version: 10.1.8(eslint@9.39.2)
eslint-plugin-svelte:
specifier: catalog:lint
version: 3.14.0(eslint@9.39.2)(svelte@5.48.4)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
version: 3.19.0(eslint@9.39.2)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
globals:
specifier: catalog:lint
version: 17.2.0
@@ -195,16 +264,16 @@ importers:
version: 3.8.1
prettier-plugin-svelte:
specifier: catalog:lint
version: 3.4.1(prettier@3.8.1)(svelte@5.48.4)
version: 3.4.1(prettier@3.8.1)(svelte@5.56.1(@typescript-eslint/types@8.54.0))
svelte:
specifier: catalog:svelte
version: 5.48.4
version: 5.56.1(@typescript-eslint/types@8.54.0)
svelte-check:
specifier: catalog:svelte
version: 4.3.5(picomatch@4.0.3)(svelte@5.48.4)(typescript@5.9.3)
version: 4.3.5(picomatch@4.0.3)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)
svelte-eslint-parser:
specifier: catalog:lint
version: 1.4.1(svelte@5.48.4)
version: 1.7.1(svelte@5.56.1(@typescript-eslint/types@8.54.0))
typescript:
specifier: catalog:tooling
version: 5.9.3
@@ -225,10 +294,10 @@ importers:
version: 6.0.0(hono@4.11.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zod@4.1.8)
'@tmcp/adapter-valibot':
specifier: catalog:tmcp
version: 0.1.5(tmcp@1.19.2(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3))
version: 0.1.5(tmcp@1.19.3(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3))
'@tmcp/transport-in-memory':
specifier: catalog:tmcp
version: 0.0.5(tmcp@1.19.2(typescript@5.9.3))
version: 0.0.6(tmcp@1.19.3(typescript@5.9.3))
'@typescript-eslint/parser':
specifier: catalog:lint
version: 8.54.0(eslint@9.39.2)(typescript@5.9.3)
@@ -237,16 +306,16 @@ importers:
version: 9.39.2
eslint-plugin-svelte:
specifier: catalog:lint
version: 3.14.0(eslint@9.39.2)(svelte@5.48.4)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
version: 3.14.0(eslint@9.39.2)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
svelte:
specifier: catalog:svelte
version: 5.48.4
version: 5.56.1(@typescript-eslint/types@8.54.0)
svelte-eslint-parser:
specifier: catalog:lint
version: 1.4.1(svelte@5.48.4)
version: 1.7.1(svelte@5.56.1(@typescript-eslint/types@8.54.0))
tmcp:
specifier: catalog:tmcp
version: 1.19.2(typescript@5.9.3)
version: 1.19.3(typescript@5.9.3)
ts-blank-space:
specifier: catalog:tooling
version: 0.7.0
@@ -268,10 +337,7 @@ importers:
version: 0.71.2(zod@4.1.8)
'@sveltejs/kit':
specifier: catalog:svelte
version: 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@types/eslint-scope':
specifier: catalog:lint
version: 8.4.0
version: 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@types/estree':
specifier: catalog:tooling
version: 1.0.8
@@ -292,14 +358,14 @@ importers:
version: 1.8.1
tmcp:
specifier: catalog:tmcp
version: 1.19.2(typescript@5.9.3)
version: 1.19.3(typescript@5.9.3)
devDependencies:
'@sveltejs/mcp-server':
specifier: workspace:^
version: link:../mcp-server
'@tmcp/transport-stdio':
specifier: catalog:tmcp
version: 0.4.1(tmcp@1.19.2(typescript@5.9.3))
version: 0.4.2(tmcp@1.19.3(typescript@5.9.3))
'@types/node':
specifier: catalog:tooling
version: 24.10.9
@@ -1668,6 +1734,11 @@ packages:
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
'@sveltejs/acorn-typescript@1.0.10':
resolution: {integrity: sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==}
peerDependencies:
acorn: ^8.9.0
'@sveltejs/acorn-typescript@1.0.8':
resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==}
peerDependencies:
@@ -1713,6 +1784,7 @@ packages:
'@svitejs/changesets-changelog-github-compact@1.2.0':
resolution: {integrity: sha512-08eKiDAjj4zLug1taXSIJ0kGL5cawjVCyJkBb6EWSg5fEPX6L+Wtr0CH2If4j5KYylz85iaZiFlUItvgJvll5g==}
engines: {node: ^14.13.1 || ^16.0.0 || >=18}
deprecated: unmaintained
'@tmcp/adapter-valibot@0.1.5':
resolution: {integrity: sha512-9P2wrVYPngemNK0UvPb/opC722/jfd09QxXmme1TRp/wPsl98vpSk/MXt24BCMqBRv4Dvs0xxJH4KHDcjXW52Q==}
@@ -1725,8 +1797,8 @@ packages:
peerDependencies:
tmcp: ^1.16.3
'@tmcp/transport-http@0.8.4':
resolution: {integrity: sha512-n/4oIYjHyX5i6LFC3+qlxtc/IIv1xoqLhPVbdA5VYDyUWU6QRBU3+ffMXQuAPs0Q6Z+ZCzcO30V90yRMAxuriQ==}
'@tmcp/transport-http@0.8.5':
resolution: {integrity: sha512-qQLqiCTtbxtTSswqOn/782df7O57RxI/yLUtCDQ++kHEhbmDUc8glmmtGJ3mrb7yPSPoM5VF2Pc2Q5cA6quzLA==}
peerDependencies:
'@tmcp/auth': ^0.3.3 || ^0.4.0
tmcp: ^1.18.0
@@ -1734,13 +1806,13 @@ packages:
'@tmcp/auth':
optional: true
'@tmcp/transport-in-memory@0.0.5':
resolution: {integrity: sha512-m8l4+GdCj3NNwVxClnE8fV0yVn5ihpXhIsoOTG3CxeKoC/4H5+HPXeIIb25uSfFt6rccDfqH7DDPjMGDfPtoXA==}
'@tmcp/transport-in-memory@0.0.6':
resolution: {integrity: sha512-j+xcfQa7ksiIkA/8s3SAsTnM3GeZTd+X8F++Mv/tAT91+UkCzyhemPz0MqW7i1ruxJyIWooOB6JhWCsyF+LvhA==}
peerDependencies:
tmcp: ^1.17.0
'@tmcp/transport-stdio@0.4.1':
resolution: {integrity: sha512-464x8HNrvjLLtKZsrFWUL13GnBFFtrNoWxnE0rHbcmQSYRqtS8WseWtQCYstj2Vcg9kRlIUVFGDIljGNP4/N4A==}
'@tmcp/transport-stdio@0.4.2':
resolution: {integrity: sha512-OLVLJzUXAKsCvenkjPf5ygli9ZcbEv3Lcei/ry+DB4T1NzvDc1oU3m41zYtHhAmbES1h6om3T9f/zonBSDFMRQ==}
peerDependencies:
tmcp: ^1.16.3
@@ -1768,15 +1840,6 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
'@types/eslint-scope@8.4.0':
resolution: {integrity: sha512-RhVLLrJB96ufa3O58HBsOd4IVVaYN7gBIn7K9fxHQBB++AJYOWNQcevpHDIVVw6YD0Ycup/XodUlZ3ZntVrqhA==}
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
'@types/esrecurse@4.3.1':
resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
@@ -1795,6 +1858,9 @@ packages:
'@types/node@24.10.9':
resolution: {integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==}
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
'@typescript-eslint/eslint-plugin@8.54.0':
resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1996,8 +2062,8 @@ packages:
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
engines: {node: '>=10'}
aria-query@5.3.2:
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
aria-query@5.3.1:
resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==}
engines: {node: '>= 0.4'}
array-buffer-byte-length@1.0.2:
@@ -2297,6 +2363,9 @@ packages:
devalue@5.6.2:
resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==}
devalue@5.8.1:
resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==}
diff@4.0.4:
resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==}
engines: {node: '>=0.3.1'}
@@ -2455,6 +2524,16 @@ packages:
svelte:
optional: true
eslint-plugin-svelte@3.19.0:
resolution: {integrity: sha512-t3rNaZeXz4d2gG4uJyMEYfJCFKf22+SWbSizIIXIWKu4wM+XPLiMWuSSr/C5821JmFeN9ogK+eExbG+z+twyxw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.1 || ^9.0.0 || ^10.0.0
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
peerDependenciesMeta:
svelte:
optional: true
eslint-scope@8.4.0:
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2501,8 +2580,13 @@ packages:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
esrap@2.2.2:
resolution: {integrity: sha512-zA6497ha+qKvoWIK+WM9NAh5ni17sKZKhbS5B3PoYbBvaYHZWoS33zmFybmyqpn07RLUxSmn+RCls2/XF+d0oQ==}
esrap@2.2.11:
resolution: {integrity: sha512-gPdx+I+BjYEinNMQaBXFjbaJVyoPMU4ZODg5mE+M4DqVG9VusAVHHjcBX+zqyITlI0DIARwDMMzZwAWj36dRoQ==}
peerDependencies:
'@typescript-eslint/types': ^8.2.0
peerDependenciesMeta:
'@typescript-eslint/types':
optional: true
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -3717,17 +3801,17 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0'
svelte-eslint-parser@1.4.1:
resolution: {integrity: sha512-1eqkfQ93goAhjAXxZiu1SaKI9+0/sxp4JIWQwUpsz7ybehRE5L8dNuz7Iry7K22R47p5/+s9EM+38nHV2OlgXA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.24.0}
svelte-eslint-parser@1.7.1:
resolution: {integrity: sha512-mmwwKL9L/MB0QyBKdfyWxGjDuQfEyzxWy5S9Kkd0O/V5XD57MQ33KQtXrO6vKLuP6PIt8CRozvOX1mxpcRTqUg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.1}
peerDependencies:
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
peerDependenciesMeta:
svelte:
optional: true
svelte@5.48.4:
resolution: {integrity: sha512-JV3E7ckuQwxGVm9GbECVtgrs57E9uDz95H2mYpo38QIJd+ET2aR8zDK/iWI8J7VJtib4bwnJ3MMc6FKBJ0hGrQ==}
svelte@5.56.1:
resolution: {integrity: sha512-eArsJmvl3xZVuTYD852PzIEdg2wgDdIZ1NEsIPbzAukHwi284B18No4nK2rCO9AwsWUDza4Cjvmoa4HaojTl5g==}
engines: {node: '>=18'}
tailwind-merge@2.6.0:
@@ -3757,8 +3841,8 @@ packages:
resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
engines: {node: '>=14.0.0'}
tmcp@1.19.2:
resolution: {integrity: sha512-/AEG/jlzflGKqCKm7GNdhz50VtFlN+3vcnKd+iQJXcHdIPrpCRMolEj57SfgcXcfE2ouX7J6Q05gPKsS2NZhKg==}
tmcp@1.19.3:
resolution: {integrity: sha512-plz/TLKNFrdfQN32LjCTN6ULy6pynfGPgHcU7KGCI5dBrxQ9Mub99SmcYuzxEkLjJooQuOD3gosSwZEl1htOtw==}
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
@@ -5351,13 +5435,17 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
'@sveltejs/acorn-typescript@1.0.10(acorn@8.15.0)':
dependencies:
acorn: 8.15.0
'@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)':
dependencies:
acorn: 8.15.0
'@sveltejs/adapter-vercel@6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)':
'@sveltejs/adapter-vercel@6.3.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(rollup@4.57.0)':
dependencies:
'@sveltejs/kit': 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/kit': 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@vercel/nft': 1.3.0(rollup@4.57.0)
esbuild: 0.25.12
transitivePeerDependencies:
@@ -5365,11 +5453,11 @@ snapshots:
- rollup
- supports-color
'@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
'@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
dependencies:
'@standard-schema/spec': 1.1.0
'@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@types/cookie': 0.6.0
acorn: 8.15.0
cookie: 0.6.0
@@ -5381,25 +5469,25 @@ snapshots:
sade: 1.8.1
set-cookie-parser: 2.7.2
sirv: 3.0.2
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
vite: 7.3.1(@types/node@24.10.9)(yaml@2.8.2)
optionalDependencies:
typescript: 5.9.3
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
dependencies:
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
obug: 2.1.1
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
vite: 7.3.1(@types/node@24.10.9)(yaml@2.8.2)
'@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
'@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
deepmerge: 4.3.1
magic-string: 0.30.21
obug: 2.1.1
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
vite: 7.3.1(@types/node@24.10.9)(yaml@2.8.2)
vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
@@ -5410,31 +5498,31 @@ snapshots:
transitivePeerDependencies:
- encoding
'@tmcp/adapter-valibot@0.1.5(tmcp@1.19.2(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3))':
'@tmcp/adapter-valibot@0.1.5(tmcp@1.19.3(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3))':
dependencies:
'@standard-schema/spec': 1.1.0
'@valibot/to-json-schema': 1.5.0(valibot@1.2.0(typescript@5.9.3))
tmcp: 1.19.2(typescript@5.9.3)
tmcp: 1.19.3(typescript@5.9.3)
valibot: 1.2.0(typescript@5.9.3)
'@tmcp/session-manager@0.2.1(tmcp@1.19.2(typescript@5.9.3))':
'@tmcp/session-manager@0.2.1(tmcp@1.19.3(typescript@5.9.3))':
dependencies:
tmcp: 1.19.2(typescript@5.9.3)
tmcp: 1.19.3(typescript@5.9.3)
'@tmcp/transport-http@0.8.4(tmcp@1.19.2(typescript@5.9.3))':
'@tmcp/transport-http@0.8.5(tmcp@1.19.3(typescript@5.9.3))':
dependencies:
'@tmcp/session-manager': 0.2.1(tmcp@1.19.2(typescript@5.9.3))
'@tmcp/session-manager': 0.2.1(tmcp@1.19.3(typescript@5.9.3))
esm-env: 1.2.2
tmcp: 1.19.2(typescript@5.9.3)
tmcp: 1.19.3(typescript@5.9.3)
'@tmcp/transport-in-memory@0.0.5(tmcp@1.19.2(typescript@5.9.3))':
'@tmcp/transport-in-memory@0.0.6(tmcp@1.19.3(typescript@5.9.3))':
dependencies:
json-rpc-2.0: 1.7.1
tmcp: 1.19.2(typescript@5.9.3)
tmcp: 1.19.3(typescript@5.9.3)
'@tmcp/transport-stdio@0.4.1(tmcp@1.19.2(typescript@5.9.3))':
'@tmcp/transport-stdio@0.4.2(tmcp@1.19.3(typescript@5.9.3))':
dependencies:
tmcp: 1.19.2(typescript@5.9.3)
tmcp: 1.19.3(typescript@5.9.3)
'@tsconfig/node10@1.0.12': {}
@@ -5458,20 +5546,6 @@ snapshots:
'@types/deep-eql@4.0.2': {}
'@types/eslint-scope@8.4.0':
dependencies:
'@types/eslint': 9.6.1
'@types/esrecurse': 4.3.1
'@types/estree': 1.0.8
eslint-visitor-keys: 5.0.0
'@types/eslint@9.6.1':
dependencies:
'@types/estree': 1.0.8
'@types/json-schema': 7.0.15
'@types/esrecurse@4.3.1': {}
'@types/estree@1.0.8': {}
'@types/jsesc@2.5.1': {}
@@ -5486,6 +5560,8 @@ snapshots:
dependencies:
undici-types: 7.16.0
'@types/trusted-types@2.0.7': {}
'@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
@@ -5581,11 +5657,11 @@ snapshots:
dependencies:
valibot: 1.2.0(typescript@5.9.3)
'@vercel/analytics@2.0.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(react@18.3.1)(svelte@5.48.4)':
'@vercel/analytics@2.0.1(@sveltejs/kit@2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(react@18.3.1)(svelte@5.56.1(@typescript-eslint/types@8.54.0))':
optionalDependencies:
'@sveltejs/kit': 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.4)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.48.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
'@sveltejs/kit': 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.1(@typescript-eslint/types@8.54.0))(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2)))(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(yaml@2.8.2))
react: 18.3.1
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
'@vercel/nft@1.3.0(rollup@4.57.0)':
dependencies:
@@ -5708,7 +5784,7 @@ snapshots:
dependencies:
tslib: 2.8.1
aria-query@5.3.2: {}
aria-query@5.3.1: {}
array-buffer-byte-length@1.0.2:
dependencies:
@@ -6004,6 +6080,8 @@ snapshots:
devalue@5.6.2: {}
devalue@5.8.1: {}
diff@4.0.4: {}
dir-glob@3.0.1:
@@ -6199,16 +6277,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.2):
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.9.3)
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.32.0(eslint@9.39.2):
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -6219,7 +6298,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.2
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.39.2)
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -6230,6 +6309,8 @@ snapshots:
semver: 6.3.1
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.9.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -6246,7 +6327,7 @@ snapshots:
yaml: 2.8.2
yaml-eslint-parser: 2.0.0
eslint-plugin-svelte@3.14.0(eslint@9.39.2)(svelte@5.48.4)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)):
eslint-plugin-svelte@3.14.0(eslint@9.39.2)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2)
'@jridgewell/sourcemap-codec': 1.5.5
@@ -6258,9 +6339,27 @@ snapshots:
postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
postcss-safe-parser: 7.0.1(postcss@8.5.6)
semver: 7.7.3
svelte-eslint-parser: 1.4.1(svelte@5.48.4)
svelte-eslint-parser: 1.7.1(svelte@5.56.1(@typescript-eslint/types@8.54.0))
optionalDependencies:
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
transitivePeerDependencies:
- ts-node
eslint-plugin-svelte@3.19.0(eslint@9.39.2)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2)
'@jridgewell/sourcemap-codec': 1.5.5
eslint: 9.39.2
esutils: 2.0.3
globals: 16.5.0
known-css-properties: 0.37.0
postcss: 8.5.6
postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))
postcss-safe-parser: 7.0.1(postcss@8.5.6)
semver: 7.7.3
svelte-eslint-parser: 1.7.1(svelte@5.56.1(@typescript-eslint/types@8.54.0))
optionalDependencies:
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
transitivePeerDependencies:
- ts-node
@@ -6334,9 +6433,11 @@ snapshots:
dependencies:
estraverse: 5.3.0
esrap@2.2.2:
esrap@2.2.11(@typescript-eslint/types@8.54.0):
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
optionalDependencies:
'@typescript-eslint/types': 8.54.0
esrecurse@4.3.0:
dependencies:
@@ -7128,10 +7229,10 @@ snapshots:
prelude-ls@1.2.1: {}
prettier-plugin-svelte@3.4.1(prettier@3.8.1)(svelte@5.48.4):
prettier-plugin-svelte@3.4.1(prettier@3.8.1)(svelte@5.56.1(@typescript-eslint/types@8.54.0)):
dependencies:
prettier: 3.8.1
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
prettier@2.8.8: {}
@@ -7561,19 +7662,19 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.48.4)(typescript@5.9.3):
svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.56.1(@typescript-eslint/types@8.54.0))(typescript@5.9.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
chokidar: 4.0.3
fdir: 6.5.0(picomatch@4.0.3)
picocolors: 1.1.1
sade: 1.8.1
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
typescript: 5.9.3
transitivePeerDependencies:
- picomatch
svelte-eslint-parser@1.4.1(svelte@5.48.4):
svelte-eslint-parser@1.7.1(svelte@5.56.1(@typescript-eslint/types@8.54.0)):
dependencies:
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -7581,26 +7682,30 @@ snapshots:
postcss: 8.5.6
postcss-scss: 4.0.9(postcss@8.5.6)
postcss-selector-parser: 7.1.1
semver: 7.7.3
optionalDependencies:
svelte: 5.48.4
svelte: 5.56.1(@typescript-eslint/types@8.54.0)
svelte@5.48.4:
svelte@5.56.1(@typescript-eslint/types@8.54.0):
dependencies:
'@jridgewell/remapping': 2.3.5
'@jridgewell/sourcemap-codec': 1.5.5
'@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
'@sveltejs/acorn-typescript': 1.0.10(acorn@8.15.0)
'@types/estree': 1.0.8
'@types/trusted-types': 2.0.7
acorn: 8.15.0
aria-query: 5.3.2
aria-query: 5.3.1
axobject-query: 4.1.0
clsx: 2.1.1
devalue: 5.6.2
devalue: 5.8.1
esm-env: 1.2.2
esrap: 2.2.2
esrap: 2.2.11(@typescript-eslint/types@8.54.0)
is-reference: 3.0.3
locate-character: 3.0.0
magic-string: 0.30.21
zimmerframe: 1.1.4
transitivePeerDependencies:
- '@typescript-eslint/types'
tailwind-merge@2.6.0: {}
@@ -7625,7 +7730,7 @@ snapshots:
tinyrainbow@3.0.3: {}
tmcp@1.19.2(typescript@5.9.3):
tmcp@1.19.3(typescript@5.9.3):
dependencies:
'@standard-schema/spec': 1.1.0
json-rpc-2.0: 1.7.1

View File

@@ -1,6 +1,7 @@
packages:
- ./packages/*
- ./apps/*
blockExoticSubdeps: true
catalogs:
ai:
@@ -11,31 +12,30 @@ catalogs:
lint:
'@eslint/compat': ^2.0.0
'@eslint/js': ^9.36.0
'@types/eslint-scope': ^8.3.2
'@typescript-eslint/parser': ^8.44.0
'@typescript-eslint/types': ^8.44.0
eslint: ^9.36.0
eslint-config-prettier: ^10.0.1
eslint-plugin-import: ^2.32.0
eslint-plugin-pnpm: ^1.3.0
eslint-plugin-svelte: ^3.12.5
eslint-plugin-svelte: ^3.19.0
globals: ^17.0.0
prettier: ^3.4.2
prettier-plugin-svelte: ^3.3.3
svelte-eslint-parser: ^1.4.0
svelte-eslint-parser: ^1.7.1
typescript-eslint: ^8.44.0
svelte:
'@sveltejs/adapter-vercel': ^6.0.0
'@sveltejs/kit': ^2.42.2
'@sveltejs/vite-plugin-svelte': ^6.0.0
svelte: ^5.47.0
svelte: ^5.56.1
svelte-check: ^4.0.0
tmcp:
'@tmcp/adapter-valibot': ^0.1.4
'@tmcp/transport-http': ^0.8.4
'@tmcp/transport-in-memory': ^0.0.5
'@tmcp/transport-stdio': ^0.4.0
tmcp: ^1.19.0
'@tmcp/adapter-valibot': ^0.1.5
'@tmcp/transport-http': ^0.8.5
'@tmcp/transport-in-memory': ^0.0.6
'@tmcp/transport-stdio': ^0.4.2
tmcp: ^1.19.3
tooling:
'@changesets/cli': ^2.29.7
'@svitejs/changesets-changelog-github-compact': ^1.2.0
@@ -55,5 +55,16 @@ catalogs:
vite-plugin-devtools-json: ^1.0.0
vitest: ^4.0.0
zimmerframe: ^1.1.4
engineStrict: true
minimumReleaseAge: 2880
minimumReleaseAgeExclude:
- '@sveltejs/*'
- svelte
- esrap
- devalue
- zimmerframe
- prettier-plugin-svelte
- svelte-check
- esm-env
useNodeVersion: 22.19.0