@defai.digital/ax-cli 3.14.9 → 3.14.11

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.
Files changed (106) hide show
  1. package/README.md +17 -2
  2. package/dist/agent/execution/tool-executor.d.ts +6 -0
  3. package/dist/agent/execution/tool-executor.js +72 -0
  4. package/dist/agent/execution/tool-executor.js.map +1 -1
  5. package/dist/commands/design.d.ts +18 -0
  6. package/dist/commands/design.js +495 -0
  7. package/dist/commands/design.js.map +1 -0
  8. package/dist/commands/vscode.js +1 -1
  9. package/dist/commands/vscode.js.map +1 -1
  10. package/dist/design/figma-alias.d.ts +88 -0
  11. package/dist/design/figma-alias.js +324 -0
  12. package/dist/design/figma-alias.js.map +1 -0
  13. package/dist/design/figma-audit.d.ts +40 -0
  14. package/dist/design/figma-audit.js +375 -0
  15. package/dist/design/figma-audit.js.map +1 -0
  16. package/dist/design/figma-client.d.ts +123 -0
  17. package/dist/design/figma-client.js +316 -0
  18. package/dist/design/figma-client.js.map +1 -0
  19. package/dist/design/figma-map.d.ts +29 -0
  20. package/dist/design/figma-map.js +274 -0
  21. package/dist/design/figma-map.js.map +1 -0
  22. package/dist/design/figma-tokens.d.ts +73 -0
  23. package/dist/design/figma-tokens.js +431 -0
  24. package/dist/design/figma-tokens.js.map +1 -0
  25. package/dist/design/index.d.ts +13 -0
  26. package/dist/design/index.js +18 -0
  27. package/dist/design/index.js.map +1 -0
  28. package/dist/design/types.d.ts +89 -0
  29. package/dist/design/types.js +9 -0
  30. package/dist/design/types.js.map +1 -0
  31. package/dist/hooks/hook-runner.js +2 -2
  32. package/dist/hooks/hook-runner.js.map +1 -1
  33. package/dist/index.js +3 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/ipc/vscode-client.js +1 -1
  36. package/dist/ipc/vscode-client.js.map +1 -1
  37. package/dist/llm/tools.js +170 -0
  38. package/dist/llm/tools.js.map +1 -1
  39. package/dist/mcp/client-v2.js +1 -1
  40. package/dist/mcp/client-v2.js.map +1 -1
  41. package/dist/mcp/validation.js +1 -1
  42. package/dist/mcp/validation.js.map +1 -1
  43. package/dist/permissions/permission-manager.js +2 -2
  44. package/dist/permissions/permission-manager.js.map +1 -1
  45. package/dist/tools/design-tool.d.ts +59 -0
  46. package/dist/tools/design-tool.js +258 -0
  47. package/dist/tools/design-tool.js.map +1 -0
  48. package/dist/ui/hooks/use-input-history.js +1 -1
  49. package/dist/ui/hooks/use-input-history.js.map +1 -1
  50. package/dist/ui/utils/image-handler.js +1 -1
  51. package/dist/ui/utils/image-handler.js.map +1 -1
  52. package/dist/utils/path-security.js +2 -2
  53. package/dist/utils/path-security.js.map +1 -1
  54. package/dist/utils/progress-tracker.js +1 -1
  55. package/dist/utils/progress-tracker.js.map +1 -1
  56. package/dist/utils/settings-manager.js +8 -3
  57. package/dist/utils/settings-manager.js.map +1 -1
  58. package/node_modules/@ax-cli/schemas/dist/index.d.ts +1 -0
  59. package/node_modules/@ax-cli/schemas/dist/index.d.ts.map +1 -1
  60. package/node_modules/@ax-cli/schemas/dist/index.js +2 -2
  61. package/node_modules/@ax-cli/schemas/dist/index.js.map +1 -1
  62. package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts +346 -0
  63. package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts.map +1 -0
  64. package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js +171 -0
  65. package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js.map +1 -0
  66. package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts +545 -0
  67. package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts.map +1 -0
  68. package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js +307 -0
  69. package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js.map +1 -0
  70. package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts +1306 -0
  71. package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts.map +1 -0
  72. package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js +428 -0
  73. package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js.map +1 -0
  74. package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts +13 -0
  75. package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts.map +1 -0
  76. package/node_modules/@ax-cli/schemas/dist/public/design/index.js +82 -0
  77. package/node_modules/@ax-cli/schemas/dist/public/design/index.js.map +1 -0
  78. package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts +1245 -0
  79. package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts.map +1 -0
  80. package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js +282 -0
  81. package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js.map +1 -0
  82. package/package.json +2 -2
  83. package/packages/schemas/dist/index.d.ts +1 -0
  84. package/packages/schemas/dist/index.d.ts.map +1 -1
  85. package/packages/schemas/dist/index.js +2 -2
  86. package/packages/schemas/dist/index.js.map +1 -1
  87. package/packages/schemas/dist/public/design/alias-types.d.ts +346 -0
  88. package/packages/schemas/dist/public/design/alias-types.d.ts.map +1 -0
  89. package/packages/schemas/dist/public/design/alias-types.js +171 -0
  90. package/packages/schemas/dist/public/design/alias-types.js.map +1 -0
  91. package/packages/schemas/dist/public/design/audit-types.d.ts +545 -0
  92. package/packages/schemas/dist/public/design/audit-types.d.ts.map +1 -0
  93. package/packages/schemas/dist/public/design/audit-types.js +307 -0
  94. package/packages/schemas/dist/public/design/audit-types.js.map +1 -0
  95. package/packages/schemas/dist/public/design/figma-types.d.ts +1306 -0
  96. package/packages/schemas/dist/public/design/figma-types.d.ts.map +1 -0
  97. package/packages/schemas/dist/public/design/figma-types.js +428 -0
  98. package/packages/schemas/dist/public/design/figma-types.js.map +1 -0
  99. package/packages/schemas/dist/public/design/index.d.ts +13 -0
  100. package/packages/schemas/dist/public/design/index.d.ts.map +1 -0
  101. package/packages/schemas/dist/public/design/index.js +82 -0
  102. package/packages/schemas/dist/public/design/index.js.map +1 -0
  103. package/packages/schemas/dist/public/design/token-types.d.ts +1245 -0
  104. package/packages/schemas/dist/public/design/token-types.d.ts.map +1 -0
  105. package/packages/schemas/dist/public/design/token-types.js +282 -0
  106. package/packages/schemas/dist/public/design/token-types.js.map +1 -0
