@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.
- package/README.md +17 -2
- package/dist/agent/execution/tool-executor.d.ts +6 -0
- package/dist/agent/execution/tool-executor.js +72 -0
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/commands/design.d.ts +18 -0
- package/dist/commands/design.js +495 -0
- package/dist/commands/design.js.map +1 -0
- package/dist/commands/vscode.js +1 -1
- package/dist/commands/vscode.js.map +1 -1
- package/dist/design/figma-alias.d.ts +88 -0
- package/dist/design/figma-alias.js +324 -0
- package/dist/design/figma-alias.js.map +1 -0
- package/dist/design/figma-audit.d.ts +40 -0
- package/dist/design/figma-audit.js +375 -0
- package/dist/design/figma-audit.js.map +1 -0
- package/dist/design/figma-client.d.ts +123 -0
- package/dist/design/figma-client.js +316 -0
- package/dist/design/figma-client.js.map +1 -0
- package/dist/design/figma-map.d.ts +29 -0
- package/dist/design/figma-map.js +274 -0
- package/dist/design/figma-map.js.map +1 -0
- package/dist/design/figma-tokens.d.ts +73 -0
- package/dist/design/figma-tokens.js +431 -0
- package/dist/design/figma-tokens.js.map +1 -0
- package/dist/design/index.d.ts +13 -0
- package/dist/design/index.js +18 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/types.d.ts +89 -0
- package/dist/design/types.js +9 -0
- package/dist/design/types.js.map +1 -0
- package/dist/hooks/hook-runner.js +2 -2
- package/dist/hooks/hook-runner.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ipc/vscode-client.js +1 -1
- package/dist/ipc/vscode-client.js.map +1 -1
- package/dist/llm/tools.js +170 -0
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/client-v2.js +1 -1
- package/dist/mcp/client-v2.js.map +1 -1
- package/dist/mcp/validation.js +1 -1
- package/dist/mcp/validation.js.map +1 -1
- package/dist/permissions/permission-manager.js +2 -2
- package/dist/permissions/permission-manager.js.map +1 -1
- package/dist/tools/design-tool.d.ts +59 -0
- package/dist/tools/design-tool.js +258 -0
- package/dist/tools/design-tool.js.map +1 -0
- package/dist/ui/hooks/use-input-history.js +1 -1
- package/dist/ui/hooks/use-input-history.js.map +1 -1
- package/dist/ui/utils/image-handler.js +1 -1
- package/dist/ui/utils/image-handler.js.map +1 -1
- package/dist/utils/path-security.js +2 -2
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/progress-tracker.js +1 -1
- package/dist/utils/progress-tracker.js.map +1 -1
- package/dist/utils/settings-manager.js +8 -3
- package/dist/utils/settings-manager.js.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/index.d.ts +1 -0
- package/node_modules/@ax-cli/schemas/dist/index.d.ts.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/index.js +2 -2
- package/node_modules/@ax-cli/schemas/dist/index.js.map +1 -1
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts +346 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js +171 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/alias-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts +545 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js +307 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/audit-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts +1306 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js +428 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/figma-types.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts +13 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.js +82 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/index.js.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts +1245 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.d.ts.map +1 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js +282 -0
- package/node_modules/@ax-cli/schemas/dist/public/design/token-types.js.map +1 -0
- package/package.json +2 -2
- package/packages/schemas/dist/index.d.ts +1 -0
- package/packages/schemas/dist/index.d.ts.map +1 -1
- package/packages/schemas/dist/index.js +2 -2
- package/packages/schemas/dist/index.js.map +1 -1
- package/packages/schemas/dist/public/design/alias-types.d.ts +346 -0
- package/packages/schemas/dist/public/design/alias-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/alias-types.js +171 -0
- package/packages/schemas/dist/public/design/alias-types.js.map +1 -0
- package/packages/schemas/dist/public/design/audit-types.d.ts +545 -0
- package/packages/schemas/dist/public/design/audit-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/audit-types.js +307 -0
- package/packages/schemas/dist/public/design/audit-types.js.map +1 -0
- package/packages/schemas/dist/public/design/figma-types.d.ts +1306 -0
- package/packages/schemas/dist/public/design/figma-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/figma-types.js +428 -0
- package/packages/schemas/dist/public/design/figma-types.js.map +1 -0
- package/packages/schemas/dist/public/design/index.d.ts +13 -0
- package/packages/schemas/dist/public/design/index.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/index.js +82 -0
- package/packages/schemas/dist/public/design/index.js.map +1 -0
- package/packages/schemas/dist/public/design/token-types.d.ts +1245 -0
- package/packages/schemas/dist/public/design/token-types.d.ts.map +1 -0
- package/packages/schemas/dist/public/design/token-types.js +282 -0
- package/packages/schemas/dist/public/design/token-types.js.map +1 -0
|
@@ -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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"}
|