@metrostar/comet-mcp 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -7
- package/dist/index.js +296 -5
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +106 -0
- package/dist/utils.js.map +1 -1
- package/dist/utils.test.js +481 -1
- package/dist/utils.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,13 +30,15 @@ npm install -g @metrostar/comet-mcp
|
|
|
30
30
|
|
|
31
31
|
## Available Tools
|
|
32
32
|
|
|
33
|
-
| Tool | Description
|
|
34
|
-
| ----------------------- |
|
|
35
|
-
| `init_project` | Initialize a new Comet project (UI or API)
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
33
|
+
| Tool | Description | Parameters |
|
|
34
|
+
| ----------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
35
|
+
| `init_project` | Initialize a new Comet project (UI or API) | `type`: Project type ("ui" or "api")<br>`name`: Project name and directory name |
|
|
36
|
+
| `add_comet` | Add Comet packages and configurations to an existing app | None |
|
|
37
|
+
| `get_comet_version` | Get the current version of Comet Packages and Versions | None |
|
|
38
|
+
| `list_components` | Get a list of all available Comet components | `package`: Filter by package ("all", "comet-uswds", "comet-extras", "comet-data-viz") - optional, defaults to "all" |
|
|
39
|
+
| `get_component_details` | Get detailed information about a specific component | `componentName`: The name of the component to get details for (required) |
|
|
40
|
+
| `search_uswds` | Search USWDS design system documentation | `query`: Search query for utilities, design tokens, etc. (required)<br>`limit`: Max results to return (1-20, default: 5) |
|
|
41
|
+
| `get_env_variables` | Get current Node.js environment variables | `filter`: Optional filter to search for specific variables (case-insensitive) |
|
|
40
42
|
|
|
41
43
|
### Component Tools
|
|
42
44
|
|
|
@@ -54,6 +56,29 @@ The `get_component_details` tool provides detailed information about a specific
|
|
|
54
56
|
- Available props (extracted from TypeScript interfaces)
|
|
55
57
|
- Exported types and interfaces
|
|
56
58
|
|
|
59
|
+
### Add Comet Tool
|
|
60
|
+
|
|
61
|
+
The `add_comet` tool helps integrate Comet packages into existing applications by:
|
|
62
|
+
|
|
63
|
+
1. **Checking existing installation**: Detects if Comet packages are already installed and configured
|
|
64
|
+
2. **Prerequisites verification**: Ensures required dependencies (Vite and SCSS) are present
|
|
65
|
+
3. **Setup guidance**: Provides complete step-by-step installation instructions when prerequisites are met
|
|
66
|
+
|
|
67
|
+
**Key Features:**
|
|
68
|
+
|
|
69
|
+
- **Smart detection**: Automatically checks for existing Comet packages to avoid duplicate setup
|
|
70
|
+
- **Dependency validation**: Verifies that Vite and SCSS/Sass are properly configured
|
|
71
|
+
- **Complete installation guide**: Provides detailed instructions following the official Comet USWDS documentation
|
|
72
|
+
- **Ready-to-use configurations**: Includes all necessary Vite config updates, SCSS setup, and example component usage
|
|
73
|
+
|
|
74
|
+
**When to use:**
|
|
75
|
+
|
|
76
|
+
- Adding Comet to an existing React/TypeScript project
|
|
77
|
+
- Migrating from custom components to Comet USWDS components
|
|
78
|
+
- Setting up Comet in a project that already has Vite and SCSS configured
|
|
79
|
+
|
|
80
|
+
The tool follows the official "Getting Started with a Custom App (NOT pre-configured for USWDS)" documentation and ensures all USWDS-specific configurations are properly applied.
|
|
81
|
+
|
|
57
82
|
### Environment Variables Tool
|
|
58
83
|
|
|
59
84
|
The `get_env_variables` tool helps inspect the current Node.js environment variables:
|
|
@@ -63,6 +88,34 @@ The `get_env_variables` tool helps inspect the current Node.js environment varia
|
|
|
63
88
|
|
|
64
89
|
This tool is useful for debugging environment configuration, checking if required variables are set, and understanding the runtime environment.
|
|
65
90
|
|
|
91
|
+
### USWDS Search Tool
|
|
92
|
+
|
|
93
|
+
The `search_uswds` tool provides direct access to the official USWDS design system documentation from https://designsystem.digital.gov/:
|
|
94
|
+
|
|
95
|
+
- **Comprehensive Search**: Searches across utilities and design tokens documentation
|
|
96
|
+
- **Real-time Data**: Fetches current documentation directly from the USWDS website
|
|
97
|
+
- **Rich Results**: Returns detailed information including:
|
|
98
|
+
- Page titles and content excerpts
|
|
99
|
+
- Code examples and usage patterns
|
|
100
|
+
- CSS utility classes and design tokens
|
|
101
|
+
- Direct links to official documentation
|
|
102
|
+
|
|
103
|
+
**Key Features:**
|
|
104
|
+
|
|
105
|
+
- **Utilities Search**: Find CSS utility classes for spacing, typography, colors, layout, and more
|
|
106
|
+
- **Design Tokens**: Discover design tokens for colors, spacing, typography scales, and other design properties
|
|
107
|
+
- **Code Examples**: Get actual code snippets showing how to use USWDS utilities and tokens
|
|
108
|
+
- **Smart Parsing**: Extracts relevant class names and utilities from documentation content
|
|
109
|
+
|
|
110
|
+
**Example Queries:**
|
|
111
|
+
|
|
112
|
+
- `"margin spacing"` - Find margin-related utility classes
|
|
113
|
+
- `"color tokens"` - Discover available color design tokens
|
|
114
|
+
- `"typography"` - Search for typography utilities and tokens
|
|
115
|
+
- `"grid layout"` - Find grid and layout-related utilities
|
|
116
|
+
|
|
117
|
+
This tool is essential for developers working with USWDS who need quick access to the latest utility classes, design tokens, and implementation patterns without leaving their development environment.
|
|
118
|
+
|
|
66
119
|
## Running the Project Locally
|
|
67
120
|
|
|
68
121
|
The MCP server is built using the official TypeScript MCP SDK and follows the existing Comet project structure and patterns.
|
package/dist/index.js
CHANGED
|
@@ -7,15 +7,13 @@ import path from 'path';
|
|
|
7
7
|
import { exec } from 'child_process';
|
|
8
8
|
import { promisify } from 'util';
|
|
9
9
|
import { API_REPO_URL, PROJECT_TYPES, UI_REPO_URL } from './constants.js';
|
|
10
|
-
import { log, getComponentsFromPackage, getComponentDetails } from './utils.js';
|
|
10
|
+
import { log, getComponentsFromPackage, getComponentDetails, fetchUrl, parseSitemapForUrls, extractUSWDSContent, } from './utils.js';
|
|
11
11
|
const execAsync = promisify(exec);
|
|
12
12
|
const server = new Server({
|
|
13
13
|
name: 'comet-mcp',
|
|
14
|
-
version: '1.
|
|
14
|
+
version: '1.3.0',
|
|
15
15
|
}, {
|
|
16
|
-
capabilities: {
|
|
17
|
-
tools: {},
|
|
18
|
-
},
|
|
16
|
+
capabilities: {},
|
|
19
17
|
});
|
|
20
18
|
// Tool definitions
|
|
21
19
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
@@ -89,6 +87,34 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
89
87
|
},
|
|
90
88
|
},
|
|
91
89
|
},
|
|
90
|
+
{
|
|
91
|
+
name: 'add_comet',
|
|
92
|
+
description: 'Add comet packages and configurations to an existing app',
|
|
93
|
+
inputSchema: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
properties: {},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'search_uswds',
|
|
100
|
+
description: 'Search USWDS design system documentation for utilities, classes, design tokens, and other information from https://designsystem.digital.gov/',
|
|
101
|
+
inputSchema: {
|
|
102
|
+
type: 'object',
|
|
103
|
+
properties: {
|
|
104
|
+
query: {
|
|
105
|
+
type: 'string',
|
|
106
|
+
description: 'Search query for USWDS documentation (utilities, design tokens, etc.)',
|
|
107
|
+
},
|
|
108
|
+
limit: {
|
|
109
|
+
type: 'number',
|
|
110
|
+
description: 'Maximum number of results to return (default: 5)',
|
|
111
|
+
minimum: 1,
|
|
112
|
+
maximum: 20,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
required: ['query'],
|
|
116
|
+
},
|
|
117
|
+
},
|
|
92
118
|
],
|
|
93
119
|
};
|
|
94
120
|
});
|
|
@@ -245,6 +271,148 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
245
271
|
],
|
|
246
272
|
};
|
|
247
273
|
}
|
|
274
|
+
case 'add_comet': {
|
|
275
|
+
const currentDir = process.env.PROJECT_ROOT || process.cwd();
|
|
276
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
277
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
278
|
+
throw new Error(`No package.json found in current directory: ${currentDir}`);
|
|
279
|
+
}
|
|
280
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
281
|
+
const dependencies = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
282
|
+
// Step 1: Check if comet packages are already added
|
|
283
|
+
const cometPackages = [
|
|
284
|
+
'@metrostar/comet-uswds',
|
|
285
|
+
'@metrostar/comet-extras',
|
|
286
|
+
'@metrostar/comet-data-viz',
|
|
287
|
+
];
|
|
288
|
+
const installedCometPackages = cometPackages.filter((pkg) => dependencies[pkg]);
|
|
289
|
+
if (installedCometPackages.length > 0) {
|
|
290
|
+
return {
|
|
291
|
+
content: [
|
|
292
|
+
{
|
|
293
|
+
type: 'text',
|
|
294
|
+
text: `Comet packages are already configured in this project:\n${installedCometPackages
|
|
295
|
+
.map((pkg) => `- ${pkg}: ${dependencies[pkg]}`)
|
|
296
|
+
.join('\n')}\n\nNothing more to do.`,
|
|
297
|
+
},
|
|
298
|
+
],
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
// Step 2: Check for Vite and SCSS
|
|
302
|
+
const hasVite = 'vite' in dependencies ||
|
|
303
|
+
'@vitejs/plugin-react' in dependencies ||
|
|
304
|
+
'@vitejs/plugin-react-swc' in dependencies;
|
|
305
|
+
const hasScss = 'sass' in dependencies || 'scss' in dependencies || 'node-sass' in dependencies;
|
|
306
|
+
let result = '# Comet Setup Analysis\n\n';
|
|
307
|
+
result += '## Status\n';
|
|
308
|
+
result += 'Comet packages are not yet configured in this project.\n\n';
|
|
309
|
+
result += '## Prerequisites Check\n';
|
|
310
|
+
result += `- **Vite**: ${hasVite ? '✅ Found' : '❌ Not found'}\n`;
|
|
311
|
+
result += `- **SCSS**: ${hasScss ? '✅ Found' : '❌ Not found'}\n\n`;
|
|
312
|
+
if (!hasVite || !hasScss) {
|
|
313
|
+
result += '## Required Dependencies\n';
|
|
314
|
+
if (!hasVite) {
|
|
315
|
+
result +=
|
|
316
|
+
'- Vite is required for Comet packages. Install with: `npm install --save-dev vite @vitejs/plugin-react`\n';
|
|
317
|
+
}
|
|
318
|
+
if (!hasScss) {
|
|
319
|
+
result +=
|
|
320
|
+
'- SCSS/Sass is required for Comet styling. Install with: `npm install --save-dev sass`\n';
|
|
321
|
+
}
|
|
322
|
+
result += '\nPlease install the required dependencies before adding Comet packages.\n';
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
// All prerequisites are met, proceed with installation
|
|
326
|
+
result += '## Installation Steps\n';
|
|
327
|
+
result +=
|
|
328
|
+
'All prerequisites are met! Follow these steps to add Comet to your project:\n\n';
|
|
329
|
+
result += '### 1. Add Comet to your project:\n';
|
|
330
|
+
result += '```sh\n';
|
|
331
|
+
result += '# npm\n';
|
|
332
|
+
result += 'npm i --save @uswds/uswds @metrostar/comet-uswds\n\n';
|
|
333
|
+
result += '# or yarn\n';
|
|
334
|
+
result += 'yarn add @uswds/uswds @metrostar/comet-uswds\n';
|
|
335
|
+
result += '```\n\n';
|
|
336
|
+
result += '### 2. Add uswds directory to your src folder\n\n';
|
|
337
|
+
result += '### 3. Add base USWDS file (uswds.scss) to the uswds directory:\n';
|
|
338
|
+
result += '```scss\n';
|
|
339
|
+
result += '// Include a USWDS settings file (required)\n';
|
|
340
|
+
result += "@forward './uswds-settings.scss';\n\n";
|
|
341
|
+
result += '// Point to the USWDS source code (required)\n';
|
|
342
|
+
result += "@forward '~uswds/packages/uswds';\n\n";
|
|
343
|
+
result += "// Include your project's custom Sass (optional)\n";
|
|
344
|
+
result += '// @forward "project-custom.scss";\n';
|
|
345
|
+
result += '```\n\n';
|
|
346
|
+
result +=
|
|
347
|
+
'### 4. Add base USWDS settings file (uswds-settings.scss) to the uswds directory:\n';
|
|
348
|
+
result += '```scss\n';
|
|
349
|
+
result += "@use 'uswds-core' with (\n";
|
|
350
|
+
result += ' // General settings\n';
|
|
351
|
+
result += ' $theme-show-notifications: false,\n';
|
|
352
|
+
result += " $theme-font-path: '~uswds/dist/fonts',\n";
|
|
353
|
+
result += " $theme-image-path: '~uswds/dist/img'\n";
|
|
354
|
+
result += ');\n';
|
|
355
|
+
result += '```\n\n';
|
|
356
|
+
result += '### 5. Add uswds to the top of your SASS entry point (styles.scss):\n';
|
|
357
|
+
result += '```scss\n';
|
|
358
|
+
result += "@forward 'uswds/uswds.scss';\n";
|
|
359
|
+
result += '```\n\n';
|
|
360
|
+
result +=
|
|
361
|
+
'### 6. Update your Vite config file (vite.config.ts) with USWDS configurations:\n';
|
|
362
|
+
result += '```ts\n';
|
|
363
|
+
result += "import react from '@vitejs/plugin-react';\n";
|
|
364
|
+
result += "import autoprefixer from 'autoprefixer';\n";
|
|
365
|
+
result += "import path from 'path';\n";
|
|
366
|
+
result += "import { fileURLToPath } from 'url';\n";
|
|
367
|
+
result += "import { defineConfig } from 'vite';\n";
|
|
368
|
+
result += "import EnvironmentPlugin from 'vite-plugin-environment';\n";
|
|
369
|
+
result += "import eslint from 'vite-plugin-eslint';\n";
|
|
370
|
+
result += "import tsconfigPaths from 'vite-tsconfig-paths';\n\n";
|
|
371
|
+
result += 'const __filename = fileURLToPath(import.meta.url);\n';
|
|
372
|
+
result += 'const __dirname = path.dirname(__filename);\n\n';
|
|
373
|
+
result += '// https://vitejs.dev/config/\n';
|
|
374
|
+
result += 'export default defineConfig({\n';
|
|
375
|
+
result += " plugins: [react(), tsconfigPaths(), eslint(), EnvironmentPlugin('all')],\n";
|
|
376
|
+
result += ' resolve: {\n';
|
|
377
|
+
result += ' alias: {\n';
|
|
378
|
+
result += " '~uswds': path.resolve(__dirname, 'node_modules/@uswds/uswds'),\n";
|
|
379
|
+
result += ' },\n';
|
|
380
|
+
result += ' },\n';
|
|
381
|
+
result += ' css: {\n';
|
|
382
|
+
result += ' preprocessorOptions: {\n';
|
|
383
|
+
result += ' scss: {\n';
|
|
384
|
+
result += " api: 'legacy',\n";
|
|
385
|
+
result += " includePaths: ['node_modules/@uswds/uswds/packages'],\n";
|
|
386
|
+
result += ' // Silence warnings coming from USWDS SCSS\n';
|
|
387
|
+
result += ' quietDeps: true,\n';
|
|
388
|
+
result += ' logger: {\n';
|
|
389
|
+
result += ' warn: (msg) => {\n';
|
|
390
|
+
result += " if (msg.includes('legacy-js-api')) {\n";
|
|
391
|
+
result += ' return;\n';
|
|
392
|
+
result += ' }\n';
|
|
393
|
+
result += ' console.warn(msg);\n';
|
|
394
|
+
result += ' },\n';
|
|
395
|
+
result += ' },\n';
|
|
396
|
+
result += ' },\n';
|
|
397
|
+
result += ' },\n';
|
|
398
|
+
result += ' postcss: {\n';
|
|
399
|
+
result += ' plugins: [autoprefixer],\n';
|
|
400
|
+
result += ' },\n';
|
|
401
|
+
result += ' },\n';
|
|
402
|
+
result += '});\n';
|
|
403
|
+
result += '```\n\n';
|
|
404
|
+
result +=
|
|
405
|
+
'For additional troubleshooting, refer to the [Comet Starter](https://github.com/MetroStar/comet-starter) app.\n';
|
|
406
|
+
}
|
|
407
|
+
return {
|
|
408
|
+
content: [
|
|
409
|
+
{
|
|
410
|
+
type: 'text',
|
|
411
|
+
text: result,
|
|
412
|
+
},
|
|
413
|
+
],
|
|
414
|
+
};
|
|
415
|
+
}
|
|
248
416
|
case 'get_env_variables': {
|
|
249
417
|
const { filter } = args;
|
|
250
418
|
const envVars = process.env;
|
|
@@ -291,6 +459,129 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
291
459
|
],
|
|
292
460
|
};
|
|
293
461
|
}
|
|
462
|
+
case 'search_uswds': {
|
|
463
|
+
const { query, limit = 5 } = args;
|
|
464
|
+
try {
|
|
465
|
+
// Always search both utilities and design-tokens
|
|
466
|
+
const patterns = ['/utilities/', '/design-tokens/'];
|
|
467
|
+
// Fetch sitemap
|
|
468
|
+
const sitemapUrl = 'https://designsystem.digital.gov/sitemap.xml';
|
|
469
|
+
log(`Fetching sitemap from: ${sitemapUrl}`);
|
|
470
|
+
const sitemapContent = await fetchUrl(sitemapUrl);
|
|
471
|
+
// Parse sitemap for relevant URLs
|
|
472
|
+
const relevantUrls = parseSitemapForUrls(sitemapContent, patterns);
|
|
473
|
+
log(`Found ${relevantUrls.length} relevant URLs`);
|
|
474
|
+
if (relevantUrls.length === 0) {
|
|
475
|
+
return {
|
|
476
|
+
content: [
|
|
477
|
+
{
|
|
478
|
+
type: 'text',
|
|
479
|
+
text: 'No USWDS documentation found',
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
// Fetch content from relevant URLs and search for query
|
|
485
|
+
const searchResults = [];
|
|
486
|
+
const searchLimit = Math.min(limit, relevantUrls.length);
|
|
487
|
+
for (let i = 0; i < searchLimit && searchResults.length < limit; i++) {
|
|
488
|
+
const url = relevantUrls[i];
|
|
489
|
+
try {
|
|
490
|
+
log(`Fetching content from: ${url}`);
|
|
491
|
+
const htmlContent = await fetchUrl(url);
|
|
492
|
+
const docContent = extractUSWDSContent(htmlContent, url);
|
|
493
|
+
// Check if content matches the search query
|
|
494
|
+
const queryLower = query.toLowerCase();
|
|
495
|
+
const matchesQuery = docContent.title.toLowerCase().includes(queryLower) ||
|
|
496
|
+
docContent.content.toLowerCase().includes(queryLower) ||
|
|
497
|
+
docContent.utilities.some((util) => util.toLowerCase().includes(queryLower)) ||
|
|
498
|
+
docContent.codeExamples.some((code) => code.toLowerCase().includes(queryLower));
|
|
499
|
+
if (matchesQuery) {
|
|
500
|
+
searchResults.push(docContent);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
catch (error) {
|
|
504
|
+
log(`Error fetching ${url}:`, error);
|
|
505
|
+
// Continue with next URL
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
// If we have fewer results than the limit, try searching more URLs
|
|
509
|
+
if (searchResults.length < limit && searchLimit < relevantUrls.length) {
|
|
510
|
+
for (let i = searchLimit; i < relevantUrls.length && searchResults.length < limit; i++) {
|
|
511
|
+
const url = relevantUrls[i];
|
|
512
|
+
try {
|
|
513
|
+
log(`Fetching additional content from: ${url}`);
|
|
514
|
+
const htmlContent = await fetchUrl(url);
|
|
515
|
+
const docContent = extractUSWDSContent(htmlContent, url);
|
|
516
|
+
const queryLower = query.toLowerCase();
|
|
517
|
+
const matchesQuery = docContent.title.toLowerCase().includes(queryLower) ||
|
|
518
|
+
docContent.content.toLowerCase().includes(queryLower) ||
|
|
519
|
+
docContent.utilities.some((util) => util.toLowerCase().includes(queryLower)) ||
|
|
520
|
+
docContent.codeExamples.some((code) => code.toLowerCase().includes(queryLower));
|
|
521
|
+
if (matchesQuery) {
|
|
522
|
+
searchResults.push(docContent);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
log(`Error fetching ${url}:`, error);
|
|
527
|
+
// Continue with next URL
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
if (searchResults.length === 0) {
|
|
532
|
+
return {
|
|
533
|
+
content: [
|
|
534
|
+
{
|
|
535
|
+
type: 'text',
|
|
536
|
+
text: `No USWDS documentation found matching "${query}"`,
|
|
537
|
+
},
|
|
538
|
+
],
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
// Format results
|
|
542
|
+
let result = `# USWDS Search Results\n\n`;
|
|
543
|
+
result += `**Query:** "${query}"\n`;
|
|
544
|
+
result += `**Results:** ${searchResults.length}\n\n`;
|
|
545
|
+
searchResults.forEach((doc, index) => {
|
|
546
|
+
result += `## ${index + 1}. ${doc.title}\n\n`;
|
|
547
|
+
result += `**Type:** ${doc.type}\n`;
|
|
548
|
+
result += `**URL:** ${doc.url}\n\n`;
|
|
549
|
+
if (doc.content) {
|
|
550
|
+
result += `**Content:**\n${doc.content}\n\n`;
|
|
551
|
+
}
|
|
552
|
+
if (doc.utilities.length > 0) {
|
|
553
|
+
result += `**Utilities/Classes:** ${doc.utilities.slice(0, 10).join(', ')}\n\n`;
|
|
554
|
+
}
|
|
555
|
+
if (doc.codeExamples.length > 0) {
|
|
556
|
+
result += `**Code Examples:**\n`;
|
|
557
|
+
doc.codeExamples.slice(0, 3).forEach((code) => {
|
|
558
|
+
result += `\`\`\`\n${code}\n\`\`\`\n\n`;
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
result += '---\n\n';
|
|
562
|
+
});
|
|
563
|
+
return {
|
|
564
|
+
content: [
|
|
565
|
+
{
|
|
566
|
+
type: 'text',
|
|
567
|
+
text: result.trim(),
|
|
568
|
+
},
|
|
569
|
+
],
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
catch (error) {
|
|
573
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
574
|
+
return {
|
|
575
|
+
content: [
|
|
576
|
+
{
|
|
577
|
+
type: 'text',
|
|
578
|
+
text: `Error searching USWDS documentation: ${errorMessage}`,
|
|
579
|
+
},
|
|
580
|
+
],
|
|
581
|
+
isError: true,
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
}
|
|
294
585
|
default:
|
|
295
586
|
throw new Error(`Unknown tool: ${name}`);
|
|
296
587
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -50,4 +50,34 @@ export declare const extractProps: (content: string) => string[];
|
|
|
50
50
|
* Extracts exported type names from the file
|
|
51
51
|
*/
|
|
52
52
|
export declare const extractTypes: (content: string) => string[];
|
|
53
|
+
/**
|
|
54
|
+
* HTTP utilities for fetching web content
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* Fetches content from a URL
|
|
58
|
+
*/
|
|
59
|
+
export declare const fetchUrl: (url: string) => Promise<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Parses sitemap XML and extracts URLs that match patterns
|
|
62
|
+
*/
|
|
63
|
+
export declare const parseSitemapForUrls: (sitemapContent: string, patterns: string[]) => string[];
|
|
64
|
+
/**
|
|
65
|
+
* Extracts relevant content from USWDS documentation HTML
|
|
66
|
+
*/
|
|
67
|
+
export declare const extractUSWDSContent: (html: string, url: string) => USWDSDocContent;
|
|
68
|
+
/**
|
|
69
|
+
* Determines the type of USWDS content based on URL
|
|
70
|
+
*/
|
|
71
|
+
export declare const determineContentType: (url: string) => string;
|
|
72
|
+
/**
|
|
73
|
+
* Interface for USWDS documentation content
|
|
74
|
+
*/
|
|
75
|
+
export interface USWDSDocContent {
|
|
76
|
+
url: string;
|
|
77
|
+
title: string;
|
|
78
|
+
content: string;
|
|
79
|
+
codeExamples: string[];
|
|
80
|
+
utilities: string[];
|
|
81
|
+
type: string;
|
|
82
|
+
}
|
|
53
83
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAgB,CAAC;AACjC,eAAO,MAAM,KAAK;;;CAAgB,CAAC;AAEnC,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,MAAM,KAAG,MAAM,EAqDpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,gBAAgB,GAAG,IA2D9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAsBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAgBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAOlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAoBpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAcpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAgB,CAAC;AACjC,eAAO,MAAM,KAAK;;;CAAgB,CAAC;AAEnC,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,MAAM,KAAG,MAAM,EAqDpE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,gBAAgB,GAAG,IA2D9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAsBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,YAAY,OAAO,KAClB,MAAM,GAAG,IAgBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAOlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAoBpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,EAcpD,CAAC;AAEF;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAW1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,MAAM,EAkBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,eA4D/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,MAOlD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
package/dist/utils.js
CHANGED
|
@@ -201,4 +201,110 @@ export const extractTypes = (content) => {
|
|
|
201
201
|
});
|
|
202
202
|
return types.sort();
|
|
203
203
|
};
|
|
204
|
+
/**
|
|
205
|
+
* HTTP utilities for fetching web content
|
|
206
|
+
*/
|
|
207
|
+
/**
|
|
208
|
+
* Fetches content from a URL
|
|
209
|
+
*/
|
|
210
|
+
export const fetchUrl = async (url) => {
|
|
211
|
+
try {
|
|
212
|
+
const response = await fetch(url);
|
|
213
|
+
if (!response.ok) {
|
|
214
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
215
|
+
}
|
|
216
|
+
return await response.text();
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
log(`Error fetching ${url}:`, error);
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Parses sitemap XML and extracts URLs that match patterns
|
|
225
|
+
*/
|
|
226
|
+
export const parseSitemapForUrls = (sitemapContent, patterns) => {
|
|
227
|
+
const urls = [];
|
|
228
|
+
// Simple XML parsing to extract <loc> tags
|
|
229
|
+
const locMatches = sitemapContent.match(/<loc>(.*?)<\/loc>/g) || [];
|
|
230
|
+
locMatches.forEach((match) => {
|
|
231
|
+
const url = match.replace(/<\/?loc>/g, '');
|
|
232
|
+
// Check if URL matches any of the patterns
|
|
233
|
+
const matchesPattern = patterns.some((pattern) => url.includes(pattern.toLowerCase()));
|
|
234
|
+
if (matchesPattern) {
|
|
235
|
+
urls.push(url);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
return urls;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Extracts relevant content from USWDS documentation HTML
|
|
242
|
+
*/
|
|
243
|
+
export const extractUSWDSContent = (html, url) => {
|
|
244
|
+
// Remove script tags and other non-content elements
|
|
245
|
+
const cleanHtml = html
|
|
246
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
247
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
248
|
+
.replace(/<nav[^>]*>[\s\S]*?<\/nav>/gi, '')
|
|
249
|
+
.replace(/<header[^>]*>[\s\S]*?<\/header>/gi, '')
|
|
250
|
+
.replace(/<footer[^>]*>[\s\S]*?<\/footer>/gi, '');
|
|
251
|
+
// Extract title
|
|
252
|
+
const titleMatch = cleanHtml.match(/<title[^>]*>(.*?)<\/title>/i);
|
|
253
|
+
const title = titleMatch ? titleMatch[1].replace(/\s+/g, ' ').trim() : '';
|
|
254
|
+
// Extract main content - look for common content containers
|
|
255
|
+
const contentMatchers = [
|
|
256
|
+
/<main[^>]*>([\s\S]*?)<\/main>/i,
|
|
257
|
+
/<article[^>]*>([\s\S]*?)<\/article>/i,
|
|
258
|
+
/<div[^>]*class="[^"]*content[^"]*"[^>]*>([\s\S]*?)<\/div>/i,
|
|
259
|
+
/<div[^>]*class="[^"]*main[^"]*"[^>]*>([\s\S]*?)<\/div>/i,
|
|
260
|
+
];
|
|
261
|
+
let content = '';
|
|
262
|
+
for (const matcher of contentMatchers) {
|
|
263
|
+
const match = cleanHtml.match(matcher);
|
|
264
|
+
if (match) {
|
|
265
|
+
content = match[1];
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// If no main content found, use the whole body
|
|
270
|
+
if (!content) {
|
|
271
|
+
const bodyMatch = cleanHtml.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
|
|
272
|
+
content = bodyMatch ? bodyMatch[1] : cleanHtml;
|
|
273
|
+
}
|
|
274
|
+
// Extract text content and clean it up
|
|
275
|
+
const textContent = content
|
|
276
|
+
.replace(/<[^>]*>/g, ' ') // Remove HTML tags
|
|
277
|
+
.replace(/\s+/g, ' ') // Normalize whitespace
|
|
278
|
+
.trim();
|
|
279
|
+
// Extract code examples
|
|
280
|
+
const codeMatches = html.match(/<code[^>]*>(.*?)<\/code>/gi) || [];
|
|
281
|
+
const codeExamples = codeMatches.map((match) => match.replace(/<\/?code[^>]*>/gi, '').trim());
|
|
282
|
+
// Extract class names and utilities mentioned
|
|
283
|
+
const classMatches = textContent.match(/\b[a-z-]+:[a-z-]+\b|\b\.?[a-z-]+\b/gi) || [];
|
|
284
|
+
const utilities = [...new Set(classMatches)].filter((item) => item.match(/^\.?[a-z][a-z0-9-]*[a-z0-9]$|^[a-z]+:[a-z-]+$/i));
|
|
285
|
+
return {
|
|
286
|
+
url,
|
|
287
|
+
title,
|
|
288
|
+
content: textContent.substring(0, 2000), // Limit content length
|
|
289
|
+
codeExamples,
|
|
290
|
+
utilities,
|
|
291
|
+
type: determineContentType(url),
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Determines the type of USWDS content based on URL
|
|
296
|
+
*/
|
|
297
|
+
export const determineContentType = (url) => {
|
|
298
|
+
if (url.includes('/utilities/'))
|
|
299
|
+
return 'utility';
|
|
300
|
+
if (url.includes('/design-tokens/'))
|
|
301
|
+
return 'design-token';
|
|
302
|
+
if (url.includes('/components/'))
|
|
303
|
+
return 'component';
|
|
304
|
+
if (url.includes('/patterns/'))
|
|
305
|
+
return 'pattern';
|
|
306
|
+
if (url.includes('/templates/'))
|
|
307
|
+
return 'template';
|
|
308
|
+
return 'other';
|
|
309
|
+
};
|
|
204
310
|
//# sourceMappingURL=utils.js.map
|