@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/README.md +30 -6
- package/data/lumen-data.json +5412 -111
- package/dist/data.d.ts +36 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +84 -4
- package/dist/tools.d.ts +81 -7
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +238 -22
- package/package.json +3 -3
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
|
package/dist/data.d.ts.map
CHANGED
|
@@ -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":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,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<{
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,cAAc,EAEd,mBAAmB,EACpB,MAAM,WAAW,CAAA;AAGlB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AACD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|