@santi020k/lumen-mcp 1.0.0 → 1.2.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/dist/data.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export interface LumenCatalogManifest {
2
2
  components: Record<string, string>;
3
+ nativeComponents?: Record<string, string> | undefined;
3
4
  recipes: Record<string, string>;
4
5
  }
5
6
  export interface LumenComponentSnapshot {
@@ -59,6 +60,7 @@ export interface LumenData {
59
60
  meta: {
60
61
  catalogHash: string;
61
62
  componentCount: number;
63
+ nativeComponentCount: number;
62
64
  packages: string[];
63
65
  packageVersions: Record<string, string>;
64
66
  registryName: string;
@@ -66,6 +68,8 @@ export interface LumenData {
66
68
  schemaVersion: number;
67
69
  serverVersion: string;
68
70
  };
71
+ nativeComponents: LumenNativeComponentSnapshot[];
72
+ nativeSources: Record<LumenNativePlatform, Record<string, string>>;
69
73
  recipes: LumenRecipeSnapshot[];
70
74
  rules: string;
71
75
  tokens: {
@@ -76,6 +80,37 @@ export interface LumenData {
76
80
  themeAttribute: string;
77
81
  };
78
82
  }
83
+ interface LumenNativeApiRow {
84
+ defaultValue: string;
85
+ description: string;
86
+ name: string;
87
+ values: string;
88
+ }
89
+ export interface LumenNativeComponentSnapshot {
90
+ accessibility: string;
91
+ category: string;
92
+ contract: string;
93
+ guidance: string;
94
+ id: string;
95
+ implementations: Partial<Record<LumenNativePlatform, LumenNativeImplementationSnapshot>>;
96
+ name: string;
97
+ summary: string;
98
+ supportedPlatforms?: string[];
99
+ tier: string;
100
+ }
101
+ export interface LumenNativeImplementationSnapshot {
102
+ api: LumenNativeApiRow[];
103
+ example: string;
104
+ exportName: string;
105
+ importStatement: string;
106
+ install: string;
107
+ language: 'kotlin' | 'swift' | 'tsx';
108
+ packageName: string;
109
+ setup: string;
110
+ sourceFile: string;
111
+ symbol: string;
112
+ }
113
+ export type LumenNativePlatform = 'compose' | 'react-native' | 'swiftui';
79
114
  export type LumenFramework = 'astro' | 'elements' | 'react';
80
115
  export interface LumenFrameworkSnapshot {
81
116
  attributes?: string[];
@@ -123,4 +158,5 @@ export interface LumenRecipeSnapshot {
123
158
  type: string;
124
159
  }
125
160
  export declare const loadLumenData: () => LumenData;
161
+ export {};
126
162
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;KACf,EAAE,CAAA;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAA;IAChE,UAAU,EAAE;QACV,KAAK,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,OAAO,CAAA;QACjB,KAAK,EAAE,OAAO,CAAA;KACf,CAAA;IACD,QAAQ,EAAE,IAAI,GAAG;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB,EAAE;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAA;KACZ,EAAE,CAAA;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,OAAO,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;IACH,YAAY,EAAE,IAAI,GAAG,MAAM,CAAA;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;IACH,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,oBAAoB,CAAA;IACrC,UAAU,EAAE,sBAAsB,EAAE,CAAA;IACpC,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvC,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;QACvB,aAAa,EAAE,MAAM,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,gBAAgB,EAAE,4BAA4B,EAAE,CAAA;IAChD,aAAa,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClE,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC7B,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC,CAAC,CAAA;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,iBAAiB,EAAE,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAA;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAA;AAExE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE3D,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE;YACX,YAAY,EAAE,MAAM,CAAA;YACpB,WAAW,EAAE,MAAM,CAAA;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,EAAE,CAAA;QACH,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;QAClE,OAAO,CAAC,EAAE;YACR,YAAY,EAAE,MAAM,CAAA;YACpB,WAAW,EAAE,MAAM,CAAA;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,EAAE,CAAA;QACH,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,OAAO,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;IACH,YAAY,EAAE,IAAI,GAAG,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAKD,eAAO,MAAM,aAAa,QAAO,SAShC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAA;AA2JrF,eAAO,MAAM,iBAAiB,QAAO,SAmQpC,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAA;AAwLrF,eAAO,MAAM,iBAAiB,QAAO,SA+UpC,CAAA"}
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import * as z from 'zod';
3
3
  import { loadLumenData } from './data.js';
4
- import { diagnose, diffCatalog, getCatalogManifest, getComponent, getMeta, getRecipe, getRules, getTokens, listComponents, search } from './tools.js';
4
+ import { diagnose, diffCatalog, getCatalogManifest, getComponent, getMeta, getNativeComponent, getRecipe, getRules, getTokens, listComponents, listNativeComponents, search } from './tools.js';
5
5
  const readOnlyAnnotations = {
6
6
  idempotentHint: true,
7
7
  openWorldHint: false,
@@ -25,6 +25,20 @@ const componentOutputSchema = z.strictObject({
25
25
  found: z.boolean(),
26
26
  message: z.string().trim().optional()
27
27
  });
28
+ const nativePlatformSchema = z.enum(['react-native', 'swiftui', 'compose']);
29
+ const nativeComponentSummarySchema = z.strictObject({
30
+ accessibility: z.string().trim(),
31
+ category: z.string().trim(),
32
+ id: z.string().trim(),
33
+ name: z.string().trim(),
34
+ platforms: z.array(nativePlatformSchema),
35
+ summary: z.string().trim(),
36
+ tier: z.string().trim()
37
+ });
38
+ const listNativeComponentsOutputSchema = z.strictObject({
39
+ components: z.array(nativeComponentSummarySchema),
40
+ count: z.int().min(0)
41
+ });
28
42
  const recipeOutputSchema = z.strictObject({
29
43
  found: z.boolean(),
30
44
  message: z.string().trim().optional(),
@@ -34,9 +48,10 @@ const searchResultSchema = z.strictObject({
34
48
  category: z.string().trim().optional(),
35
49
  description: z.string().trim(),
36
50
  frameworks: z.array(z.enum(['astro', 'elements', 'react'])).optional(),
37
- kind: z.enum(['component', 'recipe', 'rule', 'token']),
51
+ kind: z.enum(['component', 'native-component', 'recipe', 'rule', 'token']),
38
52
  matchedTerms: z.array(z.string().trim()),
39
53
  name: z.string().trim(),
54
+ platforms: z.array(nativePlatformSchema).optional(),
40
55
  score: z.number()
41
56
  });
42
57
  const searchOutputSchema = z.strictObject({
@@ -60,6 +75,7 @@ const metaOutputSchema = z.strictObject({
60
75
  meta: z.strictObject({
61
76
  catalogHash: z.string().trim().regex(/^[a-f0-9]{64}$/),
62
77
  componentCount: z.int().min(0),
78
+ nativeComponentCount: z.int().min(0),
63
79
  packages: z.array(z.string().trim()),
64
80
  packageVersions: z.record(z.string(), z.string().trim()),
65
81
  registryName: z.string().trim(),
@@ -70,6 +86,8 @@ const metaOutputSchema = z.strictObject({
70
86
  });
71
87
  const catalogManifestSchema = z.strictObject({
72
88
  components: z.record(z.string(), z.string().trim().regex(/^[a-f0-9]{64}$/)),
89
+ nativeComponents: z.record(z.string(), z.string().trim().regex(/^[a-f0-9]{64}$/))
90
+ .optional(),
73
91
  recipes: z.record(z.string(), z.string().trim().regex(/^[a-f0-9]{64}$/))
74
92
  });
75
93
  const catalogChangesSchema = z.strictObject({
@@ -86,6 +104,7 @@ const catalogManifestOutputSchema = z.strictObject({
86
104
  const catalogDiffOutputSchema = z.strictObject({
87
105
  components: catalogChangesSchema,
88
106
  currentCatalogHash: z.string().trim().regex(/^[a-f0-9]{64}$/),
107
+ nativeComponents: catalogChangesSchema,
89
108
  recipes: catalogChangesSchema,
90
109
  unchanged: z.boolean()
91
110
  });
@@ -100,6 +119,11 @@ const diagnosticsOutputSchema = z.strictObject({
100
119
  elements: z.int().min(0),
101
120
  react: z.int().min(0)
102
121
  }),
122
+ nativeCoverage: z.strictObject({
123
+ compose: z.int().min(0),
124
+ 'react-native': z.int().min(0),
125
+ swiftui: z.int().min(0)
126
+ }),
103
127
  status: z.enum(['healthy', 'issues'])
104
128
  });
105
129
  const structuredData = (data) => typeof data === 'object' && data !== null ?
@@ -121,7 +145,7 @@ export const createLumenServer = () => {
121
145
  const data = loadLumenData();
122
146
  const server = new McpServer({ name: '@santi020k/lumen-mcp', version: data.meta.serverVersion }, {
123
147
  instructions: 'Read lumen://meta, lumen://diagnostics, and lumen://rules before generating Lumen code. Search or list the catalog, ' +
124
- 'then inspect the selected component for the target framework at usage detail before requesting source.'
148
+ 'then inspect the selected web or native component for the target framework or platform at usage detail before requesting source.'
125
149
  });
126
150
  server.registerTool('lumen_list_components', {
127
151
  annotations: readOnlyAnnotations,
@@ -158,6 +182,29 @@ export const createLumenServer = () => {
158
182
  }),
159
183
  outputSchema: componentOutputSchema
160
184
  }, args => toMcpResult(getComponent(args)));
185
+ server.registerTool('lumen_list_native_components', {
186
+ annotations: readOnlyAnnotations,
187
+ description: 'List native Lumen components with platform availability, accessibility, category, and shared contract tier.',
188
+ inputSchema: z.strictObject({
189
+ platform: nativePlatformSchema.optional()
190
+ .meta({ description: 'Only list components available for this native platform.' }),
191
+ query: z.string().trim().min(1).optional()
192
+ .meta({ description: 'Natural-language component or native use-case query.' })
193
+ }),
194
+ outputSchema: listNativeComponentsOutputSchema
195
+ }, args => toMcpResult(listNativeComponents(args)));
196
+ server.registerTool('lumen_get_native_component', {
197
+ annotations: readOnlyAnnotations,
198
+ description: 'Get install steps, imports, setup, API, accessible usage example, and optional reference source for React Native, SwiftUI, or Compose.',
199
+ inputSchema: z.strictObject({
200
+ detail: z.enum(['summary', 'usage', 'source']).default('usage'),
201
+ name: z.string().trim().min(1)
202
+ .meta({ description: 'Native component name, id, export, or symbol.' }),
203
+ platform: nativePlatformSchema
204
+ .meta({ description: 'Native implementation contract to return.' })
205
+ }),
206
+ outputSchema: componentOutputSchema
207
+ }, args => toMcpResult(getNativeComponent(args)));
161
208
  server.registerTool('lumen_get_recipe', {
162
209
  annotations: readOnlyAnnotations,
163
210
  description: 'Get a Lumen recipe or component set with its purpose, categories, components, files, and ' +
@@ -182,6 +229,8 @@ export const createLumenServer = () => {
182
229
  limit: z.int().min(1).max(100)
183
230
  .optional()
184
231
  .meta({ description: 'Maximum results to return (1-100, default 20).' }),
232
+ platform: nativePlatformSchema.optional()
233
+ .meta({ description: 'Only search native component contracts for this platform.' }),
185
234
  query: z.string().trim().min(1)
186
235
  .meta({ description: 'Keyword or natural-language use-case to search for.' })
187
236
  }),
@@ -214,7 +263,7 @@ export const createLumenServer = () => {
214
263
  }, args => toMcpResult(diffCatalog(args)));
215
264
  server.registerTool('lumen_diagnose', {
216
265
  annotations: readOnlyAnnotations,
217
- description: 'Run deterministic snapshot integrity checks and report framework coverage. Useful when testing a new MCP connection.',
266
+ description: 'Run deterministic snapshot integrity checks and report web framework and native platform coverage. Useful when testing a new MCP connection.',
218
267
  inputSchema: z.strictObject({}),
219
268
  outputSchema: diagnosticsOutputSchema
220
269
  }, () => toMcpResult(diagnose()));
@@ -260,6 +309,10 @@ export const createLumenServer = () => {
260
309
  description: 'Compact structured component catalog.',
261
310
  mimeType: 'application/json'
262
311
  }, uri => jsonResource(uri, listComponents().data));
312
+ server.registerResource('lumen-native-components', 'lumen://native-components', {
313
+ description: 'Compact structured native component catalog.',
314
+ mimeType: 'application/json'
315
+ }, uri => jsonResource(uri, listNativeComponents().data));
263
316
  server.registerResource('lumen-component', new ResourceTemplate('lumen://components/{name}', {
264
317
  complete: {
265
318
  name: value => data.components
@@ -283,6 +336,33 @@ export const createLumenServer = () => {
283
336
  const result = getComponent({ detail: 'usage', framework: 'astro', name });
284
337
  return jsonResource(uri, result.data);
285
338
  });
339
+ server.registerResource('lumen-native-component', new ResourceTemplate('lumen://native-components/{name}', {
340
+ complete: {
341
+ name: value => data.nativeComponents
342
+ .map(component => component.name)
343
+ .filter(name => name.toLowerCase().includes(value.toLowerCase()))
344
+ .slice(0, 30)
345
+ },
346
+ list: () => ({
347
+ resources: data.nativeComponents.map(component => ({
348
+ description: component.summary,
349
+ mimeType: 'application/json',
350
+ name: component.name,
351
+ uri: `lumen://native-components/${component.id}`
352
+ }))
353
+ })
354
+ }), {
355
+ description: 'Native component metadata and platform usage.',
356
+ mimeType: 'application/json'
357
+ }, (uri, variables) => {
358
+ const name = String(variables.name);
359
+ const component = data.nativeComponents.find(item => (item.id === name || item.name === name));
360
+ const platform = component ?
361
+ Object.keys(component.implementations)[0] :
362
+ 'react-native';
363
+ const result = getNativeComponent({ detail: 'usage', name, platform });
364
+ return jsonResource(uri, result.data);
365
+ });
286
366
  server.registerResource('lumen-recipe', new ResourceTemplate('lumen://recipes/{name}', {
287
367
  complete: {
288
368
  name: value => data.recipes
package/dist/tools.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LumenCatalogManifest, LumenComponentSnapshot, LumenData, LumenFramework, LumenRecipeSnapshot } from './data.js';
1
+ import type { LumenCatalogManifest, LumenComponentSnapshot, LumenData, LumenFramework, LumenNativeComponentSnapshot, LumenNativeImplementationSnapshot, LumenNativePlatform, LumenRecipeSnapshot } from './data.js';
2
2
  export interface CatalogChanges {
3
3
  added: string[];
4
4
  changed: string[];
@@ -16,6 +16,16 @@ export interface ComponentSummary {
16
16
  recipes: string[];
17
17
  }
18
18
  export type FrameworkFilter = LumenFramework;
19
+ export type NativePlatformFilter = LumenNativePlatform;
20
+ export interface NativeComponentSummary {
21
+ accessibility: string;
22
+ category: string;
23
+ id: string;
24
+ name: string;
25
+ platforms: LumenNativePlatform[];
26
+ summary: string;
27
+ tier: string;
28
+ }
19
29
  export interface LumenToolResult<Data = unknown> {
20
30
  data: Data;
21
31
  isError?: boolean;
@@ -25,13 +35,15 @@ export interface SearchResult {
25
35
  category?: string;
26
36
  description: string;
27
37
  frameworks?: LumenFramework[];
28
- kind: 'component' | 'recipe' | 'rule' | 'token';
38
+ kind: 'component' | 'native-component' | 'recipe' | 'rule' | 'token';
29
39
  matchedTerms: string[];
30
40
  name: string;
41
+ platforms?: LumenNativePlatform[];
31
42
  score: number;
32
43
  }
33
44
  export declare const resolveComponent: (name: string, data?: LumenData) => LumenComponentSnapshot | undefined;
34
45
  export declare const resolveRecipe: (name: string, data?: LumenData) => LumenRecipeSnapshot | undefined;
46
+ export declare const resolveNativeComponent: (name: string, data?: LumenData) => LumenNativeComponentSnapshot | undefined;
35
47
  export declare const listComponents: (args?: {
36
48
  framework?: FrameworkFilter | undefined;
37
49
  query?: string | undefined;
@@ -134,6 +146,64 @@ export declare const getComponent: (args: {
134
146
  found: boolean;
135
147
  message?: string;
136
148
  }>;
149
+ export declare const listNativeComponents: (args?: {
150
+ platform?: NativePlatformFilter | undefined;
151
+ query?: string | undefined;
152
+ }, data?: LumenData) => LumenToolResult<{
153
+ components: NativeComponentSummary[];
154
+ count: number;
155
+ }>;
156
+ declare const nativeComponentDetail: (component: LumenNativeComponentSnapshot, platform: LumenNativePlatform, detail: ComponentDetailLevel, data: LumenData) => {
157
+ implementation: LumenNativeImplementationSnapshot;
158
+ contract: string;
159
+ guidance: string;
160
+ platform: LumenNativePlatform;
161
+ accessibility: string;
162
+ category: string;
163
+ id: string;
164
+ name: string;
165
+ platforms: LumenNativePlatform[];
166
+ summary: string;
167
+ tier: string;
168
+ } | {
169
+ implementation: {
170
+ exportName: string;
171
+ packageName: string;
172
+ symbol: string;
173
+ };
174
+ contract: string;
175
+ guidance: string;
176
+ platform: LumenNativePlatform;
177
+ accessibility: string;
178
+ category: string;
179
+ id: string;
180
+ name: string;
181
+ platforms: LumenNativePlatform[];
182
+ summary: string;
183
+ tier: string;
184
+ } | {
185
+ source: string | undefined;
186
+ implementation: LumenNativeImplementationSnapshot;
187
+ contract: string;
188
+ guidance: string;
189
+ platform: LumenNativePlatform;
190
+ accessibility: string;
191
+ category: string;
192
+ id: string;
193
+ name: string;
194
+ platforms: LumenNativePlatform[];
195
+ summary: string;
196
+ tier: string;
197
+ } | undefined;
198
+ export declare const getNativeComponent: (args: {
199
+ detail?: ComponentDetailLevel | undefined;
200
+ name: string;
201
+ platform: NativePlatformFilter;
202
+ }, data?: LumenData) => LumenToolResult<{
203
+ component?: ReturnType<typeof nativeComponentDetail>;
204
+ found: boolean;
205
+ message?: string;
206
+ }>;
137
207
  export declare const getRecipe: (args: {
138
208
  framework?: FrameworkFilter | undefined;
139
209
  name: string;
@@ -145,6 +215,7 @@ export declare const getRecipe: (args: {
145
215
  export declare const search: (args: {
146
216
  framework?: FrameworkFilter | undefined;
147
217
  limit?: number | undefined;
218
+ platform?: NativePlatformFilter | undefined;
148
219
  query: string;
149
220
  }, data?: LumenData) => LumenToolResult<{
150
221
  query: string;
@@ -165,16 +236,19 @@ export declare const diffCatalog: (args: {
165
236
  }, data?: LumenData) => LumenToolResult<{
166
237
  components: CatalogChanges;
167
238
  currentCatalogHash: string;
239
+ nativeComponents: CatalogChanges;
168
240
  recipes: CatalogChanges;
169
241
  unchanged: boolean;
170
242
  }>;
243
+ interface DiagnosticCheck {
244
+ message: string;
245
+ name: string;
246
+ status: 'fail' | 'pass';
247
+ }
171
248
  export declare const diagnose: (data?: LumenData) => LumenToolResult<{
172
- checks: {
173
- message: string;
174
- name: string;
175
- status: "fail" | "pass";
176
- }[];
249
+ checks: DiagnosticCheck[];
177
250
  frameworkCoverage: Record<LumenFramework, number>;
251
+ nativeCoverage: Record<LumenNativePlatform, number>;
178
252
  status: "healthy" | "issues";
179
253
  }>;
180
254
  export declare const getTokens: (data?: LumenData) => LumenToolResult<{
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}