mcp-stitch 0.1.3 → 0.1.5
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 +53 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/packageInfo.d.ts +6 -0
- package/dist/packageInfo.d.ts.map +1 -0
- package/dist/packageInfo.js +18 -0
- package/dist/packageInfo.js.map +1 -0
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +27 -0
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/stitchExport.d.ts.map +1 -1
- package/dist/tools/stitchExport.js +419 -6
- package/dist/tools/stitchExport.js.map +1 -1
- package/docs/stitch-tools.md +33 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# mcp-stitch
|
|
2
2
|
|
|
3
|
-
MCP server for Google Stitch. It
|
|
3
|
+
MCP server for Google Stitch. It lets agents generate and retrieve Stitch screens, then export them into local, versioned implementation bundles with HTML, screenshots, linked assets, prompts, source metadata, and build guidance.
|
|
4
4
|
|
|
5
5
|
## Contents
|
|
6
6
|
|
|
@@ -9,6 +9,7 @@ MCP server for Google Stitch. It exposes Stitch project, screen, design-system,
|
|
|
9
9
|
- [Requirements](#requirements)
|
|
10
10
|
- [Install](#install)
|
|
11
11
|
- [Environment](#environment)
|
|
12
|
+
- [Agent Prompts](#agent-prompts)
|
|
12
13
|
- [VS Code Setup](#vs-code-setup)
|
|
13
14
|
- [Cursor Setup](#cursor-setup)
|
|
14
15
|
- [Continue Setup](#continue-setup)
|
|
@@ -51,6 +52,8 @@ npx -y mcp-stitch
|
|
|
51
52
|
|
|
52
53
|
You normally do not run that command directly in a terminal. Add it to your MCP client configuration as shown below.
|
|
53
54
|
|
|
55
|
+
After the server starts, ask your agent to call `stitch_info` to confirm the installed package version, or `stitch_status` to check required environment variables.
|
|
56
|
+
|
|
54
57
|
## Environment
|
|
55
58
|
|
|
56
59
|
Required:
|
|
@@ -68,6 +71,49 @@ Optional:
|
|
|
68
71
|
- `STITCH_TIMEOUT_MS`: defaults to `180000`
|
|
69
72
|
- `STITCH_MAX_RETRIES`: defaults to `2`
|
|
70
73
|
|
|
74
|
+
## Agent Prompts
|
|
75
|
+
|
|
76
|
+
Use prompts like these after your MCP client is configured.
|
|
77
|
+
|
|
78
|
+
Create a new Stitch screen and export a local build bundle:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
Use mcp-stitch to create a desktop Stitch screen for a guest comments page.
|
|
82
|
+
After it finishes, export the screen into a local artifact bundle with HTML, screenshot, linked assets, and rewritten local asset URLs.
|
|
83
|
+
Use artifactPath ".artifacts/stitch/guest-comments" and versioned true.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Export assets from an existing Stitch screen:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
Use mcp-stitch to export screen {screenId} from project {projectId}.
|
|
90
|
+
Save it to ".artifacts/stitch/{screen-name}" with versioned true.
|
|
91
|
+
Include the HTML, screenshot, linked assets, and rewrite the HTML asset URLs to local files.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Find an existing screen first, then export it:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Use mcp-stitch to list screens in project {projectId}.
|
|
98
|
+
Find the screen whose title includes "{title or keyword}".
|
|
99
|
+
Then export that screen as a local build bundle with includeLinkedAssets true, rewriteHtmlAssetUrls true, and versioned true.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Direct tool arguments for the export step:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"projectId": "projects-or-bare-project-id",
|
|
107
|
+
"screenId": "screen-id-or-title-fragment",
|
|
108
|
+
"artifactPath": ".artifacts/stitch/guest-comments",
|
|
109
|
+
"versioned": true,
|
|
110
|
+
"includeHtml": true,
|
|
111
|
+
"includeScreenshot": true,
|
|
112
|
+
"includeLinkedAssets": true,
|
|
113
|
+
"rewriteHtmlAssetUrls": true
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
71
117
|
## VS Code Setup
|
|
72
118
|
|
|
73
119
|
VS Code can load MCP servers from a workspace `.vscode/mcp.json` file or from your user MCP configuration.
|
|
@@ -377,6 +423,7 @@ Keep this in your local Codex config if it contains a real API key.
|
|
|
377
423
|
## Tools
|
|
378
424
|
|
|
379
425
|
- `stitch_status`
|
|
426
|
+
- `stitch_info`
|
|
380
427
|
- `stitch_list_projects`
|
|
381
428
|
- `stitch_get_project`
|
|
382
429
|
- `stitch_create_project`
|
|
@@ -395,11 +442,16 @@ Keep this in your local Codex config if it contains a real API key.
|
|
|
395
442
|
|
|
396
443
|
Mutating tools require `confirm: true`.
|
|
397
444
|
|
|
445
|
+
`stitch_export_screen_artifact` can also download build handoff assets into the artifact bundle. By default it saves `screen.html` and `screenshot.*` when Stitch provides those URLs. Set `includeLinkedAssets: true` to download safe HTTPS assets referenced by the HTML into `assets/`, and `rewriteHtmlAssetUrls: true` to point the saved HTML at those local files.
|
|
446
|
+
|
|
447
|
+
Set `versioned: true` to keep repeated exports or variations in nested folders such as `.artifacts/stitch/comment-section/v001`, then `v002`, while keeping each screen's assets together.
|
|
448
|
+
|
|
398
449
|
## Safety
|
|
399
450
|
|
|
400
451
|
- Secrets are read from environment variables and are not printed by `stitch_status`.
|
|
401
452
|
- `STITCH_API_BASE_URL` defaults to Google's Stitch MCP endpoint.
|
|
402
453
|
- Artifact export paths are constrained to `PROJECT_ROOT` or `STITCH_OUTPUT_DIR`.
|
|
454
|
+
- Linked asset export skips non-HTTPS and private/local hosts, and enforces count/size limits.
|
|
403
455
|
- Mutating Stitch tools require `confirm: true`.
|
|
404
456
|
|
|
405
457
|
Do not commit `.env`, generated artifact bundles, or Stitch output directories. This repo's `.gitignore` excludes the common local output paths.
|
package/dist/index.js
CHANGED
|
@@ -7,9 +7,11 @@ import { registerStitchProjectTools } from "./tools/stitchProjects.js";
|
|
|
7
7
|
import { registerStitchScreenTools } from "./tools/stitchScreens.js";
|
|
8
8
|
import { registerStitchDesignSystemTools } from "./tools/stitchDesignSystems.js";
|
|
9
9
|
import { registerStitchExportTool } from "./tools/stitchExport.js";
|
|
10
|
+
import { getPackageInfo } from "./packageInfo.js";
|
|
11
|
+
const packageInfo = getPackageInfo();
|
|
10
12
|
const server = new McpServer({
|
|
11
|
-
name:
|
|
12
|
-
version:
|
|
13
|
+
name: packageInfo.name,
|
|
14
|
+
version: packageInfo.version,
|
|
13
15
|
});
|
|
14
16
|
registerStitchStatusTool(server);
|
|
15
17
|
registerStitchProjectTools(server);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CAC7B,CAAC,CAAC;AAEH,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACnC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAClC,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACxC,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAIjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageInfo.d.ts","sourceRoot":"","sources":["../src/packageInfo.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,cAAc,IAAI,WAAW,CAiB5C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
export function getPackageInfo() {
|
|
4
|
+
try {
|
|
5
|
+
const pkg = require("../package.json");
|
|
6
|
+
return {
|
|
7
|
+
name: typeof pkg.name === "string" ? pkg.name : "mcp-stitch",
|
|
8
|
+
version: typeof pkg.version === "string" ? pkg.version : "unknown",
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return {
|
|
13
|
+
name: "mcp-stitch",
|
|
14
|
+
version: "unknown",
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=packageInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageInfo.js","sourceRoot":"","sources":["../src/packageInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAO/C,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAGpC,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY;YAC5D,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QA4EzD"}
|
package/dist/tools/status.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { DEFAULT_STITCH_API_BASE_URL, getStitchConfig } from "../config/stitch.js";
|
|
4
|
+
import { getPackageInfo } from "../packageInfo.js";
|
|
4
5
|
function isConfigured(name) {
|
|
5
6
|
return Boolean(process.env[name]?.trim());
|
|
6
7
|
}
|
|
@@ -11,15 +12,41 @@ function optionalText(name, fallback) {
|
|
|
11
12
|
return isConfigured(name) ? "configured" : fallback;
|
|
12
13
|
}
|
|
13
14
|
export function registerStitchStatusTool(server) {
|
|
15
|
+
server.registerTool("stitch_info", {
|
|
16
|
+
description: "Reports the running mcp-stitch package name and version without checking Stitch API configuration.",
|
|
17
|
+
inputSchema: z.object({}),
|
|
18
|
+
}, async () => {
|
|
19
|
+
const packageInfo = getPackageInfo();
|
|
20
|
+
return {
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: "text",
|
|
24
|
+
text: [
|
|
25
|
+
"Stitch MCP info",
|
|
26
|
+
"",
|
|
27
|
+
`- name: ${packageInfo.name}`,
|
|
28
|
+
`- version: ${packageInfo.version}`,
|
|
29
|
+
"- transport: stdio",
|
|
30
|
+
"- package command: npx -y mcp-stitch",
|
|
31
|
+
].join("\n"),
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
});
|
|
14
36
|
server.registerTool("stitch_status", {
|
|
15
37
|
description: "Checks Stitch MCP setup and reports missing required, recommended, and optional environment variables without exposing secret values.",
|
|
16
38
|
inputSchema: z.object({}),
|
|
17
39
|
}, async () => {
|
|
18
40
|
const config = getStitchConfig();
|
|
19
41
|
const hasProjectRoot = isConfigured("PROJECT_ROOT");
|
|
42
|
+
const packageInfo = getPackageInfo();
|
|
20
43
|
const lines = [
|
|
21
44
|
"Stitch setup status",
|
|
22
45
|
"",
|
|
46
|
+
"Package:",
|
|
47
|
+
`- name: ${packageInfo.name}`,
|
|
48
|
+
`- version: ${packageInfo.version}`,
|
|
49
|
+
"",
|
|
23
50
|
"Required configuration:",
|
|
24
51
|
`- GOOGLE_API_KEY: ${configuredText("GOOGLE_API_KEY")}`,
|
|
25
52
|
"",
|
package/dist/tools/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stitchExport.d.ts","sourceRoot":"","sources":["../../src/tools/stitchExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"stitchExport.d.ts","sourceRoot":"","sources":["../../src/tools/stitchExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0iCpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QAuezD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
import { lstat, writeFile } from "node:fs/promises";
|
|
2
|
+
import { lstat, mkdir, readdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { getStitchConfig } from "../config/stitch.js";
|
|
@@ -23,6 +23,9 @@ const ARTIFACT_FILES = [
|
|
|
23
23
|
"manifest.json",
|
|
24
24
|
];
|
|
25
25
|
const DEFAULT_ARTIFACT_ROOT = ".artifacts/stitch";
|
|
26
|
+
const DEFAULT_MAX_LINKED_ASSETS = 50;
|
|
27
|
+
const DEFAULT_MAX_DOWNLOAD_BYTES = 25 * 1024 * 1024;
|
|
28
|
+
const VERSION_DIR_PATTERN = /^v(\d{3})$/;
|
|
26
29
|
function isSafeRelativePathInput(value) {
|
|
27
30
|
const trimmed = value.trim();
|
|
28
31
|
if (!trimmed)
|
|
@@ -46,6 +49,206 @@ function nowStamp() {
|
|
|
46
49
|
function toPrettyJson(value) {
|
|
47
50
|
return JSON.stringify(value, null, 2);
|
|
48
51
|
}
|
|
52
|
+
function safeUrl(url) {
|
|
53
|
+
try {
|
|
54
|
+
const parsed = new URL(url);
|
|
55
|
+
if (parsed.protocol !== "https:")
|
|
56
|
+
return null;
|
|
57
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
58
|
+
if (hostname === "localhost" ||
|
|
59
|
+
hostname.endsWith(".localhost") ||
|
|
60
|
+
hostname.endsWith(".local") ||
|
|
61
|
+
hostname === "0.0.0.0" ||
|
|
62
|
+
hostname === "127.0.0.1" ||
|
|
63
|
+
hostname === "::1" ||
|
|
64
|
+
hostname.startsWith("10.") ||
|
|
65
|
+
hostname.startsWith("192.168.") ||
|
|
66
|
+
/^172\.(1[6-9]|2\d|3[0-1])\./.test(hostname)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return parsed;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function extensionFromContentType(contentType) {
|
|
76
|
+
const normalized = contentType?.split(";")[0]?.trim().toLowerCase();
|
|
77
|
+
switch (normalized) {
|
|
78
|
+
case "text/html":
|
|
79
|
+
return ".html";
|
|
80
|
+
case "image/jpeg":
|
|
81
|
+
return ".jpg";
|
|
82
|
+
case "image/png":
|
|
83
|
+
return ".png";
|
|
84
|
+
case "image/webp":
|
|
85
|
+
return ".webp";
|
|
86
|
+
case "image/gif":
|
|
87
|
+
return ".gif";
|
|
88
|
+
case "image/svg+xml":
|
|
89
|
+
return ".svg";
|
|
90
|
+
case "image/avif":
|
|
91
|
+
return ".avif";
|
|
92
|
+
case "font/woff":
|
|
93
|
+
return ".woff";
|
|
94
|
+
case "font/woff2":
|
|
95
|
+
return ".woff2";
|
|
96
|
+
case "text/css":
|
|
97
|
+
return ".css";
|
|
98
|
+
case "application/javascript":
|
|
99
|
+
case "text/javascript":
|
|
100
|
+
return ".js";
|
|
101
|
+
default:
|
|
102
|
+
return ".bin";
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function extensionFromUrl(url) {
|
|
106
|
+
const extension = path.extname(url.pathname).toLowerCase();
|
|
107
|
+
return /^[a-z0-9.]{2,12}$/.test(extension) ? extension : "";
|
|
108
|
+
}
|
|
109
|
+
function fileNameWithExtension(stem, url, contentType) {
|
|
110
|
+
const extension = extensionFromUrl(url) || extensionFromContentType(contentType);
|
|
111
|
+
return `${stem}${extension}`;
|
|
112
|
+
}
|
|
113
|
+
function assetFileNameStem(prefix, index) {
|
|
114
|
+
return `${prefix}-${String(index).padStart(3, "0")}`;
|
|
115
|
+
}
|
|
116
|
+
function dedupeUrls(urls) {
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
const result = [];
|
|
119
|
+
for (const url of urls) {
|
|
120
|
+
if (seen.has(url))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(url);
|
|
123
|
+
result.push(url);
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
function extractLinkedAssetUrls(html, baseUrl) {
|
|
128
|
+
const candidates = [];
|
|
129
|
+
const attrPattern = /\b(?:src|href)=["']([^"']+)["']/gi;
|
|
130
|
+
const cssUrlPattern = /url\(["']?([^"')]+)["']?\)/gi;
|
|
131
|
+
for (const match of html.matchAll(attrPattern)) {
|
|
132
|
+
if (match[1])
|
|
133
|
+
candidates.push(match[1]);
|
|
134
|
+
}
|
|
135
|
+
for (const match of html.matchAll(cssUrlPattern)) {
|
|
136
|
+
if (match[1])
|
|
137
|
+
candidates.push(match[1]);
|
|
138
|
+
}
|
|
139
|
+
const urls = candidates
|
|
140
|
+
.map((candidate) => {
|
|
141
|
+
try {
|
|
142
|
+
return new URL(candidate, baseUrl).toString();
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
})
|
|
148
|
+
.filter((url) => Boolean(url))
|
|
149
|
+
.filter((url) => safeUrl(url) !== null);
|
|
150
|
+
return dedupeUrls(urls);
|
|
151
|
+
}
|
|
152
|
+
function isLikelyLinkedAsset(contentType) {
|
|
153
|
+
const normalized = contentType?.split(";")[0]?.trim().toLowerCase();
|
|
154
|
+
return Boolean(normalized &&
|
|
155
|
+
(normalized.startsWith("image/") ||
|
|
156
|
+
normalized.startsWith("font/") ||
|
|
157
|
+
normalized === "text/css" ||
|
|
158
|
+
normalized === "application/javascript" ||
|
|
159
|
+
normalized === "text/javascript"));
|
|
160
|
+
}
|
|
161
|
+
async function downloadUrl(options) {
|
|
162
|
+
const parsed = safeUrl(options.url);
|
|
163
|
+
if (!parsed) {
|
|
164
|
+
return {
|
|
165
|
+
asset: {
|
|
166
|
+
kind: options.kind,
|
|
167
|
+
sourceUrl: options.url,
|
|
168
|
+
status: "skipped",
|
|
169
|
+
reason: "Only safe https URLs are downloaded.",
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const response = await fetch(parsed);
|
|
175
|
+
const contentType = response.headers.get("content-type") ?? undefined;
|
|
176
|
+
const contentLength = response.headers.get("content-length");
|
|
177
|
+
if (!response.ok) {
|
|
178
|
+
return {
|
|
179
|
+
asset: {
|
|
180
|
+
kind: options.kind,
|
|
181
|
+
sourceUrl: options.url,
|
|
182
|
+
contentType,
|
|
183
|
+
status: "failed",
|
|
184
|
+
reason: `HTTP ${response.status}`,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
if (options.requireLinkedAssetType && !isLikelyLinkedAsset(contentType)) {
|
|
189
|
+
return {
|
|
190
|
+
asset: {
|
|
191
|
+
kind: options.kind,
|
|
192
|
+
sourceUrl: options.url,
|
|
193
|
+
contentType,
|
|
194
|
+
status: "skipped",
|
|
195
|
+
reason: "Response content type is not a linked asset type.",
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
if (contentLength && Number(contentLength) > options.maxBytes) {
|
|
200
|
+
return {
|
|
201
|
+
asset: {
|
|
202
|
+
kind: options.kind,
|
|
203
|
+
sourceUrl: options.url,
|
|
204
|
+
contentType,
|
|
205
|
+
status: "skipped",
|
|
206
|
+
reason: `Content length exceeds ${options.maxBytes} bytes.`,
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
211
|
+
if (arrayBuffer.byteLength > options.maxBytes) {
|
|
212
|
+
return {
|
|
213
|
+
asset: {
|
|
214
|
+
kind: options.kind,
|
|
215
|
+
sourceUrl: options.url,
|
|
216
|
+
contentType,
|
|
217
|
+
bytes: arrayBuffer.byteLength,
|
|
218
|
+
status: "skipped",
|
|
219
|
+
reason: `Downloaded content exceeds ${options.maxBytes} bytes.`,
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
224
|
+
const fileName = options.forcedFileName ?? fileNameWithExtension(options.fileNameStem, parsed, contentType);
|
|
225
|
+
const relativePath = path.join(options.relativeDir, fileName);
|
|
226
|
+
const outputPath = await prepareSafeOutputPath(options.baseRoot, relativePath);
|
|
227
|
+
await writeFile(outputPath, buffer);
|
|
228
|
+
return {
|
|
229
|
+
asset: {
|
|
230
|
+
kind: options.kind,
|
|
231
|
+
sourceUrl: options.url,
|
|
232
|
+
path: outputPath,
|
|
233
|
+
relativePath,
|
|
234
|
+
contentType,
|
|
235
|
+
bytes: buffer.byteLength,
|
|
236
|
+
status: "saved",
|
|
237
|
+
},
|
|
238
|
+
text: contentType?.startsWith("text/") ? buffer.toString("utf8") : undefined,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
return {
|
|
243
|
+
asset: {
|
|
244
|
+
kind: options.kind,
|
|
245
|
+
sourceUrl: options.url,
|
|
246
|
+
status: "failed",
|
|
247
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
49
252
|
function defaultArtifactName(screenId) {
|
|
50
253
|
const suffix = screenId ? sanitizeFileName(screenId) : "screen";
|
|
51
254
|
return `stitch-${suffix}-${nowStamp()}`;
|
|
@@ -82,6 +285,26 @@ async function getBaseRoot(configOutputDir) {
|
|
|
82
285
|
}
|
|
83
286
|
return { ok: true, baseRoot: path.resolve(configOutputDir), source: "STITCH_OUTPUT_DIR" };
|
|
84
287
|
}
|
|
288
|
+
async function nextVersionedArtifactPath(options) {
|
|
289
|
+
const basePath = await prepareSafeOutputPath(options.baseRoot, path.join(options.artifactPath, ".version-probe"));
|
|
290
|
+
const versionBaseDir = path.dirname(basePath);
|
|
291
|
+
await mkdir(versionBaseDir, { recursive: true });
|
|
292
|
+
let maxVersion = 0;
|
|
293
|
+
const entries = await readdir(versionBaseDir, { withFileTypes: true });
|
|
294
|
+
for (const entry of entries) {
|
|
295
|
+
if (!entry.isDirectory())
|
|
296
|
+
continue;
|
|
297
|
+
const match = entry.name.match(VERSION_DIR_PATTERN);
|
|
298
|
+
if (!match?.[1])
|
|
299
|
+
continue;
|
|
300
|
+
maxVersion = Math.max(maxVersion, Number(match[1]));
|
|
301
|
+
}
|
|
302
|
+
const version = `v${String(maxVersion + 1).padStart(3, "0")}`;
|
|
303
|
+
return {
|
|
304
|
+
artifactPath: path.join(options.artifactPath, version),
|
|
305
|
+
version,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
85
308
|
function defaultArtifactPath(payload, screenId) {
|
|
86
309
|
const screen = getScreen(payload);
|
|
87
310
|
const title = getString(screen, "title");
|
|
@@ -672,6 +895,14 @@ function createManifest(options) {
|
|
|
672
895
|
mode: options.outputMode,
|
|
673
896
|
},
|
|
674
897
|
paths: options.paths,
|
|
898
|
+
downloadedAssets: options.downloadedAssets,
|
|
899
|
+
version: options.versionInfo.enabled
|
|
900
|
+
? {
|
|
901
|
+
enabled: true,
|
|
902
|
+
baseArtifactPath: options.versionInfo.baseArtifactPath,
|
|
903
|
+
version: options.versionInfo.version,
|
|
904
|
+
}
|
|
905
|
+
: { enabled: false },
|
|
675
906
|
};
|
|
676
907
|
}
|
|
677
908
|
export function registerStitchExportTool(server) {
|
|
@@ -708,8 +939,47 @@ export function registerStitchExportTool(server) {
|
|
|
708
939
|
.describe("Legacy workspace-relative artifact bundle directory, for example exports/my-screen."),
|
|
709
940
|
rawGetScreenInput: z.record(z.string(), z.unknown()).optional(),
|
|
710
941
|
screenData: z.unknown().optional(),
|
|
942
|
+
versioned: z
|
|
943
|
+
.boolean()
|
|
944
|
+
.optional()
|
|
945
|
+
.default(false)
|
|
946
|
+
.describe("When true, writes into the next nested version folder such as artifactPath/v001, then v002."),
|
|
947
|
+
includeHtml: z
|
|
948
|
+
.boolean()
|
|
949
|
+
.optional()
|
|
950
|
+
.default(true)
|
|
951
|
+
.describe("Download the screen htmlCode.downloadUrl into screen.html when present."),
|
|
952
|
+
includeScreenshot: z
|
|
953
|
+
.boolean()
|
|
954
|
+
.optional()
|
|
955
|
+
.default(true)
|
|
956
|
+
.describe("Download the screen screenshot.downloadUrl into screenshot.* when present."),
|
|
957
|
+
includeLinkedAssets: z
|
|
958
|
+
.boolean()
|
|
959
|
+
.optional()
|
|
960
|
+
.default(false)
|
|
961
|
+
.describe("Download safe HTTPS assets referenced by the exported HTML into assets/."),
|
|
962
|
+
rewriteHtmlAssetUrls: z
|
|
963
|
+
.boolean()
|
|
964
|
+
.optional()
|
|
965
|
+
.default(false)
|
|
966
|
+
.describe("Rewrite saved screen.html to point at downloaded local asset files."),
|
|
967
|
+
maxLinkedAssets: z
|
|
968
|
+
.number()
|
|
969
|
+
.int()
|
|
970
|
+
.min(1)
|
|
971
|
+
.max(200)
|
|
972
|
+
.optional()
|
|
973
|
+
.default(DEFAULT_MAX_LINKED_ASSETS),
|
|
974
|
+
maxDownloadBytes: z
|
|
975
|
+
.number()
|
|
976
|
+
.int()
|
|
977
|
+
.min(1024)
|
|
978
|
+
.max(100 * 1024 * 1024)
|
|
979
|
+
.optional()
|
|
980
|
+
.default(DEFAULT_MAX_DOWNLOAD_BYTES),
|
|
711
981
|
},
|
|
712
|
-
}, async ({ screenId, projectId, artifactPath, artifactName, relativePath, rawGetScreenInput, screenData }) => {
|
|
982
|
+
}, async ({ screenId, projectId, artifactPath, artifactName, relativePath, rawGetScreenInput, screenData, versioned = false, includeHtml = true, includeScreenshot = true, includeLinkedAssets = false, rewriteHtmlAssetUrls = false, maxLinkedAssets = DEFAULT_MAX_LINKED_ASSETS, maxDownloadBytes = DEFAULT_MAX_DOWNLOAD_BYTES, }) => {
|
|
713
983
|
if (!screenData && !screenId && !rawGetScreenInput) {
|
|
714
984
|
return {
|
|
715
985
|
content: [
|
|
@@ -807,11 +1077,38 @@ export function registerStitchExportTool(server) {
|
|
|
807
1077
|
};
|
|
808
1078
|
}
|
|
809
1079
|
const outputMode = artifactPath || relativePath ? "artifactPath" : artifactName ? "artifactName" : "default";
|
|
810
|
-
const
|
|
1080
|
+
const baseRelativeDir = artifactPath ??
|
|
811
1081
|
relativePath ??
|
|
812
1082
|
(artifactName
|
|
813
1083
|
? path.join("exports", sanitizeFileName(artifactName))
|
|
814
1084
|
: defaultArtifactPath(payload, screenId));
|
|
1085
|
+
let relativeDir = baseRelativeDir;
|
|
1086
|
+
let versionInfo = { enabled: false };
|
|
1087
|
+
if (versioned) {
|
|
1088
|
+
try {
|
|
1089
|
+
const versionedPath = await nextVersionedArtifactPath({
|
|
1090
|
+
baseRoot: baseRootInfo.baseRoot,
|
|
1091
|
+
artifactPath: baseRelativeDir,
|
|
1092
|
+
});
|
|
1093
|
+
relativeDir = versionedPath.artifactPath;
|
|
1094
|
+
versionInfo = {
|
|
1095
|
+
enabled: true,
|
|
1096
|
+
baseArtifactPath: baseRelativeDir,
|
|
1097
|
+
version: versionedPath.version,
|
|
1098
|
+
};
|
|
1099
|
+
}
|
|
1100
|
+
catch (error) {
|
|
1101
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1102
|
+
return {
|
|
1103
|
+
content: [
|
|
1104
|
+
{
|
|
1105
|
+
type: "text",
|
|
1106
|
+
text: `Invalid versioned output path.\n\n${message}`,
|
|
1107
|
+
},
|
|
1108
|
+
],
|
|
1109
|
+
};
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
815
1112
|
const outputPaths = {
|
|
816
1113
|
"raw.json": "",
|
|
817
1114
|
"screen-summary.md": "",
|
|
@@ -855,6 +1152,107 @@ export function registerStitchExportTool(server) {
|
|
|
855
1152
|
const acceptanceCriteria = buildAcceptanceCriteria(payload);
|
|
856
1153
|
const testPlan = buildTestPlan(payload);
|
|
857
1154
|
const questions = buildQuestions(payload);
|
|
1155
|
+
const allOutputPaths = { ...outputPaths };
|
|
1156
|
+
const downloadedAssets = [];
|
|
1157
|
+
const screen = getScreen(payload);
|
|
1158
|
+
const htmlCode = getNestedRecord(screen, "htmlCode");
|
|
1159
|
+
const screenshot = getNestedRecord(screen, "screenshot");
|
|
1160
|
+
const htmlUrl = getString(htmlCode, "downloadUrl");
|
|
1161
|
+
const screenshotUrl = getString(screenshot, "downloadUrl");
|
|
1162
|
+
let savedHtmlPath;
|
|
1163
|
+
let savedHtmlText;
|
|
1164
|
+
if (includeHtml && htmlUrl) {
|
|
1165
|
+
const htmlDownload = await downloadUrl({
|
|
1166
|
+
url: htmlUrl,
|
|
1167
|
+
baseRoot: baseRootInfo.baseRoot,
|
|
1168
|
+
relativeDir,
|
|
1169
|
+
fileNameStem: "screen",
|
|
1170
|
+
forcedFileName: "screen.html",
|
|
1171
|
+
kind: "html",
|
|
1172
|
+
maxBytes: maxDownloadBytes,
|
|
1173
|
+
});
|
|
1174
|
+
downloadedAssets.push(htmlDownload.asset);
|
|
1175
|
+
if (htmlDownload.asset.status === "saved") {
|
|
1176
|
+
savedHtmlPath = htmlDownload.asset.path;
|
|
1177
|
+
savedHtmlText = htmlDownload.text;
|
|
1178
|
+
if (htmlDownload.asset.relativePath) {
|
|
1179
|
+
allOutputPaths["screen.html"] = htmlDownload.asset.path ?? "";
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
if (includeScreenshot && screenshotUrl) {
|
|
1184
|
+
const screenshotDownload = await downloadUrl({
|
|
1185
|
+
url: screenshotUrl,
|
|
1186
|
+
baseRoot: baseRootInfo.baseRoot,
|
|
1187
|
+
relativeDir,
|
|
1188
|
+
fileNameStem: "screenshot",
|
|
1189
|
+
kind: "screenshot",
|
|
1190
|
+
maxBytes: maxDownloadBytes,
|
|
1191
|
+
});
|
|
1192
|
+
downloadedAssets.push(screenshotDownload.asset);
|
|
1193
|
+
if (screenshotDownload.asset.status === "saved" && screenshotDownload.asset.path) {
|
|
1194
|
+
allOutputPaths[path.basename(screenshotDownload.asset.path)] = screenshotDownload.asset.path;
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
if (includeLinkedAssets && htmlUrl) {
|
|
1198
|
+
if (!savedHtmlText) {
|
|
1199
|
+
const htmlDownload = await downloadUrl({
|
|
1200
|
+
url: htmlUrl,
|
|
1201
|
+
baseRoot: baseRootInfo.baseRoot,
|
|
1202
|
+
relativeDir,
|
|
1203
|
+
fileNameStem: "screen",
|
|
1204
|
+
forcedFileName: "screen.html",
|
|
1205
|
+
kind: "html",
|
|
1206
|
+
maxBytes: maxDownloadBytes,
|
|
1207
|
+
});
|
|
1208
|
+
downloadedAssets.push(htmlDownload.asset);
|
|
1209
|
+
if (htmlDownload.asset.status === "saved") {
|
|
1210
|
+
savedHtmlPath = htmlDownload.asset.path;
|
|
1211
|
+
savedHtmlText = htmlDownload.text;
|
|
1212
|
+
if (htmlDownload.asset.path) {
|
|
1213
|
+
allOutputPaths["screen.html"] = htmlDownload.asset.path;
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
const linkedUrls = savedHtmlText
|
|
1218
|
+
? extractLinkedAssetUrls(savedHtmlText, htmlUrl).slice(0, maxLinkedAssets)
|
|
1219
|
+
: [];
|
|
1220
|
+
const rewriteMap = new Map();
|
|
1221
|
+
for (const [index, linkedUrl] of linkedUrls.entries()) {
|
|
1222
|
+
const linkedAsset = await downloadUrl({
|
|
1223
|
+
url: linkedUrl,
|
|
1224
|
+
baseRoot: baseRootInfo.baseRoot,
|
|
1225
|
+
relativeDir: path.join(relativeDir, "assets"),
|
|
1226
|
+
fileNameStem: assetFileNameStem("asset", index + 1),
|
|
1227
|
+
kind: "linked-asset",
|
|
1228
|
+
maxBytes: maxDownloadBytes,
|
|
1229
|
+
requireLinkedAssetType: true,
|
|
1230
|
+
});
|
|
1231
|
+
downloadedAssets.push(linkedAsset.asset);
|
|
1232
|
+
if (linkedAsset.asset.status === "saved" && linkedAsset.asset.path) {
|
|
1233
|
+
allOutputPaths[`assets/${path.basename(linkedAsset.asset.path)}`] = linkedAsset.asset.path;
|
|
1234
|
+
if (savedHtmlPath) {
|
|
1235
|
+
const localReference = path
|
|
1236
|
+
.relative(path.dirname(savedHtmlPath), linkedAsset.asset.path)
|
|
1237
|
+
.split(path.sep)
|
|
1238
|
+
.join("/");
|
|
1239
|
+
rewriteMap.set(linkedUrl, localReference.startsWith(".") ? localReference : `./${localReference}`);
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
if (rewriteHtmlAssetUrls && savedHtmlPath && savedHtmlText && rewriteMap.size > 0) {
|
|
1244
|
+
let rewrittenHtml = savedHtmlText;
|
|
1245
|
+
for (const [remoteUrl, localReference] of rewriteMap) {
|
|
1246
|
+
rewrittenHtml = rewrittenHtml.split(remoteUrl).join(localReference);
|
|
1247
|
+
}
|
|
1248
|
+
await writeFile(savedHtmlPath, rewrittenHtml, "utf8");
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
if (downloadedAssets.length > 0) {
|
|
1252
|
+
const assetManifestPath = await prepareSafeOutputPath(baseRootInfo.baseRoot, path.join(relativeDir, "asset-manifest.json"));
|
|
1253
|
+
allOutputPaths["asset-manifest.json"] = assetManifestPath;
|
|
1254
|
+
await writeFile(assetManifestPath, `${toPrettyJson({ generatedAt, assets: downloadedAssets })}\n`, "utf8");
|
|
1255
|
+
}
|
|
858
1256
|
const manifest = createManifest({
|
|
859
1257
|
payload,
|
|
860
1258
|
input: {
|
|
@@ -866,10 +1264,19 @@ export function registerStitchExportTool(server) {
|
|
|
866
1264
|
...(rawGetScreenInput ? { rawGetScreenInput } : {}),
|
|
867
1265
|
...(screenData ? { screenDataProvided: true } : {}),
|
|
868
1266
|
...(fetchInput ? { fetchInput } : {}),
|
|
1267
|
+
versioned,
|
|
1268
|
+
includeHtml,
|
|
1269
|
+
includeScreenshot,
|
|
1270
|
+
includeLinkedAssets,
|
|
1271
|
+
rewriteHtmlAssetUrls,
|
|
1272
|
+
maxLinkedAssets,
|
|
1273
|
+
maxDownloadBytes,
|
|
869
1274
|
},
|
|
870
1275
|
resolver: resolverInfo,
|
|
871
1276
|
generatedAt,
|
|
872
|
-
paths:
|
|
1277
|
+
paths: allOutputPaths,
|
|
1278
|
+
downloadedAssets,
|
|
1279
|
+
versionInfo,
|
|
873
1280
|
artifactPath: relativeDir,
|
|
874
1281
|
resolvedOutputDir: path.dirname(outputPaths["manifest.json"]),
|
|
875
1282
|
baseRoot: baseRootInfo.baseRoot,
|
|
@@ -888,9 +1295,11 @@ export function registerStitchExportTool(server) {
|
|
|
888
1295
|
await writeFile(outputPaths["test-plan.md"], `${testPlan}\n`, "utf8");
|
|
889
1296
|
await writeFile(outputPaths["questions.md"], `${questions}\n`, "utf8");
|
|
890
1297
|
await writeFile(outputPaths["manifest.json"], `${toPrettyJson(manifest)}\n`, "utf8");
|
|
891
|
-
const screen = getScreen(payload);
|
|
892
1298
|
const title = getString(screen, "title") ?? "(untitled)";
|
|
893
1299
|
const screenName = getString(screen, "name") ?? "(unknown)";
|
|
1300
|
+
const savedCount = downloadedAssets.filter((asset) => asset.status === "saved").length;
|
|
1301
|
+
const skippedCount = downloadedAssets.filter((asset) => asset.status === "skipped").length;
|
|
1302
|
+
const failedCount = downloadedAssets.filter((asset) => asset.status === "failed").length;
|
|
894
1303
|
return {
|
|
895
1304
|
content: [
|
|
896
1305
|
{
|
|
@@ -899,10 +1308,14 @@ export function registerStitchExportTool(server) {
|
|
|
899
1308
|
`Title: ${title}\n` +
|
|
900
1309
|
`Screen: ${screenName}\n` +
|
|
901
1310
|
`Artifact path: ${relativeDir}\n` +
|
|
1311
|
+
(versionInfo.enabled
|
|
1312
|
+
? `Version: ${versionInfo.version} (${versionInfo.baseArtifactPath})\n`
|
|
1313
|
+
: "") +
|
|
902
1314
|
`Base root: ${baseRootInfo.baseRoot} (${baseRootInfo.source})\n` +
|
|
903
1315
|
`Output directory: ${path.dirname(outputPaths["manifest.json"])}\n\n` +
|
|
1316
|
+
`Downloaded assets: ${savedCount} saved, ${skippedCount} skipped, ${failedCount} failed\n\n` +
|
|
904
1317
|
"Files:\n" +
|
|
905
|
-
|
|
1318
|
+
Object.entries(allOutputPaths).map(([fileName, filePath]) => `- ${fileName}: ${filePath}`).join("\n"),
|
|
906
1319
|
},
|
|
907
1320
|
],
|
|
908
1321
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stitchExport.js","sourceRoot":"","sources":["../../src/tools/stitchExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kCAAkC,CAAC;AAEhG,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAClD,MAAM,cAAc,GAAG;IACrB,UAAU;IACV,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;IACxB,oBAAoB;IACpB,SAAS;IACT,gBAAgB;IAChB,iBAAiB;IACjB,wBAAwB;IACxB,cAAc;IACd,cAAc;IACd,eAAe;CACP,CAAC;AACX,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAoBlD,SAAS,uBAAuB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAClE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiB;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChE,OAAO,UAAU,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,IAAI,GAAG,KAAK;SACf,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO,IAAI,IAAI,QAAQ,CAAC;AAC1B,CAAC;AAMD,KAAK,UAAU,WAAW,CAAC,eAAuB;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,kDAAkD,QAAQ,EAAE;iBACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,mEAAmE,QAAQ,EAAE;aACrF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,QAAiB;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC;IACjG,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,GAAmC,EAAE,GAAW;IACjE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,iBAAiB,GAAG,GAAG,EAAE,iBAAiB,CAAC;IACjD,IAAI,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,GAAmC,EAAE,GAAW;IACvE,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7D,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1F,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;YAAE,MAAM;IACxC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,QAAgB;IACnD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsC;IAChE,MAAM,MAAM,GAAG;QACb,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;QAC1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC3B,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC;QAC/D,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,eAAe,CAAC;KACtE,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsC;IAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE5D,OAAO;QACL,WAAW,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,sBAAsB,EAAE,aAAa,CAAC;YACpC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,WAAW;SACf,CAAC;QACF,qBAAqB,EAAE,aAAa,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsC,EAAE,QAAQ,GAAG,EAAE;IAChF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;SAC3G,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;SAClB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsC;IACtD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvE,OAAO,eAAe,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC;IAC5D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC;IAClE,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC;IAClE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,WAAW,CAAC;IACpE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE5D,OAAO;QACL,KAAK,KAAK,EAAE;QACZ,EAAE;QACF,QAAQ;QACR,kBAAkB,IAAI,IAAI,WAAW,EAAE;QACvC,iBAAiB,oBAAoB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;QAC5D,gBAAgB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;QACrF,EAAE;QACF,YAAY;QACZ,MAAM,IAAI,OAAO,IAAI,2DAA2D;QAChF,EAAE;QACF,oBAAoB;QACpB,aAAa,MAAM,EAAE;QACrB,kBAAkB,UAAU,EAAE;QAC9B,kBAAkB,UAAU,EAAE;QAC9B,mBAAmB,WAAW,EAAE;QAChC,YAAY,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE;QACvD,aAAa,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE;QACzD,EAAE;QACF,wBAAwB;QACxB,UAAU,CAAC,WAAW,EAAE,kKAAkK,CAAC;KAC5L,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAgB;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,6BAA6B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE;QAC5E,EAAE;QACF,WAAW;QACX,kBAAkB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE;QAC5D,oBAAoB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE;QAC7D,wBAAwB,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,QAAQ,EAAE;QACxE,0BAA0B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE;QACrE,8BAA8B,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,QAAQ,EAAE;QAChF,qBAAqB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE;QACjE,EAAE;QACF,WAAW;QACX,kBAAkB,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,WAAW,EAAE;QAClE,kBAAkB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE;QACzG,mBAAmB,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,WAAW,EAAE;QACtE,EAAE;QACF,2BAA2B;QAC3B,UAAU,CAAC,WAAW,EAAE,iEAAiE,CAAC;QAC1F,EAAE;QACF,iBAAiB;QACjB,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,qHAAqH,CAAC;QAC1K,EAAE;QACF,kBAAkB;QAClB,oBAAoB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,gBAAgB,EAAE,aAAa,CAAC,IAAI,WAAW,EAAE;QAClH,EAAE;QACF,WAAW;QACX,UAAU,CAAC,WAAW,EAAE,gCAAgC,CAAC;QACzD,EAAE;QACF,kBAAkB;QAClB,UAAU,CAAC,WAAW,EAAE,sCAAsC,CAAC;QAC/D,EAAE;QACF,aAAa;QACb,sEAAsE;QACtE,qGAAqG;KACtG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,WAAW;QACX,QAAQ;QACR,UAAU;QACV,WAAW;QACX,KAAK;QACL,MAAM;QACN,OAAO;QACP,aAAa;QACb,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE5D,OAAO;QACL,0BAA0B,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE;QAC1D,EAAE;QACF,iBAAiB;QACjB,4BAA4B,UAAU,IAAI,WAAW,EAAE;QACvD,8BAA8B,UAAU,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,MAAM,MAAM,IAAI,SAAS,EAAE;QACtG,sCAAsC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QAC9D,4CAA4C,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QAC1E,sCAAsC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QAChE,EAAE;QACF,sCAAsC;QACtC,iGAAiG;QACjG,gFAAgF;QAChF,qHAAqH;QACrH,0HAA0H;QAC1H,EAAE;QACF,0BAA0B;QAC1B,+DAA+D;QAC/D,yFAAyF;QACzF,mEAAmE;QACnE,4EAA4E;QAC5E,yGAAyG;QACzG,4HAA4H;QAC5H,8EAA8E;QAC9E,EAAE;QACF,2BAA2B;QAC3B,UAAU,CACR;YACE,CAAC,OAAO,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;YACtE,CAAC,aAAa,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE;YAClF,CAAC,SAAS,CAAC,CAAC,CAAC,0GAA0G,CAAC,CAAC,CAAC,EAAE;YAC5H,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,EAAE;YAC7H,kHAAkH;SACnH,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,iEAAiE,CAClE;QACD,EAAE;QACF,wBAAwB;QACxB,0FAA0F;QAC1F,oEAAoE;QACpE,uFAAuF;QACvF,8EAA8E;QAC9E,iEAAiE;QACjE,EAAE;QACF,8BAA8B;QAC9B,4BAA4B,UAAU,IAAI,WAAW,GAAG;QACxD,uBAAuB,KAAK,IAAI,SAAS,MAAM,MAAM,IAAI,SAAS,GAAG;QACrE,oHAAoH;QACpH,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG;QACb,UAAU;QACV,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;QACjD,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QACvC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;QACzC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC/C,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;KACxD,CAAC;IACF,MAAM,QAAQ,GAA0B;QACtC;YACE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;YAC1E,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,gFAAgF;YAC3F,gBAAgB,EAAE;gBAChB;oBACE,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,UAAU;oBACtB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW;oBACnC,YAAY,EAAE,EAAE;iBACjB;aACF;SACF;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,uFAAuF;YAClG,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACvD,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,CAAC,UAAU,CAAC;gBACpB,YAAY,EAAE,CAAC,iCAAiC,CAAC;aAClD,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI;YACJ,UAAU,EAAE,wBAAwB;SACrC,CAAC,CAAC;QACH,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,sCAAsC;SACnD,CAAC,CAAC;QACH,KAAK,EAAE;YACL,4FAA4F;YAC5F,0FAA0F;SAC3F;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO;QACL,WAAW,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE;QAC3C,EAAE;QACF,sBAAsB;QACtB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,6EAA6E,CAAC;QACtH,EAAE;QACF,4CAA4C;QAC5C,UAAU,CACR,KAAK,CAAC,SAAS,CAAC,sBAAsB,EACtC,oDAAoD,CACrD;QACD,EAAE;QACF,kIAAkI;QAClI,EAAE;QACF,4CAA4C;QAC5C,UAAU,CACR,KAAK,CAAC,SAAS,CAAC,qBAAqB,EACrC,yCAAyC,CAC1C;QACD,EAAE;QACF,eAAe;QACf,wHAAwH;QACxH,0KAA0K;QAC1K,2KAA2K;QAC3K,mEAAmE;KACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE/D,OAAO;QACL,kBAAkB,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE;QAClD,EAAE;QACF,4BAA4B;QAC5B,kBAAkB,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,eAAe,EAAE;QAC5E,YAAY,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE;QACjE,aAAa,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE;QACnE,EAAE;QACF,2BAA2B;QAC3B,UAAU,CAAC,WAAW,EAAE,qEAAqE,CAAC;QAC9F,EAAE;QACF,2BAA2B;QAC3B,UAAU,CAAC,WAAW,EAAE,2EAA2E,CAAC;QACpG,EAAE;QACF,yBAAyB;QACzB,UAAU,CACR;YACE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC/E,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACvG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC3F,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC9F,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACvG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;SAC/F,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,4FAA4F,CAC7F;QACD,EAAE;QACF,4BAA4B;QAC5B,mIAAmI;QACnI,kIAAkI;KACnI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEjE,OAAO;QACL,mBAAmB,KAAK,EAAE;QAC1B,EAAE;QACF,iTAAiT;QACjT,EAAE;QACF,+BAA+B;QAC/B,wBAAwB;QACxB,gCAAgC;QAChC,6BAA6B;QAC7B,yBAAyB;QACzB,cAAc;QACd,qBAAqB;QACrB,yFAAyF;QACzF,EAAE;QACF,wBAAwB;QACxB,sBAAsB,KAAK,EAAE;QAC7B,4BAA4B,UAAU,EAAE;QACxC,8BAA8B,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE;QACvL,yBAAyB,OAAO,IAAI,eAAe,EAAE;QACrD,+BAA+B,aAAa,IAAI,eAAe,EAAE;QACjE,sCAAsC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QAChE,EAAE;QACF,gCAAgC;QAChC,oFAAoF;QACpF,sDAAsD;QACtD,iGAAiG;QACjG,wJAAwJ;QACxJ,6JAA6J;QAC7J,6KAA6K;QAC7K,6CAA6C;QAC7C,EAAE;QACF,0BAA0B;QAC1B,gDAAgD;QAChD,+DAA+D;QAC/D,kIAAkI;KACnI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAE5D,OAAO;QACL,0BAA0B,KAAK,EAAE;QACjC,EAAE;QACF,iGAAiG;QACjG,8EAA8E;QAC9E,6IAA6I;QAC7I,kHAAkH;QAClH,0IAA0I;QAC1I,SAAS;YACP,CAAC,CAAC,iGAAiG;YACnG,CAAC,CAAC,iIAAiI;QACrI,qIAAqI;QACrI,kGAAkG;QAClG,yFAAyF;QACzF,0FAA0F;KAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC;IAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;IAEhD,OAAO;QACL,gBAAgB,KAAK,EAAE;QACvB,EAAE;QACF,yBAAyB;QACzB,2FAA2F;QAC3F,6GAA6G;QAC7G,EAAE;QACF,oBAAoB;QACpB,GAAG,CACD,WAAW,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7F,CAAC,CAAC,CAAC,6HAA6H,CAAC,CACpI;QACD,+DAA+D;QAC/D,2FAA2F;QAC3F,4HAA4H;QAC5H,EAAE;QACF,+BAA+B;QAC/B,mDAAmD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,GAAG;QACvJ,mEAAmE;QACnE,6DAA6D;QAC7D,EAAE;QACF,qBAAqB;QACrB,qFAAqF;QACrF,oGAAoG;QACpG,kFAAkF;KACnF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC;IAC7C,MAAM,SAAS,GAAG;QAChB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YACtC,CAAC,CAAC,gIAAgI;YAClI,CAAC,CAAC,EAAE;QACN,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC,qHAAqH;YACvH,CAAC,CAAC,EAAE;QACN,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC9C,CAAC,CAAC,8GAA8G;YAChH,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,wHAAwH;YAC1H,CAAC,CAAC,EAAE;QACN,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC;YACvC,CAAC,CAAC,6GAA6G;YAC/G,CAAC,CAAC,EAAE;QACN,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;YACzC,CAAC,CAAC,iGAAiG;YACnG,CAAC,CAAC,EAAE;QACN,wFAAwF;QACxF,oFAAoF;QACpF,mGAAmG;KACpG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO;QACL,gBAAgB,KAAK,EAAE;QACvB,EAAE;QACF,mHAAmH;QACnH,EAAE;QACF,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAWvB;IACC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE;YACN,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACrC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAC9D,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;SAClC;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE;YACN,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,OAAO,CAAC,UAAU;SACzB;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EACT,gbAAgb;QAClb,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO,EACL,kGAAkG;aACrG,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,gGAAgG,CAAC;YAC7G,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,KAAK,CAAC,qBAAqB,EAAE,6DAA6D,CAAC;iBAC3F,QAAQ,EAAE;YACb,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO,EACL,kGAAkG;aACrG,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,qFAAqF,CAAC;YAClG,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC/D,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACnC;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;QACzG,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,yGAAyG;qBAC5G;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,OAAO,GAAY,UAAU,CAAC;QAClC,IAAI,UAAkC,CAAC;QACvC,IAAI,YAAqB,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,MAAM,QAAQ,GAAG,gBAAgB;gBAC/B,CAAC,CAAC;oBACE,EAAE,EAAE,IAAa;oBACjB,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE;wBACR,SAAS,EAAE,QAAQ;wBACnB,SAAS,EAAE,gBAAgB,CAAC,SAAS;wBACrC,QAAQ,EAAE,oBAAoB;wBAC9B,WAAW,EAAE,gBAAgB,CAAC,IAAI;wBAClC,eAAe,EAAE,gBAAgB,CAAC,QAAQ;qBAC3C;iBACF;gBACH,CAAC,CAAC,QAAQ;oBACR,CAAC,CAAC,MAAM,kBAAkB,CAAC;wBACvB,MAAM;wBACN,cAAc,EAAE,QAAQ;wBACxB,eAAe,EAAE,SAAS;qBAC3B,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC;YAEX,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,oIAAoI;yBACvI;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,QAAQ,CAAC,KAAK;yBACrB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,iBAAiB,IAAI,QAAQ,EAAE,KAAK,CAAC;YAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,oIAAoI;yBACvI;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,UAAU,GAAG,cAAc,CAAC;YAC5B,YAAY,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACxC,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kEAAkE,WAAW,CAAC,KAAK,EAAE;yBAC5F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,CAAC,KAAK;qBACzB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,WAAW,GACf,YAAY;YACZ,YAAY;YACZ,CAAC,YAAY;gBACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACtD,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAoD;YACnE,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,EAAE;YACvB,2BAA2B,EAAE,EAAE;YAC/B,wBAAwB,EAAE,EAAE;YAC5B,oBAAoB,EAAE,EAAE;YACxB,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACtC,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,qBAAqB,CACjD,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,2BAA2B,OAAO,EAAE;qBAC3C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC;gBAC9B,OAAO;gBACP,KAAK,EAAE;oBACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC;gBACD,QAAQ,EAAE,YAAY;gBACtB,WAAW;gBACX,KAAK,EAAE,WAAW;gBAClB,YAAY,EAAE,WAAW;gBACzB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC7D,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,cAAc,EAAE,YAAY,CAAC,MAAM;gBACnC,UAAU;aACX,CAAC,CAAC;YAEH,MAAM,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,SAAS,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,GAAG,aAAa,IAAI,EAAE,MAAM,CAAC,CAAC;YAChF,MAAM,SAAS,CAAC,WAAW,CAAC,2BAA2B,CAAC,EAAE,GAAG,qBAAqB,IAAI,EAAE,MAAM,CAAC,CAAC;YAChG,MAAM,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,GAAG,kBAAkB,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1F,MAAM,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9F,MAAM,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,GAAG,WAAW,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,GAAG,kBAAkB,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1F,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,IAAI,EAAE,MAAM,CAAC,CAAC;YACvE,MAAM,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAErF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC;YACzD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC;YAE5D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,0DAA0D;4BAC1D,UAAU,KAAK,IAAI;4BACnB,WAAW,UAAU,IAAI;4BACzB,kBAAkB,WAAW,IAAI;4BACjC,cAAc,YAAY,CAAC,QAAQ,KAAK,YAAY,CAAC,MAAM,KAAK;4BAChE,qBAAqB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM;4BACrE,UAAU;4BACV,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBACzF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gCAAgC,OAAO,EAAE;qBAChD;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"stitchExport.js","sourceRoot":"","sources":["../../src/tools/stitchExport.ts"],"names":[],"mappings":"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"}
|
package/docs/stitch-tools.md
CHANGED
|
@@ -25,26 +25,30 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
25
25
|
- Checks Stitch MCP setup and reports missing required, recommended, and optional environment variables without exposing secret values.
|
|
26
26
|
- Input: none
|
|
27
27
|
|
|
28
|
-
2.
|
|
28
|
+
2. stitch_info
|
|
29
|
+
- Reports the running mcp-stitch package name, package version, transport, and npx command.
|
|
30
|
+
- Input: none
|
|
31
|
+
|
|
32
|
+
3. stitch_list_projects
|
|
29
33
|
- Lists Stitch projects.
|
|
30
34
|
- Input:
|
|
31
35
|
- filter (optional)
|
|
32
36
|
- rawInput (optional override for exact Stitch request shape)
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
4. stitch_get_project
|
|
35
39
|
- Gets one project.
|
|
36
40
|
- Input:
|
|
37
41
|
- projectId (optional if rawInput used; bare id or projects/{id}, normalized to full resource name)
|
|
38
42
|
- rawInput (optional)
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
5. stitch_list_screens
|
|
41
45
|
- Lists screens in a project.
|
|
42
46
|
- Response is formatted as a handoff inventory with title, bare `screenId`, full `screenName`, dimensions, and whether screenshot/HTML URLs are present.
|
|
43
47
|
- Input:
|
|
44
48
|
- projectId (optional if rawInput used; bare id or projects/{id}, normalized to bare id)
|
|
45
49
|
- rawInput (optional)
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
6. stitch_get_screen
|
|
48
52
|
- Gets one screen.
|
|
49
53
|
- Response highlights the bare `screenId`, full `screenName`, next `stitch_get_screen` call shape, `screenshot.downloadUrl`, and `htmlCode.downloadUrl` when present.
|
|
50
54
|
- Input:
|
|
@@ -52,7 +56,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
52
56
|
- projectId (optional; bare id or projects/{id}, used with bare screenId or partial title/name lookup)
|
|
53
57
|
- rawInput (optional)
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
7. stitch_generate_screen_from_text
|
|
56
60
|
- Generates a screen from text.
|
|
57
61
|
- Response uses the same asset handoff format as `stitch_get_screen`, so agents can pass the returned bare `screenId` directly into later screen tools.
|
|
58
62
|
- Input:
|
|
@@ -60,7 +64,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
60
64
|
- projectId (required unless rawInput used; bare id preferred; projects/{id} is normalized by the adapter)
|
|
61
65
|
- rawInput (optional)
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
8. stitch_export_screen_artifact
|
|
64
68
|
- Exports a screen artifact bundle under PROJECT_ROOT, with STITCH_OUTPUT_DIR as fallback when PROJECT_ROOT is unset.
|
|
65
69
|
- Input:
|
|
66
70
|
- screenData (optional direct payload to export)
|
|
@@ -70,15 +74,22 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
70
74
|
- artifactPath (optional workspace-relative bundle directory, for example `.artifacts/features/settings/design`)
|
|
71
75
|
- artifactName (optional backward-compatible fallback)
|
|
72
76
|
- relativePath (optional legacy bundle directory, treated like artifactPath)
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
- versioned (optional, default false; writes into the next nested version folder such as `artifactPath/v001`, then `v002`)
|
|
78
|
+
- includeHtml (optional, default true; downloads `htmlCode.downloadUrl` to `screen.html` when present)
|
|
79
|
+
- includeScreenshot (optional, default true; downloads `screenshot.downloadUrl` to `screenshot.*` when present)
|
|
80
|
+
- includeLinkedAssets (optional, default false; downloads safe HTTPS assets referenced by saved HTML into `assets/`)
|
|
81
|
+
- rewriteHtmlAssetUrls (optional, default false; rewrites saved HTML to point at downloaded local assets)
|
|
82
|
+
- maxLinkedAssets (optional, default 50, max 200)
|
|
83
|
+
- maxDownloadBytes (optional, default 26214400, max 104857600)
|
|
84
|
+
|
|
85
|
+
9. stitch_create_project
|
|
75
86
|
- MUTATING: creates a new Stitch project.
|
|
76
87
|
- Input:
|
|
77
88
|
- title (optional)
|
|
78
89
|
- confirm (required true to execute)
|
|
79
90
|
- rawInput (optional)
|
|
80
91
|
|
|
81
|
-
|
|
92
|
+
10. stitch_edit_screens
|
|
82
93
|
- MUTATING: edits existing screens with a text prompt.
|
|
83
94
|
- Input:
|
|
84
95
|
- projectId (required unless rawInput used; bare id or projects/{id}, normalized to bare id)
|
|
@@ -89,7 +100,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
89
100
|
- confirm (required true to execute)
|
|
90
101
|
- rawInput (optional)
|
|
91
102
|
|
|
92
|
-
|
|
103
|
+
11. stitch_generate_variants
|
|
93
104
|
- MUTATING: generates variants of existing screens.
|
|
94
105
|
- Input:
|
|
95
106
|
- projectId (required unless rawInput used; normalized to bare id)
|
|
@@ -104,7 +115,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
104
115
|
- confirm (required true to execute)
|
|
105
116
|
- rawInput (optional)
|
|
106
117
|
|
|
107
|
-
|
|
118
|
+
12. stitch_upload_design_md
|
|
108
119
|
- MUTATING: uploads base64-encoded DESIGN.md content to a project.
|
|
109
120
|
- Input:
|
|
110
121
|
- projectId (required unless rawInput used; normalized to bare id)
|
|
@@ -112,7 +123,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
112
123
|
- confirm (required true to execute)
|
|
113
124
|
- rawInput (optional)
|
|
114
125
|
|
|
115
|
-
|
|
126
|
+
13. stitch_create_design_system
|
|
116
127
|
- MUTATING: creates a design system, optionally scoped to a project.
|
|
117
128
|
- Input:
|
|
118
129
|
- projectId (optional; normalized to bare id)
|
|
@@ -128,7 +139,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
128
139
|
- confirm (required true to execute)
|
|
129
140
|
- rawInput (optional)
|
|
130
141
|
|
|
131
|
-
|
|
142
|
+
14. stitch_create_design_system_from_design_md
|
|
132
143
|
- MUTATING: creates a design system from an uploaded DESIGN.md screen instance.
|
|
133
144
|
- Input:
|
|
134
145
|
- projectId (required unless rawInput used; normalized to bare id)
|
|
@@ -139,7 +150,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
139
150
|
- confirm (required true to execute)
|
|
140
151
|
- rawInput (optional)
|
|
141
152
|
|
|
142
|
-
|
|
153
|
+
15. stitch_update_design_system
|
|
143
154
|
- MUTATING: updates an existing design system.
|
|
144
155
|
- Input:
|
|
145
156
|
- name (required unless rawInput used; assets/{asset_id} or bare asset id, normalized to full asset resource name)
|
|
@@ -148,13 +159,13 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
|
|
|
148
159
|
- confirm (required true to execute)
|
|
149
160
|
- rawInput (optional)
|
|
150
161
|
|
|
151
|
-
|
|
162
|
+
16. stitch_list_design_systems
|
|
152
163
|
- Lists design systems. If projectId is omitted, Stitch lists global design systems.
|
|
153
164
|
- Input:
|
|
154
165
|
- projectId (optional; normalized to bare id)
|
|
155
166
|
- rawInput (optional)
|
|
156
167
|
|
|
157
|
-
|
|
168
|
+
17. stitch_apply_design_system
|
|
158
169
|
- MUTATING: applies a design system to selected screen instances.
|
|
159
170
|
- Input:
|
|
160
171
|
- projectId (required unless rawInput used; normalized to bare id)
|
|
@@ -355,9 +366,14 @@ Partial lookup calls `list_screens` for the project, normalizes case and whitesp
|
|
|
355
366
|
- `test-plan.md`: suggested unit, component, responsive, accessibility, and e2e test coverage.
|
|
356
367
|
- `questions.md`: open questions and missing design/product details to resolve.
|
|
357
368
|
- `manifest.json`: source ids, generated timestamp, artifact paths, caller input, fetch input, and resolver metadata.
|
|
369
|
+
- `screen.html`: downloaded HTML artifact when `includeHtml` is true and `htmlCode.downloadUrl` is present.
|
|
370
|
+
- `screenshot.*`: downloaded screenshot/thumbnail artifact when `includeScreenshot` is true and `screenshot.downloadUrl` is present.
|
|
371
|
+
- `assets/`: downloaded linked HTML assets when `includeLinkedAssets` is true.
|
|
372
|
+
- `asset-manifest.json`: download results for HTML, screenshot, and linked assets, including source URL, local path, content type, byte size, and skipped/failed reasons.
|
|
358
373
|
|
|
359
374
|
The MCP response intentionally does not include raw JSON. It returns the bundle directory, artifact paths, and a short screen summary.
|
|
360
375
|
Handoff files mark inferred items as inferred and avoid inventing precise design values when the Stitch payload does not include them.
|
|
376
|
+
Linked asset download is intentionally conservative: only safe HTTPS URLs are downloaded, private/local hosts are skipped, and asset count/size limits are enforced.
|
|
361
377
|
|
|
362
378
|
Output location rules:
|
|
363
379
|
|
|
@@ -365,6 +381,7 @@ Output location rules:
|
|
|
365
381
|
- `relativePath` remains as a legacy alias for a caller-provided bundle directory, for example `exports/manual-screen`.
|
|
366
382
|
- If no path is provided but `artifactName` is provided, the legacy fallback is `exports/{artifactName}`.
|
|
367
383
|
- If neither `artifactPath` nor `artifactName` is provided, the default is `.artifacts/stitch/{normalized-screen-title-or-screen-id}`.
|
|
384
|
+
- If `versioned` is true, the chosen path becomes the version base and the bundle is written into the next nested `v###` folder, for example `.artifacts/stitch/comment-section/v001`, then `v002`.
|
|
368
385
|
- The base root is `PROJECT_ROOT` when set. If `PROJECT_ROOT` is not set, `STITCH_OUTPUT_DIR` remains the fallback/testing base.
|
|
369
386
|
- Empty `PROJECT_ROOT` is treated as missing. A non-empty `PROJECT_ROOT` must already exist and be a directory; invalid roots are rejected instead of being created.
|
|
370
387
|
- Absolute paths, `..`, suspicious path segments, symlink escapes, and paths outside the base root are rejected.
|