decibel-tools-mcp 1.0.6 → 1.0.8

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 (38) hide show
  1. package/README.md +35 -3
  2. package/dist/server.js +0 -0
  3. package/dist/tools/corpus/index.d.ts +5 -0
  4. package/dist/tools/corpus/index.d.ts.map +1 -0
  5. package/dist/tools/corpus/index.js +95 -0
  6. package/dist/tools/corpus/index.js.map +1 -0
  7. package/dist/tools/corpus.d.ts +33 -0
  8. package/dist/tools/corpus.d.ts.map +1 -0
  9. package/dist/tools/corpus.js +180 -0
  10. package/dist/tools/corpus.js.map +1 -0
  11. package/dist/tools/designer/index.d.ts +4 -0
  12. package/dist/tools/designer/index.d.ts.map +1 -1
  13. package/dist/tools/designer/index.js +177 -1
  14. package/dist/tools/designer/index.js.map +1 -1
  15. package/dist/tools/designer.d.ts +81 -0
  16. package/dist/tools/designer.d.ts.map +1 -1
  17. package/dist/tools/designer.js +304 -0
  18. package/dist/tools/designer.js.map +1 -1
  19. package/dist/tools/index.d.ts.map +1 -1
  20. package/dist/tools/index.js +4 -0
  21. package/dist/tools/index.js.map +1 -1
  22. package/dist/tools/registry.d.ts +3 -0
  23. package/dist/tools/registry.d.ts.map +1 -0
  24. package/dist/tools/registry.js +189 -0
  25. package/dist/tools/registry.js.map +1 -0
  26. package/dist/tools/toolsIndex.d.ts +5 -0
  27. package/dist/tools/toolsIndex.d.ts.map +1 -0
  28. package/dist/tools/toolsIndex.js +37 -0
  29. package/dist/tools/toolsIndex.js.map +1 -0
  30. package/dist/tools/vector/index.d.ts +9 -0
  31. package/dist/tools/vector/index.d.ts.map +1 -0
  32. package/dist/tools/vector/index.js +299 -0
  33. package/dist/tools/vector/index.js.map +1 -0
  34. package/dist/tools/vector.d.ts +153 -0
  35. package/dist/tools/vector.d.ts.map +1 -0
  36. package/dist/tools/vector.js +395 -0
  37. package/dist/tools/vector.js.map +1 -0
  38. package/package.json +1 -1
@@ -17,4 +17,85 @@ export interface RecordDesignDecisionOutput {
17
17
  location: 'project';
18
18
  }
19
19
  export declare function recordDesignDecision(input: RecordDesignDecisionInput): Promise<RecordDesignDecisionOutput | DesignerError>;
