grimoire-wizard 0.3.1 → 0.4.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/README.md +173 -18
- package/dist/cli.js +503 -97
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +107 -3
- package/dist/index.js +832 -367
- package/dist/index.js.map +1 -1
- package/examples/json/all-features.json +66 -0
- package/examples/json/appstore-screenshot-wizard.json +362 -0
- package/examples/json/appstore-upload.json +104 -0
- package/examples/json/basic.json +72 -0
- package/examples/json/batch-generate.json +186 -0
- package/examples/json/brief-builder.json +519 -0
- package/examples/json/conditional.json +155 -0
- package/examples/json/cost-analyzer.json +83 -0
- package/examples/json/demo.json +130 -0
- package/examples/json/scraper-selector.json +63 -0
- package/examples/json/themed-catppuccin.json +39 -0
- package/examples/json/themed.json +103 -0
- package/examples/json/with-checks.json +47 -0
- package/examples/yaml/appstore-screenshot-wizard.yaml +321 -0
- package/examples/yaml/appstore-upload.yaml +84 -0
- package/examples/yaml/batch-generate.yaml +156 -0
- package/examples/yaml/brief-builder.yaml +429 -0
- package/examples/yaml/cost-analyzer.yaml +69 -0
- package/examples/yaml/pipeline.yaml +35 -0
- package/examples/yaml/scraper-selector.yaml +52 -0
- package/examples/yaml/themed-catppuccin.yaml +31 -0
- package/package.json +1 -1
- /package/examples/{all-features.yaml → yaml/all-features.yaml} +0 -0
- /package/examples/{base.yaml → yaml/base.yaml} +0 -0
- /package/examples/{basic.yaml → yaml/basic.yaml} +0 -0
- /package/examples/{conditional.yaml → yaml/conditional.yaml} +0 -0
- /package/examples/{demo.yaml → yaml/demo.yaml} +0 -0
- /package/examples/{ebay-mcp-setup.yaml → yaml/ebay-mcp-setup.yaml} +0 -0
- /package/examples/{extended.yaml → yaml/extended.yaml} +0 -0
- /package/examples/{themed.yaml → yaml/themed.yaml} +0 -0
- /package/examples/{with-checks.yaml → yaml/with-checks.yaml} +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "All Features Showcase",
|
|
4
|
+
"description": "Demonstrates search, editor, path, toggle, and step groups"
|
|
5
|
+
},
|
|
6
|
+
"steps": [
|
|
7
|
+
{
|
|
8
|
+
"id": "search-framework",
|
|
9
|
+
"type": "search",
|
|
10
|
+
"group": "Project Setup",
|
|
11
|
+
"message": "Search for a framework",
|
|
12
|
+
"options": [
|
|
13
|
+
{ "value": "nextjs", "label": "Next.js" },
|
|
14
|
+
{ "value": "remix", "label": "Remix" },
|
|
15
|
+
{ "value": "astro", "label": "Astro" },
|
|
16
|
+
{ "value": "sveltekit", "label": "SvelteKit" },
|
|
17
|
+
{ "value": "nuxt", "label": "Nuxt" },
|
|
18
|
+
{ "value": "gatsby", "label": "Gatsby" }
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "project-path",
|
|
23
|
+
"type": "path",
|
|
24
|
+
"group": "Project Setup",
|
|
25
|
+
"message": "Where should we create the project?",
|
|
26
|
+
"placeholder": "./my-project",
|
|
27
|
+
"validate": [
|
|
28
|
+
{ "rule": "required" }
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "use-typescript",
|
|
33
|
+
"type": "toggle",
|
|
34
|
+
"group": "Configuration",
|
|
35
|
+
"message": "TypeScript?",
|
|
36
|
+
"active": "Yes, TypeScript",
|
|
37
|
+
"inactive": "No, JavaScript",
|
|
38
|
+
"default": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "readme-content",
|
|
42
|
+
"type": "editor",
|
|
43
|
+
"group": "Configuration",
|
|
44
|
+
"message": "Write your README content",
|
|
45
|
+
"required": false
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "port",
|
|
49
|
+
"type": "number",
|
|
50
|
+
"group": "Configuration",
|
|
51
|
+
"message": "Dev server port",
|
|
52
|
+
"default": 3000,
|
|
53
|
+
"min": 1024,
|
|
54
|
+
"max": 65535
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "confirm",
|
|
58
|
+
"type": "confirm",
|
|
59
|
+
"message": "Create project?",
|
|
60
|
+
"next": "__done__"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"output": {
|
|
64
|
+
"format": "json"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "App Store Screenshot Wizard",
|
|
4
|
+
"description": "Generate beautiful AI-powered app store screenshots",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"review": true
|
|
7
|
+
},
|
|
8
|
+
"theme": {
|
|
9
|
+
"preset": "catppuccin"
|
|
10
|
+
},
|
|
11
|
+
"steps": [
|
|
12
|
+
{
|
|
13
|
+
"id": "generation-mode",
|
|
14
|
+
"type": "select",
|
|
15
|
+
"group": "Generation Setup",
|
|
16
|
+
"message": "What would you like to generate?",
|
|
17
|
+
"default": "app_store_screenshots",
|
|
18
|
+
"options": [
|
|
19
|
+
{ "value": "app_store_screenshots", "label": "App Store Screenshots", "hint": "Device-framed marketing screenshots with store-specific dimensions" },
|
|
20
|
+
{ "value": "app_ui", "label": "App UI Screens", "hint": "Consistent app UI screens driven by a concept brief design system" },
|
|
21
|
+
{ "value": "web_ui", "label": "Web UI Screens", "hint": "SaaS dashboards, landing pages, and web application screens" },
|
|
22
|
+
{ "value": "design_system", "label": "Design System Preview", "hint": "Component and token showcase for visual consistency review" }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "platform-preset",
|
|
27
|
+
"type": "select",
|
|
28
|
+
"group": "Generation Setup",
|
|
29
|
+
"message": "Target platform",
|
|
30
|
+
"when": {
|
|
31
|
+
"field": "generation-mode",
|
|
32
|
+
"equals": "app_store_screenshots"
|
|
33
|
+
},
|
|
34
|
+
"default": "custom",
|
|
35
|
+
"options": [
|
|
36
|
+
{ "value": "app_store", "label": "Apple App Store", "hint": "iPhone + iPad" },
|
|
37
|
+
{ "value": "google_play", "label": "Google Play Store", "hint": "Phone + Tablet" },
|
|
38
|
+
{ "value": "both", "label": "Both Platforms", "hint": "App Store + Google Play" },
|
|
39
|
+
{ "value": "custom", "label": "Custom Selection", "hint": "Choose devices manually" }
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "providers",
|
|
44
|
+
"type": "multiselect",
|
|
45
|
+
"group": "Generation Setup",
|
|
46
|
+
"message": "Select AI providers",
|
|
47
|
+
"min": 1,
|
|
48
|
+
"default": ["gemini"],
|
|
49
|
+
"options": [
|
|
50
|
+
{ "value": "gemini", "label": "Gemini" },
|
|
51
|
+
{ "value": "openai", "label": "OpenAI" }
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "app-name",
|
|
56
|
+
"type": "text",
|
|
57
|
+
"group": "App Details",
|
|
58
|
+
"message": "App name",
|
|
59
|
+
"validate": [
|
|
60
|
+
{ "rule": "required" },
|
|
61
|
+
{ "rule": "minLength", "value": 1 }
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "app-description",
|
|
66
|
+
"type": "text",
|
|
67
|
+
"group": "App Details",
|
|
68
|
+
"message": "Describe your app",
|
|
69
|
+
"validate": [
|
|
70
|
+
{ "rule": "required" },
|
|
71
|
+
{ "rule": "minLength", "value": 10 }
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "visual-style",
|
|
76
|
+
"type": "select",
|
|
77
|
+
"group": "Visual Style",
|
|
78
|
+
"message": "Visual style",
|
|
79
|
+
"default": "auto",
|
|
80
|
+
"options": [
|
|
81
|
+
{ "value": "auto", "label": "Auto (AI picks best style)", "hint": "Let the Creative Director choose" },
|
|
82
|
+
{ "value": "photorealistic", "label": "Photorealistic" },
|
|
83
|
+
{ "value": "3d-cartoon", "label": "3D Cartoon" },
|
|
84
|
+
{ "value": "isometric", "label": "Isometric" },
|
|
85
|
+
{ "value": "claymorphism", "label": "Claymorphism" },
|
|
86
|
+
{ "value": "flat-2d", "label": "Flat 2D" },
|
|
87
|
+
{ "value": "illustration", "label": "Illustration" },
|
|
88
|
+
{ "value": "freestyle", "label": "Freestyle (AI-selected)", "hint": "AI picks the most distinctive style" }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "screenshot-count",
|
|
93
|
+
"type": "number",
|
|
94
|
+
"group": "Content Settings",
|
|
95
|
+
"message": "How many screenshots?",
|
|
96
|
+
"default": 10,
|
|
97
|
+
"min": 1,
|
|
98
|
+
"max": 20
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "reference-images",
|
|
102
|
+
"type": "select",
|
|
103
|
+
"group": "Content Settings",
|
|
104
|
+
"message": "Reference images for UI matching",
|
|
105
|
+
"default": "none",
|
|
106
|
+
"options": [
|
|
107
|
+
{ "value": "none", "label": "None", "hint": "Generate UI from description only" },
|
|
108
|
+
{ "value": "single", "label": "Single screenshot", "hint": "Provide one reference image" },
|
|
109
|
+
{ "value": "folder", "label": "Folder of screenshots", "hint": "Multiple UI screenshots for 1:1 matching" }
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "reference-image-path",
|
|
114
|
+
"type": "text",
|
|
115
|
+
"group": "Content Settings",
|
|
116
|
+
"message": "Path to screenshot image",
|
|
117
|
+
"when": {
|
|
118
|
+
"field": "reference-images",
|
|
119
|
+
"equals": "single"
|
|
120
|
+
},
|
|
121
|
+
"placeholder": "/path/to/screenshot.png",
|
|
122
|
+
"validate": [
|
|
123
|
+
{ "rule": "required" }
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "reference-folder-path",
|
|
128
|
+
"type": "text",
|
|
129
|
+
"group": "Content Settings",
|
|
130
|
+
"message": "Path to folder with UI screenshots",
|
|
131
|
+
"when": {
|
|
132
|
+
"field": "reference-images",
|
|
133
|
+
"equals": "folder"
|
|
134
|
+
},
|
|
135
|
+
"placeholder": "/path/to/screenshots/",
|
|
136
|
+
"validate": [
|
|
137
|
+
{ "rule": "required" }
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "design-reference",
|
|
142
|
+
"type": "select",
|
|
143
|
+
"group": "Content Settings",
|
|
144
|
+
"message": "Design reference",
|
|
145
|
+
"default": "none",
|
|
146
|
+
"options": [
|
|
147
|
+
{ "value": "none", "label": "None", "hint": "AI picks its own creative direction" },
|
|
148
|
+
{ "value": "dribbble", "label": "From dribbble-inspirations", "hint": "Pick a professional design to match" },
|
|
149
|
+
{ "value": "custom", "label": "Custom image path", "hint": "Provide any image file as reference" }
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "design-reference-path",
|
|
154
|
+
"type": "text",
|
|
155
|
+
"group": "Content Settings",
|
|
156
|
+
"message": "Path to design reference image",
|
|
157
|
+
"when": {
|
|
158
|
+
"field": "design-reference",
|
|
159
|
+
"equals": "custom"
|
|
160
|
+
},
|
|
161
|
+
"placeholder": "/path/to/design-reference.png",
|
|
162
|
+
"validate": [
|
|
163
|
+
{ "rule": "required" }
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "device-targets",
|
|
168
|
+
"type": "multiselect",
|
|
169
|
+
"group": "Device Targets",
|
|
170
|
+
"message": "Target devices",
|
|
171
|
+
"when": {
|
|
172
|
+
"any": [
|
|
173
|
+
{ "field": "platform-preset", "equals": "custom" },
|
|
174
|
+
{ "field": "generation-mode", "notEquals": "app_store_screenshots" }
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"min": 1,
|
|
178
|
+
"default": ["iphone"],
|
|
179
|
+
"options": [
|
|
180
|
+
{ "value": "iphone", "label": "iPhone" },
|
|
181
|
+
{ "value": "ipad", "label": "iPad" },
|
|
182
|
+
{ "value": "watch", "label": "Apple Watch" },
|
|
183
|
+
{ "value": "android-phone", "label": "Android Phone" },
|
|
184
|
+
{ "value": "android-tablet", "label": "Android Tablet" }
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "gemini-image-model",
|
|
189
|
+
"type": "select",
|
|
190
|
+
"group": "AI Models",
|
|
191
|
+
"message": "Gemini image generation model",
|
|
192
|
+
"when": {
|
|
193
|
+
"field": "providers",
|
|
194
|
+
"includes": "gemini"
|
|
195
|
+
},
|
|
196
|
+
"default": "gemini-3.1-flash-image-preview",
|
|
197
|
+
"options": [
|
|
198
|
+
{ "value": "gemini-3.1-flash-image-preview", "label": "Flash (Fast & Cheap)", "hint": "Near-Pro quality at ~$0.067/img" },
|
|
199
|
+
{ "value": "gemini-3-pro-image-preview", "label": "Pro (Best Quality)", "hint": "Top quality, 94% text accuracy — $0.134/img" }
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "gemini-text-model",
|
|
204
|
+
"type": "select",
|
|
205
|
+
"group": "AI Models",
|
|
206
|
+
"message": "Gemini pipeline text model",
|
|
207
|
+
"when": {
|
|
208
|
+
"field": "providers",
|
|
209
|
+
"includes": "gemini"
|
|
210
|
+
},
|
|
211
|
+
"default": "gemini-2.5-flash",
|
|
212
|
+
"options": [
|
|
213
|
+
{ "value": "gemini-2.5-flash", "label": "Gemini Flash (Fast)", "hint": "Fast pipeline stages, good quality" },
|
|
214
|
+
{ "value": "gemini-2.5-pro", "label": "Gemini Pro (Best Prompts)", "hint": "Higher quality prompt refinement" },
|
|
215
|
+
{ "value": "claude-sonnet-4-20250514", "label": "Claude Sonnet 4 (Scoring)", "hint": "Excellent visual judgment" },
|
|
216
|
+
{ "value": "claude-haiku-4-20250414", "label": "Claude Haiku 4 (Fast Scoring)", "hint": "Fast and cheap visual scoring" }
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "openai-image-model",
|
|
221
|
+
"type": "select",
|
|
222
|
+
"group": "AI Models",
|
|
223
|
+
"message": "OpenAI image generation model",
|
|
224
|
+
"when": {
|
|
225
|
+
"field": "providers",
|
|
226
|
+
"includes": "openai"
|
|
227
|
+
},
|
|
228
|
+
"default": "gpt-image-1",
|
|
229
|
+
"options": [
|
|
230
|
+
{ "value": "gpt-image-1", "label": "GPT Image 1", "hint": "OpenAI image generation model" }
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "openai-text-model",
|
|
235
|
+
"type": "select",
|
|
236
|
+
"group": "AI Models",
|
|
237
|
+
"message": "OpenAI pipeline text model",
|
|
238
|
+
"when": {
|
|
239
|
+
"field": "providers",
|
|
240
|
+
"includes": "openai"
|
|
241
|
+
},
|
|
242
|
+
"default": "gpt-4o-mini",
|
|
243
|
+
"options": [
|
|
244
|
+
{ "value": "gpt-4o", "label": "GPT-4o", "hint": "Advanced reasoning and generation" },
|
|
245
|
+
{ "value": "gpt-4o-mini", "label": "GPT-4o Mini", "hint": "Fast and efficient generation" }
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"id": "headline-prefix",
|
|
250
|
+
"type": "text",
|
|
251
|
+
"group": "Marketing Copy",
|
|
252
|
+
"message": "Headline prefix above device",
|
|
253
|
+
"placeholder": "Leave empty to omit",
|
|
254
|
+
"default": "",
|
|
255
|
+
"required": false
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "cta-badge",
|
|
259
|
+
"type": "text",
|
|
260
|
+
"group": "Marketing Copy",
|
|
261
|
+
"message": "CTA badge text",
|
|
262
|
+
"placeholder": "Leave empty for no badge",
|
|
263
|
+
"default": "",
|
|
264
|
+
"required": false
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "badge-position",
|
|
268
|
+
"type": "select",
|
|
269
|
+
"group": "Marketing Copy",
|
|
270
|
+
"message": "Badge position",
|
|
271
|
+
"when": {
|
|
272
|
+
"field": "cta-badge",
|
|
273
|
+
"isNotEmpty": true
|
|
274
|
+
},
|
|
275
|
+
"default": "bottom-right",
|
|
276
|
+
"options": [
|
|
277
|
+
{ "value": "bottom-right", "label": "Bottom-right" },
|
|
278
|
+
{ "value": "bottom-left", "label": "Bottom-left" },
|
|
279
|
+
{ "value": "top-right", "label": "Top-right" }
|
|
280
|
+
]
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "want-locales",
|
|
284
|
+
"type": "confirm",
|
|
285
|
+
"group": "Localization",
|
|
286
|
+
"message": "Generate for multiple languages?",
|
|
287
|
+
"default": false
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"id": "locales",
|
|
291
|
+
"type": "multiselect",
|
|
292
|
+
"group": "Localization",
|
|
293
|
+
"message": "Select target locales",
|
|
294
|
+
"when": {
|
|
295
|
+
"field": "want-locales",
|
|
296
|
+
"equals": true
|
|
297
|
+
},
|
|
298
|
+
"min": 1,
|
|
299
|
+
"options": [
|
|
300
|
+
{ "value": "en", "label": "English" },
|
|
301
|
+
{ "value": "ja", "label": "Japanese" },
|
|
302
|
+
{ "value": "de", "label": "German" },
|
|
303
|
+
{ "value": "es", "label": "Spanish" },
|
|
304
|
+
{ "value": "fr", "label": "French" },
|
|
305
|
+
{ "value": "pt-BR", "label": "Portuguese (Brazil)" },
|
|
306
|
+
{ "value": "ko", "label": "Korean" },
|
|
307
|
+
{ "value": "zh-CN", "label": "Chinese (Simplified)" },
|
|
308
|
+
{ "value": "it", "label": "Italian" },
|
|
309
|
+
{ "value": "ar", "label": "Arabic" }
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "advanced-options",
|
|
314
|
+
"type": "multiselect",
|
|
315
|
+
"group": "Advanced Options",
|
|
316
|
+
"message": "Advanced options",
|
|
317
|
+
"required": false,
|
|
318
|
+
"options": [
|
|
319
|
+
{ "value": "variations", "label": "Style variations", "hint": "Generate multiple style sets" },
|
|
320
|
+
{ "value": "mixed", "label": "Mixed prompts", "hint": "Different style per image" },
|
|
321
|
+
{ "value": "landscape", "label": "Landscape orientation", "hint": "2778x1284 instead of portrait" }
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"id": "variation-styles",
|
|
326
|
+
"type": "multiselect",
|
|
327
|
+
"group": "Advanced Options",
|
|
328
|
+
"message": "Select styles for variations",
|
|
329
|
+
"when": {
|
|
330
|
+
"field": "advanced-options",
|
|
331
|
+
"includes": "variations"
|
|
332
|
+
},
|
|
333
|
+
"min": 1,
|
|
334
|
+
"options": [
|
|
335
|
+
{ "value": "photorealistic", "label": "Photorealistic" },
|
|
336
|
+
{ "value": "3d-cartoon", "label": "3D Cartoon" },
|
|
337
|
+
{ "value": "isometric", "label": "Isometric" },
|
|
338
|
+
{ "value": "claymorphism", "label": "Claymorphism" },
|
|
339
|
+
{ "value": "flat-2d", "label": "Flat 2D" },
|
|
340
|
+
{ "value": "illustration", "label": "Illustration" }
|
|
341
|
+
]
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"id": "confirm-generate",
|
|
345
|
+
"type": "confirm",
|
|
346
|
+
"group": "Confirmation",
|
|
347
|
+
"message": "Start generation?",
|
|
348
|
+
"default": true
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"id": "save-template-name",
|
|
352
|
+
"type": "text",
|
|
353
|
+
"group": "Confirmation",
|
|
354
|
+
"message": "Save as template? (enter name or leave empty to skip)",
|
|
355
|
+
"default": "",
|
|
356
|
+
"required": false
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
"output": {
|
|
360
|
+
"format": "json"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "App Store Connect Upload",
|
|
4
|
+
"description": "Upload screenshots to App Store Connect",
|
|
5
|
+
"version": "1.0.0"
|
|
6
|
+
},
|
|
7
|
+
"theme": {
|
|
8
|
+
"preset": "monokai"
|
|
9
|
+
},
|
|
10
|
+
"steps": [
|
|
11
|
+
{
|
|
12
|
+
"id": "run-id",
|
|
13
|
+
"type": "text",
|
|
14
|
+
"group": "Run Selection",
|
|
15
|
+
"message": "Run ID (from generation results)",
|
|
16
|
+
"validate": [
|
|
17
|
+
{ "rule": "required" }
|
|
18
|
+
],
|
|
19
|
+
"placeholder": "e.g., 2024-01-15T10-30-00"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "asc-info-note",
|
|
23
|
+
"type": "note",
|
|
24
|
+
"group": "ASC Credentials",
|
|
25
|
+
"message": "App Store Connect API Key",
|
|
26
|
+
"description": "You need an App Store Connect API key. Create one at https://appstoreconnect.apple.com/access/api"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "issuer-id",
|
|
30
|
+
"type": "text",
|
|
31
|
+
"group": "ASC Credentials",
|
|
32
|
+
"message": "Issuer ID",
|
|
33
|
+
"validate": [
|
|
34
|
+
{ "rule": "required" }
|
|
35
|
+
],
|
|
36
|
+
"placeholder": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "key-id",
|
|
40
|
+
"type": "text",
|
|
41
|
+
"group": "ASC Credentials",
|
|
42
|
+
"message": "Key ID",
|
|
43
|
+
"validate": [
|
|
44
|
+
{ "rule": "required" }
|
|
45
|
+
],
|
|
46
|
+
"placeholder": "XXXXXXXXXX"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "key-path",
|
|
50
|
+
"type": "path",
|
|
51
|
+
"group": "ASC Credentials",
|
|
52
|
+
"message": "Path to API key (.p8 file)",
|
|
53
|
+
"validate": [
|
|
54
|
+
{ "rule": "required" }
|
|
55
|
+
],
|
|
56
|
+
"placeholder": "~/.appstoreconnect/AuthKey_XXXXXXXXXX.p8"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "app-id",
|
|
60
|
+
"type": "text",
|
|
61
|
+
"group": "App Details",
|
|
62
|
+
"message": "App ID",
|
|
63
|
+
"validate": [
|
|
64
|
+
{ "rule": "required" }
|
|
65
|
+
],
|
|
66
|
+
"placeholder": "e.g., 1234567890"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "localization-id",
|
|
70
|
+
"type": "text",
|
|
71
|
+
"group": "App Details",
|
|
72
|
+
"message": "Localization ID",
|
|
73
|
+
"validate": [
|
|
74
|
+
{ "rule": "required" }
|
|
75
|
+
],
|
|
76
|
+
"placeholder": "e.g., en-US"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "display-type",
|
|
80
|
+
"type": "select",
|
|
81
|
+
"group": "App Details",
|
|
82
|
+
"message": "Display type",
|
|
83
|
+
"options": [
|
|
84
|
+
{ "value": "APP_IPHONE_67", "label": "iPhone 6.7\"" },
|
|
85
|
+
{ "value": "APP_IPHONE_65", "label": "iPhone 6.5\"" },
|
|
86
|
+
{ "value": "APP_IPAD_PRO_129", "label": "iPad Pro 12.9\"" },
|
|
87
|
+
{ "value": "APP_IPAD_PRO_3GEN_129", "label": "iPad Pro 12.9\" (3rd Gen)" },
|
|
88
|
+
{ "value": "APP_APPLE_WATCH_ULTRA", "label": "Apple Watch Ultra" },
|
|
89
|
+
{ "value": "APP_APPLE_WATCH_SERIES_7", "label": "Apple Watch Series 7" }
|
|
90
|
+
],
|
|
91
|
+
"default": "APP_IPHONE_67"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "confirm-upload",
|
|
95
|
+
"type": "confirm",
|
|
96
|
+
"group": "Confirmation",
|
|
97
|
+
"message": "Upload screenshots to App Store Connect?",
|
|
98
|
+
"default": true
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"output": {
|
|
102
|
+
"format": "json"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "Project Setup Wizard",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Set up a new project with best practices"
|
|
6
|
+
},
|
|
7
|
+
"steps": [
|
|
8
|
+
{
|
|
9
|
+
"id": "project-name",
|
|
10
|
+
"type": "text",
|
|
11
|
+
"message": "What is your project name?",
|
|
12
|
+
"placeholder": "my-awesome-project",
|
|
13
|
+
"validate": [
|
|
14
|
+
{ "rule": "required" },
|
|
15
|
+
{ "rule": "pattern", "value": "^[a-z][a-z0-9-]*$", "message": "Must be lowercase with hyphens only" },
|
|
16
|
+
{ "rule": "minLength", "value": 2 }
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "description",
|
|
21
|
+
"type": "text",
|
|
22
|
+
"message": "Describe your project in one line",
|
|
23
|
+
"required": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "language",
|
|
27
|
+
"type": "select",
|
|
28
|
+
"message": "Choose a language",
|
|
29
|
+
"options": [
|
|
30
|
+
{ "value": "typescript", "label": "TypeScript" },
|
|
31
|
+
{ "value": "javascript", "label": "JavaScript" },
|
|
32
|
+
{ "value": "python", "label": "Python" },
|
|
33
|
+
{ "value": "go", "label": "Go" }
|
|
34
|
+
],
|
|
35
|
+
"default": "typescript"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "features",
|
|
39
|
+
"type": "multiselect",
|
|
40
|
+
"message": "Select features to include",
|
|
41
|
+
"options": [
|
|
42
|
+
{ "value": "linting", "label": "Linting (ESLint/Ruff)", "hint": "Code quality checks" },
|
|
43
|
+
{ "value": "formatting", "label": "Formatting (Prettier/Black)", "hint": "Auto-format on save" },
|
|
44
|
+
{ "value": "testing", "label": "Testing framework", "hint": "Vitest/Jest/Pytest" },
|
|
45
|
+
{ "value": "ci", "label": "CI/CD pipeline", "hint": "GitHub Actions" },
|
|
46
|
+
{ "value": "docker", "label": "Docker support" }
|
|
47
|
+
],
|
|
48
|
+
"min": 1
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "license",
|
|
52
|
+
"type": "select",
|
|
53
|
+
"message": "Choose a license",
|
|
54
|
+
"options": [
|
|
55
|
+
{ "value": "mit", "label": "MIT", "hint": "Permissive, simple" },
|
|
56
|
+
{ "value": "apache-2.0", "label": "Apache 2.0", "hint": "Permissive, patent protection" },
|
|
57
|
+
{ "value": "gpl-3.0", "label": "GPL 3.0", "hint": "Copyleft" },
|
|
58
|
+
{ "value": "none", "label": "No license" }
|
|
59
|
+
],
|
|
60
|
+
"default": "mit"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "confirm",
|
|
64
|
+
"type": "confirm",
|
|
65
|
+
"message": "Create project with these settings?",
|
|
66
|
+
"next": "__done__"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"output": {
|
|
70
|
+
"format": "json"
|
|
71
|
+
}
|
|
72
|
+
}
|