@teamix-evo/registry 0.2.0 → 0.3.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/dist/index.cjs +463 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1018 -40
- package/dist/index.d.ts +1018 -40
- package/dist/index.js +446 -47
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/dist/index.d.cts
CHANGED
|
@@ -217,6 +217,19 @@ declare const SkillEntrySchema: z.ZodObject<{
|
|
|
217
217
|
managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
218
218
|
/** Whether the source is a Handlebars template */
|
|
219
219
|
template: z.ZodOptional<z.ZodBoolean>;
|
|
220
|
+
/**
|
|
221
|
+
* Variant identifier when this skill is bound to a specific design variant
|
|
222
|
+
* (e.g. `"opentrek"`, `"uni-manager"`). Optional — neutral skills (manage,
|
|
223
|
+
* coding-conventions, baseline design-rules) leave it unset.
|
|
224
|
+
*
|
|
225
|
+
* When present, the CLI installs this skill ONLY if the consumer's
|
|
226
|
+
* `.teamix-evo/design/pack.lock.json` records the same variant. MUST equal
|
|
227
|
+
* the variant directory name in `@teamix-evo/design/variants/<name>/`.
|
|
228
|
+
*
|
|
229
|
+
* Mirrors `UiEntrySchema.variant` semantics in @teamix-evo/biz-ui &
|
|
230
|
+
* @teamix-evo/templates per ADR 0014.
|
|
231
|
+
*/
|
|
232
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
220
233
|
}, "strip", z.ZodTypeAny, {
|
|
221
234
|
id: string;
|
|
222
235
|
source: string;
|
|
@@ -227,6 +240,7 @@ declare const SkillEntrySchema: z.ZodObject<{
|
|
|
227
240
|
name: string;
|
|
228
241
|
template?: boolean | undefined;
|
|
229
242
|
managedRegions?: string[] | undefined;
|
|
243
|
+
variant?: string | undefined;
|
|
230
244
|
}, {
|
|
231
245
|
id: string;
|
|
232
246
|
source: string;
|
|
@@ -237,10 +251,12 @@ declare const SkillEntrySchema: z.ZodObject<{
|
|
|
237
251
|
template?: boolean | undefined;
|
|
238
252
|
managedRegions?: string[] | undefined;
|
|
239
253
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
254
|
+
variant?: string | undefined;
|
|
240
255
|
}>;
|
|
241
256
|
/**
|
|
242
257
|
* Skills package manifest schema — top-level manifest of `@teamix-evo/skills`.
|
|
243
|
-
*
|
|
258
|
+
* Skills are stored flat in the manifest. Variant binding is expressed via
|
|
259
|
+
* the optional `variant` field on each entry (see SkillEntrySchema).
|
|
244
260
|
*/
|
|
245
261
|
declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
246
262
|
$schema: z.ZodOptional<z.ZodString>;
|
|
@@ -277,6 +293,19 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
277
293
|
managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
278
294
|
/** Whether the source is a Handlebars template */
|
|
279
295
|
template: z.ZodOptional<z.ZodBoolean>;
|
|
296
|
+
/**
|
|
297
|
+
* Variant identifier when this skill is bound to a specific design variant
|
|
298
|
+
* (e.g. `"opentrek"`, `"uni-manager"`). Optional — neutral skills (manage,
|
|
299
|
+
* coding-conventions, baseline design-rules) leave it unset.
|
|
300
|
+
*
|
|
301
|
+
* When present, the CLI installs this skill ONLY if the consumer's
|
|
302
|
+
* `.teamix-evo/design/pack.lock.json` records the same variant. MUST equal
|
|
303
|
+
* the variant directory name in `@teamix-evo/design/variants/<name>/`.
|
|
304
|
+
*
|
|
305
|
+
* Mirrors `UiEntrySchema.variant` semantics in @teamix-evo/biz-ui &
|
|
306
|
+
* @teamix-evo/templates per ADR 0014.
|
|
307
|
+
*/
|
|
308
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
280
309
|
}, "strip", z.ZodTypeAny, {
|
|
281
310
|
id: string;
|
|
282
311
|
source: string;
|
|
@@ -287,6 +316,7 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
287
316
|
name: string;
|
|
288
317
|
template?: boolean | undefined;
|
|
289
318
|
managedRegions?: string[] | undefined;
|
|
319
|
+
variant?: string | undefined;
|
|
290
320
|
}, {
|
|
291
321
|
id: string;
|
|
292
322
|
source: string;
|
|
@@ -297,6 +327,7 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
297
327
|
template?: boolean | undefined;
|
|
298
328
|
managedRegions?: string[] | undefined;
|
|
299
329
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
330
|
+
variant?: string | undefined;
|
|
300
331
|
}>, "many">;
|
|
301
332
|
}, "strip", z.ZodTypeAny, {
|
|
302
333
|
schemaVersion: 1;
|
|
@@ -315,6 +346,7 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
315
346
|
name: string;
|
|
316
347
|
template?: boolean | undefined;
|
|
317
348
|
managedRegions?: string[] | undefined;
|
|
349
|
+
variant?: string | undefined;
|
|
318
350
|
}[];
|
|
319
351
|
$schema?: string | undefined;
|
|
320
352
|
}, {
|
|
@@ -334,6 +366,7 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
334
366
|
template?: boolean | undefined;
|
|
335
367
|
managedRegions?: string[] | undefined;
|
|
336
368
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
369
|
+
variant?: string | undefined;
|
|
337
370
|
}[];
|
|
338
371
|
$schema?: string | undefined;
|
|
339
372
|
}>;
|
|
@@ -342,14 +375,23 @@ declare const SkillsPackageManifestSchema: z.ZodObject<{
|
|
|
342
375
|
* - component: a React component (e.g. button.tsx)
|
|
343
376
|
* - hook: a React hook (e.g. use-controllable.ts)
|
|
344
377
|
* - util: a utility function (e.g. cn.ts)
|
|
345
|
-
* - block: a higher-level composition
|
|
378
|
+
* - block: a higher-level composition shipped by ui or biz-ui (FilterBar,
|
|
379
|
+
* EmptyState, OrgPicker, ApprovalCard). Per [ADR 0014](../../../../docs/adr/0014-ui-biz-ui-templates-tier.md),
|
|
380
|
+
* ui ships generic blocks, biz-ui ships variant-bound business blocks.
|
|
381
|
+
* - template: a page-level composition shipped by `@teamix-evo/templates`
|
|
382
|
+
* (DashboardLayout, ListDetailPage, ...). Per ADR 0014, templates are
|
|
383
|
+
* variant-aware (mirror biz-ui).
|
|
346
384
|
*/
|
|
347
|
-
declare const UiEntryTypeSchema: z.ZodEnum<["component", "hook", "util", "block"]>;
|
|
385
|
+
declare const UiEntryTypeSchema: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
|
|
348
386
|
/**
|
|
349
387
|
* Alias keys used to resolve where an entry file lands in the user's project.
|
|
350
388
|
* Each key maps to a path configured in `config.json` `packages.ui.aliases`.
|
|
389
|
+
*
|
|
390
|
+
* - `components`: src/components/ui/ (ui & biz-ui blocks default here)
|
|
391
|
+
* - `business`: src/components/business/ (biz-ui only — see ADR 0014)
|
|
392
|
+
* - `templates`: src/templates/ or src/pages/ (templates package — ADR 0014)
|
|
351
393
|
*/
|
|
352
|
-
declare const UiAliasSchema: z.ZodEnum<["components", "hooks", "utils", "lib"]>;
|
|
394
|
+
declare const UiAliasSchema: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
|
|
353
395
|
/**
|
|
354
396
|
* A single file shipped by a UI entry.
|
|
355
397
|
* Multiple files form one logical entry (rare, but supported).
|
|
@@ -358,16 +400,16 @@ declare const UiEntryFileSchema: z.ZodObject<{
|
|
|
358
400
|
/** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
|
|
359
401
|
source: z.ZodString;
|
|
360
402
|
/** Which alias this file resolves under in the consumer project */
|
|
361
|
-
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib"]>;
|
|
403
|
+
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
|
|
362
404
|
/** Filename written under the alias directory (e.g. "button.tsx") */
|
|
363
405
|
targetName: z.ZodString;
|
|
364
406
|
}, "strip", z.ZodTypeAny, {
|
|
365
407
|
source: string;
|
|
366
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
408
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
367
409
|
targetName: string;
|
|
368
410
|
}, {
|
|
369
411
|
source: string;
|
|
370
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
412
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
371
413
|
targetName: string;
|
|
372
414
|
}>;
|
|
373
415
|
/**
|
|
@@ -379,7 +421,7 @@ declare const UiEntrySchema: z.ZodObject<{
|
|
|
379
421
|
/** Display name (e.g. "Button") */
|
|
380
422
|
name: z.ZodString;
|
|
381
423
|
/** Entry type */
|
|
382
|
-
type: z.ZodEnum<["component", "hook", "util", "block"]>;
|
|
424
|
+
type: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
|
|
383
425
|
/** One-line description for entry discovery and AI guidance */
|
|
384
426
|
description: z.ZodString;
|
|
385
427
|
/** Files this entry ships (typically 1) */
|
|
@@ -387,16 +429,16 @@ declare const UiEntrySchema: z.ZodObject<{
|
|
|
387
429
|
/** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
|
|
388
430
|
source: z.ZodString;
|
|
389
431
|
/** Which alias this file resolves under in the consumer project */
|
|
390
|
-
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib"]>;
|
|
432
|
+
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
|
|
391
433
|
/** Filename written under the alias directory (e.g. "button.tsx") */
|
|
392
434
|
targetName: z.ZodString;
|
|
393
435
|
}, "strip", z.ZodTypeAny, {
|
|
394
436
|
source: string;
|
|
395
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
437
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
396
438
|
targetName: string;
|
|
397
439
|
}, {
|
|
398
440
|
source: string;
|
|
399
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
441
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
400
442
|
targetName: string;
|
|
401
443
|
}>, "many">;
|
|
402
444
|
/**
|
|
@@ -435,19 +477,27 @@ declare const UiEntrySchema: z.ZodObject<{
|
|
|
435
477
|
* Consumers (and AI) should migrate to `replacedBy` rather than this entry.
|
|
436
478
|
*/
|
|
437
479
|
replacedBy: z.ZodOptional<z.ZodString>;
|
|
480
|
+
/**
|
|
481
|
+
* Variant identifier when this entry is shipped from a variant-aware
|
|
482
|
+
* package (`@teamix-evo/biz-ui` or `@teamix-evo/templates` per ADR 0014).
|
|
483
|
+
* Optional — entries from `@teamix-evo/ui` (variant-agnostic) leave it unset.
|
|
484
|
+
* MUST equal the variant directory name when present.
|
|
485
|
+
*/
|
|
486
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
438
487
|
}, "strip", z.ZodTypeAny, {
|
|
439
488
|
id: string;
|
|
440
|
-
type: "component" | "hook" | "util" | "block";
|
|
489
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
441
490
|
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
442
491
|
status: "stable" | "experimental" | "deprecated";
|
|
443
492
|
description: string;
|
|
444
493
|
name: string;
|
|
445
494
|
files: {
|
|
446
495
|
source: string;
|
|
447
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
496
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
448
497
|
targetName: string;
|
|
449
498
|
}[];
|
|
450
499
|
template?: boolean | undefined;
|
|
500
|
+
variant?: string | undefined;
|
|
451
501
|
meta?: string | undefined;
|
|
452
502
|
registryDependencies?: string[] | undefined;
|
|
453
503
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -455,17 +505,18 @@ declare const UiEntrySchema: z.ZodObject<{
|
|
|
455
505
|
replacedBy?: string | undefined;
|
|
456
506
|
}, {
|
|
457
507
|
id: string;
|
|
458
|
-
type: "component" | "hook" | "util" | "block";
|
|
508
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
459
509
|
description: string;
|
|
460
510
|
name: string;
|
|
461
511
|
files: {
|
|
462
512
|
source: string;
|
|
463
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
513
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
464
514
|
targetName: string;
|
|
465
515
|
}[];
|
|
466
516
|
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
467
517
|
template?: boolean | undefined;
|
|
468
518
|
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
519
|
+
variant?: string | undefined;
|
|
469
520
|
meta?: string | undefined;
|
|
470
521
|
registryDependencies?: string[] | undefined;
|
|
471
522
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -499,7 +550,7 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
499
550
|
/** Display name (e.g. "Button") */
|
|
500
551
|
name: z.ZodString;
|
|
501
552
|
/** Entry type */
|
|
502
|
-
type: z.ZodEnum<["component", "hook", "util", "block"]>;
|
|
553
|
+
type: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
|
|
503
554
|
/** One-line description for entry discovery and AI guidance */
|
|
504
555
|
description: z.ZodString;
|
|
505
556
|
/** Files this entry ships (typically 1) */
|
|
@@ -507,16 +558,16 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
507
558
|
/** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
|
|
508
559
|
source: z.ZodString;
|
|
509
560
|
/** Which alias this file resolves under in the consumer project */
|
|
510
|
-
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib"]>;
|
|
561
|
+
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
|
|
511
562
|
/** Filename written under the alias directory (e.g. "button.tsx") */
|
|
512
563
|
targetName: z.ZodString;
|
|
513
564
|
}, "strip", z.ZodTypeAny, {
|
|
514
565
|
source: string;
|
|
515
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
566
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
516
567
|
targetName: string;
|
|
517
568
|
}, {
|
|
518
569
|
source: string;
|
|
519
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
570
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
520
571
|
targetName: string;
|
|
521
572
|
}>, "many">;
|
|
522
573
|
/**
|
|
@@ -555,19 +606,27 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
555
606
|
* Consumers (and AI) should migrate to `replacedBy` rather than this entry.
|
|
556
607
|
*/
|
|
557
608
|
replacedBy: z.ZodOptional<z.ZodString>;
|
|
609
|
+
/**
|
|
610
|
+
* Variant identifier when this entry is shipped from a variant-aware
|
|
611
|
+
* package (`@teamix-evo/biz-ui` or `@teamix-evo/templates` per ADR 0014).
|
|
612
|
+
* Optional — entries from `@teamix-evo/ui` (variant-agnostic) leave it unset.
|
|
613
|
+
* MUST equal the variant directory name when present.
|
|
614
|
+
*/
|
|
615
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
558
616
|
}, "strip", z.ZodTypeAny, {
|
|
559
617
|
id: string;
|
|
560
|
-
type: "component" | "hook" | "util" | "block";
|
|
618
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
561
619
|
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
562
620
|
status: "stable" | "experimental" | "deprecated";
|
|
563
621
|
description: string;
|
|
564
622
|
name: string;
|
|
565
623
|
files: {
|
|
566
624
|
source: string;
|
|
567
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
625
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
568
626
|
targetName: string;
|
|
569
627
|
}[];
|
|
570
628
|
template?: boolean | undefined;
|
|
629
|
+
variant?: string | undefined;
|
|
571
630
|
meta?: string | undefined;
|
|
572
631
|
registryDependencies?: string[] | undefined;
|
|
573
632
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -575,17 +634,18 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
575
634
|
replacedBy?: string | undefined;
|
|
576
635
|
}, {
|
|
577
636
|
id: string;
|
|
578
|
-
type: "component" | "hook" | "util" | "block";
|
|
637
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
579
638
|
description: string;
|
|
580
639
|
name: string;
|
|
581
640
|
files: {
|
|
582
641
|
source: string;
|
|
583
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
642
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
584
643
|
targetName: string;
|
|
585
644
|
}[];
|
|
586
645
|
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
587
646
|
template?: boolean | undefined;
|
|
588
647
|
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
648
|
+
variant?: string | undefined;
|
|
589
649
|
meta?: string | undefined;
|
|
590
650
|
registryDependencies?: string[] | undefined;
|
|
591
651
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -595,17 +655,18 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
595
655
|
}, "strip", z.ZodTypeAny, {
|
|
596
656
|
entries: {
|
|
597
657
|
id: string;
|
|
598
|
-
type: "component" | "hook" | "util" | "block";
|
|
658
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
599
659
|
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
600
660
|
status: "stable" | "experimental" | "deprecated";
|
|
601
661
|
description: string;
|
|
602
662
|
name: string;
|
|
603
663
|
files: {
|
|
604
664
|
source: string;
|
|
605
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
665
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
606
666
|
targetName: string;
|
|
607
667
|
}[];
|
|
608
668
|
template?: boolean | undefined;
|
|
669
|
+
variant?: string | undefined;
|
|
609
670
|
meta?: string | undefined;
|
|
610
671
|
registryDependencies?: string[] | undefined;
|
|
611
672
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -622,17 +683,18 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
622
683
|
}, {
|
|
623
684
|
entries: {
|
|
624
685
|
id: string;
|
|
625
|
-
type: "component" | "hook" | "util" | "block";
|
|
686
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
626
687
|
description: string;
|
|
627
688
|
name: string;
|
|
628
689
|
files: {
|
|
629
690
|
source: string;
|
|
630
|
-
targetAlias: "components" | "hooks" | "utils" | "lib";
|
|
691
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
631
692
|
targetName: string;
|
|
632
693
|
}[];
|
|
633
694
|
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
634
695
|
template?: boolean | undefined;
|
|
635
696
|
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
697
|
+
variant?: string | undefined;
|
|
636
698
|
meta?: string | undefined;
|
|
637
699
|
registryDependencies?: string[] | undefined;
|
|
638
700
|
dependencies?: Record<string, string> | undefined;
|
|
@@ -648,30 +710,759 @@ declare const UiPackageManifestSchema: z.ZodObject<{
|
|
|
648
710
|
$schema?: string | undefined;
|
|
649
711
|
}>;
|
|
650
712
|
|
|
713
|
+
/**
|
|
714
|
+
* Design Pack manifest schema.
|
|
715
|
+
*
|
|
716
|
+
* Per [ADR 0010](../../../../docs/adr/0010-design-default-and-variants.md) the
|
|
717
|
+
* design system is structured as one **default** baseline + N **variants**:
|
|
718
|
+
*
|
|
719
|
+
* packages/design/
|
|
720
|
+
* ├── default/ <- B-end neutral baseline (always present)
|
|
721
|
+
* │ ├── pack.json <- this schema (no `extends`)
|
|
722
|
+
* │ └── ... (philosophy/, foundations/, patterns/, scenarios/)
|
|
723
|
+
* ├── variants/
|
|
724
|
+
* │ ├── _template/ <- minimal scaffold for new variants
|
|
725
|
+
* │ │ └── pack.json <- this schema, extends: "default"
|
|
726
|
+
* │ ├── opentrek/
|
|
727
|
+
* │ │ ├── pack.json <- this schema, extends: "default"
|
|
728
|
+
* │ │ └── ... (only files differing from default)
|
|
729
|
+
* │ └── uni-manager/
|
|
730
|
+
* │ └── pack.json
|
|
731
|
+
* └── manifest.json <- top-level catalog (lists default + variants)
|
|
732
|
+
*
|
|
733
|
+
* The `pack.json` carries **only the protocol identity** of one pack; file
|
|
734
|
+
* lists are NOT declared here — the loader walks the filesystem under the
|
|
735
|
+
* pack root and lets file-level override merge happen at install time.
|
|
736
|
+
*
|
|
737
|
+
* Rationale: variant authors who add a new file (e.g. a new Markdown pattern)
|
|
738
|
+
* shouldn't have to register it in `pack.json`. The filesystem is the single
|
|
739
|
+
* source of truth (P2). See ADR 0010 §7 for the schema-simplification
|
|
740
|
+
* rationale.
|
|
741
|
+
*/
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Soft cross-package links advertised by a design pack.
|
|
745
|
+
*
|
|
746
|
+
* When a consumer installs design `<variant>`, the CLI MAY check that the
|
|
747
|
+
* matching biz-ui / templates variant exists in the workspace / npm and
|
|
748
|
+
* prompt the user to install it too. The link is **soft** — packs may exist
|
|
749
|
+
* without their biz-ui or templates counterparts, especially in early
|
|
750
|
+
* development.
|
|
751
|
+
*
|
|
752
|
+
* Format: `<package-spec>#<variant-name>`, e.g. `@teamix-evo/biz-ui#opentrek`.
|
|
753
|
+
*
|
|
754
|
+
* Linked field for `templates` added per [ADR 0014 2026-05-18 amendment](../../../../docs/adr/0014-ui-biz-ui-templates-tier.md)
|
|
755
|
+
* (templates became variant-aware mirroring biz-ui).
|
|
756
|
+
*/
|
|
757
|
+
declare const DesignPackLinkedSchema: z.ZodObject<{
|
|
758
|
+
'biz-ui': z.ZodOptional<z.ZodString>;
|
|
759
|
+
templates: z.ZodOptional<z.ZodString>;
|
|
760
|
+
}, "strip", z.ZodTypeAny, {
|
|
761
|
+
templates?: string | undefined;
|
|
762
|
+
'biz-ui'?: string | undefined;
|
|
763
|
+
}, {
|
|
764
|
+
templates?: string | undefined;
|
|
765
|
+
'biz-ui'?: string | undefined;
|
|
766
|
+
}>;
|
|
767
|
+
/**
|
|
768
|
+
* Design pack manifest schema.
|
|
769
|
+
*
|
|
770
|
+
* Describes ONE pack (either the default baseline or one variant). Files are
|
|
771
|
+
* not declared — the loader walks the pack root.
|
|
772
|
+
*/
|
|
773
|
+
declare const DesignPackManifestSchema: z.ZodObject<{
|
|
774
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
775
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
776
|
+
/**
|
|
777
|
+
* Pack identifier.
|
|
778
|
+
* - `"default"` for the built-in baseline (only valid name when `extends` is absent)
|
|
779
|
+
* - lowercase kebab-case for variants (`opentrek`, `uni-manager`, `acme-erp`, `_template`)
|
|
780
|
+
*/
|
|
781
|
+
name: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodLiteral<"_template">]>, z.ZodLiteral<"default">]>;
|
|
782
|
+
/** Human-readable display name (e.g. "OpenTrek" for variant id "opentrek"). */
|
|
783
|
+
displayName: z.ZodString;
|
|
784
|
+
/** Semver. */
|
|
785
|
+
version: z.ZodString;
|
|
786
|
+
/**
|
|
787
|
+
* Parent pack name. Required for variants, must be omitted for `default`.
|
|
788
|
+
* Currently only `"default"` is a valid parent.
|
|
789
|
+
*/
|
|
790
|
+
extends: z.ZodOptional<z.ZodString>;
|
|
791
|
+
/** Optional one-liner; useful for `design list-variants` output. */
|
|
792
|
+
description: z.ZodOptional<z.ZodString>;
|
|
793
|
+
/** Soft cross-package links (biz-ui / templates with same variant name). */
|
|
794
|
+
linked: z.ZodOptional<z.ZodObject<{
|
|
795
|
+
'biz-ui': z.ZodOptional<z.ZodString>;
|
|
796
|
+
templates: z.ZodOptional<z.ZodString>;
|
|
797
|
+
}, "strip", z.ZodTypeAny, {
|
|
798
|
+
templates?: string | undefined;
|
|
799
|
+
'biz-ui'?: string | undefined;
|
|
800
|
+
}, {
|
|
801
|
+
templates?: string | undefined;
|
|
802
|
+
'biz-ui'?: string | undefined;
|
|
803
|
+
}>>;
|
|
804
|
+
}, "strip", z.ZodTypeAny, {
|
|
805
|
+
schemaVersion: 1;
|
|
806
|
+
displayName: string;
|
|
807
|
+
version: string;
|
|
808
|
+
name: string;
|
|
809
|
+
$schema?: string | undefined;
|
|
810
|
+
description?: string | undefined;
|
|
811
|
+
extends?: string | undefined;
|
|
812
|
+
linked?: {
|
|
813
|
+
templates?: string | undefined;
|
|
814
|
+
'biz-ui'?: string | undefined;
|
|
815
|
+
} | undefined;
|
|
816
|
+
}, {
|
|
817
|
+
schemaVersion: 1;
|
|
818
|
+
displayName: string;
|
|
819
|
+
version: string;
|
|
820
|
+
name: string;
|
|
821
|
+
$schema?: string | undefined;
|
|
822
|
+
description?: string | undefined;
|
|
823
|
+
extends?: string | undefined;
|
|
824
|
+
linked?: {
|
|
825
|
+
templates?: string | undefined;
|
|
826
|
+
'biz-ui'?: string | undefined;
|
|
827
|
+
} | undefined;
|
|
828
|
+
}>;
|
|
829
|
+
type DesignPackManifest = z.infer<typeof DesignPackManifestSchema>;
|
|
830
|
+
type DesignPackLinked = z.infer<typeof DesignPackLinkedSchema>;
|
|
831
|
+
/**
|
|
832
|
+
* Top-level catalog of all packs in `@teamix-evo/design`.
|
|
833
|
+
*
|
|
834
|
+
* Lives at `packages/design/manifest.json`. Lists the default baseline + all
|
|
835
|
+
* variants the package ships. The catalog is regenerable via
|
|
836
|
+
* `pnpm --filter @teamix-evo/design validate` — variant directories are the
|
|
837
|
+
* source of truth.
|
|
838
|
+
*/
|
|
839
|
+
declare const DesignPackageManifestSchema: z.ZodObject<{
|
|
840
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
841
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
842
|
+
/** Always `"design"` for this package. */
|
|
843
|
+
package: z.ZodLiteral<"design">;
|
|
844
|
+
/** Semver of the entire design package. */
|
|
845
|
+
version: z.ZodString;
|
|
846
|
+
/** Engine compatibility. */
|
|
847
|
+
engines: z.ZodObject<{
|
|
848
|
+
'teamix-evo': z.ZodString;
|
|
849
|
+
}, "strip", z.ZodTypeAny, {
|
|
850
|
+
'teamix-evo': string;
|
|
851
|
+
}, {
|
|
852
|
+
'teamix-evo': string;
|
|
853
|
+
}>;
|
|
854
|
+
/** The default baseline pack — always present. */
|
|
855
|
+
default: z.ZodObject<{
|
|
856
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
857
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
858
|
+
/**
|
|
859
|
+
* Pack identifier.
|
|
860
|
+
* - `"default"` for the built-in baseline (only valid name when `extends` is absent)
|
|
861
|
+
* - lowercase kebab-case for variants (`opentrek`, `uni-manager`, `acme-erp`, `_template`)
|
|
862
|
+
*/
|
|
863
|
+
name: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodLiteral<"_template">]>, z.ZodLiteral<"default">]>;
|
|
864
|
+
/** Human-readable display name (e.g. "OpenTrek" for variant id "opentrek"). */
|
|
865
|
+
displayName: z.ZodString;
|
|
866
|
+
/** Semver. */
|
|
867
|
+
version: z.ZodString;
|
|
868
|
+
/**
|
|
869
|
+
* Parent pack name. Required for variants, must be omitted for `default`.
|
|
870
|
+
* Currently only `"default"` is a valid parent.
|
|
871
|
+
*/
|
|
872
|
+
extends: z.ZodOptional<z.ZodString>;
|
|
873
|
+
/** Optional one-liner; useful for `design list-variants` output. */
|
|
874
|
+
description: z.ZodOptional<z.ZodString>;
|
|
875
|
+
/** Soft cross-package links (biz-ui / templates with same variant name). */
|
|
876
|
+
linked: z.ZodOptional<z.ZodObject<{
|
|
877
|
+
'biz-ui': z.ZodOptional<z.ZodString>;
|
|
878
|
+
templates: z.ZodOptional<z.ZodString>;
|
|
879
|
+
}, "strip", z.ZodTypeAny, {
|
|
880
|
+
templates?: string | undefined;
|
|
881
|
+
'biz-ui'?: string | undefined;
|
|
882
|
+
}, {
|
|
883
|
+
templates?: string | undefined;
|
|
884
|
+
'biz-ui'?: string | undefined;
|
|
885
|
+
}>>;
|
|
886
|
+
}, "strip", z.ZodTypeAny, {
|
|
887
|
+
schemaVersion: 1;
|
|
888
|
+
displayName: string;
|
|
889
|
+
version: string;
|
|
890
|
+
name: string;
|
|
891
|
+
$schema?: string | undefined;
|
|
892
|
+
description?: string | undefined;
|
|
893
|
+
extends?: string | undefined;
|
|
894
|
+
linked?: {
|
|
895
|
+
templates?: string | undefined;
|
|
896
|
+
'biz-ui'?: string | undefined;
|
|
897
|
+
} | undefined;
|
|
898
|
+
}, {
|
|
899
|
+
schemaVersion: 1;
|
|
900
|
+
displayName: string;
|
|
901
|
+
version: string;
|
|
902
|
+
name: string;
|
|
903
|
+
$schema?: string | undefined;
|
|
904
|
+
description?: string | undefined;
|
|
905
|
+
extends?: string | undefined;
|
|
906
|
+
linked?: {
|
|
907
|
+
templates?: string | undefined;
|
|
908
|
+
'biz-ui'?: string | undefined;
|
|
909
|
+
} | undefined;
|
|
910
|
+
}>;
|
|
911
|
+
/** All shipped variants (excluding `_template/`). */
|
|
912
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
913
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
914
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
915
|
+
/**
|
|
916
|
+
* Pack identifier.
|
|
917
|
+
* - `"default"` for the built-in baseline (only valid name when `extends` is absent)
|
|
918
|
+
* - lowercase kebab-case for variants (`opentrek`, `uni-manager`, `acme-erp`, `_template`)
|
|
919
|
+
*/
|
|
920
|
+
name: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodLiteral<"_template">]>, z.ZodLiteral<"default">]>;
|
|
921
|
+
/** Human-readable display name (e.g. "OpenTrek" for variant id "opentrek"). */
|
|
922
|
+
displayName: z.ZodString;
|
|
923
|
+
/** Semver. */
|
|
924
|
+
version: z.ZodString;
|
|
925
|
+
/**
|
|
926
|
+
* Parent pack name. Required for variants, must be omitted for `default`.
|
|
927
|
+
* Currently only `"default"` is a valid parent.
|
|
928
|
+
*/
|
|
929
|
+
extends: z.ZodOptional<z.ZodString>;
|
|
930
|
+
/** Optional one-liner; useful for `design list-variants` output. */
|
|
931
|
+
description: z.ZodOptional<z.ZodString>;
|
|
932
|
+
/** Soft cross-package links (biz-ui / templates with same variant name). */
|
|
933
|
+
linked: z.ZodOptional<z.ZodObject<{
|
|
934
|
+
'biz-ui': z.ZodOptional<z.ZodString>;
|
|
935
|
+
templates: z.ZodOptional<z.ZodString>;
|
|
936
|
+
}, "strip", z.ZodTypeAny, {
|
|
937
|
+
templates?: string | undefined;
|
|
938
|
+
'biz-ui'?: string | undefined;
|
|
939
|
+
}, {
|
|
940
|
+
templates?: string | undefined;
|
|
941
|
+
'biz-ui'?: string | undefined;
|
|
942
|
+
}>>;
|
|
943
|
+
}, "strip", z.ZodTypeAny, {
|
|
944
|
+
schemaVersion: 1;
|
|
945
|
+
displayName: string;
|
|
946
|
+
version: string;
|
|
947
|
+
name: string;
|
|
948
|
+
$schema?: string | undefined;
|
|
949
|
+
description?: string | undefined;
|
|
950
|
+
extends?: string | undefined;
|
|
951
|
+
linked?: {
|
|
952
|
+
templates?: string | undefined;
|
|
953
|
+
'biz-ui'?: string | undefined;
|
|
954
|
+
} | undefined;
|
|
955
|
+
}, {
|
|
956
|
+
schemaVersion: 1;
|
|
957
|
+
displayName: string;
|
|
958
|
+
version: string;
|
|
959
|
+
name: string;
|
|
960
|
+
$schema?: string | undefined;
|
|
961
|
+
description?: string | undefined;
|
|
962
|
+
extends?: string | undefined;
|
|
963
|
+
linked?: {
|
|
964
|
+
templates?: string | undefined;
|
|
965
|
+
'biz-ui'?: string | undefined;
|
|
966
|
+
} | undefined;
|
|
967
|
+
}>, "many">;
|
|
968
|
+
}, "strip", z.ZodTypeAny, {
|
|
969
|
+
schemaVersion: 1;
|
|
970
|
+
package: "design";
|
|
971
|
+
version: string;
|
|
972
|
+
engines: {
|
|
973
|
+
'teamix-evo': string;
|
|
974
|
+
};
|
|
975
|
+
default: {
|
|
976
|
+
schemaVersion: 1;
|
|
977
|
+
displayName: string;
|
|
978
|
+
version: string;
|
|
979
|
+
name: string;
|
|
980
|
+
$schema?: string | undefined;
|
|
981
|
+
description?: string | undefined;
|
|
982
|
+
extends?: string | undefined;
|
|
983
|
+
linked?: {
|
|
984
|
+
templates?: string | undefined;
|
|
985
|
+
'biz-ui'?: string | undefined;
|
|
986
|
+
} | undefined;
|
|
987
|
+
};
|
|
988
|
+
variants: {
|
|
989
|
+
schemaVersion: 1;
|
|
990
|
+
displayName: string;
|
|
991
|
+
version: string;
|
|
992
|
+
name: string;
|
|
993
|
+
$schema?: string | undefined;
|
|
994
|
+
description?: string | undefined;
|
|
995
|
+
extends?: string | undefined;
|
|
996
|
+
linked?: {
|
|
997
|
+
templates?: string | undefined;
|
|
998
|
+
'biz-ui'?: string | undefined;
|
|
999
|
+
} | undefined;
|
|
1000
|
+
}[];
|
|
1001
|
+
$schema?: string | undefined;
|
|
1002
|
+
}, {
|
|
1003
|
+
schemaVersion: 1;
|
|
1004
|
+
package: "design";
|
|
1005
|
+
version: string;
|
|
1006
|
+
engines: {
|
|
1007
|
+
'teamix-evo': string;
|
|
1008
|
+
};
|
|
1009
|
+
default: {
|
|
1010
|
+
schemaVersion: 1;
|
|
1011
|
+
displayName: string;
|
|
1012
|
+
version: string;
|
|
1013
|
+
name: string;
|
|
1014
|
+
$schema?: string | undefined;
|
|
1015
|
+
description?: string | undefined;
|
|
1016
|
+
extends?: string | undefined;
|
|
1017
|
+
linked?: {
|
|
1018
|
+
templates?: string | undefined;
|
|
1019
|
+
'biz-ui'?: string | undefined;
|
|
1020
|
+
} | undefined;
|
|
1021
|
+
};
|
|
1022
|
+
variants: {
|
|
1023
|
+
schemaVersion: 1;
|
|
1024
|
+
displayName: string;
|
|
1025
|
+
version: string;
|
|
1026
|
+
name: string;
|
|
1027
|
+
$schema?: string | undefined;
|
|
1028
|
+
description?: string | undefined;
|
|
1029
|
+
extends?: string | undefined;
|
|
1030
|
+
linked?: {
|
|
1031
|
+
templates?: string | undefined;
|
|
1032
|
+
'biz-ui'?: string | undefined;
|
|
1033
|
+
} | undefined;
|
|
1034
|
+
}[];
|
|
1035
|
+
$schema?: string | undefined;
|
|
1036
|
+
}>;
|
|
1037
|
+
type DesignPackageManifest = z.infer<typeof DesignPackageManifestSchema>;
|
|
1038
|
+
/**
|
|
1039
|
+
* Consumer-side lock file written to
|
|
1040
|
+
* `.teamix-evo/design/pack.lock.json` after `design init`.
|
|
1041
|
+
*
|
|
1042
|
+
* Records which default + variant version was installed so future
|
|
1043
|
+
* `design upgrade` / `doctor` / AI tooling can reason about install state
|
|
1044
|
+
* without re-walking the source.
|
|
1045
|
+
*/
|
|
1046
|
+
declare const DesignPackLockSchema: z.ZodObject<{
|
|
1047
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
1048
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
1049
|
+
default: z.ZodObject<{
|
|
1050
|
+
version: z.ZodString;
|
|
1051
|
+
from: z.ZodString;
|
|
1052
|
+
}, "strip", z.ZodTypeAny, {
|
|
1053
|
+
version: string;
|
|
1054
|
+
from: string;
|
|
1055
|
+
}, {
|
|
1056
|
+
version: string;
|
|
1057
|
+
from: string;
|
|
1058
|
+
}>;
|
|
1059
|
+
variant: z.ZodObject<{
|
|
1060
|
+
name: z.ZodString;
|
|
1061
|
+
displayName: z.ZodString;
|
|
1062
|
+
version: z.ZodString;
|
|
1063
|
+
from: z.ZodString;
|
|
1064
|
+
}, "strip", z.ZodTypeAny, {
|
|
1065
|
+
displayName: string;
|
|
1066
|
+
version: string;
|
|
1067
|
+
name: string;
|
|
1068
|
+
from: string;
|
|
1069
|
+
}, {
|
|
1070
|
+
displayName: string;
|
|
1071
|
+
version: string;
|
|
1072
|
+
name: string;
|
|
1073
|
+
from: string;
|
|
1074
|
+
}>;
|
|
1075
|
+
linked: z.ZodOptional<z.ZodObject<{
|
|
1076
|
+
'biz-ui': z.ZodOptional<z.ZodString>;
|
|
1077
|
+
templates: z.ZodOptional<z.ZodString>;
|
|
1078
|
+
}, "strip", z.ZodTypeAny, {
|
|
1079
|
+
templates?: string | undefined;
|
|
1080
|
+
'biz-ui'?: string | undefined;
|
|
1081
|
+
}, {
|
|
1082
|
+
templates?: string | undefined;
|
|
1083
|
+
'biz-ui'?: string | undefined;
|
|
1084
|
+
}>>;
|
|
1085
|
+
installedAt: z.ZodString;
|
|
1086
|
+
}, "strip", z.ZodTypeAny, {
|
|
1087
|
+
schemaVersion: 1;
|
|
1088
|
+
variant: {
|
|
1089
|
+
displayName: string;
|
|
1090
|
+
version: string;
|
|
1091
|
+
name: string;
|
|
1092
|
+
from: string;
|
|
1093
|
+
};
|
|
1094
|
+
default: {
|
|
1095
|
+
version: string;
|
|
1096
|
+
from: string;
|
|
1097
|
+
};
|
|
1098
|
+
installedAt: string;
|
|
1099
|
+
$schema?: string | undefined;
|
|
1100
|
+
linked?: {
|
|
1101
|
+
templates?: string | undefined;
|
|
1102
|
+
'biz-ui'?: string | undefined;
|
|
1103
|
+
} | undefined;
|
|
1104
|
+
}, {
|
|
1105
|
+
schemaVersion: 1;
|
|
1106
|
+
variant: {
|
|
1107
|
+
displayName: string;
|
|
1108
|
+
version: string;
|
|
1109
|
+
name: string;
|
|
1110
|
+
from: string;
|
|
1111
|
+
};
|
|
1112
|
+
default: {
|
|
1113
|
+
version: string;
|
|
1114
|
+
from: string;
|
|
1115
|
+
};
|
|
1116
|
+
installedAt: string;
|
|
1117
|
+
$schema?: string | undefined;
|
|
1118
|
+
linked?: {
|
|
1119
|
+
templates?: string | undefined;
|
|
1120
|
+
'biz-ui'?: string | undefined;
|
|
1121
|
+
} | undefined;
|
|
1122
|
+
}>;
|
|
1123
|
+
type DesignPackLock = z.infer<typeof DesignPackLockSchema>;
|
|
1124
|
+
|
|
1125
|
+
/**
|
|
1126
|
+
* Schemas for variant-aware UI packages — `@teamix-evo/biz-ui` and
|
|
1127
|
+
* `@teamix-evo/templates`.
|
|
1128
|
+
*
|
|
1129
|
+
* Per [ADR 0014](../../../../docs/adr/0014-ui-biz-ui-templates-tier.md), these
|
|
1130
|
+
* two packages mirror `@teamix-evo/design`'s variant model: each ships a
|
|
1131
|
+
* top-level catalog (variants list) plus a per-variant manifest (entry list).
|
|
1132
|
+
*
|
|
1133
|
+
* packages/biz-ui/
|
|
1134
|
+
* ├── manifest.json <- VariantUiPackageCatalogSchema
|
|
1135
|
+
* └── variants/<name>/
|
|
1136
|
+
* └── manifest.json <- VariantUiPackageManifestSchema
|
|
1137
|
+
*
|
|
1138
|
+
* The per-variant manifest is **structurally similar to `UiPackageManifest`**
|
|
1139
|
+
* (flat entries list) but adds a `variant` field — the variant name that all
|
|
1140
|
+
* entries in this manifest belong to. Each entry's `variant` field MUST match
|
|
1141
|
+
* (cross-checked at validation).
|
|
1142
|
+
*/
|
|
1143
|
+
|
|
1144
|
+
/**
|
|
1145
|
+
* Discriminator for which variant-aware package this manifest belongs to.
|
|
1146
|
+
*/
|
|
1147
|
+
declare const VariantUiPackageNameSchema: z.ZodEnum<["biz-ui", "templates"]>;
|
|
1148
|
+
/**
|
|
1149
|
+
* Per-variant manifest — lives at `packages/<pkg>/variants/<name>/manifest.json`.
|
|
1150
|
+
*
|
|
1151
|
+
* Lists the entries this variant ships. Entries reuse `UiEntrySchema` (they
|
|
1152
|
+
* are technically the same shape as ui entries — only difference is they
|
|
1153
|
+
* declare a `variant` field tying them to a brand).
|
|
1154
|
+
*/
|
|
1155
|
+
declare const VariantUiPackageManifestSchema: z.ZodEffects<z.ZodObject<{
|
|
1156
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
1157
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
1158
|
+
/** Discriminator. */
|
|
1159
|
+
package: z.ZodEnum<["biz-ui", "templates"]>;
|
|
1160
|
+
/**
|
|
1161
|
+
* Variant identifier — lowercase kebab-case, MUST match the parent
|
|
1162
|
+
* directory name (e.g. `opentrek` for `variants/opentrek/manifest.json`).
|
|
1163
|
+
* `_template` is also accepted for the variant scaffold.
|
|
1164
|
+
*/
|
|
1165
|
+
variant: z.ZodUnion<[z.ZodString, z.ZodLiteral<"_template">]>;
|
|
1166
|
+
/** Semver of this variant. */
|
|
1167
|
+
version: z.ZodString;
|
|
1168
|
+
/** Engine compatibility. */
|
|
1169
|
+
engines: z.ZodObject<{
|
|
1170
|
+
'teamix-evo': z.ZodString;
|
|
1171
|
+
}, "strip", z.ZodTypeAny, {
|
|
1172
|
+
'teamix-evo': string;
|
|
1173
|
+
}, {
|
|
1174
|
+
'teamix-evo': string;
|
|
1175
|
+
}>;
|
|
1176
|
+
/** Flat list of entries shipped by this variant. */
|
|
1177
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
1178
|
+
id: z.ZodString;
|
|
1179
|
+
name: z.ZodString;
|
|
1180
|
+
type: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
|
|
1181
|
+
description: z.ZodString;
|
|
1182
|
+
files: z.ZodArray<z.ZodObject<{
|
|
1183
|
+
source: z.ZodString;
|
|
1184
|
+
targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
|
|
1185
|
+
targetName: z.ZodString;
|
|
1186
|
+
}, "strip", z.ZodTypeAny, {
|
|
1187
|
+
source: string;
|
|
1188
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1189
|
+
targetName: string;
|
|
1190
|
+
}, {
|
|
1191
|
+
source: string;
|
|
1192
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1193
|
+
targetName: string;
|
|
1194
|
+
}>, "many">;
|
|
1195
|
+
meta: z.ZodOptional<z.ZodString>;
|
|
1196
|
+
registryDependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1197
|
+
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1198
|
+
updateStrategy: z.ZodDefault<z.ZodEnum<["frozen", "regenerable", "managed"]>>;
|
|
1199
|
+
template: z.ZodOptional<z.ZodBoolean>;
|
|
1200
|
+
status: z.ZodDefault<z.ZodEnum<["stable", "experimental", "deprecated"]>>;
|
|
1201
|
+
deprecatedReason: z.ZodOptional<z.ZodString>;
|
|
1202
|
+
replacedBy: z.ZodOptional<z.ZodString>;
|
|
1203
|
+
variant: z.ZodOptional<z.ZodString>;
|
|
1204
|
+
}, "strip", z.ZodTypeAny, {
|
|
1205
|
+
id: string;
|
|
1206
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1207
|
+
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
1208
|
+
status: "stable" | "experimental" | "deprecated";
|
|
1209
|
+
description: string;
|
|
1210
|
+
name: string;
|
|
1211
|
+
files: {
|
|
1212
|
+
source: string;
|
|
1213
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1214
|
+
targetName: string;
|
|
1215
|
+
}[];
|
|
1216
|
+
template?: boolean | undefined;
|
|
1217
|
+
variant?: string | undefined;
|
|
1218
|
+
meta?: string | undefined;
|
|
1219
|
+
registryDependencies?: string[] | undefined;
|
|
1220
|
+
dependencies?: Record<string, string> | undefined;
|
|
1221
|
+
deprecatedReason?: string | undefined;
|
|
1222
|
+
replacedBy?: string | undefined;
|
|
1223
|
+
}, {
|
|
1224
|
+
id: string;
|
|
1225
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1226
|
+
description: string;
|
|
1227
|
+
name: string;
|
|
1228
|
+
files: {
|
|
1229
|
+
source: string;
|
|
1230
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1231
|
+
targetName: string;
|
|
1232
|
+
}[];
|
|
1233
|
+
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
1234
|
+
template?: boolean | undefined;
|
|
1235
|
+
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
1236
|
+
variant?: string | undefined;
|
|
1237
|
+
meta?: string | undefined;
|
|
1238
|
+
registryDependencies?: string[] | undefined;
|
|
1239
|
+
dependencies?: Record<string, string> | undefined;
|
|
1240
|
+
deprecatedReason?: string | undefined;
|
|
1241
|
+
replacedBy?: string | undefined;
|
|
1242
|
+
}>, "many">;
|
|
1243
|
+
}, "strip", z.ZodTypeAny, {
|
|
1244
|
+
entries: {
|
|
1245
|
+
id: string;
|
|
1246
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1247
|
+
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
1248
|
+
status: "stable" | "experimental" | "deprecated";
|
|
1249
|
+
description: string;
|
|
1250
|
+
name: string;
|
|
1251
|
+
files: {
|
|
1252
|
+
source: string;
|
|
1253
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1254
|
+
targetName: string;
|
|
1255
|
+
}[];
|
|
1256
|
+
template?: boolean | undefined;
|
|
1257
|
+
variant?: string | undefined;
|
|
1258
|
+
meta?: string | undefined;
|
|
1259
|
+
registryDependencies?: string[] | undefined;
|
|
1260
|
+
dependencies?: Record<string, string> | undefined;
|
|
1261
|
+
deprecatedReason?: string | undefined;
|
|
1262
|
+
replacedBy?: string | undefined;
|
|
1263
|
+
}[];
|
|
1264
|
+
schemaVersion: 1;
|
|
1265
|
+
package: "templates" | "biz-ui";
|
|
1266
|
+
variant: string;
|
|
1267
|
+
version: string;
|
|
1268
|
+
engines: {
|
|
1269
|
+
'teamix-evo': string;
|
|
1270
|
+
};
|
|
1271
|
+
$schema?: string | undefined;
|
|
1272
|
+
}, {
|
|
1273
|
+
entries: {
|
|
1274
|
+
id: string;
|
|
1275
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1276
|
+
description: string;
|
|
1277
|
+
name: string;
|
|
1278
|
+
files: {
|
|
1279
|
+
source: string;
|
|
1280
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1281
|
+
targetName: string;
|
|
1282
|
+
}[];
|
|
1283
|
+
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
1284
|
+
template?: boolean | undefined;
|
|
1285
|
+
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
1286
|
+
variant?: string | undefined;
|
|
1287
|
+
meta?: string | undefined;
|
|
1288
|
+
registryDependencies?: string[] | undefined;
|
|
1289
|
+
dependencies?: Record<string, string> | undefined;
|
|
1290
|
+
deprecatedReason?: string | undefined;
|
|
1291
|
+
replacedBy?: string | undefined;
|
|
1292
|
+
}[];
|
|
1293
|
+
schemaVersion: 1;
|
|
1294
|
+
package: "templates" | "biz-ui";
|
|
1295
|
+
variant: string;
|
|
1296
|
+
version: string;
|
|
1297
|
+
engines: {
|
|
1298
|
+
'teamix-evo': string;
|
|
1299
|
+
};
|
|
1300
|
+
$schema?: string | undefined;
|
|
1301
|
+
}>, {
|
|
1302
|
+
entries: {
|
|
1303
|
+
id: string;
|
|
1304
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1305
|
+
updateStrategy: "frozen" | "regenerable" | "managed";
|
|
1306
|
+
status: "stable" | "experimental" | "deprecated";
|
|
1307
|
+
description: string;
|
|
1308
|
+
name: string;
|
|
1309
|
+
files: {
|
|
1310
|
+
source: string;
|
|
1311
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1312
|
+
targetName: string;
|
|
1313
|
+
}[];
|
|
1314
|
+
template?: boolean | undefined;
|
|
1315
|
+
variant?: string | undefined;
|
|
1316
|
+
meta?: string | undefined;
|
|
1317
|
+
registryDependencies?: string[] | undefined;
|
|
1318
|
+
dependencies?: Record<string, string> | undefined;
|
|
1319
|
+
deprecatedReason?: string | undefined;
|
|
1320
|
+
replacedBy?: string | undefined;
|
|
1321
|
+
}[];
|
|
1322
|
+
schemaVersion: 1;
|
|
1323
|
+
package: "templates" | "biz-ui";
|
|
1324
|
+
variant: string;
|
|
1325
|
+
version: string;
|
|
1326
|
+
engines: {
|
|
1327
|
+
'teamix-evo': string;
|
|
1328
|
+
};
|
|
1329
|
+
$schema?: string | undefined;
|
|
1330
|
+
}, {
|
|
1331
|
+
entries: {
|
|
1332
|
+
id: string;
|
|
1333
|
+
type: "template" | "component" | "hook" | "util" | "block";
|
|
1334
|
+
description: string;
|
|
1335
|
+
name: string;
|
|
1336
|
+
files: {
|
|
1337
|
+
source: string;
|
|
1338
|
+
targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
|
|
1339
|
+
targetName: string;
|
|
1340
|
+
}[];
|
|
1341
|
+
updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
|
|
1342
|
+
template?: boolean | undefined;
|
|
1343
|
+
status?: "stable" | "experimental" | "deprecated" | undefined;
|
|
1344
|
+
variant?: string | undefined;
|
|
1345
|
+
meta?: string | undefined;
|
|
1346
|
+
registryDependencies?: string[] | undefined;
|
|
1347
|
+
dependencies?: Record<string, string> | undefined;
|
|
1348
|
+
deprecatedReason?: string | undefined;
|
|
1349
|
+
replacedBy?: string | undefined;
|
|
1350
|
+
}[];
|
|
1351
|
+
schemaVersion: 1;
|
|
1352
|
+
package: "templates" | "biz-ui";
|
|
1353
|
+
variant: string;
|
|
1354
|
+
version: string;
|
|
1355
|
+
engines: {
|
|
1356
|
+
'teamix-evo': string;
|
|
1357
|
+
};
|
|
1358
|
+
$schema?: string | undefined;
|
|
1359
|
+
}>;
|
|
1360
|
+
type VariantUiPackageManifest = z.infer<typeof VariantUiPackageManifestSchema>;
|
|
1361
|
+
type VariantUiPackageName = z.infer<typeof VariantUiPackageNameSchema>;
|
|
1362
|
+
/**
|
|
1363
|
+
* Top-level catalog summarizing the package's variants. Lives at
|
|
1364
|
+
* `packages/<pkg>/manifest.json`. Used by `<pkg> list-variants` and
|
|
1365
|
+
* cross-package variant-name sync checks.
|
|
1366
|
+
*/
|
|
1367
|
+
declare const VariantUiPackageCatalogSchema: z.ZodObject<{
|
|
1368
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
1369
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
1370
|
+
package: z.ZodEnum<["biz-ui", "templates"]>;
|
|
1371
|
+
/** Semver of the entire package. */
|
|
1372
|
+
version: z.ZodString;
|
|
1373
|
+
engines: z.ZodObject<{
|
|
1374
|
+
'teamix-evo': z.ZodString;
|
|
1375
|
+
}, "strip", z.ZodTypeAny, {
|
|
1376
|
+
'teamix-evo': string;
|
|
1377
|
+
}, {
|
|
1378
|
+
'teamix-evo': string;
|
|
1379
|
+
}>;
|
|
1380
|
+
/** Variants this package ships (excluding `_template`). */
|
|
1381
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
1382
|
+
name: z.ZodString;
|
|
1383
|
+
displayName: z.ZodString;
|
|
1384
|
+
version: z.ZodString;
|
|
1385
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1386
|
+
}, "strip", z.ZodTypeAny, {
|
|
1387
|
+
displayName: string;
|
|
1388
|
+
version: string;
|
|
1389
|
+
name: string;
|
|
1390
|
+
description?: string | undefined;
|
|
1391
|
+
}, {
|
|
1392
|
+
displayName: string;
|
|
1393
|
+
version: string;
|
|
1394
|
+
name: string;
|
|
1395
|
+
description?: string | undefined;
|
|
1396
|
+
}>, "many">;
|
|
1397
|
+
}, "strip", z.ZodTypeAny, {
|
|
1398
|
+
schemaVersion: 1;
|
|
1399
|
+
package: "templates" | "biz-ui";
|
|
1400
|
+
version: string;
|
|
1401
|
+
engines: {
|
|
1402
|
+
'teamix-evo': string;
|
|
1403
|
+
};
|
|
1404
|
+
variants: {
|
|
1405
|
+
displayName: string;
|
|
1406
|
+
version: string;
|
|
1407
|
+
name: string;
|
|
1408
|
+
description?: string | undefined;
|
|
1409
|
+
}[];
|
|
1410
|
+
$schema?: string | undefined;
|
|
1411
|
+
}, {
|
|
1412
|
+
schemaVersion: 1;
|
|
1413
|
+
package: "templates" | "biz-ui";
|
|
1414
|
+
version: string;
|
|
1415
|
+
engines: {
|
|
1416
|
+
'teamix-evo': string;
|
|
1417
|
+
};
|
|
1418
|
+
variants: {
|
|
1419
|
+
displayName: string;
|
|
1420
|
+
version: string;
|
|
1421
|
+
name: string;
|
|
1422
|
+
description?: string | undefined;
|
|
1423
|
+
}[];
|
|
1424
|
+
$schema?: string | undefined;
|
|
1425
|
+
}>;
|
|
1426
|
+
type VariantUiPackageCatalog = z.infer<typeof VariantUiPackageCatalogSchema>;
|
|
1427
|
+
|
|
651
1428
|
/**
|
|
652
1429
|
* Tailwind CSS major version that the project consumes.
|
|
653
|
-
*
|
|
1430
|
+
*
|
|
1431
|
+
* Only `'v4'` is accepted. v3 was retired in v0.7 — the dual-track output
|
|
1432
|
+
* (`tokens.generated.css`) added maintenance cost without active demand.
|
|
1433
|
+
* The schema keeps the field optional so existing config.json files
|
|
1434
|
+
* (which may carry `tailwind: 'v4'`) continue to validate; any non-v4 value
|
|
1435
|
+
* — including legacy `'v3'` — is rejected so users get a clear error.
|
|
654
1436
|
*/
|
|
655
|
-
declare const TailwindVersionSchema: z.
|
|
1437
|
+
declare const TailwindVersionSchema: z.ZodLiteral<"v4">;
|
|
656
1438
|
/**
|
|
657
1439
|
* Aliases for ui entry write-back paths in the consumer project.
|
|
658
|
-
* Keys mirror shadcn `components.json` aliases for familiarity
|
|
1440
|
+
* Keys mirror shadcn `components.json` aliases for familiarity, extended for
|
|
1441
|
+
* biz-ui (business) and templates per [ADR 0014](../../../../docs/adr/0014-ui-biz-ui-templates-tier.md).
|
|
659
1442
|
*/
|
|
660
1443
|
declare const UiAliasesSchema: z.ZodObject<{
|
|
661
1444
|
components: z.ZodString;
|
|
662
1445
|
hooks: z.ZodString;
|
|
663
1446
|
utils: z.ZodString;
|
|
664
1447
|
lib: z.ZodString;
|
|
1448
|
+
/** Biz-ui components (variant-bound). Defaults to `src/components/business/`. */
|
|
1449
|
+
business: z.ZodDefault<z.ZodString>;
|
|
1450
|
+
/** Page templates (variant-bound). Defaults to `src/templates/`. */
|
|
1451
|
+
templates: z.ZodDefault<z.ZodString>;
|
|
665
1452
|
}, "strip", z.ZodTypeAny, {
|
|
666
1453
|
components: string;
|
|
667
1454
|
hooks: string;
|
|
668
1455
|
utils: string;
|
|
669
1456
|
lib: string;
|
|
1457
|
+
business: string;
|
|
1458
|
+
templates: string;
|
|
670
1459
|
}, {
|
|
671
1460
|
components: string;
|
|
672
1461
|
hooks: string;
|
|
673
1462
|
utils: string;
|
|
674
1463
|
lib: string;
|
|
1464
|
+
business?: string | undefined;
|
|
1465
|
+
templates?: string | undefined;
|
|
675
1466
|
}>;
|
|
676
1467
|
/**
|
|
677
1468
|
* Package entry within a project config.
|
|
@@ -690,7 +1481,7 @@ declare const PackageEntrySchema: z.ZodObject<{
|
|
|
690
1481
|
/** Semver version string */
|
|
691
1482
|
version: z.ZodString;
|
|
692
1483
|
/** Tailwind CSS version this project uses (only meaningful for design package). */
|
|
693
|
-
tailwind: z.ZodOptional<z.
|
|
1484
|
+
tailwind: z.ZodOptional<z.ZodLiteral<"v4">>;
|
|
694
1485
|
/** IDEs this package was installed for (only meaningful for skills package). */
|
|
695
1486
|
ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
|
|
696
1487
|
/** Install scope (only meaningful for skills package). */
|
|
@@ -701,16 +1492,24 @@ declare const PackageEntrySchema: z.ZodObject<{
|
|
|
701
1492
|
hooks: z.ZodString;
|
|
702
1493
|
utils: z.ZodString;
|
|
703
1494
|
lib: z.ZodString;
|
|
1495
|
+
/** Biz-ui components (variant-bound). Defaults to `src/components/business/`. */
|
|
1496
|
+
business: z.ZodDefault<z.ZodString>;
|
|
1497
|
+
/** Page templates (variant-bound). Defaults to `src/templates/`. */
|
|
1498
|
+
templates: z.ZodDefault<z.ZodString>;
|
|
704
1499
|
}, "strip", z.ZodTypeAny, {
|
|
705
1500
|
components: string;
|
|
706
1501
|
hooks: string;
|
|
707
1502
|
utils: string;
|
|
708
1503
|
lib: string;
|
|
1504
|
+
business: string;
|
|
1505
|
+
templates: string;
|
|
709
1506
|
}, {
|
|
710
1507
|
components: string;
|
|
711
1508
|
hooks: string;
|
|
712
1509
|
utils: string;
|
|
713
1510
|
lib: string;
|
|
1511
|
+
business?: string | undefined;
|
|
1512
|
+
templates?: string | undefined;
|
|
714
1513
|
}>>;
|
|
715
1514
|
/**
|
|
716
1515
|
* Default icon library declared by the project (only meaningful for ui).
|
|
@@ -726,12 +1525,14 @@ declare const PackageEntrySchema: z.ZodObject<{
|
|
|
726
1525
|
version: string;
|
|
727
1526
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
728
1527
|
scope?: "project" | "global" | undefined;
|
|
729
|
-
tailwind?: "
|
|
1528
|
+
tailwind?: "v4" | undefined;
|
|
730
1529
|
aliases?: {
|
|
731
1530
|
components: string;
|
|
732
1531
|
hooks: string;
|
|
733
1532
|
utils: string;
|
|
734
1533
|
lib: string;
|
|
1534
|
+
business: string;
|
|
1535
|
+
templates: string;
|
|
735
1536
|
} | undefined;
|
|
736
1537
|
iconLibrary?: string | undefined;
|
|
737
1538
|
tsx?: boolean | undefined;
|
|
@@ -741,12 +1542,14 @@ declare const PackageEntrySchema: z.ZodObject<{
|
|
|
741
1542
|
version: string;
|
|
742
1543
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
743
1544
|
scope?: "project" | "global" | undefined;
|
|
744
|
-
tailwind?: "
|
|
1545
|
+
tailwind?: "v4" | undefined;
|
|
745
1546
|
aliases?: {
|
|
746
1547
|
components: string;
|
|
747
1548
|
hooks: string;
|
|
748
1549
|
utils: string;
|
|
749
1550
|
lib: string;
|
|
1551
|
+
business?: string | undefined;
|
|
1552
|
+
templates?: string | undefined;
|
|
750
1553
|
} | undefined;
|
|
751
1554
|
iconLibrary?: string | undefined;
|
|
752
1555
|
tsx?: boolean | undefined;
|
|
@@ -767,7 +1570,7 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
767
1570
|
/** Semver version string */
|
|
768
1571
|
version: z.ZodString;
|
|
769
1572
|
/** Tailwind CSS version this project uses (only meaningful for design package). */
|
|
770
|
-
tailwind: z.ZodOptional<z.
|
|
1573
|
+
tailwind: z.ZodOptional<z.ZodLiteral<"v4">>;
|
|
771
1574
|
/** IDEs this package was installed for (only meaningful for skills package). */
|
|
772
1575
|
ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
|
|
773
1576
|
/** Install scope (only meaningful for skills package). */
|
|
@@ -778,16 +1581,24 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
778
1581
|
hooks: z.ZodString;
|
|
779
1582
|
utils: z.ZodString;
|
|
780
1583
|
lib: z.ZodString;
|
|
1584
|
+
/** Biz-ui components (variant-bound). Defaults to `src/components/business/`. */
|
|
1585
|
+
business: z.ZodDefault<z.ZodString>;
|
|
1586
|
+
/** Page templates (variant-bound). Defaults to `src/templates/`. */
|
|
1587
|
+
templates: z.ZodDefault<z.ZodString>;
|
|
781
1588
|
}, "strip", z.ZodTypeAny, {
|
|
782
1589
|
components: string;
|
|
783
1590
|
hooks: string;
|
|
784
1591
|
utils: string;
|
|
785
1592
|
lib: string;
|
|
1593
|
+
business: string;
|
|
1594
|
+
templates: string;
|
|
786
1595
|
}, {
|
|
787
1596
|
components: string;
|
|
788
1597
|
hooks: string;
|
|
789
1598
|
utils: string;
|
|
790
1599
|
lib: string;
|
|
1600
|
+
business?: string | undefined;
|
|
1601
|
+
templates?: string | undefined;
|
|
791
1602
|
}>>;
|
|
792
1603
|
/**
|
|
793
1604
|
* Default icon library declared by the project (only meaningful for ui).
|
|
@@ -803,12 +1614,14 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
803
1614
|
version: string;
|
|
804
1615
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
805
1616
|
scope?: "project" | "global" | undefined;
|
|
806
|
-
tailwind?: "
|
|
1617
|
+
tailwind?: "v4" | undefined;
|
|
807
1618
|
aliases?: {
|
|
808
1619
|
components: string;
|
|
809
1620
|
hooks: string;
|
|
810
1621
|
utils: string;
|
|
811
1622
|
lib: string;
|
|
1623
|
+
business: string;
|
|
1624
|
+
templates: string;
|
|
812
1625
|
} | undefined;
|
|
813
1626
|
iconLibrary?: string | undefined;
|
|
814
1627
|
tsx?: boolean | undefined;
|
|
@@ -818,12 +1631,14 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
818
1631
|
version: string;
|
|
819
1632
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
820
1633
|
scope?: "project" | "global" | undefined;
|
|
821
|
-
tailwind?: "
|
|
1634
|
+
tailwind?: "v4" | undefined;
|
|
822
1635
|
aliases?: {
|
|
823
1636
|
components: string;
|
|
824
1637
|
hooks: string;
|
|
825
1638
|
utils: string;
|
|
826
1639
|
lib: string;
|
|
1640
|
+
business?: string | undefined;
|
|
1641
|
+
templates?: string | undefined;
|
|
827
1642
|
} | undefined;
|
|
828
1643
|
iconLibrary?: string | undefined;
|
|
829
1644
|
tsx?: boolean | undefined;
|
|
@@ -837,12 +1652,14 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
837
1652
|
version: string;
|
|
838
1653
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
839
1654
|
scope?: "project" | "global" | undefined;
|
|
840
|
-
tailwind?: "
|
|
1655
|
+
tailwind?: "v4" | undefined;
|
|
841
1656
|
aliases?: {
|
|
842
1657
|
components: string;
|
|
843
1658
|
hooks: string;
|
|
844
1659
|
utils: string;
|
|
845
1660
|
lib: string;
|
|
1661
|
+
business: string;
|
|
1662
|
+
templates: string;
|
|
846
1663
|
} | undefined;
|
|
847
1664
|
iconLibrary?: string | undefined;
|
|
848
1665
|
tsx?: boolean | undefined;
|
|
@@ -857,12 +1674,14 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
857
1674
|
version: string;
|
|
858
1675
|
ides?: ("qoder" | "claude")[] | undefined;
|
|
859
1676
|
scope?: "project" | "global" | undefined;
|
|
860
|
-
tailwind?: "
|
|
1677
|
+
tailwind?: "v4" | undefined;
|
|
861
1678
|
aliases?: {
|
|
862
1679
|
components: string;
|
|
863
1680
|
hooks: string;
|
|
864
1681
|
utils: string;
|
|
865
1682
|
lib: string;
|
|
1683
|
+
business?: string | undefined;
|
|
1684
|
+
templates?: string | undefined;
|
|
866
1685
|
} | undefined;
|
|
867
1686
|
iconLibrary?: string | undefined;
|
|
868
1687
|
tsx?: boolean | undefined;
|
|
@@ -1080,6 +1899,107 @@ declare const InstalledManifestSchema: z.ZodObject<{
|
|
|
1080
1899
|
}[];
|
|
1081
1900
|
}>;
|
|
1082
1901
|
|
|
1902
|
+
/**
|
|
1903
|
+
* Skills source-mirror lock file schema.
|
|
1904
|
+
*
|
|
1905
|
+
* Per [ADR 0013](../../../../docs/adr/0013-skills-source-mirror.md), the source
|
|
1906
|
+
* lives at `.teamix-evo/skills/<id>/`, and IDE paths (`.qoder/skills/<id>/`,
|
|
1907
|
+
* `.claude/skills/<id>/`) are regenerable mirrors. This lock file at
|
|
1908
|
+
* `.teamix-evo/skills/manifest.lock.json` is the authoritative ledger of:
|
|
1909
|
+
*
|
|
1910
|
+
* 1. which skills are installed,
|
|
1911
|
+
* 2. which version each was installed from,
|
|
1912
|
+
* 3. which IDE mirror paths were produced (so `remove` / `sync` know where to act).
|
|
1913
|
+
*
|
|
1914
|
+
* v0.6 supports `qoder` + `claude` mirrors. `.cursor/rules/<id>.mdc` is v0.7
|
|
1915
|
+
* (per ADR 0013 §Implementation note); the schema does NOT pre-allocate
|
|
1916
|
+
* cursor-specific fields — they will be added with the v0.7 ADR.
|
|
1917
|
+
*/
|
|
1918
|
+
declare const SkillsLockEntrySchema: z.ZodObject<{
|
|
1919
|
+
/** Semver version installed from upstream */
|
|
1920
|
+
version: z.ZodString;
|
|
1921
|
+
/** Upstream package name (typically `@teamix-evo/skills`) */
|
|
1922
|
+
from: z.ZodString;
|
|
1923
|
+
/** ISO 8601 install / last-sync timestamp */
|
|
1924
|
+
installedAt: z.ZodString;
|
|
1925
|
+
/** Install scope at time of mirror */
|
|
1926
|
+
scope: z.ZodEnum<["project", "global"]>;
|
|
1927
|
+
/**
|
|
1928
|
+
* IDEs this skill was mirrored to. Each ide ↔ a mirror path under
|
|
1929
|
+
* `<projectRoot>/.<ide>/skills/<id>/` (project) or `~/.<ide>/skills/<id>/`
|
|
1930
|
+
* (global). The path itself is reconstructed from `scope` + adapter; we
|
|
1931
|
+
* record the ide identifier rather than the full path to keep the lock
|
|
1932
|
+
* portable across machines.
|
|
1933
|
+
*/
|
|
1934
|
+
mirroredTo: z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">;
|
|
1935
|
+
}, "strip", z.ZodTypeAny, {
|
|
1936
|
+
scope: "project" | "global";
|
|
1937
|
+
version: string;
|
|
1938
|
+
from: string;
|
|
1939
|
+
installedAt: string;
|
|
1940
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1941
|
+
}, {
|
|
1942
|
+
scope: "project" | "global";
|
|
1943
|
+
version: string;
|
|
1944
|
+
from: string;
|
|
1945
|
+
installedAt: string;
|
|
1946
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1947
|
+
}>;
|
|
1948
|
+
declare const SkillsLockSchema: z.ZodObject<{
|
|
1949
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
1950
|
+
/** Map of skill id → lock entry */
|
|
1951
|
+
skills: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1952
|
+
/** Semver version installed from upstream */
|
|
1953
|
+
version: z.ZodString;
|
|
1954
|
+
/** Upstream package name (typically `@teamix-evo/skills`) */
|
|
1955
|
+
from: z.ZodString;
|
|
1956
|
+
/** ISO 8601 install / last-sync timestamp */
|
|
1957
|
+
installedAt: z.ZodString;
|
|
1958
|
+
/** Install scope at time of mirror */
|
|
1959
|
+
scope: z.ZodEnum<["project", "global"]>;
|
|
1960
|
+
/**
|
|
1961
|
+
* IDEs this skill was mirrored to. Each ide ↔ a mirror path under
|
|
1962
|
+
* `<projectRoot>/.<ide>/skills/<id>/` (project) or `~/.<ide>/skills/<id>/`
|
|
1963
|
+
* (global). The path itself is reconstructed from `scope` + adapter; we
|
|
1964
|
+
* record the ide identifier rather than the full path to keep the lock
|
|
1965
|
+
* portable across machines.
|
|
1966
|
+
*/
|
|
1967
|
+
mirroredTo: z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">;
|
|
1968
|
+
}, "strip", z.ZodTypeAny, {
|
|
1969
|
+
scope: "project" | "global";
|
|
1970
|
+
version: string;
|
|
1971
|
+
from: string;
|
|
1972
|
+
installedAt: string;
|
|
1973
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1974
|
+
}, {
|
|
1975
|
+
scope: "project" | "global";
|
|
1976
|
+
version: string;
|
|
1977
|
+
from: string;
|
|
1978
|
+
installedAt: string;
|
|
1979
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1980
|
+
}>>;
|
|
1981
|
+
}, "strip", z.ZodTypeAny, {
|
|
1982
|
+
schemaVersion: 1;
|
|
1983
|
+
skills: Record<string, {
|
|
1984
|
+
scope: "project" | "global";
|
|
1985
|
+
version: string;
|
|
1986
|
+
from: string;
|
|
1987
|
+
installedAt: string;
|
|
1988
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1989
|
+
}>;
|
|
1990
|
+
}, {
|
|
1991
|
+
schemaVersion: 1;
|
|
1992
|
+
skills: Record<string, {
|
|
1993
|
+
scope: "project" | "global";
|
|
1994
|
+
version: string;
|
|
1995
|
+
from: string;
|
|
1996
|
+
installedAt: string;
|
|
1997
|
+
mirroredTo: ("qoder" | "claude")[];
|
|
1998
|
+
}>;
|
|
1999
|
+
}>;
|
|
2000
|
+
type SkillsLockEntry = z.infer<typeof SkillsLockEntrySchema>;
|
|
2001
|
+
type SkillsLock = z.infer<typeof SkillsLockSchema>;
|
|
2002
|
+
|
|
1083
2003
|
/** Resource update strategy */
|
|
1084
2004
|
type UpdateStrategy = z.infer<typeof UpdateStrategySchema>;
|
|
1085
2005
|
/** Resource type discriminator */
|
|
@@ -1110,7 +2030,7 @@ type UiPackageManifest = z.infer<typeof UiPackageManifestSchema>;
|
|
|
1110
2030
|
type UiAliases = z.infer<typeof UiAliasesSchema>;
|
|
1111
2031
|
/** A package entry in the project config */
|
|
1112
2032
|
type PackageEntry = z.infer<typeof PackageEntrySchema>;
|
|
1113
|
-
/** Tailwind CSS major version ("
|
|
2033
|
+
/** Tailwind CSS major version (always `"v4"` since v0.7). */
|
|
1114
2034
|
type TailwindVersion = z.infer<typeof TailwindVersionSchema>;
|
|
1115
2035
|
/** Project configuration (config.json) */
|
|
1116
2036
|
type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
|
|
@@ -1175,6 +2095,59 @@ declare function loadSkillsPackageManifest(packageDir: string): Promise<SkillsPa
|
|
|
1175
2095
|
*/
|
|
1176
2096
|
declare function loadUiPackageManifest(packageDir: string): Promise<UiPackageManifest>;
|
|
1177
2097
|
|
|
2098
|
+
/**
|
|
2099
|
+
* Read & validate a single pack's `pack.json`.
|
|
2100
|
+
* Errors are wrapped with the file path for easy diagnosis (P8).
|
|
2101
|
+
*/
|
|
2102
|
+
declare function loadDesignPack(packDir: string): Promise<DesignPackManifest>;
|
|
2103
|
+
/**
|
|
2104
|
+
* Read & validate the top-level `packages/design/manifest.json` catalog.
|
|
2105
|
+
*/
|
|
2106
|
+
declare function loadDesignPackageManifest(packageDir: string): Promise<DesignPackageManifest>;
|
|
2107
|
+
/**
|
|
2108
|
+
* Walk all files under a pack root and return their paths **relative to
|
|
2109
|
+
* `packDir`**, excluding pack metadata files (`pack.json`).
|
|
2110
|
+
*
|
|
2111
|
+
* Returns a sorted list (deterministic for tests + diff-friendly).
|
|
2112
|
+
*/
|
|
2113
|
+
declare function walkPackTree(packDir: string): Promise<string[]>;
|
|
2114
|
+
/**
|
|
2115
|
+
* Result of merging default + variant: each entry is a file the CLI should
|
|
2116
|
+
* install, paired with which on-disk file to read.
|
|
2117
|
+
*/
|
|
2118
|
+
interface MergedFileEntry {
|
|
2119
|
+
/** Path relative to the pack root (e.g. `philosophy/principles.md`). */
|
|
2120
|
+
relPath: string;
|
|
2121
|
+
/** Absolute filesystem path the CLI should read. */
|
|
2122
|
+
sourcePath: string;
|
|
2123
|
+
/** Which pack provided this file (for diagnostics + UI listing). */
|
|
2124
|
+
origin: 'default' | 'variant';
|
|
2125
|
+
}
|
|
2126
|
+
interface MergeResult {
|
|
2127
|
+
files: MergedFileEntry[];
|
|
2128
|
+
/** Files where variant overrode default. Useful for diagnostics. */
|
|
2129
|
+
overrides: string[];
|
|
2130
|
+
/** Files only in variant (no default counterpart). */
|
|
2131
|
+
variantAdds: string[];
|
|
2132
|
+
/** Files only in default (variant didn't override). */
|
|
2133
|
+
defaultPassThrough: string[];
|
|
2134
|
+
}
|
|
2135
|
+
/**
|
|
2136
|
+
* File-level merge per ADR 0010 §4.
|
|
2137
|
+
*
|
|
2138
|
+
* For each file path P:
|
|
2139
|
+
* - If `<variantDir>/P` exists: use the variant's file (override).
|
|
2140
|
+
* - Else: use the default's file (pass-through).
|
|
2141
|
+
* Plus: every file in variant tree NOT present in default tree is appended
|
|
2142
|
+
* (variant-add).
|
|
2143
|
+
*
|
|
2144
|
+
* No content parsing happens here — files are read as-is by the caller.
|
|
2145
|
+
*/
|
|
2146
|
+
declare function mergeDefaultAndVariant(defaultDir: string, variantDir: string): Promise<MergeResult>;
|
|
2147
|
+
|
|
2148
|
+
declare function loadVariantUiPackageCatalog(packageDir: string): Promise<VariantUiPackageCatalog>;
|
|
2149
|
+
declare function loadVariantUiPackageManifest(variantDir: string): Promise<VariantUiPackageManifest>;
|
|
2150
|
+
|
|
1178
2151
|
/**
|
|
1179
2152
|
* Validate unknown data against the VariantManifest schema.
|
|
1180
2153
|
* Returns a discriminated Result with either the parsed data or a friendly error message.
|
|
@@ -1188,6 +2161,11 @@ declare function validateConfig(data: unknown): Result<ProjectConfig>;
|
|
|
1188
2161
|
* Validate unknown data against the InstalledManifest schema.
|
|
1189
2162
|
*/
|
|
1190
2163
|
declare function validateInstalled(data: unknown): Result<InstalledManifest>;
|
|
2164
|
+
/**
|
|
2165
|
+
* Validate unknown data against the SkillsLock schema (skills source-mirror lock).
|
|
2166
|
+
* Stored at `.teamix-evo/skills/manifest.lock.json` per ADR 0013.
|
|
2167
|
+
*/
|
|
2168
|
+
declare function validateSkillsLock(data: unknown): Result<SkillsLock>;
|
|
1191
2169
|
/**
|
|
1192
2170
|
* Validate unknown data against the SkillsPackageManifest schema.
|
|
1193
2171
|
*/
|
|
@@ -1274,4 +2252,4 @@ interface UpdateActionOptions {
|
|
|
1274
2252
|
*/
|
|
1275
2253
|
declare function getUpdateAction(strategy: UpdateStrategy, options: UpdateActionOptions): UpdateAction;
|
|
1276
2254
|
|
|
1277
|
-
export { type InstalledManifest, InstalledManifestSchema, type InstalledPackage, InstalledPackageSchema, type InstalledResource, InstalledResourceSchema, type ManagedRegion, type PackageEntry, PackageEntrySchema, type ProjectConfig, ProjectConfigSchema, type Resource, ResourceSchema, type ResourceType, ResourceTypeSchema, type Result, type SkillEntry, SkillEntrySchema, type SkillIde, SkillIdeSchema, type SkillScope, SkillScopeSchema, type SkillsPackageManifest, SkillsPackageManifestSchema, type TailwindVersion, TailwindVersionSchema, type UiAlias, UiAliasSchema, type UiAliases, UiAliasesSchema, type UiEntry, type UiEntryFile, UiEntryFileSchema, UiEntrySchema, type UiEntryType, UiEntryTypeSchema, type UiPackageManifest, UiPackageManifestSchema, type UpdateAction, type UpdateActionOptions, type UpdateStrategy, UpdateStrategySchema, type VariantManifest, VariantManifestSchema, getUpdateAction, hasManagedRegion, loadSkillsPackageManifest, loadUiPackageManifest, loadVariantManifest, parseManagedRegions, replaceManagedRegion, resolveUiEntryOrder, shouldUpdate, validateConfig, validateInstalled, validateManifest, validateSkillsPackage, validateUiDependencyGraph, validateUiPackage };
|
|
2255
|
+
export { type DesignPackLinked, DesignPackLinkedSchema, type DesignPackLock, DesignPackLockSchema, type DesignPackManifest, DesignPackManifestSchema, type DesignPackageManifest, DesignPackageManifestSchema, type InstalledManifest, InstalledManifestSchema, type InstalledPackage, InstalledPackageSchema, type InstalledResource, InstalledResourceSchema, type ManagedRegion, type MergeResult, type MergedFileEntry, type PackageEntry, PackageEntrySchema, type ProjectConfig, ProjectConfigSchema, type Resource, ResourceSchema, type ResourceType, ResourceTypeSchema, type Result, type SkillEntry, SkillEntrySchema, type SkillIde, SkillIdeSchema, type SkillScope, SkillScopeSchema, type SkillsLock, type SkillsLockEntry, SkillsLockEntrySchema, SkillsLockSchema, type SkillsPackageManifest, SkillsPackageManifestSchema, type TailwindVersion, TailwindVersionSchema, type UiAlias, UiAliasSchema, type UiAliases, UiAliasesSchema, type UiEntry, type UiEntryFile, UiEntryFileSchema, UiEntrySchema, type UiEntryType, UiEntryTypeSchema, type UiPackageManifest, UiPackageManifestSchema, type UpdateAction, type UpdateActionOptions, type UpdateStrategy, UpdateStrategySchema, type VariantManifest, VariantManifestSchema, type VariantUiPackageCatalog, VariantUiPackageCatalogSchema, type VariantUiPackageManifest, VariantUiPackageManifestSchema, type VariantUiPackageName, VariantUiPackageNameSchema, getUpdateAction, hasManagedRegion, loadDesignPack, loadDesignPackageManifest, loadSkillsPackageManifest, loadUiPackageManifest, loadVariantManifest, loadVariantUiPackageCatalog, loadVariantUiPackageManifest, mergeDefaultAndVariant, parseManagedRegions, replaceManagedRegion, resolveUiEntryOrder, shouldUpdate, validateConfig, validateInstalled, validateManifest, validateSkillsLock, validateSkillsPackage, validateUiDependencyGraph, validateUiPackage, walkPackTree };
|