@teamix-evo/registry 0.1.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.d.ts CHANGED
@@ -10,7 +10,18 @@ declare const UpdateStrategySchema: z.ZodEnum<["frozen", "regenerable", "managed
10
10
  /**
11
11
  * Resource type discriminator.
12
12
  */
13
- declare const ResourceTypeSchema: z.ZodEnum<["doc", "tokens", "ai-rules", "config"]>;
13
+ declare const ResourceTypeSchema: z.ZodEnum<["doc", "tokens", "ai-rules", "config", "skill"]>;
14
+ /**
15
+ * Supported AI IDE identifiers for skill resources.
16
+ * Qoder and Claude Code share the same SKILL.md format; differ only by install path.
17
+ */
18
+ declare const SkillIdeSchema: z.ZodEnum<["qoder", "claude"]>;
19
+ /**
20
+ * Skill installation scope.
21
+ * - project: install under project root (.qoder/skills/, .claude/skills/)
22
+ * - global: install under user home (~/.qoder/skills/, ~/.claude/skills/)
23
+ */
24
+ declare const SkillScopeSchema: z.ZodEnum<["project", "global"]>;
14
25
  /**
15
26
  * A single resource entry within a variant manifest.
16
27
  */
@@ -18,10 +29,13 @@ declare const ResourceSchema: z.ZodObject<{
18
29
  /** Unique identifier for the resource within the manifest */
19
30
  id: z.ZodString;
20
31
  /** Resource type */
21
- type: z.ZodEnum<["doc", "tokens", "ai-rules", "config"]>;
32
+ type: z.ZodEnum<["doc", "tokens", "ai-rules", "config", "skill"]>;
22
33
  /** Source path (relative to variant root), typically a template */
23
34
  source: z.ZodString;
24
- /** Target path (relative to project root) where the resource is installed */
35
+ /**
36
+ * Target path (relative to project root) where the resource is installed.
37
+ * For type="skill" this is ignored: the path is computed from skill name + ide + scope.
38
+ */
25
39
  target: z.ZodString;
26
40
  /** How the resource is updated */
27
41
  updateStrategy: z.ZodEnum<["frozen", "regenerable", "managed"]>;
@@ -31,24 +45,32 @@ declare const ResourceSchema: z.ZodObject<{
31
45
  managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
46
  /** Whether to recursively process directory contents */
33
47
  recursive: z.ZodOptional<z.ZodBoolean>;
48
+ /** Supported IDEs (only meaningful when type="skill"; defaults to all when omitted) */
49
+ ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
50
+ /** Default install scope (only meaningful when type="skill"; user can override at install time) */
51
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
34
52
  }, "strip", z.ZodTypeAny, {
35
53
  id: string;
36
- type: "doc" | "tokens" | "ai-rules" | "config";
54
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
37
55
  source: string;
38
56
  target: string;
39
57
  updateStrategy: "frozen" | "regenerable" | "managed";
40
58
  template?: boolean | undefined;
41
59
  managedRegions?: string[] | undefined;
42
60
  recursive?: boolean | undefined;
61
+ ides?: ("qoder" | "claude")[] | undefined;
62
+ scope?: "project" | "global" | undefined;
43
63
  }, {
44
64
  id: string;
45
- type: "doc" | "tokens" | "ai-rules" | "config";
65
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
46
66
  source: string;
47
67
  target: string;
48
68
  updateStrategy: "frozen" | "regenerable" | "managed";
49
69
  template?: boolean | undefined;
50
70
  managedRegions?: string[] | undefined;
51
71
  recursive?: boolean | undefined;
72
+ ides?: ("qoder" | "claude")[] | undefined;
73
+ scope?: "project" | "global" | undefined;
52
74
  }>;
53
75
  /**
54
76
  * Variant manifest schema — describes a variant package and its resources.
@@ -68,11 +90,11 @@ declare const VariantManifestSchema: z.ZodObject<{
68
90
  version: z.ZodString;
69
91
  /** Engine compatibility */
70
92
  engines: z.ZodObject<{
71
- "teamix-evo": z.ZodString;
93
+ 'teamix-evo': z.ZodString;
72
94
  }, "strip", z.ZodTypeAny, {
73
- "teamix-evo": string;
95
+ 'teamix-evo': string;
74
96
  }, {
75
- "teamix-evo": string;
97
+ 'teamix-evo': string;
76
98
  }>;
77
99
  /** Supported IDE identifiers */
78
100
  ide: z.ZodArray<z.ZodString, "many">;
@@ -81,10 +103,13 @@ declare const VariantManifestSchema: z.ZodObject<{
81
103
  /** Unique identifier for the resource within the manifest */
82
104
  id: z.ZodString;
83
105
  /** Resource type */
84
- type: z.ZodEnum<["doc", "tokens", "ai-rules", "config"]>;
106
+ type: z.ZodEnum<["doc", "tokens", "ai-rules", "config", "skill"]>;
85
107
  /** Source path (relative to variant root), typically a template */
86
108
  source: z.ZodString;
87
- /** Target path (relative to project root) where the resource is installed */
109
+ /**
110
+ * Target path (relative to project root) where the resource is installed.
111
+ * For type="skill" this is ignored: the path is computed from skill name + ide + scope.
112
+ */
88
113
  target: z.ZodString;
89
114
  /** How the resource is updated */
90
115
  updateStrategy: z.ZodEnum<["frozen", "regenerable", "managed"]>;
@@ -94,24 +119,32 @@ declare const VariantManifestSchema: z.ZodObject<{
94
119
  managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
95
120
  /** Whether to recursively process directory contents */
96
121
  recursive: z.ZodOptional<z.ZodBoolean>;
122
+ /** Supported IDEs (only meaningful when type="skill"; defaults to all when omitted) */
123
+ ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
124
+ /** Default install scope (only meaningful when type="skill"; user can override at install time) */
125
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
97
126
  }, "strip", z.ZodTypeAny, {
98
127
  id: string;
99
- type: "doc" | "tokens" | "ai-rules" | "config";
128
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
100
129
  source: string;
101
130
  target: string;
102
131
  updateStrategy: "frozen" | "regenerable" | "managed";
103
132
  template?: boolean | undefined;
104
133
  managedRegions?: string[] | undefined;
105
134
  recursive?: boolean | undefined;
135
+ ides?: ("qoder" | "claude")[] | undefined;
136
+ scope?: "project" | "global" | undefined;
106
137
  }, {
107
138
  id: string;
108
- type: "doc" | "tokens" | "ai-rules" | "config";
139
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
109
140
  source: string;
110
141
  target: string;
111
142
  updateStrategy: "frozen" | "regenerable" | "managed";
112
143
  template?: boolean | undefined;
113
144
  managedRegions?: string[] | undefined;
114
145
  recursive?: boolean | undefined;
146
+ ides?: ("qoder" | "claude")[] | undefined;
147
+ scope?: "project" | "global" | undefined;
115
148
  }>, "many">;
116
149
  }, "strip", z.ZodTypeAny, {
117
150
  schemaVersion: 1;
@@ -121,18 +154,20 @@ declare const VariantManifestSchema: z.ZodObject<{
121
154
  description: string;
122
155
  version: string;
123
156
  engines: {
124
- "teamix-evo": string;
157
+ 'teamix-evo': string;
125
158
  };
126
159
  ide: string[];
127
160
  resources: {
128
161
  id: string;
129
- type: "doc" | "tokens" | "ai-rules" | "config";
162
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
130
163
  source: string;
131
164
  target: string;
132
165
  updateStrategy: "frozen" | "regenerable" | "managed";
133
166
  template?: boolean | undefined;
134
167
  managedRegions?: string[] | undefined;
135
168
  recursive?: boolean | undefined;
169
+ ides?: ("qoder" | "claude")[] | undefined;
170
+ scope?: "project" | "global" | undefined;
136
171
  }[];
137
172
  $schema?: string | undefined;
138
173
  }, {
@@ -143,36 +178,1382 @@ declare const VariantManifestSchema: z.ZodObject<{
143
178
  description: string;
144
179
  version: string;
145
180
  engines: {
146
- "teamix-evo": string;
181
+ 'teamix-evo': string;
147
182
  };
148
183
  ide: string[];
149
184
  resources: {
150
185
  id: string;
151
- type: "doc" | "tokens" | "ai-rules" | "config";
186
+ type: "doc" | "tokens" | "ai-rules" | "config" | "skill";
152
187
  source: string;
153
188
  target: string;
154
189
  updateStrategy: "frozen" | "regenerable" | "managed";
155
190
  template?: boolean | undefined;
156
191
  managedRegions?: string[] | undefined;
157
192
  recursive?: boolean | undefined;
193
+ ides?: ("qoder" | "claude")[] | undefined;
194
+ scope?: "project" | "global" | undefined;
195
+ }[];
196
+ $schema?: string | undefined;
197
+ }>;
198
+ /**
199
+ * A single skill entry within a skills package manifest.
200
+ */
201
+ declare const SkillEntrySchema: z.ZodObject<{
202
+ /** Skill identifier (matches name/folder) */
203
+ id: z.ZodString;
204
+ /** Skill name — must match the directory name and frontmatter `name` */
205
+ name: z.ZodString;
206
+ /** One-line description for skill discovery */
207
+ description: z.ZodString;
208
+ /** Semver version */
209
+ version: z.ZodString;
210
+ /** Source path relative to package root — file or directory */
211
+ source: z.ZodString;
212
+ /** Supported IDEs (defaults to both when omitted) */
213
+ ides: z.ZodDefault<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
214
+ /** Update strategy (defaults to managed) */
215
+ updateStrategy: z.ZodDefault<z.ZodEnum<["frozen", "regenerable", "managed"]>>;
216
+ /** Managed region IDs to maintain on update */
217
+ managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
218
+ /** Whether the source is a Handlebars template */
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>;
233
+ }, "strip", z.ZodTypeAny, {
234
+ id: string;
235
+ source: string;
236
+ updateStrategy: "frozen" | "regenerable" | "managed";
237
+ ides: ("qoder" | "claude")[];
238
+ description: string;
239
+ version: string;
240
+ name: string;
241
+ template?: boolean | undefined;
242
+ managedRegions?: string[] | undefined;
243
+ variant?: string | undefined;
244
+ }, {
245
+ id: string;
246
+ source: string;
247
+ description: string;
248
+ version: string;
249
+ name: string;
250
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
251
+ template?: boolean | undefined;
252
+ managedRegions?: string[] | undefined;
253
+ ides?: ("qoder" | "claude")[] | undefined;
254
+ variant?: string | undefined;
255
+ }>;
256
+ /**
257
+ * Skills package manifest schema — top-level manifest of `@teamix-evo/skills`.
258
+ * Skills are stored flat in the manifest. Variant binding is expressed via
259
+ * the optional `variant` field on each entry (see SkillEntrySchema).
260
+ */
261
+ declare const SkillsPackageManifestSchema: z.ZodObject<{
262
+ $schema: z.ZodOptional<z.ZodString>;
263
+ schemaVersion: z.ZodLiteral<1>;
264
+ /** Always "skills" for this package */
265
+ package: z.ZodLiteral<"skills">;
266
+ /** Semver version of the skills package */
267
+ version: z.ZodString;
268
+ /** Engine compatibility */
269
+ engines: z.ZodObject<{
270
+ 'teamix-evo': z.ZodString;
271
+ }, "strip", z.ZodTypeAny, {
272
+ 'teamix-evo': string;
273
+ }, {
274
+ 'teamix-evo': string;
275
+ }>;
276
+ /** Flat list of skills shipped by this package */
277
+ skills: z.ZodArray<z.ZodObject<{
278
+ /** Skill identifier (matches name/folder) */
279
+ id: z.ZodString;
280
+ /** Skill name — must match the directory name and frontmatter `name` */
281
+ name: z.ZodString;
282
+ /** One-line description for skill discovery */
283
+ description: z.ZodString;
284
+ /** Semver version */
285
+ version: z.ZodString;
286
+ /** Source path relative to package root — file or directory */
287
+ source: z.ZodString;
288
+ /** Supported IDEs (defaults to both when omitted) */
289
+ ides: z.ZodDefault<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
290
+ /** Update strategy (defaults to managed) */
291
+ updateStrategy: z.ZodDefault<z.ZodEnum<["frozen", "regenerable", "managed"]>>;
292
+ /** Managed region IDs to maintain on update */
293
+ managedRegions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
294
+ /** Whether the source is a Handlebars template */
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>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ id: string;
311
+ source: string;
312
+ updateStrategy: "frozen" | "regenerable" | "managed";
313
+ ides: ("qoder" | "claude")[];
314
+ description: string;
315
+ version: string;
316
+ name: string;
317
+ template?: boolean | undefined;
318
+ managedRegions?: string[] | undefined;
319
+ variant?: string | undefined;
320
+ }, {
321
+ id: string;
322
+ source: string;
323
+ description: string;
324
+ version: string;
325
+ name: string;
326
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
327
+ template?: boolean | undefined;
328
+ managedRegions?: string[] | undefined;
329
+ ides?: ("qoder" | "claude")[] | undefined;
330
+ variant?: string | undefined;
331
+ }>, "many">;
332
+ }, "strip", z.ZodTypeAny, {
333
+ schemaVersion: 1;
334
+ package: "skills";
335
+ version: string;
336
+ engines: {
337
+ 'teamix-evo': string;
338
+ };
339
+ skills: {
340
+ id: string;
341
+ source: string;
342
+ updateStrategy: "frozen" | "regenerable" | "managed";
343
+ ides: ("qoder" | "claude")[];
344
+ description: string;
345
+ version: string;
346
+ name: string;
347
+ template?: boolean | undefined;
348
+ managedRegions?: string[] | undefined;
349
+ variant?: string | undefined;
350
+ }[];
351
+ $schema?: string | undefined;
352
+ }, {
353
+ schemaVersion: 1;
354
+ package: "skills";
355
+ version: string;
356
+ engines: {
357
+ 'teamix-evo': string;
358
+ };
359
+ skills: {
360
+ id: string;
361
+ source: string;
362
+ description: string;
363
+ version: string;
364
+ name: string;
365
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
366
+ template?: boolean | undefined;
367
+ managedRegions?: string[] | undefined;
368
+ ides?: ("qoder" | "claude")[] | undefined;
369
+ variant?: string | undefined;
370
+ }[];
371
+ $schema?: string | undefined;
372
+ }>;
373
+ /**
374
+ * UI entry types.
375
+ * - component: a React component (e.g. button.tsx)
376
+ * - hook: a React hook (e.g. use-controllable.ts)
377
+ * - util: a utility function (e.g. cn.ts)
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).
384
+ */
385
+ declare const UiEntryTypeSchema: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
386
+ /**
387
+ * Alias keys used to resolve where an entry file lands in the user's project.
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)
393
+ */
394
+ declare const UiAliasSchema: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
395
+ /**
396
+ * A single file shipped by a UI entry.
397
+ * Multiple files form one logical entry (rare, but supported).
398
+ */
399
+ declare const UiEntryFileSchema: z.ZodObject<{
400
+ /** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
401
+ source: z.ZodString;
402
+ /** Which alias this file resolves under in the consumer project */
403
+ targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
404
+ /** Filename written under the alias directory (e.g. "button.tsx") */
405
+ targetName: z.ZodString;
406
+ }, "strip", z.ZodTypeAny, {
407
+ source: string;
408
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
409
+ targetName: string;
410
+ }, {
411
+ source: string;
412
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
413
+ targetName: string;
414
+ }>;
415
+ /**
416
+ * A single UI entry (component / hook / util / block).
417
+ */
418
+ declare const UiEntrySchema: z.ZodObject<{
419
+ /** Unique entry identifier within the ui package (e.g. "button") */
420
+ id: z.ZodString;
421
+ /** Display name (e.g. "Button") */
422
+ name: z.ZodString;
423
+ /** Entry type */
424
+ type: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
425
+ /** One-line description for entry discovery and AI guidance */
426
+ description: z.ZodString;
427
+ /** Files this entry ships (typically 1) */
428
+ files: z.ZodArray<z.ZodObject<{
429
+ /** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
430
+ source: z.ZodString;
431
+ /** Which alias this file resolves under in the consumer project */
432
+ targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
433
+ /** Filename written under the alias directory (e.g. "button.tsx") */
434
+ targetName: z.ZodString;
435
+ }, "strip", z.ZodTypeAny, {
436
+ source: string;
437
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
438
+ targetName: string;
439
+ }, {
440
+ source: string;
441
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
442
+ targetName: string;
443
+ }>, "many">;
444
+ /**
445
+ * Optional path to an AI-readable meta document (frontmatter + Markdown).
446
+ * When set, CLI install drops it at `.teamix-evo/design/components/<id>.meta.md`
447
+ * for design's ai-rules to consume.
448
+ */
449
+ meta: z.ZodOptional<z.ZodString>;
450
+ /** Other UI entries this one depends on (e.g. "button" depends on "cn") */
451
+ registryDependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
452
+ /** npm dependencies required by this entry (name → semver range) */
453
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
454
+ /**
455
+ * How CLI handles this entry on `ui upgrade`.
456
+ * Defaults to `frozen` — user-owned source code, untouched after first install.
457
+ * Upgrade is handled by AI + skill flow (no CLI rewrite). See PLAN §10.9.
458
+ */
459
+ updateStrategy: z.ZodDefault<z.ZodEnum<["frozen", "regenerable", "managed"]>>;
460
+ /**
461
+ * Whether the source file should be passed through Handlebars before write.
462
+ * Most entries don't need templating (use import-rewrite transformer instead).
463
+ */
464
+ template: z.ZodOptional<z.ZodBoolean>;
465
+ /**
466
+ * Maturity / lifecycle status of this entry. Defaults to `stable`.
467
+ * See {@link UiEntryStatusSchema} for semantics.
468
+ */
469
+ status: z.ZodDefault<z.ZodEnum<["stable", "experimental", "deprecated"]>>;
470
+ /**
471
+ * Free-text rationale shown to consumers when `status` is `deprecated`.
472
+ * Should explain why the entry is going away and what replaces it.
473
+ */
474
+ deprecatedReason: z.ZodOptional<z.ZodString>;
475
+ /**
476
+ * If this entry is `deprecated`, the id of the entry that supersedes it.
477
+ * Consumers (and AI) should migrate to `replacedBy` rather than this entry.
478
+ */
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>;
487
+ }, "strip", z.ZodTypeAny, {
488
+ id: string;
489
+ type: "template" | "component" | "hook" | "util" | "block";
490
+ updateStrategy: "frozen" | "regenerable" | "managed";
491
+ status: "stable" | "experimental" | "deprecated";
492
+ description: string;
493
+ name: string;
494
+ files: {
495
+ source: string;
496
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
497
+ targetName: string;
498
+ }[];
499
+ template?: boolean | undefined;
500
+ variant?: string | undefined;
501
+ meta?: string | undefined;
502
+ registryDependencies?: string[] | undefined;
503
+ dependencies?: Record<string, string> | undefined;
504
+ deprecatedReason?: string | undefined;
505
+ replacedBy?: string | undefined;
506
+ }, {
507
+ id: string;
508
+ type: "template" | "component" | "hook" | "util" | "block";
509
+ description: string;
510
+ name: string;
511
+ files: {
512
+ source: string;
513
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
514
+ targetName: string;
515
+ }[];
516
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
517
+ template?: boolean | undefined;
518
+ status?: "stable" | "experimental" | "deprecated" | undefined;
519
+ variant?: string | undefined;
520
+ meta?: string | undefined;
521
+ registryDependencies?: string[] | undefined;
522
+ dependencies?: Record<string, string> | undefined;
523
+ deprecatedReason?: string | undefined;
524
+ replacedBy?: string | undefined;
525
+ }>;
526
+ /**
527
+ * UI package manifest schema — top-level manifest of `@teamix-evo/ui`.
528
+ * Like skills, UI is flat (no variants); brand differences are absorbed by
529
+ * design tokens at the `var(--primary)` layer.
530
+ */
531
+ declare const UiPackageManifestSchema: z.ZodObject<{
532
+ $schema: z.ZodOptional<z.ZodString>;
533
+ schemaVersion: z.ZodLiteral<1>;
534
+ /** Always "ui" for this package */
535
+ package: z.ZodLiteral<"ui">;
536
+ /** Semver version of the ui package */
537
+ version: z.ZodString;
538
+ /** Engine compatibility */
539
+ engines: z.ZodObject<{
540
+ 'teamix-evo': z.ZodString;
541
+ }, "strip", z.ZodTypeAny, {
542
+ 'teamix-evo': string;
543
+ }, {
544
+ 'teamix-evo': string;
545
+ }>;
546
+ /** Flat list of entries shipped by this package */
547
+ entries: z.ZodArray<z.ZodObject<{
548
+ /** Unique entry identifier within the ui package (e.g. "button") */
549
+ id: z.ZodString;
550
+ /** Display name (e.g. "Button") */
551
+ name: z.ZodString;
552
+ /** Entry type */
553
+ type: z.ZodEnum<["component", "hook", "util", "block", "template"]>;
554
+ /** One-line description for entry discovery and AI guidance */
555
+ description: z.ZodString;
556
+ /** Files this entry ships (typically 1) */
557
+ files: z.ZodArray<z.ZodObject<{
558
+ /** Source path relative to the ui package root (e.g. "src/components/button/button.tsx") */
559
+ source: z.ZodString;
560
+ /** Which alias this file resolves under in the consumer project */
561
+ targetAlias: z.ZodEnum<["components", "hooks", "utils", "lib", "business", "templates"]>;
562
+ /** Filename written under the alias directory (e.g. "button.tsx") */
563
+ targetName: z.ZodString;
564
+ }, "strip", z.ZodTypeAny, {
565
+ source: string;
566
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
567
+ targetName: string;
568
+ }, {
569
+ source: string;
570
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
571
+ targetName: string;
572
+ }>, "many">;
573
+ /**
574
+ * Optional path to an AI-readable meta document (frontmatter + Markdown).
575
+ * When set, CLI install drops it at `.teamix-evo/design/components/<id>.meta.md`
576
+ * for design's ai-rules to consume.
577
+ */
578
+ meta: z.ZodOptional<z.ZodString>;
579
+ /** Other UI entries this one depends on (e.g. "button" depends on "cn") */
580
+ registryDependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
581
+ /** npm dependencies required by this entry (name → semver range) */
582
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
583
+ /**
584
+ * How CLI handles this entry on `ui upgrade`.
585
+ * Defaults to `frozen` — user-owned source code, untouched after first install.
586
+ * Upgrade is handled by AI + skill flow (no CLI rewrite). See PLAN §10.9.
587
+ */
588
+ updateStrategy: z.ZodDefault<z.ZodEnum<["frozen", "regenerable", "managed"]>>;
589
+ /**
590
+ * Whether the source file should be passed through Handlebars before write.
591
+ * Most entries don't need templating (use import-rewrite transformer instead).
592
+ */
593
+ template: z.ZodOptional<z.ZodBoolean>;
594
+ /**
595
+ * Maturity / lifecycle status of this entry. Defaults to `stable`.
596
+ * See {@link UiEntryStatusSchema} for semantics.
597
+ */
598
+ status: z.ZodDefault<z.ZodEnum<["stable", "experimental", "deprecated"]>>;
599
+ /**
600
+ * Free-text rationale shown to consumers when `status` is `deprecated`.
601
+ * Should explain why the entry is going away and what replaces it.
602
+ */
603
+ deprecatedReason: z.ZodOptional<z.ZodString>;
604
+ /**
605
+ * If this entry is `deprecated`, the id of the entry that supersedes it.
606
+ * Consumers (and AI) should migrate to `replacedBy` rather than this entry.
607
+ */
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>;
616
+ }, "strip", z.ZodTypeAny, {
617
+ id: string;
618
+ type: "template" | "component" | "hook" | "util" | "block";
619
+ updateStrategy: "frozen" | "regenerable" | "managed";
620
+ status: "stable" | "experimental" | "deprecated";
621
+ description: string;
622
+ name: string;
623
+ files: {
624
+ source: string;
625
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
626
+ targetName: string;
627
+ }[];
628
+ template?: boolean | undefined;
629
+ variant?: string | undefined;
630
+ meta?: string | undefined;
631
+ registryDependencies?: string[] | undefined;
632
+ dependencies?: Record<string, string> | undefined;
633
+ deprecatedReason?: string | undefined;
634
+ replacedBy?: string | undefined;
635
+ }, {
636
+ id: string;
637
+ type: "template" | "component" | "hook" | "util" | "block";
638
+ description: string;
639
+ name: string;
640
+ files: {
641
+ source: string;
642
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
643
+ targetName: string;
644
+ }[];
645
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
646
+ template?: boolean | undefined;
647
+ status?: "stable" | "experimental" | "deprecated" | undefined;
648
+ variant?: string | undefined;
649
+ meta?: string | undefined;
650
+ registryDependencies?: string[] | undefined;
651
+ dependencies?: Record<string, string> | undefined;
652
+ deprecatedReason?: string | undefined;
653
+ replacedBy?: string | undefined;
654
+ }>, "many">;
655
+ }, "strip", z.ZodTypeAny, {
656
+ entries: {
657
+ id: string;
658
+ type: "template" | "component" | "hook" | "util" | "block";
659
+ updateStrategy: "frozen" | "regenerable" | "managed";
660
+ status: "stable" | "experimental" | "deprecated";
661
+ description: string;
662
+ name: string;
663
+ files: {
664
+ source: string;
665
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
666
+ targetName: string;
667
+ }[];
668
+ template?: boolean | undefined;
669
+ variant?: string | undefined;
670
+ meta?: string | undefined;
671
+ registryDependencies?: string[] | undefined;
672
+ dependencies?: Record<string, string> | undefined;
673
+ deprecatedReason?: string | undefined;
674
+ replacedBy?: string | undefined;
675
+ }[];
676
+ schemaVersion: 1;
677
+ package: "ui";
678
+ version: string;
679
+ engines: {
680
+ 'teamix-evo': string;
681
+ };
682
+ $schema?: string | undefined;
683
+ }, {
684
+ entries: {
685
+ id: string;
686
+ type: "template" | "component" | "hook" | "util" | "block";
687
+ description: string;
688
+ name: string;
689
+ files: {
690
+ source: string;
691
+ targetAlias: "components" | "hooks" | "utils" | "lib" | "business" | "templates";
692
+ targetName: string;
693
+ }[];
694
+ updateStrategy?: "frozen" | "regenerable" | "managed" | undefined;
695
+ template?: boolean | undefined;
696
+ status?: "stable" | "experimental" | "deprecated" | undefined;
697
+ variant?: string | undefined;
698
+ meta?: string | undefined;
699
+ registryDependencies?: string[] | undefined;
700
+ dependencies?: Record<string, string> | undefined;
701
+ deprecatedReason?: string | undefined;
702
+ replacedBy?: string | undefined;
158
703
  }[];
704
+ schemaVersion: 1;
705
+ package: "ui";
706
+ version: string;
707
+ engines: {
708
+ 'teamix-evo': string;
709
+ };
159
710
  $schema?: string | undefined;
160
711
  }>;
161
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
+
1428
+ /**
1429
+ * Tailwind CSS major version that the project consumes.
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.
1436
+ */
1437
+ declare const TailwindVersionSchema: z.ZodLiteral<"v4">;
1438
+ /**
1439
+ * Aliases for ui entry write-back paths in the consumer project.
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).
1442
+ */
1443
+ declare const UiAliasesSchema: z.ZodObject<{
1444
+ components: z.ZodString;
1445
+ hooks: z.ZodString;
1446
+ utils: z.ZodString;
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>;
1452
+ }, "strip", z.ZodTypeAny, {
1453
+ components: string;
1454
+ hooks: string;
1455
+ utils: string;
1456
+ lib: string;
1457
+ business: string;
1458
+ templates: string;
1459
+ }, {
1460
+ components: string;
1461
+ hooks: string;
1462
+ utils: string;
1463
+ lib: string;
1464
+ business?: string | undefined;
1465
+ templates?: string | undefined;
1466
+ }>;
162
1467
  /**
163
1468
  * Package entry within a project config.
1469
+ *
1470
+ * Some fields only apply to specific packages:
1471
+ * - `tailwind` — design only
1472
+ * - `ides` / `scope` — skills only
1473
+ * - `aliases` / `iconLibrary` / `tsx` / `rsc` — ui only
1474
+ *
1475
+ * All package-specific fields are optional at the schema level so a single
1476
+ * `PackageEntrySchema` can describe every package family.
164
1477
  */
165
1478
  declare const PackageEntrySchema: z.ZodObject<{
166
- /** Variant identifier (e.g. "opentrek") */
1479
+ /** Variant identifier (e.g. "opentrek"; use "_flat" for skills/ui) */
167
1480
  variant: z.ZodString;
168
1481
  /** Semver version string */
169
1482
  version: z.ZodString;
1483
+ /** Tailwind CSS version this project uses (only meaningful for design package). */
1484
+ tailwind: z.ZodOptional<z.ZodLiteral<"v4">>;
1485
+ /** IDEs this package was installed for (only meaningful for skills package). */
1486
+ ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
1487
+ /** Install scope (only meaningful for skills package). */
1488
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
1489
+ /** Path aliases for ui entry installation (only meaningful for ui package). */
1490
+ aliases: z.ZodOptional<z.ZodObject<{
1491
+ components: z.ZodString;
1492
+ hooks: z.ZodString;
1493
+ utils: z.ZodString;
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>;
1499
+ }, "strip", z.ZodTypeAny, {
1500
+ components: string;
1501
+ hooks: string;
1502
+ utils: string;
1503
+ lib: string;
1504
+ business: string;
1505
+ templates: string;
1506
+ }, {
1507
+ components: string;
1508
+ hooks: string;
1509
+ utils: string;
1510
+ lib: string;
1511
+ business?: string | undefined;
1512
+ templates?: string | undefined;
1513
+ }>>;
1514
+ /**
1515
+ * Default icon library declared by the project (only meaningful for ui).
1516
+ * Declarative only — does NOT trigger code rewrites; ui entries hardcode imports.
1517
+ */
1518
+ iconLibrary: z.ZodOptional<z.ZodString>;
1519
+ /** Whether the project uses TSX (true) or JSX (false). ui-specific. */
1520
+ tsx: z.ZodOptional<z.ZodBoolean>;
1521
+ /** Whether to emit React Server Components markers (`"use client"`). ui-specific. */
1522
+ rsc: z.ZodOptional<z.ZodBoolean>;
170
1523
  }, "strip", z.ZodTypeAny, {
171
1524
  variant: string;
172
1525
  version: string;
1526
+ ides?: ("qoder" | "claude")[] | undefined;
1527
+ scope?: "project" | "global" | undefined;
1528
+ tailwind?: "v4" | undefined;
1529
+ aliases?: {
1530
+ components: string;
1531
+ hooks: string;
1532
+ utils: string;
1533
+ lib: string;
1534
+ business: string;
1535
+ templates: string;
1536
+ } | undefined;
1537
+ iconLibrary?: string | undefined;
1538
+ tsx?: boolean | undefined;
1539
+ rsc?: boolean | undefined;
173
1540
  }, {
174
1541
  variant: string;
175
1542
  version: string;
1543
+ ides?: ("qoder" | "claude")[] | undefined;
1544
+ scope?: "project" | "global" | undefined;
1545
+ tailwind?: "v4" | undefined;
1546
+ aliases?: {
1547
+ components: string;
1548
+ hooks: string;
1549
+ utils: string;
1550
+ lib: string;
1551
+ business?: string | undefined;
1552
+ templates?: string | undefined;
1553
+ } | undefined;
1554
+ iconLibrary?: string | undefined;
1555
+ tsx?: boolean | undefined;
1556
+ rsc?: boolean | undefined;
176
1557
  }>;
177
1558
  /**
178
1559
  * Project configuration schema — teamix-evo config.json at project root.
@@ -184,16 +1565,84 @@ declare const ProjectConfigSchema: z.ZodObject<{
184
1565
  ide: z.ZodString;
185
1566
  /** Installed packages keyed by package name */
186
1567
  packages: z.ZodRecord<z.ZodString, z.ZodObject<{
187
- /** Variant identifier (e.g. "opentrek") */
1568
+ /** Variant identifier (e.g. "opentrek"; use "_flat" for skills/ui) */
188
1569
  variant: z.ZodString;
189
1570
  /** Semver version string */
190
1571
  version: z.ZodString;
1572
+ /** Tailwind CSS version this project uses (only meaningful for design package). */
1573
+ tailwind: z.ZodOptional<z.ZodLiteral<"v4">>;
1574
+ /** IDEs this package was installed for (only meaningful for skills package). */
1575
+ ides: z.ZodOptional<z.ZodArray<z.ZodEnum<["qoder", "claude"]>, "many">>;
1576
+ /** Install scope (only meaningful for skills package). */
1577
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
1578
+ /** Path aliases for ui entry installation (only meaningful for ui package). */
1579
+ aliases: z.ZodOptional<z.ZodObject<{
1580
+ components: z.ZodString;
1581
+ hooks: z.ZodString;
1582
+ utils: z.ZodString;
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>;
1588
+ }, "strip", z.ZodTypeAny, {
1589
+ components: string;
1590
+ hooks: string;
1591
+ utils: string;
1592
+ lib: string;
1593
+ business: string;
1594
+ templates: string;
1595
+ }, {
1596
+ components: string;
1597
+ hooks: string;
1598
+ utils: string;
1599
+ lib: string;
1600
+ business?: string | undefined;
1601
+ templates?: string | undefined;
1602
+ }>>;
1603
+ /**
1604
+ * Default icon library declared by the project (only meaningful for ui).
1605
+ * Declarative only — does NOT trigger code rewrites; ui entries hardcode imports.
1606
+ */
1607
+ iconLibrary: z.ZodOptional<z.ZodString>;
1608
+ /** Whether the project uses TSX (true) or JSX (false). ui-specific. */
1609
+ tsx: z.ZodOptional<z.ZodBoolean>;
1610
+ /** Whether to emit React Server Components markers (`"use client"`). ui-specific. */
1611
+ rsc: z.ZodOptional<z.ZodBoolean>;
191
1612
  }, "strip", z.ZodTypeAny, {
192
1613
  variant: string;
193
1614
  version: string;
1615
+ ides?: ("qoder" | "claude")[] | undefined;
1616
+ scope?: "project" | "global" | undefined;
1617
+ tailwind?: "v4" | undefined;
1618
+ aliases?: {
1619
+ components: string;
1620
+ hooks: string;
1621
+ utils: string;
1622
+ lib: string;
1623
+ business: string;
1624
+ templates: string;
1625
+ } | undefined;
1626
+ iconLibrary?: string | undefined;
1627
+ tsx?: boolean | undefined;
1628
+ rsc?: boolean | undefined;
194
1629
  }, {
195
1630
  variant: string;
196
1631
  version: string;
1632
+ ides?: ("qoder" | "claude")[] | undefined;
1633
+ scope?: "project" | "global" | undefined;
1634
+ tailwind?: "v4" | undefined;
1635
+ aliases?: {
1636
+ components: string;
1637
+ hooks: string;
1638
+ utils: string;
1639
+ lib: string;
1640
+ business?: string | undefined;
1641
+ templates?: string | undefined;
1642
+ } | undefined;
1643
+ iconLibrary?: string | undefined;
1644
+ tsx?: boolean | undefined;
1645
+ rsc?: boolean | undefined;
197
1646
  }>>;
198
1647
  }, "strip", z.ZodTypeAny, {
199
1648
  schemaVersion: 1;
@@ -201,6 +1650,20 @@ declare const ProjectConfigSchema: z.ZodObject<{
201
1650
  packages: Record<string, {
202
1651
  variant: string;
203
1652
  version: string;
1653
+ ides?: ("qoder" | "claude")[] | undefined;
1654
+ scope?: "project" | "global" | undefined;
1655
+ tailwind?: "v4" | undefined;
1656
+ aliases?: {
1657
+ components: string;
1658
+ hooks: string;
1659
+ utils: string;
1660
+ lib: string;
1661
+ business: string;
1662
+ templates: string;
1663
+ } | undefined;
1664
+ iconLibrary?: string | undefined;
1665
+ tsx?: boolean | undefined;
1666
+ rsc?: boolean | undefined;
204
1667
  }>;
205
1668
  $schema?: string | undefined;
206
1669
  }, {
@@ -209,32 +1672,58 @@ declare const ProjectConfigSchema: z.ZodObject<{
209
1672
  packages: Record<string, {
210
1673
  variant: string;
211
1674
  version: string;
1675
+ ides?: ("qoder" | "claude")[] | undefined;
1676
+ scope?: "project" | "global" | undefined;
1677
+ tailwind?: "v4" | undefined;
1678
+ aliases?: {
1679
+ components: string;
1680
+ hooks: string;
1681
+ utils: string;
1682
+ lib: string;
1683
+ business?: string | undefined;
1684
+ templates?: string | undefined;
1685
+ } | undefined;
1686
+ iconLibrary?: string | undefined;
1687
+ tsx?: boolean | undefined;
1688
+ rsc?: boolean | undefined;
212
1689
  }>;
213
1690
  $schema?: string | undefined;
214
1691
  }>;
215
1692
 
216
1693
  /**
217
1694
  * An installed resource entry — tracks individual resource installation state.
1695
+ *
1696
+ * For type="skill" resources, the same logical skill may produce multiple installed
1697
+ * entries (one per ide × scope combination); the optional `ide`/`scope` fields
1698
+ * disambiguate them.
218
1699
  */
219
1700
  declare const InstalledResourceSchema: z.ZodObject<{
220
1701
  /** Resource identifier matching the variant manifest */
221
1702
  id: z.ZodString;
222
- /** Target path where the resource was installed */
1703
+ /** Target path where the resource was installed (absolute or project-relative) */
223
1704
  target: z.ZodString;
224
1705
  /** Content hash for change detection (e.g. "sha256:...") */
225
1706
  hash: z.ZodString;
226
1707
  /** Update strategy that was applied */
227
1708
  strategy: z.ZodEnum<["frozen", "regenerable", "managed"]>;
1709
+ /** IDE this resource was installed for (skill resources only) */
1710
+ ide: z.ZodOptional<z.ZodEnum<["qoder", "claude"]>>;
1711
+ /** Install scope (skill resources only) */
1712
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
228
1713
  }, "strip", z.ZodTypeAny, {
229
1714
  id: string;
230
1715
  target: string;
231
1716
  hash: string;
232
1717
  strategy: "frozen" | "regenerable" | "managed";
1718
+ scope?: "project" | "global" | undefined;
1719
+ ide?: "qoder" | "claude" | undefined;
233
1720
  }, {
234
1721
  id: string;
235
1722
  target: string;
236
1723
  hash: string;
237
1724
  strategy: "frozen" | "regenerable" | "managed";
1725
+ scope?: "project" | "global" | undefined;
1726
+ ide?: "qoder" | "claude" | undefined;
238
1727
  }>;
239
1728
  /**
240
1729
  * An installed package entry — tracks a single package installation.
@@ -242,7 +1731,7 @@ declare const InstalledResourceSchema: z.ZodObject<{
242
1731
  declare const InstalledPackageSchema: z.ZodObject<{
243
1732
  /** Full package name (e.g. "@teamix-evo/design") */
244
1733
  package: z.ZodString;
245
- /** Variant identifier */
1734
+ /** Variant identifier (use "_flat" for non-variant packages such as skills) */
246
1735
  variant: z.ZodString;
247
1736
  /** Installed version */
248
1737
  version: z.ZodString;
@@ -252,22 +1741,30 @@ declare const InstalledPackageSchema: z.ZodObject<{
252
1741
  resources: z.ZodArray<z.ZodObject<{
253
1742
  /** Resource identifier matching the variant manifest */
254
1743
  id: z.ZodString;
255
- /** Target path where the resource was installed */
1744
+ /** Target path where the resource was installed (absolute or project-relative) */
256
1745
  target: z.ZodString;
257
1746
  /** Content hash for change detection (e.g. "sha256:...") */
258
1747
  hash: z.ZodString;
259
1748
  /** Update strategy that was applied */
260
1749
  strategy: z.ZodEnum<["frozen", "regenerable", "managed"]>;
1750
+ /** IDE this resource was installed for (skill resources only) */
1751
+ ide: z.ZodOptional<z.ZodEnum<["qoder", "claude"]>>;
1752
+ /** Install scope (skill resources only) */
1753
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
261
1754
  }, "strip", z.ZodTypeAny, {
262
1755
  id: string;
263
1756
  target: string;
264
1757
  hash: string;
265
1758
  strategy: "frozen" | "regenerable" | "managed";
1759
+ scope?: "project" | "global" | undefined;
1760
+ ide?: "qoder" | "claude" | undefined;
266
1761
  }, {
267
1762
  id: string;
268
1763
  target: string;
269
1764
  hash: string;
270
1765
  strategy: "frozen" | "regenerable" | "managed";
1766
+ scope?: "project" | "global" | undefined;
1767
+ ide?: "qoder" | "claude" | undefined;
271
1768
  }>, "many">;
272
1769
  }, "strip", z.ZodTypeAny, {
273
1770
  package: string;
@@ -278,6 +1775,8 @@ declare const InstalledPackageSchema: z.ZodObject<{
278
1775
  target: string;
279
1776
  hash: string;
280
1777
  strategy: "frozen" | "regenerable" | "managed";
1778
+ scope?: "project" | "global" | undefined;
1779
+ ide?: "qoder" | "claude" | undefined;
281
1780
  }[];
282
1781
  installedAt: string;
283
1782
  }, {
@@ -289,6 +1788,8 @@ declare const InstalledPackageSchema: z.ZodObject<{
289
1788
  target: string;
290
1789
  hash: string;
291
1790
  strategy: "frozen" | "regenerable" | "managed";
1791
+ scope?: "project" | "global" | undefined;
1792
+ ide?: "qoder" | "claude" | undefined;
292
1793
  }[];
293
1794
  installedAt: string;
294
1795
  }>;
@@ -302,7 +1803,7 @@ declare const InstalledManifestSchema: z.ZodObject<{
302
1803
  installed: z.ZodArray<z.ZodObject<{
303
1804
  /** Full package name (e.g. "@teamix-evo/design") */
304
1805
  package: z.ZodString;
305
- /** Variant identifier */
1806
+ /** Variant identifier (use "_flat" for non-variant packages such as skills) */
306
1807
  variant: z.ZodString;
307
1808
  /** Installed version */
308
1809
  version: z.ZodString;
@@ -312,22 +1813,30 @@ declare const InstalledManifestSchema: z.ZodObject<{
312
1813
  resources: z.ZodArray<z.ZodObject<{
313
1814
  /** Resource identifier matching the variant manifest */
314
1815
  id: z.ZodString;
315
- /** Target path where the resource was installed */
1816
+ /** Target path where the resource was installed (absolute or project-relative) */
316
1817
  target: z.ZodString;
317
1818
  /** Content hash for change detection (e.g. "sha256:...") */
318
1819
  hash: z.ZodString;
319
1820
  /** Update strategy that was applied */
320
1821
  strategy: z.ZodEnum<["frozen", "regenerable", "managed"]>;
1822
+ /** IDE this resource was installed for (skill resources only) */
1823
+ ide: z.ZodOptional<z.ZodEnum<["qoder", "claude"]>>;
1824
+ /** Install scope (skill resources only) */
1825
+ scope: z.ZodOptional<z.ZodEnum<["project", "global"]>>;
321
1826
  }, "strip", z.ZodTypeAny, {
322
1827
  id: string;
323
1828
  target: string;
324
1829
  hash: string;
325
1830
  strategy: "frozen" | "regenerable" | "managed";
1831
+ scope?: "project" | "global" | undefined;
1832
+ ide?: "qoder" | "claude" | undefined;
326
1833
  }, {
327
1834
  id: string;
328
1835
  target: string;
329
1836
  hash: string;
330
1837
  strategy: "frozen" | "regenerable" | "managed";
1838
+ scope?: "project" | "global" | undefined;
1839
+ ide?: "qoder" | "claude" | undefined;
331
1840
  }>, "many">;
332
1841
  }, "strip", z.ZodTypeAny, {
333
1842
  package: string;
@@ -338,6 +1847,8 @@ declare const InstalledManifestSchema: z.ZodObject<{
338
1847
  target: string;
339
1848
  hash: string;
340
1849
  strategy: "frozen" | "regenerable" | "managed";
1850
+ scope?: "project" | "global" | undefined;
1851
+ ide?: "qoder" | "claude" | undefined;
341
1852
  }[];
342
1853
  installedAt: string;
343
1854
  }, {
@@ -349,6 +1860,8 @@ declare const InstalledManifestSchema: z.ZodObject<{
349
1860
  target: string;
350
1861
  hash: string;
351
1862
  strategy: "frozen" | "regenerable" | "managed";
1863
+ scope?: "project" | "global" | undefined;
1864
+ ide?: "qoder" | "claude" | undefined;
352
1865
  }[];
353
1866
  installedAt: string;
354
1867
  }>, "many">;
@@ -363,6 +1876,8 @@ declare const InstalledManifestSchema: z.ZodObject<{
363
1876
  target: string;
364
1877
  hash: string;
365
1878
  strategy: "frozen" | "regenerable" | "managed";
1879
+ scope?: "project" | "global" | undefined;
1880
+ ide?: "qoder" | "claude" | undefined;
366
1881
  }[];
367
1882
  installedAt: string;
368
1883
  }[];
@@ -377,21 +1892,146 @@ declare const InstalledManifestSchema: z.ZodObject<{
377
1892
  target: string;
378
1893
  hash: string;
379
1894
  strategy: "frozen" | "regenerable" | "managed";
1895
+ scope?: "project" | "global" | undefined;
1896
+ ide?: "qoder" | "claude" | undefined;
380
1897
  }[];
381
1898
  installedAt: string;
382
1899
  }[];
383
1900
  }>;
384
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
+
385
2003
  /** Resource update strategy */
386
2004
  type UpdateStrategy = z.infer<typeof UpdateStrategySchema>;
387
2005
  /** Resource type discriminator */
388
2006
  type ResourceType = z.infer<typeof ResourceTypeSchema>;
2007
+ /** AI IDE identifier supported by skills (qoder | claude) */
2008
+ type SkillIde = z.infer<typeof SkillIdeSchema>;
2009
+ /** Skill installation scope (project | global) */
2010
+ type SkillScope = z.infer<typeof SkillScopeSchema>;
2011
+ /** UI entry type discriminator */
2012
+ type UiEntryType = z.infer<typeof UiEntryTypeSchema>;
2013
+ /** UI write-back alias key (components | hooks | utils | lib) */
2014
+ type UiAlias = z.infer<typeof UiAliasSchema>;
389
2015
  /** A single resource entry within a variant manifest */
390
2016
  type Resource = z.infer<typeof ResourceSchema>;
391
2017
  /** Variant manifest describing a package variant and its resources */
392
2018
  type VariantManifest = z.infer<typeof VariantManifestSchema>;
2019
+ /** A single skill entry in a skills package manifest */
2020
+ type SkillEntry = z.infer<typeof SkillEntrySchema>;
2021
+ /** Skills package manifest (top-level manifest of @teamix-evo/skills) */
2022
+ type SkillsPackageManifest = z.infer<typeof SkillsPackageManifestSchema>;
2023
+ /** A single file shipped by a UI entry */
2024
+ type UiEntryFile = z.infer<typeof UiEntryFileSchema>;
2025
+ /** A single UI entry (component / hook / util / block) */
2026
+ type UiEntry = z.infer<typeof UiEntrySchema>;
2027
+ /** UI package manifest (top-level manifest of @teamix-evo/ui) */
2028
+ type UiPackageManifest = z.infer<typeof UiPackageManifestSchema>;
2029
+ /** Path aliases for UI entry installation in the consumer project */
2030
+ type UiAliases = z.infer<typeof UiAliasesSchema>;
393
2031
  /** A package entry in the project config */
394
2032
  type PackageEntry = z.infer<typeof PackageEntrySchema>;
2033
+ /** Tailwind CSS major version (always `"v4"` since v0.7). */
2034
+ type TailwindVersion = z.infer<typeof TailwindVersionSchema>;
395
2035
  /** Project configuration (config.json) */
396
2036
  type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
397
2037
  /** An installed resource tracking entry */
@@ -431,6 +2071,82 @@ type Result<T> = {
431
2071
  * @throws Error if the file cannot be read or the manifest is invalid
432
2072
  */
433
2073
  declare function loadVariantManifest(packageDir: string): Promise<VariantManifest>;
2074
+ /**
2075
+ * Load and validate the top-level manifest of a skills package.
2076
+ *
2077
+ * Reads `manifest.json` from the given directory and validates it against
2078
+ * the SkillsPackageManifest schema (flat list of skills, no variants).
2079
+ *
2080
+ * @param packageDir - Absolute or relative path to the skills package directory
2081
+ * @returns The validated SkillsPackageManifest
2082
+ * @throws Error if the file cannot be read or the manifest is invalid
2083
+ */
2084
+ declare function loadSkillsPackageManifest(packageDir: string): Promise<SkillsPackageManifest>;
2085
+ /**
2086
+ * Load and validate the top-level manifest of a UI package.
2087
+ *
2088
+ * Reads `manifest.json` from the given directory and validates it against
2089
+ * the UiPackageManifest schema (flat list of entries, no variants).
2090
+ * Also performs registryDependencies graph validation (existence + no cycles).
2091
+ *
2092
+ * @param packageDir - Absolute or relative path to the ui package directory
2093
+ * @returns The validated UiPackageManifest
2094
+ * @throws Error if the file cannot be read, the manifest is invalid, or the dep graph is broken
2095
+ */
2096
+ declare function loadUiPackageManifest(packageDir: string): Promise<UiPackageManifest>;
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>;
434
2150
 
435
2151
  /**
436
2152
  * Validate unknown data against the VariantManifest schema.
@@ -445,6 +2161,40 @@ declare function validateConfig(data: unknown): Result<ProjectConfig>;
445
2161
  * Validate unknown data against the InstalledManifest schema.
446
2162
  */
447
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>;
2169
+ /**
2170
+ * Validate unknown data against the SkillsPackageManifest schema.
2171
+ */
2172
+ declare function validateSkillsPackage(data: unknown): Result<SkillsPackageManifest>;
2173
+ /**
2174
+ * Validate unknown data against the UiPackageManifest schema, then verify the
2175
+ * registryDependencies graph: every reference resolves and there are no cycles.
2176
+ */
2177
+ declare function validateUiPackage(data: unknown): Result<UiPackageManifest>;
2178
+ /**
2179
+ * Validate the registryDependencies graph among ui entries.
2180
+ * Returns a list of issue strings (empty when the graph is sound).
2181
+ *
2182
+ * Issues detected:
2183
+ * - Duplicate entry id
2184
+ * - Reference to an unknown entry id
2185
+ * - Cyclic dependency
2186
+ */
2187
+ declare function validateUiDependencyGraph(entries: UiEntry[]): string[];
2188
+ /**
2189
+ * Topologically sort a subset of ui entries so that dependencies come before
2190
+ * dependents. Used by `ui add` to determine install order.
2191
+ *
2192
+ * @param entries full list of entries (the package manifest's `entries`)
2193
+ * @param requested ids the user explicitly asked to install
2194
+ * @returns ordered list of entry ids (includes transitive deps, dedup'd)
2195
+ * @throws Error if a requested id or transitive dep is missing or graph has cycles
2196
+ */
2197
+ declare function resolveUiEntryOrder(entries: UiEntry[], requested: string[]): string[];
448
2198
 
449
2199
  /**
450
2200
  * Parse all managed regions from document content.
@@ -502,4 +2252,4 @@ interface UpdateActionOptions {
502
2252
  */
503
2253
  declare function getUpdateAction(strategy: UpdateStrategy, options: UpdateActionOptions): UpdateAction;
504
2254
 
505
- 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 UpdateAction, type UpdateActionOptions, type UpdateStrategy, UpdateStrategySchema, type VariantManifest, VariantManifestSchema, getUpdateAction, hasManagedRegion, loadVariantManifest, parseManagedRegions, replaceManagedRegion, shouldUpdate, validateConfig, validateInstalled, validateManifest };
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 };