enterprise-ui-architect-cli 1.0.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.
Files changed (37) hide show
  1. package/assets/SKILL.md +590 -0
  2. package/assets/claude-skills/enterprise-ui-architect/SKILL.md +600 -0
  3. package/assets/data/accessibility-checks.csv +31 -0
  4. package/assets/data/anti-patterns.csv +55 -0
  5. package/assets/data/api-integration-patterns.csv +16 -0
  6. package/assets/data/charts.csv +26 -0
  7. package/assets/data/color-palettes.csv +21 -0
  8. package/assets/data/component-standards.csv +17 -0
  9. package/assets/data/data-source-strategies.csv +11 -0
  10. package/assets/data/industries.csv +16 -0
  11. package/assets/data/page-patterns.csv +9 -0
  12. package/assets/data/pre-delivery-checklist.csv +36 -0
  13. package/assets/data/review-rubric.csv +11 -0
  14. package/assets/data/styles.csv +16 -0
  15. package/assets/data/tokens.csv +89 -0
  16. package/assets/data/typography.csv +16 -0
  17. package/assets/scripts/search.py +241 -0
  18. package/assets/templates/base/quick-reference.md +123 -0
  19. package/assets/templates/base/skill-content.md +184 -0
  20. package/assets/templates/platforms/claude.json +19 -0
  21. package/assets/templates/platforms/codex.json +19 -0
  22. package/assets/templates/platforms/copilot.json +18 -0
  23. package/assets/templates/platforms/cursor.json +36 -0
  24. package/assets/templates/platforms/windsurf.json +26 -0
  25. package/dist/commands/init.d.ts +5 -0
  26. package/dist/commands/init.d.ts.map +1 -0
  27. package/dist/commands/init.js +182 -0
  28. package/dist/commands/init.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +72 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/utils/template.d.ts +6 -0
  34. package/dist/utils/template.d.ts.map +1 -0
  35. package/dist/utils/template.js +9 -0
  36. package/dist/utils/template.js.map +1 -0
  37. package/package.json +36 -0
