stitch-kit 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +139 -0
- package/CHANGELOG.md +86 -0
- package/README.md +167 -0
- package/agents/stitch-kit.md +93 -0
- package/bin/stitch-kit.mjs +430 -0
- package/docs/architecture.md +118 -0
- package/docs/color-prompt-guide.md +119 -0
- package/docs/mcp-naming-convention.md +64 -0
- package/docs/mcp-schemas/README.md +130 -0
- package/docs/mcp-schemas/apply_design_system.json +36 -0
- package/docs/mcp-schemas/create_design_system.json +78 -0
- package/docs/mcp-schemas/create_project.json +290 -0
- package/docs/mcp-schemas/delete_project.json +20 -0
- package/docs/mcp-schemas/edit_screens.json +46 -0
- package/docs/mcp-schemas/generate_screen_from_text.json +242 -0
- package/docs/mcp-schemas/generate_variants.json +77 -0
- package/docs/mcp-schemas/get_project.json +137 -0
- package/docs/mcp-schemas/get_screen.json +92 -0
- package/docs/mcp-schemas/list_design_systems.json +32 -0
- package/docs/mcp-schemas/list_projects.json +136 -0
- package/docs/mcp-schemas/list_screens.json +56 -0
- package/docs/mcp-schemas/update_design_system.json +32 -0
- package/docs/mcp-schemas/upload_screens_from_images.json +52 -0
- package/docs/prd-to-stitch-workflow.md +137 -0
- package/docs/skills-index.md +108 -0
- package/docs/tailwind-reference.md +207 -0
- package/package.json +41 -0
- package/skills/stitch-a11y/SKILL.md +428 -0
- package/skills/stitch-a11y/resources/audit-checklist.md +102 -0
- package/skills/stitch-animate/SKILL.md +371 -0
- package/skills/stitch-animate/resources/animation-patterns.md +248 -0
- package/skills/stitch-design-md/SKILL.md +215 -0
- package/skills/stitch-design-md/examples/DESIGN.md +54 -0
- package/skills/stitch-design-md/examples/usage.md +67 -0
- package/skills/stitch-design-md/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-design-system/SKILL.md +314 -0
- package/skills/stitch-design-system/resources/tokens-template.css +237 -0
- package/skills/stitch-html-components/SKILL.md +344 -0
- package/skills/stitch-html-components/resources/architecture-checklist.md +74 -0
- package/skills/stitch-html-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-loop/SKILL.md +183 -0
- package/skills/stitch-loop/examples/SITE.md +39 -0
- package/skills/stitch-loop/examples/next-prompt.md +24 -0
- package/skills/stitch-loop/examples/usage.md +77 -0
- package/skills/stitch-mcp-apply-design-system/SKILL.md +82 -0
- package/skills/stitch-mcp-create-design-system/SKILL.md +117 -0
- package/skills/stitch-mcp-create-project/SKILL.md +77 -0
- package/skills/stitch-mcp-delete-project/SKILL.md +62 -0
- package/skills/stitch-mcp-edit-screens/SKILL.md +121 -0
- package/skills/stitch-mcp-generate-screen-from-text/SKILL.md +102 -0
- package/skills/stitch-mcp-generate-screen-from-text/examples/desktop.md +53 -0
- package/skills/stitch-mcp-generate-screen-from-text/examples/mobile.md +71 -0
- package/skills/stitch-mcp-generate-variants/SKILL.md +124 -0
- package/skills/stitch-mcp-get-project/SKILL.md +67 -0
- package/skills/stitch-mcp-get-screen/SKILL.md +117 -0
- package/skills/stitch-mcp-get-screen/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-mcp-list-design-systems/SKILL.md +84 -0
- package/skills/stitch-mcp-list-projects/SKILL.md +77 -0
- package/skills/stitch-mcp-list-screens/SKILL.md +69 -0
- package/skills/stitch-mcp-update-design-system/SKILL.md +82 -0
- package/skills/stitch-mcp-upload-screens-from-images/SKILL.md +95 -0
- package/skills/stitch-mcp-upload-screens-from-images/scripts/encode-image.sh +43 -0
- package/skills/stitch-nextjs-components/SKILL.md +181 -0
- package/skills/stitch-nextjs-components/resources/architecture-checklist.md +65 -0
- package/skills/stitch-nextjs-components/resources/component-template.tsx +101 -0
- package/skills/stitch-nextjs-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-orchestrator/SKILL.md +337 -0
- package/skills/stitch-orchestrator/examples/workflow.md +173 -0
- package/skills/stitch-react-components/SKILL.md +236 -0
- package/skills/stitch-react-components/references/tailwind-to-react.md +117 -0
- package/skills/stitch-react-components/resources/architecture-checklist.md +34 -0
- package/skills/stitch-react-components/resources/component-template.tsx +35 -0
- package/skills/stitch-react-components/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-react-native-components/SKILL.md +333 -0
- package/skills/stitch-react-native-components/resources/architecture-checklist.md +74 -0
- package/skills/stitch-react-native-components/resources/component-template.tsx +104 -0
- package/skills/stitch-react-native-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-remotion/SKILL.md +280 -0
- package/skills/stitch-setup/SKILL.md +183 -0
- package/skills/stitch-shadcn-ui/SKILL.md +255 -0
- package/skills/stitch-skill-creator/SKILL.md +257 -0
- package/skills/stitch-skill-creator/references/output-patterns.md +71 -0
- package/skills/stitch-skill-creator/scripts/init_stitch_skill.py +229 -0
- package/skills/stitch-svelte-components/SKILL.md +282 -0
- package/skills/stitch-svelte-components/resources/architecture-checklist.md +62 -0
- package/skills/stitch-svelte-components/resources/component-template.svelte +193 -0
- package/skills/stitch-svelte-components/scripts/fetch-stitch.sh +36 -0
- package/skills/stitch-swiftui-components/SKILL.md +424 -0
- package/skills/stitch-swiftui-components/resources/architecture-checklist.md +83 -0
- package/skills/stitch-swiftui-components/resources/component-template.swift +131 -0
- package/skills/stitch-swiftui-components/resources/layout-mapping.md +155 -0
- package/skills/stitch-swiftui-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-ued-guide/SKILL.md +124 -0
- package/skills/stitch-ui-design-spec-generator/SKILL.md +115 -0
- package/skills/stitch-ui-design-spec-generator/examples/usage.md +79 -0
- package/skills/stitch-ui-design-variants/SKILL.md +127 -0
- package/skills/stitch-ui-prompt-architect/SKILL.md +196 -0
- package/skills/stitch-ui-prompt-architect/references/KEYWORDS.md +170 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "generate_screen_from_text",
|
|
3
|
+
"description": "Generates a new screen within a project from a text prompt.\n\n**Input Requirements (CRITICAL):**\n\n1. **`project_id` (string - MANDATORY):** Numeric ID only — no `projects/` prefix. Example: `3780309359108792857`.\n2. **`prompt` (string - MANDATORY):** The prompt describing the desired screen.\n3. **`device_type` (enum - OPTIONAL):** Defaults to MOBILE if not provided.\n4. **`model_id` (enum - OPTIONAL):** Defaults to GEMINI_3_FLASH. Use GEMINI_3_PRO for higher quality (Thinking model).\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool call fails due to connection error, the generation process may still succeed. Try get_screen later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If it contains suggestions, present them. If accepted, call generate_screen_from_text again with `prompt` set to the accepted suggestion.\n",
|
|
4
|
+
"arguments": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"deviceType": {
|
|
8
|
+
"description": "The device type for the generated screen.",
|
|
9
|
+
"enum": [
|
|
10
|
+
"DEVICE_TYPE_UNSPECIFIED",
|
|
11
|
+
"MOBILE",
|
|
12
|
+
"DESKTOP",
|
|
13
|
+
"TABLET",
|
|
14
|
+
"AGNOSTIC"
|
|
15
|
+
],
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"modelId": {
|
|
19
|
+
"description": "Optional. GEMINI_3_PRO = Thinking model (higher quality, slower). GEMINI_3_FLASH = default (faster).",
|
|
20
|
+
"enum": [
|
|
21
|
+
"MODEL_ID_UNSPECIFIED",
|
|
22
|
+
"GEMINI_3_PRO",
|
|
23
|
+
"GEMINI_3_FLASH"
|
|
24
|
+
],
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"projectId": {
|
|
28
|
+
"description": "Required. Numeric project ID only — do NOT include 'projects/' prefix.",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"prompt": {
|
|
32
|
+
"description": "Required. The text prompt describing the screen to generate.",
|
|
33
|
+
"type": "string"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["projectId", "prompt"],
|
|
37
|
+
"description": "Request message for GenerateScreenFromText."
|
|
38
|
+
},
|
|
39
|
+
"outputSchema": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"outputComponents": {
|
|
43
|
+
"description": "Array of output components. May contain text responses, design objects, or suggestions to present to the user.",
|
|
44
|
+
"items": { "$ref": "#/$defs/SessionOutputComponent" },
|
|
45
|
+
"type": "array"
|
|
46
|
+
},
|
|
47
|
+
"projectId": { "description": "Same as the input project ID.", "type": "string" },
|
|
48
|
+
"sessionId": { "description": "Session ID for this generation.", "type": "string" }
|
|
49
|
+
},
|
|
50
|
+
"$defs": {
|
|
51
|
+
"SessionOutputComponent": {
|
|
52
|
+
"description": "A partial output of the session. Check all three fields — only one will be populated.",
|
|
53
|
+
"properties": {
|
|
54
|
+
"design": {
|
|
55
|
+
"$ref": "#/$defs/Design",
|
|
56
|
+
"description": "A generated design to display. Only for TEXT_TO_UI and IMAGE_TO_UI projects."
|
|
57
|
+
},
|
|
58
|
+
"suggestion": {
|
|
59
|
+
"description": "A suggested follow-up prompt. Present to the user; if accepted, use as the next prompt.",
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"text": {
|
|
63
|
+
"description": "A text response from the agent.",
|
|
64
|
+
"type": "string"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"type": "object"
|
|
68
|
+
},
|
|
69
|
+
"Design": {
|
|
70
|
+
"description": "A generated design — collection of screens with theme metadata.",
|
|
71
|
+
"properties": {
|
|
72
|
+
"deviceType": {
|
|
73
|
+
"enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
|
|
74
|
+
"type": "string"
|
|
75
|
+
},
|
|
76
|
+
"screens": {
|
|
77
|
+
"items": { "$ref": "#/$defs/Screen" },
|
|
78
|
+
"type": "array"
|
|
79
|
+
},
|
|
80
|
+
"theme": { "$ref": "#/$defs/DesignTheme" },
|
|
81
|
+
"title": { "type": "string" }
|
|
82
|
+
},
|
|
83
|
+
"type": "object"
|
|
84
|
+
},
|
|
85
|
+
"Screen": {
|
|
86
|
+
"description": "A generated screen.",
|
|
87
|
+
"properties": {
|
|
88
|
+
"deviceType": {
|
|
89
|
+
"enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
|
|
90
|
+
"type": "string"
|
|
91
|
+
},
|
|
92
|
+
"figmaExport": { "$ref": "#/$defs/File" },
|
|
93
|
+
"generatedBy": { "type": "string" },
|
|
94
|
+
"groupId": { "description": "Groups related screens (e.g. variants of a design).", "type": "string" },
|
|
95
|
+
"groupName": { "description": "Human-readable group name (e.g. 'Warm Minimalism').", "type": "string" },
|
|
96
|
+
"height": { "type": "string" },
|
|
97
|
+
"htmlCode": { "$ref": "#/$defs/File" },
|
|
98
|
+
"isCreatedByClient": { "type": "boolean" },
|
|
99
|
+
"name": {
|
|
100
|
+
"description": "Format: projects/{project}/screens/{screen}",
|
|
101
|
+
"type": "string",
|
|
102
|
+
"x-google-identifier": true
|
|
103
|
+
},
|
|
104
|
+
"prompt": { "type": "string" },
|
|
105
|
+
"screenMetadata": { "$ref": "#/$defs/ScreenMetadata" },
|
|
106
|
+
"screenType": {
|
|
107
|
+
"enum": ["SCREEN_TYPE_UNSPECIFIED", "DESIGN", "IMAGE", "PROTOTYPE", "DOCUMENT"],
|
|
108
|
+
"type": "string"
|
|
109
|
+
},
|
|
110
|
+
"screenshot": { "$ref": "#/$defs/File" },
|
|
111
|
+
"theme": { "$ref": "#/$defs/DesignTheme" },
|
|
112
|
+
"title": { "type": "string" },
|
|
113
|
+
"width": { "type": "string" }
|
|
114
|
+
},
|
|
115
|
+
"type": "object"
|
|
116
|
+
},
|
|
117
|
+
"ScreenMetadata": {
|
|
118
|
+
"description": "Metadata about how a screen was generated.",
|
|
119
|
+
"properties": {
|
|
120
|
+
"agentType": {
|
|
121
|
+
"description": "Which Stitch agent produced this screen.",
|
|
122
|
+
"enum": [
|
|
123
|
+
"DESIGN_AGENT_TYPE_UNSPECIFIED",
|
|
124
|
+
"TURBO_AGENT",
|
|
125
|
+
"PRO_AGENT",
|
|
126
|
+
"IMAGE_AGENT",
|
|
127
|
+
"GENIE_AGENT",
|
|
128
|
+
"IMAGE_PRO_AGENT",
|
|
129
|
+
"HATTER_AGENT",
|
|
130
|
+
"GEMINI_3_AGENT"
|
|
131
|
+
],
|
|
132
|
+
"type": "string",
|
|
133
|
+
"x-google-enum-descriptions": [
|
|
134
|
+
"Unspecified.",
|
|
135
|
+
"Faster agent with Figma export support.",
|
|
136
|
+
"Uses Gemini 3.0 Flash. Legacy 'PRO' name from when it used Gemini 2.5 Pro.",
|
|
137
|
+
"Produces image-based screens.",
|
|
138
|
+
"Genie prototype agent.",
|
|
139
|
+
"Image pro agent.",
|
|
140
|
+
"Hatter general assistant agent.",
|
|
141
|
+
"Powered by Gemini 3.0 Thinking model. The new 'Pro' agent after Gemini 3 launch."
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"componentRegions": {
|
|
145
|
+
"description": "Bounding boxes for detected UI components in the screenshot.",
|
|
146
|
+
"items": { "$ref": "#/$defs/ComponentRegion" },
|
|
147
|
+
"type": "array"
|
|
148
|
+
},
|
|
149
|
+
"displayMode": {
|
|
150
|
+
"description": "Whether frontend should display HTML or screenshot.",
|
|
151
|
+
"enum": ["DISPLAY_MODE_UNSPECIFIED", "SCREENSHOT", "HTML"],
|
|
152
|
+
"type": "string"
|
|
153
|
+
},
|
|
154
|
+
"isRemixed": { "type": "boolean" },
|
|
155
|
+
"status": {
|
|
156
|
+
"enum": ["SCREEN_STATUS_UNSPECIFIED", "IN_PROGRESS", "COMPLETE", "FAILED"],
|
|
157
|
+
"type": "string"
|
|
158
|
+
},
|
|
159
|
+
"statusMessage": { "description": "Human-readable status from the agent.", "type": "string" }
|
|
160
|
+
},
|
|
161
|
+
"type": "object"
|
|
162
|
+
},
|
|
163
|
+
"ComponentRegion": {
|
|
164
|
+
"description": "A detected UI component with its bounding box and XPath reference.",
|
|
165
|
+
"properties": {
|
|
166
|
+
"boundingBox": { "$ref": "#/$defs/BoundingBox" },
|
|
167
|
+
"description": { "type": "string" },
|
|
168
|
+
"type": {
|
|
169
|
+
"enum": [
|
|
170
|
+
"COMPONENT_TYPE_UNSPECIFIED",
|
|
171
|
+
"COMPONENT_TYPE_IMAGE",
|
|
172
|
+
"COMPONENT_TYPE_TEXT",
|
|
173
|
+
"COMPONENT_TYPE_BUTTON",
|
|
174
|
+
"COMPONENT_TYPE_INPUT",
|
|
175
|
+
"COMPONENT_TYPE_CONTAINER"
|
|
176
|
+
],
|
|
177
|
+
"type": "string"
|
|
178
|
+
},
|
|
179
|
+
"xpath": { "description": "XPath to locate this component in the HTML.", "type": "string" }
|
|
180
|
+
},
|
|
181
|
+
"type": "object"
|
|
182
|
+
},
|
|
183
|
+
"BoundingBox": {
|
|
184
|
+
"description": "Pixel coordinates relative to the screen dimensions.",
|
|
185
|
+
"properties": {
|
|
186
|
+
"height": { "format": "int32", "type": "integer" },
|
|
187
|
+
"width": { "format": "int32", "type": "integer" },
|
|
188
|
+
"x": { "format": "int32", "type": "integer" },
|
|
189
|
+
"y": { "format": "int32", "type": "integer" }
|
|
190
|
+
},
|
|
191
|
+
"type": "object"
|
|
192
|
+
},
|
|
193
|
+
"DesignTheme": {
|
|
194
|
+
"description": "Theme configuration returned with the generated design.",
|
|
195
|
+
"properties": {
|
|
196
|
+
"backgroundDark": { "description": "Hex background for dark mode.", "type": "string" },
|
|
197
|
+
"backgroundLight": { "description": "Hex background for light mode.", "type": "string" },
|
|
198
|
+
"colorMode": {
|
|
199
|
+
"enum": ["COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK"],
|
|
200
|
+
"type": "string"
|
|
201
|
+
},
|
|
202
|
+
"customColor": { "description": "Custom primary color (hex).", "type": "string" },
|
|
203
|
+
"description": { "description": "Brief aesthetic description.", "type": "string" },
|
|
204
|
+
"font": {
|
|
205
|
+
"description": "28 fonts available. Use enum values in prompts for precise control.",
|
|
206
|
+
"enum": [
|
|
207
|
+
"FONT_UNSPECIFIED",
|
|
208
|
+
"BE_VIETNAM_PRO", "EPILOGUE", "INTER", "LEXEND", "MANROPE",
|
|
209
|
+
"NEWSREADER", "NOTO_SERIF", "PLUS_JAKARTA_SANS", "PUBLIC_SANS",
|
|
210
|
+
"SPACE_GROTESK", "SPLINE_SANS", "WORK_SANS", "DOMINE",
|
|
211
|
+
"LIBRE_CASLON_TEXT", "EB_GARAMOND", "LITERATA", "SOURCE_SERIF_FOUR",
|
|
212
|
+
"MONTSERRAT", "METROPOLIS", "SOURCE_SANS_THREE", "NUNITO_SANS",
|
|
213
|
+
"ARIMO", "HANKEN_GROTESK", "RUBIK", "GEIST", "DM_SANS",
|
|
214
|
+
"IBM_PLEX_SANS", "SORA"
|
|
215
|
+
],
|
|
216
|
+
"type": "string"
|
|
217
|
+
},
|
|
218
|
+
"preset": { "type": "string" },
|
|
219
|
+
"roundness": {
|
|
220
|
+
"description": "ROUND_TWO is deprecated/unused. Safe values: ROUND_FOUR, ROUND_EIGHT, ROUND_TWELVE, ROUND_FULL.",
|
|
221
|
+
"enum": ["ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL"],
|
|
222
|
+
"type": "string"
|
|
223
|
+
},
|
|
224
|
+
"saturation": {
|
|
225
|
+
"description": "Color saturation 1–4. Higher = more vivid.",
|
|
226
|
+
"format": "int32",
|
|
227
|
+
"type": "integer"
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"type": "object"
|
|
231
|
+
},
|
|
232
|
+
"File": {
|
|
233
|
+
"properties": {
|
|
234
|
+
"downloadUrl": { "description": "FIFE base URL for images, direct URL for HTML.", "type": "string" },
|
|
235
|
+
"name": { "type": "string" }
|
|
236
|
+
},
|
|
237
|
+
"type": "object"
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"description": "Response message for GenerateScreenFromText."
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "generate_variants",
|
|
3
|
+
"description": "Generates design variants of existing screens. Explores alternative layouts, color schemes, fonts, or content with configurable creativity levels.\n\n**Input Requirements (CRITICAL):**\n1. **`projectId` (string - MANDATORY):** Numeric ID only.\n2. **`selectedScreenIds` (array - MANDATORY):** Numeric screen IDs to vary.\n3. **`variantOptions` (object - RECOMMENDED):** Controls variant generation.\n",
|
|
4
|
+
"arguments": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectId": {
|
|
8
|
+
"description": "Required. Numeric project ID only — do NOT include 'projects/' prefix.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"selectedScreenIds": {
|
|
12
|
+
"description": "Required. Array of numeric screen IDs to generate variants from.",
|
|
13
|
+
"type": "array",
|
|
14
|
+
"items": { "type": "string" }
|
|
15
|
+
},
|
|
16
|
+
"prompt": {
|
|
17
|
+
"description": "Optional. Guidance text for the variant direction.",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"variantOptions": {
|
|
21
|
+
"$ref": "#/$defs/VariantOptions",
|
|
22
|
+
"description": "Optional but recommended. Controls what and how much to vary."
|
|
23
|
+
},
|
|
24
|
+
"deviceType": {
|
|
25
|
+
"description": "Optional. Device type context.",
|
|
26
|
+
"enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
|
|
27
|
+
"type": "string"
|
|
28
|
+
},
|
|
29
|
+
"modelId": {
|
|
30
|
+
"description": "Optional. GEMINI_3_PRO for higher quality, GEMINI_3_FLASH for speed.",
|
|
31
|
+
"enum": ["MODEL_ID_UNSPECIFIED", "GEMINI_3_PRO", "GEMINI_3_FLASH"],
|
|
32
|
+
"type": "string"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": ["projectId", "selectedScreenIds"],
|
|
36
|
+
"description": "Request message for GenerateVariants.",
|
|
37
|
+
"$defs": {
|
|
38
|
+
"VariantOptions": {
|
|
39
|
+
"description": "Configuration for variant generation.",
|
|
40
|
+
"properties": {
|
|
41
|
+
"variantCount": {
|
|
42
|
+
"description": "Number of variants to generate (1-5).",
|
|
43
|
+
"type": "integer",
|
|
44
|
+
"minimum": 1,
|
|
45
|
+
"maximum": 5
|
|
46
|
+
},
|
|
47
|
+
"creativeRange": {
|
|
48
|
+
"description": "How much to deviate from the original design.",
|
|
49
|
+
"enum": ["CREATIVE_RANGE_UNSPECIFIED", "REFINE", "EXPLORE", "REIMAGINE"],
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"aspects": {
|
|
53
|
+
"description": "Which design aspects to vary.",
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": {
|
|
56
|
+
"enum": ["ASPECT_UNSPECIFIED", "LAYOUT", "COLOR_SCHEME", "IMAGES", "TEXT_FONT", "TEXT_CONTENT"],
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"type": "object"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"outputSchema": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"properties": {
|
|
68
|
+
"outputComponents": {
|
|
69
|
+
"description": "Array of output components with generated variant screens.",
|
|
70
|
+
"type": "array"
|
|
71
|
+
},
|
|
72
|
+
"projectId": { "type": "string" },
|
|
73
|
+
"sessionId": { "type": "string" }
|
|
74
|
+
},
|
|
75
|
+
"description": "Response message for GenerateVariants."
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "get_project",
|
|
3
|
+
"description": "Retrieves the details of a specific Stitch project using its project name.\n\n**Input Requirements (CRITICAL):**\n\n1. **`name` (string - MANDATORY):** The name of the project to retrieve. This must be in the format `projects/{project_id}`.\n",
|
|
4
|
+
"arguments": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"description": "Required. Identifier. The name of the project to retrieve. Format: projects/{project_id}",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"x-google-identifier": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": ["name"],
|
|
14
|
+
"description": "Request message for GetProject."
|
|
15
|
+
},
|
|
16
|
+
"outputSchema": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"properties": {
|
|
19
|
+
"backgroundTheme": { "type": "string" },
|
|
20
|
+
"createTime": { "format": "date-time", "readOnly": true, "type": "string" },
|
|
21
|
+
"designTheme": {
|
|
22
|
+
"$ref": "#/$defs/DesignTheme",
|
|
23
|
+
"description": "Output only. The theme used to generate the first design in the project.",
|
|
24
|
+
"readOnly": true
|
|
25
|
+
},
|
|
26
|
+
"deviceType": {
|
|
27
|
+
"enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
|
|
28
|
+
"readOnly": true,
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"metadata": { "$ref": "#/$defs/ProjectMetadata" },
|
|
32
|
+
"name": {
|
|
33
|
+
"description": "Identifier. Format: projects/{project}",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"x-google-identifier": true
|
|
36
|
+
},
|
|
37
|
+
"origin": {
|
|
38
|
+
"enum": ["ORIGIN_UNSPECIFIED", "STITCH", "IMPORTED_FROM_GALILEO"],
|
|
39
|
+
"readOnly": true,
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"projectType": {
|
|
43
|
+
"enum": [
|
|
44
|
+
"PROJECT_TYPE_UNSPECIFIED",
|
|
45
|
+
"TEXT_TO_UI",
|
|
46
|
+
"TEXT_TO_UI_PRO",
|
|
47
|
+
"TEXT_TO_UI_PRO_IMAGE_SPACE",
|
|
48
|
+
"IMAGE_TO_UI",
|
|
49
|
+
"IMAGE_TO_UI_PRO",
|
|
50
|
+
"PROJECT_DESIGN"
|
|
51
|
+
],
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"readTime": { "format": "date-time", "readOnly": true, "type": "string" },
|
|
55
|
+
"screenInstances": {
|
|
56
|
+
"items": { "$ref": "#/$defs/ScreenInstance" },
|
|
57
|
+
"readOnly": true,
|
|
58
|
+
"type": "array"
|
|
59
|
+
},
|
|
60
|
+
"thumbnailScreenshot": { "$ref": "#/$defs/File" },
|
|
61
|
+
"title": { "type": "string" },
|
|
62
|
+
"updateTime": { "format": "date-time", "readOnly": true, "type": "string" },
|
|
63
|
+
"visibility": {
|
|
64
|
+
"enum": ["VISIBILITY_UNSPECIFIED", "PUBLIC", "PRIVATE"],
|
|
65
|
+
"type": "string"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"$defs": {
|
|
69
|
+
"DesignTheme": {
|
|
70
|
+
"description": "The theme of the design.",
|
|
71
|
+
"properties": {
|
|
72
|
+
"backgroundDark": { "type": "string" },
|
|
73
|
+
"backgroundLight": { "type": "string" },
|
|
74
|
+
"colorMode": {
|
|
75
|
+
"enum": ["COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK"],
|
|
76
|
+
"type": "string"
|
|
77
|
+
},
|
|
78
|
+
"customColor": { "description": "Custom primary color (hex).", "type": "string" },
|
|
79
|
+
"description": { "type": "string" },
|
|
80
|
+
"font": {
|
|
81
|
+
"enum": [
|
|
82
|
+
"FONT_UNSPECIFIED",
|
|
83
|
+
"BE_VIETNAM_PRO", "EPILOGUE", "INTER", "LEXEND", "MANROPE",
|
|
84
|
+
"NEWSREADER", "NOTO_SERIF", "PLUS_JAKARTA_SANS", "PUBLIC_SANS",
|
|
85
|
+
"SPACE_GROTESK", "SPLINE_SANS", "WORK_SANS", "DOMINE",
|
|
86
|
+
"LIBRE_CASLON_TEXT", "EB_GARAMOND", "LITERATA", "SOURCE_SERIF_FOUR",
|
|
87
|
+
"MONTSERRAT", "METROPOLIS", "SOURCE_SANS_THREE", "NUNITO_SANS",
|
|
88
|
+
"ARIMO", "HANKEN_GROTESK", "RUBIK", "GEIST", "DM_SANS",
|
|
89
|
+
"IBM_PLEX_SANS", "SORA"
|
|
90
|
+
],
|
|
91
|
+
"type": "string"
|
|
92
|
+
},
|
|
93
|
+
"preset": { "type": "string" },
|
|
94
|
+
"roundness": {
|
|
95
|
+
"description": "ROUND_TWO is deprecated/unused.",
|
|
96
|
+
"enum": ["ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL"],
|
|
97
|
+
"type": "string"
|
|
98
|
+
},
|
|
99
|
+
"saturation": { "description": "1–4", "format": "int32", "type": "integer" }
|
|
100
|
+
},
|
|
101
|
+
"type": "object"
|
|
102
|
+
},
|
|
103
|
+
"File": {
|
|
104
|
+
"properties": {
|
|
105
|
+
"downloadUrl": { "type": "string" },
|
|
106
|
+
"name": { "type": "string" }
|
|
107
|
+
},
|
|
108
|
+
"type": "object"
|
|
109
|
+
},
|
|
110
|
+
"ProjectMetadata": {
|
|
111
|
+
"properties": {
|
|
112
|
+
"isRemixed": { "type": "boolean" },
|
|
113
|
+
"userRole": { "enum": ["ROLE_UNSPECIFIED", "OWNER", "READER"], "type": "string" }
|
|
114
|
+
},
|
|
115
|
+
"type": "object"
|
|
116
|
+
},
|
|
117
|
+
"ScreenInstance": {
|
|
118
|
+
"description": "An instance of a screen on the project canvas.",
|
|
119
|
+
"properties": {
|
|
120
|
+
"groupId": { "type": "string" },
|
|
121
|
+
"groupName": { "type": "string" },
|
|
122
|
+
"height": { "format": "int32", "type": "integer" },
|
|
123
|
+
"hidden": { "type": "boolean" },
|
|
124
|
+
"id": { "type": "string" },
|
|
125
|
+
"label": { "type": "string" },
|
|
126
|
+
"sourceScreen": { "description": "Format: projects/{project}/screens/{screen}", "type": "string" },
|
|
127
|
+
"variantScreenInstance": { "$ref": "#/$defs/ScreenInstance" },
|
|
128
|
+
"width": { "format": "int32", "type": "integer" },
|
|
129
|
+
"x": { "format": "int32", "type": "integer" },
|
|
130
|
+
"y": { "format": "int32", "type": "integer" }
|
|
131
|
+
},
|
|
132
|
+
"type": "object"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"description": "A project is a single app."
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "get_screen",
|
|
3
|
+
"description": "Retrieves the details of a specific screen within a project.\n\n**Input Requirements (CRITICAL):**\n\n1. **`project_id` (string - MANDATORY):** Numeric ID only — no `projects/` prefix. Example: `3780309359108792857`.\n2. **`screen_id` (string - MANDATORY):** Numeric/hex screen ID — no path prefix. Example: `88805318abe84d16add098fae3add91e`.\n",
|
|
4
|
+
"arguments": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectId": {
|
|
8
|
+
"description": "Required. Numeric project ID only — do NOT include 'projects/' prefix.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"screenId": {
|
|
12
|
+
"description": "Required. Numeric/hex screen ID — do NOT include path prefix.",
|
|
13
|
+
"type": "string"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": ["projectId", "screenId"],
|
|
17
|
+
"description": "Request message for GetScreen."
|
|
18
|
+
},
|
|
19
|
+
"outputSchema": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"deviceType": {
|
|
23
|
+
"description": "The device type of the screen.",
|
|
24
|
+
"enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"height": { "description": "Screen height in pixels.", "type": "string" },
|
|
28
|
+
"htmlCode": {
|
|
29
|
+
"$ref": "#/$defs/File",
|
|
30
|
+
"description": "The HTML code of the screen. Use downloadUrl to fetch the full HTML."
|
|
31
|
+
},
|
|
32
|
+
"name": {
|
|
33
|
+
"description": "Identifier. Format: projects/{project}/screens/{screen}",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"x-google-identifier": true
|
|
36
|
+
},
|
|
37
|
+
"screenshot": {
|
|
38
|
+
"$ref": "#/$defs/File",
|
|
39
|
+
"description": "PNG screenshot. Use downloadUrl to download."
|
|
40
|
+
},
|
|
41
|
+
"title": { "description": "Output only. Generated screen title.", "readOnly": true, "type": "string" },
|
|
42
|
+
"width": { "description": "Screen width in pixels.", "type": "string" }
|
|
43
|
+
},
|
|
44
|
+
"$defs": {
|
|
45
|
+
"File": {
|
|
46
|
+
"description": "A File resource.",
|
|
47
|
+
"properties": {
|
|
48
|
+
"downloadUrl": {
|
|
49
|
+
"description": "URL to download this file. For images, this is a FIFE base URL.",
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"name": {
|
|
53
|
+
"description": "Identifier. Format: projects/{project}/files/{file}",
|
|
54
|
+
"type": "string",
|
|
55
|
+
"x-google-identifier": true
|
|
56
|
+
},
|
|
57
|
+
"userFeedback": {
|
|
58
|
+
"$ref": "#/$defs/UserFeedback",
|
|
59
|
+
"description": "Output only. Latest feedback for this file.",
|
|
60
|
+
"readOnly": true
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"type": "object"
|
|
64
|
+
},
|
|
65
|
+
"UserFeedback": {
|
|
66
|
+
"description": "User feedback for a given interaction.",
|
|
67
|
+
"properties": {
|
|
68
|
+
"comment": { "type": "string" },
|
|
69
|
+
"designFeedbackReason": {
|
|
70
|
+
"enum": [
|
|
71
|
+
"DESIGN_FEEDBACK_REASON_UNSPECIFIED",
|
|
72
|
+
"DESIGN_DOESNT_MATCH_PROMPT",
|
|
73
|
+
"EDIT_DOESNT_MATCH_PROMPT",
|
|
74
|
+
"DESCRIPTION_DOESNT_MATCH",
|
|
75
|
+
"COMPONENT_ISSUE",
|
|
76
|
+
"INCORRECT_THEME",
|
|
77
|
+
"FIGMA_EXPORT_FAILED",
|
|
78
|
+
"OTHER"
|
|
79
|
+
],
|
|
80
|
+
"type": "string"
|
|
81
|
+
},
|
|
82
|
+
"rating": {
|
|
83
|
+
"enum": ["RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE"],
|
|
84
|
+
"type": "string"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"type": "object"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"description": "A screen generated by the agent."
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "list_design_systems",
|
|
3
|
+
"description": "Lists all available Stitch Design Systems, optionally filtered by project.\n",
|
|
4
|
+
"arguments": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectId": {
|
|
8
|
+
"description": "Optional. Numeric project ID to filter by. No 'projects/' prefix.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"description": "Request message for ListDesignSystems."
|
|
13
|
+
},
|
|
14
|
+
"outputSchema": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"assets": {
|
|
18
|
+
"description": "Array of Asset objects containing design systems.",
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"name": { "description": "Asset identifier.", "type": "string" },
|
|
24
|
+
"displayName": { "type": "string" },
|
|
25
|
+
"designSystem": { "type": "object" }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"description": "Response message for ListDesignSystems."
|
|
31
|
+
}
|
|
32
|
+
}
|