@@ -0,0 +1,346 @@
1
+ /**
2
+ * Design Alias Schemas
3
+ *
4
+ * Zod schemas for the alias system that maps human-readable names
5
+ * to Figma file keys and node IDs.
6
+ *
7
+ * @module design/alias-types
8
+ */
9
+ import { z } from 'zod';
10
+ import { type Brand } from '../core/brand-types.js';
11
+ /**
12
+ * Design alias name - dot-separated path (e.g., "landing.hero", "ds.colors.primary")
13
+ */
14
+ export type DesignAlias = Brand<string, 'DesignAlias'>;
15
+ /**
16
+ * Validate alias format: lowercase letters, numbers, dots, hyphens
17
+ * Examples: "landing.hero", "ds.colors.primary", "button-primary"
18
+ *
19
+ * Note: This schema validates but does NOT transform to branded type
20
+ * to avoid TypeScript declaration emit issues with __brand symbol.
21
+ * Use `createDesignAlias()` to create branded values.
22
+ */
23
+ export declare const DesignAliasSchema: z.ZodString;
24
+ /**
25
+ * Create a branded DesignAlias from a validated string
26
+ */
27
+ export declare function createDesignAlias(value: string): DesignAlias;
28
+ /**
29
+ * Safely parse and create a DesignAlias
30
+ */
31
+ export declare function parseDesignAlias(value: unknown): {
32
+ success: true;
33
+ data: DesignAlias;
34
+ } | {
35
+ success: false;
36
+ error: z.ZodError;
37
+ };
38
+ /**
39
+ * Target reference for an alias
40
+ */
41
+ export declare const AliasTargetSchema: z.ZodObject<{
42
+ /** Figma file key */
43
+ fileKey: z.ZodString;
44
+ /** Node ID within the file */
45
+ nodeId: z.ZodString;
46
+ /** Optional description of this alias */
47
+ description: z.ZodOptional<z.ZodString>;
48
+ /** When this alias was created/updated */
49
+ updatedAt: z.ZodOptional<z.ZodString>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ nodeId: string;
52
+ fileKey: string;
53
+ description?: string | undefined;
54
+ updatedAt?: string | undefined;
55
+ }, {
56
+ nodeId: string;
57
+ fileKey: string;
58
+ description?: string | undefined;
59
+ updatedAt?: string | undefined;
60
+ }>;
61
+ export type AliasTarget = z.infer<typeof AliasTargetSchema>;
62
+ /**
63
+ * Complete alias configuration stored in .ax-cli/design.json
64
+ */
65
+ export declare const DesignConfigSchema: z.ZodObject<{
66
+ /** Schema version for future migrations */
67
+ version: z.ZodLiteral<1>;
68
+ /** Default file key when not specified in alias */
69
+ defaultFile: z.ZodOptional<z.ZodString>;
70
+ /** Optional design system file key (for DS-specific operations) */
71
+ dsFile: z.ZodOptional<z.ZodString>;
72
+ /** Map of alias names to targets */
73
+ aliases: z.ZodRecord<z.ZodString, z.ZodObject<{
74
+ /** Figma file key */
75
+ fileKey: z.ZodString;
76
+ /** Node ID within the file */
77
+ nodeId: z.ZodString;
78
+ /** Optional description of this alias */
79
+ description: z.ZodOptional<z.ZodString>;
80
+ /** When this alias was created/updated */
81
+ updatedAt: z.ZodOptional<z.ZodString>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ nodeId: string;
84
+ fileKey: string;
85
+ description?: string | undefined;
86
+ updatedAt?: string | undefined;
87
+ }, {
88
+ nodeId: string;
89
+ fileKey: string;
90
+ description?: string | undefined;
91
+ updatedAt?: string | undefined;
92
+ }>>;
93
+ /** Metadata about the configuration */
94
+ meta: z.ZodOptional<z.ZodObject<{
95
+ /** When config was last modified */
96
+ lastModified: z.ZodOptional<z.ZodString>;
97
+ /** Figma file names for display */
98
+ fileNames: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ lastModified?: string | undefined;
101
+ fileNames?: Record<string, string> | undefined;
102
+ }, {
103
+ lastModified?: string | undefined;
104
+ fileNames?: Record<string, string> | undefined;
105
+ }>>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ version: 1;
108
+ aliases: Record<string, {
109
+ nodeId: string;
110
+ fileKey: string;
111
+ description?: string | undefined;
112
+ updatedAt?: string | undefined;
113
+ }>;
114
+ meta?: {
115
+ lastModified?: string | undefined;
116
+ fileNames?: Record<string, string> | undefined;
117
+ } | undefined;
118
+ defaultFile?: string | undefined;
119
+ dsFile?: string | undefined;
120
+ }, {
121
+ version: 1;
122
+ aliases: Record<string, {
123
+ nodeId: string;
124
+ fileKey: string;
125
+ description?: string | undefined;
126
+ updatedAt?: string | undefined;
127
+ }>;
128
+ meta?: {
129
+ lastModified?: string | undefined;
130
+ fileNames?: Record<string, string> | undefined;
131
+ } | undefined;
132
+ defaultFile?: string | undefined;
133
+ dsFile?: string | undefined;
134
+ }>;
135
+ export type DesignConfig = z.infer<typeof DesignConfigSchema>;
136
+ /**
137
+ * Create empty design config
138
+ */
139
+ export declare function createEmptyDesignConfig(): DesignConfig;
140
+ /**
141
+ * Input for adding a new alias
142
+ */
143
+ export declare const AddAliasInputSchema: z.ZodObject<{
144
+ alias: z.ZodString;
145
+ fileKey: z.ZodString;
146
+ nodeId: z.ZodString;
147
+ description: z.ZodOptional<z.ZodString>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ nodeId: string;
150
+ fileKey: string;
151
+ alias: string;
152
+ description?: string | undefined;
153
+ }, {
154
+ nodeId: string;
155
+ fileKey: string;
156
+ alias: string;
157
+ description?: string | undefined;
158
+ }>;
159
+ export type AddAliasInput = z.infer<typeof AddAliasInputSchema>;
160
+ /**
161
+ * Result of alias operations
162
+ */
163
+ export declare const AliasOperationResultSchema: z.ZodObject<{
164
+ success: z.ZodBoolean;
165
+ alias: z.ZodString;
166
+ message: z.ZodString;
167
+ target: z.ZodOptional<z.ZodObject<{
168
+ /** Figma file key */
169
+ fileKey: z.ZodString;
170
+ /** Node ID within the file */
171
+ nodeId: z.ZodString;
172
+ /** Optional description of this alias */
173
+ description: z.ZodOptional<z.ZodString>;
174
+ /** When this alias was created/updated */
175
+ updatedAt: z.ZodOptional<z.ZodString>;
176
+ }, "strip", z.ZodTypeAny, {
177
+ nodeId: string;
178
+ fileKey: string;
179
+ description?: string | undefined;
180
+ updatedAt?: string | undefined;
181
+ }, {
182
+ nodeId: string;
183
+ fileKey: string;
184
+ description?: string | undefined;
185
+ updatedAt?: string | undefined;
186
+ }>>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ message: string;
189
+ alias: string;
190
+ success: boolean;
191
+ target?: {
192
+ nodeId: string;
193
+ fileKey: string;
194
+ description?: string | undefined;
195
+ updatedAt?: string | undefined;
196
+ } | undefined;
197
+ }, {
198
+ message: string;
199
+ alias: string;
200
+ success: boolean;
201
+ target?: {
202
+ nodeId: string;
203
+ fileKey: string;
204
+ description?: string | undefined;
205
+ updatedAt?: string | undefined;
206
+ } | undefined;
207
+ }>;
208
+ export type AliasOperationResult = z.infer<typeof AliasOperationResultSchema>;
209
+ /**
210
+ * Resolved alias with all information
211
+ */
212
+ export declare const ResolvedAliasSchema: z.ZodObject<{
213
+ /** Original alias name */
214
+ alias: z.ZodString;
215
+ /** Resolved file key */
216
+ fileKey: z.ZodString;
217
+ /** Resolved node ID */
218
+ nodeId: z.ZodString;
219
+ /** Whether this was explicitly defined or derived */
220
+ source: z.ZodEnum<["explicit", "default-file", "ds-file"]>;
221
+ /** Description if available */
222
+ description: z.ZodOptional<z.ZodString>;
223
+ }, "strip", z.ZodTypeAny, {
224
+ nodeId: string;
225
+ fileKey: string;
226
+ alias: string;
227
+ source: "explicit" | "default-file" | "ds-file";
228
+ description?: string | undefined;
229
+ }, {
230
+ nodeId: string;
231
+ fileKey: string;
232
+ alias: string;
233
+ source: "explicit" | "default-file" | "ds-file";
234
+ description?: string | undefined;
235
+ }>;
236
+ export type ResolvedAlias = z.infer<typeof ResolvedAliasSchema>;
237
+ /**
238
+ * Alias resolution error
239
+ */
240
+ export declare const AliasResolutionErrorSchema: z.ZodObject<{
241
+ alias: z.ZodString;
242
+ error: z.ZodEnum<["not_found", "no_default_file", "invalid_format", "ambiguous"]>;
243
+ message: z.ZodString;
244
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
245
+ }, "strip", z.ZodTypeAny, {
246
+ error: "not_found" | "no_default_file" | "invalid_format" | "ambiguous";
247
+ message: string;
248
+ alias: string;
249
+ suggestions?: string[] | undefined;
250
+ }, {
251
+ error: "not_found" | "no_default_file" | "invalid_format" | "ambiguous";
252
+ message: string;
253
+ alias: string;
254
+ suggestions?: string[] | undefined;
255
+ }>;
256
+ export type AliasResolutionError = z.infer<typeof AliasResolutionErrorSchema>;
257
+ /**
258
+ * Alias entry for display in list command
259
+ */
260
+ export declare const AliasListEntrySchema: z.ZodObject<{
261
+ alias: z.ZodString;
262
+ fileKey: z.ZodString;
263
+ nodeId: z.ZodString;
264
+ fileName: z.ZodOptional<z.ZodString>;
265
+ nodeName: z.ZodOptional<z.ZodString>;
266
+ description: z.ZodOptional<z.ZodString>;
267
+ updatedAt: z.ZodOptional<z.ZodString>;
268
+ }, "strip", z.ZodTypeAny, {
269
+ nodeId: string;
270
+ fileKey: string;
271
+ alias: string;
272
+ description?: string | undefined;
273
+ updatedAt?: string | undefined;
274
+ fileName?: string | undefined;
275
+ nodeName?: string | undefined;
276
+ }, {
277
+ nodeId: string;
278
+ fileKey: string;
279
+ alias: string;
280
+ description?: string | undefined;
281
+ updatedAt?: string | undefined;
282
+ fileName?: string | undefined;
283
+ nodeName?: string | undefined;
284
+ }>;
285
+ export type AliasListEntry = z.infer<typeof AliasListEntrySchema>;
286
+ /**
287
+ * Full alias list response
288
+ */
289
+ export declare const AliasListResponseSchema: z.ZodObject<{
290
+ defaultFile: z.ZodOptional<z.ZodString>;
291
+ dsFile: z.ZodOptional<z.ZodString>;
292
+ aliases: z.ZodArray<z.ZodObject<{
293
+ alias: z.ZodString;
294
+ fileKey: z.ZodString;
295
+ nodeId: z.ZodString;
296
+ fileName: z.ZodOptional<z.ZodString>;
297
+ nodeName: z.ZodOptional<z.ZodString>;
298
+ description: z.ZodOptional<z.ZodString>;
299
+ updatedAt: z.ZodOptional<z.ZodString>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ nodeId: string;
302
+ fileKey: string;
303
+ alias: string;
304
+ description?: string | undefined;
305
+ updatedAt?: string | undefined;
306
+ fileName?: string | undefined;
307
+ nodeName?: string | undefined;
308
+ }, {
309
+ nodeId: string;
310
+ fileKey: string;
311
+ alias: string;
312
+ description?: string | undefined;
313
+ updatedAt?: string | undefined;
314
+ fileName?: string | undefined;
315
+ nodeName?: string | undefined;
316
+ }>, "many">;
317
+ total: z.ZodNumber;
318
+ }, "strip", z.ZodTypeAny, {
319
+ aliases: {
320
+ nodeId: string;
321
+ fileKey: string;
322
+ alias: string;
323
+ description?: string | undefined;
324
+ updatedAt?: string | undefined;
325
+ fileName?: string | undefined;
326
+ nodeName?: string | undefined;
327
+ }[];
328
+ total: number;
329
+ defaultFile?: string | undefined;
330
+ dsFile?: string | undefined;
331
+ }, {
332
+ aliases: {
333
+ nodeId: string;
334
+ fileKey: string;
335
+ alias: string;
336
+ description?: string | undefined;
337
+ updatedAt?: string | undefined;
338
+ fileName?: string | undefined;
339
+ nodeName?: string | undefined;
340
+ }[];
341
+ total: number;
342
+ defaultFile?: string | undefined;
343
+ dsFile?: string | undefined;
344
+ }>;
345
+ export type AliasListResponse = z.infer<typeof AliasListResponseSchema>;
346
+ //# sourceMappingURL=alias-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias-types.d.ts","sourceRoot":"","sources":["../../../src/public/design/alias-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAM3D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAOvD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,aAO3B,CAAC;AAEJ;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAG5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAM7H;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,qBAAqB;;IAErB,8BAA8B;;IAE9B,yCAAyC;;IAEzC,0CAA0C;;;;;;;;;;;;EAE1C,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,2CAA2C;;IAG3C,mDAAmD;;IAGnD,mEAAmE;;IAGnE,oCAAoC;;QA5BpC,qBAAqB;;QAErB,8BAA8B;;QAE9B,yCAAyC;;QAEzC,0CAA0C;;;;;;;;;;;;;IA4B1C,uCAAuC;;QAErC,oCAAoC;;QAEpC,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrC,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CAKtD;AAMD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;QAxErC,qBAAqB;;QAErB,8BAA8B;;QAE9B,yCAAyC;;QAEzC,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuE1C,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,0BAA0B;;IAE1B,wBAAwB;;IAExB,uBAAuB;;IAEvB,qDAAqD;;IAErD,+BAA+B;;;;;;;;;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAUrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Design Alias Schemas
3
+ *
4
+ * Zod schemas for the alias system that maps human-readable names
5
+ * to Figma file keys and node IDs.
6
+ *
7
+ * @module design/alias-types
8
+ */
9
+ import { z } from 'zod';
10
+ import { brand } from '../core/brand-types.js';
11
+ /**
12
+ * Alias format pattern
13
+ */
14
+ const ALIAS_PATTERN = /^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)*(-[a-z0-9]+)*$/;
15
+ /**
16
+ * Validate alias format: lowercase letters, numbers, dots, hyphens
17
+ * Examples: "landing.hero", "ds.colors.primary", "button-primary"
18
+ *
19
+ * Note: This schema validates but does NOT transform to branded type
20
+ * to avoid TypeScript declaration emit issues with __brand symbol.
21
+ * Use `createDesignAlias()` to create branded values.
22
+ */
23
+ export const DesignAliasSchema = z
24
+ .string()
25
+ .min(1, 'Alias cannot be empty')
26
+ .max(100, 'Alias too long (max 100 characters)')
27
+ .regex(ALIAS_PATTERN, 'Alias must start with lowercase letter, use dots for hierarchy (e.g., "landing.hero")');
28
+ /**
29
+ * Create a branded DesignAlias from a validated string
30
+ */
31
+ export function createDesignAlias(value) {
32
+ const validated = DesignAliasSchema.parse(value);
33
+ return brand(validated);
34
+ }
35
+ /**
36
+ * Safely parse and create a DesignAlias
37
+ */
38
+ export function parseDesignAlias(value) {
39
+ const result = DesignAliasSchema.safeParse(value);
40
+ if (result.success) {
41
+ return { success: true, data: brand(result.data) };
42
+ }
43
+ return { success: false, error: result.error };
44
+ }
45
+ // =============================================================================
46
+ // Alias Target Schema
47
+ // =============================================================================
48
+ /**
49
+ * Target reference for an alias
50
+ */
51
+ export const AliasTargetSchema = z.object({
52
+ /** Figma file key */
53
+ fileKey: z.string().min(1, 'File key required'),
54
+ /** Node ID within the file */
55
+ nodeId: z.string().regex(/^\d+:\d+$/, 'Invalid node ID format'),
56
+ /** Optional description of this alias */
57
+ description: z.string().optional(),
58
+ /** When this alias was created/updated */
59
+ updatedAt: z.string().datetime().optional(),
60
+ });
61
+ // =============================================================================
62
+ // Alias Configuration File Schema
63
+ // =============================================================================
64
+ /**
65
+ * Complete alias configuration stored in .ax-cli/design.json
66
+ */
67
+ export const DesignConfigSchema = z.object({
68
+ /** Schema version for future migrations */
69
+ version: z.literal(1),
70
+ /** Default file key when not specified in alias */
71
+ defaultFile: z.string().min(1).optional(),
72
+ /** Optional design system file key (for DS-specific operations) */
73
+ dsFile: z.string().min(1).optional(),
74
+ /** Map of alias names to targets */
75
+ aliases: z.record(z.string(), // Key is the alias name (validated separately)
76
+ AliasTargetSchema),
77
+ /** Metadata about the configuration */
78
+ meta: z.object({
79
+ /** When config was last modified */
80
+ lastModified: z.string().datetime().optional(),
81
+ /** Figma file names for display */
82
+ fileNames: z.record(z.string(), z.string()).optional(),
83
+ }).optional(),
84
+ });
85
+ /**
86
+ * Create empty design config
87
+ */
88
+ export function createEmptyDesignConfig() {
89
+ return {
90
+ version: 1,
91
+ aliases: {},
92
+ };
93
+ }
94
+ // =============================================================================
95
+ // Alias Operation Schemas
96
+ // =============================================================================
97
+ /**
98
+ * Input for adding a new alias
99
+ */
100
+ export const AddAliasInputSchema = z.object({
101
+ alias: DesignAliasSchema,
102
+ fileKey: z.string().min(1, 'File key required'),
103
+ nodeId: z.string().regex(/^\d+:\d+$/, 'Invalid node ID format'),
104
+ description: z.string().optional(),
105
+ });
106
+ /**
107
+ * Result of alias operations
108
+ */
109
+ export const AliasOperationResultSchema = z.object({
110
+ success: z.boolean(),
111
+ alias: z.string(),
112
+ message: z.string(),
113
+ target: AliasTargetSchema.optional(),
114
+ });
115
+ // =============================================================================
116
+ // Alias Resolution Schema
117
+ // =============================================================================
118
+ /**
119
+ * Resolved alias with all information
120
+ */
121
+ export const ResolvedAliasSchema = z.object({
122
+ /** Original alias name */
123
+ alias: z.string(),
124
+ /** Resolved file key */
125
+ fileKey: z.string(),
126
+ /** Resolved node ID */
127
+ nodeId: z.string(),
128
+ /** Whether this was explicitly defined or derived */
129
+ source: z.enum(['explicit', 'default-file', 'ds-file']),
130
+ /** Description if available */
131
+ description: z.string().optional(),
132
+ });
133
+ /**
134
+ * Alias resolution error
135
+ */
136
+ export const AliasResolutionErrorSchema = z.object({
137
+ alias: z.string(),
138
+ error: z.enum([
139
+ 'not_found',
140
+ 'no_default_file',
141
+ 'invalid_format',
142
+ 'ambiguous',
143
+ ]),
144
+ message: z.string(),
145
+ suggestions: z.array(z.string()).optional(),
146
+ });
147
+ // =============================================================================
148
+ // Alias List Display Schema
149
+ // =============================================================================
150
+ /**
151
+ * Alias entry for display in list command
152
+ */
153
+ export const AliasListEntrySchema = z.object({
154
+ alias: z.string(),
155
+ fileKey: z.string(),
156
+ nodeId: z.string(),
157
+ fileName: z.string().optional(),
158
+ nodeName: z.string().optional(),
159
+ description: z.string().optional(),
160
+ updatedAt: z.string().optional(),
161
+ });
162
+ /**
163
+ * Full alias list response
164
+ */
165
+ export const AliasListResponseSchema = z.object({
166
+ defaultFile: z.string().optional(),
167
+ dsFile: z.string().optional(),
168
+ aliases: z.array(AliasListEntrySchema),
169
+ total: z.number(),
170
+ });
171
+ //# sourceMappingURL=alias-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias-types.js","sourceRoot":"","sources":["../../../src/public/design/alias-types.ts"],"names":[],"mappings":"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"}