@duro-app/cli 1.4.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/commands/mcp.d.ts +14 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +22 -15
- package/dist/commands/mcp.js.map +1 -1
- package/dist/manifest.js +4 -4
- package/dist/manifest.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -25,11 +25,11 @@ Exit codes: `0` ok · `1` not found (with "did you mean") · `2` usage error ·
|
|
|
25
25
|
## MCP server
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
claude mcp add duro -- npx -y -p @duro-app/cli -p @modelcontextprotocol/sdk duro mcp
|
|
28
|
+
claude mcp add duro-ds -- npx -y -p @duro-app/cli -p @modelcontextprotocol/sdk duro mcp
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Tools: `
|
|
32
|
-
`
|
|
31
|
+
Tools: `duro_ds_lookup` (same fallback-to-search behavior as the CLI),
|
|
32
|
+
`duro_ds_list`, `duro_ds_manifest`. Resources: `duro://component/<Name>`,
|
|
33
33
|
`duro://recipe/<name>`. Prompt: `duro/build-ui` primes a session with the
|
|
34
34
|
critical rules and the component index. The SDK is an optional peer — plain
|
|
35
35
|
CLI use never loads it.
|
package/dist/commands/mcp.d.ts
CHANGED
|
@@ -52,6 +52,20 @@ export declare function toolDefinitions(registry: Registry): ({
|
|
|
52
52
|
required?: undefined;
|
|
53
53
|
};
|
|
54
54
|
})[];
|
|
55
|
+
/**
|
|
56
|
+
* The wire shape of a tools/call answer. `structuredContent` must be a JSON
|
|
57
|
+
* object — a bare array is rejected by the SDK's result schema, which is how
|
|
58
|
+
* duro_ds_list (a ListEntry[]) used to fail with -32602 — so arrays ride under
|
|
59
|
+
* `entries`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function toolResponse(registry: Registry, name: string, args: Record<string, unknown>): {
|
|
62
|
+
content: {
|
|
63
|
+
type: "text";
|
|
64
|
+
text: string;
|
|
65
|
+
}[];
|
|
66
|
+
structuredContent: Record<string, unknown>;
|
|
67
|
+
isError: boolean;
|
|
68
|
+
};
|
|
55
69
|
export declare function callTool(registry: Registry, name: string, args: Record<string, unknown>): {
|
|
56
70
|
text: string;
|
|
57
71
|
data: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAA;AAYlD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCjD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;EAkBvF;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAA;AAYlD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCjD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;uBAInB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;EAG/F;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;EAkBvF;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F9D"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -11,7 +11,7 @@ or run it without installing:
|
|
|
11
11
|
export function toolDefinitions(registry) {
|
|
12
12
|
return [
|
|
13
13
|
{
|
|
14
|
-
name: '
|
|
14
|
+
name: 'duro_ds_lookup',
|
|
15
15
|
description: 'Docs for anything in the Duro design system by name: a component (props, usage, example), a recipe (runnable source), a token group, "icons", or "rules". Free text falls back to a ranked search over usage metadata — pass what you need, e.g. "tags that wrap".',
|
|
16
16
|
inputSchema: {
|
|
17
17
|
type: 'object',
|
|
@@ -30,7 +30,7 @@ export function toolDefinitions(registry) {
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
name: '
|
|
33
|
+
name: 'duro_ds_list',
|
|
34
34
|
description: `One-line index of everything documented (${Object.keys(registry.components).length} components, ${Object.keys(registry.recipes).length} recipes, token groups).`,
|
|
35
35
|
inputSchema: {
|
|
36
36
|
type: 'object',
|
|
@@ -40,26 +40,40 @@ export function toolDefinitions(registry) {
|
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
name: '
|
|
43
|
+
name: 'duro_ds_manifest',
|
|
44
44
|
description: 'The duro command spec plus all valid lookup names.',
|
|
45
45
|
inputSchema: { type: 'object', properties: {} },
|
|
46
46
|
},
|
|
47
47
|
];
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The wire shape of a tools/call answer. `structuredContent` must be a JSON
|
|
51
|
+
* object — a bare array is rejected by the SDK's result schema, which is how
|
|
52
|
+
* duro_ds_list (a ListEntry[]) used to fail with -32602 — so arrays ride under
|
|
53
|
+
* `entries`.
|
|
54
|
+
*/
|
|
55
|
+
export function toolResponse(registry, name, args) {
|
|
56
|
+
const { text, data, isError } = callTool(registry, name, args);
|
|
57
|
+
return {
|
|
58
|
+
content: [{ type: 'text', text: text || JSON.stringify(data, null, 2) }],
|
|
59
|
+
structuredContent: (Array.isArray(data) ? { entries: data } : data),
|
|
60
|
+
isError,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
49
63
|
export function callTool(registry, name, args) {
|
|
50
64
|
switch (name) {
|
|
51
|
-
case '
|
|
65
|
+
case 'duro_ds_lookup': {
|
|
52
66
|
const result = runLookup(registry, String(args.name ?? ''), {
|
|
53
67
|
part: typeof args.part === 'string' ? args.part : undefined,
|
|
54
68
|
sourceOnly: args.sourceOnly === true,
|
|
55
69
|
});
|
|
56
70
|
return { text: result.text, data: result.data, isError: result.exitCode === 1 };
|
|
57
71
|
}
|
|
58
|
-
case '
|
|
72
|
+
case 'duro_ds_list': {
|
|
59
73
|
const result = runList(registry, typeof args.kind === 'string' ? args.kind : undefined);
|
|
60
74
|
return { text: result.text, data: result.data, isError: result.exitCode !== undefined };
|
|
61
75
|
}
|
|
62
|
-
case '
|
|
76
|
+
case 'duro_ds_manifest':
|
|
63
77
|
return { text: '', data: buildManifest(registry, cliVersion()), isError: false };
|
|
64
78
|
default:
|
|
65
79
|
throw new Error(`unknown tool ${name}`);
|
|
@@ -80,14 +94,7 @@ export async function runMcp(registry) {
|
|
|
80
94
|
server.setRequestHandler(sdkTypes.ListToolsRequestSchema, () => ({
|
|
81
95
|
tools: toolDefinitions(registry),
|
|
82
96
|
}));
|
|
83
|
-
server.setRequestHandler(sdkTypes.CallToolRequestSchema, (request) => {
|
|
84
|
-
const { text, data, isError } = callTool(registry, request.params.name, (request.params.arguments ?? {}));
|
|
85
|
-
return {
|
|
86
|
-
content: [{ type: 'text', text: text || JSON.stringify(data, null, 2) }],
|
|
87
|
-
structuredContent: data,
|
|
88
|
-
isError,
|
|
89
|
-
};
|
|
90
|
-
});
|
|
97
|
+
server.setRequestHandler(sdkTypes.CallToolRequestSchema, (request) => toolResponse(registry, request.params.name, (request.params.arguments ?? {})));
|
|
91
98
|
server.setRequestHandler(sdkTypes.ListResourcesRequestSchema, () => ({
|
|
92
99
|
resources: [
|
|
93
100
|
...Object.keys(registry.components).map((name) => ({
|
|
@@ -143,7 +150,7 @@ export async function runMcp(registry) {
|
|
|
143
150
|
role: 'user',
|
|
144
151
|
content: {
|
|
145
152
|
type: 'text',
|
|
146
|
-
text: `You are building UI with the Duro design system. Follow these rules:\n\n${registry.rules.critical}\n\nAvailable components:\n${componentIndex}\n\nQuery details with the
|
|
153
|
+
text: `You are building UI with the Duro design system. Follow these rules:\n\n${registry.rules.critical}\n\nAvailable components:\n${componentIndex}\n\nQuery details with the duro_ds_lookup tool.`,
|
|
147
154
|
},
|
|
148
155
|
},
|
|
149
156
|
],
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,cAAc,CAAA;AAE1D,MAAM,YAAY,GAAG;;;gEAG2C,CAAA;AAEhE,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,OAAO;QACL;YACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.js
CHANGED
|
@@ -26,7 +26,7 @@ export const COMMANDS = [
|
|
|
26
26
|
'duro login-form --source-only',
|
|
27
27
|
'duro "tags that wrap"',
|
|
28
28
|
],
|
|
29
|
-
mcpTool: '
|
|
29
|
+
mcpTool: 'duro_ds_lookup',
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
name: 'list',
|
|
@@ -42,7 +42,7 @@ export const COMMANDS = [
|
|
|
42
42
|
flags: [],
|
|
43
43
|
returns: { shape: 'ListEntry[]', description: '{name, kind, importPath?, description}' },
|
|
44
44
|
examples: ['duro list', 'duro list recipes --json'],
|
|
45
|
-
mcpTool: '
|
|
45
|
+
mcpTool: 'duro_ds_list',
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
name: 'manifest',
|
|
@@ -51,7 +51,7 @@ export const COMMANDS = [
|
|
|
51
51
|
flags: [],
|
|
52
52
|
returns: { shape: 'Manifest', description: 'Commands, flags, shapes, and enums of valid names' },
|
|
53
53
|
examples: ['duro manifest --json'],
|
|
54
|
-
mcpTool: '
|
|
54
|
+
mcpTool: 'duro_ds_manifest',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
name: 'hook',
|
|
@@ -79,7 +79,7 @@ export const COMMANDS = [
|
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
name: 'mcp',
|
|
82
|
-
summary: 'Run a stdio MCP server exposing
|
|
82
|
+
summary: 'Run a stdio MCP server exposing duro_ds_lookup / duro_ds_list / duro_ds_manifest',
|
|
83
83
|
args: [],
|
|
84
84
|
flags: [],
|
|
85
85
|
returns: { shape: 'never', description: 'Serves until stdin closes' },
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAgBzC,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,+LAA+L;QACjM,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,uGAAuG;gBACzG,UAAU,EAAE,OAAO;aACpB;SACF;QACD,KAAK,EAAE;YACL,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAC;YACtF,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC;YAChE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAC;SAC1F;QACD,OAAO,EAAE;YACP,KAAK,EACH,wFAAwF;YAC1F,WAAW,EAAE,uEAAuE;SACrF;QACD,QAAQ,EAAE;YACR,aAAa;YACb,yBAAyB;YACzB,+BAA+B;YAC/B,uBAAuB;SACxB;QACD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAgBzC,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,+LAA+L;QACjM,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,uGAAuG;gBACzG,UAAU,EAAE,OAAO;aACpB;SACF;QACD,KAAK,EAAE;YACL,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAC;YACtF,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC;YAChE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAC;SAC1F;QACD,OAAO,EAAE;YACP,KAAK,EACH,wFAAwF;YAC1F,WAAW,EAAE,uEAAuE;SACrF;QACD,QAAQ,EAAE;YACR,aAAa;YACb,yBAAyB;YACzB,+BAA+B;YAC/B,uBAAuB;SACxB;QACD,OAAO,EAAE,gBAAgB;KAC1B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,yCAAyC;QAClD,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,8CAA8C;gBAC3D,UAAU,EAAE,OAAO;aACpB;SACF;QACD,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,wCAAwC,EAAC;QACtF,QAAQ,EAAE,CAAC,WAAW,EAAE,0BAA0B,CAAC;QACnD,OAAO,EAAE,cAAc;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,8EAA8E;QACvF,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,mDAAmD,EAAC;QAC9F,QAAQ,EAAE,CAAC,sBAAsB,CAAC;QAClC,OAAO,EAAE,kBAAkB;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EACL,uIAAuI;QACzI,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wEAAwE;gBACrF,UAAU,EAAE,QAAQ;aACrB;SACF;QACD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8DAA8D;aAC5E;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,iFAAiF;YACxF,WAAW,EACT,mGAAmG;SACtG;QACD,QAAQ,EAAE,CAAC,yBAAyB,EAAE,mBAAmB,EAAE,2BAA2B,CAAC;KACxF;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,kFAAkF;QAC3F,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAC;QACnE,QAAQ,EAAE;YACR,sFAAsF;SACvF;KACF;CACF,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,OAAe;IAC/D,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,MAAM;QACX,OAAO;QACP,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EAAE;YACX,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAC;YACnE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAC;SACzE;QACD,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE;YACL,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;YAC5B,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;YAC1C,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;SACrC;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duro-app/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Machine-queryable docs for the Duro design system: components, props, recipes, tokens and rules as CLI output, JSON, or an MCP server.",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@modelcontextprotocol/sdk": ">=1.0.0",
|
|
48
|
-
"@duro-app/ui": "^
|
|
48
|
+
"@duro-app/ui": "^2.0.1"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@duro-app/ui": {
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
"@types/node": "^24.0.0",
|
|
61
61
|
"ts-morph": "^26.0.0",
|
|
62
62
|
"typescript": "^5.7.0",
|
|
63
|
-
"@duro-app/
|
|
64
|
-
"@duro-app/tokens": "^
|
|
65
|
-
"@duro-app/
|
|
63
|
+
"@duro-app/ui": "^2.0.1",
|
|
64
|
+
"@duro-app/tokens": "^2.0.1",
|
|
65
|
+
"@duro-app/eslint-plugin": "^2.0.1"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"registry": "node scripts/build-registry.mjs",
|