20
+ export interface SyncTokensInput {
21
+ projectId?: string;
22
+ fileKey: string;
23
+ forceRefresh?: boolean;
24
+ }
25
+ export interface DesignToken {
26
+ name: string;
27
+ type: 'color' | 'number' | 'string' | 'boolean' | 'float';
28
+ value: unknown;
29
+ description?: string;
30
+ collection?: string;
31
+ mode?: string;
32
+ }
33
+ export interface SyncTokensOutput {
34
+ path: string;
35
+ tokens: {
36
+ colors: number;
37
+ numbers: number;
38
+ strings: number;
39
+ total: number;
40
+ };
41
+ timestamp: string;
42
+ source: string;
43
+ }
44
+ export declare function syncTokens(input: SyncTokensInput): Promise<SyncTokensOutput | DesignerError>;
45
+ export interface ReviewFigmaInput {
46
+ projectId?: string;
47
+ fileKey: string;
48
+ nodeId: string;
49
+ scope?: 'full' | 'accessibility' | 'consistency';
50
+ }
51
+ export interface ReviewFinding {
52
+ severity: 'info' | 'warning' | 'error';
53
+ category: string;
54
+ message: string;
55
+ principle?: string;
56
+ }
57
+ export interface ReviewFigmaOutput {
58
+ component: {
59
+ name: string;
60
+ type: string;
61
+ id: string;
62
+ };
63
+ findings: ReviewFinding[];
64
+ principlesChecked: number;
65
+ timestamp: string;
66
+ }
67
+ interface DesignPrinciple {
68
+ id: string;
69
+ title: string;
70
+ description: string;
71
+ category: string;
72
+ checks?: string[];
73
+ }
74
+ export declare function reviewFigma(input: ReviewFigmaInput): Promise<ReviewFigmaOutput | DesignerError>;
75
+ export interface UpsertPrincipleInput {
76
+ projectId?: string;
77
+ id?: string;
78
+ title: string;
79
+ description: string;
80
+ category: string;
81
+ checks?: string[];
82
+ }
83
+ export interface UpsertPrincipleOutput {
84
+ id: string;
85
+ path: string;
86
+ action: 'created' | 'updated';
87
+ timestamp: string;
88
+ }
89
+ export declare function upsertPrinciple(input: UpsertPrincipleInput): Promise<UpsertPrincipleOutput | DesignerError>;
90
+ export interface ListPrinciplesInput {
91
+ projectId?: string;
92
+ category?: string;
93
+ }
94
+ export interface ListPrinciplesOutput {
95
+ principles: DesignPrinciple[];
96
+ total: number;
97
+ path: string;
98
+ }
99
+ export declare function listPrinciples(input: ListPrinciplesInput): Promise<ListPrinciplesOutput | DesignerError>;
100
+ export {};
20
101
  //# sourceMappingURL=designer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"designer.d.ts","sourceRoot":"","sources":["../../src/tools/designer.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,aAAa,CAOxE;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB;AAkBD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,0BAA0B,GAAG,aAAa,CAAC,CAoDrD"}
