@prave/shared 1.4.15 → 1.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schemas/install.schema.d.ts +1 -0
- package/dist/schemas/install.schema.d.ts.map +1 -1
- package/dist/schemas/search.schema.d.ts +3 -0
- package/dist/schemas/search.schema.d.ts.map +1 -1
- package/dist/schemas/skill-dependency.schema.d.ts +1 -0
- package/dist/schemas/skill-dependency.schema.d.ts.map +1 -1
- package/dist/schemas/skill.schema.d.ts +25 -0
- package/dist/schemas/skill.schema.d.ts.map +1 -1
- package/dist/schemas/skill.schema.js +21 -0
- package/package.json +1 -1
|
@@ -40,6 +40,7 @@ export declare const installRowSchema: z.ZodObject<{
|
|
|
40
40
|
license: z.ZodDefault<z.ZodString>;
|
|
41
41
|
category: z.ZodNullable<z.ZodString>;
|
|
42
42
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
43
|
+
extracted_triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
43
44
|
install_count: z.ZodDefault<z.ZodNumber>;
|
|
44
45
|
bookmark_count: z.ZodDefault<z.ZodNumber>;
|
|
45
46
|
is_verified: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/install.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,4DAA4D;AAC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAMxB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEnD,wDAAwD;AACxD,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"install.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/install.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,4DAA4D;AAC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAMxB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEnD,wDAAwD;AACxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU3B,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjE,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,wBAAwB;IACnC,0EAA0E;;;;;;EAE1E,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
|
|
@@ -15,6 +15,7 @@ export declare const skillSearchHitSchema: z.ZodObject<{
|
|
|
15
15
|
license: z.ZodDefault<z.ZodString>;
|
|
16
16
|
category: z.ZodNullable<z.ZodString>;
|
|
17
17
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
18
|
+
extracted_triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
18
19
|
install_count: z.ZodDefault<z.ZodNumber>;
|
|
19
20
|
bookmark_count: z.ZodDefault<z.ZodNumber>;
|
|
20
21
|
is_verified: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -118,6 +119,7 @@ export declare const skillSearchHitSchema: z.ZodObject<{
|
|
|
118
119
|
source_repo: string | null;
|
|
119
120
|
license: string;
|
|
120
121
|
tags: string[];
|
|
122
|
+
extracted_triggers: string[];
|
|
121
123
|
bookmark_count: number;
|
|
122
124
|
is_verified: boolean;
|
|
123
125
|
price_cents: number;
|
|
@@ -171,6 +173,7 @@ export declare const skillSearchHitSchema: z.ZodObject<{
|
|
|
171
173
|
visibility?: "public" | "private" | undefined;
|
|
172
174
|
license?: string | undefined;
|
|
173
175
|
tags?: string[] | undefined;
|
|
176
|
+
extracted_triggers?: string[] | undefined;
|
|
174
177
|
bookmark_count?: number | undefined;
|
|
175
178
|
is_verified?: boolean | undefined;
|
|
176
179
|
price_cents?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/search.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"search.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/search.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,gDAAgD;AAChD,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,gDAAgD;AAChD,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;IAEjC,iFAAiF;;;;;;;;EAEjF,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;IAClC,kFAAkF;;IAElF,0EAA0E;;;;;;;;EAE1E,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
@@ -44,6 +44,7 @@ export declare const dependencyRowSchema: z.ZodObject<{
|
|
|
44
44
|
license: z.ZodDefault<z.ZodString>;
|
|
45
45
|
category: z.ZodNullable<z.ZodString>;
|
|
46
46
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
47
|
+
extracted_triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
47
48
|
install_count: z.ZodDefault<z.ZodNumber>;
|
|
48
49
|
bookmark_count: z.ZodDefault<z.ZodNumber>;
|
|
49
50
|
is_verified: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-dependency.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill-dependency.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"skill-dependency.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill-dependency.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC3B,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAC3D;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAOnC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
|
|
@@ -70,6 +70,17 @@ export declare const skillSchema: z.ZodObject<{
|
|
|
70
70
|
license: z.ZodDefault<z.ZodString>;
|
|
71
71
|
category: z.ZodNullable<z.ZodString>;
|
|
72
72
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
73
|
+
/**
|
|
74
|
+
* Server-extracted triggers — parsed from the SKILL.md content by
|
|
75
|
+
* `extract_triggers_from_md()` (migration 057). Frontmatter
|
|
76
|
+
* `triggers:` list plus prose patterns ("Load on …", "Triggers: …",
|
|
77
|
+
* "Auto-loads when …"). Recomputed on every content write via the
|
|
78
|
+
* `skills_refresh_extracted_triggers` trigger so the value never
|
|
79
|
+
* drifts. The Discover detail page renders these as chips and only
|
|
80
|
+
* falls back to tags / "Claude reads the description" when this
|
|
81
|
+
* array is empty.
|
|
82
|
+
*/
|
|
83
|
+
extracted_triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
73
84
|
install_count: z.ZodDefault<z.ZodNumber>;
|
|
74
85
|
bookmark_count: z.ZodDefault<z.ZodNumber>;
|
|
75
86
|
is_verified: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -182,6 +193,7 @@ export declare const skillSchema: z.ZodObject<{
|
|
|
182
193
|
source_repo: string | null;
|
|
183
194
|
license: string;
|
|
184
195
|
tags: string[];
|
|
196
|
+
extracted_triggers: string[];
|
|
185
197
|
bookmark_count: number;
|
|
186
198
|
is_verified: boolean;
|
|
187
199
|
price_cents: number;
|
|
@@ -233,6 +245,7 @@ export declare const skillSchema: z.ZodObject<{
|
|
|
233
245
|
visibility?: "public" | "private" | undefined;
|
|
234
246
|
license?: string | undefined;
|
|
235
247
|
tags?: string[] | undefined;
|
|
248
|
+
extracted_triggers?: string[] | undefined;
|
|
236
249
|
bookmark_count?: number | undefined;
|
|
237
250
|
is_verified?: boolean | undefined;
|
|
238
251
|
price_cents?: number | undefined;
|
|
@@ -494,14 +507,26 @@ export declare const autoSkillFromRepoRequestSchema: z.ZodObject<{
|
|
|
494
507
|
* behind an "Advanced" disclosure in the wizard.
|
|
495
508
|
*/
|
|
496
509
|
custom_instructions: z.ZodOptional<z.ZodString>;
|
|
510
|
+
/**
|
|
511
|
+
* Optional display name override. When empty, the generator picks
|
|
512
|
+
* a name from the README / repo title — which historically went
|
|
513
|
+
* long ("Testing Node/TypeScript API and React Web Apps") and
|
|
514
|
+
* looked terrible in the sidebar / project switcher. The wizard
|
|
515
|
+
* surfaces this on step 1 as a soft suggestion so users can
|
|
516
|
+
* shorten the title up front without round-tripping through the
|
|
517
|
+
* editor settings drawer.
|
|
518
|
+
*/
|
|
519
|
+
name: z.ZodOptional<z.ZodString>;
|
|
497
520
|
}, "strip", z.ZodTypeAny, {
|
|
498
521
|
repo_url: string;
|
|
522
|
+
name?: string | undefined;
|
|
499
523
|
category?: string | undefined;
|
|
500
524
|
focus?: string | undefined;
|
|
501
525
|
triggers?: string[] | undefined;
|
|
502
526
|
custom_instructions?: string | undefined;
|
|
503
527
|
}, {
|
|
504
528
|
repo_url: string;
|
|
529
|
+
name?: string | undefined;
|
|
505
530
|
category?: string | undefined;
|
|
506
531
|
focus?: string | undefined;
|
|
507
532
|
triggers?: string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,qBAAqB,kCAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"skill.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,qBAAqB,kCAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;IAgBtB;;;;;;;;;OASG;;;;;;;IAQH;;;;;OAKG;;;;IAIH,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;IAElE,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE7D,6EAA6E;;IAE7E,mEAAmE;;IAEnE,+EAA+E;;IAE/E,gGAAgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchG,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;IA4B/B,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3E,CAAA;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,eAAe,2DAAyD,CAAA;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAI/D;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;IAQzC;;;OAGG;;IAEH;;;;;;;OAOG;;IAEH;;;;;OAKG;;IAEH;;;;;;OAMG;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;;;;;EAEH,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAIrF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB"}
|
|
@@ -39,6 +39,17 @@ export const skillSchema = z.object({
|
|
|
39
39
|
license: z.string().default('MIT'),
|
|
40
40
|
category: z.string().nullable(),
|
|
41
41
|
tags: z.array(z.string()).default([]),
|
|
42
|
+
/**
|
|
43
|
+
* Server-extracted triggers — parsed from the SKILL.md content by
|
|
44
|
+
* `extract_triggers_from_md()` (migration 057). Frontmatter
|
|
45
|
+
* `triggers:` list plus prose patterns ("Load on …", "Triggers: …",
|
|
46
|
+
* "Auto-loads when …"). Recomputed on every content write via the
|
|
47
|
+
* `skills_refresh_extracted_triggers` trigger so the value never
|
|
48
|
+
* drifts. The Discover detail page renders these as chips and only
|
|
49
|
+
* falls back to tags / "Claude reads the description" when this
|
|
50
|
+
* array is empty.
|
|
51
|
+
*/
|
|
52
|
+
extracted_triggers: z.array(z.string()).default([]),
|
|
42
53
|
install_count: z.number().int().nonnegative().default(0),
|
|
43
54
|
bookmark_count: z.number().int().nonnegative().default(0),
|
|
44
55
|
is_verified: z.boolean().default(false),
|
|
@@ -172,6 +183,16 @@ export const autoSkillFromRepoRequestSchema = z.object({
|
|
|
172
183
|
* behind an "Advanced" disclosure in the wizard.
|
|
173
184
|
*/
|
|
174
185
|
custom_instructions: z.string().min(1).max(800).optional(),
|
|
186
|
+
/**
|
|
187
|
+
* Optional display name override. When empty, the generator picks
|
|
188
|
+
* a name from the README / repo title — which historically went
|
|
189
|
+
* long ("Testing Node/TypeScript API and React Web Apps") and
|
|
190
|
+
* looked terrible in the sidebar / project switcher. The wizard
|
|
191
|
+
* surfaces this on step 1 as a soft suggestion so users can
|
|
192
|
+
* shorten the title up front without round-tripping through the
|
|
193
|
+
* editor settings drawer.
|
|
194
|
+
*/
|
|
195
|
+
name: z.string().trim().min(1).max(60).optional(),
|
|
175
196
|
});
|
|
176
197
|
/* ─── Bulk sync — used by `prave sync` ─────────────────────────── */
|
|
177
198
|
/**
|