@vielzeug/codex 2.3.2 → 3.0.1

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.
Files changed (46) hide show
  1. package/README.md +12 -58
  2. package/dist/_log.d.ts +2 -0
  3. package/dist/advanced.d.ts +12 -0
  4. package/dist/advanced.js +13 -0
  5. package/dist/advanced.js.map +1 -0
  6. package/dist/catalog.d.ts +41 -0
  7. package/dist/catalog.js +0 -14
  8. package/dist/catalog.js.map +1 -1
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +17 -4
  11. package/dist/cli.js.map +1 -1
  12. package/dist/errors.d.ts +4 -0
  13. package/dist/http.d.ts +21 -0
  14. package/dist/http.js +69 -19
  15. package/dist/http.js.map +1 -1
  16. package/dist/index.d.ts +14 -0
  17. package/dist/index.js +9 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/port.d.ts +2 -0
  20. package/dist/refine-catalog.d.ts +14 -0
  21. package/dist/refine-catalog.js +24 -0
  22. package/dist/refine-catalog.js.map +1 -0
  23. package/dist/refine.d.ts +12 -0
  24. package/dist/refine.js +12 -0
  25. package/dist/refine.js.map +1 -0
  26. package/dist/server.d.ts +11 -0
  27. package/dist/server.js +7 -2
  28. package/dist/server.js.map +1 -1
  29. package/dist/snapshot.d.ts +21 -0
  30. package/dist/snapshot.js +62 -3
  31. package/dist/snapshot.js.map +1 -1
  32. package/dist/tools/index.d.ts +6 -0
  33. package/dist/tools/index.js +4 -9
  34. package/dist/tools/index.js.map +1 -1
  35. package/dist/tools/packages.d.ts +2 -0
  36. package/dist/tools/packages.js +6 -1
  37. package/dist/tools/packages.js.map +1 -1
  38. package/dist/tools/refine.d.ts +5 -0
  39. package/dist/tools/refine.js +19 -4
  40. package/dist/tools/refine.js.map +1 -1
  41. package/dist/tools/schema.d.ts +22 -0
  42. package/dist/tools/schema.js +14 -13
  43. package/dist/tools/schema.js.map +1 -1
  44. package/dist/tools/shared.d.ts +8 -0
  45. package/dist/types.d.ts +114 -0
  46. package/package.json +35 -12
package/dist/server.js CHANGED
@@ -1,8 +1,13 @@
1
1
  import { Server } from '@modelcontextprotocol/server';
2
- import { registerTools } from './tools/index.js';
2
+ import { packageTools, registerTools } from './tools/index.js';
3
+ /**
4
+ * Creates an MCP server with the generic package tools registered. Refine-specific
5
+ * tools are opt-in via `@vielzeug/codex/refine`'s `registerRefineTools()` — the main
6
+ * library entry stays product-agnostic.
7
+ */
3
8
  export function createMcpServer(catalog, options) {
4
9
  const server = new Server({ name: 'vielzeug', version: options.version }, { capabilities: { tools: {} } });
5
- registerTools(server, catalog, options.debug);
10
+ registerTools(server, catalog, packageTools, options.debug);
6
11
  return server;
7
12
  }
8
13
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAItD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,OAA6C;IAC7F,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE3G,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAItD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,OAA6C;IAC7F,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE3G,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type CatalogFile, type CemDeclaration, type PackageContent, type SearchRecord, type SnapshotManifest, type SnapshotPointer } from './types.js';
2
+ export declare function parsePointer(value: unknown): SnapshotPointer;
3
+ export declare function parseManifest(value: unknown): SnapshotManifest;
4
+ export declare function parseCatalog(value: unknown): CatalogFile;
5
+ export declare function parseContent(value: unknown, slug: string): PackageContent;
6
+ export declare function parseSearch(value: unknown, catalog: CatalogFile): SearchRecord[];
7
+ export declare function parseRefine(value: unknown): CemDeclaration[];
8
+ export interface LoadedSnapshot {
9
+ catalog: CatalogFile;
10
+ contentDirectory: string;
11
+ manifest: SnapshotManifest;
12
+ refineComponents: CemDeclaration[];
13
+ search: SearchRecord[];
14
+ }
15
+ export declare function loadSnapshotDirectory(directory: string, options?: {
16
+ validateContents?: boolean;
17
+ }): LoadedSnapshot;
18
+ export declare function loadSnapshot(snapshotRoot?: string, options?: {
19
+ validateContents?: boolean;
20
+ }): LoadedSnapshot;
21
+ export declare function validateSnapshot(snapshotRoot?: string): void;
package/dist/snapshot.js CHANGED
@@ -182,13 +182,72 @@ export function parseSearch(value, catalog) {
182
182
  fail('search.json', 'must have one record per catalog package.');
183
183
  return records;
184
184
  }