1
+ {"version":3,"file":"designer.d.ts","sourceRoot":"","sources":["../../src/tools/designer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
+ import YAML from 'yaml';
3
4
  import { log } from '../config.js';
4
5
  import { ensureDir } from '../dataRoot.js';
5
6
  import { resolveProjectPaths, validateWritePath } from '../projectRegistry.js';
6
7
  import { emitCreateProvenance } from './provenance.js';
8
+ // ============================================================================
9
+ // Figma API Configuration
10
+ // ============================================================================
11
+ const FIGMA_API_BASE = 'https://api.figma.com/v1';
12
+ function getFigmaToken() {
13
+ return process.env.FIGMA_ACCESS_TOKEN || null;
14
+ }
7
15
  function makeProjectError(operation) {
8
16
  return {
9
17
  error: 'PROJECT_NOT_FOUND',
@@ -72,4 +80,300 @@ export async function recordDesignDecision(input) {
72
80
  location: 'project',
73
81
  };
74
82
  }
83
+ async function figmaFetch(endpoint, token) {
84
+ const response = await fetch(`${FIGMA_API_BASE}${endpoint}`, {
85
+ headers: {
86
+ 'X-Figma-Token': token,
87
+ },
88
+ });
89
+ if (!response.ok) {
90
+ const errorText = await response.text();
91
+ throw new Error(`Figma API error (${response.status}): ${errorText}`);
92
+ }
93
+ return response.json();
94
+ }
95
+ export async function syncTokens(input) {
96
+ const token = getFigmaToken();
97
+ if (!token) {
98
+ return {
99
+ error: 'FIGMA_TOKEN_MISSING',
100
+ message: 'FIGMA_ACCESS_TOKEN environment variable is not set.',
101
+ hint: 'Set FIGMA_ACCESS_TOKEN to your Figma personal access token.',
102
+ };
103
+ }
104
+ let resolved;
105
+ try {
106
+ resolved = resolveProjectPaths(input.projectId);
107
+ }
108
+ catch {
109
+ return makeProjectError('sync tokens');
110
+ }
111
+ const now = new Date();
112
+ const timestamp = now.toISOString();
113
+ // Fetch variables from Figma
114
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
+ let variablesData;
116
+ try {
117
+ variablesData = await figmaFetch(`/files/${input.fileKey}/variables/local`, token);
118
+ }
119
+ catch (err) {
120
+ return {
121
+ error: 'FIGMA_API_ERROR',
122
+ message: err instanceof Error ? err.message : 'Failed to fetch Figma variables',
123
+ hint: 'Check your file key and token permissions.',
124
+ };
125
+ }
126
+ // Parse variables into tokens
127
+ const tokens = [];
128
+ const variables = variablesData?.meta?.variables || {};
129
+ const collections = variablesData?.meta?.variableCollections || {};
130
+ for (const [, variable] of Object.entries(variables)) {
131
+ const collectionId = variable.variableCollectionId;
132
+ const collection = collections[collectionId];
133
+ const collectionName = collection?.name || 'Unknown';
134
+ // Get the first mode's value (simplified - could expand for multi-mode)
135
+ const modeId = collection?.modes?.[0]?.modeId;
136
+ const value = modeId ? variable.valuesByMode?.[modeId] : null;
137
+ tokens.push({
138
+ name: variable.name,
139
+ type: variable.resolvedType?.toLowerCase() || 'string',
140
+ value: value,
141
+ description: variable.description,
142
+ collection: collectionName,
143
+ });
144
+ }
145
+ // Count by type
146
+ const counts = {
147
+ colors: tokens.filter(t => t.type === 'color').length,
148
+ numbers: tokens.filter(t => t.type === 'number' || t.type === 'float').length,
149
+ strings: tokens.filter(t => t.type === 'string').length,
150
+ total: tokens.length,
151
+ };
152
+ // Save to .decibel/designer/tokens/
153
+ const tokensDir = resolved.subPath('designer', 'tokens');
154
+ ensureDir(tokensDir);
155
+ const tokensFile = path.join(tokensDir, 'tokens.yaml');
156
+ const tokensData = {
157
+ source: `figma:${input.fileKey}`,
158
+ synced_at: timestamp,
159
+ project_id: resolved.id,
160
+ tokens: tokens,
161
+ };
162
+ validateWritePath(tokensFile, resolved);
163
+ await fs.writeFile(tokensFile, YAML.stringify(tokensData), 'utf-8');
164
+ log(`Designer: Synced ${counts.total} tokens from Figma to ${tokensFile}`);
165
+ return {
166
+ path: tokensFile,
167
+ tokens: counts,
168
+ timestamp,
169
+ source: `figma:${input.fileKey}`,
170
+ };
171
+ }
172
+ async function loadPrinciples(resolved) {
173
+ const principlesDir = resolved.subPath('designer', 'principles');
174
+ try {
175
+ await fs.access(principlesDir);
176
+ }
177
+ catch {
178
+ return [];
179
+ }
180
+ const files = await fs.readdir(principlesDir);
181
+ const principles = [];
182
+ for (const file of files) {
183
+ if (!file.endsWith('.yaml') && !file.endsWith('.yml'))
184
+ continue;
185
+ const filePath = path.join(principlesDir, file);
186
+ const content = await fs.readFile(filePath, 'utf-8');
187
+ const data = YAML.parse(content);
188
+ if (data && data.id && data.title) {
189
+ principles.push(data);
190
+ }
191
+ }
192
+ return principles;
193
+ }
194
+ export async function reviewFigma(input) {
195
+ const token = getFigmaToken();
196
+ if (!token) {
197
+ return {
198
+ error: 'FIGMA_TOKEN_MISSING',
199
+ message: 'FIGMA_ACCESS_TOKEN environment variable is not set.',
200
+ hint: 'Set FIGMA_ACCESS_TOKEN to your Figma personal access token.',
201
+ };
202
+ }
203
+ let resolved;
204
+ try {
205
+ resolved = resolveProjectPaths(input.projectId);
206
+ }
207
+ catch {
208
+ return makeProjectError('review Figma component');
209
+ }
210
+ const now = new Date();
211
+ const timestamp = now.toISOString();
212
+ const scope = input.scope || 'full';
213
+ // Fetch component from Figma
214
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
215
+ let nodeData;
216
+ try {
217
+ nodeData = await figmaFetch(`/files/${input.fileKey}/nodes?ids=${input.nodeId}`, token);
218
+ }
219
+ catch (err) {
220
+ return {
221
+ error: 'FIGMA_API_ERROR',
222
+ message: err instanceof Error ? err.message : 'Failed to fetch Figma node',
223
+ hint: 'Check your file key, node ID, and token permissions.',
224
+ };
225
+ }
226
+ const node = nodeData?.nodes?.[input.nodeId]?.document;
227
+ if (!node) {
228
+ return {
229
+ error: 'NODE_NOT_FOUND',
230
+ message: `Node ${input.nodeId} not found in file ${input.fileKey}`,
231
+ hint: 'Check the node ID - you can find it in the Figma URL after selecting a component.',
232
+ };
233
+ }
234
+ // Load project design principles
235
+ const principles = await loadPrinciples(resolved);
236
+ const findings = [];
237
+ // Built-in checks
238
+ if (scope === 'full' || scope === 'accessibility') {
239
+ // Check for text contrast (simplified heuristic)
240
+ if (node.type === 'TEXT' && node.fills?.length > 0) {
241
+ const fill = node.fills[0];
242
+ if (fill.type === 'SOLID' && fill.color) {
243
+ const { r, g, b } = fill.color;
244
+ const luminance = 0.299 * r + 0.587 * g + 0.114 * b;
245
+ if (luminance > 0.4 && luminance < 0.6) {
246
+ findings.push({
247
+ severity: 'warning',
248
+ category: 'accessibility',
249
+ message: 'Text color may have low contrast - verify against background.',
250
+ });
251
+ }
252
+ }
253
+ }
254
+ // Check for missing alt text on images
255
+ if (node.type === 'RECTANGLE' && node.fills?.some((f) => f.type === 'IMAGE')) {
256
+ if (!node.name || node.name.startsWith('Rectangle') || node.name.startsWith('Image')) {
257
+ findings.push({
258
+ severity: 'warning',
259
+ category: 'accessibility',
260
+ message: 'Image element has generic name - add descriptive name for accessibility.',
261
+ });
262
+ }
263
+ }
264
+ }
265
+ if (scope === 'full' || scope === 'consistency') {
266
+ // Check for non-standard sizes
267
+ if (node.absoluteBoundingBox) {
268
+ const { width, height } = node.absoluteBoundingBox;
269
+ if (width % 4 !== 0 || height % 4 !== 0) {
270
+ findings.push({
271
+ severity: 'info',
272
+ category: 'consistency',
273
+ message: `Dimensions (${width}x${height}) not on 4px grid.`,
274
+ });
275
+ }
276
+ }
277
+ // Check against stored principles
278
+ for (const principle of principles) {
279
+ if (principle.checks) {
280
+ for (const check of principle.checks) {
281
+ // Simple keyword matching (could be more sophisticated)
282
+ if (check.toLowerCase().includes('spacing') && node.itemSpacing !== undefined) {
283
+ if (node.itemSpacing % 4 !== 0) {
284
+ findings.push({
285
+ severity: 'warning',
286
+ category: 'consistency',
287
+ message: `Item spacing (${node.itemSpacing}) violates grid.`,
288
+ principle: principle.title,
289
+ });
290
+ }
291
+ }
292
+ }
293
+ }
294
+ }
295
+ }
296
+ // If no findings, add a success note
297
+ if (findings.length === 0) {
298
+ findings.push({
299
+ severity: 'info',
300
+ category: 'review',
301
+ message: 'No issues found. Component passes all checks.',
302
+ });
303
+ }
304
+ log(`Designer: Reviewed component ${node.name} (${findings.length} findings)`);
305
+ return {
306
+ component: {
307
+ name: node.name,
308
+ type: node.type,
309
+ id: input.nodeId,
310
+ },
311
+ findings,
312
+ principlesChecked: principles.length,
313
+ timestamp,
314
+ };
315
+ }
316
+ export async function upsertPrinciple(input) {
317
+ let resolved;
318
+ try {
319
+ resolved = resolveProjectPaths(input.projectId);
320
+ }
321
+ catch {
322
+ return makeProjectError('upsert design principle');
323
+ }
324
+ const now = new Date();
325
+ const timestamp = now.toISOString();
326
+ const principlesDir = resolved.subPath('designer', 'principles');
327
+ ensureDir(principlesDir);
328
+ // Generate or use provided ID
329
+ const id = input.id || `PRIN-${Date.now()}`;
330
+ const filename = `${id}.yaml`;
331
+ const filePath = path.join(principlesDir, filename);
332
+ // Check if updating existing
333
+ let action = 'created';
334
+ try {
335
+ await fs.access(filePath);
336
+ action = 'updated';
337
+ }
338
+ catch {
339
+ // File doesn't exist, will create
340
+ }
341
+ const principleData = {
342
+ id,
343
+ title: input.title,
344
+ description: input.description,
345
+ category: input.category,
346
+ checks: input.checks || [],
347
+ created_at: action === 'created' ? timestamp : undefined,
348
+ updated_at: timestamp,
349
+ };
350
+ validateWritePath(filePath, resolved);
351
+ await fs.writeFile(filePath, YAML.stringify(principleData), 'utf-8');
352
+ log(`Designer: ${action} principle ${id} at ${filePath}`);
353
+ return {
354
+ id,
355
+ path: filePath,
356
+ action,
357
+ timestamp,
358
+ };
359
+ }
360
+ export async function listPrinciples(input) {
361
+ let resolved;
362
+ try {
363
+ resolved = resolveProjectPaths(input.projectId);
364
+ }
365
+ catch {
366
+ return makeProjectError('list design principles');
367
+ }
368
+ const principlesDir = resolved.subPath('designer', 'principles');
369
+ let principles = await loadPrinciples(resolved);
370
+ if (input.category) {
371
+ principles = principles.filter(p => p.category.toLowerCase() === input.category.toLowerCase());
372
+ }
373
+ return {
374
+ principles,
375
+ total: principles.length,
376
+ path: principlesDir,
377
+ };
378
+ }
75
379
  //# sourceMappingURL=designer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"designer.js","sourceRoot":"","sources":["../../src/tools/designer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"designer.js","sourceRoot":"","sources":["../../src/tools/designer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqBtC,eAAO,MAAM,YAAY,EAAE,QAAQ,EAgBlC,CAAC;AAMF,eAAO,MAAM,cAAc,uBAE1B,CAAC;AAMF,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuBtC,eAAO,MAAM,YAAY,EAAE,QAAQ,EAkBlC,CAAC;AAMF,eAAO,MAAM,cAAc,uBAE1B,CAAC;AAMF,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
@@ -19,6 +19,8 @@ import { roadmapTools } from './roadmap/index.js';
19
19
  import { architectTools } from './architect/index.js';
20
20
  import { studioTools } from './studio/index.js';
21
21
  import { deckTools } from './deck.js';
22
+ import { vectorTools } from './vector/index.js';
23
+ import { corpusTools } from './corpus/index.js';
22
24
  // ============================================================================
23
25
  // Aggregate All Tools
24
26
  // ============================================================================
@@ -38,6 +40,8 @@ export const modularTools = [
38
40
  ...architectTools,
39
41
  ...studioTools,
40
42
  ...deckTools,
43
+ ...vectorTools,
44
+ ...corpusTools,
41
45
  ];
42
46
  // ============================================================================
43
47
  // Tool Map for Fast Lookup
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAC/E,yCAAyC;AACzC,8DAA8D;AAC9D,+EAA+E;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,SAAS;IACZ,GAAG,eAAe;IAClB,GAAG,WAAW;IACd,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,WAAW;IACd,GAAG,SAAS;CACb,CAAC;AAEF,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CACnC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC9C,CAAC;AAEF,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAC/E,yCAAyC;AACzC,8DAA8D;AAC9D,+EAA+E;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,SAAS;IACZ,GAAG,eAAe;IAClB,GAAG,WAAW;IACd,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,WAAW;IACd,GAAG,SAAS;IACZ,GAAG,WAAW;IACd,GAAG,WAAW;CACf,CAAC;AAEF,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CACnC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC9C,CAAC;AAEF,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerRegistryTools(server: McpServer): void;
3
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiP7D"}