@@ -0,0 +1,182 @@
1
+ import { mkdirSync, copyFileSync, existsSync, readFileSync, writeFileSync } from "fs";
2
+ import { dirname, join, resolve } from "path";
3
+ import { fileURLToPath } from "url";
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = dirname(__filename);
6
+ const PLATFORMS = {
7
+ cursor: "cursor.json",
8
+ claude: "claude.json",
9
+ windsurf: "windsurf.json",
10
+ copilot: "copilot.json",
11
+ codex: "codex.json",
12
+ };
13
+ function getAssetsDir() {
14
+ const distAssets = resolve(__dirname, "..", "assets");
15
+ if (existsSync(distAssets))
16
+ return distAssets;
17
+ const srcAssets = resolve(__dirname, "..", "..", "assets");
18
+ if (existsSync(srcAssets))
19
+ return srcAssets;
20
+ const repoSrc = resolve(process.cwd(), "src", "enterprise-ui-architect");
21
+ if (existsSync(repoSrc))
22
+ return repoSrc;
23
+ throw new Error("Could not find skill assets. Ensure CLI is built or run from repo root.");
24
+ }
25
+ function readAsset(...paths) {
26
+ const assetsDir = getAssetsDir();
27
+ const fullPath = join(assetsDir, ...paths);
28
+ if (!existsSync(fullPath)) {
29
+ throw new Error(`Asset not found: ${fullPath}`);
30
+ }
31
+ return readFileSync(fullPath, "utf-8");
32
+ }
33
+ function sanitizeOutputPath(outputPath) {
34
+ // Prevent path traversal: normalize and reject paths that escape cwd
35
+ const normalized = outputPath.replace(/\\/g, "/").replace(/\.{2,}\//g, "");
36
+ if (normalized.startsWith("/") || normalized.includes("../")) {
37
+ throw new Error(`Invalid output path: ${outputPath}`);
38
+ }
39
+ return normalized;
40
+ }
41
+ function installPlatform(platformKey, cwd) {
42
+ const configFile = PLATFORMS[platformKey];
43
+ if (!configFile) {
44
+ console.error(`Unknown platform: ${platformKey}`);
45
+ return;
46
+ }
47
+ const config = JSON.parse(readAsset("templates", "platforms", configFile));
48
+ const safeOutputPath = sanitizeOutputPath(config.outputPath);
49
+ const outputPath = join(cwd, safeOutputPath);
50
+ const outputDir = dirname(outputPath);
51
+ if (!existsSync(outputDir)) {
52
+ mkdirSync(outputDir, { recursive: true });
53
+ }
54
+ let content = "";
55
+ if (config.format === "cursor-rule") {
56
+ const frontmatter = config.frontmatter || {};
57
+ const lines = [
58
+ "---",
59
+ `description: ${frontmatter.description || config.description}`,
60
+ `globs: ${frontmatter.globs || "**/*.{tsx,jsx,vue,ts,js}"}`,
61
+ `alwaysApply: ${frontmatter.alwaysApply ?? false}`,
62
+ "---",
63
+ "",
64
+ `# Enterprise UI Architect`,
65
+ "",
66
+ ];
67
+ if (config.contentSource) {
68
+ const baseContent = readAsset(config.contentSource);
69
+ lines.push(baseContent);
70
+ }
71
+ if (config.injectSections && config.injectSections.length > 0) {
72
+ const skillMd = readAsset("SKILL.md");
73
+ lines.push("## Injected Standards\n");
74
+ for (const section of config.injectSections) {
75
+ const sectionContent = extractSection(skillMd, section);
76
+ if (sectionContent) {
77
+ lines.push(sectionContent);
78
+ lines.push("");
79
+ }
80
+ }
81
+ }
82
+ if (config.rules && config.rules.length > 0) {
83
+ lines.push("## Rules\n");
84
+ for (const rule of config.rules) {
85
+ lines.push(`- ${rule}`);
86
+ }
87
+ lines.push("");
88
+ }
89
+ content = lines.join("\n");
90
+ }
91
+ else if (config.format === "github-prompt") {
92
+ const lines = [];
93
+ if (config.systemPrefix) {
94
+ lines.push(config.systemPrefix);
95
+ lines.push("");
96
+ }
97
+ if (config.contentSource) {
98
+ lines.push(readAsset(config.contentSource));
99
+ }
100
+ if (config.injectSections && config.injectSections.length > 0) {
101
+ const skillMd = readAsset("SKILL.md");
102
+ for (const section of config.injectSections) {
103
+ const sectionContent = extractSection(skillMd, section);
104
+ if (sectionContent) {
105
+ lines.push(sectionContent);
106
+ lines.push("");
107
+ }
108
+ }
109
+ }
110
+ if (config.promptSuffix) {
111
+ lines.push(config.promptSuffix);
112
+ }
113
+ content = lines.join("\n");
114
+ }
115
+ else {
116
+ content = readAsset("SKILL.md");
117
+ if (config.quickReference) {
118
+ content += "\n\n" + readAsset(config.quickReference);
119
+ }
120
+ }
121
+ writeFileSync(outputPath, content, "utf-8");
122
+ console.log(` Installed: ${config.outputPath}`);
123
+ if (config.dataPaths || config.scripts) {
124
+ const skillDir = dirname(outputPath);
125
+ const dataDir = join(skillDir, "data");
126
+ const scriptsDir = join(skillDir, "scripts");
127
+ if (config.dataPaths) {
128
+ if (!existsSync(dataDir))
129
+ mkdirSync(dataDir, { recursive: true });
130
+ for (const [, relPath] of Object.entries(config.dataPaths)) {
131
+ const src = join(getAssetsDir(), relPath);
132
+ const dest = join(dataDir, relPath.replace("data/", ""));
133
+ if (existsSync(src)) {
134
+ const destDir = dirname(dest);
135
+ if (!existsSync(destDir))
136
+ mkdirSync(destDir, { recursive: true });
137
+ copyFileSync(src, dest);
138
+ }
139
+ }
140
+ }
141
+ if (config.scripts) {
142
+ if (!existsSync(scriptsDir))
143
+ mkdirSync(scriptsDir, { recursive: true });
144
+ for (const [, relPath] of Object.entries(config.scripts)) {
145
+ const src = join(getAssetsDir(), relPath);
146
+ const dest = join(scriptsDir, relPath.replace("scripts/", ""));
147
+ if (existsSync(src)) {
148
+ copyFileSync(src, dest);
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ function extractSection(markdown, sectionTitle) {
155
+ const pattern = new RegExp(`##\\s+${escapeRegex(sectionTitle)}\\s*\\n([\\s\\S]*?)(?=\\n##\\s|$)`, "i");
156
+ const match = markdown.match(pattern);
157
+ return match ? match[0].trim() : null;
158
+ }
159
+ function escapeRegex(str) {
160
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
161
+ }
162
+ export function initCommand(options) {
163
+ const cwd = process.cwd();
164
+ const target = options.ai || "all";
165
+ const platforms = target === "all" ? Object.keys(PLATFORMS) : target.split(",").map((s) => s.trim().toLowerCase());
166
+ console.log("Enterprise UI Architect — Initializing skill...\n");
167
+ for (const platform of platforms) {
168
+ if (!PLATFORMS[platform]) {
169
+ console.warn(`Skipping unknown platform: ${platform}`);
170
+ continue;
171
+ }
172
+ console.log(`Platform: ${platform}`);
173
+ try {
174
+ installPlatform(platform, cwd);
175
+ }
176
+ catch (err) {
177
+ console.error(` Error installing for ${platform}:`, err.message);
178
+ }
179
+ }
180
+ console.log("\nDone. Review the generated files and adjust project-specific paths if needed.");
181
+ }
182
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env node
2
+ import { initCommand } from "./commands/init.js";
3
+ function showHelp() {
4
+ console.log(`
5
+ Enterprise UI Architect CLI
6
+
7
+ Usage:
8
+ enterprise-ui init [options]
9
+
10
+ Options:
11
+ --ai <assistant> Target AI assistant: cursor, claude, windsurf, copilot, codex, all (default: all)
12
+ --offline Use local assets without network (default: false)
13
+ --help Show this help
14
+ --version Show version
15
+
16
+ Examples:
17
+ enterprise-ui init --ai cursor
18
+ enterprise-ui init --ai claude --offline
19
+ enterprise-ui init --ai all
20
+ `);
21
+ }
22
+ function parseArgs(args) {
23
+ const result = { ai: "all", offline: false, help: false, version: false };
24
+ let command;
25
+ for (let i = 0; i < args.length; i++) {
26
+ const arg = args[i];
27
+ if (arg === "init") {
28
+ command = "init";
29
+ }
30
+ else if (arg === "--ai" && i + 1 < args.length) {
31
+ result.ai = args[++i];
32
+ }
33
+ else if (arg === "--offline") {
34
+ result.offline = true;
35
+ }
36
+ else if (arg === "--help" || arg === "-h") {
37
+ result.help = true;
38
+ }
39
+ else if (arg === "--version" || arg === "-v") {
40
+ result.version = true;
41
+ }
42
+ }
43
+ return { command, ...result };
44
+ }
45
+ function main() {
46
+ const args = process.argv.slice(2);
47
+ const parsed = parseArgs(args);
48
+ if (parsed.version) {
49
+ console.log("1.0.0");
50
+ return 0;
51
+ }
52
+ if (parsed.help || args.length === 0) {
53
+ showHelp();
54
+ return 0;
55
+ }
56
+ if (parsed.command === "init") {
57
+ try {
58
+ initCommand({ ai: parsed.ai, offline: parsed.offline });
59
+ return 0;
60
+ }
61
+ catch (err) {
62
+ console.error(`Error: ${err.message}`);
63
+ return 1;
64
+ }
65
+ }
66
+ else {
67
+ console.error(`Unknown command. Run --help for usage.`);
68
+ return 1;
69
+ }
70
+ }
71
+ process.exit(main());
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;CAgBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1E,IAAI,OAA2B,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,IAAI;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Minimal template utilities.
3
+ * Currently a passthrough; reserved for future Mustache/Handlebars-style rendering.
4
+ */
5
+ export declare function renderTemplate(template: string, _variables: Record<string, string>): string;
6
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAG3F"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Minimal template utilities.
3
+ * Currently a passthrough; reserved for future Mustache/Handlebars-style rendering.
4
+ */
5
+ export function renderTemplate(template, _variables) {
6
+ // Placeholder for future variable substitution
7
+ return template;
8
+ }
9
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,UAAkC;IACjF,+CAA+C;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "enterprise-ui-architect-cli",
3
+ "version": "1.0.0",
4
+ "description": "CLI for installing Enterprise UI Architect skill into AI coding assistants",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "enterprise-ui": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "assets"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "enterprise-ui",
21
+ "ant-design",
22
+ "admin-dashboard",
23
+ "cursor",
24
+ "claude",
25
+ "ai-skill"
26
+ ],
27
+ "author": "NextLevelBuilder",
28
+ "license": "MIT",
29
+ "devDependencies": {
30
+ "@types/node": "^20.0.0",
31
+ "typescript": "^5.3.0"
32
+ },
33
+ "engines": {
34
+ "node": ">=18.0.0"
35
+ }
36
+ }