From e3794491a423919a92e656989c0caba76737af56 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:08:58 +0200 Subject: [PATCH 01/99] Update .cocoignore --- .cocoignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cocoignore b/.cocoignore index 0e2ab02e..fc0ef7ba 100644 --- a/.cocoignore +++ b/.cocoignore @@ -1,3 +1,4 @@ .claude .github -.vscode \ No newline at end of file +.vscode +documentation/ \ No newline at end of file From 20bfbe09e313a75fd3308aa3ce71ea9901bf56ca Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:18:08 +0200 Subject: [PATCH 02/99] wip --- packages/mcp-server/package.json | 1 + .../scripts/generate-summaries.test.ts | 384 +++++++++++++ .../mcp-server/scripts/generate-summaries.ts | 526 +++++++++++++----- packages/mcp-server/src/lib/anthropic.ts | 2 +- packages/mcp-server/src/mcp/utils.ts | 2 +- pnpm-lock.yaml | 24 +- 6 files changed, 783 insertions(+), 156 deletions(-) create mode 100644 packages/mcp-server/scripts/generate-summaries.test.ts diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 6c2125a6..58f16120 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -23,6 +23,7 @@ "@sveltejs/mcp-schema": "workspace:^", "@tmcp/adapter-valibot": "^0.1.4", "@typescript-eslint/parser": "^8.44.0", + "commander": "^13.1.0", "eslint": "^9.36.0", "eslint-plugin-svelte": "^3.12.3", "svelte": "^5.39.2", diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts new file mode 100644 index 00000000..33badba6 --- /dev/null +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -0,0 +1,384 @@ +import { describe, it, expect, beforeEach, afterEach } from 'vitest'; +import { writeFile, mkdir, rm, readFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import type { SummaryData } from '../src/lib/schemas.ts'; + +const current_filename = fileURLToPath(import.meta.url); +const current_dirname = path.dirname(current_filename); +const test_output_dir = path.join(current_dirname, '../test-output'); +const test_use_cases_path = path.join(test_output_dir, 'use_cases.json'); + +function create_summary_data( + summaries: Record, + total_sections: number = Object.keys(summaries).length, +): SummaryData { + return { + generated_at: new Date().toISOString(), + model: 'claude-sonnet-4-5-20250929', + total_sections, + successful_summaries: Object.keys(summaries).length, + failed_summaries: 0, + summaries, + }; +} + +describe('generate-summaries incremental processing', () => { + beforeEach(async () => { + // Create test output directory + await mkdir(test_output_dir, { recursive: true }); + }); + + afterEach(async () => { + // Clean up test output directory + try { + await rm(test_output_dir, { recursive: true, force: true }); + } catch { + // Ignore cleanup errors + } + }); + + describe('file operations', () => { + it('should create use_cases.json if it does not exist', async () => { + const initial_data = create_summary_data({ + 'svelte/overview': 'always, any svelte project', + }); + + await writeFile(test_use_cases_path, JSON.stringify(initial_data, null, 2), 'utf-8'); + + const content = await readFile(test_use_cases_path, 'utf-8'); + const data = JSON.parse(content); + + expect(data.summaries).toHaveProperty('svelte/overview'); + expect(data.total_sections).toBe(1); + }); + + it('should load existing use_cases.json', async () => { + const existing_data = create_summary_data({ + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + }); + + await writeFile(test_use_cases_path, JSON.stringify(existing_data, null, 2), 'utf-8'); + + const content = await readFile(test_use_cases_path, 'utf-8'); + const data = JSON.parse(content); + + expect(Object.keys(data.summaries)).toHaveLength(2); + expect(data.summaries).toHaveProperty('svelte/overview'); + expect(data.summaries).toHaveProperty('svelte/$state'); + }); + + it('should handle malformed use_cases.json gracefully', async () => { + await writeFile(test_use_cases_path, '{ invalid json', 'utf-8'); + + // Should throw when trying to parse + const content = await readFile(test_use_cases_path, 'utf-8'); + expect(() => JSON.parse(content)).toThrow(); + }); + }); + + describe('change detection', () => { + it('should detect new sections', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + }; + + const current_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, // New section + ]; + + const existing_slugs = new Set(Object.keys(existing_summaries)); + const new_sections = current_sections.filter((s) => !existing_slugs.has(s.slug)); + + expect(new_sections).toHaveLength(1); + expect(new_sections[0]?.slug).toBe('svelte/$state'); + }); + + it('should detect removed sections', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + 'svelte/old-api': 'deprecated', + }; + + const current_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + ]; + + const current_slugs = new Set(current_sections.map((s) => s.slug)); + const removed_sections = Object.keys(existing_summaries).filter( + (slug) => !current_slugs.has(slug), + ); + + expect(removed_sections).toHaveLength(1); + expect(removed_sections[0]).toBe('svelte/old-api'); + }); + + it('should detect no changes when sections are identical', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + }; + + const current_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + ]; + + const existing_slugs = new Set(Object.keys(existing_summaries)); + const current_slugs = new Set(current_sections.map((s) => s.slug)); + + const new_sections = current_sections.filter((s) => !existing_slugs.has(s.slug)); + const removed_sections = Object.keys(existing_summaries).filter( + (slug) => !current_slugs.has(slug), + ); + + expect(new_sections).toHaveLength(0); + expect(removed_sections).toHaveLength(0); + }); + }); + + describe('merging summaries', () => { + it('should merge new summaries with existing ones', async () => { + const existing_data = create_summary_data({ + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + }); + + const new_summaries = { + 'kit/introduction': 'sveltekit, getting started', + }; + + const merged = { ...existing_data.summaries, ...new_summaries }; + + expect(Object.keys(merged)).toHaveLength(3); + expect(merged).toHaveProperty('svelte/overview'); + expect(merged).toHaveProperty('svelte/$state'); + expect(merged).toHaveProperty('kit/introduction'); + }); + + it('should override existing summaries when updating', () => { + const existing_summaries = { + 'svelte/overview': 'old description', + }; + + const new_summaries = { + 'svelte/overview': 'new description', + }; + + const merged = { ...existing_summaries, ...new_summaries }; + + expect(merged['svelte/overview']).toBe('new description'); + }); + + it('should remove deleted sections from summaries', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + 'svelte/old-api': 'deprecated', + }; + + const to_remove = ['svelte/old-api']; + const merged = { ...existing_summaries }; + + for (const slug of to_remove) { + delete merged[slug]; + } + + expect(Object.keys(merged)).toHaveLength(2); + expect(merged).not.toHaveProperty('svelte/old-api'); + expect(merged).toHaveProperty('svelte/overview'); + expect(merged).toHaveProperty('svelte/$state'); + }); + }); + + describe('CLI argument parsing', () => { + it('should parse --force flag', () => { + const args = ['--force']; + const has_force = args.includes('--force'); + + expect(has_force).toBe(true); + }); + + it('should parse --dry-run flag', () => { + const args = ['--dry-run']; + const has_dry_run = args.includes('--dry-run'); + + expect(has_dry_run).toBe(true); + }); + + it('should parse --sections flag with section names', () => { + const args = ['--sections', 'svelte/overview', 'svelte/$state']; + const sections_index = args.indexOf('--sections'); + + const sections: string[] = []; + if (sections_index !== -1) { + for (let i = sections_index + 1; i < args.length; i++) { + if (args[i]?.startsWith('--')) break; + sections.push(args[i]!); + } + } + + expect(sections).toHaveLength(2); + expect(sections).toContain('svelte/overview'); + expect(sections).toContain('svelte/$state'); + }); + + it('should handle multiple flags together', () => { + const args = ['--force', '--dry-run', '--sections', 'svelte/overview']; + + expect(args.includes('--force')).toBe(true); + expect(args.includes('--dry-run')).toBe(true); + expect(args.includes('--sections')).toBe(true); + }); + }); + + describe('summary data validation', () => { + it('should create valid summary data structure', () => { + const data = create_summary_data({ + 'svelte/overview': 'always, any svelte project', + }); + + expect(data).toHaveProperty('generated_at'); + expect(data).toHaveProperty('model'); + expect(data).toHaveProperty('total_sections'); + expect(data).toHaveProperty('successful_summaries'); + expect(data).toHaveProperty('failed_summaries'); + expect(data).toHaveProperty('summaries'); + }); + + it('should track failed summaries', () => { + const data: SummaryData = { + generated_at: new Date().toISOString(), + model: 'claude-sonnet-4-5-20250929', + total_sections: 3, + successful_summaries: 2, + failed_summaries: 1, + summaries: { + 'svelte/overview': 'always', + 'svelte/$state': 'reactivity', + }, + errors: [{ section: 'svelte/broken', error: 'Failed to fetch' }], + }; + + expect(data.failed_summaries).toBe(1); + expect(data.errors).toHaveLength(1); + }); + }); + + describe('specific section processing', () => { + it('should only process specified sections when --sections flag is used', () => { + const all_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + { slug: 'kit/introduction', title: 'Introduction' }, + ]; + + const specified_sections = ['svelte/$state']; + const to_process = all_sections.filter((s) => specified_sections.includes(s.slug)); + + expect(to_process).toHaveLength(1); + expect(to_process[0]?.slug).toBe('svelte/$state'); + }); + + it('should process multiple specified sections', () => { + const all_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + { slug: 'kit/introduction', title: 'Introduction' }, + ]; + + const specified_sections = ['svelte/overview', 'kit/introduction']; + const to_process = all_sections.filter((s) => specified_sections.includes(s.slug)); + + expect(to_process).toHaveLength(2); + }); + }); + + describe('force regeneration', () => { + it('should process all sections when --force is used', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + }; + + const all_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + ]; + + const force = true; + const to_process = force + ? all_sections + : all_sections.filter((s) => !existing_summaries[s.slug]); + + expect(to_process).toHaveLength(2); // All sections even though one exists + }); + + it('should only process new sections when --force is not used', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + }; + + const all_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + ]; + + const force = false; + const existing_slugs = new Set(Object.keys(existing_summaries)); + const to_process = force + ? all_sections + : all_sections.filter((s) => !existing_slugs.has(s.slug)); + + expect(to_process).toHaveLength(1); // Only new section + expect(to_process[0]?.slug).toBe('svelte/$state'); + }); + }); + + describe('edge cases', () => { + it('should handle empty existing summaries', () => { + const existing_summaries: Record = {}; + const all_sections = [ + { slug: 'svelte/overview', title: 'Overview' }, + { slug: 'svelte/$state', title: '$state' }, + ]; + + const existing_slugs = new Set(Object.keys(existing_summaries)); + const new_sections = all_sections.filter((s) => !existing_slugs.has(s.slug)); + + expect(new_sections).toHaveLength(2); + }); + + it('should handle empty current sections', () => { + const existing_summaries = { + 'svelte/overview': 'always, any svelte project', + 'svelte/$state': 'reactivity, state management', + }; + + const current_sections: Array<{ slug: string; title: string }> = []; + + const current_slugs = new Set(current_sections.map((s) => s.slug)); + const removed_sections = Object.keys(existing_summaries).filter( + (slug) => !current_slugs.has(slug), + ); + + expect(removed_sections).toHaveLength(2); // All existing should be removed + }); + + it('should handle sections with special characters in slugs', () => { + const sections = [ + { slug: 'svelte/$state', title: '$state' }, + { slug: 'svelte/@html', title: '@html' }, + ]; + + const existing_slugs = new Set(['svelte/$state']); + const new_sections = sections.filter((s) => !existing_slugs.has(s.slug)); + + expect(new_sections).toHaveLength(1); + expect(new_sections[0]?.slug).toBe('svelte/@html'); + }); + }); +}); diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 3acd082e..227fa34f 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -1,11 +1,17 @@ #!/usr/bin/env node import 'dotenv/config'; -import { writeFile, mkdir } from 'fs/promises'; -import path from 'path'; -import { fileURLToPath } from 'url'; +import { writeFile, mkdir, readFile, access } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { Command } from 'commander'; import { get_sections } from '../src/mcp/utils.ts'; import { AnthropicProvider } from '../src/lib/anthropic.ts'; -import { type AnthropicBatchRequest, type SummaryData } from '../src/lib/schemas.ts'; +import { + type AnthropicBatchRequest, + type SummaryData, + summary_data_schema, +} from '../src/lib/schemas.ts'; +import * as v from 'valibot'; const current_filename = fileURLToPath(import.meta.url); const current_dirname = path.dirname(current_filename); @@ -54,6 +60,25 @@ Here is the documentation page content to analyze: `; +// Setup CLI using Commander +const program = new Command(); + +program + .name('generate-summaries') + .description('Generate use case summaries for Svelte documentation sections') + .version('1.0.0') + .option('-f, --force', 'Force regeneration of all summaries', false) + .option('-d, --dry-run', 'Show what would be changed without making API calls', false) + .option('-s, --sections ', 'Specific section slugs to process (space-separated)', []) + .option('--debug', 'Debug mode: process only 2 sections', false); + +interface CliOptions { + force: boolean; + dryRun: boolean; + sections: string[]; + debug: boolean; +} + async function fetch_section_content(url: string) { const response = await fetch(url, { signal: AbortSignal.timeout(30000) }); if (!response.ok) { @@ -62,179 +87,388 @@ async function fetch_section_content(url: string) { return await response.text(); } -async function main() { - console.log('πŸš€ Starting use cases generation...'); +async function file_exists(filepath: string): Promise { + try { + await access(filepath); + return true; + } catch { + return false; + } +} - // Check for API key - const api_key = process.env.ANTHROPIC_API_KEY; - if (!api_key) { - console.error('❌ Error: ANTHROPIC_API_KEY environment variable is required'); - console.error('Please set it in packages/mcp-server/.env file or export it:'); - console.error('export ANTHROPIC_API_KEY=your_api_key_here'); - process.exit(1); +async function load_existing_summaries(output_path: string): Promise { + if (!(await file_exists(output_path))) { + return null; } - // Get all sections - console.log('πŸ“š Fetching documentation sections...'); - let sections = await get_sections(); - console.log(`Found ${sections.length} sections`); - - // Debug mode: limit to 2 sections - const debug_mode = process.env.DEBUG_MODE === '1'; - if (debug_mode) { - console.log('πŸ› DEBUG_MODE enabled - processing only 2 sections'); - sections = sections.slice(0, 2); - } - - // Fetch content for each section - console.log('πŸ“₯ Downloading section content...'); - const sections_with_content: Array<{ - section: (typeof sections)[number]; - content: string; - index: number; - }> = []; - const download_errors: Array<{ section: string; error: string }> = []; - - for (let i = 0; i < sections.length; i++) { - const section = sections[i]!; - try { - console.log(`Fetching ${i + 1}/${sections.length}: ${section.title}`); - const content = await fetch_section_content(section.url); - sections_with_content.push({ - section, - content, - index: i, - }); - } catch (error) { - const error_msg = error instanceof Error ? error.message : String(error); - console.error(`⚠️ Failed to fetch ${section.title}:`, error_msg); - download_errors.push({ section: section.title, error: error_msg }); + try { + const content = await readFile(output_path, 'utf-8'); + const data = JSON.parse(content); + const validated = v.safeParse(summary_data_schema, data); + + if (!validated.success) { + console.warn('⚠️ Existing use_cases.json is malformed, treating as empty'); + return null; } + + return validated.output; + } catch (error) { + console.warn('⚠️ Failed to read existing use_cases.json:', error); + return null; } +} - console.log(`βœ… Successfully downloaded ${sections_with_content.length} sections`); +interface SectionChange { + slug: string; + title: string; + url: string; + change_type: 'new' | 'updated' | 'removed'; +} - if (sections_with_content.length === 0) { - console.error('❌ No sections were successfully downloaded'); - process.exit(1); +function detect_changes( + current_sections: Array<{ slug: string; title: string; url: string }>, + existing_data: SummaryData | null, + force: boolean, + specific_sections: string[], +): { + to_process: Array<{ slug: string; title: string; url: string }>; + to_remove: string[]; + changes: SectionChange[]; +} { + if (!existing_data || force) { + // First run or force regeneration + const sections_to_process = + specific_sections.length > 0 + ? current_sections.filter((s) => specific_sections.includes(s.slug)) + : current_sections; + + return { + to_process: sections_to_process, + to_remove: [], + changes: sections_to_process.map((s) => ({ + ...s, + change_type: force ? 'updated' : 'new', + })), + }; } - // Initialize Anthropic client - console.log('πŸ€– Initializing Anthropic API...'); - const anthropic = new AnthropicProvider('claude-sonnet-4-5-20250929', api_key); - - // Prepare batch requests - console.log('πŸ“¦ Preparing batch requests...'); - const batch_requests: AnthropicBatchRequest[] = sections_with_content.map( - ({ content, index }) => ({ - custom_id: `section-${index}`, - params: { - model: anthropic.get_model_identifier(), - max_tokens: 250, - messages: [ - { - role: 'user', - content: USE_CASES_PROMPT + content, - }, - ], - temperature: 0, - }, - }), - ); + const existing_summaries = existing_data.summaries; + const existing_slugs = new Set(Object.keys(existing_summaries)); + const current_slugs = new Set(current_sections.map((s) => s.slug)); - // Create and process batch - console.log('πŸš€ Creating batch job...'); - const batch_response = await anthropic.create_batch(batch_requests); - console.log(`βœ… Batch created with ID: ${batch_response.id}`); + const new_sections: typeof current_sections = []; + const changes: SectionChange[] = []; - // Poll for completion - console.log('⏳ Waiting for batch to complete...'); - let batch_status = await anthropic.get_batch_status(batch_response.id); + // Find new and potentially updated sections + for (const section of current_sections) { + if (!existing_slugs.has(section.slug)) { + new_sections.push(section); + changes.push({ ...section, change_type: 'new' }); + } + // You could add logic here to detect updated sections based on title changes, etc. + } - while (batch_status.processing_status === 'in_progress') { - const { succeeded, processing, errored } = batch_status.request_counts; - console.log(` Progress: ${succeeded} succeeded, ${processing} processing, ${errored} errored`); - await new Promise((resolve) => setTimeout(resolve, 5000)); - batch_status = await anthropic.get_batch_status(batch_response.id); + // Find removed sections + const removed_slugs: string[] = []; + for (const slug of existing_slugs) { + if (!current_slugs.has(slug)) { + removed_slugs.push(slug); + changes.push({ + slug, + title: '', + url: '', + change_type: 'removed', + }); + } } - console.log('βœ… Batch processing completed!'); + // If specific sections requested, filter to only those + const to_process = + specific_sections.length > 0 + ? current_sections.filter((s) => specific_sections.includes(s.slug)) + : new_sections; + + return { + to_process, + to_remove: removed_slugs, + changes, + }; +} + +async function main() { + program.parse(); + const options = program.opts(); + + // Allow DEBUG_MODE env var as well + const debug = options.debug || process.env.DEBUG_MODE === '1'; + + console.log('πŸš€ Starting use cases generation...'); + + const output_path = path.join(current_dirname, '../src/use_cases.json'); - // Get results - if (!batch_status.results_url) { - throw new Error('Batch completed but no results URL available'); + // Display mode information + if (options.dryRun) { + console.log('πŸ” DRY RUN MODE - No API calls will be made\n'); + } + if (options.force) { + console.log('⚑ FORCE MODE - Regenerating all summaries\n'); + } + if (options.sections.length > 0) { + console.log(`πŸ“Œ Processing specific sections: ${options.sections.join(', ')}\n`); + } + if (debug) { + console.log('πŸ› DEBUG MODE - Will process only 2 sections\n'); } - console.log('πŸ“₯ Downloading results...'); - const results = await anthropic.get_batch_results(batch_status.results_url); + // Load existing summaries + console.log('πŸ“‚ Loading existing summaries...'); + const existing_data = await load_existing_summaries(output_path); - // Process results - console.log('πŸ“Š Processing results...'); - const summaries: Record = {}; - const errors: Array<{ section: string; error: string }> = []; + if (existing_data) { + console.log( + `βœ… Found existing summaries with ${Object.keys(existing_data.summaries).length} entries`, + ); + } else { + console.log('πŸ“ No existing summaries found - will process all sections'); + } - for (const result of results) { - const index = parseInt(result.custom_id.split('-')[1] ?? '0'); - const section_data = sections_with_content.find((s) => s.index === index); + // Get all sections from API + console.log('πŸ“š Fetching documentation sections...'); + const all_sections = await get_sections(); + console.log(`Found ${all_sections.length} sections from API`); + + // Detect what needs to be processed + const { to_process, to_remove, changes } = detect_changes( + all_sections, + existing_data, + options.force, + options.sections, + ); - if (!section_data) { - console.warn(`⚠️ Could not find section for index ${index}`); - continue; + // Display changes + console.log('\nπŸ“Š Change Summary:'); + const new_count = changes.filter((c) => c.change_type === 'new').length; + const updated_count = changes.filter((c) => c.change_type === 'updated').length; + const removed_count = changes.filter((c) => c.change_type === 'removed').length; + + console.log(` ✨ New sections: ${new_count}`); + console.log(` πŸ”„ Updated sections: ${updated_count}`); + console.log(` ❌ Removed sections: ${removed_count}`); + console.log(` πŸ“ To process: ${to_process.length}`); + + if (changes.length > 0) { + console.log('\nπŸ“‹ Detailed changes:'); + for (const change of changes) { + const emoji = + change.change_type === 'new' ? ' ✨' : change.change_type === 'updated' ? ' πŸ”„' : ' ❌'; + console.log(`${emoji} [${change.change_type.toUpperCase()}] ${change.slug}`); } + } + + // Exit early if nothing to do + if (to_process.length === 0 && to_remove.length === 0) { + console.log('\nβœ… No changes detected - everything is up to date!'); + return; + } + + // Debug mode: limit sections + let sections_to_process = to_process; + if (debug && !options.sections.length) { + console.log('\nπŸ› Processing only 2 sections for debugging'); + sections_to_process = to_process.slice(0, 2); + } - const { section } = section_data; + // Dry run mode: exit before API calls + if (options.dryRun) { + console.log('\nπŸ” DRY RUN complete - no changes were made'); + console.log(`Would have processed ${sections_to_process.length} sections`); + console.log(`Would have removed ${to_remove.length} sections`); + return; + } - if (result.result.type !== 'succeeded' || !result.result.message) { - const error_msg = result.result.error?.message || 'Failed or no message'; - console.error(` ❌ ${section.title}: ${error_msg}`); - errors.push({ section: section.title, error: error_msg }); - continue; + if (sections_to_process.length === 0) { + console.log('\nπŸ“¦ Only removing old sections, no API calls needed'); + } else { + // Check for API key + const api_key = process.env.ANTHROPIC_API_KEY; + if (!api_key) { + console.error('❌ Error: ANTHROPIC_API_KEY environment variable is required'); + console.error('Please set it in packages/mcp-server/.env file or export it:'); + console.error('export ANTHROPIC_API_KEY=your_api_key_here'); + process.exit(1); } - const output_content = result.result.message.content[0]?.text; - if (output_content) { - summaries[section.slug] = output_content.trim(); - console.log(` βœ… ${section.title}`); + // Fetch content for sections to process + console.log('\nπŸ“₯ Downloading section content...'); + const sections_with_content: Array<{ + section: (typeof sections_to_process)[number]; + content: string; + index: number; + }> = []; + const download_errors: Array<{ section: string; error: string }> = []; + + for (let i = 0; i < sections_to_process.length; i++) { + const section = sections_to_process[i]!; + try { + console.log(` Fetching ${i + 1}/${sections_to_process.length}: ${section.title}`); + const content = await fetch_section_content(section.url); + sections_with_content.push({ + section, + content, + index: i, + }); + } catch (error) { + const error_msg = error instanceof Error ? error.message : String(error); + console.error(` ⚠️ Failed to fetch ${section.title}:`, error_msg); + download_errors.push({ section: section.title, error: error_msg }); + } } - } - // Write output to JSON file - console.log('πŸ’Ύ Writing results to file...'); - const output_path = path.join(current_dirname, '../src/use_cases.json'); - const output_dir = path.dirname(output_path); - - await mkdir(output_dir, { recursive: true }); - - const summary_data: SummaryData = { - generated_at: new Date().toISOString(), - model: anthropic.get_model_identifier(), - total_sections: sections.length, - successful_summaries: Object.keys(summaries).length, - failed_summaries: errors.length, - summaries, - errors: errors.length > 0 ? errors : undefined, - download_errors: download_errors.length > 0 ? download_errors : undefined, - }; + console.log(`βœ… Successfully downloaded ${sections_with_content.length} sections`); - await writeFile(output_path, JSON.stringify(summary_data, null, 2), 'utf-8'); + if (sections_with_content.length === 0 && to_remove.length === 0) { + console.error('❌ No sections were successfully downloaded and nothing to remove'); + process.exit(1); + } - // Print summary - console.log('\nπŸ“Š Summary:'); - console.log(` Total sections: ${sections.length}`); - console.log(` Successfully downloaded: ${sections_with_content.length}`); - console.log(` Download failures: ${download_errors.length}`); - console.log(` Successfully analyzed: ${Object.keys(summaries).length}`); - console.log(` Analysis failures: ${errors.length}`); - console.log(`\nβœ… Results written to: ${output_path}`); + // Process with Anthropic API if we have content + const new_summaries: Record = {}; + + if (sections_with_content.length > 0) { + console.log('\nπŸ€– Initializing Anthropic API...'); + const anthropic = new AnthropicProvider('claude-sonnet-4-5-20250929', api_key); + + // Prepare batch requests + console.log('πŸ“¦ Preparing batch requests...'); + const batch_requests: AnthropicBatchRequest[] = sections_with_content.map( + ({ content, index }) => ({ + custom_id: `section-${index}`, + params: { + model: anthropic.get_model_identifier(), + max_tokens: 250, + messages: [ + { + role: 'user', + content: USE_CASES_PROMPT + content, + }, + ], + temperature: 0, + }, + }), + ); + + // Create and process batch + console.log('πŸš€ Creating batch job...'); + const batch_response = await anthropic.create_batch(batch_requests); + console.log(`βœ… Batch created with ID: ${batch_response.id}`); + + // Poll for completion + console.log('⏳ Waiting for batch to complete...'); + let batch_status = await anthropic.get_batch_status(batch_response.id); + + while (batch_status.processing_status === 'in_progress') { + const { succeeded, processing, errored } = batch_status.request_counts; + console.log( + ` Progress: ${succeeded} succeeded, ${processing} processing, ${errored} errored`, + ); + await new Promise((resolve) => setTimeout(resolve, 5000)); + batch_status = await anthropic.get_batch_status(batch_response.id); + } + + console.log('βœ… Batch processing completed!'); + + // Get results + if (!batch_status.results_url) { + throw new Error('Batch completed but no results URL available'); + } + + console.log('πŸ“₯ Downloading results...'); + const results = await anthropic.get_batch_results(batch_status.results_url); + + // Process results + console.log('πŸ“Š Processing results...'); + const errors: Array<{ section: string; error: string }> = []; + + for (const result of results) { + const index = parseInt(result.custom_id.split('-')[1] ?? '0'); + const section_data = sections_with_content.find((s) => s.index === index); + + if (!section_data) { + console.warn(` ⚠️ Could not find section for index ${index}`); + continue; + } + + const { section } = section_data; + + if (result.result.type !== 'succeeded' || !result.result.message) { + const error_msg = result.result.error?.message || 'Failed or no message'; + console.error(` ❌ ${section.title}: ${error_msg}`); + errors.push({ section: section.title, error: error_msg }); + continue; + } + + const output_content = result.result.message.content[0]?.text; + if (output_content) { + new_summaries[section.slug] = output_content.trim(); + console.log(` βœ… ${section.title}`); + } + } + + // Merge with existing summaries + console.log('\nπŸ“¦ Merging results...'); + } - if (download_errors.length > 0) { - console.log('\n⚠️ Some sections failed to download:'); - download_errors.forEach((e) => console.log(` - ${e.section}: ${e.error}`)); - } + // Start with existing summaries or empty object + const merged_summaries: Record = existing_data + ? { ...existing_data.summaries } + : {}; + + // Add/update new summaries + Object.assign(merged_summaries, new_summaries); - if (errors.length > 0) { - console.log('\n⚠️ Some sections failed to analyze:'); - errors.forEach((e) => console.log(` - ${e.section}: ${e.error}`)); + // Remove deleted sections + for (const slug of to_remove) { + delete merged_summaries[slug]; + console.log(` πŸ—‘οΈ Removed: ${slug}`); + } + + // Write output + console.log('\nπŸ’Ύ Writing results to file...'); + const output_dir = path.dirname(output_path); + await mkdir(output_dir, { recursive: true }); + + const summary_data: SummaryData = { + generated_at: new Date().toISOString(), + model: 'claude-sonnet-4-5-20250929', + total_sections: all_sections.length, + successful_summaries: Object.keys(merged_summaries).length, + failed_summaries: + sections_with_content.length > 0 + ? sections_with_content.length - Object.keys(new_summaries).length + : 0, + summaries: merged_summaries, + errors: + download_errors.length > 0 || sections_with_content.length > 0 + ? download_errors + : undefined, + download_errors: download_errors.length > 0 ? download_errors : undefined, + }; + + await writeFile(output_path, JSON.stringify(summary_data, null, 2), 'utf-8'); + + // Print summary + console.log('\nπŸ“Š Final Summary:'); + console.log(` Total sections in API: ${all_sections.length}`); + console.log(` Sections processed: ${sections_with_content.length}`); + console.log(` New summaries generated: ${Object.keys(new_summaries).length}`); + console.log(` Sections removed: ${to_remove.length}`); + console.log(` Total summaries in file: ${Object.keys(merged_summaries).length}`); + console.log(`\nβœ… Results written to: ${output_path}`); + + if (download_errors.length > 0) { + console.log('\n⚠️ Some sections failed to download:'); + download_errors.forEach((e) => console.log(` - ${e.section}: ${e.error}`)); + } } } diff --git a/packages/mcp-server/src/lib/anthropic.ts b/packages/mcp-server/src/lib/anthropic.ts index bdd5b040..b82960d8 100644 --- a/packages/mcp-server/src/lib/anthropic.ts +++ b/packages/mcp-server/src/lib/anthropic.ts @@ -5,7 +5,7 @@ import { anthropic_batch_response_schema, anthropic_batch_result_schema, type AnthropicBatchRequest, -} from './schemas.js'; +} from './schemas.ts'; export class AnthropicProvider { private client: Anthropic; diff --git a/packages/mcp-server/src/mcp/utils.ts b/packages/mcp-server/src/mcp/utils.ts index 5a50fca1..ec023c4b 100644 --- a/packages/mcp-server/src/mcp/utils.ts +++ b/packages/mcp-server/src/mcp/utils.ts @@ -1,5 +1,5 @@ import * as v from 'valibot'; -import { documentation_sections_schema } from '../lib/schemas.js'; +import { documentation_sections_schema } from '../lib/schemas.ts'; import summary_data from '../use_cases.json' with { type: 'json' }; export async function fetch_with_timeout( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95462bb8..619a325c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: 10.1.8(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0)) + version: 2.32.0(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-svelte: specifier: ^3.12.3 version: 3.12.4(eslint@9.36.0(jiti@2.6.0))(svelte@5.39.6)(ts-node@10.9.2(@types/node@24.5.2)(typescript@5.9.2)) @@ -162,6 +162,9 @@ importers: '@typescript-eslint/parser': specifier: ^8.44.0 version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) + commander: + specifier: ^13.1.0 + version: 13.1.0 drizzle-orm: specifier: ^0.44.0 version: 0.44.6(@libsql/client@0.15.15)(gel@2.1.1) @@ -5475,6 +5478,14 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 + '@vitest/mocker@3.2.4(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.19 + optionalDependencies: + vite: 7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6) + '@vitest/mocker@3.2.4(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))': dependencies: '@vitest/spy': 3.2.4 @@ -6099,17 +6110,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.36.0(jiti@2.6.0)): + eslint-plugin-import@2.32.0(eslint@9.36.0(jiti@2.6.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -6120,7 +6130,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -6131,8 +6141,6 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -7851,7 +7859,7 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)) + '@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 From 31ce09551c7317e783af100cd20f62778ec16722 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:18:19 +0200 Subject: [PATCH 03/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 227fa34f..63edfe68 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -87,17 +87,10 @@ async function fetch_section_content(url: string) { return await response.text(); } -async function file_exists(filepath: string): Promise { +async function load_existing_summaries(output_path: string): Promise { try { - await access(filepath); - return true; + await access(output_path); } catch { - return false; - } -} - -async function load_existing_summaries(output_path: string): Promise { - if (!(await file_exists(output_path))) { return null; } From fe869d7a2c09d9e4242822d65b8b5cf3db5b2e9c Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:19:10 +0200 Subject: [PATCH 04/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 63edfe68..25efe73d 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -95,7 +95,7 @@ async function load_existing_summaries(output_path: string): Promise Date: Sat, 11 Oct 2025 01:19:35 +0200 Subject: [PATCH 05/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 25efe73d..e62bde27 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -95,7 +95,7 @@ async function load_existing_summaries(output_path: string): Promise Date: Sat, 11 Oct 2025 01:24:08 +0200 Subject: [PATCH 06/99] wip --- package.json | 1 + packages/mcp-server/package.json | 5 +- packages/mcp-server/src/use_cases.json | 334 ++++++++++++------------- 3 files changed, 171 insertions(+), 169 deletions(-) diff --git a/package.json b/package.json index bbfaf5e7..6262daf6 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "test:watch": "npm run test:unit -- --watch", "inspect": "pnpm mcp-inspector", "generate-summaries": "pnpm --filter @sveltejs/mcp-server run generate-summaries", + "generate-summaries:dry-run": "pnpm --filter @sveltejs/mcp-server run generate-summaries:dry-run", "generate-prompt-docs": "node --import node-resolve-ts/register scripts/update-docs-prompts.ts", "debug:generate-summaries": "pnpm --filter @sveltejs/mcp-server run debug:generate-summaries", "release": "pnpm --filter @sveltejs/mcp run build && changeset publish", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 58f16120..8d7d8945 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -10,8 +10,9 @@ "type": "module", "scripts": { "test": "vitest", - "generate-summaries": "node scripts/generate-summaries.ts --experimental-strip-types", - "debug:generate-summaries": "DEBUG_MODE=1 node scripts/generate-summaries.ts --experimental-strip-types" + "generate-summaries": "node --experimental-strip-types scripts/generate-summaries.ts", + "generate-summaries:dry-run": "node --experimental-strip-types scripts/generate-summaries.ts --dry-run", + "debug:generate-summaries": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts" }, "exports": { ".": "./src/index.ts" diff --git a/packages/mcp-server/src/use_cases.json b/packages/mcp-server/src/use_cases.json index 6081a077..aac02d97 100644 --- a/packages/mcp-server/src/use_cases.json +++ b/packages/mcp-server/src/use_cases.json @@ -5,172 +5,172 @@ "successful_summaries": 167, "failed_summaries": 0, "summaries": { - "docs/cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", - "docs/cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", - "docs/cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", - "docs/cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", - "docs/cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", - "docs/cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", - "docs/cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", - "docs/cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", - "docs/cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", - "docs/cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", - "docs/cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", - "docs/cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", - "docs/cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", - "docs/cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", - "docs/cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", - "docs/cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", - "docs/cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", - "docs/cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", - "docs/kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", - "docs/kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", - "docs/kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", - "docs/kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", - "docs/kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", - "docs/kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", - "docs/kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", - "docs/kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", - "docs/kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", - "docs/kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", - "docs/kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", - "docs/kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", - "docs/kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", - "docs/kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", - "docs/kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", - "docs/kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", - "docs/kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", - "docs/kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", - "docs/kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", - "docs/kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", - "docs/kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", - "docs/kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", - "docs/kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", - "docs/kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", - "docs/kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", - "docs/kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", - "docs/kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", - "docs/kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", - "docs/kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", - "docs/kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", - "docs/kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", - "docs/kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", - "docs/kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", - "docs/kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", - "docs/kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", - "docs/kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", - "docs/kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", - "docs/kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", - "docs/kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", - "docs/kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", - "docs/kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", - "docs/kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", - "docs/kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", - "docs/kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", - "docs/kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", - "docs/kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", - "docs/kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", - "docs/kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", - "docs/kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", - "docs/kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", - "docs/kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", - "docs/kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", - "docs/kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", - "docs/kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", - "docs/kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", - "docs/kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", - "docs/kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", - "docs/kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", - "docs/kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", - "docs/kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", - "docs/kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", - "docs/kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", - "docs/kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", - "docs/kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", - "docs/kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", - "docs/kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", - "docs/kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", - "docs/svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", - "docs/svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", - "docs/svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", - "docs/svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", - "docs/svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", - "docs/svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", - "docs/svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", - "docs/svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", - "docs/svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", - "docs/svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", - "docs/svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", - "docs/svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", - "docs/svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", - "docs/svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", - "docs/svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", - "docs/svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", - "docs/svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", - "docs/svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", - "docs/svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", - "docs/svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", - "docs/svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", - "docs/svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", - "docs/svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", - "docs/svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", - "docs/svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", - "docs/svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", - "docs/svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", - "docs/svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", - "docs/svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", - "docs/svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", - "docs/svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", - "docs/svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", - "docs/svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", - "docs/svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", - "docs/svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", - "docs/svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", - "docs/svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", - "docs/svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", - "docs/svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", - "docs/svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", - "docs/svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", - "docs/svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", - "docs/svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", - "docs/svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", - "docs/svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", - "docs/svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", - "docs/svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", - "docs/svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", - "docs/svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", - "docs/svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", - "docs/svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", - "docs/svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", - "docs/svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", - "docs/svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", - "docs/svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", - "docs/svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", - "docs/svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", - "docs/svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", - "docs/svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", - "docs/svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", - "docs/svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", - "docs/svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", - "docs/svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", - "docs/svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", - "docs/svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", - "docs/svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", - "docs/svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", - "docs/svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", - "docs/svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", - "docs/svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", - "docs/svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", - "docs/svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", - "docs/svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", - "docs/svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", - "docs/svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", - "docs/svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", - "docs/svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", - "docs/svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", - "docs/svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", - "docs/svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", - "docs/svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", - "docs/svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" + "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", + "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", + "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", + "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", + "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", + "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", + "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", + "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", + "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", + "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", + "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", + "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", + "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", + "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", + "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", + "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", + "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", + "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", + "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", + "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", + "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", + "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", + "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", + "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", + "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", + "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", + "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", + "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", + "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", + "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", + "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", + "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", + "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", + "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", + "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", + "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", + "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", + "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", + "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", + "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", + "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", + "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", + "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", + "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", + "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", + "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", + "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", + "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", + "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", + "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", + "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", + "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", + "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", + "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", + "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", + "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", + "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", + "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", + "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", + "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", + "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", + "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", + "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", + "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", + "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", + "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", + "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", + "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", + "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", + "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", + "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", + "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", + "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", + "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", + "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", + "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", + "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", + "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", + "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", + "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", + "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", + "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", + "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", + "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", + "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", + "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", + "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", + "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", + "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", + "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", + "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", + "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", + "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", + "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", + "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", + "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", + "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", + "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", + "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", + "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", + "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", + "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", + "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", + "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", + "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", + "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", + "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", + "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", + "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", + "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", + "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", + "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", + "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", + "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", + "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", + "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", + "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", + "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", + "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", + "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", + "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", + "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", + "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", + "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", + "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", + "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", + "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", + "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", + "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", + "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", + "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", + "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", + "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", + "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", + "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", + "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", + "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", + "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", + "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", + "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", + "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", + "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", + "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", + "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", + "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", + "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", + "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", + "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", + "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", + "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", + "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", + "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", + "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", + "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", + "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", + "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", + "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", + "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", + "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", + "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", + "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", + "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", + "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", + "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", + "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", + "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", + "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" } } From 98be540b18c8e63434bfde53afccf0575860cb25 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:26:43 +0200 Subject: [PATCH 07/99] Update generate-summaries.test.ts --- packages/mcp-server/scripts/generate-summaries.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index 33badba6..8a6ad10b 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -25,12 +25,10 @@ function create_summary_data( describe('generate-summaries incremental processing', () => { beforeEach(async () => { - // Create test output directory await mkdir(test_output_dir, { recursive: true }); }); afterEach(async () => { - // Clean up test output directory try { await rm(test_output_dir, { recursive: true, force: true }); } catch { From 6cbc72247ece0c33f3e9eb5f417718727d94a991 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:30:29 +0200 Subject: [PATCH 08/99] wip --- .../scripts/generate-summaries.test.ts | 10 +++---- .../mcp-server/scripts/generate-summaries.ts | 28 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index 8a6ad10b..78812b32 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -45,7 +45,7 @@ describe('generate-summaries incremental processing', () => { await writeFile(test_use_cases_path, JSON.stringify(initial_data, null, 2), 'utf-8'); const content = await readFile(test_use_cases_path, 'utf-8'); - const data = JSON.parse(content); + const data = JSON.parse(content as unknown as string); expect(data.summaries).toHaveProperty('svelte/overview'); expect(data.total_sections).toBe(1); @@ -60,7 +60,7 @@ describe('generate-summaries incremental processing', () => { await writeFile(test_use_cases_path, JSON.stringify(existing_data, null, 2), 'utf-8'); const content = await readFile(test_use_cases_path, 'utf-8'); - const data = JSON.parse(content); + const data = JSON.parse(content as unknown as string); expect(Object.keys(data.summaries)).toHaveLength(2); expect(data.summaries).toHaveProperty('svelte/overview'); @@ -72,7 +72,7 @@ describe('generate-summaries incremental processing', () => { // Should throw when trying to parse const content = await readFile(test_use_cases_path, 'utf-8'); - expect(() => JSON.parse(content)).toThrow(); + expect(() => JSON.parse(content as unknown as string)).toThrow(); }); }); @@ -180,7 +180,7 @@ describe('generate-summaries incremental processing', () => { }; const to_remove = ['svelte/old-api']; - const merged = { ...existing_summaries }; + const merged: Record = { ...existing_summaries }; for (const slug of to_remove) { delete merged[slug]; @@ -298,7 +298,7 @@ describe('generate-summaries incremental processing', () => { describe('force regeneration', () => { it('should process all sections when --force is used', () => { - const existing_summaries = { + const existing_summaries: Record = { 'svelte/overview': 'always, any svelte project', }; diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index e62bde27..a3701a48 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -13,6 +13,20 @@ import { } from '../src/lib/schemas.ts'; import * as v from 'valibot'; +interface CliOptions { + force: boolean; + dryRun: boolean; + sections: string[]; + debug: boolean; +} + +interface SectionChange { + slug: string; + title: string; + url: string; + change_type: 'new' | 'updated' | 'removed'; +} + const current_filename = fileURLToPath(import.meta.url); const current_dirname = path.dirname(current_filename); @@ -72,13 +86,6 @@ program .option('-s, --sections ', 'Specific section slugs to process (space-separated)', []) .option('--debug', 'Debug mode: process only 2 sections', false); -interface CliOptions { - force: boolean; - dryRun: boolean; - sections: string[]; - debug: boolean; -} - async function fetch_section_content(url: string) { const response = await fetch(url, { signal: AbortSignal.timeout(30000) }); if (!response.ok) { @@ -111,13 +118,6 @@ async function load_existing_summaries(output_path: string): Promise, existing_data: SummaryData | null, From f1ff4d5862239e38c952829cb8a8a5f477d5520d Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:31:57 +0200 Subject: [PATCH 09/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index a3701a48..5c233f13 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -30,6 +30,15 @@ interface SectionChange { const current_filename = fileURLToPath(import.meta.url); const current_dirname = path.dirname(current_filename); +/** + * Reads a file and validates that the result is a string using valibot. + * This handles the TypeScript type issues with readFile and ensures we get a string. + */ +async function read_file_as_string(file_path: string, encoding: BufferEncoding = 'utf-8'): Promise { + const content = await readFile(file_path, encoding); + return v.parse(v.string(), content); +} + const USE_CASES_PROMPT = ` You are tasked with analyzing Svelte 5 and SvelteKit documentation pages to identify when they would be useful. @@ -102,7 +111,7 @@ async function load_existing_summaries(output_path: string): Promise Date: Sat, 11 Oct 2025 01:42:02 +0200 Subject: [PATCH 10/99] Create thirty-fans-stay.md --- .changeset/thirty-fans-stay.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/thirty-fans-stay.md diff --git a/.changeset/thirty-fans-stay.md b/.changeset/thirty-fans-stay.md new file mode 100644 index 00000000..3f76c1af --- /dev/null +++ b/.changeset/thirty-fans-stay.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/mcp': minor +--- + +Adds LLM-condensed documentation for smaller context usage From d054d48d6b38ed91de710424ba4499beedc7e86f Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:43:03 +0200 Subject: [PATCH 11/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 5c233f13..2bfc285d 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -30,11 +30,10 @@ interface SectionChange { const current_filename = fileURLToPath(import.meta.url); const current_dirname = path.dirname(current_filename); -/** - * Reads a file and validates that the result is a string using valibot. - * This handles the TypeScript type issues with readFile and ensures we get a string. - */ -async function read_file_as_string(file_path: string, encoding: BufferEncoding = 'utf-8'): Promise { +async function read_file_as_string( + file_path: string, + encoding: BufferEncoding = 'utf-8', +): Promise { const content = await readFile(file_path, encoding); return v.parse(v.string(), content); } From 740a08eb351b318838e6dc8905c209cfc8586bde Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:43:32 +0200 Subject: [PATCH 12/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 2bfc285d..dad9f282 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -82,7 +82,6 @@ Here is the documentation page content to analyze: `; -// Setup CLI using Commander const program = new Command(); program From 5fc108cf764d8503bcac08196e97ee416c147020 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:48:38 +0200 Subject: [PATCH 13/99] wip --- .../scripts/generate-summaries.test.ts | 52 +++++++++++++++++-- .../mcp-server/scripts/generate-summaries.ts | 25 ++++----- 2 files changed, 59 insertions(+), 18 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index 78812b32..cfbed5a7 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -67,12 +67,56 @@ describe('generate-summaries incremental processing', () => { expect(data.summaries).toHaveProperty('svelte/$state'); }); - it('should handle malformed use_cases.json gracefully', async () => { + it('should crash on malformed JSON', async () => { + // Import the load_existing_summaries function + const { load_existing_summaries } = await import('./generate-summaries.ts'); + + // Write invalid JSON await writeFile(test_use_cases_path, '{ invalid json', 'utf-8'); - // Should throw when trying to parse - const content = await readFile(test_use_cases_path, 'utf-8'); - expect(() => JSON.parse(content as unknown as string)).toThrow(); + // Should throw (JSON.parse will throw SyntaxError) + await expect(load_existing_summaries(test_use_cases_path)).rejects.toThrow(); + }); + + it('should crash on invalid schema', async () => { + // Import the load_existing_summaries function + const { load_existing_summaries } = await import('./generate-summaries.ts'); + + // Write valid JSON but invalid schema + await writeFile(test_use_cases_path, JSON.stringify({ invalid: 'schema' }), 'utf-8'); + + // Should throw an error about schema validation + await expect(load_existing_summaries(test_use_cases_path)).rejects.toThrow( + /invalid schema/ + ); + }); + + it('should return null when file does not exist', async () => { + // Import the load_existing_summaries function + const { load_existing_summaries } = await import('./generate-summaries.ts'); + + // File doesn't exist + const nonexistent_path = path.join(test_output_dir, 'does-not-exist.json'); + + // Should return null + const result = await load_existing_summaries(nonexistent_path); + expect(result).toBeNull(); + }); + + it('should load valid use_cases.json successfully', async () => { + // Import the load_existing_summaries function + const { load_existing_summaries } = await import('./generate-summaries.ts'); + + const valid_data = create_summary_data({ + 'svelte/overview': 'always, any svelte project', + }); + + await writeFile(test_use_cases_path, JSON.stringify(valid_data, null, 2), 'utf-8'); + + // Should successfully load and parse + const result = await load_existing_summaries(test_use_cases_path); + expect(result).not.toBeNull(); + expect(result?.summaries).toHaveProperty('svelte/overview'); }); }); diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index dad9f282..2315a9c8 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -101,28 +101,25 @@ async function fetch_section_content(url: string) { return await response.text(); } -async function load_existing_summaries(output_path: string): Promise { +export async function load_existing_summaries(output_path: string): Promise { try { await access(output_path); } catch { return null; } - try { - const content = await read_file_as_string(output_path, 'utf-8'); - const data = JSON.parse(content); - const validated = v.safeParse(summary_data_schema, data); - - if (!validated.success) { - console.warn('⚠️ Existing use_cases.json is malformed, treating as empty'); - return null; - } + const content = await read_file_as_string(output_path, 'utf-8'); + const data = JSON.parse(content); - return validated.output; - } catch (error) { - console.warn('⚠️ Failed to read existing use_cases.json:', error); - return null; + const validated = v.safeParse(summary_data_schema, data); + if (!validated.success) { + throw new Error( + `Existing use_cases.json has invalid schema. Please fix or delete the file at: ${output_path}\n` + + `Validation errors: ${JSON.stringify(validated.issues, null, 2)}`, + ); } + + return validated.output; } function detect_changes( From 4344e09ce34a5e5da84770dada22732ce2d1d4e2 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 01:53:47 +0200 Subject: [PATCH 14/99] remove --sections --- .../scripts/generate-summaries.test.ts | 49 +------------------ .../mcp-server/scripts/generate-summaries.ts | 27 ++-------- 2 files changed, 5 insertions(+), 71 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index cfbed5a7..55e049bb 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -252,29 +252,11 @@ describe('generate-summaries incremental processing', () => { expect(has_dry_run).toBe(true); }); - it('should parse --sections flag with section names', () => { - const args = ['--sections', 'svelte/overview', 'svelte/$state']; - const sections_index = args.indexOf('--sections'); - - const sections: string[] = []; - if (sections_index !== -1) { - for (let i = sections_index + 1; i < args.length; i++) { - if (args[i]?.startsWith('--')) break; - sections.push(args[i]!); - } - } - - expect(sections).toHaveLength(2); - expect(sections).toContain('svelte/overview'); - expect(sections).toContain('svelte/$state'); - }); - it('should handle multiple flags together', () => { - const args = ['--force', '--dry-run', '--sections', 'svelte/overview']; + const args = ['--force', '--dry-run']; expect(args.includes('--force')).toBe(true); expect(args.includes('--dry-run')).toBe(true); - expect(args.includes('--sections')).toBe(true); }); }); @@ -311,35 +293,6 @@ describe('generate-summaries incremental processing', () => { }); }); - describe('specific section processing', () => { - it('should only process specified sections when --sections flag is used', () => { - const all_sections = [ - { slug: 'svelte/overview', title: 'Overview' }, - { slug: 'svelte/$state', title: '$state' }, - { slug: 'kit/introduction', title: 'Introduction' }, - ]; - - const specified_sections = ['svelte/$state']; - const to_process = all_sections.filter((s) => specified_sections.includes(s.slug)); - - expect(to_process).toHaveLength(1); - expect(to_process[0]?.slug).toBe('svelte/$state'); - }); - - it('should process multiple specified sections', () => { - const all_sections = [ - { slug: 'svelte/overview', title: 'Overview' }, - { slug: 'svelte/$state', title: '$state' }, - { slug: 'kit/introduction', title: 'Introduction' }, - ]; - - const specified_sections = ['svelte/overview', 'kit/introduction']; - const to_process = all_sections.filter((s) => specified_sections.includes(s.slug)); - - expect(to_process).toHaveLength(2); - }); - }); - describe('force regeneration', () => { it('should process all sections when --force is used', () => { const existing_summaries: Record = { diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 2315a9c8..6b2435b9 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -16,7 +16,6 @@ import * as v from 'valibot'; interface CliOptions { force: boolean; dryRun: boolean; - sections: string[]; debug: boolean; } @@ -90,7 +89,6 @@ program .version('1.0.0') .option('-f, --force', 'Force regeneration of all summaries', false) .option('-d, --dry-run', 'Show what would be changed without making API calls', false) - .option('-s, --sections ', 'Specific section slugs to process (space-separated)', []) .option('--debug', 'Debug mode: process only 2 sections', false); async function fetch_section_content(url: string) { @@ -126,7 +124,6 @@ function detect_changes( current_sections: Array<{ slug: string; title: string; url: string }>, existing_data: SummaryData | null, force: boolean, - specific_sections: string[], ): { to_process: Array<{ slug: string; title: string; url: string }>; to_remove: string[]; @@ -134,15 +131,10 @@ function detect_changes( } { if (!existing_data || force) { // First run or force regeneration - const sections_to_process = - specific_sections.length > 0 - ? current_sections.filter((s) => specific_sections.includes(s.slug)) - : current_sections; - return { - to_process: sections_to_process, + to_process: current_sections, to_remove: [], - changes: sections_to_process.map((s) => ({ + changes: current_sections.map((s) => ({ ...s, change_type: force ? 'updated' : 'new', })), @@ -179,14 +171,8 @@ function detect_changes( } } - // If specific sections requested, filter to only those - const to_process = - specific_sections.length > 0 - ? current_sections.filter((s) => specific_sections.includes(s.slug)) - : new_sections; - return { - to_process, + to_process: new_sections, to_remove: removed_slugs, changes, }; @@ -210,9 +196,6 @@ async function main() { if (options.force) { console.log('⚑ FORCE MODE - Regenerating all summaries\n'); } - if (options.sections.length > 0) { - console.log(`πŸ“Œ Processing specific sections: ${options.sections.join(', ')}\n`); - } if (debug) { console.log('πŸ› DEBUG MODE - Will process only 2 sections\n'); } @@ -229,7 +212,6 @@ async function main() { console.log('πŸ“ No existing summaries found - will process all sections'); } - // Get all sections from API console.log('πŸ“š Fetching documentation sections...'); const all_sections = await get_sections(); console.log(`Found ${all_sections.length} sections from API`); @@ -239,7 +221,6 @@ async function main() { all_sections, existing_data, options.force, - options.sections, ); // Display changes @@ -270,7 +251,7 @@ async function main() { // Debug mode: limit sections let sections_to_process = to_process; - if (debug && !options.sections.length) { + if (debug) { console.log('\nπŸ› Processing only 2 sections for debugging'); sections_to_process = to_process.slice(0, 2); } From a100bbb9be1a8af8510bca3dd346ac07cd4eceb3 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:08:19 +0200 Subject: [PATCH 15/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 6b2435b9..4fb8df95 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -148,13 +148,11 @@ function detect_changes( const new_sections: typeof current_sections = []; const changes: SectionChange[] = []; - // Find new and potentially updated sections for (const section of current_sections) { if (!existing_slugs.has(section.slug)) { new_sections.push(section); changes.push({ ...section, change_type: 'new' }); } - // You could add logic here to detect updated sections based on title changes, etc. } // Find removed sections @@ -171,6 +169,8 @@ function detect_changes( } } + // TODO: Determine when a particular section was updated (e.g., by storing a hash of content) + return { to_process: new_sections, to_remove: removed_slugs, From 4cbe859322095f1f1e8104f4fa5d8a496aea7f3a Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:12:36 +0200 Subject: [PATCH 16/99] wip --- .../scripts/generate-summaries.test.ts | 4 +- .../mcp-server/scripts/generate-summaries.ts | 82 ++++++++++++++++--- packages/mcp-server/src/lib/schemas.ts | 1 + 3 files changed, 71 insertions(+), 16 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index 55e049bb..03cea348 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -86,9 +86,7 @@ describe('generate-summaries incremental processing', () => { await writeFile(test_use_cases_path, JSON.stringify({ invalid: 'schema' }), 'utf-8'); // Should throw an error about schema validation - await expect(load_existing_summaries(test_use_cases_path)).rejects.toThrow( - /invalid schema/ - ); + await expect(load_existing_summaries(test_use_cases_path)).rejects.toThrow(/invalid schema/); }); it('should return null when file does not exist', async () => { diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 4fb8df95..d13eb1c5 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import 'dotenv/config'; import { writeFile, mkdir, readFile, access } from 'node:fs/promises'; +import { createHash } from 'node:crypto'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { Command } from 'commander'; @@ -37,6 +38,10 @@ async function read_file_as_string( return v.parse(v.string(), content); } +function compute_content_hash(content: string): string { + return createHash('sha256').update(content).digest('hex'); +} + const USE_CASES_PROMPT = ` You are tasked with analyzing Svelte 5 and SvelteKit documentation pages to identify when they would be useful. @@ -120,15 +125,18 @@ export async function load_existing_summaries(output_path: string): Promise, existing_data: SummaryData | null, force: boolean, -): { +): Promise<{ to_process: Array<{ slug: string; title: string; url: string }>; to_remove: string[]; changes: SectionChange[]; -} { + fetched_content: Map; +}> { + const fetched_content = new Map(); + if (!existing_data || force) { // First run or force regeneration return { @@ -138,20 +146,44 @@ function detect_changes( ...s, change_type: force ? 'updated' : 'new', })), + fetched_content, }; } const existing_summaries = existing_data.summaries; + const existing_content_hashes = existing_data.content_hashes; const existing_slugs = new Set(Object.keys(existing_summaries)); const current_slugs = new Set(current_sections.map((s) => s.slug)); - const new_sections: typeof current_sections = []; + const sections_to_process: typeof current_sections = []; const changes: SectionChange[] = []; + // Check for new and updated sections for (const section of current_sections) { if (!existing_slugs.has(section.slug)) { - new_sections.push(section); + // New section + sections_to_process.push(section); changes.push({ ...section, change_type: 'new' }); + } else { + // Existing section - check if content changed + const stored_hash = existing_content_hashes[section.slug]; + if (stored_hash) { + try { + const content = await fetch_section_content(section.url); + fetched_content.set(section.slug, content); + const current_hash = compute_content_hash(content); + + if (current_hash !== stored_hash) { + // Content has changed + sections_to_process.push(section); + changes.push({ ...section, change_type: 'updated' }); + } + } catch (error) { + const error_msg = error instanceof Error ? error.message : String(error); + console.warn(` ⚠️ Failed to fetch ${section.title} for update check: ${error_msg}`); + // If we can't fetch it, we can't check for updates, so skip it + } + } } } @@ -169,12 +201,11 @@ function detect_changes( } } - // TODO: Determine when a particular section was updated (e.g., by storing a hash of content) - return { - to_process: new_sections, + to_process: sections_to_process, to_remove: removed_slugs, changes, + fetched_content, }; } @@ -217,7 +248,8 @@ async function main() { console.log(`Found ${all_sections.length} sections from API`); // Detect what needs to be processed - const { to_process, to_remove, changes } = detect_changes( + console.log('πŸ” Checking for content changes...'); + const { to_process, to_remove, changes, fetched_content } = await detect_changes( all_sections, existing_data, options.force, @@ -276,7 +308,7 @@ async function main() { process.exit(1); } - // Fetch content for sections to process + // Fetch content for sections to process (reusing already-fetched content when available) console.log('\nπŸ“₯ Downloading section content...'); const sections_with_content: Array<{ section: (typeof sections_to_process)[number]; @@ -287,6 +319,20 @@ async function main() { for (let i = 0; i < sections_to_process.length; i++) { const section = sections_to_process[i]!; + + // Check if we already fetched this content during change detection + const cached_content = fetched_content.get(section.slug); + if (cached_content) { + console.log(` Using cached ${i + 1}/${sections_to_process.length}: ${section.title}`); + sections_with_content.push({ + section, + content: cached_content, + index: i, + }); + continue; + } + + // Fetch content if not cached try { console.log(` Fetching ${i + 1}/${sections_to_process.length}: ${section.title}`); const content = await fetch_section_content(section.url); @@ -311,6 +357,7 @@ async function main() { // Process with Anthropic API if we have content const new_summaries: Record = {}; + const new_content_hashes: Record = {}; if (sections_with_content.length > 0) { console.log('\nπŸ€– Initializing Anthropic API...'); @@ -376,7 +423,7 @@ async function main() { continue; } - const { section } = section_data; + const { section, content } = section_data; if (result.result.type !== 'succeeded' || !result.result.message) { const error_msg = result.result.error?.message || 'Failed or no message'; @@ -388,6 +435,7 @@ async function main() { const output_content = result.result.message.content[0]?.text; if (output_content) { new_summaries[section.slug] = output_content.trim(); + new_content_hashes[section.slug] = compute_content_hash(content); console.log(` βœ… ${section.title}`); } } @@ -401,12 +449,19 @@ async function main() { ? { ...existing_data.summaries } : {}; - // Add/update new summaries + // Start with existing content hashes or empty object + const merged_content_hashes: Record = existing_data + ? { ...existing_data.content_hashes } + : {}; + + // Add/update new summaries and hashes Object.assign(merged_summaries, new_summaries); + Object.assign(merged_content_hashes, new_content_hashes); - // Remove deleted sections + // Remove deleted sections from both summaries and hashes for (const slug of to_remove) { delete merged_summaries[slug]; + delete merged_content_hashes[slug]; console.log(` πŸ—‘οΈ Removed: ${slug}`); } @@ -425,6 +480,7 @@ async function main() { ? sections_with_content.length - Object.keys(new_summaries).length : 0, summaries: merged_summaries, + content_hashes: merged_content_hashes, errors: download_errors.length > 0 || sections_with_content.length > 0 ? download_errors diff --git a/packages/mcp-server/src/lib/schemas.ts b/packages/mcp-server/src/lib/schemas.ts index ea951c45..8822fda5 100644 --- a/packages/mcp-server/src/lib/schemas.ts +++ b/packages/mcp-server/src/lib/schemas.ts @@ -19,6 +19,7 @@ export const summary_data_schema = v.object({ successful_summaries: v.number(), failed_summaries: v.number(), summaries: v.record(v.string(), v.string()), + content_hashes: v.record(v.string(), v.string()), errors: v.optional( v.array( v.object({ From 1555c67a0f0cfb5a6ab195f2eb92deb3ae488b2a Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:15:44 +0200 Subject: [PATCH 17/99] Update use_cases.json --- packages/mcp-server/src/use_cases.json | 517 ++++++++++++++++--------- 1 file changed, 343 insertions(+), 174 deletions(-) diff --git a/packages/mcp-server/src/use_cases.json b/packages/mcp-server/src/use_cases.json index aac02d97..0034487f 100644 --- a/packages/mcp-server/src/use_cases.json +++ b/packages/mcp-server/src/use_cases.json @@ -1,176 +1,345 @@ { - "generated_at": "2025-10-02T20:29:23.410Z", - "model": "claude-sonnet-4-5-20250929", - "total_sections": 167, - "successful_summaries": 167, - "failed_summaries": 0, - "summaries": { - "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", - "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", - "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", - "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", - "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", - "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", - "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", - "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", - "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", - "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", - "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", - "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", - "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", - "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", - "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", - "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", - "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", - "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", - "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", - "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", - "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", - "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", - "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", - "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", - "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", - "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", - "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", - "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", - "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", - "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", - "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", - "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", - "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", - "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", - "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", - "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", - "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", - "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", - "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", - "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", - "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", - "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", - "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", - "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", - "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", - "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", - "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", - "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", - "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", - "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", - "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", - "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", - "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", - "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", - "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", - "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", - "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", - "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", - "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", - "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", - "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", - "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", - "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", - "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", - "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", - "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", - "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", - "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", - "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", - "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", - "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", - "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", - "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", - "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", - "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", - "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", - "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", - "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", - "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", - "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", - "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", - "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", - "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", - "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", - "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", - "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", - "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", - "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", - "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", - "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", - "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", - "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", - "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", - "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", - "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", - "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", - "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", - "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", - "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", - "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", - "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", - "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", - "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", - "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", - "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", - "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", - "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", - "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", - "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", - "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", - "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", - "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", - "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", - "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", - "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", - "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", - "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", - "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", - "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", - "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", - "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", - "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", - "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", - "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", - "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", - "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", - "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", - "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", - "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", - "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", - "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", - "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", - "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", - "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", - "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", - "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", - "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", - "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", - "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", - "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", - "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", - "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", - "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", - "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", - "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", - "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", - "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", - "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", - "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", - "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", - "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", - "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", - "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", - "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", - "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", - "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", - "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", - "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", - "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", - "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", - "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", - "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", - "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", - "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", - "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", - "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", - "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" - } + "generated_at": "2025-10-02T20:29:23.410Z", + "model": "claude-sonnet-4-5-20250929", + "total_sections": 167, + "successful_summaries": 167, + "failed_summaries": 0, + "summaries": { + "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", + "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", + "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", + "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", + "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", + "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", + "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", + "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", + "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", + "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", + "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", + "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", + "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", + "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", + "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", + "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", + "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", + "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", + "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", + "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", + "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", + "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", + "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", + "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", + "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", + "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", + "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", + "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", + "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", + "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", + "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", + "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", + "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", + "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", + "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", + "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", + "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", + "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", + "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", + "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", + "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", + "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", + "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", + "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", + "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", + "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", + "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", + "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", + "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", + "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", + "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", + "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", + "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", + "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", + "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", + "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", + "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", + "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", + "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", + "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", + "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", + "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", + "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", + "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", + "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", + "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", + "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", + "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", + "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", + "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", + "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", + "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", + "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", + "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", + "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", + "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", + "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", + "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", + "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", + "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", + "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", + "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", + "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", + "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", + "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", + "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", + "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", + "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", + "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", + "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", + "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", + "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", + "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", + "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", + "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", + "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", + "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", + "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", + "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", + "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", + "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", + "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", + "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", + "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", + "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", + "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", + "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", + "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", + "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", + "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", + "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", + "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", + "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", + "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", + "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", + "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", + "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", + "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", + "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", + "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", + "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", + "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", + "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", + "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", + "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", + "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", + "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", + "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", + "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", + "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", + "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", + "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", + "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", + "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", + "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", + "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", + "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", + "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", + "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", + "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", + "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", + "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", + "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", + "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", + "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", + "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", + "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", + "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", + "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", + "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", + "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", + "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", + "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", + "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", + "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", + "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", + "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", + "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", + "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", + "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", + "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", + "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", + "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", + "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", + "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", + "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", + "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" + }, + "content_hashes": { + "cli/overview": "", + "cli/faq": "", + "cli/sv-create": "", + "cli/sv-add": "", + "cli/sv-check": "", + "cli/sv-migrate": "", + "cli/devtools-json": "", + "cli/drizzle": "", + "cli/eslint": "", + "cli/lucia": "", + "cli/mdsvex": "", + "cli/paraglide": "", + "cli/playwright": "", + "cli/prettier": "", + "cli/storybook": "", + "cli/sveltekit-adapter": "", + "cli/tailwind": "", + "cli/vitest": "", + "kit/introduction": "", + "kit/creating-a-project": "", + "kit/project-types": "", + "kit/project-structure": "", + "kit/web-standards": "", + "kit/routing": "", + "kit/load": "", + "kit/form-actions": "", + "kit/page-options": "", + "kit/state-management": "", + "kit/remote-functions": "", + "kit/building-your-app": "", + "kit/adapters": "", + "kit/adapter-auto": "", + "kit/adapter-node": "", + "kit/adapter-static": "", + "kit/single-page-apps": "", + "kit/adapter-cloudflare": "", + "kit/adapter-cloudflare-workers": "", + "kit/adapter-netlify": "", + "kit/adapter-vercel": "", + "kit/writing-adapters": "", + "kit/advanced-routing": "", + "kit/hooks": "", + "kit/errors": "", + "kit/link-options": "", + "kit/service-workers": "", + "kit/server-only-modules": "", + "kit/snapshots": "", + "kit/shallow-routing": "", + "kit/observability": "", + "kit/packaging": "", + "kit/auth": "", + "kit/performance": "", + "kit/icons": "", + "kit/images": "", + "kit/accessibility": "", + "kit/seo": "", + "kit/faq": "", + "kit/integrations": "", + "kit/debugging": "", + "kit/migrating-to-sveltekit-2": "", + "kit/migrating": "", + "kit/additional-resources": "", + "kit/glossary": "", + "kit/@sveltejs-kit": "", + "kit/@sveltejs-kit-hooks": "", + "kit/@sveltejs-kit-node-polyfills": "", + "kit/@sveltejs-kit-node": "", + "kit/@sveltejs-kit-vite": "", + "kit/$app-environment": "", + "kit/$app-forms": "", + "kit/$app-navigation": "", + "kit/$app-paths": "", + "kit/$app-server": "", + "kit/$app-state": "", + "kit/$app-stores": "", + "kit/$app-types": "", + "kit/$env-dynamic-private": "", + "kit/$env-dynamic-public": "", + "kit/$env-static-private": "", + "kit/$env-static-public": "", + "kit/$lib": "", + "kit/$service-worker": "", + "kit/configuration": "", + "kit/cli": "", + "kit/types": "", + "svelte/overview": "", + "svelte/getting-started": "", + "svelte/svelte-files": "", + "svelte/svelte-js-files": "", + "svelte/what-are-runes": "", + "svelte/$state": "", + "svelte/$derived": "", + "svelte/$effect": "", + "svelte/$props": "", + "svelte/$bindable": "", + "svelte/$inspect": "", + "svelte/$host": "", + "svelte/basic-markup": "", + "svelte/if": "", + "svelte/each": "", + "svelte/key": "", + "svelte/await": "", + "svelte/snippet": "", + "svelte/@render": "", + "svelte/@html": "", + "svelte/@attach": "", + "svelte/@const": "", + "svelte/@debug": "", + "svelte/bind": "", + "svelte/use": "", + "svelte/transition": "", + "svelte/in-and-out": "", + "svelte/animate": "", + "svelte/style": "", + "svelte/class": "", + "svelte/await-expressions": "", + "svelte/scoped-styles": "", + "svelte/global-styles": "", + "svelte/custom-properties": "", + "svelte/nested-style-elements": "", + "svelte/svelte-boundary": "", + "svelte/svelte-window": "", + "svelte/svelte-document": "", + "svelte/svelte-body": "", + "svelte/svelte-head": "", + "svelte/svelte-element": "", + "svelte/svelte-options": "", + "svelte/stores": "", + "svelte/context": "", + "svelte/lifecycle-hooks": "", + "svelte/imperative-component-api": "", + "svelte/testing": "", + "svelte/typescript": "", + "svelte/custom-elements": "", + "svelte/v4-migration-guide": "", + "svelte/v5-migration-guide": "", + "svelte/faq": "", + "svelte/svelte": "", + "svelte/svelte-action": "", + "svelte/svelte-animate": "", + "svelte/svelte-attachments": "", + "svelte/svelte-compiler": "", + "svelte/svelte-easing": "", + "svelte/svelte-events": "", + "svelte/svelte-legacy": "", + "svelte/svelte-motion": "", + "svelte/svelte-reactivity-window": "", + "svelte/svelte-reactivity": "", + "svelte/svelte-server": "", + "svelte/svelte-store": "", + "svelte/svelte-transition": "", + "svelte/compiler-errors": "", + "svelte/compiler-warnings": "", + "svelte/runtime-errors": "", + "svelte/runtime-warnings": "", + "svelte/legacy-overview": "", + "svelte/legacy-let": "", + "svelte/legacy-reactive-assignments": "", + "svelte/legacy-export-let": "", + "svelte/legacy-$$props-and-$$restProps": "", + "svelte/legacy-on": "", + "svelte/legacy-slots": "", + "svelte/legacy-$$slots": "", + "svelte/legacy-svelte-fragment": "", + "svelte/legacy-svelte-component": "", + "svelte/legacy-svelte-self": "", + "svelte/legacy-component-api": "" + } } From 3a8e488a738428b4693afeff4b887c8489c1f402 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:18:16 +0200 Subject: [PATCH 18/99] wip --- .../mcp-server/scripts/generate-summaries.ts | 42 +- packages/mcp-server/src/use_cases.json | 686 +++++++++--------- 2 files changed, 363 insertions(+), 365 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index d13eb1c5..6df704ca 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -24,7 +24,7 @@ interface SectionChange { slug: string; title: string; url: string; - change_type: 'new' | 'updated' | 'removed'; + change_type: 'new' | 'changed' | 'removed'; } const current_filename = fileURLToPath(import.meta.url); @@ -144,7 +144,7 @@ async function detect_changes( to_remove: [], changes: current_sections.map((s) => ({ ...s, - change_type: force ? 'updated' : 'new', + change_type: force ? 'changed' : 'new', })), fetched_content, }; @@ -158,7 +158,7 @@ async function detect_changes( const sections_to_process: typeof current_sections = []; const changes: SectionChange[] = []; - // Check for new and updated sections + // Check for new and changed sections for (const section of current_sections) { if (!existing_slugs.has(section.slug)) { // New section @@ -166,23 +166,21 @@ async function detect_changes( changes.push({ ...section, change_type: 'new' }); } else { // Existing section - check if content changed - const stored_hash = existing_content_hashes[section.slug]; - if (stored_hash) { - try { - const content = await fetch_section_content(section.url); - fetched_content.set(section.slug, content); - const current_hash = compute_content_hash(content); - - if (current_hash !== stored_hash) { - // Content has changed - sections_to_process.push(section); - changes.push({ ...section, change_type: 'updated' }); - } - } catch (error) { - const error_msg = error instanceof Error ? error.message : String(error); - console.warn(` ⚠️ Failed to fetch ${section.title} for update check: ${error_msg}`); - // If we can't fetch it, we can't check for updates, so skip it + try { + const content = await fetch_section_content(section.url); + fetched_content.set(section.slug, content); + const current_hash = compute_content_hash(content); + const stored_hash = existing_content_hashes[section.slug] ?? ''; + + if (current_hash !== stored_hash) { + // Content has changed + sections_to_process.push(section); + changes.push({ ...section, change_type: 'changed' }); } + } catch (error) { + const error_msg = error instanceof Error ? error.message : String(error); + console.warn(` ⚠️ Failed to fetch ${section.title} for change check: ${error_msg}`); + // If we can't fetch it, we can't check for changes, so skip it } } } @@ -258,11 +256,11 @@ async function main() { // Display changes console.log('\nπŸ“Š Change Summary:'); const new_count = changes.filter((c) => c.change_type === 'new').length; - const updated_count = changes.filter((c) => c.change_type === 'updated').length; + const changed_count = changes.filter((c) => c.change_type === 'changed').length; const removed_count = changes.filter((c) => c.change_type === 'removed').length; console.log(` ✨ New sections: ${new_count}`); - console.log(` πŸ”„ Updated sections: ${updated_count}`); + console.log(` πŸ”„ Changed sections: ${changed_count}`); console.log(` ❌ Removed sections: ${removed_count}`); console.log(` πŸ“ To process: ${to_process.length}`); @@ -270,7 +268,7 @@ async function main() { console.log('\nπŸ“‹ Detailed changes:'); for (const change of changes) { const emoji = - change.change_type === 'new' ? ' ✨' : change.change_type === 'updated' ? ' πŸ”„' : ' ❌'; + change.change_type === 'new' ? ' ✨' : change.change_type === 'changed' ? ' πŸ”„' : ' ❌'; console.log(`${emoji} [${change.change_type.toUpperCase()}] ${change.slug}`); } } diff --git a/packages/mcp-server/src/use_cases.json b/packages/mcp-server/src/use_cases.json index 0034487f..8da34fd8 100644 --- a/packages/mcp-server/src/use_cases.json +++ b/packages/mcp-server/src/use_cases.json @@ -1,345 +1,345 @@ { - "generated_at": "2025-10-02T20:29:23.410Z", - "model": "claude-sonnet-4-5-20250929", - "total_sections": 167, - "successful_summaries": 167, - "failed_summaries": 0, - "summaries": { - "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", - "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", - "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", - "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", - "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", - "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", - "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", - "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", - "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", - "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", - "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", - "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", - "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", - "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", - "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", - "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", - "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", - "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", - "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", - "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", - "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", - "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", - "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", - "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", - "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", - "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", - "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", - "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", - "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", - "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", - "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", - "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", - "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", - "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", - "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", - "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", - "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", - "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", - "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", - "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", - "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", - "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", - "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", - "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", - "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", - "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", - "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", - "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", - "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", - "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", - "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", - "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", - "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", - "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", - "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", - "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", - "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", - "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", - "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", - "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", - "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", - "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", - "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", - "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", - "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", - "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", - "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", - "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", - "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", - "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", - "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", - "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", - "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", - "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", - "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", - "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", - "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", - "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", - "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", - "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", - "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", - "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", - "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", - "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", - "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", - "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", - "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", - "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", - "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", - "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", - "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", - "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", - "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", - "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", - "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", - "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", - "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", - "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", - "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", - "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", - "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", - "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", - "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", - "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", - "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", - "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", - "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", - "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", - "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", - "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", - "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", - "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", - "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", - "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", - "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", - "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", - "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", - "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", - "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", - "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", - "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", - "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", - "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", - "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", - "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", - "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", - "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", - "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", - "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", - "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", - "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", - "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", - "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", - "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", - "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", - "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", - "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", - "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", - "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", - "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", - "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", - "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", - "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", - "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", - "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", - "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", - "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", - "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", - "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", - "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", - "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", - "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", - "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", - "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", - "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", - "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", - "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", - "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", - "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", - "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", - "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", - "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", - "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", - "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", - "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", - "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", - "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" - }, - "content_hashes": { - "cli/overview": "", - "cli/faq": "", - "cli/sv-create": "", - "cli/sv-add": "", - "cli/sv-check": "", - "cli/sv-migrate": "", - "cli/devtools-json": "", - "cli/drizzle": "", - "cli/eslint": "", - "cli/lucia": "", - "cli/mdsvex": "", - "cli/paraglide": "", - "cli/playwright": "", - "cli/prettier": "", - "cli/storybook": "", - "cli/sveltekit-adapter": "", - "cli/tailwind": "", - "cli/vitest": "", - "kit/introduction": "", - "kit/creating-a-project": "", - "kit/project-types": "", - "kit/project-structure": "", - "kit/web-standards": "", - "kit/routing": "", - "kit/load": "", - "kit/form-actions": "", - "kit/page-options": "", - "kit/state-management": "", - "kit/remote-functions": "", - "kit/building-your-app": "", - "kit/adapters": "", - "kit/adapter-auto": "", - "kit/adapter-node": "", - "kit/adapter-static": "", - "kit/single-page-apps": "", - "kit/adapter-cloudflare": "", - "kit/adapter-cloudflare-workers": "", - "kit/adapter-netlify": "", - "kit/adapter-vercel": "", - "kit/writing-adapters": "", - "kit/advanced-routing": "", - "kit/hooks": "", - "kit/errors": "", - "kit/link-options": "", - "kit/service-workers": "", - "kit/server-only-modules": "", - "kit/snapshots": "", - "kit/shallow-routing": "", - "kit/observability": "", - "kit/packaging": "", - "kit/auth": "", - "kit/performance": "", - "kit/icons": "", - "kit/images": "", - "kit/accessibility": "", - "kit/seo": "", - "kit/faq": "", - "kit/integrations": "", - "kit/debugging": "", - "kit/migrating-to-sveltekit-2": "", - "kit/migrating": "", - "kit/additional-resources": "", - "kit/glossary": "", - "kit/@sveltejs-kit": "", - "kit/@sveltejs-kit-hooks": "", - "kit/@sveltejs-kit-node-polyfills": "", - "kit/@sveltejs-kit-node": "", - "kit/@sveltejs-kit-vite": "", - "kit/$app-environment": "", - "kit/$app-forms": "", - "kit/$app-navigation": "", - "kit/$app-paths": "", - "kit/$app-server": "", - "kit/$app-state": "", - "kit/$app-stores": "", - "kit/$app-types": "", - "kit/$env-dynamic-private": "", - "kit/$env-dynamic-public": "", - "kit/$env-static-private": "", - "kit/$env-static-public": "", - "kit/$lib": "", - "kit/$service-worker": "", - "kit/configuration": "", - "kit/cli": "", - "kit/types": "", - "svelte/overview": "", - "svelte/getting-started": "", - "svelte/svelte-files": "", - "svelte/svelte-js-files": "", - "svelte/what-are-runes": "", - "svelte/$state": "", - "svelte/$derived": "", - "svelte/$effect": "", - "svelte/$props": "", - "svelte/$bindable": "", - "svelte/$inspect": "", - "svelte/$host": "", - "svelte/basic-markup": "", - "svelte/if": "", - "svelte/each": "", - "svelte/key": "", - "svelte/await": "", - "svelte/snippet": "", - "svelte/@render": "", - "svelte/@html": "", - "svelte/@attach": "", - "svelte/@const": "", - "svelte/@debug": "", - "svelte/bind": "", - "svelte/use": "", - "svelte/transition": "", - "svelte/in-and-out": "", - "svelte/animate": "", - "svelte/style": "", - "svelte/class": "", - "svelte/await-expressions": "", - "svelte/scoped-styles": "", - "svelte/global-styles": "", - "svelte/custom-properties": "", - "svelte/nested-style-elements": "", - "svelte/svelte-boundary": "", - "svelte/svelte-window": "", - "svelte/svelte-document": "", - "svelte/svelte-body": "", - "svelte/svelte-head": "", - "svelte/svelte-element": "", - "svelte/svelte-options": "", - "svelte/stores": "", - "svelte/context": "", - "svelte/lifecycle-hooks": "", - "svelte/imperative-component-api": "", - "svelte/testing": "", - "svelte/typescript": "", - "svelte/custom-elements": "", - "svelte/v4-migration-guide": "", - "svelte/v5-migration-guide": "", - "svelte/faq": "", - "svelte/svelte": "", - "svelte/svelte-action": "", - "svelte/svelte-animate": "", - "svelte/svelte-attachments": "", - "svelte/svelte-compiler": "", - "svelte/svelte-easing": "", - "svelte/svelte-events": "", - "svelte/svelte-legacy": "", - "svelte/svelte-motion": "", - "svelte/svelte-reactivity-window": "", - "svelte/svelte-reactivity": "", - "svelte/svelte-server": "", - "svelte/svelte-store": "", - "svelte/svelte-transition": "", - "svelte/compiler-errors": "", - "svelte/compiler-warnings": "", - "svelte/runtime-errors": "", - "svelte/runtime-warnings": "", - "svelte/legacy-overview": "", - "svelte/legacy-let": "", - "svelte/legacy-reactive-assignments": "", - "svelte/legacy-export-let": "", - "svelte/legacy-$$props-and-$$restProps": "", - "svelte/legacy-on": "", - "svelte/legacy-slots": "", - "svelte/legacy-$$slots": "", - "svelte/legacy-svelte-fragment": "", - "svelte/legacy-svelte-component": "", - "svelte/legacy-svelte-self": "", - "svelte/legacy-component-api": "" - } + "generated_at": "2025-10-02T20:29:23.410Z", + "model": "claude-sonnet-4-5-20250929", + "total_sections": 167, + "successful_summaries": 167, + "failed_summaries": 0, + "summaries": { + "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", + "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", + "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", + "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", + "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", + "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", + "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", + "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", + "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", + "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", + "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", + "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", + "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", + "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", + "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", + "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", + "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", + "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", + "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", + "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", + "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", + "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", + "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", + "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", + "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", + "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", + "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", + "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", + "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", + "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", + "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", + "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", + "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", + "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", + "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", + "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", + "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", + "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", + "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", + "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", + "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", + "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", + "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", + "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", + "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", + "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", + "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", + "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", + "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", + "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", + "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", + "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", + "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", + "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", + "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", + "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", + "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", + "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", + "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", + "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", + "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", + "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", + "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", + "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", + "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", + "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", + "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", + "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", + "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", + "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", + "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", + "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", + "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", + "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", + "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", + "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", + "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", + "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", + "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", + "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", + "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", + "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", + "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", + "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", + "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", + "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", + "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", + "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", + "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", + "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", + "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", + "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", + "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", + "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", + "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", + "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", + "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", + "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", + "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", + "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", + "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", + "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", + "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", + "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", + "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", + "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", + "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", + "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", + "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", + "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", + "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", + "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", + "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", + "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", + "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", + "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", + "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", + "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", + "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", + "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", + "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", + "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", + "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", + "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", + "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", + "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", + "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", + "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", + "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", + "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", + "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", + "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", + "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", + "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", + "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", + "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", + "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", + "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", + "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", + "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", + "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", + "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", + "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", + "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", + "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", + "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", + "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", + "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", + "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", + "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", + "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", + "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", + "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", + "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", + "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", + "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", + "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", + "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", + "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", + "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", + "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", + "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", + "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", + "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", + "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", + "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", + "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" + }, + "content_hashes": { + "cli/overview": "", + "cli/faq": "", + "cli/sv-create": "", + "cli/sv-add": "", + "cli/sv-check": "", + "cli/sv-migrate": "", + "cli/devtools-json": "", + "cli/drizzle": "", + "cli/eslint": "", + "cli/lucia": "", + "cli/mdsvex": "", + "cli/paraglide": "", + "cli/playwright": "", + "cli/prettier": "", + "cli/storybook": "", + "cli/sveltekit-adapter": "", + "cli/tailwind": "", + "cli/vitest": "", + "kit/introduction": "", + "kit/creating-a-project": "", + "kit/project-types": "", + "kit/project-structure": "", + "kit/web-standards": "", + "kit/routing": "", + "kit/load": "", + "kit/form-actions": "", + "kit/page-options": "", + "kit/state-management": "", + "kit/remote-functions": "", + "kit/building-your-app": "", + "kit/adapters": "", + "kit/adapter-auto": "", + "kit/adapter-node": "", + "kit/adapter-static": "", + "kit/single-page-apps": "", + "kit/adapter-cloudflare": "", + "kit/adapter-cloudflare-workers": "", + "kit/adapter-netlify": "", + "kit/adapter-vercel": "", + "kit/writing-adapters": "", + "kit/advanced-routing": "", + "kit/hooks": "", + "kit/errors": "", + "kit/link-options": "", + "kit/service-workers": "", + "kit/server-only-modules": "", + "kit/snapshots": "", + "kit/shallow-routing": "", + "kit/observability": "", + "kit/packaging": "", + "kit/auth": "", + "kit/performance": "", + "kit/icons": "", + "kit/images": "", + "kit/accessibility": "", + "kit/seo": "", + "kit/faq": "", + "kit/integrations": "", + "kit/debugging": "", + "kit/migrating-to-sveltekit-2": "", + "kit/migrating": "", + "kit/additional-resources": "", + "kit/glossary": "", + "kit/@sveltejs-kit": "", + "kit/@sveltejs-kit-hooks": "", + "kit/@sveltejs-kit-node-polyfills": "", + "kit/@sveltejs-kit-node": "", + "kit/@sveltejs-kit-vite": "", + "kit/$app-environment": "", + "kit/$app-forms": "", + "kit/$app-navigation": "", + "kit/$app-paths": "", + "kit/$app-server": "", + "kit/$app-state": "", + "kit/$app-stores": "", + "kit/$app-types": "", + "kit/$env-dynamic-private": "", + "kit/$env-dynamic-public": "", + "kit/$env-static-private": "", + "kit/$env-static-public": "", + "kit/$lib": "", + "kit/$service-worker": "", + "kit/configuration": "", + "kit/cli": "", + "kit/types": "", + "svelte/overview": "", + "svelte/getting-started": "", + "svelte/svelte-files": "", + "svelte/svelte-js-files": "", + "svelte/what-are-runes": "", + "svelte/$state": "", + "svelte/$derived": "", + "svelte/$effect": "", + "svelte/$props": "", + "svelte/$bindable": "", + "svelte/$inspect": "", + "svelte/$host": "", + "svelte/basic-markup": "", + "svelte/if": "", + "svelte/each": "", + "svelte/key": "", + "svelte/await": "", + "svelte/snippet": "", + "svelte/@render": "", + "svelte/@html": "", + "svelte/@attach": "", + "svelte/@const": "", + "svelte/@debug": "", + "svelte/bind": "", + "svelte/use": "", + "svelte/transition": "", + "svelte/in-and-out": "", + "svelte/animate": "", + "svelte/style": "", + "svelte/class": "", + "svelte/await-expressions": "", + "svelte/scoped-styles": "", + "svelte/global-styles": "", + "svelte/custom-properties": "", + "svelte/nested-style-elements": "", + "svelte/svelte-boundary": "", + "svelte/svelte-window": "", + "svelte/svelte-document": "", + "svelte/svelte-body": "", + "svelte/svelte-head": "", + "svelte/svelte-element": "", + "svelte/svelte-options": "", + "svelte/stores": "", + "svelte/context": "", + "svelte/lifecycle-hooks": "", + "svelte/imperative-component-api": "", + "svelte/testing": "", + "svelte/typescript": "", + "svelte/custom-elements": "", + "svelte/v4-migration-guide": "", + "svelte/v5-migration-guide": "", + "svelte/faq": "", + "svelte/svelte": "", + "svelte/svelte-action": "", + "svelte/svelte-animate": "", + "svelte/svelte-attachments": "", + "svelte/svelte-compiler": "", + "svelte/svelte-easing": "", + "svelte/svelte-events": "", + "svelte/svelte-legacy": "", + "svelte/svelte-motion": "", + "svelte/svelte-reactivity-window": "", + "svelte/svelte-reactivity": "", + "svelte/svelte-server": "", + "svelte/svelte-store": "", + "svelte/svelte-transition": "", + "svelte/compiler-errors": "", + "svelte/compiler-warnings": "", + "svelte/runtime-errors": "", + "svelte/runtime-warnings": "", + "svelte/legacy-overview": "", + "svelte/legacy-let": "", + "svelte/legacy-reactive-assignments": "", + "svelte/legacy-export-let": "", + "svelte/legacy-$$props-and-$$restProps": "", + "svelte/legacy-on": "", + "svelte/legacy-slots": "", + "svelte/legacy-$$slots": "", + "svelte/legacy-svelte-fragment": "", + "svelte/legacy-svelte-component": "", + "svelte/legacy-svelte-self": "", + "svelte/legacy-component-api": "" + } } From 15677b8ca4b619a2cc91bdde4314cd3f5335b554 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:22:54 +0200 Subject: [PATCH 19/99] wip --- package.json | 2 +- packages/mcp-server/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6262daf6..f3e28a73 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,8 @@ "inspect": "pnpm mcp-inspector", "generate-summaries": "pnpm --filter @sveltejs/mcp-server run generate-summaries", "generate-summaries:dry-run": "pnpm --filter @sveltejs/mcp-server run generate-summaries:dry-run", + "generate-summaries:debug": "pnpm --filter @sveltejs/mcp-server run generate-summaries:debug", "generate-prompt-docs": "node --import node-resolve-ts/register scripts/update-docs-prompts.ts", - "debug:generate-summaries": "pnpm --filter @sveltejs/mcp-server run debug:generate-summaries", "release": "pnpm --filter @sveltejs/mcp run build && changeset publish", "changeset:version": "changeset version && pnpm --filter @sveltejs/mcp run update:version && git add --all" }, diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 8d7d8945..6a489af0 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -12,7 +12,7 @@ "test": "vitest", "generate-summaries": "node --experimental-strip-types scripts/generate-summaries.ts", "generate-summaries:dry-run": "node --experimental-strip-types scripts/generate-summaries.ts --dry-run", - "debug:generate-summaries": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts" + "generate-summaries:debug": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts" }, "exports": { ".": "./src/index.ts" From e347cc8caa66876a769a0014acd04249db27f210 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:25:38 +0200 Subject: [PATCH 20/99] Update generate-summaries.ts --- .../mcp-server/scripts/generate-summaries.ts | 113 ++++++++---------- 1 file changed, 53 insertions(+), 60 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 6df704ca..750f4007 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -125,18 +125,16 @@ export async function load_existing_summaries(output_path: string): Promise, existing_data: SummaryData | null, + current_hashes: Map, force: boolean, -): Promise<{ +): { to_process: Array<{ slug: string; title: string; url: string }>; to_remove: string[]; changes: SectionChange[]; - fetched_content: Map; -}> { - const fetched_content = new Map(); - +} { if (!existing_data || force) { // First run or force regeneration return { @@ -146,7 +144,6 @@ async function detect_changes( ...s, change_type: force ? 'changed' : 'new', })), - fetched_content, }; } @@ -160,27 +157,24 @@ async function detect_changes( // Check for new and changed sections for (const section of current_sections) { + const current_hash = current_hashes.get(section.slug); + if (!current_hash) { + // Failed to download content for this section, skip it + continue; + } + if (!existing_slugs.has(section.slug)) { // New section sections_to_process.push(section); changes.push({ ...section, change_type: 'new' }); } else { // Existing section - check if content changed - try { - const content = await fetch_section_content(section.url); - fetched_content.set(section.slug, content); - const current_hash = compute_content_hash(content); - const stored_hash = existing_content_hashes[section.slug] ?? ''; - - if (current_hash !== stored_hash) { - // Content has changed - sections_to_process.push(section); - changes.push({ ...section, change_type: 'changed' }); - } - } catch (error) { - const error_msg = error instanceof Error ? error.message : String(error); - console.warn(` ⚠️ Failed to fetch ${section.title} for change check: ${error_msg}`); - // If we can't fetch it, we can't check for changes, so skip it + const stored_hash = existing_content_hashes[section.slug] ?? ''; + + if (current_hash !== stored_hash) { + // Content has changed + sections_to_process.push(section); + changes.push({ ...section, change_type: 'changed' }); } } } @@ -203,7 +197,6 @@ async function detect_changes( to_process: sections_to_process, to_remove: removed_slugs, changes, - fetched_content, }; } @@ -245,11 +238,34 @@ async function main() { const all_sections = await get_sections(); console.log(`Found ${all_sections.length} sections from API`); + // Download content for ALL sections (needed to compute hashes) + console.log('\nπŸ“₯ Downloading section content...'); + const section_content = new Map(); + const section_hashes = new Map(); + const download_errors: Array<{ section: string; error: string }> = []; + + for (let i = 0; i < all_sections.length; i++) { + const section = all_sections[i]!; + try { + console.log(` Fetching ${i + 1}/${all_sections.length}: ${section.title}`); + const content = await fetch_section_content(section.url); + section_content.set(section.slug, content); + section_hashes.set(section.slug, compute_content_hash(content)); + } catch (error) { + const error_msg = error instanceof Error ? error.message : String(error); + console.error(` ⚠️ Failed to fetch ${section.title}:`, error_msg); + download_errors.push({ section: section.title, error: error_msg }); + } + } + + console.log(`βœ… Successfully downloaded ${section_content.size} sections`); + // Detect what needs to be processed - console.log('πŸ” Checking for content changes...'); - const { to_process, to_remove, changes, fetched_content } = await detect_changes( + console.log('\nπŸ” Checking for content changes...'); + const { to_process, to_remove, changes } = detect_changes( all_sections, existing_data, + section_hashes, options.force, ); @@ -306,47 +322,30 @@ async function main() { process.exit(1); } - // Fetch content for sections to process (reusing already-fetched content when available) - console.log('\nπŸ“₯ Downloading section content...'); + // Build sections_with_content from already-downloaded content + console.log('\nπŸ“¦ Preparing sections for processing...'); const sections_with_content: Array<{ section: (typeof sections_to_process)[number]; content: string; index: number; }> = []; - const download_errors: Array<{ section: string; error: string }> = []; for (let i = 0; i < sections_to_process.length; i++) { const section = sections_to_process[i]!; + const content = section_content.get(section.slug); - // Check if we already fetched this content during change detection - const cached_content = fetched_content.get(section.slug); - if (cached_content) { - console.log(` Using cached ${i + 1}/${sections_to_process.length}: ${section.title}`); - sections_with_content.push({ - section, - content: cached_content, - index: i, - }); - continue; - } - - // Fetch content if not cached - try { - console.log(` Fetching ${i + 1}/${sections_to_process.length}: ${section.title}`); - const content = await fetch_section_content(section.url); + if (content) { sections_with_content.push({ section, content, index: i, }); - } catch (error) { - const error_msg = error instanceof Error ? error.message : String(error); - console.error(` ⚠️ Failed to fetch ${section.title}:`, error_msg); - download_errors.push({ section: section.title, error: error_msg }); + } else { + console.warn(` ⚠️ No content available for ${section.title}`); } } - console.log(`βœ… Successfully downloaded ${sections_with_content.length} sections`); + console.log(`βœ… Prepared ${sections_with_content.length} sections for processing`); if (sections_with_content.length === 0 && to_remove.length === 0) { console.error('❌ No sections were successfully downloaded and nothing to remove'); @@ -355,7 +354,6 @@ async function main() { // Process with Anthropic API if we have content const new_summaries: Record = {}; - const new_content_hashes: Record = {}; if (sections_with_content.length > 0) { console.log('\nπŸ€– Initializing Anthropic API...'); @@ -421,7 +419,7 @@ async function main() { continue; } - const { section, content } = section_data; + const { section } = section_data; if (result.result.type !== 'succeeded' || !result.result.message) { const error_msg = result.result.error?.message || 'Failed or no message'; @@ -433,7 +431,6 @@ async function main() { const output_content = result.result.message.content[0]?.text; if (output_content) { new_summaries[section.slug] = output_content.trim(); - new_content_hashes[section.slug] = compute_content_hash(content); console.log(` βœ… ${section.title}`); } } @@ -447,19 +444,15 @@ async function main() { ? { ...existing_data.summaries } : {}; - // Start with existing content hashes or empty object - const merged_content_hashes: Record = existing_data - ? { ...existing_data.content_hashes } - : {}; + // Use current hashes for ALL sections (convert Map to Record) + const merged_content_hashes: Record = Object.fromEntries(section_hashes); - // Add/update new summaries and hashes + // Add/update new summaries Object.assign(merged_summaries, new_summaries); - Object.assign(merged_content_hashes, new_content_hashes); - // Remove deleted sections from both summaries and hashes + // Remove deleted sections from summaries (hashes already don't include removed sections) for (const slug of to_remove) { delete merged_summaries[slug]; - delete merged_content_hashes[slug]; console.log(` πŸ—‘οΈ Removed: ${slug}`); } From efd1d94c013055ed1f84d95820b483187d7e2c91 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:31:53 +0200 Subject: [PATCH 21/99] Update generate-summaries.test.ts --- packages/mcp-server/scripts/generate-summaries.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/mcp-server/scripts/generate-summaries.test.ts b/packages/mcp-server/scripts/generate-summaries.test.ts index 03cea348..3a408050 100644 --- a/packages/mcp-server/scripts/generate-summaries.test.ts +++ b/packages/mcp-server/scripts/generate-summaries.test.ts @@ -12,6 +12,7 @@ const test_use_cases_path = path.join(test_output_dir, 'use_cases.json'); function create_summary_data( summaries: Record, total_sections: number = Object.keys(summaries).length, + content_hashes: Record = {}, ): SummaryData { return { generated_at: new Date().toISOString(), @@ -20,6 +21,7 @@ function create_summary_data( successful_summaries: Object.keys(summaries).length, failed_summaries: 0, summaries, + content_hashes, }; } From 02172d68cf0ead6d8b4dd5e37d5039011eae2ea1 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:39:19 +0200 Subject: [PATCH 22/99] remove unnecessary error checking --- .../mcp-server/scripts/generate-summaries.ts | 69 ++++++------------- packages/mcp-server/src/lib/schemas.ts | 17 ----- 2 files changed, 20 insertions(+), 66 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 750f4007..30c34c76 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -159,8 +159,7 @@ function detect_changes( for (const section of current_sections) { const current_hash = current_hashes.get(section.slug); if (!current_hash) { - // Failed to download content for this section, skip it - continue; + throw new Error(`No content hash found for section: ${section.slug}`); } if (!existing_slugs.has(section.slug)) { @@ -242,20 +241,13 @@ async function main() { console.log('\nπŸ“₯ Downloading section content...'); const section_content = new Map(); const section_hashes = new Map(); - const download_errors: Array<{ section: string; error: string }> = []; for (let i = 0; i < all_sections.length; i++) { const section = all_sections[i]!; - try { - console.log(` Fetching ${i + 1}/${all_sections.length}: ${section.title}`); - const content = await fetch_section_content(section.url); - section_content.set(section.slug, content); - section_hashes.set(section.slug, compute_content_hash(content)); - } catch (error) { - const error_msg = error instanceof Error ? error.message : String(error); - console.error(` ⚠️ Failed to fetch ${section.title}:`, error_msg); - download_errors.push({ section: section.title, error: error_msg }); - } + console.log(` Fetching ${i + 1}/${all_sections.length}: ${section.title}`); + const content = await fetch_section_content(section.url); + section_content.set(section.slug, content); + section_hashes.set(section.slug, compute_content_hash(content)); } console.log(`βœ… Successfully downloaded ${section_content.size} sections`); @@ -334,24 +326,19 @@ async function main() { const section = sections_to_process[i]!; const content = section_content.get(section.slug); - if (content) { - sections_with_content.push({ - section, - content, - index: i, - }); - } else { - console.warn(` ⚠️ No content available for ${section.title}`); + if (!content) { + throw new Error(`No content available for ${section.title}`); } + + sections_with_content.push({ + section, + content, + index: i, + }); } console.log(`βœ… Prepared ${sections_with_content.length} sections for processing`); - if (sections_with_content.length === 0 && to_remove.length === 0) { - console.error('❌ No sections were successfully downloaded and nothing to remove'); - process.exit(1); - } - // Process with Anthropic API if we have content const new_summaries: Record = {}; @@ -408,31 +395,29 @@ async function main() { // Process results console.log('πŸ“Š Processing results...'); - const errors: Array<{ section: string; error: string }> = []; for (const result of results) { const index = parseInt(result.custom_id.split('-')[1] ?? '0'); const section_data = sections_with_content.find((s) => s.index === index); if (!section_data) { - console.warn(` ⚠️ Could not find section for index ${index}`); - continue; + throw new Error(`Could not find section for index ${index}`); } const { section } = section_data; if (result.result.type !== 'succeeded' || !result.result.message) { const error_msg = result.result.error?.message || 'Failed or no message'; - console.error(` ❌ ${section.title}: ${error_msg}`); - errors.push({ section: section.title, error: error_msg }); - continue; + throw new Error(`Failed to generate summary for ${section.title}: ${error_msg}`); } const output_content = result.result.message.content[0]?.text; - if (output_content) { - new_summaries[section.slug] = output_content.trim(); - console.log(` βœ… ${section.title}`); + if (!output_content) { + throw new Error(`No text content in result for ${section.title}`); } + + new_summaries[section.slug] = output_content.trim(); + console.log(` βœ… ${section.title}`); } // Merge with existing summaries @@ -466,17 +451,8 @@ async function main() { model: 'claude-sonnet-4-5-20250929', total_sections: all_sections.length, successful_summaries: Object.keys(merged_summaries).length, - failed_summaries: - sections_with_content.length > 0 - ? sections_with_content.length - Object.keys(new_summaries).length - : 0, summaries: merged_summaries, content_hashes: merged_content_hashes, - errors: - download_errors.length > 0 || sections_with_content.length > 0 - ? download_errors - : undefined, - download_errors: download_errors.length > 0 ? download_errors : undefined, }; await writeFile(output_path, JSON.stringify(summary_data, null, 2), 'utf-8'); @@ -489,11 +465,6 @@ async function main() { console.log(` Sections removed: ${to_remove.length}`); console.log(` Total summaries in file: ${Object.keys(merged_summaries).length}`); console.log(`\nβœ… Results written to: ${output_path}`); - - if (download_errors.length > 0) { - console.log('\n⚠️ Some sections failed to download:'); - download_errors.forEach((e) => console.log(` - ${e.section}: ${e.error}`)); - } } } diff --git a/packages/mcp-server/src/lib/schemas.ts b/packages/mcp-server/src/lib/schemas.ts index 8822fda5..7ff7907b 100644 --- a/packages/mcp-server/src/lib/schemas.ts +++ b/packages/mcp-server/src/lib/schemas.ts @@ -17,25 +17,8 @@ export const summary_data_schema = v.object({ model: v.string(), total_sections: v.number(), successful_summaries: v.number(), - failed_summaries: v.number(), summaries: v.record(v.string(), v.string()), content_hashes: v.record(v.string(), v.string()), - errors: v.optional( - v.array( - v.object({ - section: v.string(), - error: v.string(), - }), - ), - ), - download_errors: v.optional( - v.array( - v.object({ - section: v.string(), - error: v.string(), - }), - ), - ), }); export const anthropic_batch_request_schema = v.object({ From f1c72ae73cb9dfaf94d18ec2d2df5f8e65d8c867 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:45:02 +0200 Subject: [PATCH 23/99] Update use_cases.json --- packages/mcp-server/src/use_cases.json | 699 +++++++++++++------------ 1 file changed, 355 insertions(+), 344 deletions(-) diff --git a/packages/mcp-server/src/use_cases.json b/packages/mcp-server/src/use_cases.json index 8da34fd8..1d56be0b 100644 --- a/packages/mcp-server/src/use_cases.json +++ b/packages/mcp-server/src/use_cases.json @@ -1,345 +1,356 @@ { - "generated_at": "2025-10-02T20:29:23.410Z", - "model": "claude-sonnet-4-5-20250929", - "total_sections": 167, - "successful_summaries": 167, - "failed_summaries": 0, - "summaries": { - "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", - "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", - "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", - "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", - "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", - "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", - "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", - "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", - "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", - "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", - "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", - "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", - "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", - "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", - "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", - "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", - "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", - "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", - "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", - "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", - "kit/project-types": "deployment, project setup, choosing adapters, ssg, spa, ssr, serverless, mobile apps, desktop apps, pwa, offline apps, browser extensions, separate backend, docker containers", - "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", - "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", - "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", - "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", - "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", - "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", - "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", - "kit/remote-functions": "data fetching, server-side logic, database queries, type-safe client-server communication, forms, user input, mutations, authentication, crud operations, optimistic updates", - "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", - "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", - "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", - "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", - "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", - "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", - "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", - "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", - "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", - "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", - "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", - "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", - "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", - "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", - "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", - "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", - "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", - "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", - "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", - "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", - "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", - "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", - "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", - "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", - "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", - "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", - "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", - "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", - "kit/integrations": "project setup, css preprocessors, postcss, scss, sass, less, stylus, typescript setup, adding integrations, tailwind, testing, auth, linting, formatting", - "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", - "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", - "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", - "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", - "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", - "kit/@sveltejs-kit": "forms, form actions, server-side validation, form submission, error handling, redirects, json responses, http errors, server utilities", - "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", - "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", - "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", - "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", - "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", - "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", - "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", - "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", - "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, api endpoints, client-server communication, prerendering, file reading, batch queries", - "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", - "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", - "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", - "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", - "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", - "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", - "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", - "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", - "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", - "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", - "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", - "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", - "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", - "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", - "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", - "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", - "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", - "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", - "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", - "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", - "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", - "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", - "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", - "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", - "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", - "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", - "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", - "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", - "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", - "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", - "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", - "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", - "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", - "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", - "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", - "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", - "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", - "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", - "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", - "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", - "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", - "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", - "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", - "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", - "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", - "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", - "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", - "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", - "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", - "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", - "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", - "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", - "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", - "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", - "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", - "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", - "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", - "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", - "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", - "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", - "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", - "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", - "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", - "svelte/faq": "getting started, learning svelte, beginner setup, project initialization, vs code setup, formatting, testing, routing, mobile apps, troubleshooting, community support", - "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", - "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", - "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", - "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", - "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", - "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", - "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", - "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", - "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", - "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", - "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", - "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", - "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", - "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", - "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", - "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", - "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", - "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", - "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", - "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", - "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", - "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", - "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", - "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", - "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", - "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", - "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", - "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", - "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", - "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns" - }, - "content_hashes": { - "cli/overview": "", - "cli/faq": "", - "cli/sv-create": "", - "cli/sv-add": "", - "cli/sv-check": "", - "cli/sv-migrate": "", - "cli/devtools-json": "", - "cli/drizzle": "", - "cli/eslint": "", - "cli/lucia": "", - "cli/mdsvex": "", - "cli/paraglide": "", - "cli/playwright": "", - "cli/prettier": "", - "cli/storybook": "", - "cli/sveltekit-adapter": "", - "cli/tailwind": "", - "cli/vitest": "", - "kit/introduction": "", - "kit/creating-a-project": "", - "kit/project-types": "", - "kit/project-structure": "", - "kit/web-standards": "", - "kit/routing": "", - "kit/load": "", - "kit/form-actions": "", - "kit/page-options": "", - "kit/state-management": "", - "kit/remote-functions": "", - "kit/building-your-app": "", - "kit/adapters": "", - "kit/adapter-auto": "", - "kit/adapter-node": "", - "kit/adapter-static": "", - "kit/single-page-apps": "", - "kit/adapter-cloudflare": "", - "kit/adapter-cloudflare-workers": "", - "kit/adapter-netlify": "", - "kit/adapter-vercel": "", - "kit/writing-adapters": "", - "kit/advanced-routing": "", - "kit/hooks": "", - "kit/errors": "", - "kit/link-options": "", - "kit/service-workers": "", - "kit/server-only-modules": "", - "kit/snapshots": "", - "kit/shallow-routing": "", - "kit/observability": "", - "kit/packaging": "", - "kit/auth": "", - "kit/performance": "", - "kit/icons": "", - "kit/images": "", - "kit/accessibility": "", - "kit/seo": "", - "kit/faq": "", - "kit/integrations": "", - "kit/debugging": "", - "kit/migrating-to-sveltekit-2": "", - "kit/migrating": "", - "kit/additional-resources": "", - "kit/glossary": "", - "kit/@sveltejs-kit": "", - "kit/@sveltejs-kit-hooks": "", - "kit/@sveltejs-kit-node-polyfills": "", - "kit/@sveltejs-kit-node": "", - "kit/@sveltejs-kit-vite": "", - "kit/$app-environment": "", - "kit/$app-forms": "", - "kit/$app-navigation": "", - "kit/$app-paths": "", - "kit/$app-server": "", - "kit/$app-state": "", - "kit/$app-stores": "", - "kit/$app-types": "", - "kit/$env-dynamic-private": "", - "kit/$env-dynamic-public": "", - "kit/$env-static-private": "", - "kit/$env-static-public": "", - "kit/$lib": "", - "kit/$service-worker": "", - "kit/configuration": "", - "kit/cli": "", - "kit/types": "", - "svelte/overview": "", - "svelte/getting-started": "", - "svelte/svelte-files": "", - "svelte/svelte-js-files": "", - "svelte/what-are-runes": "", - "svelte/$state": "", - "svelte/$derived": "", - "svelte/$effect": "", - "svelte/$props": "", - "svelte/$bindable": "", - "svelte/$inspect": "", - "svelte/$host": "", - "svelte/basic-markup": "", - "svelte/if": "", - "svelte/each": "", - "svelte/key": "", - "svelte/await": "", - "svelte/snippet": "", - "svelte/@render": "", - "svelte/@html": "", - "svelte/@attach": "", - "svelte/@const": "", - "svelte/@debug": "", - "svelte/bind": "", - "svelte/use": "", - "svelte/transition": "", - "svelte/in-and-out": "", - "svelte/animate": "", - "svelte/style": "", - "svelte/class": "", - "svelte/await-expressions": "", - "svelte/scoped-styles": "", - "svelte/global-styles": "", - "svelte/custom-properties": "", - "svelte/nested-style-elements": "", - "svelte/svelte-boundary": "", - "svelte/svelte-window": "", - "svelte/svelte-document": "", - "svelte/svelte-body": "", - "svelte/svelte-head": "", - "svelte/svelte-element": "", - "svelte/svelte-options": "", - "svelte/stores": "", - "svelte/context": "", - "svelte/lifecycle-hooks": "", - "svelte/imperative-component-api": "", - "svelte/testing": "", - "svelte/typescript": "", - "svelte/custom-elements": "", - "svelte/v4-migration-guide": "", - "svelte/v5-migration-guide": "", - "svelte/faq": "", - "svelte/svelte": "", - "svelte/svelte-action": "", - "svelte/svelte-animate": "", - "svelte/svelte-attachments": "", - "svelte/svelte-compiler": "", - "svelte/svelte-easing": "", - "svelte/svelte-events": "", - "svelte/svelte-legacy": "", - "svelte/svelte-motion": "", - "svelte/svelte-reactivity-window": "", - "svelte/svelte-reactivity": "", - "svelte/svelte-server": "", - "svelte/svelte-store": "", - "svelte/svelte-transition": "", - "svelte/compiler-errors": "", - "svelte/compiler-warnings": "", - "svelte/runtime-errors": "", - "svelte/runtime-warnings": "", - "svelte/legacy-overview": "", - "svelte/legacy-let": "", - "svelte/legacy-reactive-assignments": "", - "svelte/legacy-export-let": "", - "svelte/legacy-$$props-and-$$restProps": "", - "svelte/legacy-on": "", - "svelte/legacy-slots": "", - "svelte/legacy-$$slots": "", - "svelte/legacy-svelte-fragment": "", - "svelte/legacy-svelte-component": "", - "svelte/legacy-svelte-self": "", - "svelte/legacy-component-api": "" - } -} + "generated_at": "2025-10-11T00:44:20.606Z", + "model": "claude-sonnet-4-5-20250929", + "total_sections": 173, + "successful_summaries": 173, + "summaries": { + "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", + "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", + "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", + "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", + "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", + "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", + "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", + "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", + "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", + "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", + "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", + "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", + "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", + "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", + "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", + "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", + "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", + "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", + "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", + "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", + "kit/project-types": "deployment, project setup, choosing adapters, ssr vs csr, static sites, spas, serverless, mobile apps, desktop apps, pwa, browser extensions", + "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", + "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", + "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", + "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", + "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", + "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", + "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", + "kit/remote-functions": "remote functions, type-safe client-server communication, data fetching, forms, mutations, database queries, user authentication, crud operations, api endpoints", + "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", + "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", + "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", + "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", + "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", + "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", + "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", + "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", + "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", + "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", + "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", + "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", + "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", + "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", + "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", + "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", + "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", + "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", + "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", + "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", + "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", + "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", + "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", + "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", + "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", + "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", + "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", + "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", + "kit/integrations": "project setup, css preprocessors, typescript configuration, adding integrations, tooling setup", + "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", + "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", + "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", + "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", + "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", + "kit/@sveltejs-kit": "forms, form actions, form submission, form validation, error handling, redirects, api endpoints, server-side logic, data mutations, user input processing", + "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", + "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", + "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", + "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", + "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", + "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", + "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", + "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", + "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, mutations, prerendering, reading static assets, batch queries, client-server communication", + "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", + "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", + "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", + "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", + "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", + "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", + "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", + "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", + "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", + "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", + "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", + "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", + "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", + "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", + "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", + "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", + "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", + "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", + "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", + "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", + "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", + "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", + "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", + "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", + "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", + "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", + "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", + "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", + "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", + "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", + "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", + "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", + "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", + "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", + "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", + "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", + "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", + "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", + "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", + "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", + "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", + "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", + "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", + "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", + "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", + "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", + "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", + "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", + "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", + "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", + "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", + "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", + "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", + "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", + "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", + "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", + "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", + "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", + "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", + "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", + "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", + "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", + "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", + "svelte/faq": "getting started, learning svelte, project setup, beginner tutorials, vs code setup, code formatting, testing, routing, component documentation, mobile apps, styling issues", + "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", + "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", + "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", + "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", + "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", + "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", + "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", + "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", + "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", + "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", + "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", + "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", + "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", + "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", + "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", + "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", + "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", + "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", + "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", + "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", + "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", + "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", + "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", + "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", + "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", + "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", + "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", + "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", + "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", + "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns", + "mcp/overview": "ai development, llm integration, code generation tools, agent setup, improving ai code quality, svelte tooling for ai assistants", + "mcp/local-setup": "ai-assisted development, mcp integration, claude setup, cursor setup, vscode setup, ai coding tools, development environment configuration", + "mcp/remote-setup": "ai-assisted development, using claude/cursor/vscode with mcp, integrating svelte documentation into ide, ai coding tools setup", + "mcp/tools": "ai development, llm integration, code generation tools, chatbot features, ai-assisted coding, automated code analysis, testing generated code", + "mcp/resources": "mcp server setup, ai-assisted development, llm integration, documentation tooling, developer workflow automation", + "mcp/prompts": "mcp server setup, ai assistant integration, llm tool configuration, svelte development workflow automation" + }, + "content_hashes": { + "cli/overview": "24ce88570619713523dd675b54cf5ed810fc787f91c44295ed66cba88b586ab2", + "cli/faq": "130b9862c1e56e7c289f7f350cf63c2bbd06b5895cecf2408d7018b30308596b", + "cli/sv-create": "8ebe2ab8a05f73d57b6c20ca062694fafa17afebcf6228eadb28c9e2269532dc", + "cli/sv-add": "febb2db174bb74aafadba071d03e60be32affd39256488dd9d7bf039bc99e55c", + "cli/sv-check": "998117f78c8d13cda5aa9b8584f47306aedab8b4c5748b633f8282c994e5314d", + "cli/sv-migrate": "8f0638858fb871b313d3aa7d15b3a82167e59fc2243f7991ca9d784c88abe728", + "cli/devtools-json": "f68617102d58bc74cfa894254a3ec53950a69f62888477314dee5f2e8fa7d08c", + "cli/drizzle": "f402220ec1272ddd283bd16b0116a4e584f9d7ff32cf31cd61e1b87467863bae", + "cli/eslint": "881091b7857f92188ab98fba009cc7229414966a5f784550522a32c08dff8bc7", + "cli/lucia": "9bdc0d65fea53e3f6709f02bbc6e7b5e14b815874f267d71fec6401fa2bb0de1", + "cli/mdsvex": "4c9a3d8a661325d45b04ae511bb07fb8fb3853ef6e9ddba905e11ff10096aa44", + "cli/paraglide": "3052be60f590bfdb3ebdd3232c5d4cea47b45004238eed25c14062451b8084ab", + "cli/playwright": "255bc17601b4545fcf76dd9639b8d0a07bc9c1967e0bc8b0f8a4c67747fa27ad", + "cli/prettier": "b6eaf065c2dd9a529b58aa848b81ca0aa48a61286093697007f101b18a64a3f4", + "cli/storybook": "266ccae29ef911b2b3dc3d5c85e087d35bd20cd040ce0ce3b759cda057a6dbec", + "cli/sveltekit-adapter": "8fa56b7fc75c856ec28ff0e6b05c3c290869c3f6701f469f4cf6d748b45c43fe", + "cli/tailwind": "06f78477ba2df15fe0c5ee5698cb47e9bdbb558ad4e9c73a5c3a89be4935b22c", + "cli/vitest": "49e0d37ae9a4a8af6d098ad0189d479ec7c07dc31a2fa3e7c8237e457c0e4f8b", + "kit/introduction": "28c0756c4179d9be8a3feb146ed139feb260e78f0226078d5c4829fd4a303e67", + "kit/creating-a-project": "65828935583402267d681f4609d04a2485f71c5d0a35fd4362f54f781bfabfc9", + "kit/project-types": "4730fd90c7bb1459d1f8987fbeecdea5df42b538dc03b1b9b35ae68df4d959f0", + "kit/project-structure": "fbc465d2744567cee3507e7b39c743cb9cac6c489c3349d6cc95ce1ced8b1435", + "kit/web-standards": "a54c4c2d97f8c50e4c1170dd6059a125a9f7c79f7c0484a348a24e015cccf4ea", + "kit/routing": "1fac22ea79cc9370e259adc2031f2259b53a655b9f1539506bb08f463a95aa2a", + "kit/load": "986bf651baa6157301c3d5de873ddb3533a5df9397d995c7a079e8c7ddcbd496", + "kit/form-actions": "781ffd55a5d4d05b5766ef6367d4cf353425f611d5f0876959796212a2ff14c8", + "kit/page-options": "c1275054c96c6044352bc457415d3c258c9a6af48db862003e1b9ee6c7c908c5", + "kit/state-management": "502db80d327820e8785301688f2351459179ad995e50dce8f4755f5d5d0ac6bd", + "kit/remote-functions": "7a12920dc5b3f9760c3a1a0e6be3347c24ed700da95ac407ad3e9fb1c670f0cc", + "kit/building-your-app": "20c5e2c2106bed1b052e037729b4410d12bf96e3d3bbb7fcbba346a308db00e8", + "kit/adapters": "dd1909dd7297d3cef2a9489b7ce49036f8e559401d2504ee916d7f464fb21822", + "kit/adapter-auto": "d09059d0117e2fa4ceb66650f47c3649420e1597452b0650905068df9a5ce5b1", + "kit/adapter-node": "7f6046c4d9907006e0be9ecd7f291848953051ef85271483fb2baaa13c7d87dd", + "kit/adapter-static": "c2e7be2cc09d0828a62ea843483efa0b74518b704699a3527b2c6098db8e17b5", + "kit/single-page-apps": "47fe9184df8e8eaaa22970aee1200fba02b6c1b478a6ffc26d1935635c8e0daa", + "kit/adapter-cloudflare": "2a64107ce88e5ccb39615688412c5a8186980655673a5133a2dc50659ed5aab3", + "kit/adapter-cloudflare-workers": "424a8fbee22b74c59c30125f8e2843e292b8a64fd0e16df43ea5ca9c2750298c", + "kit/adapter-netlify": "b43920d5588573a3ae22b71f4e60a19114725fa252239cc35e332965b5716bc3", + "kit/adapter-vercel": "05cff8e507f64d37be03750fa719a4195ab4984ce8c9f381ea2209d8410497e9", + "kit/writing-adapters": "e4c68eec588c6b4e5e7a53d96a4b85e26f3112458c430e90e7cdb2b20cf520d1", + "kit/advanced-routing": "a91ec9444fd4dac8ff8cf13b2461e4dbbe2567e665e190bda29785537a0656e3", + "kit/hooks": "e30ecbd21e7f29c16b42345b06b3e15be22796b158bde3256818121eaca18d66", + "kit/errors": "fd8a2a2627a43141247d881fddc6e35c9cadec80014e97356249cafc1c3a6d9d", + "kit/link-options": "37f95fa6c1b1af1a91ab62f4aa6b299e5462b6e5c1b58e0b02d8c1115e86cded", + "kit/service-workers": "b662bafc6116274744cdea6d4ab9ef1eff2f0155dd7b3d9cef7d02a2d618701e", + "kit/server-only-modules": "e5f80d7c5f350e7ca6e631bb893e83280ba3745a099a6942789def4919d41fd5", + "kit/snapshots": "fdb47bf4216c38e9a8de0ddf2bb0608d35b762f30c7ee8602de53a6d0d9e4a0a", + "kit/shallow-routing": "30d4b3b2ef8fbb921b5c176c1d147413f366dceb8fcbafc14ca63481c14cd3d4", + "kit/observability": "47d603f5c605f5b4afcdfb22dc9b2f5fd145ae5c6d2a1f7ff42ab97a6bba8768", + "kit/packaging": "249a22b2cb633f2bb1e63d1ff0d85c85b9cba64d4421853cb81e9aed5a96153e", + "kit/auth": "728a3b639a4c2cca049cbf55aea37373856f3fa6deb435f42362fa91073ad5f4", + "kit/performance": "ab69e26e699e8e7bfa669dc8f497f46f3dd9cec8f6c41226795e6932b6f145f7", + "kit/icons": "d677885a338c1e579a8ea6dfe39ae10a1d20818089f7ef8652f90285a9121da8", + "kit/images": "e6957eb17b5a7628e402f75388d221a51e1f26e6a1ad0593d7fd66d6eac88fea", + "kit/accessibility": "9886bfa33757fc6070b2fb5257d392ef4222d5f904f12769d2c1393681f60d95", + "kit/seo": "bc9620fd9e0647862de12ac97acdcf0c8b612235dd1c2181b0167cd5d8f1895b", + "kit/faq": "57a5a8cab8696e3856d8ccc1f352d7ddebaf62a54c41f73de449e78cdd8d4a53", + "kit/integrations": "995541eea85cab10811d69a6f2fdb0cb17d8ca4dfa0a955e3e6b99c78b53cfe8", + "kit/debugging": "2dfd5e91bcb6371dd6596d2a6aafbd75fa4f289c859a06378f83db47ede02573", + "kit/migrating-to-sveltekit-2": "1e14881387117aba2fd8652f0e61179cbe48d6d0b56dd79764b9a11fbf593ec6", + "kit/migrating": "02f0dd45b5813c1f34d447c3a410e3a6a563ea2ec54fb06481be7ec690b97f81", + "kit/additional-resources": "c6ff893413728f3165d5d6fa12c6ce81b36cfb867701f4ed8f5a46e50a28c4c2", + "kit/glossary": "243f61f794e383efa48c4226e0a0e1d64f7e43e2049351cb02b007c95f6034ad", + "kit/@sveltejs-kit": "4c3efcfc5179bbf05d87c22fefdf1444e96961d389cc0e61291ac94b7d93c8ab", + "kit/@sveltejs-kit-hooks": "0fe8e4e985961ea67a721ed432c8c559c17ff09c1bda37b4b54239475c1ed47e", + "kit/@sveltejs-kit-node-polyfills": "9f6bf38e1d0aa53cc055c8de2505ee5a80113b2db4d4db4a8cc9f9c68cf0b58c", + "kit/@sveltejs-kit-node": "5bc0958d92037a982c4ffa47f11cd5e5ec6b91f503009fd644ac705c68247b79", + "kit/@sveltejs-kit-vite": "7b8684d54b4cd2420d329536695d29c5d77891ed3f5062ff529f01524b0d8b33", + "kit/$app-environment": "4bb0aee3c952ded3112422be5bc69c34b960cc73819d4b4d3b55ca3558aa2d45", + "kit/$app-forms": "61a344004d71b921bb3c7d39a2afd9af4de5226a9e960b314838041b0792ea7f", + "kit/$app-navigation": "92e632af18b1b9717fa6416f3eb410155f370c7ac7232077cbbbbec57fb9360a", + "kit/$app-paths": "2c92cb88bf3b4a2dfbb29506edf4edcd4fb38b16a58c7d59efbca8cb3b53dcce", + "kit/$app-server": "50c53e4f8851a489c0bdad479c58a82203188c5735d8ff36794172cf44f2695a", + "kit/$app-state": "1d33d98725276564f912f1566a723235d26ddc24dc11381a2a05e3202db69e91", + "kit/$app-stores": "f05e079b15bee2c561005f7f3b500f735a89c087da5778ad9390f2a1854fe3ec", + "kit/$app-types": "9c5b3e9e428f9bd437b288e45679452960f46ebeace6f2a0f3da763b6a1ab9cd", + "kit/$env-dynamic-private": "019a9b64f30a4407631d56554f2124061ad16b424888752186bdc961edf59eae", + "kit/$env-dynamic-public": "39f6ff446965be224e528d14c9bfbb71f5fd9809f71db575bca6333d6427e941", + "kit/$env-static-private": "526b80041929480f89ca948c02878aa8df669ae5380416bc30dc2d181869a6b3", + "kit/$env-static-public": "5054a554cdd0a781ac5b5649aba92040556f87ad77cd1cc53fa939f544ac9515", + "kit/$lib": "98d7b3ec9b4fba7e8d40b0c9a0845228d874bc037610abc12b346787557709ad", + "kit/$service-worker": "d8a7b705cc0fde5e80ac381d5dc325ae689bd5a28c255eee4802396b2c0276db", + "kit/configuration": "263d0373bf4da8181fb77b01a8ddc367cac7e101552bb6f252a48bcbee8139b6", + "kit/cli": "690b0bd6cddbf1b1d2cb52a2956a757a515ca4e4b41ae6c85b37d94b8d1ade84", + "kit/types": "1519bf5d3bdc6324a7da937d64624f6b2caed779c3e4091ac4439769beaa3453", + "mcp/overview": "2f120bae00baa384aefc093eea0e3298e2e8fbda1ffa1c55c8ae956b83f28976", + "mcp/local-setup": "615547482fc28ae62e5287f79124618b275f62017bfff511466f2326271b5bb9", + "mcp/remote-setup": "af2dd1872f26a220838def57ae5d6f4424affb9d3f1d53ca570c021bb93d658d", + "mcp/tools": "ccf68183cc4b6801a6aeeb575bfbdbdebd1af305624fe6cf64de3dbbeb9e025f", + "mcp/resources": "381b5a3256eda7e8e09f8e8760dba1d0c542a49f4961c203f3f9ad10c1f5d638", + "mcp/prompts": "84327e4e2d5b97a1fe3c8a693ab0f20a94dc068abb8d80bdde64dc09e7431b32", + "svelte/overview": "7700ca74f439e7c3d397f6ceeed70aed59cf177894a30b475ed601778e9e8042", + "svelte/getting-started": "80bbf8f2ea3580febd3e20296fdf63f29997e26e727774c2fc6080456bee4f52", + "svelte/svelte-files": "8971b9003e5ce6898894a01615b5816c7a95191b5e327af53ce31b49844d6f0a", + "svelte/svelte-js-files": "b6a481a0ba8e3498533a27d6ff34c4caf46b319716729e80b4e0abe98e90ae0d", + "svelte/what-are-runes": "d52254d2631c5014d33de163a8ac8f3a011f3921397633bb2a9aeb90510b3479", + "svelte/$state": "7d8c804721e60d4902109ebebea5cf3920f61af7c7613b1530406b27a1bdc105", + "svelte/$derived": "b85bac4b7541f9eec5050c4afe11efa120c8d83de07073357769de328a2b9d70", + "svelte/$effect": "fc928d4d5daafec1b06b7b143492524cf0ec5059b2ecf6cc88b56539e3d08375", + "svelte/$props": "8b0e924f115db23113867c70863f8b24ec843f285fede30d54ede21fb7c3b83f", + "svelte/$bindable": "60375b28577bc285815809c5bb85dec0a5e123bf3eda0da374d4c0cb28d9a377", + "svelte/$inspect": "014b8f124d82cca846a14096588de250c09469b52f4bc0380fad45ec572ea0e3", + "svelte/$host": "37a9fb749359688e1d68e03bef6833a67beb7ab695a5faeb73ed1d6ad1867c5f", + "svelte/basic-markup": "7aebf6ad9be00b337d4018ddf768c11e1e8e13e9a8952c7ddc743d6cc1cca428", + "svelte/if": "e4da4ed94902fa904fa168b50bb68d838f94a2c2be4faa5fef00b3dbbcc61645", + "svelte/each": "e8d75f3a210da756db04881c81499027a6be5f875a0747fd4c01c4cc1f37a01b", + "svelte/key": "5df663b8f1ada229fd771e5dc64bf5ad96ca21e27f6bd8c5b499d7b5fed5da35", + "svelte/await": "ba40da73575717b3005d8c3f4fadf1dc47d4369229b1f1b98a9962dc5f05df3f", + "svelte/snippet": "96f1853f3ca164532427e0c881b647b252ffb94cd3559505d8cf41ddd5279973", + "svelte/@render": "fefc529a277b207668ec7171bdd044117b96792ed19903e0f6a0c35d1a184780", + "svelte/@html": "37ffb87f829e7b36b521ee5e99f5956d76baf449e32661c5f7156f805e1fc82f", + "svelte/@attach": "9bef203823fe4795129e280d37830b068bb9a6e805ccbadcf8509a3c0ee6151a", + "svelte/@const": "e79a941a3e248400ed19fc410bdcca1e1dfd50b5e9f21b2d8224ef176e3e75cc", + "svelte/@debug": "f57a6ce04733ab2e2af63b2d59344414e7b5130bdec00274e3542dcb468c8a21", + "svelte/bind": "025daf253af040a560d79a8e5efee56f2d2922c55ab80fead24623d86c36d1d3", + "svelte/use": "adb10f7ef6a316db21b32a2bc2cea079abe37c48bb33cdebf9db91592115bf23", + "svelte/transition": "e916f804688a8d4dc7d6f34b2d5862595aa5a4a10daede17861d370eec873050", + "svelte/in-and-out": "d1dc82a686f09fc6dec814a8ce824e40757c4b857b147a69e6c84bf93b0bcc17", + "svelte/animate": "0320580f745ba93cb536ecbef5e10c227caad60fefae5dadc9dd52166a9453d7", + "svelte/style": "a7e861bea29058120c83982fdc8b421dea565032f2940e18fa068df6a73eb061", + "svelte/class": "15318e5a8d676aa840f71229a3f3e432883a7bbd00c4ef2b28e4fd4db755584d", + "svelte/await-expressions": "01dc0a2118fd8a2cd649c737e097635a013576f85b473a752756ccaf92aa27e8", + "svelte/scoped-styles": "c4ade79680ca0bda7e157be5fcafdb063002bacc79a5f9c1e8530ec4b479df7f", + "svelte/global-styles": "52b1090dfdbff596c3f19264277df4b0d2b3a063e3ee3f42610b23c629ccac02", + "svelte/custom-properties": "b0d4f8432380284735838ea0ab48812dc37665dec364908d3dc2c82fcb5179d9", + "svelte/nested-style-elements": "86f7e79c3532f5a2e88f6cbfd3c2d4496f3c42858b799e6f47dd32409055ec29", + "svelte/svelte-boundary": "a1ffd2ced1122092b06c7a5c3e2b66d127daa632a9888f8987de1438d24a2af4", + "svelte/svelte-window": "95f83adf2a83e810917df66ec3ae64a083e20f79b9bae25a63693edad6186930", + "svelte/svelte-document": "ea8eafada6dd22a1ca36a6d2b7c2ebd996620dd809bd29f1cf2e23912c9f2fb4", + "svelte/svelte-body": "6d42bb102657242d2745658e8394df8e948384c93896bb1a38eba628129580e0", + "svelte/svelte-head": "7d7ed49de4b8eaed5a7c2a3741c9c97d7f07f1c61d609cf95ea4642d7d9519fc", + "svelte/svelte-element": "dbc2894d1a4df3bbc010e14fe8acaf47cab1e47595083549bcbe03ef6d70c0f8", + "svelte/svelte-options": "361ae053b401b5748092545e79387c1fd204a0c05e0c97af476dd5c2b6459a05", + "svelte/stores": "6af05349fa2e56cf97baf52bfdad4baa56205a07676bbbbf83ba9cc11b4f74c9", + "svelte/context": "5aced025a25892c041d22e2942d5c793cab49425dbb79aa24c6e8bda6f831e52", + "svelte/lifecycle-hooks": "4cb4967ff252980753a385d7400aeecd6e7e7e5d49853b07e6ce9ac5c21f226b", + "svelte/imperative-component-api": "f65ba0880e127ea497167efeae5f6250233b35764549b81ba338f5e172fa4a84", + "svelte/testing": "b186d594536788db689e45f5d006effa5bb0852539751a9f469c33f871ffbb07", + "svelte/typescript": "0a7109270bbf8fb388e51e38b868f46c532d54ba3a7ae3304b0b369ec9f03c30", + "svelte/custom-elements": "a74ef3bc373c0cf5d7d439accf11d398b3180f3e44fe576b1e68dd2813b6484d", + "svelte/v4-migration-guide": "d78c974770bab180bfa50f8465ddd08d29dc3355d7d8da4aa2f892f68a8dcbae", + "svelte/v5-migration-guide": "6e92e90f8b5086a7b1eda8d498e995650d4f93ef05ec35c89e24909c21f623bb", + "svelte/faq": "e935b0651782fde2cb138dac2586fbb3627fddc08cdd7a8b00d1d09a5b63ff8d", + "svelte/svelte": "bd2a9bcc3babc4dd148ae71ddb437d9c6e359c516f0823e14cd02fa99be3b37a", + "svelte/svelte-action": "dd41790ddfa6ad8763c566bf81abcefd47bf1d82465e77224034507d65ef7dd2", + "svelte/svelte-animate": "4b96afa6848acf81497770d69b655df3c7472b546f3024dcc25521ec14e585ed", + "svelte/svelte-attachments": "4da23f36026be101db0440d9357e84d765b58cca00678548f52139a133913e9a", + "svelte/svelte-compiler": "6815a77b9d14d476a4d4bc6ad589e5436ca3f8c897952eb858ee359ebba59f49", + "svelte/svelte-easing": "452e4c4f8485a8047c3320c58fb4df07acaa8c7bd6171828f0b55673a05f2b22", + "svelte/svelte-events": "06c912902e80d19cb1ca7e2eac03ca7138d0f9a39547f5ee51115196d483e948", + "svelte/svelte-legacy": "b285c8859ed7403616829e2dcbf1a81982942182f8039a1acbba1a0082b54804", + "svelte/svelte-motion": "c64243c31d2187b9fa41c16697fe3a5f204603382be53b6a6d8aef27ab4142e6", + "svelte/svelte-reactivity-window": "48a9e5dba5564bddaac94a0d7ba4c8d5f8e2480cdebb19ba71288936bc76bdf1", + "svelte/svelte-reactivity": "4ff4d515986a45e575bfa8d64e09e5f6b61a9f35e79035f7507cd502b9431d4f", + "svelte/svelte-server": "bb027c8e6c0aa48a77349a49671f0bd60fec07b7c0150f1498e4a18e5f90288b", + "svelte/svelte-store": "6f99d25bd75333042c6aa1377e33d5cc51aabf48b660eda5756f08d7d3b7a9b2", + "svelte/svelte-transition": "e57769d1e309aa9f2fa4d591ac2fb7d73aedf232a437b975e7845352a3ad9909", + "svelte/compiler-errors": "88172d54e4e4a1b094b8ec526fa84e0a9ee3a0cbfcbe90de6a09c580c48c3a0f", + "svelte/compiler-warnings": "885adaa867ffd525b695b32b87789cf2d9bde741d45c13dd153dd5519233fd4b", + "svelte/runtime-errors": "59035d3cf75f6af6fdd94fcf22c42cb66e892adf4d55a81801072c53f3dabcac", + "svelte/runtime-warnings": "93b6ee308fd13add66bc7621659c22580eef4d6614bf78f0a130879ae5d8ec64", + "svelte/legacy-overview": "f999cc193b4ecf36cbfb99b52107a55aa7b841b6e01ea5e0229799abd90933dc", + "svelte/legacy-let": "3660721b3cd7cdcb60b77450bd87b6ded93eb7d47aee9950db994d3450d07739", + "svelte/legacy-reactive-assignments": "ca81836b396d9f6d4df34707ea79ed177bdd2d93dd3b43e37137dfca37396d31", + "svelte/legacy-export-let": "0223ca4f538116da46d27840653a11c352d88ad2f5eb8cc9a50a5b590001aad3", + "svelte/legacy-$$props-and-$$restProps": "8d91d694b70547a915cc2360ea1c63e7b9dcd29fd0fedfc04b2fb3ade6c152a7", + "svelte/legacy-on": "7dde3692ea5c91bbcf1d86ff91fce1966df0952d2cf153f3fab6fa1a55774330", + "svelte/legacy-slots": "05d8524ab20b47d5f07e67f0634d425cf892715c68cf635b134d6b19e397bbb8", + "svelte/legacy-$$slots": "d3aa2e8e480a9593259ad1d5dec43a605ed28bb92e7007d0713f60a398803d7c", + "svelte/legacy-svelte-fragment": "aaa2a5b2fbb72fa2dfe5f10cdb2287863cf99d9590a634b43e28336da1a89e54", + "svelte/legacy-svelte-component": "3c2d5fb89cfe5657950d279a4189ab1f877dac99e8afca187fc5952eecb39ae0", + "svelte/legacy-svelte-self": "afc8f5667bd3643e206f1bd4298ee5e259ca0b5e8cf7b2fb7b9afd692b66ad78", + "svelte/legacy-component-api": "9bd8fde41aa9e006091751b16d3de14b28471733534e08dfba99d745db78fac6" + } +} \ No newline at end of file From eecaf8cd5af92a3d6f5abbf17b3a69ffb6d17191 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:51:12 +0200 Subject: [PATCH 24/99] add distilled support --- .../mcp-server/scripts/generate-summaries.ts | 20 +- packages/mcp-server/src/use_cases.json | 710 +++++++++--------- 2 files changed, 372 insertions(+), 358 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 30c34c76..87a8c19f 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -18,6 +18,7 @@ interface CliOptions { force: boolean; dryRun: boolean; debug: boolean; + promptType: 'use-cases' | 'condensed'; } interface SectionChange { @@ -86,6 +87,8 @@ Here is the documentation page content to analyze: `; +const CONDENSED_PROMPT = `TODO`; + const program = new Command(); program @@ -94,7 +97,12 @@ program .version('1.0.0') .option('-f, --force', 'Force regeneration of all summaries', false) .option('-d, --dry-run', 'Show what would be changed without making API calls', false) - .option('--debug', 'Debug mode: process only 2 sections', false); + .option('--debug', 'Debug mode: process only 2 sections', false) + .option( + '-p, --prompt-type ', + 'Prompt type to use: "use-cases" or "condensed"', + 'use-cases', + ); async function fetch_section_content(url: string) { const response = await fetch(url, { signal: AbortSignal.timeout(30000) }); @@ -208,9 +216,15 @@ async function main() { console.log('πŸš€ Starting use cases generation...'); - const output_path = path.join(current_dirname, '../src/use_cases.json'); + // Determine output file based on prompt type + const output_filename = options.promptType === 'condensed' ? 'condensed.json' : 'use_cases.json'; + const output_path = path.join(current_dirname, `../src/${output_filename}`); + + // Select prompt based on prompt type + const selected_prompt = options.promptType === 'condensed' ? CONDENSED_PROMPT : USE_CASES_PROMPT; // Display mode information + console.log(`πŸ“ PROMPT MODE: ${options.promptType.toUpperCase()} β†’ ${output_filename}\n`); if (options.dryRun) { console.log('πŸ” DRY RUN MODE - No API calls will be made\n'); } @@ -357,7 +371,7 @@ async function main() { messages: [ { role: 'user', - content: USE_CASES_PROMPT + content, + content: selected_prompt + content, }, ], temperature: 0, diff --git a/packages/mcp-server/src/use_cases.json b/packages/mcp-server/src/use_cases.json index 1d56be0b..ff2c524a 100644 --- a/packages/mcp-server/src/use_cases.json +++ b/packages/mcp-server/src/use_cases.json @@ -1,356 +1,356 @@ { - "generated_at": "2025-10-11T00:44:20.606Z", - "model": "claude-sonnet-4-5-20250929", - "total_sections": 173, - "successful_summaries": 173, - "summaries": { - "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", - "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", - "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", - "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", - "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", - "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", - "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", - "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", - "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", - "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", - "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", - "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", - "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", - "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", - "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", - "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", - "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", - "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", - "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", - "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", - "kit/project-types": "deployment, project setup, choosing adapters, ssr vs csr, static sites, spas, serverless, mobile apps, desktop apps, pwa, browser extensions", - "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", - "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", - "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", - "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", - "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", - "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", - "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", - "kit/remote-functions": "remote functions, type-safe client-server communication, data fetching, forms, mutations, database queries, user authentication, crud operations, api endpoints", - "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", - "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", - "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", - "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", - "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", - "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", - "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", - "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", - "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", - "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", - "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", - "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", - "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", - "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", - "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", - "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", - "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", - "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", - "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", - "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", - "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", - "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", - "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", - "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", - "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", - "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", - "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", - "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", - "kit/integrations": "project setup, css preprocessors, typescript configuration, adding integrations, tooling setup", - "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", - "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", - "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", - "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", - "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", - "kit/@sveltejs-kit": "forms, form actions, form submission, form validation, error handling, redirects, api endpoints, server-side logic, data mutations, user input processing", - "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", - "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", - "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", - "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", - "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", - "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", - "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", - "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", - "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, mutations, prerendering, reading static assets, batch queries, client-server communication", - "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", - "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", - "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", - "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", - "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", - "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", - "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", - "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", - "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", - "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", - "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", - "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", - "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", - "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", - "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", - "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", - "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", - "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", - "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", - "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", - "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", - "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", - "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", - "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", - "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", - "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", - "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", - "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", - "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", - "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", - "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", - "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", - "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", - "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", - "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", - "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", - "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", - "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", - "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", - "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", - "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", - "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", - "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", - "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", - "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", - "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", - "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", - "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", - "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", - "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", - "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", - "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", - "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", - "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", - "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", - "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", - "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", - "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", - "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", - "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", - "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", - "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", - "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", - "svelte/faq": "getting started, learning svelte, project setup, beginner tutorials, vs code setup, code formatting, testing, routing, component documentation, mobile apps, styling issues", - "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", - "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", - "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", - "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", - "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", - "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", - "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", - "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", - "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", - "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", - "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", - "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", - "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", - "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", - "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", - "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", - "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", - "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", - "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", - "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", - "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", - "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", - "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", - "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", - "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", - "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", - "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", - "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", - "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", - "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns", - "mcp/overview": "ai development, llm integration, code generation tools, agent setup, improving ai code quality, svelte tooling for ai assistants", - "mcp/local-setup": "ai-assisted development, mcp integration, claude setup, cursor setup, vscode setup, ai coding tools, development environment configuration", - "mcp/remote-setup": "ai-assisted development, using claude/cursor/vscode with mcp, integrating svelte documentation into ide, ai coding tools setup", - "mcp/tools": "ai development, llm integration, code generation tools, chatbot features, ai-assisted coding, automated code analysis, testing generated code", - "mcp/resources": "mcp server setup, ai-assisted development, llm integration, documentation tooling, developer workflow automation", - "mcp/prompts": "mcp server setup, ai assistant integration, llm tool configuration, svelte development workflow automation" - }, - "content_hashes": { - "cli/overview": "24ce88570619713523dd675b54cf5ed810fc787f91c44295ed66cba88b586ab2", - "cli/faq": "130b9862c1e56e7c289f7f350cf63c2bbd06b5895cecf2408d7018b30308596b", - "cli/sv-create": "8ebe2ab8a05f73d57b6c20ca062694fafa17afebcf6228eadb28c9e2269532dc", - "cli/sv-add": "febb2db174bb74aafadba071d03e60be32affd39256488dd9d7bf039bc99e55c", - "cli/sv-check": "998117f78c8d13cda5aa9b8584f47306aedab8b4c5748b633f8282c994e5314d", - "cli/sv-migrate": "8f0638858fb871b313d3aa7d15b3a82167e59fc2243f7991ca9d784c88abe728", - "cli/devtools-json": "f68617102d58bc74cfa894254a3ec53950a69f62888477314dee5f2e8fa7d08c", - "cli/drizzle": "f402220ec1272ddd283bd16b0116a4e584f9d7ff32cf31cd61e1b87467863bae", - "cli/eslint": "881091b7857f92188ab98fba009cc7229414966a5f784550522a32c08dff8bc7", - "cli/lucia": "9bdc0d65fea53e3f6709f02bbc6e7b5e14b815874f267d71fec6401fa2bb0de1", - "cli/mdsvex": "4c9a3d8a661325d45b04ae511bb07fb8fb3853ef6e9ddba905e11ff10096aa44", - "cli/paraglide": "3052be60f590bfdb3ebdd3232c5d4cea47b45004238eed25c14062451b8084ab", - "cli/playwright": "255bc17601b4545fcf76dd9639b8d0a07bc9c1967e0bc8b0f8a4c67747fa27ad", - "cli/prettier": "b6eaf065c2dd9a529b58aa848b81ca0aa48a61286093697007f101b18a64a3f4", - "cli/storybook": "266ccae29ef911b2b3dc3d5c85e087d35bd20cd040ce0ce3b759cda057a6dbec", - "cli/sveltekit-adapter": "8fa56b7fc75c856ec28ff0e6b05c3c290869c3f6701f469f4cf6d748b45c43fe", - "cli/tailwind": "06f78477ba2df15fe0c5ee5698cb47e9bdbb558ad4e9c73a5c3a89be4935b22c", - "cli/vitest": "49e0d37ae9a4a8af6d098ad0189d479ec7c07dc31a2fa3e7c8237e457c0e4f8b", - "kit/introduction": "28c0756c4179d9be8a3feb146ed139feb260e78f0226078d5c4829fd4a303e67", - "kit/creating-a-project": "65828935583402267d681f4609d04a2485f71c5d0a35fd4362f54f781bfabfc9", - "kit/project-types": "4730fd90c7bb1459d1f8987fbeecdea5df42b538dc03b1b9b35ae68df4d959f0", - "kit/project-structure": "fbc465d2744567cee3507e7b39c743cb9cac6c489c3349d6cc95ce1ced8b1435", - "kit/web-standards": "a54c4c2d97f8c50e4c1170dd6059a125a9f7c79f7c0484a348a24e015cccf4ea", - "kit/routing": "1fac22ea79cc9370e259adc2031f2259b53a655b9f1539506bb08f463a95aa2a", - "kit/load": "986bf651baa6157301c3d5de873ddb3533a5df9397d995c7a079e8c7ddcbd496", - "kit/form-actions": "781ffd55a5d4d05b5766ef6367d4cf353425f611d5f0876959796212a2ff14c8", - "kit/page-options": "c1275054c96c6044352bc457415d3c258c9a6af48db862003e1b9ee6c7c908c5", - "kit/state-management": "502db80d327820e8785301688f2351459179ad995e50dce8f4755f5d5d0ac6bd", - "kit/remote-functions": "7a12920dc5b3f9760c3a1a0e6be3347c24ed700da95ac407ad3e9fb1c670f0cc", - "kit/building-your-app": "20c5e2c2106bed1b052e037729b4410d12bf96e3d3bbb7fcbba346a308db00e8", - "kit/adapters": "dd1909dd7297d3cef2a9489b7ce49036f8e559401d2504ee916d7f464fb21822", - "kit/adapter-auto": "d09059d0117e2fa4ceb66650f47c3649420e1597452b0650905068df9a5ce5b1", - "kit/adapter-node": "7f6046c4d9907006e0be9ecd7f291848953051ef85271483fb2baaa13c7d87dd", - "kit/adapter-static": "c2e7be2cc09d0828a62ea843483efa0b74518b704699a3527b2c6098db8e17b5", - "kit/single-page-apps": "47fe9184df8e8eaaa22970aee1200fba02b6c1b478a6ffc26d1935635c8e0daa", - "kit/adapter-cloudflare": "2a64107ce88e5ccb39615688412c5a8186980655673a5133a2dc50659ed5aab3", - "kit/adapter-cloudflare-workers": "424a8fbee22b74c59c30125f8e2843e292b8a64fd0e16df43ea5ca9c2750298c", - "kit/adapter-netlify": "b43920d5588573a3ae22b71f4e60a19114725fa252239cc35e332965b5716bc3", - "kit/adapter-vercel": "05cff8e507f64d37be03750fa719a4195ab4984ce8c9f381ea2209d8410497e9", - "kit/writing-adapters": "e4c68eec588c6b4e5e7a53d96a4b85e26f3112458c430e90e7cdb2b20cf520d1", - "kit/advanced-routing": "a91ec9444fd4dac8ff8cf13b2461e4dbbe2567e665e190bda29785537a0656e3", - "kit/hooks": "e30ecbd21e7f29c16b42345b06b3e15be22796b158bde3256818121eaca18d66", - "kit/errors": "fd8a2a2627a43141247d881fddc6e35c9cadec80014e97356249cafc1c3a6d9d", - "kit/link-options": "37f95fa6c1b1af1a91ab62f4aa6b299e5462b6e5c1b58e0b02d8c1115e86cded", - "kit/service-workers": "b662bafc6116274744cdea6d4ab9ef1eff2f0155dd7b3d9cef7d02a2d618701e", - "kit/server-only-modules": "e5f80d7c5f350e7ca6e631bb893e83280ba3745a099a6942789def4919d41fd5", - "kit/snapshots": "fdb47bf4216c38e9a8de0ddf2bb0608d35b762f30c7ee8602de53a6d0d9e4a0a", - "kit/shallow-routing": "30d4b3b2ef8fbb921b5c176c1d147413f366dceb8fcbafc14ca63481c14cd3d4", - "kit/observability": "47d603f5c605f5b4afcdfb22dc9b2f5fd145ae5c6d2a1f7ff42ab97a6bba8768", - "kit/packaging": "249a22b2cb633f2bb1e63d1ff0d85c85b9cba64d4421853cb81e9aed5a96153e", - "kit/auth": "728a3b639a4c2cca049cbf55aea37373856f3fa6deb435f42362fa91073ad5f4", - "kit/performance": "ab69e26e699e8e7bfa669dc8f497f46f3dd9cec8f6c41226795e6932b6f145f7", - "kit/icons": "d677885a338c1e579a8ea6dfe39ae10a1d20818089f7ef8652f90285a9121da8", - "kit/images": "e6957eb17b5a7628e402f75388d221a51e1f26e6a1ad0593d7fd66d6eac88fea", - "kit/accessibility": "9886bfa33757fc6070b2fb5257d392ef4222d5f904f12769d2c1393681f60d95", - "kit/seo": "bc9620fd9e0647862de12ac97acdcf0c8b612235dd1c2181b0167cd5d8f1895b", - "kit/faq": "57a5a8cab8696e3856d8ccc1f352d7ddebaf62a54c41f73de449e78cdd8d4a53", - "kit/integrations": "995541eea85cab10811d69a6f2fdb0cb17d8ca4dfa0a955e3e6b99c78b53cfe8", - "kit/debugging": "2dfd5e91bcb6371dd6596d2a6aafbd75fa4f289c859a06378f83db47ede02573", - "kit/migrating-to-sveltekit-2": "1e14881387117aba2fd8652f0e61179cbe48d6d0b56dd79764b9a11fbf593ec6", - "kit/migrating": "02f0dd45b5813c1f34d447c3a410e3a6a563ea2ec54fb06481be7ec690b97f81", - "kit/additional-resources": "c6ff893413728f3165d5d6fa12c6ce81b36cfb867701f4ed8f5a46e50a28c4c2", - "kit/glossary": "243f61f794e383efa48c4226e0a0e1d64f7e43e2049351cb02b007c95f6034ad", - "kit/@sveltejs-kit": "4c3efcfc5179bbf05d87c22fefdf1444e96961d389cc0e61291ac94b7d93c8ab", - "kit/@sveltejs-kit-hooks": "0fe8e4e985961ea67a721ed432c8c559c17ff09c1bda37b4b54239475c1ed47e", - "kit/@sveltejs-kit-node-polyfills": "9f6bf38e1d0aa53cc055c8de2505ee5a80113b2db4d4db4a8cc9f9c68cf0b58c", - "kit/@sveltejs-kit-node": "5bc0958d92037a982c4ffa47f11cd5e5ec6b91f503009fd644ac705c68247b79", - "kit/@sveltejs-kit-vite": "7b8684d54b4cd2420d329536695d29c5d77891ed3f5062ff529f01524b0d8b33", - "kit/$app-environment": "4bb0aee3c952ded3112422be5bc69c34b960cc73819d4b4d3b55ca3558aa2d45", - "kit/$app-forms": "61a344004d71b921bb3c7d39a2afd9af4de5226a9e960b314838041b0792ea7f", - "kit/$app-navigation": "92e632af18b1b9717fa6416f3eb410155f370c7ac7232077cbbbbec57fb9360a", - "kit/$app-paths": "2c92cb88bf3b4a2dfbb29506edf4edcd4fb38b16a58c7d59efbca8cb3b53dcce", - "kit/$app-server": "50c53e4f8851a489c0bdad479c58a82203188c5735d8ff36794172cf44f2695a", - "kit/$app-state": "1d33d98725276564f912f1566a723235d26ddc24dc11381a2a05e3202db69e91", - "kit/$app-stores": "f05e079b15bee2c561005f7f3b500f735a89c087da5778ad9390f2a1854fe3ec", - "kit/$app-types": "9c5b3e9e428f9bd437b288e45679452960f46ebeace6f2a0f3da763b6a1ab9cd", - "kit/$env-dynamic-private": "019a9b64f30a4407631d56554f2124061ad16b424888752186bdc961edf59eae", - "kit/$env-dynamic-public": "39f6ff446965be224e528d14c9bfbb71f5fd9809f71db575bca6333d6427e941", - "kit/$env-static-private": "526b80041929480f89ca948c02878aa8df669ae5380416bc30dc2d181869a6b3", - "kit/$env-static-public": "5054a554cdd0a781ac5b5649aba92040556f87ad77cd1cc53fa939f544ac9515", - "kit/$lib": "98d7b3ec9b4fba7e8d40b0c9a0845228d874bc037610abc12b346787557709ad", - "kit/$service-worker": "d8a7b705cc0fde5e80ac381d5dc325ae689bd5a28c255eee4802396b2c0276db", - "kit/configuration": "263d0373bf4da8181fb77b01a8ddc367cac7e101552bb6f252a48bcbee8139b6", - "kit/cli": "690b0bd6cddbf1b1d2cb52a2956a757a515ca4e4b41ae6c85b37d94b8d1ade84", - "kit/types": "1519bf5d3bdc6324a7da937d64624f6b2caed779c3e4091ac4439769beaa3453", - "mcp/overview": "2f120bae00baa384aefc093eea0e3298e2e8fbda1ffa1c55c8ae956b83f28976", - "mcp/local-setup": "615547482fc28ae62e5287f79124618b275f62017bfff511466f2326271b5bb9", - "mcp/remote-setup": "af2dd1872f26a220838def57ae5d6f4424affb9d3f1d53ca570c021bb93d658d", - "mcp/tools": "ccf68183cc4b6801a6aeeb575bfbdbdebd1af305624fe6cf64de3dbbeb9e025f", - "mcp/resources": "381b5a3256eda7e8e09f8e8760dba1d0c542a49f4961c203f3f9ad10c1f5d638", - "mcp/prompts": "84327e4e2d5b97a1fe3c8a693ab0f20a94dc068abb8d80bdde64dc09e7431b32", - "svelte/overview": "7700ca74f439e7c3d397f6ceeed70aed59cf177894a30b475ed601778e9e8042", - "svelte/getting-started": "80bbf8f2ea3580febd3e20296fdf63f29997e26e727774c2fc6080456bee4f52", - "svelte/svelte-files": "8971b9003e5ce6898894a01615b5816c7a95191b5e327af53ce31b49844d6f0a", - "svelte/svelte-js-files": "b6a481a0ba8e3498533a27d6ff34c4caf46b319716729e80b4e0abe98e90ae0d", - "svelte/what-are-runes": "d52254d2631c5014d33de163a8ac8f3a011f3921397633bb2a9aeb90510b3479", - "svelte/$state": "7d8c804721e60d4902109ebebea5cf3920f61af7c7613b1530406b27a1bdc105", - "svelte/$derived": "b85bac4b7541f9eec5050c4afe11efa120c8d83de07073357769de328a2b9d70", - "svelte/$effect": "fc928d4d5daafec1b06b7b143492524cf0ec5059b2ecf6cc88b56539e3d08375", - "svelte/$props": "8b0e924f115db23113867c70863f8b24ec843f285fede30d54ede21fb7c3b83f", - "svelte/$bindable": "60375b28577bc285815809c5bb85dec0a5e123bf3eda0da374d4c0cb28d9a377", - "svelte/$inspect": "014b8f124d82cca846a14096588de250c09469b52f4bc0380fad45ec572ea0e3", - "svelte/$host": "37a9fb749359688e1d68e03bef6833a67beb7ab695a5faeb73ed1d6ad1867c5f", - "svelte/basic-markup": "7aebf6ad9be00b337d4018ddf768c11e1e8e13e9a8952c7ddc743d6cc1cca428", - "svelte/if": "e4da4ed94902fa904fa168b50bb68d838f94a2c2be4faa5fef00b3dbbcc61645", - "svelte/each": "e8d75f3a210da756db04881c81499027a6be5f875a0747fd4c01c4cc1f37a01b", - "svelte/key": "5df663b8f1ada229fd771e5dc64bf5ad96ca21e27f6bd8c5b499d7b5fed5da35", - "svelte/await": "ba40da73575717b3005d8c3f4fadf1dc47d4369229b1f1b98a9962dc5f05df3f", - "svelte/snippet": "96f1853f3ca164532427e0c881b647b252ffb94cd3559505d8cf41ddd5279973", - "svelte/@render": "fefc529a277b207668ec7171bdd044117b96792ed19903e0f6a0c35d1a184780", - "svelte/@html": "37ffb87f829e7b36b521ee5e99f5956d76baf449e32661c5f7156f805e1fc82f", - "svelte/@attach": "9bef203823fe4795129e280d37830b068bb9a6e805ccbadcf8509a3c0ee6151a", - "svelte/@const": "e79a941a3e248400ed19fc410bdcca1e1dfd50b5e9f21b2d8224ef176e3e75cc", - "svelte/@debug": "f57a6ce04733ab2e2af63b2d59344414e7b5130bdec00274e3542dcb468c8a21", - "svelte/bind": "025daf253af040a560d79a8e5efee56f2d2922c55ab80fead24623d86c36d1d3", - "svelte/use": "adb10f7ef6a316db21b32a2bc2cea079abe37c48bb33cdebf9db91592115bf23", - "svelte/transition": "e916f804688a8d4dc7d6f34b2d5862595aa5a4a10daede17861d370eec873050", - "svelte/in-and-out": "d1dc82a686f09fc6dec814a8ce824e40757c4b857b147a69e6c84bf93b0bcc17", - "svelte/animate": "0320580f745ba93cb536ecbef5e10c227caad60fefae5dadc9dd52166a9453d7", - "svelte/style": "a7e861bea29058120c83982fdc8b421dea565032f2940e18fa068df6a73eb061", - "svelte/class": "15318e5a8d676aa840f71229a3f3e432883a7bbd00c4ef2b28e4fd4db755584d", - "svelte/await-expressions": "01dc0a2118fd8a2cd649c737e097635a013576f85b473a752756ccaf92aa27e8", - "svelte/scoped-styles": "c4ade79680ca0bda7e157be5fcafdb063002bacc79a5f9c1e8530ec4b479df7f", - "svelte/global-styles": "52b1090dfdbff596c3f19264277df4b0d2b3a063e3ee3f42610b23c629ccac02", - "svelte/custom-properties": "b0d4f8432380284735838ea0ab48812dc37665dec364908d3dc2c82fcb5179d9", - "svelte/nested-style-elements": "86f7e79c3532f5a2e88f6cbfd3c2d4496f3c42858b799e6f47dd32409055ec29", - "svelte/svelte-boundary": "a1ffd2ced1122092b06c7a5c3e2b66d127daa632a9888f8987de1438d24a2af4", - "svelte/svelte-window": "95f83adf2a83e810917df66ec3ae64a083e20f79b9bae25a63693edad6186930", - "svelte/svelte-document": "ea8eafada6dd22a1ca36a6d2b7c2ebd996620dd809bd29f1cf2e23912c9f2fb4", - "svelte/svelte-body": "6d42bb102657242d2745658e8394df8e948384c93896bb1a38eba628129580e0", - "svelte/svelte-head": "7d7ed49de4b8eaed5a7c2a3741c9c97d7f07f1c61d609cf95ea4642d7d9519fc", - "svelte/svelte-element": "dbc2894d1a4df3bbc010e14fe8acaf47cab1e47595083549bcbe03ef6d70c0f8", - "svelte/svelte-options": "361ae053b401b5748092545e79387c1fd204a0c05e0c97af476dd5c2b6459a05", - "svelte/stores": "6af05349fa2e56cf97baf52bfdad4baa56205a07676bbbbf83ba9cc11b4f74c9", - "svelte/context": "5aced025a25892c041d22e2942d5c793cab49425dbb79aa24c6e8bda6f831e52", - "svelte/lifecycle-hooks": "4cb4967ff252980753a385d7400aeecd6e7e7e5d49853b07e6ce9ac5c21f226b", - "svelte/imperative-component-api": "f65ba0880e127ea497167efeae5f6250233b35764549b81ba338f5e172fa4a84", - "svelte/testing": "b186d594536788db689e45f5d006effa5bb0852539751a9f469c33f871ffbb07", - "svelte/typescript": "0a7109270bbf8fb388e51e38b868f46c532d54ba3a7ae3304b0b369ec9f03c30", - "svelte/custom-elements": "a74ef3bc373c0cf5d7d439accf11d398b3180f3e44fe576b1e68dd2813b6484d", - "svelte/v4-migration-guide": "d78c974770bab180bfa50f8465ddd08d29dc3355d7d8da4aa2f892f68a8dcbae", - "svelte/v5-migration-guide": "6e92e90f8b5086a7b1eda8d498e995650d4f93ef05ec35c89e24909c21f623bb", - "svelte/faq": "e935b0651782fde2cb138dac2586fbb3627fddc08cdd7a8b00d1d09a5b63ff8d", - "svelte/svelte": "bd2a9bcc3babc4dd148ae71ddb437d9c6e359c516f0823e14cd02fa99be3b37a", - "svelte/svelte-action": "dd41790ddfa6ad8763c566bf81abcefd47bf1d82465e77224034507d65ef7dd2", - "svelte/svelte-animate": "4b96afa6848acf81497770d69b655df3c7472b546f3024dcc25521ec14e585ed", - "svelte/svelte-attachments": "4da23f36026be101db0440d9357e84d765b58cca00678548f52139a133913e9a", - "svelte/svelte-compiler": "6815a77b9d14d476a4d4bc6ad589e5436ca3f8c897952eb858ee359ebba59f49", - "svelte/svelte-easing": "452e4c4f8485a8047c3320c58fb4df07acaa8c7bd6171828f0b55673a05f2b22", - "svelte/svelte-events": "06c912902e80d19cb1ca7e2eac03ca7138d0f9a39547f5ee51115196d483e948", - "svelte/svelte-legacy": "b285c8859ed7403616829e2dcbf1a81982942182f8039a1acbba1a0082b54804", - "svelte/svelte-motion": "c64243c31d2187b9fa41c16697fe3a5f204603382be53b6a6d8aef27ab4142e6", - "svelte/svelte-reactivity-window": "48a9e5dba5564bddaac94a0d7ba4c8d5f8e2480cdebb19ba71288936bc76bdf1", - "svelte/svelte-reactivity": "4ff4d515986a45e575bfa8d64e09e5f6b61a9f35e79035f7507cd502b9431d4f", - "svelte/svelte-server": "bb027c8e6c0aa48a77349a49671f0bd60fec07b7c0150f1498e4a18e5f90288b", - "svelte/svelte-store": "6f99d25bd75333042c6aa1377e33d5cc51aabf48b660eda5756f08d7d3b7a9b2", - "svelte/svelte-transition": "e57769d1e309aa9f2fa4d591ac2fb7d73aedf232a437b975e7845352a3ad9909", - "svelte/compiler-errors": "88172d54e4e4a1b094b8ec526fa84e0a9ee3a0cbfcbe90de6a09c580c48c3a0f", - "svelte/compiler-warnings": "885adaa867ffd525b695b32b87789cf2d9bde741d45c13dd153dd5519233fd4b", - "svelte/runtime-errors": "59035d3cf75f6af6fdd94fcf22c42cb66e892adf4d55a81801072c53f3dabcac", - "svelte/runtime-warnings": "93b6ee308fd13add66bc7621659c22580eef4d6614bf78f0a130879ae5d8ec64", - "svelte/legacy-overview": "f999cc193b4ecf36cbfb99b52107a55aa7b841b6e01ea5e0229799abd90933dc", - "svelte/legacy-let": "3660721b3cd7cdcb60b77450bd87b6ded93eb7d47aee9950db994d3450d07739", - "svelte/legacy-reactive-assignments": "ca81836b396d9f6d4df34707ea79ed177bdd2d93dd3b43e37137dfca37396d31", - "svelte/legacy-export-let": "0223ca4f538116da46d27840653a11c352d88ad2f5eb8cc9a50a5b590001aad3", - "svelte/legacy-$$props-and-$$restProps": "8d91d694b70547a915cc2360ea1c63e7b9dcd29fd0fedfc04b2fb3ade6c152a7", - "svelte/legacy-on": "7dde3692ea5c91bbcf1d86ff91fce1966df0952d2cf153f3fab6fa1a55774330", - "svelte/legacy-slots": "05d8524ab20b47d5f07e67f0634d425cf892715c68cf635b134d6b19e397bbb8", - "svelte/legacy-$$slots": "d3aa2e8e480a9593259ad1d5dec43a605ed28bb92e7007d0713f60a398803d7c", - "svelte/legacy-svelte-fragment": "aaa2a5b2fbb72fa2dfe5f10cdb2287863cf99d9590a634b43e28336da1a89e54", - "svelte/legacy-svelte-component": "3c2d5fb89cfe5657950d279a4189ab1f877dac99e8afca187fc5952eecb39ae0", - "svelte/legacy-svelte-self": "afc8f5667bd3643e206f1bd4298ee5e259ca0b5e8cf7b2fb7b9afd692b66ad78", - "svelte/legacy-component-api": "9bd8fde41aa9e006091751b16d3de14b28471733534e08dfba99d745db78fac6" - } -} \ No newline at end of file + "generated_at": "2025-10-11T00:44:20.606Z", + "model": "claude-sonnet-4-5-20250929", + "total_sections": 173, + "successful_summaries": 173, + "summaries": { + "cli/overview": "project setup, creating new svelte apps, scaffolding, cli tools, initializing projects", + "cli/faq": "project setup, initializing new svelte projects, troubleshooting cli installation, package manager configuration", + "cli/sv-create": "project setup, starting new sveltekit app, initializing project, creating from playground, choosing project template", + "cli/sv-add": "project setup, adding features to existing projects, integrating tools, testing setup, styling setup, authentication, database setup, deployment adapters", + "cli/sv-check": "code quality, ci/cd pipelines, error checking, typescript projects, pre-commit hooks, finding unused css, accessibility auditing, production builds", + "cli/sv-migrate": "migration, upgrading svelte versions, upgrading sveltekit versions, modernizing codebase, svelte 3 to 4, svelte 4 to 5, sveltekit 1 to 2, adopting runes, refactoring deprecated apis", + "cli/devtools-json": "development setup, chrome devtools integration, browser-based editing, local development workflow, debugging setup", + "cli/drizzle": "database setup, sql queries, orm integration, data modeling, postgresql, mysql, sqlite, server-side data access, database migrations, type-safe queries", + "cli/eslint": "code quality, linting, error detection, project setup, code standards, team collaboration, typescript projects", + "cli/lucia": "authentication, login systems, user management, registration pages, session handling, auth setup", + "cli/mdsvex": "blog, content sites, markdown rendering, documentation sites, technical writing, cms integration, article pages", + "cli/paraglide": "internationalization, multi-language sites, i18n, translation, localization, language switching, global apps, multilingual content", + "cli/playwright": "browser testing, e2e testing, integration testing, test automation, quality assurance, ci/cd pipelines, testing user flows", + "cli/prettier": "code formatting, project setup, code style consistency, team collaboration, linting configuration", + "cli/storybook": "component development, design systems, ui library, isolated component testing, documentation, visual testing, component showcase", + "cli/sveltekit-adapter": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters, static site generation, node server, vercel, cloudflare, netlify", + "cli/tailwind": "project setup, styling, css framework, rapid prototyping, utility-first css, design systems, responsive design, adding tailwind to svelte", + "cli/vitest": "testing, unit tests, component testing, test setup, quality assurance, ci/cd pipelines, test-driven development", + "kit/introduction": "learning sveltekit, project setup, understanding framework basics, choosing between svelte and sveltekit, getting started with full-stack apps", + "kit/creating-a-project": "project setup, starting new sveltekit app, initial development environment, first-time sveltekit users, scaffolding projects", + "kit/project-types": "deployment, project setup, choosing adapters, ssr vs csr, static sites, spas, serverless, mobile apps, desktop apps, pwa, browser extensions", + "kit/project-structure": "project setup, understanding file structure, organizing code, starting new project, learning sveltekit basics", + "kit/web-standards": "always, any sveltekit project, data fetching, forms, api routes, server-side rendering, deployment to various platforms", + "kit/routing": "routing, navigation, multi-page apps, project setup, file structure, api endpoints, data loading, layouts, error pages, always", + "kit/load": "data fetching, api calls, database queries, dynamic routes, page initialization, loading states, authentication checks, ssr data, form data, content rendering", + "kit/form-actions": "forms, user input, data submission, authentication, login systems, user registration, progressive enhancement, validation errors", + "kit/page-options": "prerendering static sites, ssr configuration, spa setup, client-side rendering control, url trailing slash handling, adapter deployment config, build optimization", + "kit/state-management": "sveltekit, server-side rendering, ssr, state management, authentication, data persistence, load functions, context api, navigation, component lifecycle", + "kit/remote-functions": "remote functions, type-safe client-server communication, data fetching, forms, mutations, database queries, user authentication, crud operations, api endpoints", + "kit/building-your-app": "production builds, deployment preparation, build process optimization, adapter configuration, preview before deployment", + "kit/adapters": "deployment, production builds, hosting setup, choosing deployment platform, configuring adapters", + "kit/adapter-auto": "deployment, production builds, hosting setup, choosing deployment platform, ci/cd configuration", + "kit/adapter-node": "deployment, production builds, node.js hosting, custom server setup, environment configuration, reverse proxy setup, docker deployment, systemd services", + "kit/adapter-static": "static site generation, ssg, prerendering, deployment, github pages, spa mode, blogs, documentation sites, marketing sites", + "kit/single-page-apps": "spa mode, single-page apps, client-only rendering, static hosting, mobile app wrappers, no server-side logic, adapter-static setup, fallback pages", + "kit/adapter-cloudflare": "deployment, cloudflare workers, cloudflare pages, hosting setup, production builds, serverless deployment, edge computing", + "kit/adapter-cloudflare-workers": "deploying to cloudflare workers, cloudflare workers sites deployment, legacy cloudflare adapter, wrangler configuration, cloudflare platform bindings", + "kit/adapter-netlify": "deployment, netlify hosting, production builds, serverless functions, edge functions, static site hosting", + "kit/adapter-vercel": "deployment, vercel hosting, production builds, serverless functions, edge functions, isr, image optimization, environment variables", + "kit/writing-adapters": "custom deployment, building adapters, unsupported platforms, adapter development, custom hosting environments", + "kit/advanced-routing": "advanced routing, dynamic routes, file viewers, nested paths, custom 404 pages, url validation, route parameters, multi-level navigation", + "kit/hooks": "authentication, logging, error tracking, request interception, api proxying, custom routing, internationalization, database initialization, middleware logic, session management", + "kit/errors": "error handling, custom error pages, 404 pages, api error responses, production error logging, error tracking, type-safe errors", + "kit/link-options": "routing, navigation, multi-page apps, performance optimization, link preloading, forms with get method, search functionality, focus management, scroll behavior", + "kit/service-workers": "offline support, pwa, caching strategies, performance optimization, precaching assets, network resilience, progressive web apps", + "kit/server-only-modules": "api keys, environment variables, sensitive data protection, backend security, preventing data leaks, server-side code isolation", + "kit/snapshots": "forms, user input, preserving form data, multi-step forms, navigation state, preventing data loss, textarea content, input fields, comment systems, surveys", + "kit/shallow-routing": "modals, dialogs, image galleries, overlays, history-driven ui, mobile-friendly navigation, photo viewers, lightboxes, drawer menus", + "kit/observability": "performance monitoring, debugging, observability, tracing requests, production diagnostics, analyzing slow requests, finding bottlenecks, monitoring server-side operations", + "kit/packaging": "building component libraries, publishing npm packages, creating reusable svelte components, library development, package distribution", + "kit/auth": "authentication, login systems, user management, session handling, jwt tokens, protected routes, user credentials, authorization checks", + "kit/performance": "performance optimization, slow loading pages, production deployment, debugging performance issues, reducing bundle size, improving load times", + "kit/icons": "icons, ui components, styling, css frameworks, tailwind, unocss, performance optimization, dependency management", + "kit/images": "image optimization, responsive images, performance, hero images, product photos, galleries, cms integration, cdn setup, asset management", + "kit/accessibility": "always, any sveltekit project, screen reader support, keyboard navigation, multi-page apps, client-side routing, internationalization, multilingual sites", + "kit/seo": "seo optimization, search engine ranking, content sites, blogs, marketing sites, public-facing apps, sitemaps, amp pages, meta tags, performance optimization", + "kit/faq": "troubleshooting package imports, library compatibility issues, client-side code execution, external api integration, middleware setup, database configuration, view transitions, yarn configuration", + "kit/integrations": "project setup, css preprocessors, typescript configuration, adding integrations, tooling setup", + "kit/debugging": "debugging, breakpoints, development workflow, troubleshooting issues, vscode setup, ide configuration, inspecting code execution", + "kit/migrating-to-sveltekit-2": "migration, upgrading from sveltekit 1 to 2, breaking changes, version updates", + "kit/migrating": "migrating from sapper, upgrading legacy projects, sapper to sveltekit conversion, project modernization", + "kit/additional-resources": "troubleshooting, getting help, finding examples, learning sveltekit, project templates, common issues, community support", + "kit/glossary": "rendering strategies, performance optimization, deployment configuration, seo requirements, static sites, spas, server-side rendering, prerendering, edge deployment, pwa development", + "kit/@sveltejs-kit": "forms, form actions, form submission, form validation, error handling, redirects, api endpoints, server-side logic, data mutations, user input processing", + "kit/@sveltejs-kit-hooks": "middleware, request processing, authentication chains, logging, multiple hooks, request/response transformation", + "kit/@sveltejs-kit-node-polyfills": "node.js environments, custom servers, non-standard runtimes, ssr setup, web api compatibility, polyfill requirements", + "kit/@sveltejs-kit-node": "node.js adapter, custom server setup, http integration, streaming files, node deployment, server-side rendering with node", + "kit/@sveltejs-kit-vite": "project setup, vite configuration, initial sveltekit setup, build tooling", + "kit/$app-environment": "always, conditional logic, client-side code, server-side code, build-time logic, prerendering, development vs production, environment detection", + "kit/$app-forms": "forms, user input, data submission, progressive enhancement, custom form handling, form validation", + "kit/$app-navigation": "routing, navigation, multi-page apps, programmatic navigation, data reloading, preloading, shallow routing, navigation lifecycle, scroll handling, view transitions", + "kit/$app-paths": "static assets, images, fonts, public files, base path configuration, subdirectory deployment, cdn setup, asset urls, links, navigation", + "kit/$app-server": "remote functions, server-side logic, data fetching, form handling, mutations, prerendering, reading static assets, batch queries, client-server communication", + "kit/$app-state": "routing, navigation, multi-page apps, loading states, url parameters, form handling, error states, version updates, page metadata, shallow routing", + "kit/$app-stores": "legacy projects, sveltekit pre-2.12, migration from stores to runes, maintaining older codebases, accessing page data, navigation state, app version updates", + "kit/$app-types": "routing, navigation, type safety, route parameters, dynamic routes, link generation, pathname validation, multi-page apps", + "kit/$env-dynamic-private": "api keys, secrets management, server-side config, environment variables, backend logic, deployment-specific settings, private data handling", + "kit/$env-dynamic-public": "environment variables, client-side config, runtime configuration, public api keys, deployment-specific settings, multi-environment apps", + "kit/$env-static-private": "server-side api keys, backend secrets, database credentials, private configuration, build-time optimization, server endpoints, authentication tokens", + "kit/$env-static-public": "environment variables, public config, client-side data, api endpoints, build-time configuration, public constants", + "kit/$lib": "project setup, component organization, importing shared components, reusable ui elements, code structure", + "kit/$service-worker": "offline support, pwa, service workers, caching strategies, progressive web apps, offline-first apps", + "kit/configuration": "project setup, configuration, adapters, deployment, build settings, environment variables, routing customization, prerendering, csp security, csrf protection, path configuration, typescript setup", + "kit/cli": "project setup, typescript configuration, generated types, ./$types imports, initial project configuration", + "kit/types": "typescript, type safety, route parameters, api endpoints, load functions, form actions, generated types, jsconfig setup", + "svelte/overview": "always, any svelte project, getting started, learning svelte, introduction, project setup, understanding framework basics", + "svelte/getting-started": "project setup, starting new svelte project, initial installation, choosing between sveltekit and vite, editor configuration", + "svelte/svelte-files": "always, any svelte project, component creation, project setup, learning svelte basics", + "svelte/svelte-js-files": "shared reactive state, reusable reactive logic, state management across components, global stores, custom reactive utilities", + "svelte/what-are-runes": "always, any svelte 5 project, understanding core syntax, learning svelte 5, migration from svelte 4", + "svelte/$state": "always, any svelte project, core reactivity, state management, counters, forms, todo apps, interactive ui, data updates, class-based components", + "svelte/$derived": "always, any svelte project, computed values, reactive calculations, derived data, transforming state, dependent values", + "svelte/$effect": "canvas drawing, third-party library integration, dom manipulation, side effects, intervals, timers, network requests, analytics tracking", + "svelte/$props": "always, any svelte project, passing data to components, component communication, reusable components, component props", + "svelte/$bindable": "forms, user input, two-way data binding, custom input components, parent-child communication, reusable form fields", + "svelte/$inspect": "debugging, development, tracking state changes, reactive state monitoring, troubleshooting reactivity issues", + "svelte/$host": "custom elements, web components, dispatching custom events, component library, framework-agnostic components", + "svelte/basic-markup": "always, any svelte project, basic markup, html templating, component structure, attributes, events, props, text rendering", + "svelte/if": "always, conditional rendering, showing/hiding content, dynamic ui, user permissions, loading states, error handling, form validation", + "svelte/each": "always, lists, arrays, iteration, product listings, todos, tables, grids, dynamic content, shopping carts, user lists, comments, feeds", + "svelte/key": "animations, transitions, component reinitialization, forcing component remount, value-based ui updates, resetting component state", + "svelte/await": "async data fetching, api calls, loading states, promises, error handling, lazy loading components, dynamic imports", + "svelte/snippet": "reusable markup, component composition, passing content to components, table rows, list items, conditional rendering, reducing duplication", + "svelte/@render": "reusable ui patterns, component composition, conditional rendering, fallback content, layout components, slot alternatives, template reuse", + "svelte/@html": "rendering html strings, cms content, rich text editors, markdown to html, blog posts, wysiwyg output, sanitized html injection, dynamic html content", + "svelte/@attach": "tooltips, popovers, dom manipulation, third-party libraries, canvas drawing, element lifecycle, interactive ui, custom directives, wrapper components", + "svelte/@const": "computed values in loops, derived calculations in blocks, local variables in each iterations, complex list rendering", + "svelte/@debug": "debugging, development, troubleshooting, tracking state changes, monitoring variables, reactive data inspection", + "svelte/bind": "forms, user input, two-way data binding, interactive ui, media players, file uploads, checkboxes, radio buttons, select dropdowns, contenteditable, dimension tracking", + "svelte/use": "custom directives, dom manipulation, third-party library integration, tooltips, click outside, gestures, focus management, element lifecycle hooks", + "svelte/transition": "animations, interactive ui, modals, dropdowns, notifications, conditional content, show/hide elements, smooth state changes", + "svelte/in-and-out": "animation, transitions, interactive ui, conditional rendering, independent enter/exit effects, modals, tooltips, notifications", + "svelte/animate": "sortable lists, drag and drop, reorderable items, todo lists, kanban boards, playlist editors, priority queues, animated list reordering", + "svelte/style": "dynamic styling, conditional styles, theming, dark mode, responsive design, interactive ui, component styling", + "svelte/class": "always, conditional styling, dynamic classes, tailwind css, component styling, reusable components, responsive design", + "svelte/await-expressions": "async data fetching, loading states, server-side rendering, awaiting promises in components, async validation, concurrent data loading", + "svelte/scoped-styles": "always, styling components, scoped css, component-specific styles, preventing style conflicts, animations, keyframes", + "svelte/global-styles": "global styles, third-party libraries, css resets, animations, styling body/html, overriding component styles, shared keyframes, base styles", + "svelte/custom-properties": "theming, custom styling, reusable components, design systems, dynamic colors, component libraries, ui customization", + "svelte/nested-style-elements": "component styling, scoped styles, dynamic styles, conditional styling, nested style tags, custom styling logic", + "svelte/svelte-boundary": "error handling, async data loading, loading states, error recovery, flaky components, error reporting, resilient ui", + "svelte/svelte-window": "keyboard shortcuts, scroll tracking, window resize handling, responsive layouts, online/offline detection, viewport dimensions, global event listeners", + "svelte/svelte-document": "document events, visibility tracking, fullscreen detection, pointer lock, focus management, document-level interactions", + "svelte/svelte-body": "mouse tracking, hover effects, cursor interactions, global body events, drag and drop, custom cursors, interactive backgrounds, body-level actions", + "svelte/svelte-head": "seo optimization, page titles, meta tags, social media sharing, dynamic head content, multi-page apps, blog posts, product pages", + "svelte/svelte-element": "dynamic content, cms integration, user-generated content, configurable ui, runtime element selection, flexible components", + "svelte/svelte-options": "migration, custom elements, web components, legacy mode compatibility, runes mode setup, svg components, mathml components, css injection control", + "svelte/stores": "shared state, cross-component data, reactive values, async data streams, manual control over updates, rxjs integration, extracting logic", + "svelte/context": "shared state, avoiding prop drilling, component communication, theme providers, user context, authentication state, configuration sharing, deeply nested components", + "svelte/lifecycle-hooks": "component initialization, cleanup tasks, timers, subscriptions, dom measurements, chat windows, autoscroll features, migration from svelte 4", + "svelte/imperative-component-api": "project setup, client-side rendering, server-side rendering, ssr, hydration, testing, programmatic component creation, tooltips, dynamic mounting", + "svelte/testing": "testing, quality assurance, unit tests, integration tests, component tests, e2e tests, vitest setup, playwright setup, test automation", + "svelte/typescript": "typescript setup, type safety, component props typing, generic components, wrapper components, dom type augmentation, project configuration", + "svelte/custom-elements": "web components, custom elements, component library, design system, framework-agnostic components, embedding svelte in non-svelte apps, shadow dom", + "svelte/v4-migration-guide": "upgrading svelte 3 to 4, version migration, updating dependencies, breaking changes, legacy project maintenance", + "svelte/v5-migration-guide": "migrating from svelte 4 to 5, upgrading projects, learning svelte 5 syntax changes, runes migration, event handler updates", + "svelte/faq": "getting started, learning svelte, project setup, beginner tutorials, vs code setup, code formatting, testing, routing, component documentation, mobile apps, styling issues", + "svelte/svelte": "migration from svelte 4 to 5, upgrading legacy code, component lifecycle hooks, context api, mounting components, event dispatchers, typescript component types", + "svelte/svelte-action": "typescript types, actions, use directive, dom manipulation, element lifecycle, custom behaviors, third-party library integration", + "svelte/svelte-animate": "animated lists, sortable items, drag and drop, reordering elements, todo lists, kanban boards, playlist management, smooth position transitions", + "svelte/svelte-attachments": "library development, component libraries, programmatic element manipulation, migrating from actions to attachments, spreading props onto elements", + "svelte/svelte-compiler": "build tools, custom compilers, ast manipulation, preprocessors, code transformation, migration scripts, syntax analysis, bundler plugins, dev tools", + "svelte/svelte-easing": "animations, transitions, custom easing, smooth motion, interactive ui, modals, dropdowns, carousels, page transitions, scroll effects", + "svelte/svelte-events": "window events, document events, global event listeners, event delegation, programmatic event handling, cleanup functions, media queries", + "svelte/svelte-legacy": "migration from svelte 4 to svelte 5, upgrading legacy code, event modifiers, class components, imperative component instantiation", + "svelte/svelte-motion": "animation, smooth transitions, interactive ui, sliders, counters, physics-based motion, drag gestures, accessibility, reduced motion", + "svelte/svelte-reactivity-window": "responsive design, viewport tracking, scroll effects, window resize handling, online/offline detection, zoom level tracking", + "svelte/svelte-reactivity": "reactive data structures, state management with maps/sets, game boards, selection tracking, url manipulation, query params, real-time clocks, media queries, responsive design", + "svelte/svelte-server": "server-side rendering, ssr, static site generation, seo optimization, initial page load, pre-rendering, node.js server, custom server setup", + "svelte/svelte-store": "state management, shared data, reactive stores, cross-component communication, global state, computed values, data synchronization, legacy svelte projects", + "svelte/svelte-transition": "animations, transitions, interactive ui, modals, dropdowns, tooltips, notifications, svg animations, list animations, page transitions", + "svelte/compiler-errors": "animation, transitions, keyed each blocks, list animations", + "svelte/compiler-warnings": "accessibility, a11y compliance, wcag standards, screen readers, keyboard navigation, aria attributes, semantic html, interactive elements", + "svelte/runtime-errors": "debugging errors, error handling, troubleshooting runtime issues, migration to svelte 5, component binding, effects and reactivity", + "svelte/runtime-warnings": "debugging state proxies, console logging reactive values, inspecting state changes, development troubleshooting", + "svelte/legacy-overview": "migrating from svelte 3/4 to svelte 5, maintaining legacy components, understanding deprecated features, gradual upgrade process", + "svelte/legacy-let": "migration, legacy svelte projects, upgrading from svelte 4, understanding old reactivity, maintaining existing code, learning runes differences", + "svelte/legacy-reactive-assignments": "legacy mode, migration from svelte 4, reactive statements, computed values, derived state, side effects", + "svelte/legacy-export-let": "legacy mode, migration from svelte 4, maintaining older projects, component props without runes, exporting component methods, renaming reserved word props", + "svelte/legacy-$$props-and-$$restProps": "legacy mode migration, component wrappers, prop forwarding, button components, reusable ui components, spreading props to child elements", + "svelte/legacy-on": "legacy mode, event handling, button clicks, forms, user interactions, component communication, event forwarding, event modifiers", + "svelte/legacy-slots": "legacy mode, migrating from svelte 4, component composition, reusable components, passing content to components, modals, layouts, wrappers", + "svelte/legacy-$$slots": "legacy mode, conditional slot rendering, optional content sections, checking if slots provided, migrating from legacy to runes", + "svelte/legacy-svelte-fragment": "named slots, component composition, layout systems, avoiding wrapper divs, legacy svelte projects, slot content organization", + "svelte/legacy-svelte-component": "dynamic components, component switching, conditional rendering, legacy mode migration, tabbed interfaces, multi-step forms", + "svelte/legacy-svelte-self": "recursive components, tree structures, nested menus, file explorers, comment threads, hierarchical data", + "svelte/legacy-component-api": "migration from svelte 3/4 to 5, legacy component api, maintaining old projects, understanding deprecated patterns", + "mcp/overview": "ai development, llm integration, code generation tools, agent setup, improving ai code quality, svelte tooling for ai assistants", + "mcp/local-setup": "ai-assisted development, mcp integration, claude setup, cursor setup, vscode setup, ai coding tools, development environment configuration", + "mcp/remote-setup": "ai-assisted development, using claude/cursor/vscode with mcp, integrating svelte documentation into ide, ai coding tools setup", + "mcp/tools": "ai development, llm integration, code generation tools, chatbot features, ai-assisted coding, automated code analysis, testing generated code", + "mcp/resources": "mcp server setup, ai-assisted development, llm integration, documentation tooling, developer workflow automation", + "mcp/prompts": "mcp server setup, ai assistant integration, llm tool configuration, svelte development workflow automation" + }, + "content_hashes": { + "cli/overview": "24ce88570619713523dd675b54cf5ed810fc787f91c44295ed66cba88b586ab2", + "cli/faq": "130b9862c1e56e7c289f7f350cf63c2bbd06b5895cecf2408d7018b30308596b", + "cli/sv-create": "8ebe2ab8a05f73d57b6c20ca062694fafa17afebcf6228eadb28c9e2269532dc", + "cli/sv-add": "febb2db174bb74aafadba071d03e60be32affd39256488dd9d7bf039bc99e55c", + "cli/sv-check": "998117f78c8d13cda5aa9b8584f47306aedab8b4c5748b633f8282c994e5314d", + "cli/sv-migrate": "8f0638858fb871b313d3aa7d15b3a82167e59fc2243f7991ca9d784c88abe728", + "cli/devtools-json": "f68617102d58bc74cfa894254a3ec53950a69f62888477314dee5f2e8fa7d08c", + "cli/drizzle": "f402220ec1272ddd283bd16b0116a4e584f9d7ff32cf31cd61e1b87467863bae", + "cli/eslint": "881091b7857f92188ab98fba009cc7229414966a5f784550522a32c08dff8bc7", + "cli/lucia": "9bdc0d65fea53e3f6709f02bbc6e7b5e14b815874f267d71fec6401fa2bb0de1", + "cli/mdsvex": "4c9a3d8a661325d45b04ae511bb07fb8fb3853ef6e9ddba905e11ff10096aa44", + "cli/paraglide": "3052be60f590bfdb3ebdd3232c5d4cea47b45004238eed25c14062451b8084ab", + "cli/playwright": "255bc17601b4545fcf76dd9639b8d0a07bc9c1967e0bc8b0f8a4c67747fa27ad", + "cli/prettier": "b6eaf065c2dd9a529b58aa848b81ca0aa48a61286093697007f101b18a64a3f4", + "cli/storybook": "266ccae29ef911b2b3dc3d5c85e087d35bd20cd040ce0ce3b759cda057a6dbec", + "cli/sveltekit-adapter": "8fa56b7fc75c856ec28ff0e6b05c3c290869c3f6701f469f4cf6d748b45c43fe", + "cli/tailwind": "06f78477ba2df15fe0c5ee5698cb47e9bdbb558ad4e9c73a5c3a89be4935b22c", + "cli/vitest": "49e0d37ae9a4a8af6d098ad0189d479ec7c07dc31a2fa3e7c8237e457c0e4f8b", + "kit/introduction": "28c0756c4179d9be8a3feb146ed139feb260e78f0226078d5c4829fd4a303e67", + "kit/creating-a-project": "65828935583402267d681f4609d04a2485f71c5d0a35fd4362f54f781bfabfc9", + "kit/project-types": "4730fd90c7bb1459d1f8987fbeecdea5df42b538dc03b1b9b35ae68df4d959f0", + "kit/project-structure": "fbc465d2744567cee3507e7b39c743cb9cac6c489c3349d6cc95ce1ced8b1435", + "kit/web-standards": "a54c4c2d97f8c50e4c1170dd6059a125a9f7c79f7c0484a348a24e015cccf4ea", + "kit/routing": "1fac22ea79cc9370e259adc2031f2259b53a655b9f1539506bb08f463a95aa2a", + "kit/load": "986bf651baa6157301c3d5de873ddb3533a5df9397d995c7a079e8c7ddcbd496", + "kit/form-actions": "781ffd55a5d4d05b5766ef6367d4cf353425f611d5f0876959796212a2ff14c8", + "kit/page-options": "c1275054c96c6044352bc457415d3c258c9a6af48db862003e1b9ee6c7c908c5", + "kit/state-management": "502db80d327820e8785301688f2351459179ad995e50dce8f4755f5d5d0ac6bd", + "kit/remote-functions": "7a12920dc5b3f9760c3a1a0e6be3347c24ed700da95ac407ad3e9fb1c670f0cc", + "kit/building-your-app": "20c5e2c2106bed1b052e037729b4410d12bf96e3d3bbb7fcbba346a308db00e8", + "kit/adapters": "dd1909dd7297d3cef2a9489b7ce49036f8e559401d2504ee916d7f464fb21822", + "kit/adapter-auto": "d09059d0117e2fa4ceb66650f47c3649420e1597452b0650905068df9a5ce5b1", + "kit/adapter-node": "7f6046c4d9907006e0be9ecd7f291848953051ef85271483fb2baaa13c7d87dd", + "kit/adapter-static": "c2e7be2cc09d0828a62ea843483efa0b74518b704699a3527b2c6098db8e17b5", + "kit/single-page-apps": "47fe9184df8e8eaaa22970aee1200fba02b6c1b478a6ffc26d1935635c8e0daa", + "kit/adapter-cloudflare": "2a64107ce88e5ccb39615688412c5a8186980655673a5133a2dc50659ed5aab3", + "kit/adapter-cloudflare-workers": "424a8fbee22b74c59c30125f8e2843e292b8a64fd0e16df43ea5ca9c2750298c", + "kit/adapter-netlify": "b43920d5588573a3ae22b71f4e60a19114725fa252239cc35e332965b5716bc3", + "kit/adapter-vercel": "05cff8e507f64d37be03750fa719a4195ab4984ce8c9f381ea2209d8410497e9", + "kit/writing-adapters": "e4c68eec588c6b4e5e7a53d96a4b85e26f3112458c430e90e7cdb2b20cf520d1", + "kit/advanced-routing": "a91ec9444fd4dac8ff8cf13b2461e4dbbe2567e665e190bda29785537a0656e3", + "kit/hooks": "e30ecbd21e7f29c16b42345b06b3e15be22796b158bde3256818121eaca18d66", + "kit/errors": "fd8a2a2627a43141247d881fddc6e35c9cadec80014e97356249cafc1c3a6d9d", + "kit/link-options": "37f95fa6c1b1af1a91ab62f4aa6b299e5462b6e5c1b58e0b02d8c1115e86cded", + "kit/service-workers": "b662bafc6116274744cdea6d4ab9ef1eff2f0155dd7b3d9cef7d02a2d618701e", + "kit/server-only-modules": "e5f80d7c5f350e7ca6e631bb893e83280ba3745a099a6942789def4919d41fd5", + "kit/snapshots": "fdb47bf4216c38e9a8de0ddf2bb0608d35b762f30c7ee8602de53a6d0d9e4a0a", + "kit/shallow-routing": "30d4b3b2ef8fbb921b5c176c1d147413f366dceb8fcbafc14ca63481c14cd3d4", + "kit/observability": "47d603f5c605f5b4afcdfb22dc9b2f5fd145ae5c6d2a1f7ff42ab97a6bba8768", + "kit/packaging": "249a22b2cb633f2bb1e63d1ff0d85c85b9cba64d4421853cb81e9aed5a96153e", + "kit/auth": "728a3b639a4c2cca049cbf55aea37373856f3fa6deb435f42362fa91073ad5f4", + "kit/performance": "ab69e26e699e8e7bfa669dc8f497f46f3dd9cec8f6c41226795e6932b6f145f7", + "kit/icons": "d677885a338c1e579a8ea6dfe39ae10a1d20818089f7ef8652f90285a9121da8", + "kit/images": "e6957eb17b5a7628e402f75388d221a51e1f26e6a1ad0593d7fd66d6eac88fea", + "kit/accessibility": "9886bfa33757fc6070b2fb5257d392ef4222d5f904f12769d2c1393681f60d95", + "kit/seo": "bc9620fd9e0647862de12ac97acdcf0c8b612235dd1c2181b0167cd5d8f1895b", + "kit/faq": "57a5a8cab8696e3856d8ccc1f352d7ddebaf62a54c41f73de449e78cdd8d4a53", + "kit/integrations": "995541eea85cab10811d69a6f2fdb0cb17d8ca4dfa0a955e3e6b99c78b53cfe8", + "kit/debugging": "2dfd5e91bcb6371dd6596d2a6aafbd75fa4f289c859a06378f83db47ede02573", + "kit/migrating-to-sveltekit-2": "1e14881387117aba2fd8652f0e61179cbe48d6d0b56dd79764b9a11fbf593ec6", + "kit/migrating": "02f0dd45b5813c1f34d447c3a410e3a6a563ea2ec54fb06481be7ec690b97f81", + "kit/additional-resources": "c6ff893413728f3165d5d6fa12c6ce81b36cfb867701f4ed8f5a46e50a28c4c2", + "kit/glossary": "243f61f794e383efa48c4226e0a0e1d64f7e43e2049351cb02b007c95f6034ad", + "kit/@sveltejs-kit": "4c3efcfc5179bbf05d87c22fefdf1444e96961d389cc0e61291ac94b7d93c8ab", + "kit/@sveltejs-kit-hooks": "0fe8e4e985961ea67a721ed432c8c559c17ff09c1bda37b4b54239475c1ed47e", + "kit/@sveltejs-kit-node-polyfills": "9f6bf38e1d0aa53cc055c8de2505ee5a80113b2db4d4db4a8cc9f9c68cf0b58c", + "kit/@sveltejs-kit-node": "5bc0958d92037a982c4ffa47f11cd5e5ec6b91f503009fd644ac705c68247b79", + "kit/@sveltejs-kit-vite": "7b8684d54b4cd2420d329536695d29c5d77891ed3f5062ff529f01524b0d8b33", + "kit/$app-environment": "4bb0aee3c952ded3112422be5bc69c34b960cc73819d4b4d3b55ca3558aa2d45", + "kit/$app-forms": "61a344004d71b921bb3c7d39a2afd9af4de5226a9e960b314838041b0792ea7f", + "kit/$app-navigation": "92e632af18b1b9717fa6416f3eb410155f370c7ac7232077cbbbbec57fb9360a", + "kit/$app-paths": "2c92cb88bf3b4a2dfbb29506edf4edcd4fb38b16a58c7d59efbca8cb3b53dcce", + "kit/$app-server": "50c53e4f8851a489c0bdad479c58a82203188c5735d8ff36794172cf44f2695a", + "kit/$app-state": "1d33d98725276564f912f1566a723235d26ddc24dc11381a2a05e3202db69e91", + "kit/$app-stores": "f05e079b15bee2c561005f7f3b500f735a89c087da5778ad9390f2a1854fe3ec", + "kit/$app-types": "9c5b3e9e428f9bd437b288e45679452960f46ebeace6f2a0f3da763b6a1ab9cd", + "kit/$env-dynamic-private": "019a9b64f30a4407631d56554f2124061ad16b424888752186bdc961edf59eae", + "kit/$env-dynamic-public": "39f6ff446965be224e528d14c9bfbb71f5fd9809f71db575bca6333d6427e941", + "kit/$env-static-private": "526b80041929480f89ca948c02878aa8df669ae5380416bc30dc2d181869a6b3", + "kit/$env-static-public": "5054a554cdd0a781ac5b5649aba92040556f87ad77cd1cc53fa939f544ac9515", + "kit/$lib": "98d7b3ec9b4fba7e8d40b0c9a0845228d874bc037610abc12b346787557709ad", + "kit/$service-worker": "d8a7b705cc0fde5e80ac381d5dc325ae689bd5a28c255eee4802396b2c0276db", + "kit/configuration": "263d0373bf4da8181fb77b01a8ddc367cac7e101552bb6f252a48bcbee8139b6", + "kit/cli": "690b0bd6cddbf1b1d2cb52a2956a757a515ca4e4b41ae6c85b37d94b8d1ade84", + "kit/types": "1519bf5d3bdc6324a7da937d64624f6b2caed779c3e4091ac4439769beaa3453", + "mcp/overview": "2f120bae00baa384aefc093eea0e3298e2e8fbda1ffa1c55c8ae956b83f28976", + "mcp/local-setup": "615547482fc28ae62e5287f79124618b275f62017bfff511466f2326271b5bb9", + "mcp/remote-setup": "af2dd1872f26a220838def57ae5d6f4424affb9d3f1d53ca570c021bb93d658d", + "mcp/tools": "ccf68183cc4b6801a6aeeb575bfbdbdebd1af305624fe6cf64de3dbbeb9e025f", + "mcp/resources": "381b5a3256eda7e8e09f8e8760dba1d0c542a49f4961c203f3f9ad10c1f5d638", + "mcp/prompts": "84327e4e2d5b97a1fe3c8a693ab0f20a94dc068abb8d80bdde64dc09e7431b32", + "svelte/overview": "7700ca74f439e7c3d397f6ceeed70aed59cf177894a30b475ed601778e9e8042", + "svelte/getting-started": "80bbf8f2ea3580febd3e20296fdf63f29997e26e727774c2fc6080456bee4f52", + "svelte/svelte-files": "8971b9003e5ce6898894a01615b5816c7a95191b5e327af53ce31b49844d6f0a", + "svelte/svelte-js-files": "b6a481a0ba8e3498533a27d6ff34c4caf46b319716729e80b4e0abe98e90ae0d", + "svelte/what-are-runes": "d52254d2631c5014d33de163a8ac8f3a011f3921397633bb2a9aeb90510b3479", + "svelte/$state": "7d8c804721e60d4902109ebebea5cf3920f61af7c7613b1530406b27a1bdc105", + "svelte/$derived": "b85bac4b7541f9eec5050c4afe11efa120c8d83de07073357769de328a2b9d70", + "svelte/$effect": "fc928d4d5daafec1b06b7b143492524cf0ec5059b2ecf6cc88b56539e3d08375", + "svelte/$props": "8b0e924f115db23113867c70863f8b24ec843f285fede30d54ede21fb7c3b83f", + "svelte/$bindable": "60375b28577bc285815809c5bb85dec0a5e123bf3eda0da374d4c0cb28d9a377", + "svelte/$inspect": "014b8f124d82cca846a14096588de250c09469b52f4bc0380fad45ec572ea0e3", + "svelte/$host": "37a9fb749359688e1d68e03bef6833a67beb7ab695a5faeb73ed1d6ad1867c5f", + "svelte/basic-markup": "7aebf6ad9be00b337d4018ddf768c11e1e8e13e9a8952c7ddc743d6cc1cca428", + "svelte/if": "e4da4ed94902fa904fa168b50bb68d838f94a2c2be4faa5fef00b3dbbcc61645", + "svelte/each": "e8d75f3a210da756db04881c81499027a6be5f875a0747fd4c01c4cc1f37a01b", + "svelte/key": "5df663b8f1ada229fd771e5dc64bf5ad96ca21e27f6bd8c5b499d7b5fed5da35", + "svelte/await": "ba40da73575717b3005d8c3f4fadf1dc47d4369229b1f1b98a9962dc5f05df3f", + "svelte/snippet": "96f1853f3ca164532427e0c881b647b252ffb94cd3559505d8cf41ddd5279973", + "svelte/@render": "fefc529a277b207668ec7171bdd044117b96792ed19903e0f6a0c35d1a184780", + "svelte/@html": "37ffb87f829e7b36b521ee5e99f5956d76baf449e32661c5f7156f805e1fc82f", + "svelte/@attach": "9bef203823fe4795129e280d37830b068bb9a6e805ccbadcf8509a3c0ee6151a", + "svelte/@const": "e79a941a3e248400ed19fc410bdcca1e1dfd50b5e9f21b2d8224ef176e3e75cc", + "svelte/@debug": "f57a6ce04733ab2e2af63b2d59344414e7b5130bdec00274e3542dcb468c8a21", + "svelte/bind": "025daf253af040a560d79a8e5efee56f2d2922c55ab80fead24623d86c36d1d3", + "svelte/use": "adb10f7ef6a316db21b32a2bc2cea079abe37c48bb33cdebf9db91592115bf23", + "svelte/transition": "e916f804688a8d4dc7d6f34b2d5862595aa5a4a10daede17861d370eec873050", + "svelte/in-and-out": "d1dc82a686f09fc6dec814a8ce824e40757c4b857b147a69e6c84bf93b0bcc17", + "svelte/animate": "0320580f745ba93cb536ecbef5e10c227caad60fefae5dadc9dd52166a9453d7", + "svelte/style": "a7e861bea29058120c83982fdc8b421dea565032f2940e18fa068df6a73eb061", + "svelte/class": "15318e5a8d676aa840f71229a3f3e432883a7bbd00c4ef2b28e4fd4db755584d", + "svelte/await-expressions": "01dc0a2118fd8a2cd649c737e097635a013576f85b473a752756ccaf92aa27e8", + "svelte/scoped-styles": "c4ade79680ca0bda7e157be5fcafdb063002bacc79a5f9c1e8530ec4b479df7f", + "svelte/global-styles": "52b1090dfdbff596c3f19264277df4b0d2b3a063e3ee3f42610b23c629ccac02", + "svelte/custom-properties": "b0d4f8432380284735838ea0ab48812dc37665dec364908d3dc2c82fcb5179d9", + "svelte/nested-style-elements": "86f7e79c3532f5a2e88f6cbfd3c2d4496f3c42858b799e6f47dd32409055ec29", + "svelte/svelte-boundary": "a1ffd2ced1122092b06c7a5c3e2b66d127daa632a9888f8987de1438d24a2af4", + "svelte/svelte-window": "95f83adf2a83e810917df66ec3ae64a083e20f79b9bae25a63693edad6186930", + "svelte/svelte-document": "ea8eafada6dd22a1ca36a6d2b7c2ebd996620dd809bd29f1cf2e23912c9f2fb4", + "svelte/svelte-body": "6d42bb102657242d2745658e8394df8e948384c93896bb1a38eba628129580e0", + "svelte/svelte-head": "7d7ed49de4b8eaed5a7c2a3741c9c97d7f07f1c61d609cf95ea4642d7d9519fc", + "svelte/svelte-element": "dbc2894d1a4df3bbc010e14fe8acaf47cab1e47595083549bcbe03ef6d70c0f8", + "svelte/svelte-options": "361ae053b401b5748092545e79387c1fd204a0c05e0c97af476dd5c2b6459a05", + "svelte/stores": "6af05349fa2e56cf97baf52bfdad4baa56205a07676bbbbf83ba9cc11b4f74c9", + "svelte/context": "5aced025a25892c041d22e2942d5c793cab49425dbb79aa24c6e8bda6f831e52", + "svelte/lifecycle-hooks": "4cb4967ff252980753a385d7400aeecd6e7e7e5d49853b07e6ce9ac5c21f226b", + "svelte/imperative-component-api": "f65ba0880e127ea497167efeae5f6250233b35764549b81ba338f5e172fa4a84", + "svelte/testing": "b186d594536788db689e45f5d006effa5bb0852539751a9f469c33f871ffbb07", + "svelte/typescript": "0a7109270bbf8fb388e51e38b868f46c532d54ba3a7ae3304b0b369ec9f03c30", + "svelte/custom-elements": "a74ef3bc373c0cf5d7d439accf11d398b3180f3e44fe576b1e68dd2813b6484d", + "svelte/v4-migration-guide": "d78c974770bab180bfa50f8465ddd08d29dc3355d7d8da4aa2f892f68a8dcbae", + "svelte/v5-migration-guide": "6e92e90f8b5086a7b1eda8d498e995650d4f93ef05ec35c89e24909c21f623bb", + "svelte/faq": "e935b0651782fde2cb138dac2586fbb3627fddc08cdd7a8b00d1d09a5b63ff8d", + "svelte/svelte": "bd2a9bcc3babc4dd148ae71ddb437d9c6e359c516f0823e14cd02fa99be3b37a", + "svelte/svelte-action": "dd41790ddfa6ad8763c566bf81abcefd47bf1d82465e77224034507d65ef7dd2", + "svelte/svelte-animate": "4b96afa6848acf81497770d69b655df3c7472b546f3024dcc25521ec14e585ed", + "svelte/svelte-attachments": "4da23f36026be101db0440d9357e84d765b58cca00678548f52139a133913e9a", + "svelte/svelte-compiler": "6815a77b9d14d476a4d4bc6ad589e5436ca3f8c897952eb858ee359ebba59f49", + "svelte/svelte-easing": "452e4c4f8485a8047c3320c58fb4df07acaa8c7bd6171828f0b55673a05f2b22", + "svelte/svelte-events": "06c912902e80d19cb1ca7e2eac03ca7138d0f9a39547f5ee51115196d483e948", + "svelte/svelte-legacy": "b285c8859ed7403616829e2dcbf1a81982942182f8039a1acbba1a0082b54804", + "svelte/svelte-motion": "c64243c31d2187b9fa41c16697fe3a5f204603382be53b6a6d8aef27ab4142e6", + "svelte/svelte-reactivity-window": "48a9e5dba5564bddaac94a0d7ba4c8d5f8e2480cdebb19ba71288936bc76bdf1", + "svelte/svelte-reactivity": "4ff4d515986a45e575bfa8d64e09e5f6b61a9f35e79035f7507cd502b9431d4f", + "svelte/svelte-server": "bb027c8e6c0aa48a77349a49671f0bd60fec07b7c0150f1498e4a18e5f90288b", + "svelte/svelte-store": "6f99d25bd75333042c6aa1377e33d5cc51aabf48b660eda5756f08d7d3b7a9b2", + "svelte/svelte-transition": "e57769d1e309aa9f2fa4d591ac2fb7d73aedf232a437b975e7845352a3ad9909", + "svelte/compiler-errors": "88172d54e4e4a1b094b8ec526fa84e0a9ee3a0cbfcbe90de6a09c580c48c3a0f", + "svelte/compiler-warnings": "885adaa867ffd525b695b32b87789cf2d9bde741d45c13dd153dd5519233fd4b", + "svelte/runtime-errors": "59035d3cf75f6af6fdd94fcf22c42cb66e892adf4d55a81801072c53f3dabcac", + "svelte/runtime-warnings": "93b6ee308fd13add66bc7621659c22580eef4d6614bf78f0a130879ae5d8ec64", + "svelte/legacy-overview": "f999cc193b4ecf36cbfb99b52107a55aa7b841b6e01ea5e0229799abd90933dc", + "svelte/legacy-let": "3660721b3cd7cdcb60b77450bd87b6ded93eb7d47aee9950db994d3450d07739", + "svelte/legacy-reactive-assignments": "ca81836b396d9f6d4df34707ea79ed177bdd2d93dd3b43e37137dfca37396d31", + "svelte/legacy-export-let": "0223ca4f538116da46d27840653a11c352d88ad2f5eb8cc9a50a5b590001aad3", + "svelte/legacy-$$props-and-$$restProps": "8d91d694b70547a915cc2360ea1c63e7b9dcd29fd0fedfc04b2fb3ade6c152a7", + "svelte/legacy-on": "7dde3692ea5c91bbcf1d86ff91fce1966df0952d2cf153f3fab6fa1a55774330", + "svelte/legacy-slots": "05d8524ab20b47d5f07e67f0634d425cf892715c68cf635b134d6b19e397bbb8", + "svelte/legacy-$$slots": "d3aa2e8e480a9593259ad1d5dec43a605ed28bb92e7007d0713f60a398803d7c", + "svelte/legacy-svelte-fragment": "aaa2a5b2fbb72fa2dfe5f10cdb2287863cf99d9590a634b43e28336da1a89e54", + "svelte/legacy-svelte-component": "3c2d5fb89cfe5657950d279a4189ab1f877dac99e8afca187fc5952eecb39ae0", + "svelte/legacy-svelte-self": "afc8f5667bd3643e206f1bd4298ee5e259ca0b5e8cf7b2fb7b9afd692b66ad78", + "svelte/legacy-component-api": "9bd8fde41aa9e006091751b16d3de14b28471733534e08dfba99d745db78fac6" + } +} From ae92b84ffa60c0d231bbc75f1046e905cdc03519 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:52:27 +0200 Subject: [PATCH 25/99] Update generate-summaries.ts --- packages/mcp-server/scripts/generate-summaries.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 87a8c19f..5d031ba4 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -18,7 +18,7 @@ interface CliOptions { force: boolean; dryRun: boolean; debug: boolean; - promptType: 'use-cases' | 'condensed'; + promptType: 'use-cases' | 'distilled'; } interface SectionChange { @@ -87,7 +87,7 @@ Here is the documentation page content to analyze: `; -const CONDENSED_PROMPT = `TODO`; +const DISTILLED_PROMPT = `TODO`; const program = new Command(); @@ -100,7 +100,7 @@ program .option('--debug', 'Debug mode: process only 2 sections', false) .option( '-p, --prompt-type ', - 'Prompt type to use: "use-cases" or "condensed"', + 'Prompt type to use: "use-cases" or "distilled"', 'use-cases', ); @@ -217,11 +217,11 @@ async function main() { console.log('πŸš€ Starting use cases generation...'); // Determine output file based on prompt type - const output_filename = options.promptType === 'condensed' ? 'condensed.json' : 'use_cases.json'; + const output_filename = options.promptType === 'distilled' ? 'distilled.json' : 'use_cases.json'; const output_path = path.join(current_dirname, `../src/${output_filename}`); // Select prompt based on prompt type - const selected_prompt = options.promptType === 'condensed' ? CONDENSED_PROMPT : USE_CASES_PROMPT; + const selected_prompt = options.promptType === 'distilled' ? DISTILLED_PROMPT : USE_CASES_PROMPT; // Display mode information console.log(`πŸ“ PROMPT MODE: ${options.promptType.toUpperCase()} β†’ ${output_filename}\n`); From 30dc2eba849e938a9e6a8f0693100180416f9070 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:53:09 +0200 Subject: [PATCH 26/99] Update generate-summaries.ts --- .../mcp-server/scripts/generate-summaries.ts | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 5d031ba4..0c45bdea 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -87,7 +87,39 @@ Here is the documentation page content to analyze: `; -const DISTILLED_PROMPT = `TODO`; +const DISTILLED_PROMPT = `You are an expert in web development, specifically Svelte 5 and SvelteKit. Your task is to condense and distill the Svelte documentation into a concise format while preserving the most important information. +Shorten the text information AS MUCH AS POSSIBLE while covering key concepts. + +Focus on: +1. Code examples with short explanations of how they work +2. Key concepts and APIs with their usage patterns +3. Important gotchas and best practices +4. Patterns that developers commonly use + +Remove: +1. Redundant explanations +2. Verbose content that can be simplified +3. Marketing language +4. Legacy or deprecated content +5. Anything else that is not strictly necessary + +Keep your output in markdown format. Preserve code blocks with their language annotations. +Maintain headings but feel free to combine or restructure sections to improve clarity. + +Make sure all code examples use Svelte 5 runes syntax ($state, $derived, $effect, etc.) + +Keep the following Svelte 5 syntax rules in mind: +* There is no colon (:) in event modifiers. You MUST use "onclick" instead of "on:click". +* Runes do not need to be imported, they are globals. +* $state() runes are always declared using let, never with const. +* When passing a function to $derived, you must always use $derived.by(() => ...). +* Error boundaries can only catch errors during component rendering and at the top level of an $effect inside the error boundary. +* Error boundaries do not catch errors in onclick or other event handlers. + +IMPORTANT: All code examples MUST come from the documentation verbatim, do NOT create new code examples. Do NOT modify existing code examples. +IMPORTANT: Because of changes in Svelte 5 syntax, do not include content from your existing knowledge, you may only use knowledge from the documentation to condense. + +Here is the documentation you must condense:`; const program = new Command(); From d4fe086517d4e5f5b1f19e2c6ffdc558d2c25149 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:56:12 +0200 Subject: [PATCH 27/99] move prompts --- package.json | 3 + .../mcp-server/scripts/generate-summaries.ts | 79 +------------------ .../src/mcp/handlers/tools/prompts.ts | 76 ++++++++++++++++++ 3 files changed, 80 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index f3e28a73..58edf4c5 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,9 @@ "generate-summaries": "pnpm --filter @sveltejs/mcp-server run generate-summaries", "generate-summaries:dry-run": "pnpm --filter @sveltejs/mcp-server run generate-summaries:dry-run", "generate-summaries:debug": "pnpm --filter @sveltejs/mcp-server run generate-summaries:debug", + "generate-distilled": "pnpm --filter @sveltejs/mcp-server run generate-distilled", + "generate-distilled:dry-run": "pnpm --filter @sveltejs/mcp-server run generate-distilled:dry-run", + "generate-distilled:debug": "pnpm --filter @sveltejs/mcp-server run generate-distilled:debug", "generate-prompt-docs": "node --import node-resolve-ts/register scripts/update-docs-prompts.ts", "release": "pnpm --filter @sveltejs/mcp run build && changeset publish", "changeset:version": "changeset version && pnpm --filter @sveltejs/mcp run update:version && git add --all" diff --git a/packages/mcp-server/scripts/generate-summaries.ts b/packages/mcp-server/scripts/generate-summaries.ts index 0c45bdea..cbad02f9 100644 --- a/packages/mcp-server/scripts/generate-summaries.ts +++ b/packages/mcp-server/scripts/generate-summaries.ts @@ -13,6 +13,7 @@ import { summary_data_schema, } from '../src/lib/schemas.ts'; import * as v from 'valibot'; +import { DISTILLED_PROMPT, USE_CASES_PROMPT } from '../src/mcp/handlers/tools/prompts.ts'; interface CliOptions { force: boolean; @@ -43,84 +44,6 @@ function compute_content_hash(content: string): string { return createHash('sha256').update(content).digest('hex'); } -const USE_CASES_PROMPT = ` -You are tasked with analyzing Svelte 5 and SvelteKit documentation pages to identify when they would be useful. - -Your task: -1. Read the documentation page content provided -2. Identify the main use cases, scenarios, or queries where this documentation would be relevant -3. Create a VERY SHORT, comma-separated list of use cases (maximum 200 characters total) -4. Think about what a developer might be trying to build or accomplish when they need this documentation - -Guidelines: -- Focus on WHEN this documentation would be needed, not WHAT it contains -- Consider specific project types (e.g., "e-commerce site", "blog", "dashboard", "social media app") -- Consider specific features (e.g., "authentication", "forms", "data fetching", "animations") -- Consider specific components (e.g., "slider", "modal", "dropdown", "card") -- Consider development stages (e.g., "project setup", "deployment", "testing", "migration") -- Use "always" for fundamental concepts that apply to virtually all Svelte projects -- Be concise but specific -- Use lowercase -- Separate multiple use cases with commas - -Examples of good use_cases: -- "always, any svelte project, core reactivity" -- "authentication, login systems, user management" -- "e-commerce, product listings, shopping carts" -- "forms, user input, data submission" -- "deployment, production builds, hosting setup" -- "animation, transitions, interactive ui" -- "routing, navigation, multi-page apps" -- "blog, content sites, markdown rendering" - -Requirements: -- Maximum 200 characters (including spaces and commas) -- Lowercase only -- Comma-separated list of use cases -- Focus on WHEN/WHY someone would need this, not what it is -- Be specific about project types, features, or components when applicable -- Use "always" sparingly, only for truly universal concepts -- Do not include quotes or special formatting in your response -- Respond with ONLY the use cases text, no additional text - -Here is the documentation page content to analyze: - -`; - -const DISTILLED_PROMPT = `You are an expert in web development, specifically Svelte 5 and SvelteKit. Your task is to condense and distill the Svelte documentation into a concise format while preserving the most important information. -Shorten the text information AS MUCH AS POSSIBLE while covering key concepts. - -Focus on: -1. Code examples with short explanations of how they work -2. Key concepts and APIs with their usage patterns -3. Important gotchas and best practices -4. Patterns that developers commonly use - -Remove: -1. Redundant explanations -2. Verbose content that can be simplified -3. Marketing language -4. Legacy or deprecated content -5. Anything else that is not strictly necessary - -Keep your output in markdown format. Preserve code blocks with their language annotations. -Maintain headings but feel free to combine or restructure sections to improve clarity. - -Make sure all code examples use Svelte 5 runes syntax ($state, $derived, $effect, etc.) - -Keep the following Svelte 5 syntax rules in mind: -* There is no colon (:) in event modifiers. You MUST use "onclick" instead of "on:click". -* Runes do not need to be imported, they are globals. -* $state() runes are always declared using let, never with const. -* When passing a function to $derived, you must always use $derived.by(() => ...). -* Error boundaries can only catch errors during component rendering and at the top level of an $effect inside the error boundary. -* Error boundaries do not catch errors in onclick or other event handlers. - -IMPORTANT: All code examples MUST come from the documentation verbatim, do NOT create new code examples. Do NOT modify existing code examples. -IMPORTANT: Because of changes in Svelte 5 syntax, do not include content from your existing knowledge, you may only use knowledge from the documentation to condense. - -Here is the documentation you must condense:`; - const program = new Command(); program diff --git a/packages/mcp-server/src/mcp/handlers/tools/prompts.ts b/packages/mcp-server/src/mcp/handlers/tools/prompts.ts index a6f9d419..292368e7 100644 --- a/packages/mcp-server/src/mcp/handlers/tools/prompts.ts +++ b/packages/mcp-server/src/mcp/handlers/tools/prompts.ts @@ -3,3 +3,79 @@ export const SECTIONS_LIST_INTRO = export const SECTIONS_LIST_OUTRO = "Carefully analyze the use_cases field for each section to identify which documentation is relevant for the user's specific query. The use_cases contain keywords for project types, features, components, and development stages. After identifying relevant sections, use the get-documentation tool with ALL relevant section titles or paths at once (can pass multiple sections as an array)."; + +export const USE_CASES_PROMPT = `You are tasked with analyzing Svelte 5 and SvelteKit documentation pages to identify when they would be useful. + +Your task: +1. Read the documentation page content provided +2. Identify the main use cases, scenarios, or queries where this documentation would be relevant +3. Create a VERY SHORT, comma-separated list of use cases (maximum 200 characters total) +4. Think about what a developer might be trying to build or accomplish when they need this documentation + +Guidelines: +- Focus on WHEN this documentation would be needed, not WHAT it contains +- Consider specific project types (e.g., "e-commerce site", "blog", "dashboard", "social media app") +- Consider specific features (e.g., "authentication", "forms", "data fetching", "animations") +- Consider specific components (e.g., "slider", "modal", "dropdown", "card") +- Consider development stages (e.g., "project setup", "deployment", "testing", "migration") +- Use "always" for fundamental concepts that apply to virtually all Svelte projects +- Be concise but specific +- Use lowercase +- Separate multiple use cases with commas + +Examples of good use_cases: +- "always, any svelte project, core reactivity" +- "authentication, login systems, user management" +- "e-commerce, product listings, shopping carts" +- "forms, user input, data submission" +- "deployment, production builds, hosting setup" +- "animation, transitions, interactive ui" +- "routing, navigation, multi-page apps" +- "blog, content sites, markdown rendering" + +Requirements: +- Maximum 200 characters (including spaces and commas) +- Lowercase only +- Comma-separated list of use cases +- Focus on WHEN/WHY someone would need this, not what it is +- Be specific about project types, features, or components when applicable +- Use "always" sparingly, only for truly universal concepts +- Do not include quotes or special formatting in your response +- Respond with ONLY the use cases text, no additional text + +Here is the documentation page content to analyze: +`; + +export const DISTILLED_PROMPT = `You are an expert in web development, specifically Svelte 5 and SvelteKit. Your task is to condense and distill the Svelte documentation into a concise format while preserving the most important information. +Shorten the text information AS MUCH AS POSSIBLE while covering key concepts. + +Focus on: +1. Code examples with short explanations of how they work +2. Key concepts and APIs with their usage patterns +3. Important gotchas and best practices +4. Patterns that developers commonly use + +Remove: +1. Redundant explanations +2. Verbose content that can be simplified +3. Marketing language +4. Legacy or deprecated content +5. Anything else that is not strictly necessary + +Keep your output in markdown format. Preserve code blocks with their language annotations. +Maintain headings but feel free to combine or restructure sections to improve clarity. + +Make sure all code examples use Svelte 5 runes syntax ($state, $derived, $effect, etc.) + +Keep the following Svelte 5 syntax rules in mind: +* There is no colon (:) in event modifiers. You MUST use "onclick" instead of "on:click". +* Runes do not need to be imported, they are globals. +* $state() runes are always declared using let, never with const. +* When passing a function to $derived, you must always use $derived.by(() => ...). +* Error boundaries can only catch errors during component rendering and at the top level of an $effect inside the error boundary. +* Error boundaries do not catch errors in onclick or other event handlers. + +IMPORTANT: All code examples MUST come from the documentation verbatim, do NOT create new code examples. Do NOT modify existing code examples. +IMPORTANT: Because of changes in Svelte 5 syntax, do not include content from your existing knowledge, you may only use knowledge from the documentation to condense. + +Here is the documentation you must condense:`; From 24d22979ce25450309250a3e35b9ca898cf6a595 Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:56:36 +0200 Subject: [PATCH 28/99] Update package.json --- packages/mcp-server/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 6a489af0..c6d7f586 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -12,7 +12,10 @@ "test": "vitest", "generate-summaries": "node --experimental-strip-types scripts/generate-summaries.ts", "generate-summaries:dry-run": "node --experimental-strip-types scripts/generate-summaries.ts --dry-run", - "generate-summaries:debug": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts" + "generate-summaries:debug": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts", + "generate-distilled": "node --experimental-strip-types scripts/generate-summaries.ts --prompt-type distilled", + "generate-distilled:dry-run": "node --experimental-strip-types scripts/generate-summaries.ts --prompt-type distilled --dry-run", + "generate-distilled:debug": "DEBUG_MODE=1 node --experimental-strip-types scripts/generate-summaries.ts --prompt-type distilled" }, "exports": { ".": "./src/index.ts" From bb41d4a4cc7a9aa1b3ed3b00795d1b18ac9f254f Mon Sep 17 00:00:00 2001 From: Stanislav Khromov Date: Sat, 11 Oct 2025 02:58:44 +0200 Subject: [PATCH 29/99] Create distilled.json --- packages/mcp-server/src/distilled.json | 356 +++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 packages/mcp-server/src/distilled.json diff --git a/packages/mcp-server/src/distilled.json b/packages/mcp-server/src/distilled.json new file mode 100644 index 00000000..a6254c37 --- /dev/null +++ b/packages/mcp-server/src/distilled.json @@ -0,0 +1,356 @@ +{ + "generated_at": "2025-10-11T00:58:02.509Z", + "model": "claude-sonnet-4-5-20250929", + "total_sections": 173, + "successful_summaries": 173, + "summaries": { + "cli/overview": "# Svelte CLI (`sv`)\n\nToolkit for creating and maintaining Svelte applications.\n\n## Usage\n\n```sh\nnpx sv \n```\n\nUses local installation if available, otherwise downloads latest version. Works with other package managers (`pnpx` for pnpm, etc.).", + "cli/faq": "# Svelte CLI (`sv`)\n\n## Running `sv` CLI\n\n```bash\nnpm: npx sv create\npnpm: pnpx sv create / pnpm dlx sv create\nBun: bunx sv create\nDeno: deno run npm:sv create\nYarn: yarn dlx sv create\n```\n\n## Troubleshooting\n\n**`npx sv` not working**: Package managers may run local tools instead of registry packages (common with npm/yarn).\n\nKnown issues:\n- `npx sv create` does nothing ([#472](https://github.com/sveltejs/cli/issues/472))\n- `sv` conflicts with `runit` ([#259](https://github.com/sveltejs/cli/issues/259))\n- Windows PowerShell: `sv` conflicts with `Set-Variable` ([#317](https://github.com/sveltejs/cli/issues/317))", + "cli/sv-create": "# sv create\n\nSets up a new SvelteKit project.\n\n## Usage\n\n```sh\nnpx sv create [options] [path]\n```\n\n## Options\n\n### `--from-playground `\nCreate project from a [playground](/playground) URL. Downloads files, detects dependencies, sets up complete project structure.\n\n```sh\nnpx sv create --from-playground=\"https://svelte.dev/playground/hello-world\"\n```\n\n### `--template `\n- `minimal` β€” barebones scaffolding\n- `demo` β€” showcase app with word guessing game (works without JS)\n- `library` β€” Svelte library template with `svelte-package`\n\n### `--types