185
+ function optionalString(entry, key, path) {
186
+ if (entry[key] !== undefined)
187
+ string(entry[key], `${path}.${key}`);
188
+ }
189
+ function typeReference(value, path) {
190
+ if (value === undefined)
191
+ return;
192
+ const entry = record(value, path);
193
+ string(entry.text, `${path}.text`);
194
+ }
195
+ function declarationArray(value, path, validate) {
196
+ if (value === undefined)
197
+ return;
198
+ if (!Array.isArray(value))
199
+ fail(path, 'must be an array.');
200
+ value.forEach((item, index) => {
201
+ validate(record(item, `${path}[${index}]`), `${path}[${index}]`);
202
+ });
203
+ }
185
204
  export function parseRefine(value) {
186
205
  if (!Array.isArray(value))
187
206
  fail('refine.json', 'must be an array.');
207
+ const tags = new Set();
188
208
  return value.map((item, index) => {
189
- const declaration = record(item, `refine.json[${index}]`);
190
- if (declaration.tagName !== undefined && typeof declaration.tagName !== 'string')
191
- fail(`refine.json[${index}].tagName`, 'must be a string.');
209
+ const path = `refine.json[${index}]`;
210
+ const declaration = record(item, path);
211
+ optionalString(declaration, 'description', path);
212
+ optionalString(declaration, 'name', path);
213
+ if (declaration.tagName !== undefined) {
214
+ const tagName = string(declaration.tagName, `${path}.tagName`);
215
+ if (tagName.length > 100 || !/^[a-z][a-z0-9._-]*-[a-z0-9._-]+$/.test(tagName)) {
216
+ fail(`${path}.tagName`, 'must be a custom element name of at most 100 characters.');
217
+ }
218
+ if (tags.has(tagName))
219
+ fail(`${path}.tagName`, `duplicates ${tagName}.`);
220
+ tags.add(tagName);
221
+ }
222
+ declarationArray(declaration.attributes, `${path}.attributes`, (entry, entryPath) => {
223
+ const name = string(entry.name, `${entryPath}.name`);
224
+ if (!/^[^\s"'<>/=]+$/.test(name))
225
+ fail(`${entryPath}.name`, 'must be a valid HTML attribute name.');
226
+ for (const key of ['default', 'description', 'fieldName'])
227
+ optionalString(entry, key, entryPath);
228
+ typeReference(entry.type, `${entryPath}.type`);
229
+ });
230
+ for (const key of ['cssParts', 'cssProperties', 'events', 'slots']) {
231
+ declarationArray(declaration[key], `${path}.${key}`, (entry, entryPath) => {
232
+ string(entry.name, `${entryPath}.name`);
233
+ optionalString(entry, 'default', entryPath);
234
+ optionalString(entry, 'description', entryPath);
235
+ typeReference(entry.type, `${entryPath}.type`);
236
+ });
237
+ }
238
+ declarationArray(declaration.members, `${path}.members`, (entry, entryPath) => {
239
+ string(entry.name, `${entryPath}.name`);
240
+ optionalString(entry, 'description', entryPath);
241
+ if (entry.kind !== undefined && entry.kind !== 'field' && entry.kind !== 'method') {
242
+ fail(`${entryPath}.kind`, 'must be "field" or "method".');
243
+ }
244
+ typeReference(entry.type, `${entryPath}.type`);
245
+ });
246
+ if (declaration.superclass !== undefined) {
247
+ const superclass = record(declaration.superclass, `${path}.superclass`);
248
+ string(superclass.name, `${path}.superclass.name`);
249
+ optionalString(superclass, 'package', `${path}.superclass`);
250
+ }
192
251
  return declaration;
193
252
  });
194
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Server } from '@modelcontextprotocol/server';
2
+ import { type Catalog } from '../catalog.js';
3
+ import { packageTools } from './packages.js';
4
+ import type { ToolDefinition } from './shared.js';
5
+ export { packageTools };
6
+ export declare function registerTools<CatalogType extends Catalog>(server: Server, catalog: CatalogType, tools: readonly ToolDefinition<CatalogType>[], debug?: boolean): void;
@@ -2,21 +2,16 @@ import { METHOD_NOT_FOUND, ProtocolError } from '@modelcontextprotocol/server';
2
2
  import { log } from '../_log.js';
3
3
  import { CatalogError } from '../catalog.js';
4
4
  import { packageTools } from './packages.js';
5
- import { refineTools } from './refine.js';
6
- export const ALL_TOOLS = [...packageTools, ...refineTools];
7
- const byName = new Map(ALL_TOOLS.map((tool) => [tool.name, tool]));
5
+ export { packageTools };
8
6
  function content(value) {
9
7
  return {
10
8
  content: [{ text: typeof value === 'string' ? value : JSON.stringify(value, null, 2), type: 'text' }],
11
9
  };
12
10
  }
13
- export function registerTools(server, catalog, debug = false) {
11
+ export function registerTools(server, catalog, tools, debug = false) {
12
+ const byName = new Map(tools.map((tool) => [tool.name, tool]));
14
13
  server.setRequestHandler('tools/list', () => ({
15
- // `ToolSchema` is codex's own hand-rolled, precisely-typed shape (see tools/schema.ts); it's
16
- // a valid JSON Schema object at the wire, just not structurally identical to the SDK's own
17
- // generic recursive JSON-value type for `Tool.inputSchema`. Cast at this one wire boundary
18
- // rather than loosen `ToolSchema`/`ToolProperty` themselves.
19
- tools: ALL_TOOLS.map(({ description, inputSchema, name }) => ({
14
+ tools: tools.map(({ description, inputSchema, name }) => ({
20
15
  description,
21
16
  inputSchema: inputSchema,
22
17
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,CAAC,MAAM,SAAS,GAA8B,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC;AAEtF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnE,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;KAC/G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,OAAgB,EAAE,KAAK,GAAG,KAAK;IAC3E,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,6FAA6F;QAC7F,2FAA2F;QAC3F,2FAA2F;QAC3F,6DAA6D;QAC7D,KAAK,EAAE,SAAS,CAAC,GAAG,CAClB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,EAAQ,EAAE,CAAC,CAAC;YAC7C,WAAW;YACX,WAAW,EAAE,WAA6C;YAC1D,IAAI;SACL,CAAC,CACH;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAErE,IAAI,KAAK;gBAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;YAEzD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,KAAK;oBAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;oBACxG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;KAC/G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,OAAoB,EACpB,KAA6C,EAC7C,KAAK,GAAG,KAAK;IAEb,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,KAAK,EAAE,KAAK,CAAC,GAAG,CACd,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,EAAQ,EAAE,CAAC,CAAC;YAC7C,WAAW;YACX,WAAW,EAAE,WAA6C;YAC1D,IAAI;SACL,CAAC,CACH;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAErE,IAAI,KAAK;gBAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;YAEzD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,KAAK;oBAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;oBACxG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from './shared.js';
2
+ export declare const packageTools: readonly ToolDefinition[];
@@ -1,11 +1,13 @@
1
1
  import { DOC_PAGES } from '../types.js';
2
2
  import { EMPTY_SCHEMA, PACKAGE_SLUG_PROPERTY, parseArgs } from './schema.js';
3
3
  const slug = {
4
+ additionalProperties: false,
4
5
  properties: { packageSlug: PACKAGE_SLUG_PROPERTY },
5
6
  required: ['packageSlug'],
6
7
  type: 'object',
7
8
  };
8
9
  const docs = {
10
+ additionalProperties: false,
9
11
  properties: {
10
12
  packageSlug: PACKAGE_SLUG_PROPERTY,
11
13
  page: { default: 'index', description: 'Documentation page', enum: DOC_PAGES, type: 'string' },
@@ -14,6 +16,7 @@ const docs = {
14
16
  type: 'object',
15
17
  };
16
18
  const example = {
19
+ additionalProperties: false,
17
20
  properties: {
18
21
  exampleId: { description: 'Example identifier', maxLength: 100, minLength: 1, type: 'string' },
19
22
  packageSlug: PACKAGE_SLUG_PROPERTY,
@@ -22,11 +25,13 @@ const example = {
22
25
  type: 'object',
23
26
  };
24
27
  const query = {
28
+ additionalProperties: false,
25
29
  properties: { query: { description: 'Non-empty search query', maxLength: 500, minLength: 1, type: 'string' } },
26
30
  required: ['query'],
27
31
  type: 'object',
28
32
  };
29
33
  const signature = {
34
+ additionalProperties: false,
30
35
  properties: {
31
36
  slug: PACKAGE_SLUG_PROPERTY,
32
37
  symbol: { description: 'Exported symbol name', maxLength: 200, minLength: 1, type: 'string' },
@@ -78,7 +83,7 @@ export const packageTools = [
78
83
  name: 'get-example',
79
84
  },
80
85
  {
81
- description: 'Search package metadata, docs, examples, and source. Results use deterministic slug order.',
86
+ description: 'Search package metadata, docs, examples, and source. Results are relevance-tiered, then ordered by slug.',
82
87
  execute: (args, catalog) => catalog.search(parseArgs(query, args).query),
83
88
  inputSchema: query,
84
89
  name: 'search-packages',
@@ -1 +1 @@
1
- {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/tools/packages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/tools/packages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Server } from '@modelcontextprotocol/server';
2
+ import type { RefineCatalog } from '../refine-catalog.js';
3
+ import type { ToolDefinition } from './shared.js';
4
+ export declare const refineTools: readonly ToolDefinition<RefineCatalog>[];
5
+ export declare function registerRefineTools(server: Server, catalog: RefineCatalog, debug?: boolean): void;
@@ -1,10 +1,13 @@
1
+ import { packageTools, registerTools } from './index.js';
1
2
  import { EMPTY_SCHEMA, parseArgs } from './schema.js';
2
3
  const tag = {
4
+ additionalProperties: false,
3
5
  properties: { tagName: { description: 'Custom element tag', maxLength: 100, minLength: 1, type: 'string' } },
4
6
  required: ['tagName'],
5
7
  type: 'object',
6
8
  };
7
9
  const template = {
10
+ additionalProperties: false,
8
11
  properties: {
9
12
  scenario: { default: '', description: 'Optional scenario label', maxLength: 200, type: 'string' },
10
13
  tagName: tag.properties.tagName,
@@ -13,10 +16,12 @@ const template = {
13
16
  type: 'object',
14
17
  };
15
18
  const tokenFilter = {
19
+ additionalProperties: false,
16
20
  properties: { filter: { default: '', description: 'Optional token prefix', maxLength: 100, type: 'string' } },
17
21
  type: 'object',
18
22
  };
19
23
  const usage = {
24
+ additionalProperties: false,
20
25
  properties: {
21
26
  html: { description: 'Component HTML fragment', maxLength: 5000, minLength: 1, type: 'string' },
22
27
  tagName: tag.properties.tagName,
@@ -24,11 +29,17 @@ const usage = {
24
29
  required: ['html', 'tagName'],
25
30
  type: 'object',
26
31
  };
32
+ function escapeHtml(value) {
33
+ return value.replaceAll('&', '&amp;').replaceAll('"', '&quot;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
34
+ }
35
+ function escapeRegExp(value) {
36
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
37
+ }
27
38
  function attribute(attr) {
28
39
  if (attr.type?.text === 'boolean')
29
40
  return attr.name;
30
41
  if (attr.default !== undefined)
31
- return `${attr.name}="${attr.default}"`;
42
+ return `${attr.name}="${escapeHtml(attr.default)}"`;
32
43
  return `${attr.name}=""`;
33
44
  }
34
45
  function htmlTemplate(component, scenario) {
@@ -36,13 +47,14 @@ function htmlTemplate(component, scenario) {
36
47
  const attributes = (component.attributes ?? []).filter((item) => item.default === undefined).map(attribute);
37
48
  const slots = (component.slots ?? [])
38
49
  .filter((slot) => slot.name)
39
- .map((slot) => ` <span slot="${slot.name}">${slot.description ?? slot.name}</span>`);
50
+ .map((slot) => ` <span slot="${escapeHtml(slot.name)}">${escapeHtml(slot.description ?? slot.name)}</span>`);
40
51
  const body = slots.length > 0 ? `\n${slots.join('\n')}\n` : '\n Content\n';
41
- return `${scenario ? `<!-- ${scenario} -->\n` : ''}<${name}${attributes.length ? `\n ${attributes.join('\n ')}` : ''}>${body}</${name}>`;
52
+ const comment = scenario ? `<!-- ${scenario.replaceAll('--', '—')} -->\n` : '';
53
+ return `${comment}<${name}${attributes.length ? `\n ${attributes.join('\n ')}` : ''}>${body}</${name}>`;
42
54
  }
43
55
  function usageIssues(component, html) {
44
56
  const name = component.tagName ?? '';
45
- const opening = new RegExp(`<${name}\\s*([^>]*)>`, 'i').exec(html);
57
+ const opening = new RegExp(`<${escapeRegExp(name)}(?=[\\s/>])((?:"[^"]*"|'[^']*'|[^'">])*)>`, 'i').exec(html);
46
58
  if (!opening)
47
59
  return [{ message: `Could not find opening <${name}> tag.`, type: 'error' }];
48
60
  const known = new Set((component.attributes ?? []).map((attribute) => attribute.name.toLowerCase()));
@@ -120,4 +132,7 @@ export const refineTools = [
120
132
  name: 'refine-validate-usage',
121
133
  },
122
134
  ];
135
+ export function registerRefineTools(server, catalog, debug = false) {
136
+ registerTools(server, catalog, [...packageTools, ...refineTools], debug);
137
+ }
123
138
  //# sourceMappingURL=refine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refine.js","sourceRoot":"","sources":["../../src/tools/refine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refine.js","sourceRoot":"","sources":["../../src/tools/refine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface ToolProperty {
2
+ default?: string;
3
+ description: string;
4
+ enum?: readonly string[];
5
+ maxLength?: number;
6
+ minLength?: number;
7
+ type: 'string';
8
+ }
9
+ export interface ToolSchema {
10
+ additionalProperties: false;
11
+ properties: Record<string, ToolProperty>;
12
+ required?: string[];
13
+ type: 'object';
14
+ }
15
+ export declare const EMPTY_SCHEMA: ToolSchema;
16
+ export declare const PACKAGE_SLUG_PROPERTY: ToolProperty;
17
+ export type InferArgs<S extends ToolSchema> = {
18
+ [K in keyof S['properties']]: S['properties'][K] extends {
19
+ enum: readonly (infer E)[];
20
+ } ? E : string;
21
+ };
22
+ export declare function parseArgs<S extends ToolSchema>(schema: S, raw: Record<string, unknown>): InferArgs<S>;
@@ -1,24 +1,25 @@
1
1
  import { CatalogError } from '../catalog.js';
2
- /** Schema for tools that take no arguments. */
3
- export const EMPTY_SCHEMA = { properties: {}, type: 'object' };
4
- /** A property shared by every tool that takes a package slug — one definition, reused everywhere. */
2
+ export const EMPTY_SCHEMA = { additionalProperties: false, properties: {}, type: 'object' };
5
3
  export const PACKAGE_SLUG_PROPERTY = {
6
4
  description: 'Package folder name, e.g. "ripple"',
7
5
  maxLength: 100,
8
6
  minLength: 1,
9
7
  type: 'string',
10
8
  };
11
- /** Validates + trims raw MCP tool arguments against a `ToolSchema`. Throws `CatalogError('INVALID_ARG', ...)` on the first violation. */
12
9
  export function parseArgs(schema, raw) {
13
10
  const result = {};
14
- for (const [key, prop] of Object.entries(schema.properties)) {
11
+ for (const key of Object.keys(raw)) {
12
+ if (!Object.hasOwn(schema.properties, key))
13
+ throw new CatalogError('INVALID_ARG', `${key}: unknown argument.`);
14
+ }
15
+ for (const [key, property] of Object.entries(schema.properties)) {
15
16
  const required = schema.required?.includes(key) ?? false;
16
17
  const value = raw[key];
17
18
  if (value === undefined || value === '') {
18
19
  if (required)
19
20
  throw new CatalogError('INVALID_ARG', `${key}: required non-empty string.`);
20
- if (prop.default !== undefined)
21
- result[key] = prop.default;
21
+ if (property.default !== undefined)
22
+ result[key] = property.default;
22
23
  continue;
23
24
  }
24
25
  if (typeof value !== 'string')
@@ -26,12 +27,12 @@ export function parseArgs(schema, raw) {
26
27
  const trimmed = value.trim();
27
28
  if (required && trimmed.length === 0)
28
29
  throw new CatalogError('INVALID_ARG', `${key}: required non-empty string.`);
29
- if (prop.minLength !== undefined && trimmed.length < prop.minLength)
30
- throw new CatalogError('INVALID_ARG', `${key}: must be at least ${prop.minLength} characters.`);
31
- if (prop.maxLength !== undefined && trimmed.length > prop.maxLength)
32
- throw new CatalogError('INVALID_ARG', `${key}: exceeds ${prop.maxLength} character limit. Shorten the value.`);
33
- if (prop.enum && !prop.enum.includes(trimmed))
34
- throw new CatalogError('INVALID_ARG', `${key}: must be one of ${prop.enum.join(', ')}.`);
30
+ if (property.minLength !== undefined && trimmed.length < property.minLength)
31
+ throw new CatalogError('INVALID_ARG', `${key}: must be at least ${property.minLength} characters.`);
32
+ if (property.maxLength !== undefined && trimmed.length > property.maxLength)
33
+ throw new CatalogError('INVALID_ARG', `${key}: exceeds ${property.maxLength} character limit. Shorten the value.`);
34
+ if (property.enum && !property.enum.includes(trimmed))
35
+ throw new CatalogError('INVALID_ARG', `${key}: must be one of ${property.enum.join(', ')}.`);
35
36
  result[key] = trimmed;
36
37
  }
37
38
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA6B7C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAe,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAE3E,qGAAqG;AACrG,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,WAAW,EAAE,oCAAoC;IACjD,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,QAAQ;CACf,CAAC;AAWF,yIAAyI;AACzI,MAAM,UAAU,SAAS,CAAuB,MAAS,EAAE,GAA4B;IACrF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,QAAQ;gBAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,8BAA8B,CAAC,CAAC;YAE1F,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAE3D,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,qBAAqB,CAAC,CAAC;QAElG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,8BAA8B,CAAC,CAAC;QAElH,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;YACjE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,sBAAsB,IAAI,CAAC,SAAS,cAAc,CAAC,CAAC;QAElG,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;YACjE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,aAAa,IAAI,CAAC,SAAS,sCAAsC,CAAC,CAAC;QAEjH,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3C,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3F,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,MAAsB,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAkB7C,MAAM,CAAC,MAAM,YAAY,GAAe,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAExG,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,WAAW,EAAE,oCAAoC;IACjD,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,QAAQ;CACf,CAAC;AAMF,MAAM,UAAU,SAAS,CAAuB,MAAS,EAAE,GAA4B;IACrF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,qBAAqB,CAAC,CAAC;IACjH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,QAAQ;gBAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,8BAA8B,CAAC,CAAC;YAC1F,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YACnE,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,qBAAqB,CAAC,CAAC;QAElG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,8BAA8B,CAAC,CAAC;QAClH,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS;YACzE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,sBAAsB,QAAQ,CAAC,SAAS,cAAc,CAAC,CAAC;QACtG,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS;YACzE,MAAM,IAAI,YAAY,CACpB,aAAa,EACb,GAAG,GAAG,aAAa,QAAQ,CAAC,SAAS,sCAAsC,CAC5E,CAAC;QACJ,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnD,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,GAAG,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/F,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,MAAsB,CAAC;AAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Catalog } from '../catalog.js';
2
+ import type { ToolSchema } from './schema.js';
3
+ export interface ToolDefinition<CatalogType extends Catalog = Catalog> {
4
+ description: string;
5
+ execute: (args: Record<string, unknown>, catalog: CatalogType) => unknown;
6
+ inputSchema: ToolSchema;
7
+ name: string;
8
+ }
@@ -0,0 +1,114 @@
1
+ export declare const DOC_PAGES: readonly ["index", "api", "usage", "examples"];
2
+ export type DocPage = (typeof DOC_PAGES)[number];
3
+ export declare const SNAPSHOT_SCHEMA_VERSION: 1;
4
+ export interface CemTypeRef {
5
+ text: string;
6
+ }
7
+ export interface CemAttribute {
8
+ default?: string;
9
+ description?: string;
10
+ fieldName?: string;
11
+ name: string;
12
+ type?: CemTypeRef;
13
+ }
14
+ export interface CemCssPart {
15
+ description?: string;
16
+ name: string;
17
+ }
18
+ export interface CemCssProperty {
19
+ default?: string;
20
+ description?: string;
21
+ name: string;
22
+ }
23
+ export interface CemEvent {
24
+ description?: string;
25
+ name: string;
26
+ type?: CemTypeRef;
27
+ }
28
+ export interface CemMember {
29
+ description?: string;
30
+ kind?: 'field' | 'method';
31
+ name: string;
32
+ type?: CemTypeRef;
33
+ }
34
+ export interface CemSlot {
35
+ description?: string;
36
+ name: string;
37
+ }
38
+ export interface CemDeclaration {
39
+ attributes?: CemAttribute[];
40
+ cssParts?: CemCssPart[];
41
+ cssProperties?: CemCssProperty[];
42
+ description?: string;
43
+ events?: CemEvent[];
44
+ members?: CemMember[];
45
+ name?: string;
46
+ slots?: CemSlot[];
47
+ superclass?: {
48
+ name: string;
49
+ package?: string;
50
+ };
51
+ tagName?: string;
52
+ [key: string]: unknown;
53
+ }
54
+ export interface Example {
55
+ code: string;
56
+ id: string;
57
+ name: string;
58
+ }
59
+ export interface PackageMeta {
60
+ availableDocPages: DocPage[];
61
+ category: string;
62
+ description: string;
63
+ exampleIds: string[];
64
+ exports: string[];
65
+ hasSource: boolean;
66
+ keywords: string[];
67
+ name: string;
68
+ related: string[];
69
+ slug: string;
70
+ version: string;
71
+ }
72
+ export interface PackageContent {
73
+ apiSource: string | null;
74
+ docs: Partial<Record<DocPage, string>>;
75
+ examples: Example[];
76
+ typeSignatures: Record<string, string>;
77
+ }
78
+ export interface CatalogFile {
79
+ packages: PackageMeta[];
80
+ version: string;
81
+ }
82
+ export interface SearchRecord {
83
+ category: string;
84
+ description: string;
85
+ docs: Partial<Record<DocPage, string>>;
86
+ examples: Array<{
87
+ id: string;
88
+ text: string;
89
+ }>;
90
+ exports: string;
91
+ keywords: string;
92
+ name: string;
93
+ related: string;
94
+ slug: string;
95
+ source: string | null;
96
+ }
97
+ export interface SnapshotPointer {
98
+ directory: string;
99
+ }
100
+ export interface SnapshotManifest {
101
+ catalog: 'catalog.json';
102
+ contentDirectory: 'packages';
103
+ refine: 'refine.json' | null;
104
+ schemaVersion: typeof SNAPSHOT_SCHEMA_VERSION;
105
+ search: 'search.json';
106
+ version: string;
107
+ }
108
+ export interface SnapshotArtifacts {
109
+ catalog: CatalogFile;
110
+ contents: ReadonlyMap<string, PackageContent>;
111
+ manifest: SnapshotManifest;
112
+ refineComponents: CemDeclaration[];
113
+ search: SearchRecord[];
114
+ }