sourcey 3.3.10 → 3.4.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 +19 -3
- package/dist/client/scroll-tracker.js +8 -1
- package/dist/client/search.js +26 -7
- package/dist/components/layout/Head.d.ts.map +1 -1
- package/dist/components/layout/Head.js +1 -1
- package/dist/components/layout/Header.d.ts.map +1 -1
- package/dist/components/layout/Header.js +2 -2
- package/dist/components/layout/Page.d.ts.map +1 -1
- package/dist/components/layout/Page.js +6 -5
- package/dist/components/layout/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/Sidebar.js +11 -2
- package/dist/components/layout/TableOfContents.d.ts.map +1 -1
- package/dist/components/layout/TableOfContents.js +3 -2
- package/dist/components/mcp/AnnotationBadges.d.ts +15 -0
- package/dist/components/mcp/AnnotationBadges.d.ts.map +1 -0
- package/dist/components/mcp/AnnotationBadges.js +10 -0
- package/dist/components/mcp/McpConnection.d.ts +10 -0
- package/dist/components/mcp/McpConnection.d.ts.map +1 -0
- package/dist/components/mcp/McpConnection.js +32 -0
- package/dist/components/mcp/McpEndpointBar.d.ts +8 -0
- package/dist/components/mcp/McpEndpointBar.d.ts.map +1 -0
- package/dist/components/mcp/McpEndpointBar.js +16 -0
- package/dist/components/mcp/McpReturns.d.ts +18 -0
- package/dist/components/mcp/McpReturns.d.ts.map +1 -0
- package/dist/components/mcp/McpReturns.js +33 -0
- package/dist/components/openapi/Operation.d.ts.map +1 -1
- package/dist/components/openapi/Operation.js +5 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -3
- package/dist/core/markdown-loader.d.ts.map +1 -1
- package/dist/core/markdown-loader.js +7 -2
- package/dist/core/mcp-normalizer.d.ts +11 -0
- package/dist/core/mcp-normalizer.d.ts.map +1 -0
- package/dist/core/mcp-normalizer.js +382 -0
- package/dist/core/search-indexer.d.ts +3 -1
- package/dist/core/search-indexer.d.ts.map +1 -1
- package/dist/core/search-indexer.js +7 -3
- package/dist/core/types.d.ts +26 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/dev-server.d.ts.map +1 -1
- package/dist/dev-server.js +47 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -10
- package/dist/renderer/html-builder.d.ts +2 -0
- package/dist/renderer/html-builder.d.ts.map +1 -1
- package/dist/renderer/html-builder.js +15 -0
- package/dist/renderer/llms.d.ts +6 -0
- package/dist/renderer/llms.d.ts.map +1 -0
- package/dist/renderer/llms.js +247 -0
- package/dist/themes/default/main.css +3 -0
- package/dist/themes/default/sourcey.css +101 -23
- package/dist/utils/icons.d.ts +4 -0
- package/dist/utils/icons.d.ts.map +1 -1
- package/dist/utils/icons.js +6 -0
- package/dist/utils/markdown.d.ts.map +1 -1
- package/dist/utils/markdown.js +97 -1
- package/package.json +6 -2
package/dist/config.js
CHANGED
|
@@ -59,6 +59,7 @@ export function configFromSpec(specPath) {
|
|
|
59
59
|
tabs: [{ label: "API Reference", slug: "api", openapi: absSpec }],
|
|
60
60
|
navbar: { links: [] },
|
|
61
61
|
footer: { links: [] },
|
|
62
|
+
search: { featured: [] },
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
// ---------------------------------------------------------------------------
|
|
@@ -85,6 +86,9 @@ export async function resolveConfigFromRaw(raw, configDir) {
|
|
|
85
86
|
footer: {
|
|
86
87
|
links: raw.footer?.links ?? [],
|
|
87
88
|
},
|
|
89
|
+
search: {
|
|
90
|
+
featured: raw.search?.featured ?? [],
|
|
91
|
+
},
|
|
88
92
|
};
|
|
89
93
|
}
|
|
90
94
|
const VALID_PRESETS = ["default", "minimal", "api-first"];
|
|
@@ -137,18 +141,23 @@ async function resolveTabs(tabs, configDir) {
|
|
|
137
141
|
if (slugs.has(slug))
|
|
138
142
|
throw new Error(`Duplicate tab slug "${slug}" (from "${tab.tab}")`);
|
|
139
143
|
slugs.add(slug);
|
|
140
|
-
const sources = [tab.openapi, tab.groups, tab.doxygen].filter(Boolean).length;
|
|
144
|
+
const sources = [tab.openapi, tab.groups, tab.doxygen, tab.mcp].filter(Boolean).length;
|
|
141
145
|
if (sources > 1) {
|
|
142
|
-
throw new Error(`Tab "${tab.tab}" has multiple sources; use only one of "openapi", "groups", or "
|
|
146
|
+
throw new Error(`Tab "${tab.tab}" has multiple sources; use only one of "openapi", "groups", "doxygen", or "mcp"`);
|
|
143
147
|
}
|
|
144
148
|
if (sources === 0) {
|
|
145
|
-
throw new Error(`Tab "${tab.tab}" needs one of "openapi", "groups", or "
|
|
149
|
+
throw new Error(`Tab "${tab.tab}" needs one of "openapi", "groups", "doxygen", or "mcp"`);
|
|
146
150
|
}
|
|
147
151
|
if (tab.openapi) {
|
|
148
152
|
const absPath = resolve(configDir, tab.openapi);
|
|
149
153
|
await assertExists(absPath, `OpenAPI spec "${tab.openapi}" in tab "${tab.tab}"`);
|
|
150
154
|
resolved.push({ label: tab.tab, slug, openapi: absPath });
|
|
151
155
|
}
|
|
156
|
+
else if (tab.mcp) {
|
|
157
|
+
const absPath = resolve(configDir, tab.mcp);
|
|
158
|
+
await assertExists(absPath, `MCP spec "${tab.mcp}" in tab "${tab.tab}"`);
|
|
159
|
+
resolved.push({ label: tab.tab, slug, mcp: absPath });
|
|
160
|
+
}
|
|
152
161
|
else if (tab.doxygen) {
|
|
153
162
|
const absXml = resolve(configDir, tab.doxygen.xml);
|
|
154
163
|
await assertExists(absXml, `Doxygen XML directory "${tab.doxygen.xml}" in tab "${tab.tab}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-loader.d.ts","sourceRoot":"","sources":["../../src/core/markdown-loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMzF,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-loader.d.ts","sourceRoot":"","sources":["../../src/core/markdown-loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMzF,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA4TxD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAUD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrD"}
|
|
@@ -220,8 +220,13 @@ ${content.trim()}
|
|
|
220
220
|
</div>
|
|
221
221
|
</details>\n\n`;
|
|
222
222
|
});
|
|
223
|
-
// Auto-wrap consecutive accordion items in an accordion-group
|
|
224
|
-
html = html.replace(/(<details class="accordion-item">[\s\S]*?<\/details>\s*){2,}/g, (match) =>
|
|
223
|
+
// Auto-wrap consecutive accordion items in an accordion-group (skip already-wrapped)
|
|
224
|
+
html = html.replace(/(<details class="accordion-item">[\s\S]*?<\/details>\s*){2,}/g, (match, _p1, offset) => {
|
|
225
|
+
const before = html.slice(Math.max(0, offset - 40), offset);
|
|
226
|
+
if (before.includes("accordion-group"))
|
|
227
|
+
return match;
|
|
228
|
+
return `<div class="accordion-group not-prose">\n${match.trim()}\n</div>`;
|
|
229
|
+
});
|
|
225
230
|
return html;
|
|
226
231
|
}
|
|
227
232
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert an McpSpec (from mcp-parser) into a NormalizedSpec for rendering.
|
|
3
|
+
*
|
|
4
|
+
* This is the bridge between the MCP snapshot format and sourcey's
|
|
5
|
+
* format-agnostic rendering pipeline. Everything downstream (components,
|
|
6
|
+
* search, navigation, themes) works unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import type { McpSpec } from "mcp-parser";
|
|
9
|
+
import type { NormalizedSpec } from "./types.js";
|
|
10
|
+
export declare function normalizeMcpSpec(spec: McpSpec): NormalizedSpec;
|
|
11
|
+
//# sourceMappingURL=mcp-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-normalizer.d.ts","sourceRoot":"","sources":["../../src/core/mcp-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoE,MAAM,YAAY,CAAC;AAC5G,OAAO,KAAK,EACV,cAAc,EAUf,MAAM,YAAY,CAAC;AAKpB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CA+C9D"}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert an McpSpec (from mcp-parser) into a NormalizedSpec for rendering.
|
|
3
|
+
*
|
|
4
|
+
* This is the bridge between the MCP snapshot format and sourcey's
|
|
5
|
+
* format-agnostic rendering pipeline. Everything downstream (components,
|
|
6
|
+
* search, navigation, themes) works unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import { generateExample } from "../utils/example-generator.js";
|
|
9
|
+
// ── Public API ────────────────────────────────────────────────────────
|
|
10
|
+
export function normalizeMcpSpec(spec) {
|
|
11
|
+
const connectionInfo = {
|
|
12
|
+
transport: spec.transport ? {
|
|
13
|
+
type: spec.transport.type,
|
|
14
|
+
command: spec.transport.command,
|
|
15
|
+
args: spec.transport.args,
|
|
16
|
+
url: spec.transport.url,
|
|
17
|
+
} : undefined,
|
|
18
|
+
serverName: spec.server.name,
|
|
19
|
+
mcpVersion: spec.mcpVersion,
|
|
20
|
+
capabilities: spec.capabilities,
|
|
21
|
+
};
|
|
22
|
+
const toolOps = (spec.tools ?? []).map((t) => toolToOperation(t, connectionInfo));
|
|
23
|
+
const resourceOps = (spec.resources ?? []).map((r) => resourceToOperation(r, connectionInfo));
|
|
24
|
+
const templateOps = (spec.resourceTemplates ?? []).map((t) => resourceTemplateToOperation(t, connectionInfo));
|
|
25
|
+
const promptOps = (spec.prompts ?? []).map((p) => promptToOperation(p, connectionInfo));
|
|
26
|
+
const allOps = [...toolOps, ...resourceOps, ...templateOps, ...promptOps];
|
|
27
|
+
// Build tags — only for non-empty groups
|
|
28
|
+
const tags = [];
|
|
29
|
+
if (toolOps.length)
|
|
30
|
+
tags.push({ name: "Tools", operations: toolOps });
|
|
31
|
+
if (resourceOps.length || templateOps.length)
|
|
32
|
+
tags.push({ name: "Resources", operations: [...resourceOps, ...templateOps] });
|
|
33
|
+
if (promptOps.length)
|
|
34
|
+
tags.push({ name: "Prompts", operations: promptOps });
|
|
35
|
+
// Shared schema definitions from $defs
|
|
36
|
+
const schemas = {};
|
|
37
|
+
if (spec.$defs) {
|
|
38
|
+
for (const [name, schema] of Object.entries(spec.$defs)) {
|
|
39
|
+
schemas[name] = convertSchema(schema, name);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
info: {
|
|
44
|
+
title: spec.server.name,
|
|
45
|
+
version: spec.server.version,
|
|
46
|
+
description: spec.description,
|
|
47
|
+
},
|
|
48
|
+
servers: spec.transport?.url ? [{ url: spec.transport.url }] : [],
|
|
49
|
+
tags,
|
|
50
|
+
operations: allOps,
|
|
51
|
+
schemas,
|
|
52
|
+
securitySchemes: {},
|
|
53
|
+
webhooks: [],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// ── Tool → Operation ──────────────────────────────────────────────────
|
|
57
|
+
function toolToOperation(tool, connection) {
|
|
58
|
+
const group = tool["x-sourcey-group"];
|
|
59
|
+
const inputSchema = convertSchema(tool.inputSchema);
|
|
60
|
+
const outputSchema = tool.outputSchema ? convertSchema(tool.outputSchema) : undefined;
|
|
61
|
+
// Flat parameters from top-level inputSchema properties
|
|
62
|
+
const parameters = flattenInputSchema(tool.inputSchema);
|
|
63
|
+
// Only include requestBody for nested/complex schemas
|
|
64
|
+
const requestBody = hasNestedProperties(tool.inputSchema) ? {
|
|
65
|
+
required: true,
|
|
66
|
+
content: { "application/json": { schema: inputSchema } },
|
|
67
|
+
} : undefined;
|
|
68
|
+
return {
|
|
69
|
+
operationId: tool.name,
|
|
70
|
+
summary: tool.title ?? tool.name,
|
|
71
|
+
description: tool.description,
|
|
72
|
+
method: "tool",
|
|
73
|
+
path: tool.name,
|
|
74
|
+
tags: [group ?? "Tools"],
|
|
75
|
+
parameters,
|
|
76
|
+
requestBody,
|
|
77
|
+
responses: [],
|
|
78
|
+
security: [],
|
|
79
|
+
deprecated: false,
|
|
80
|
+
codeSamples: generateToolSamples(tool, inputSchema),
|
|
81
|
+
mcpExtras: {
|
|
82
|
+
type: "tool",
|
|
83
|
+
annotations: tool.annotations ? {
|
|
84
|
+
readOnlyHint: tool.annotations.readOnlyHint,
|
|
85
|
+
destructiveHint: tool.annotations.destructiveHint,
|
|
86
|
+
idempotentHint: tool.annotations.idempotentHint,
|
|
87
|
+
openWorldHint: tool.annotations.openWorldHint,
|
|
88
|
+
} : undefined,
|
|
89
|
+
outputSchema,
|
|
90
|
+
connection,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// ── Resource → Operation ──────────────────────────────────────────────
|
|
95
|
+
function resourceToOperation(resource, connection) {
|
|
96
|
+
const group = resource["x-sourcey-group"];
|
|
97
|
+
return {
|
|
98
|
+
operationId: slugify(resource.name),
|
|
99
|
+
summary: resource.name,
|
|
100
|
+
description: resource.description,
|
|
101
|
+
method: "resource",
|
|
102
|
+
path: resource.uri,
|
|
103
|
+
tags: [group ?? "Resources"],
|
|
104
|
+
parameters: [],
|
|
105
|
+
responses: [],
|
|
106
|
+
security: [],
|
|
107
|
+
deprecated: false,
|
|
108
|
+
codeSamples: generateResourceSamples(resource),
|
|
109
|
+
mcpExtras: {
|
|
110
|
+
type: "resource",
|
|
111
|
+
connection,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// ── Resource Template → Operation ─────────────────────────────────────
|
|
116
|
+
function resourceTemplateToOperation(template, connection) {
|
|
117
|
+
const group = template["x-sourcey-group"];
|
|
118
|
+
return {
|
|
119
|
+
operationId: slugify(template.name),
|
|
120
|
+
summary: template.name,
|
|
121
|
+
description: template.description,
|
|
122
|
+
method: "resource",
|
|
123
|
+
path: template.uriTemplate,
|
|
124
|
+
tags: [group ?? "Resources"],
|
|
125
|
+
parameters: extractUriTemplateParams(template.uriTemplate),
|
|
126
|
+
responses: [],
|
|
127
|
+
security: [],
|
|
128
|
+
deprecated: false,
|
|
129
|
+
codeSamples: generateResourceSamples({ uri: template.uriTemplate, name: template.name }),
|
|
130
|
+
mcpExtras: {
|
|
131
|
+
type: "resource",
|
|
132
|
+
connection,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// ── Prompt → Operation ────────────────────────────────────────────────
|
|
137
|
+
function promptToOperation(prompt, connection) {
|
|
138
|
+
const group = prompt["x-sourcey-group"];
|
|
139
|
+
const parameters = (prompt.arguments ?? []).map(arg => ({
|
|
140
|
+
name: arg.name,
|
|
141
|
+
in: "argument",
|
|
142
|
+
description: arg.description,
|
|
143
|
+
required: arg.required ?? false,
|
|
144
|
+
deprecated: false,
|
|
145
|
+
schema: { type: "string" },
|
|
146
|
+
}));
|
|
147
|
+
return {
|
|
148
|
+
operationId: prompt.name,
|
|
149
|
+
summary: prompt.name,
|
|
150
|
+
description: prompt.description,
|
|
151
|
+
method: "prompt",
|
|
152
|
+
path: prompt.name,
|
|
153
|
+
tags: [group ?? "Prompts"],
|
|
154
|
+
parameters,
|
|
155
|
+
responses: [],
|
|
156
|
+
security: [],
|
|
157
|
+
deprecated: false,
|
|
158
|
+
codeSamples: generatePromptSamples(prompt),
|
|
159
|
+
mcpExtras: {
|
|
160
|
+
type: "prompt",
|
|
161
|
+
connection,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
// ── Schema conversion ─────────────────────────────────────────────────
|
|
166
|
+
function convertSchema(schema, name) {
|
|
167
|
+
const result = {};
|
|
168
|
+
if (name)
|
|
169
|
+
result.name = name;
|
|
170
|
+
if (schema.type)
|
|
171
|
+
result.type = schema.type;
|
|
172
|
+
if (schema.format)
|
|
173
|
+
result.format = schema.format;
|
|
174
|
+
if (schema.title)
|
|
175
|
+
result.title = schema.title;
|
|
176
|
+
if (schema.description)
|
|
177
|
+
result.description = schema.description;
|
|
178
|
+
if (schema.default !== undefined)
|
|
179
|
+
result.default = schema.default;
|
|
180
|
+
if (schema.enum)
|
|
181
|
+
result.enum = schema.enum;
|
|
182
|
+
if (schema.const !== undefined)
|
|
183
|
+
result.const = schema.const;
|
|
184
|
+
// Object
|
|
185
|
+
if (schema.properties) {
|
|
186
|
+
result.properties = {};
|
|
187
|
+
for (const [key, prop] of Object.entries(schema.properties)) {
|
|
188
|
+
result.properties[key] = convertSchema(prop, key);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (schema.additionalProperties !== undefined) {
|
|
192
|
+
result.additionalProperties = typeof schema.additionalProperties === "boolean"
|
|
193
|
+
? schema.additionalProperties
|
|
194
|
+
: convertSchema(schema.additionalProperties);
|
|
195
|
+
}
|
|
196
|
+
if (schema.required)
|
|
197
|
+
result.required = schema.required;
|
|
198
|
+
// Array — handle JsonSchema.items being JsonSchema | JsonSchema[]
|
|
199
|
+
if (schema.items) {
|
|
200
|
+
if (Array.isArray(schema.items)) {
|
|
201
|
+
result.items = schema.items.length === 1
|
|
202
|
+
? convertSchema(schema.items[0])
|
|
203
|
+
: { oneOf: schema.items.map(s => convertSchema(s)) };
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
result.items = convertSchema(schema.items);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (schema.minItems !== undefined)
|
|
210
|
+
result.minItems = schema.minItems;
|
|
211
|
+
if (schema.maxItems !== undefined)
|
|
212
|
+
result.maxItems = schema.maxItems;
|
|
213
|
+
if (schema.uniqueItems !== undefined)
|
|
214
|
+
result.uniqueItems = schema.uniqueItems;
|
|
215
|
+
// Numeric
|
|
216
|
+
if (schema.minimum !== undefined)
|
|
217
|
+
result.minimum = schema.minimum;
|
|
218
|
+
if (schema.maximum !== undefined)
|
|
219
|
+
result.maximum = schema.maximum;
|
|
220
|
+
if (schema.exclusiveMinimum !== undefined)
|
|
221
|
+
result.exclusiveMinimum = schema.exclusiveMinimum;
|
|
222
|
+
if (schema.exclusiveMaximum !== undefined)
|
|
223
|
+
result.exclusiveMaximum = schema.exclusiveMaximum;
|
|
224
|
+
if (schema.multipleOf !== undefined)
|
|
225
|
+
result.multipleOf = schema.multipleOf;
|
|
226
|
+
// String
|
|
227
|
+
if (schema.minLength !== undefined)
|
|
228
|
+
result.minLength = schema.minLength;
|
|
229
|
+
if (schema.maxLength !== undefined)
|
|
230
|
+
result.maxLength = schema.maxLength;
|
|
231
|
+
if (schema.pattern)
|
|
232
|
+
result.pattern = schema.pattern;
|
|
233
|
+
// Composition
|
|
234
|
+
if (schema.allOf)
|
|
235
|
+
result.allOf = schema.allOf.map((s) => convertSchema(s));
|
|
236
|
+
if (schema.anyOf)
|
|
237
|
+
result.anyOf = schema.anyOf.map((s) => convertSchema(s));
|
|
238
|
+
if (schema.oneOf)
|
|
239
|
+
result.oneOf = schema.oneOf.map((s) => convertSchema(s));
|
|
240
|
+
if (schema.not)
|
|
241
|
+
result.not = convertSchema(schema.not);
|
|
242
|
+
// Examples
|
|
243
|
+
if (schema.examples)
|
|
244
|
+
result.examples = schema.examples;
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
// ── Helpers ───────────────────────────────────────────────────────────
|
|
248
|
+
function flattenInputSchema(schema) {
|
|
249
|
+
if (!schema.properties)
|
|
250
|
+
return [];
|
|
251
|
+
const required = new Set(schema.required ?? []);
|
|
252
|
+
return Object.entries(schema.properties).map(([name, prop]) => ({
|
|
253
|
+
name,
|
|
254
|
+
in: "argument",
|
|
255
|
+
description: prop.description,
|
|
256
|
+
required: required.has(name),
|
|
257
|
+
deprecated: false,
|
|
258
|
+
schema: convertSchema(prop),
|
|
259
|
+
example: prop.default,
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
262
|
+
function hasNestedProperties(schema) {
|
|
263
|
+
if (!schema.properties)
|
|
264
|
+
return false;
|
|
265
|
+
return Object.values(schema.properties).some((prop) => {
|
|
266
|
+
if (prop.type === "object" && prop.properties)
|
|
267
|
+
return true;
|
|
268
|
+
if (prop.type === "array" && prop.items && !Array.isArray(prop.items) && prop.items.type === "object")
|
|
269
|
+
return true;
|
|
270
|
+
if (prop.allOf || prop.anyOf || prop.oneOf)
|
|
271
|
+
return true;
|
|
272
|
+
return false;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
function extractUriTemplateParams(uriTemplate) {
|
|
276
|
+
const matches = uriTemplate.match(/\{([^}]+)\}/g);
|
|
277
|
+
if (!matches)
|
|
278
|
+
return [];
|
|
279
|
+
return matches.map(m => ({
|
|
280
|
+
name: m.slice(1, -1),
|
|
281
|
+
in: "path",
|
|
282
|
+
required: true,
|
|
283
|
+
deprecated: false,
|
|
284
|
+
schema: { type: "string" },
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
function slugify(name) {
|
|
288
|
+
return name.replace(/[^a-z0-9]+/gi, "-").toLowerCase();
|
|
289
|
+
}
|
|
290
|
+
// ── Code sample generation ────────────────────────────────────────────
|
|
291
|
+
function generateToolSamples(tool, inputSchema) {
|
|
292
|
+
const example = inputSchema.properties
|
|
293
|
+
? generateExample(inputSchema)
|
|
294
|
+
: {};
|
|
295
|
+
const exampleJson = JSON.stringify(example, null, 2);
|
|
296
|
+
const indented = exampleJson.split("\n").map((line, i) => i === 0 ? line : " " + line).join("\n");
|
|
297
|
+
return [
|
|
298
|
+
{
|
|
299
|
+
lang: "json",
|
|
300
|
+
label: "JSON-RPC",
|
|
301
|
+
source: `{
|
|
302
|
+
"jsonrpc": "2.0",
|
|
303
|
+
"method": "tools/call",
|
|
304
|
+
"params": {
|
|
305
|
+
"name": "${tool.name}",
|
|
306
|
+
"arguments": ${indented}
|
|
307
|
+
}
|
|
308
|
+
}`,
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
lang: "typescript",
|
|
312
|
+
label: "TypeScript",
|
|
313
|
+
source: `const result = await client.callTool("${tool.name}", ${exampleJson});`,
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
lang: "python",
|
|
317
|
+
label: "Python",
|
|
318
|
+
source: `result = await session.call_tool("${tool.name}", arguments=${exampleJson})`,
|
|
319
|
+
},
|
|
320
|
+
];
|
|
321
|
+
}
|
|
322
|
+
function generateResourceSamples(resource) {
|
|
323
|
+
return [
|
|
324
|
+
{
|
|
325
|
+
lang: "json",
|
|
326
|
+
label: "JSON-RPC",
|
|
327
|
+
source: `{
|
|
328
|
+
"jsonrpc": "2.0",
|
|
329
|
+
"method": "resources/read",
|
|
330
|
+
"params": {
|
|
331
|
+
"uri": "${resource.uri}"
|
|
332
|
+
}
|
|
333
|
+
}`,
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
lang: "typescript",
|
|
337
|
+
label: "TypeScript",
|
|
338
|
+
source: `const result = await client.readResource("${resource.uri}");`,
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
lang: "python",
|
|
342
|
+
label: "Python",
|
|
343
|
+
source: `result = await session.read_resource("${resource.uri}")`,
|
|
344
|
+
},
|
|
345
|
+
];
|
|
346
|
+
}
|
|
347
|
+
function generatePromptSamples(prompt) {
|
|
348
|
+
const args = (prompt.arguments ?? []);
|
|
349
|
+
const exampleArgs = Object.fromEntries(args.map((a) => [a.name, `<${a.name}>`]));
|
|
350
|
+
const argsJson = JSON.stringify(exampleArgs, null, 2);
|
|
351
|
+
const indented = argsJson.split("\n").map((line, i) => i === 0 ? line : " " + line).join("\n");
|
|
352
|
+
const tsArgs = args.map((a) => ` ${a.name}: "<${a.name}>",`).join("\n");
|
|
353
|
+
const pyArgs = args.map((a) => ` "${a.name}": "<${a.name}>",`).join("\n");
|
|
354
|
+
return [
|
|
355
|
+
{
|
|
356
|
+
lang: "json",
|
|
357
|
+
label: "JSON-RPC",
|
|
358
|
+
source: `{
|
|
359
|
+
"jsonrpc": "2.0",
|
|
360
|
+
"method": "prompts/get",
|
|
361
|
+
"params": {
|
|
362
|
+
"name": "${prompt.name}",
|
|
363
|
+
"arguments": ${indented}
|
|
364
|
+
}
|
|
365
|
+
}`,
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
lang: "typescript",
|
|
369
|
+
label: "TypeScript",
|
|
370
|
+
source: args.length
|
|
371
|
+
? `const result = await client.getPrompt("${prompt.name}", {\n${tsArgs}\n});`
|
|
372
|
+
: `const result = await client.getPrompt("${prompt.name}");`,
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
lang: "python",
|
|
376
|
+
label: "Python",
|
|
377
|
+
source: args.length
|
|
378
|
+
? `result = await session.get_prompt("${prompt.name}", arguments={\n${pyArgs}\n})`
|
|
379
|
+
: `result = await session.get_prompt("${prompt.name}")`,
|
|
380
|
+
},
|
|
381
|
+
];
|
|
382
|
+
}
|
|
@@ -16,10 +16,12 @@ export interface SearchEntry {
|
|
|
16
16
|
tab: string;
|
|
17
17
|
/** Category for grouping results */
|
|
18
18
|
category: string;
|
|
19
|
+
/** Featured in default search results */
|
|
20
|
+
featured?: boolean;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Build a search index from specs and markdown pages.
|
|
22
24
|
* Returns a JSON string ready to write to disk.
|
|
23
25
|
*/
|
|
24
|
-
export declare function buildSearchIndex(specs: Map<string, NormalizedSpec>, pages: Map<string, MarkdownPage[]>, navigation: SiteNavigation, assetBase?: string): string;
|
|
26
|
+
export declare function buildSearchIndex(specs: Map<string, NormalizedSpec>, pages: Map<string, MarkdownPage[]>, navigation: SiteNavigation, assetBase?: string, featuredSlugs?: string[]): string;
|
|
25
27
|
//# sourceMappingURL=search-indexer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAClC,UAAU,EAAE,cAAc,EAC1B,SAAS,SAAM,EACf,aAAa,GAAE,MAAM,EAAO,GAC3B,MAAM,CAoER"}
|
|
@@ -6,8 +6,9 @@ import { htmlId } from "../utils/html-id.js";
|
|
|
6
6
|
* Build a search index from specs and markdown pages.
|
|
7
7
|
* Returns a JSON string ready to write to disk.
|
|
8
8
|
*/
|
|
9
|
-
export function buildSearchIndex(specs, pages, navigation, assetBase = "/") {
|
|
9
|
+
export function buildSearchIndex(specs, pages, navigation, assetBase = "/", featuredSlugs = []) {
|
|
10
10
|
const base = assetBase.endsWith("/") ? assetBase : assetBase + "/";
|
|
11
|
+
const featuredSet = new Set(featuredSlugs);
|
|
11
12
|
const entries = [];
|
|
12
13
|
// Index OpenAPI specs
|
|
13
14
|
for (const [tabSlug, spec] of specs) {
|
|
@@ -43,19 +44,22 @@ export function buildSearchIndex(specs, pages, navigation, assetBase = "/") {
|
|
|
43
44
|
const tabLabel = tab?.label ?? tabSlug;
|
|
44
45
|
for (const page of tabPages) {
|
|
45
46
|
// Page itself
|
|
47
|
+
const pageBase = tabSlug ? `${base}${tabSlug}/` : base;
|
|
48
|
+
const isFeatured = featuredSet.has(page.slug);
|
|
46
49
|
entries.push({
|
|
47
50
|
title: page.title,
|
|
48
51
|
content: page.description || stripHtml(page.html).slice(0, 200),
|
|
49
|
-
url: `${
|
|
52
|
+
url: `${pageBase}${page.slug}.html`,
|
|
50
53
|
tab: tabLabel,
|
|
51
54
|
category: "Pages",
|
|
55
|
+
...(isFeatured && { featured: true }),
|
|
52
56
|
});
|
|
53
57
|
// Headings within page
|
|
54
58
|
for (const heading of page.headings) {
|
|
55
59
|
entries.push({
|
|
56
60
|
title: heading.text,
|
|
57
61
|
content: `${page.title} — ${heading.text}`,
|
|
58
|
-
url: `${
|
|
62
|
+
url: `${pageBase}${page.slug}.html#${heading.id}`,
|
|
59
63
|
tab: tabLabel,
|
|
60
64
|
category: "Sections",
|
|
61
65
|
});
|
package/dist/core/types.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export interface NormalizedTag {
|
|
|
51
51
|
/** Vendor extension: hide this tag from navigation */
|
|
52
52
|
hidden?: boolean;
|
|
53
53
|
}
|
|
54
|
-
export type HttpMethod = "get" | "post" | "put" | "delete" | "patch" | "options" | "head" | "trace";
|
|
54
|
+
export type HttpMethod = "get" | "post" | "put" | "delete" | "patch" | "options" | "head" | "trace" | "tool" | "resource" | "prompt";
|
|
55
55
|
export interface NormalizedOperation {
|
|
56
56
|
operationId?: string;
|
|
57
57
|
summary?: string;
|
|
@@ -71,10 +71,34 @@ export interface NormalizedOperation {
|
|
|
71
71
|
hidden?: boolean;
|
|
72
72
|
/** Vendor extension: custom code samples */
|
|
73
73
|
codeSamples?: CodeSample[];
|
|
74
|
+
/** MCP-specific rendering data (undefined for OpenAPI operations) */
|
|
75
|
+
mcpExtras?: McpOperationExtras;
|
|
76
|
+
}
|
|
77
|
+
export interface McpOperationExtras {
|
|
78
|
+
type: "tool" | "resource" | "prompt";
|
|
79
|
+
annotations?: {
|
|
80
|
+
readOnlyHint?: boolean;
|
|
81
|
+
destructiveHint?: boolean;
|
|
82
|
+
idempotentHint?: boolean;
|
|
83
|
+
openWorldHint?: boolean;
|
|
84
|
+
};
|
|
85
|
+
outputSchema?: NormalizedSchema;
|
|
86
|
+
connection?: McpConnectionInfo;
|
|
87
|
+
}
|
|
88
|
+
export interface McpConnectionInfo {
|
|
89
|
+
transport?: {
|
|
90
|
+
type: string;
|
|
91
|
+
command?: string;
|
|
92
|
+
args?: string[];
|
|
93
|
+
url?: string;
|
|
94
|
+
};
|
|
95
|
+
serverName: string;
|
|
96
|
+
mcpVersion?: string;
|
|
97
|
+
capabilities?: Record<string, unknown>;
|
|
74
98
|
}
|
|
75
99
|
export interface NormalizedParameter {
|
|
76
100
|
name: string;
|
|
77
|
-
in: "query" | "header" | "path" | "cookie";
|
|
101
|
+
in: "query" | "header" | "path" | "cookie" | "argument";
|
|
78
102
|
description?: string;
|
|
79
103
|
required: boolean;
|
|
80
104
|
deprecated: boolean;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAID,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/dev-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkY7E"}
|