@defai.digital/ax-cli 3.14.10 → 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 +10 -1
  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 +1 -1
  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 @@
1
+ {"version":3,"file":"token-types.d.ts","sourceRoot":"","sources":["../../../src/public/design/token-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Design Token Schemas
3
+ *
4
+ * Zod schemas for design tokens extracted from Figma.
5
+ * Supports JSON and Tailwind output formats.
6
+ *
7
+ * @module design/token-types
8
+ */
9
+ import { z } from 'zod';
10
+ // =============================================================================
11
+ // Token Value Types
12
+ // =============================================================================
13
+ /**
14
+ * Token type enumeration
15
+ */
16
+ export const TokenTypeSchema = z.enum([
17
+ 'color',
18
+ 'dimension',
19
+ 'fontFamily',
20
+ 'fontWeight',
21
+ 'fontSize',
22
+ 'lineHeight',
23
+ 'letterSpacing',
24
+ 'paragraphSpacing',
25
+ 'textCase',
26
+ 'textDecoration',
27
+ 'duration',
28
+ 'cubicBezier',
29
+ 'shadow',
30
+ 'gradient',
31
+ 'border',
32
+ 'opacity',
33
+ 'number',
34
+ 'string',
35
+ 'boolean',
36
+ 'composite',
37
+ ]);
38
+ /**
39
+ * Base token schema
40
+ */
41
+ export const BaseTokenSchema = z.object({
42
+ value: z.unknown(),
43
+ type: TokenTypeSchema,
44
+ description: z.string().optional(),
45
+ extensions: z.record(z.unknown()).optional(),
46
+ });
47
+ /**
48
+ * Color token value (hex format)
49
+ */
50
+ export const ColorTokenSchema = BaseTokenSchema.extend({
51
+ type: z.literal('color'),
52
+ value: z.string().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/, 'Invalid hex color'),
53
+ });
54
+ /**
55
+ * Dimension token value (px, rem, em, %, etc.)
56
+ */
57
+ export const DimensionTokenSchema = BaseTokenSchema.extend({
58
+ type: z.literal('dimension'),
59
+ value: z.string().regex(/^-?\d+(\.\d+)?(px|rem|em|%|vw|vh|vmin|vmax)$/, 'Invalid dimension format'),
60
+ });
61
+ /**
62
+ * Font family token
63
+ */
64
+ export const FontFamilyTokenSchema = BaseTokenSchema.extend({
65
+ type: z.literal('fontFamily'),
66
+ value: z.union([z.string(), z.array(z.string())]),
67
+ });
68
+ /**
69
+ * Font weight token
70
+ */
71
+ export const FontWeightTokenSchema = BaseTokenSchema.extend({
72
+ type: z.literal('fontWeight'),
73
+ value: z.union([
74
+ z.number().int().min(100).max(900),
75
+ z.enum(['thin', 'hairline', 'extralight', 'ultralight', 'light', 'normal', 'regular', 'medium', 'semibold', 'demibold', 'bold', 'extrabold', 'ultrabold', 'black', 'heavy']),
76
+ ]),
77
+ });
78
+ /**
79
+ * Font size token
80
+ */
81
+ export const FontSizeTokenSchema = BaseTokenSchema.extend({
82
+ type: z.literal('fontSize'),
83
+ value: z.string().regex(/^-?\d+(\.\d+)?(px|rem|em)$/, 'Invalid font size format'),
84
+ });
85
+ /**
86
+ * Line height token
87
+ */
88
+ export const LineHeightTokenSchema = BaseTokenSchema.extend({
89
+ type: z.literal('lineHeight'),
90
+ value: z.union([
91
+ z.number(),
92
+ z.string().regex(/^-?\d+(\.\d+)?(px|rem|em|%)?$/, 'Invalid line height format'),
93
+ ]),
94
+ });
95
+ /**
96
+ * Letter spacing token
97
+ */
98
+ export const LetterSpacingTokenSchema = BaseTokenSchema.extend({
99
+ type: z.literal('letterSpacing'),
100
+ value: z.string().regex(/^-?\d+(\.\d+)?(px|rem|em|%)$/, 'Invalid letter spacing format'),
101
+ });
102
+ /**
103
+ * Shadow token value
104
+ */
105
+ export const ShadowValueSchema = z.object({
106
+ color: z.string(),
107
+ offsetX: z.string(),
108
+ offsetY: z.string(),
109
+ blur: z.string(),
110
+ spread: z.string().optional(),
111
+ inset: z.boolean().optional(),
112
+ });
113
+ export const ShadowTokenSchema = BaseTokenSchema.extend({
114
+ type: z.literal('shadow'),
115
+ value: z.union([ShadowValueSchema, z.array(ShadowValueSchema)]),
116
+ });
117
+ /**
118
+ * Gradient stop
119
+ */
120
+ export const GradientStopSchema = z.object({
121
+ color: z.string(),
122
+ position: z.number().min(0).max(1),
123
+ });
124
+ /**
125
+ * Gradient token value
126
+ */
127
+ export const GradientValueSchema = z.object({
128
+ type: z.enum(['linear', 'radial', 'angular', 'diamond']),
129
+ angle: z.number().optional(),
130
+ stops: z.array(GradientStopSchema),
131
+ });
132
+ export const GradientTokenSchema = BaseTokenSchema.extend({
133
+ type: z.literal('gradient'),
134
+ value: GradientValueSchema,
135
+ });
136
+ /**
137
+ * Border token value
138
+ */
139
+ export const BorderValueSchema = z.object({
140
+ color: z.string(),
141
+ width: z.string(),
142
+ style: z.enum(['solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset', 'none']).optional(),
143
+ });
144
+ export const BorderTokenSchema = BaseTokenSchema.extend({
145
+ type: z.literal('border'),
146
+ value: BorderValueSchema,
147
+ });
148
+ /**
149
+ * Number token
150
+ */
151
+ export const NumberTokenSchema = BaseTokenSchema.extend({
152
+ type: z.literal('number'),
153
+ value: z.number(),
154
+ });
155
+ /**
156
+ * Opacity token
157
+ */
158
+ export const OpacityTokenSchema = BaseTokenSchema.extend({
159
+ type: z.literal('opacity'),
160
+ value: z.number().min(0).max(1),
161
+ });
162
+ /**
163
+ * Union of all token types
164
+ */
165
+ export const DesignTokenSchema = z.union([
166
+ ColorTokenSchema,
167
+ DimensionTokenSchema,
168
+ FontFamilyTokenSchema,
169
+ FontWeightTokenSchema,
170
+ FontSizeTokenSchema,
171
+ LineHeightTokenSchema,
172
+ LetterSpacingTokenSchema,
173
+ ShadowTokenSchema,
174
+ GradientTokenSchema,
175
+ BorderTokenSchema,
176
+ NumberTokenSchema,
177
+ OpacityTokenSchema,
178
+ BaseTokenSchema, // Fallback for other types
179
+ ]);
180
+ export const TokenGroupSchema = z.lazy(() => z.record(z.union([DesignTokenSchema, TokenGroupSchema])));
181
+ /**
182
+ * Root token file structure
183
+ */
184
+ export const TokenFileSchema = z.object({
185
+ $schema: z.string().optional(),
186
+ $description: z.string().optional(),
187
+ $version: z.string().optional(),
188
+ // Top-level token categories
189
+ colors: TokenGroupSchema.optional(),
190
+ spacing: TokenGroupSchema.optional(),
191
+ sizing: TokenGroupSchema.optional(),
192
+ typography: TokenGroupSchema.optional(),
193
+ shadows: TokenGroupSchema.optional(),
194
+ borders: TokenGroupSchema.optional(),
195
+ radii: TokenGroupSchema.optional(),
196
+ opacity: TokenGroupSchema.optional(),
197
+ zIndex: TokenGroupSchema.optional(),
198
+ transitions: TokenGroupSchema.optional(),
199
+ // Allow additional top-level categories
200
+ }).catchall(TokenGroupSchema);
201
+ // =============================================================================
202
+ // Token Output Formats
203
+ // =============================================================================
204
+ /**
205
+ * Supported output formats
206
+ */
207
+ export const TokenOutputFormatSchema = z.enum(['json', 'tailwind', 'css', 'scss']);
208
+ /**
209
+ * Token extraction options
210
+ */
211
+ export const TokenExtractionOptionsSchema = z.object({
212
+ format: TokenOutputFormatSchema.default('json'),
213
+ includeDescription: z.boolean().default(true),
214
+ flattenGroups: z.boolean().default(false),
215
+ prefix: z.string().optional(),
216
+ colorFormat: z.enum(['hex', 'rgb', 'hsl']).default('hex'),
217
+ dimensionUnit: z.enum(['px', 'rem']).default('px'),
218
+ remBase: z.number().default(16),
219
+ });
220
+ // =============================================================================
221
+ // Tailwind Config Types
222
+ // =============================================================================
223
+ /**
224
+ * Tailwind theme configuration (partial)
225
+ */
226
+ export const TailwindThemeSchema = z.object({
227
+ colors: z.record(z.union([z.string(), z.record(z.string())])).optional(),
228
+ spacing: z.record(z.string()).optional(),
229
+ fontSize: z.record(z.union([
230
+ z.string(),
231
+ z.tuple([z.string(), z.object({ lineHeight: z.string().optional(), letterSpacing: z.string().optional() })]),
232
+ ])).optional(),
233
+ fontFamily: z.record(z.array(z.string())).optional(),
234
+ fontWeight: z.record(z.union([z.string(), z.number()])).optional(),
235
+ lineHeight: z.record(z.string()).optional(),
236
+ letterSpacing: z.record(z.string()).optional(),
237
+ borderRadius: z.record(z.string()).optional(),
238
+ borderWidth: z.record(z.string()).optional(),
239
+ boxShadow: z.record(z.string()).optional(),
240
+ opacity: z.record(z.string()).optional(),
241
+ zIndex: z.record(z.union([z.string(), z.number()])).optional(),
242
+ });
243
+ /**
244
+ * Tailwind config output
245
+ */
246
+ export const TailwindConfigSchema = z.object({
247
+ theme: z.object({
248
+ extend: TailwindThemeSchema,
249
+ }),
250
+ });
251
+ // =============================================================================
252
+ // Token Comparison Types
253
+ // =============================================================================
254
+ /**
255
+ * Token difference entry
256
+ */
257
+ export const TokenDiffEntrySchema = z.object({
258
+ path: z.string(),
259
+ type: z.enum(['added', 'removed', 'modified']),
260
+ figmaValue: z.unknown().optional(),
261
+ localValue: z.unknown().optional(),
262
+ figmaType: TokenTypeSchema.optional(),
263
+ localType: TokenTypeSchema.optional(),
264
+ });
265
+ /**
266
+ * Token comparison result
267
+ */
268
+ export const TokenComparisonResultSchema = z.object({
269
+ summary: z.object({
270
+ totalFigma: z.number(),
271
+ totalLocal: z.number(),
272
+ added: z.number(),
273
+ removed: z.number(),
274
+ modified: z.number(),
275
+ unchanged: z.number(),
276
+ }),
277
+ differences: z.array(TokenDiffEntrySchema),
278
+ timestamp: z.string(),
279
+ figmaFileKey: z.string().optional(),
280
+ localFilePath: z.string().optional(),
281
+ });
282
+ //# sourceMappingURL=token-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-types.js","sourceRoot":"","sources":["../../../src/public/design/token-types.ts"],"names":[],"mappings":"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"}