stack-scribe-mcp 0.1.1 → 0.1.2
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/icons.d.ts +7 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +59 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +11 -20
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +250 -2944
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +11 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +335 -0
- package/dist/layout.js.map +1 -0
- package/dist/node-type-resolution.d.ts +4 -0
- package/dist/node-type-resolution.d.ts.map +1 -0
- package/dist/node-type-resolution.js +125 -0
- package/dist/node-type-resolution.js.map +1 -0
- package/dist/node-types.d.ts +6 -0
- package/dist/node-types.d.ts.map +1 -0
- package/dist/node-types.js +1628 -0
- package/dist/node-types.js.map +1 -0
- package/dist/renderer.d.ts +9 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +360 -0
- package/dist/renderer.js.map +1 -0
- package/dist/schema.d.ts +282 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +70 -0
- package/dist/schema.js.map +1 -0
- package/dist/validator.d.ts +14 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +132 -0
- package/dist/validator.js.map +1 -0
- package/package.json +3 -4
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NodeType } from "./node-types.js";
|
|
2
|
+
export declare const fallbackIconSvg: string;
|
|
3
|
+
export declare function getIconsDirectory(): string;
|
|
4
|
+
export declare function getIconPath(type: NodeType | string): string | undefined;
|
|
5
|
+
export declare function getIcon(type: NodeType | string): string;
|
|
6
|
+
export declare function clearIconCache(): void;
|
|
7
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAwBhD,eAAO,MAAM,eAAe,QAKlB,CAAC;AAEX,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAOvE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAkBvD;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/icons.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { resolveNodeType } from "./node-type-resolution.js";
|
|
5
|
+
import { nodeTypeToIcon } from "./node-types.js";
|
|
6
|
+
const moduleDir = fileURLToPath(new URL(".", import.meta.url));
|
|
7
|
+
const iconDirectoryCandidates = [
|
|
8
|
+
resolve(moduleDir, "icons"),
|
|
9
|
+
resolve(moduleDir, "icons", "icons"),
|
|
10
|
+
resolve(moduleDir, "..", "icons"),
|
|
11
|
+
];
|
|
12
|
+
function resolveIconsDirectory() {
|
|
13
|
+
for (const candidate of iconDirectoryCandidates) {
|
|
14
|
+
if (existsSync(candidate)) {
|
|
15
|
+
return candidate;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return iconDirectoryCandidates[0];
|
|
19
|
+
}
|
|
20
|
+
const iconsDir = resolveIconsDirectory();
|
|
21
|
+
const iconCache = new Map();
|
|
22
|
+
export const fallbackIconSvg = [
|
|
23
|
+
'<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" role="img" aria-label="fallback icon">',
|
|
24
|
+
'<rect x="8" y="8" width="48" height="48" rx="10" fill="#f3f4f6" stroke="#6b7280" stroke-width="2"/>',
|
|
25
|
+
'<path d="M20 24h24M20 32h24M20 40h16" stroke="#6b7280" stroke-width="2.5" stroke-linecap="round"/>',
|
|
26
|
+
'</svg>',
|
|
27
|
+
].join("");
|
|
28
|
+
export function getIconsDirectory() {
|
|
29
|
+
return iconsDir;
|
|
30
|
+
}
|
|
31
|
+
export function getIconPath(type) {
|
|
32
|
+
const resolvedType = resolveNodeType(type);
|
|
33
|
+
if (!resolvedType) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return resolve(iconsDir, nodeTypeToIcon[resolvedType]);
|
|
37
|
+
}
|
|
38
|
+
export function getIcon(type) {
|
|
39
|
+
const iconPath = getIconPath(type);
|
|
40
|
+
if (!iconPath) {
|
|
41
|
+
return fallbackIconSvg;
|
|
42
|
+
}
|
|
43
|
+
const cached = iconCache.get(iconPath);
|
|
44
|
+
if (cached) {
|
|
45
|
+
return cached;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const svg = readFileSync(iconPath, "utf8");
|
|
49
|
+
iconCache.set(iconPath, svg);
|
|
50
|
+
return svg;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return fallbackIconSvg;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function clearIconCache() {
|
|
57
|
+
iconCache.clear();
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,uBAAuB,GAA6B;IACxD,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,SAAS,qBAAqB;IAC5B,KAAK,MAAM,SAAS,IAAI,uBAAuB,EAAE,CAAC;QAChD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,2HAA2H;IAC3H,qGAAqG;IACrG,oGAAoG;IACpG,QAAQ;CACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,UAAU,iBAAiB;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAuB;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAuB;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
interface ValidationError {
|
|
4
|
-
path: string;
|
|
5
|
-
message: string;
|
|
6
|
-
}
|
|
7
|
-
interface ValidationResult {
|
|
8
|
-
valid: boolean;
|
|
9
|
-
errors: ValidationError[];
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
12
3
|
declare const RENDER_ARTIFACT_MIME_TYPE = "image/svg+xml";
|
|
13
|
-
type DiagramJsonSchema = Record<string, unknown>;
|
|
4
|
+
export type DiagramJsonSchema = Record<string, unknown>;
|
|
14
5
|
interface RenderArtifact {
|
|
15
6
|
createdAt: number;
|
|
16
7
|
height: number;
|
|
@@ -19,17 +10,17 @@ interface RenderArtifact {
|
|
|
19
10
|
uri: string;
|
|
20
11
|
width: number;
|
|
21
12
|
}
|
|
22
|
-
interface RenderDiagramArtifact extends RenderArtifact {
|
|
13
|
+
export interface RenderDiagramArtifact extends RenderArtifact {
|
|
23
14
|
expiresAt: string;
|
|
24
15
|
}
|
|
25
|
-
declare function getDiagramJsonSchema(): DiagramJsonSchema;
|
|
26
|
-
declare function validateDiagram(input: unknown): ValidationResult;
|
|
27
|
-
declare function renderDiagramFromInput(input: unknown): Promise<{
|
|
16
|
+
export declare function getDiagramJsonSchema(): DiagramJsonSchema;
|
|
17
|
+
export declare function validateDiagram(input: unknown): import("./validator.js").ValidationResult;
|
|
18
|
+
export declare function renderDiagramFromInput(input: unknown): Promise<{
|
|
28
19
|
svg: string;
|
|
29
20
|
width: number;
|
|
30
21
|
height: number;
|
|
31
22
|
}>;
|
|
32
|
-
declare function createServer(): McpServer;
|
|
33
|
-
declare function startServer(): Promise<McpServer>;
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
export declare function createServer(): McpServer;
|
|
24
|
+
export declare function startServer(): Promise<McpServer>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AActF,QAAA,MAAM,yBAAyB,kBAAkB,CAAC;AAyClD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,UAAU,cAAc;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,yBAAyB,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,SAAS,EAAE,MAAM,CAAC;CAClB;AAgED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,6CAE7C;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAUpH;AAED,wBAAgB,YAAY,IAAI,SAAS,CAmMxC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,CAKtD"}
|