@cl-mcp/core 2.0.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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -0
  3. package/dist/config.d.ts +18 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +23 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/data/metadata.d.ts +36 -0
  8. package/dist/data/metadata.d.ts.map +1 -0
  9. package/dist/data/metadata.js +98 -0
  10. package/dist/data/metadata.js.map +1 -0
  11. package/dist/data/paths.d.ts +17 -0
  12. package/dist/data/paths.d.ts.map +1 -0
  13. package/dist/data/paths.js +99 -0
  14. package/dist/data/paths.js.map +1 -0
  15. package/dist/data/registry.d.ts +48 -0
  16. package/dist/data/registry.d.ts.map +1 -0
  17. package/dist/data/registry.js +193 -0
  18. package/dist/data/registry.js.map +1 -0
  19. package/dist/data/schema.d.ts +4924 -0
  20. package/dist/data/schema.d.ts.map +1 -0
  21. package/dist/data/schema.js +356 -0
  22. package/dist/data/schema.js.map +1 -0
  23. package/dist/domain/context.d.ts +11 -0
  24. package/dist/domain/context.d.ts.map +1 -0
  25. package/dist/domain/context.js +168 -0
  26. package/dist/domain/context.js.map +1 -0
  27. package/dist/domain/formatters.d.ts +64 -0
  28. package/dist/domain/formatters.d.ts.map +1 -0
  29. package/dist/domain/formatters.js +607 -0
  30. package/dist/domain/formatters.js.map +1 -0
  31. package/dist/domain/resolver.d.ts +19 -0
  32. package/dist/domain/resolver.d.ts.map +1 -0
  33. package/dist/domain/resolver.js +146 -0
  34. package/dist/domain/resolver.js.map +1 -0
  35. package/dist/domain/search.d.ts +25 -0
  36. package/dist/domain/search.d.ts.map +1 -0
  37. package/dist/domain/search.js +177 -0
  38. package/dist/domain/search.js.map +1 -0
  39. package/dist/handlers.d.ts +24 -0
  40. package/dist/handlers.d.ts.map +1 -0
  41. package/dist/handlers.js +378 -0
  42. package/dist/handlers.js.map +1 -0
  43. package/dist/index.d.ts +25 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +28 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/types.d.ts +7 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +6 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/data/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAwVzD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtC,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,CAe1E"}
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Zod schema for `component-metadata.json`.
3
+ *
4
+ * This is the trust-boundary validator for metadata loaded at MCP-server
5
+ * startup. The analyzer produces the file at build time; by the time the
6
+ * server reads it, it might be stale, hand-edited, from a different major
7
+ * version, or corrupt. Parsing through this schema — instead of casting —
8
+ * catches shape drift loudly and immediately.
9
+ *
10
+ * Phase 7 (v4.0 BREAKING): discriminated unions mirror the TS types in
11
+ * `analyzer/src/types.ts`. Illegal states (e.g. `required: true` with a
12
+ * `defaultValue`, both `template` + `templateUrl` set, `self + skipSelf`)
13
+ * are rejected at parse time. `importedBy` is computed at load time and
14
+ * is no longer part of the on-disk schema.
15
+ */
16
+ import { z } from 'zod';
17
+ // ── Leaves ──────────────────────────────────────────────────────────
18
+ const ResolvedValuesSchema = z.object({
19
+ values: z.array(z.string()),
20
+ partial: z.boolean(),
21
+ });
22
+ // InputProperty — discriminated on `required`. A required input cannot
23
+ // carry a `defaultValue`.
24
+ const InputPropertySchema = z.discriminatedUnion('required', [
25
+ z
26
+ .object({
27
+ required: z.literal(true),
28
+ name: z.string(),
29
+ type: z.string().nullable(),
30
+ typeResolved: z.boolean(),
31
+ alias: z.string().optional(),
32
+ description: z.string().optional(),
33
+ transform: z.string().optional(),
34
+ resolvedValues: ResolvedValuesSchema.nullable(),
35
+ })
36
+ // Strict: required inputs cannot carry `defaultValue`. Extra unknown
37
+ // fields would otherwise be silently accepted by Zod's default mode.
38
+ .strict(),
39
+ z.object({
40
+ required: z.literal(false),
41
+ name: z.string(),
42
+ type: z.string().nullable(),
43
+ typeResolved: z.boolean(),
44
+ defaultValue: z.string().optional(),
45
+ alias: z.string().optional(),
46
+ description: z.string().optional(),
47
+ transform: z.string().optional(),
48
+ resolvedValues: ResolvedValuesSchema.nullable(),
49
+ }),
50
+ ]);
51
+ const OutputPropertySchema = z.object({
52
+ name: z.string(),
53
+ eventType: z.string().nullable(),
54
+ eventTypeResolved: z.boolean(),
55
+ alias: z.string().optional(),
56
+ description: z.string().optional(),
57
+ });
58
+ const MethodParameterSchema = z.object({
59
+ name: z.string(),
60
+ type: z.string().nullable(),
61
+ typeResolved: z.boolean(),
62
+ optional: z.boolean(),
63
+ defaultValue: z.string().optional(),
64
+ });
65
+ const PublicMethodSchema = z.object({
66
+ name: z.string(),
67
+ parameters: z.array(MethodParameterSchema),
68
+ returnType: z.string().nullable(),
69
+ returnTypeResolved: z.boolean(),
70
+ description: z.string().optional(),
71
+ isAsync: z.boolean(),
72
+ });
73
+ // InjectedDependency — `self: true` forces `skipSelf: false`.
74
+ const InjectedDependencyBaseFields = {
75
+ name: z.string(),
76
+ type: z.string().nullable(),
77
+ typeResolved: z.boolean(),
78
+ injectionToken: z.string().optional(),
79
+ optional: z.boolean(),
80
+ host: z.boolean(),
81
+ };
82
+ const InjectedDependencySchema = z.discriminatedUnion('self', [
83
+ z.object({
84
+ ...InjectedDependencyBaseFields,
85
+ self: z.literal(true),
86
+ skipSelf: z.literal(false),
87
+ }),
88
+ z.object({
89
+ ...InjectedDependencyBaseFields,
90
+ self: z.literal(false),
91
+ skipSelf: z.boolean(),
92
+ }),
93
+ ]);
94
+ const TypeMemberSchema = z.object({
95
+ name: z.string(),
96
+ type: z.string().nullable(),
97
+ typeResolved: z.boolean(),
98
+ optional: z.boolean(),
99
+ description: z.string().optional(),
100
+ });
101
+ const EnumMemberSchema = z.object({
102
+ name: z.string(),
103
+ value: z.string().optional(),
104
+ });
105
+ // ExportedType — discriminated on `kind`. `interface` / `class` carry
106
+ // TypeMember[]; `enum` carries EnumMember[]; `type` carries no members.
107
+ const ExportedTypeSchema = z.discriminatedUnion('kind', [
108
+ z.object({
109
+ kind: z.literal('interface'),
110
+ name: z.string(),
111
+ definition: z.string(),
112
+ members: z.array(TypeMemberSchema).optional(),
113
+ }),
114
+ z.object({
115
+ kind: z.literal('class'),
116
+ name: z.string(),
117
+ definition: z.string(),
118
+ members: z.array(TypeMemberSchema).optional(),
119
+ }),
120
+ z.object({
121
+ kind: z.literal('type'),
122
+ name: z.string(),
123
+ definition: z.string(),
124
+ }),
125
+ z.object({
126
+ kind: z.literal('enum'),
127
+ name: z.string(),
128
+ definition: z.string(),
129
+ members: z.array(EnumMemberSchema).optional(),
130
+ }),
131
+ ]);
132
+ const LifecycleHookSchema = z.object({
133
+ name: z.string(),
134
+ implemented: z.boolean(),
135
+ });
136
+ // ComponentMetadata — enforce XOR on template/templateUrl via .refine().
137
+ // `z.discriminatedUnion` doesn't fit because both fields are optional
138
+ // (directives carry neither), so a plain object + refinement is the
139
+ // cleanest expression of "at most one".
140
+ const ComponentMetadataSchema = z
141
+ .object({
142
+ selector: z.string(),
143
+ standalone: z.boolean(),
144
+ changeDetection: z.enum(['OnPush', 'Default']).nullable().optional(),
145
+ encapsulation: z.enum(['None', 'Emulated', 'ShadowDom']).nullable().optional(),
146
+ exportAs: z.string().optional(),
147
+ template: z.string().optional(),
148
+ templateUrl: z.string().optional(),
149
+ styleUrls: z.array(z.string()).optional(),
150
+ imports: z.array(z.string()).optional(),
151
+ providers: z.array(z.string()).optional(),
152
+ })
153
+ .refine((m) => !(m.template !== undefined && m.templateUrl !== undefined), {
154
+ message: 'template and templateUrl are mutually exclusive',
155
+ path: ['template'],
156
+ });
157
+ const ComponentAnalysisSchema = z.object({
158
+ className: z.string(),
159
+ filePath: z.string(),
160
+ metadata: ComponentMetadataSchema,
161
+ inputs: z.array(InputPropertySchema),
162
+ outputs: z.array(OutputPropertySchema),
163
+ publicMethods: z.array(PublicMethodSchema),
164
+ dependencies: z.array(InjectedDependencySchema),
165
+ lifecycleHooks: z.array(LifecycleHookSchema),
166
+ exportedTypes: z.array(ExportedTypeSchema),
167
+ jsDocDescription: z.string().optional(),
168
+ });
169
+ const PipeAnalysisSchema = z.object({
170
+ className: z.string(),
171
+ pipeName: z.string(),
172
+ pure: z.boolean(),
173
+ standalone: z.boolean(),
174
+ transformMethod: PublicMethodSchema.optional(),
175
+ });
176
+ const ServiceAnalysisSchema = z.object({
177
+ className: z.string(),
178
+ providedIn: z.enum(['root', 'platform', 'any']).nullable().optional(),
179
+ dependencies: z.array(InjectedDependencySchema),
180
+ publicMethods: z.array(PublicMethodSchema),
181
+ });
182
+ const ExportedFunctionSchema = z.object({
183
+ name: z.string(),
184
+ parameters: z.array(MethodParameterSchema),
185
+ returnType: z.string().nullable(),
186
+ returnTypeResolved: z.boolean(),
187
+ description: z.string().optional(),
188
+ isAsync: z.boolean(),
189
+ });
190
+ const FileAnalysisSchema = z.object({
191
+ filePath: z.string(),
192
+ components: z.array(ComponentAnalysisSchema),
193
+ directives: z.array(ComponentAnalysisSchema),
194
+ pipes: z.array(PipeAnalysisSchema),
195
+ services: z.array(ServiceAnalysisSchema),
196
+ exportedTypes: z.array(ExportedTypeSchema),
197
+ exportedFunctions: z.array(ExportedFunctionSchema),
198
+ });
199
+ // ── Enhanced types ──────────────────────────────────────────────────
200
+ const InheritanceInfoSchema = z.object({
201
+ baseClass: z.string().optional(),
202
+ baseClassPath: z.string().optional(),
203
+ inheritedInputs: z.array(InputPropertySchema),
204
+ inheritedOutputs: z.array(OutputPropertySchema),
205
+ mixins: z.array(z.string()),
206
+ });
207
+ const ContentSlotInfoSchema = z.object({
208
+ name: z.string(),
209
+ selector: z.string().optional(),
210
+ required: z.boolean(),
211
+ multiple: z.boolean(),
212
+ // v4.1 additive — compound-selector alternates captured by analyzer
213
+ // (e.g. `select="[foo], [bar]"`). Optional for back-compat.
214
+ selectorAlternates: z.array(z.string()).optional(),
215
+ });
216
+ const DeprecationInfoSchema = z.object({
217
+ deprecated: z.literal(true),
218
+ since: z.string().optional(),
219
+ removeIn: z.string().optional(),
220
+ replacement: z.string().optional(),
221
+ reason: z.string().optional(),
222
+ });
223
+ const ConfigTokenInfoSchema = z.object({
224
+ token: z.string(),
225
+ interface: z.string(),
226
+ properties: z.array(TypeMemberSchema),
227
+ defaultValues: z.record(z.unknown()).optional(),
228
+ filePath: z.string(),
229
+ // v4.2 additive: decorator-based global config (@WithConfig) vs InjectionToken.
230
+ kind: z.enum(['injection-token', 'with-config']).optional(),
231
+ configKey: z.string().optional(),
232
+ });
233
+ // StorybookExample — `validated` dropped in v4.0 (derivable from validation pass).
234
+ const StorybookExampleSchema = z.object({
235
+ storyName: z.string(),
236
+ filePath: z.string(),
237
+ template: z.string(),
238
+ args: z.record(z.unknown()),
239
+ argTypes: z.record(z.object({ options: z.array(z.string()).optional() })).optional(),
240
+ usedComponents: z.array(z.string()),
241
+ // v4.1 additive — structured element/attribute refs. Optional for back-compat
242
+ // with v4.0 files that don't carry it.
243
+ usedComponentRefs: z
244
+ .array(z.object({
245
+ selector: z.string(),
246
+ kind: z.enum(['element', 'attribute']),
247
+ }))
248
+ .optional(),
249
+ });
250
+ const RelatedComponentSchema = z.object({
251
+ name: z.string(),
252
+ relationship: z.enum(['requires', 'often-used-with', 'alternative-to']),
253
+ reason: z.string(),
254
+ });
255
+ const SelectorQuickInfoSchema = z.object({
256
+ component: z.string(),
257
+ type: z.enum(['component', 'directive']).optional(),
258
+ mainInputs: z.array(z.string()),
259
+ mainOutputs: z.array(z.string()),
260
+ formControl: z.boolean().optional(),
261
+ hasContentSlots: z.boolean().optional(),
262
+ deprecated: z.boolean().optional(),
263
+ configRequired: z.array(z.string()).optional(),
264
+ });
265
+ const AnalyzerDiagnosticSchema = z.object({
266
+ severity: z.enum(['error', 'warn']),
267
+ code: z.string(),
268
+ component: z.string().optional(),
269
+ file: z.string().optional(),
270
+ message: z.string(),
271
+ stack: z.string().optional(),
272
+ });
273
+ // EnhancedComponentMetadataEntry — discriminated on `kind`.
274
+ // `analyzed` carries the full payload; `skipped`/`failed` carry only
275
+ // `name` + `reason`. `importedBy` is NOT in the on-disk schema — it is
276
+ // computed at load time (see data/metadata.ts).
277
+ const AnalyzedComponentEntrySchema = z.object({
278
+ kind: z.literal('analyzed'),
279
+ name: z.string(),
280
+ exports: z.array(z.string()),
281
+ files: z.array(z.string()),
282
+ readme: z.string().optional(),
283
+ analysis: z.array(FileAnalysisSchema),
284
+ dependencies: z.object({
285
+ required: z.array(z.string()),
286
+ optional: z.array(z.string()),
287
+ providers: z.object({
288
+ required: z.array(z.string()),
289
+ optional: z.array(z.string()),
290
+ }),
291
+ }),
292
+ examples: z.array(z.object({
293
+ name: z.string(),
294
+ description: z.string(),
295
+ template: z.string().optional(),
296
+ typescript: z.string().optional(),
297
+ scss: z.string().optional(),
298
+ })),
299
+ inheritance: z.record(InheritanceInfoSchema).optional(),
300
+ contentProjection: z.array(ContentSlotInfoSchema).optional(),
301
+ deprecation: DeprecationInfoSchema.optional(),
302
+ configTokens: z.array(ConfigTokenInfoSchema).optional(),
303
+ storybookExamples: z.array(StorybookExampleSchema).optional(),
304
+ importsFrom: z.array(z.string()).optional(),
305
+ relatedComponents: z.array(RelatedComponentSchema).optional(),
306
+ llmSummary: z.string().optional(),
307
+ commonPatterns: z.array(z.string()).optional(),
308
+ inheritanceResolved: z.boolean(),
309
+ });
310
+ const SkippedComponentEntrySchema = z.object({
311
+ kind: z.literal('skipped'),
312
+ name: z.string(),
313
+ reason: z.string(),
314
+ });
315
+ const FailedComponentEntrySchema = z.object({
316
+ kind: z.literal('failed'),
317
+ name: z.string(),
318
+ reason: z.string(),
319
+ });
320
+ const ComponentMetadataEntrySchema = z.discriminatedUnion('kind', [
321
+ AnalyzedComponentEntrySchema,
322
+ SkippedComponentEntrySchema,
323
+ FailedComponentEntrySchema,
324
+ ]);
325
+ export const ComponentMetadataFileSchema = z.object({
326
+ version: z.string(),
327
+ generatedAt: z.string(),
328
+ // v4.2 additive: absent means "angular" (every pre-v4.2 file was Angular).
329
+ framework: z.enum(['angular', 'react']).optional(),
330
+ libraryName: z.string().optional(),
331
+ componentsPath: z.string(),
332
+ importPrefix: z.string().optional(),
333
+ libraryDocumentation: z.string().optional(),
334
+ components: z.record(ComponentMetadataEntrySchema),
335
+ selectorMap: z.record(SelectorQuickInfoSchema).optional(),
336
+ diagnostics: z.array(AnalyzerDiagnosticSchema).optional(),
337
+ });
338
+ /**
339
+ * Parse and validate raw JSON as `ComponentMetadataFile`. Throws a single
340
+ * descriptive `Error` when the input violates the schema — the message lists
341
+ * every offending path + reason so operators can pinpoint drift.
342
+ */
343
+ export function parseComponentMetadata(raw) {
344
+ const result = ComponentMetadataFileSchema.safeParse(raw);
345
+ if (result.success) {
346
+ // Zod parse returns our structural shape; brand types are compile-time
347
+ // only, so the cast is a pure type-level widen.
348
+ return result.data;
349
+ }
350
+ const issueLines = result.error.issues.map((issue) => {
351
+ const path = issue.path.length > 0 ? issue.path.join('.') : '<root>';
352
+ return ` - ${path}: ${issue.message}`;
353
+ });
354
+ throw new Error(`[cl-mcp] component-metadata.json failed schema validation:\n${issueLines.join('\n')}`);
355
+ }
356
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/data/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Quick Context Generation (for LLM efficiency)
3
+ *
4
+ * Generates compact component reference data optimized for LLM consumption.
5
+ * Parametric — uses config for library-specific names.
6
+ */
7
+ import type { QuickContext } from "../types.js";
8
+ export declare function generateQuickContext(): QuickContext;
9
+ export declare function getQuickContext(): QuickContext;
10
+ export declare function formatQuickContextForLLM(): string;
11
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/domain/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAEnE,wBAAgB,oBAAoB,IAAI,YAAY,CA8EnD;AAOD,wBAAgB,eAAe,IAAI,YAAY,CAQ9C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CA8EjD"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Quick Context Generation (for LLM efficiency)
3
+ *
4
+ * Generates compact component reference data optimized for LLM consumption.
5
+ * Parametric — uses config for library-specific names.
6
+ */
7
+ import { getLibraryConfig } from "../config.js";
8
+ import { getAnalyzedEntry, getAvailableComponents, getMetadata } from "../data/metadata.js";
9
+ export function generateQuickContext() {
10
+ const metadata = getMetadata();
11
+ const components = getAvailableComponents();
12
+ const config = getLibraryConfig();
13
+ const importCheatsheet = {};
14
+ const importHint = (componentName) => (config.framework ?? "angular") === "react"
15
+ ? `import { ${componentName.split(".")[0]} } from '${config.packageName}';`
16
+ : `import { ... } from '${config.packageName}/${componentName}';`;
17
+ if (metadata.selectorMap) {
18
+ for (const componentName of components) {
19
+ importCheatsheet[componentName] = importHint(componentName);
20
+ }
21
+ return {
22
+ version: metadata.version,
23
+ totalComponents: components.length,
24
+ selectorMap: metadata.selectorMap,
25
+ importCheatsheet,
26
+ };
27
+ }
28
+ // Fallback: compute at runtime
29
+ const selectorMap = {};
30
+ for (const componentName of components) {
31
+ const preloaded = getAnalyzedEntry(componentName);
32
+ if (!preloaded)
33
+ continue;
34
+ importCheatsheet[componentName] = importHint(componentName);
35
+ for (const analysis of preloaded.analysis) {
36
+ for (const comp of analysis.components) {
37
+ if (!comp.metadata.selector)
38
+ continue;
39
+ if (comp.metadata.selector.startsWith("test-") || comp.metadata.selector.startsWith("storybook-"))
40
+ continue;
41
+ const sortedInputs = [...comp.inputs].sort((a, b) => {
42
+ if (a.required && !b.required)
43
+ return -1;
44
+ if (!a.required && b.required)
45
+ return 1;
46
+ return a.name.localeCompare(b.name);
47
+ });
48
+ const mainInputs = sortedInputs.slice(0, 5).map((i) => (i.required ? `${i.name}*` : i.name));
49
+ const mainOutputs = comp.outputs.slice(0, 3).map((o) => o.name);
50
+ const formControl = comp.inputs.some((i) => i.name === "formControl" || i.name === "formControlName");
51
+ selectorMap[comp.metadata.selector] = {
52
+ component: componentName,
53
+ mainInputs,
54
+ mainOutputs,
55
+ formControl: formControl || undefined,
56
+ };
57
+ }
58
+ for (const dir of analysis.directives || []) {
59
+ if (!dir.metadata.selector)
60
+ continue;
61
+ const rawSelector = dir.metadata.selector.replace(/[\[\]]/g, "");
62
+ if (rawSelector.startsWith("test-") || rawSelector.startsWith("storybook-"))
63
+ continue;
64
+ const mainInputs = dir.inputs.slice(0, 5).map((i) => (i.required ? `${i.name}*` : i.name));
65
+ const mainOutputs = dir.outputs.slice(0, 3).map((o) => o.name);
66
+ selectorMap[dir.metadata.selector] = {
67
+ component: componentName,
68
+ mainInputs,
69
+ mainOutputs,
70
+ };
71
+ }
72
+ }
73
+ }
74
+ return {
75
+ version: metadata.version,
76
+ totalComponents: components.length,
77
+ selectorMap,
78
+ importCheatsheet,
79
+ };
80
+ }
81
+ // Memoized per library — the active library can be switched per request
82
+ // (multi-library mode), so a single cache slot would leak contexts across
83
+ // libraries.
84
+ const cachedQuickContexts = new Map();
85
+ export function getQuickContext() {
86
+ const key = getLibraryConfig().packageName;
87
+ let ctx = cachedQuickContexts.get(key);
88
+ if (!ctx) {
89
+ ctx = generateQuickContext();
90
+ cachedQuickContexts.set(key, ctx);
91
+ }
92
+ return ctx;
93
+ }
94
+ export function formatQuickContextForLLM() {
95
+ const ctx = getQuickContext();
96
+ const components = getAvailableComponents();
97
+ const config = getLibraryConfig();
98
+ let result = `# ${config.packageName} Quick Reference\n\n`;
99
+ result += `**${ctx.totalComponents} components available**\n\n`;
100
+ result += "## CRITICAL RULES\n";
101
+ result += "1. ONLY use inputs/outputs listed in the table below - do NOT hallucinate props\n";
102
+ result += "2. Use `validate_template` tool BEFORE returning any template\n";
103
+ result += "3. Check `get_component` for full API when unsure\n\n";
104
+ result += "## Selector → Inputs Map\n";
105
+ result += "(* = required input)\n\n";
106
+ result += "| Selector | Type | Main Inputs | Outputs | Form | Notes |\n";
107
+ result += "|----------|------|-------------|---------|------|-------|\n";
108
+ for (const [selector, info] of Object.entries(ctx.selectorMap)) {
109
+ const inputs = info.mainInputs.join(", ") || "-";
110
+ const outputs = info.mainOutputs.join(", ") || "-";
111
+ const form = info.formControl ? "✓" : "";
112
+ const notes = [];
113
+ const type = info.type === "directive" ? "directive" : "component";
114
+ if (info.hasContentSlots)
115
+ notes.push("slots");
116
+ if (info.deprecated)
117
+ notes.push("deprecated");
118
+ if (info.configRequired && info.configRequired.length > 0)
119
+ notes.push(`needs:${info.configRequired.join(",")}`);
120
+ const notesStr = notes.length > 0 ? notes.join(", ") : "";
121
+ result += `| \`${selector}\` | ${type} | ${inputs} | ${outputs} | ${form} | ${notesStr} |\n`;
122
+ }
123
+ // Directive and pipe tables
124
+ const directiveRows = [];
125
+ const pipeRows = [];
126
+ for (const componentName of components) {
127
+ const preloaded = getAnalyzedEntry(componentName);
128
+ if (!preloaded)
129
+ continue;
130
+ for (const analysis of preloaded.analysis) {
131
+ if (analysis.directives) {
132
+ for (const directive of analysis.directives) {
133
+ if (directive.metadata.selector) {
134
+ const rawSelector = directive.metadata.selector.replace(/[\[\]]/g, "");
135
+ if (rawSelector.startsWith("test-") || rawSelector.startsWith("storybook-"))
136
+ continue;
137
+ directiveRows.push({
138
+ selector: directive.metadata.selector,
139
+ component: componentName,
140
+ className: directive.className,
141
+ });
142
+ }
143
+ }
144
+ }
145
+ if (analysis.pipes) {
146
+ for (const pipe of analysis.pipes) {
147
+ pipeRows.push({ pipeName: pipe.pipeName, component: componentName, className: pipe.className });
148
+ }
149
+ }
150
+ }
151
+ }
152
+ if (directiveRows.length > 0) {
153
+ result += "\n## Key Directives\n";
154
+ result += "| Directive | Component | Class |\n|-----------|-----------|-------|\n";
155
+ for (const row of directiveRows) {
156
+ result += `| \`${row.selector}\` | ${row.component} | ${row.className} |\n`;
157
+ }
158
+ }
159
+ if (pipeRows.length > 0) {
160
+ result += "\n## Available Pipes\n";
161
+ result += "| Pipe | Component | Class |\n|------|-----------|-------|\n";
162
+ for (const row of pipeRows) {
163
+ result += `| \`${row.pipeName}\` | ${row.component} | ${row.className} |\n`;
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/domain/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Component Data Formatters for @cl-mcp/mcp-server
3
+ *
4
+ * Transforms raw component metadata into formatted markdown responses
5
+ * for each detail_level: api, full, examples, types.
6
+ *
7
+ * Parametric — no hardcoded library names or import paths.
8
+ */
9
+ import { type SearchResult } from "./search.js";
10
+ export declare function jsonResponse(data: unknown): {
11
+ content: {
12
+ type: "text";
13
+ text: string;
14
+ }[];
15
+ };
16
+ export declare function textResponse(text: string): {
17
+ content: {
18
+ type: "text";
19
+ text: string;
20
+ }[];
21
+ };
22
+ export declare function errorResponse(message: string): {
23
+ content: {
24
+ type: "text";
25
+ text: string;
26
+ }[];
27
+ isError: true;
28
+ };
29
+ export declare function requireComponent(componentName: string): {
30
+ error: ReturnType<typeof errorResponse>;
31
+ } | {
32
+ resolved: string;
33
+ matchedSelector?: string;
34
+ };
35
+ export declare function handleComponentApi(componentName: string, selectorFilter?: string): {
36
+ content: {
37
+ type: "text";
38
+ text: string;
39
+ }[];
40
+ };
41
+ export declare function handleComponentFull(componentName: string): {
42
+ content: {
43
+ type: "text";
44
+ text: string;
45
+ }[];
46
+ };
47
+ export declare function handleComponentExamples(componentName: string): {
48
+ content: {
49
+ type: "text";
50
+ text: string;
51
+ }[];
52
+ };
53
+ export declare function handleComponentTypes(componentName: string, selectorFilter?: string): {
54
+ content: {
55
+ type: "text";
56
+ text: string;
57
+ }[];
58
+ };
59
+ export declare function formatSelectorHints(selectors: string[], match: SearchResult): string;
60
+ export declare function formatSearchResultEntry(match: SearchResult): string;
61
+ export declare function formatSearchFooter(topResults: SearchResult[]): string;
62
+ export declare function handleComponentSearch(query: string, components: string[]): ReturnType<typeof textResponse>;
63
+ export declare function handleComponentListing(components: string[], listAll?: boolean): ReturnType<typeof textResponse>;
64
+ //# sourceMappingURL=formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/domain/formatters.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BH,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,aAAa,CAAC;AAiKpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;EAEzC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;EAExC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;EAE5C;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAkB9F;AAID,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;;EA2GhF;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM;;;;;EA6JxD;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM;;;;;EA6D5D;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;;EA4BlF;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAapF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA2BnE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,CAQrE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAiB1G;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAwB/G"}