@zimezone/z-command 1.0.0 → 1.1.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 (36) hide show
  1. package/README.md +152 -51
  2. package/dist/cli.js +14 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +1 -7
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +101 -23
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/update.d.ts +11 -0
  9. package/dist/commands/update.d.ts.map +1 -0
  10. package/dist/commands/update.js +88 -0
  11. package/dist/commands/update.js.map +1 -0
  12. package/dist/platforms.d.ts +21 -0
  13. package/dist/platforms.d.ts.map +1 -0
  14. package/dist/platforms.js +137 -0
  15. package/dist/platforms.js.map +1 -0
  16. package/dist/types.d.ts +44 -0
  17. package/dist/types.d.ts.map +1 -0
  18. package/dist/types.js +6 -0
  19. package/dist/types.js.map +1 -0
  20. package/package.json +13 -4
  21. package/templates/skills/ui-ux-pro-max/SKILL.md +352 -0
  22. package/templates/skills/ui-ux-pro-max/data/charts.csv +26 -0
  23. package/templates/skills/ui-ux-pro-max/data/colors.csv +97 -0
  24. package/templates/skills/ui-ux-pro-max/data/icons.csv +101 -0
  25. package/templates/skills/ui-ux-pro-max/data/landing.csv +31 -0
  26. package/templates/skills/ui-ux-pro-max/data/products.csv +97 -0
  27. package/templates/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  28. package/templates/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  29. package/templates/skills/ui-ux-pro-max/data/styles.csv +59 -0
  30. package/templates/skills/ui-ux-pro-max/data/typography.csv +58 -0
  31. package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  32. package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  33. package/templates/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  34. package/templates/skills/ui-ux-pro-max/scripts/core.py +258 -0
  35. package/templates/skills/ui-ux-pro-max/scripts/design_system.py +547 -0
  36. package/templates/skills/ui-ux-pro-max/scripts/search.py +76 -0
package/README.md CHANGED
@@ -1,22 +1,35 @@
1
1
  # z-command
2
2
 
3
- Install curated GitHub Copilot skills and agents for your project.
3
+ [![npm version](https://img.shields.io/npm/v/@zimezone/z-command.svg)](https://www.npmjs.com/package/@zimezone/z-command)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@zimezone/z-command.svg)](https://www.npmjs.com/package/@zimezone/z-command)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ Install curated AI coding assistant skills and agents for your project. Supports **GitHub Copilot**, **Claude Code**, **Antigravity**, and **Cursor**.
4
8
 
5
9
  ## Installation
6
10
 
7
11
  ```bash
8
- npm install -g z-command
12
+ npm install -g @zimezone/z-command
9
13
  ```
10
14
 
15
+ ## Supported Platforms
16
+
17
+ | Platform | Directory | Agents | Skills |
18
+ | -------------- | ---------- | ----------------- | ------ |
19
+ | GitHub Copilot | `.github/` | ✅ | ✅ |
20
+ | Claude Code | `.claude/` | ✅ | ✅ |
21
+ | Antigravity | `.agent/` | ✅ (as workflows) | ✅ |
22
+ | Cursor | `.cursor/` | ✅ (as rules) | ❌ |
23
+
11
24
  ## Usage
12
25
 
13
26
  ### Initialize skills and agents
14
27
 
15
28
  ```bash
16
- # Install all skills and agents to current project
29
+ # Install for all platforms (default)
17
30
  z-command init
18
31
 
19
- # Install to global user directory (~/.copilot/)
32
+ # Install to global user directory
20
33
  z-command init --global
21
34
 
22
35
  # Install only skills
@@ -24,6 +37,15 @@ z-command init --skills
24
37
 
25
38
  # Install only agents
26
39
  z-command init --agents
40
+
41
+ # Install for specific platform
42
+ z-command init --target copilot
43
+ z-command init --target claude
44
+ z-command init --target antigravity
45
+ z-command init --target cursor
46
+
47
+ # Install for all platforms explicitly
48
+ z-command init --target all
27
49
  ```
28
50
 
29
51
  ### List available templates
@@ -34,54 +56,142 @@ z-command list --skills
34
56
  z-command list --agents
35
57
  ```
36
58
 
59
+ ### Update z-command
60
+
61
+ ```bash
62
+ z-command update
63
+ ```
64
+
37
65
  ## Included Templates
38
66
 
39
67
  ### Skills
40
68
 
41
- | Skill | Description |
42
- | ------------------------- | ------------------------------------ |
43
- | `test-driven-development` | RED-GREEN-REFACTOR cycle |
44
- | `systematic-debugging` | 4-phase root cause process |
45
- | `code-review` | Automated code review checklist |
46
- | `security-review` | OWASP Top 10 vulnerability detection |
47
- | `writing-plans` | Detailed implementation plans |
69
+ | Skill | Description |
70
+ | ------------------------- | --------------------------------------------- |
71
+ | `test-driven-development` | RED-GREEN-REFACTOR cycle |
72
+ | `systematic-debugging` | 4-phase root cause process |
73
+ | `code-review` | Automated code review checklist |
74
+ | `security-review` | OWASP Top 10 vulnerability detection |
75
+ | `writing-plans` | Detailed implementation plans |
76
+ | `ui-ux-pro-max` | AI design intelligence for professional UI/UX |
48
77
 
49
78
  ### Agents (80 total)
50
79
 
51
80
  **01. Core Development**
52
- `api-designer` · `backend-developer` · `frontend-developer` · `fullstack-developer` · `mobile-developer` · `ui-designer` · `graphql-architect` · `microservices-architect` · `websocket-engineer` · `electron-pro`
81
+
82
+ - `api-designer`
83
+ - `backend-developer`
84
+ - `frontend-developer`
85
+ - `fullstack-developer`
86
+ - `mobile-developer`
87
+ - `ui-designer`
88
+ - `graphql-architect`
89
+ - `microservices-architect`
90
+ - `websocket-engineer`
91
+ - `electron-pro`
53
92
 
54
93
  **02. Language Specialists**
55
- `typescript-pro` · `python-pro` · `golang-pro` · `java-architect` · `react-specialist` · `nextjs-developer` · `vue-expert` · `angular-architect` · `django-developer` · `rails-expert` · `laravel-specialist` · `flutter-expert` · `swift-expert` · `kotlin-specialist` · `csharp-developer` · `cpp-pro`
94
+
95
+ - `typescript-pro`
96
+ - `python-pro`
97
+ - `golang-pro`
98
+ - `java-architect`
99
+ - `react-specialist`
100
+ - `nextjs-developer`
101
+ - `vue-expert`
102
+ - `angular-architect`
103
+ - `django-developer`
104
+ - `rails-expert`
105
+ - `laravel-specialist`
106
+ - `flutter-expert`
107
+ - `swift-expert`
108
+ - `kotlin-specialist`
109
+ - `csharp-developer`
110
+ - `cpp-pro`
56
111
 
57
112
  **03. Infrastructure**
58
- `cloud-architect` · `devops-engineer` · `kubernetes-specialist` · `terraform-engineer` · `sre-engineer` · `platform-engineer` · `database-administrator` · `network-engineer` · `security-engineer` · `azure-infra-engineer`
113
+
114
+ - `cloud-architect`
115
+ - `devops-engineer`
116
+ - `kubernetes-specialist`
117
+ - `terraform-engineer`
118
+ - `sre-engineer`
119
+ - `platform-engineer`
120
+ - `database-administrator`
121
+ - `network-engineer`
122
+ - `security-engineer`
123
+ - `azure-infra-engineer`
59
124
 
60
125
  **04. Quality & Security**
61
- `code-reviewer` · `security-analyst` · `test-engineer` · `accessibility-expert` · `performance-optimizer`
126
+
127
+ - `code-reviewer`
128
+ - `security-analyst`
129
+ - `test-engineer`
130
+ - `accessibility-expert`
131
+ - `performance-optimizer`
62
132
 
63
133
  **05. Data & AI**
64
- `ai-engineer` · `ml-engineer` · `data-scientist` · `data-engineer` · `llm-architect` · `prompt-engineer` · `nlp-engineer` · `mlops-engineer` · `postgres-pro`
134
+
135
+ - `ai-engineer`
136
+ - `ml-engineer`
137
+ - `data-scientist`
138
+ - `data-engineer`
139
+ - `llm-architect`
140
+ - `prompt-engineer`
141
+ - `nlp-engineer`
142
+ - `mlops-engineer`
143
+ - `postgres-pro`
65
144
 
66
145
  **06. Developer Experience**
67
- `cli-developer` · `documentation-engineer` · `refactoring-specialist` · `legacy-modernizer` · `mcp-developer` · `git-workflow-manager` · `build-engineer`
146
+
147
+ - `cli-developer`
148
+ - `documentation-engineer`
149
+ - `refactoring-specialist`
150
+ - `legacy-modernizer`
151
+ - `mcp-developer`
152
+ - `git-workflow-manager`
153
+ - `build-engineer`
68
154
 
69
155
  **07. Specialized Domains**
70
- `blockchain-developer` · `game-developer` · `fintech-engineer` · `iot-engineer` · `embedded-systems` · `payment-integration` · `seo-specialist`
156
+
157
+ - `blockchain-developer`
158
+ - `game-developer`
159
+ - `fintech-engineer`
160
+ - `iot-engineer`
161
+ - `embedded-systems`
162
+ - `payment-integration`
163
+ - `seo-specialist`
71
164
 
72
165
  **08. Business & Product**
73
- `product-manager` · `project-manager` · `business-analyst` · `technical-writer` · `scrum-master` · `ux-researcher`
166
+
167
+ - `product-manager`
168
+ - `project-manager`
169
+ - `business-analyst`
170
+ - `technical-writer`
171
+ - `scrum-master`
172
+ - `ux-researcher`
74
173
 
75
174
  **09. Meta & Orchestration**
76
- `workflow-orchestrator` · `multi-agent-coordinator` · `context-manager` · `task-distributor`
175
+
176
+ - `workflow-orchestrator`
177
+ - `multi-agent-coordinator`
178
+ - `context-manager`
179
+ - `task-distributor`
77
180
 
78
181
  **10. Research & Analysis**
79
- `research-analyst` · `competitive-analyst` · `market-researcher` · `trend-analyst` · `data-researcher`
182
+
183
+ - `research-analyst`
184
+ - `competitive-analyst`
185
+ - `market-researcher`
186
+ - `trend-analyst`
187
+ - `data-researcher`
80
188
 
81
189
  ## Output Structure
82
190
 
83
191
  After running `z-command init`, your project will have:
84
192
 
193
+ ### GitHub Copilot
194
+
85
195
  ```
86
196
  .github/
87
197
  ├── skills/
@@ -96,42 +206,33 @@ After running `z-command init`, your project will have:
96
206
  └── ...
97
207
  ```
98
208
 
99
- ## Development
209
+ ### Claude Code
100
210
 
101
- ### Local Setup
102
-
103
- ```bash
104
-
105
- # Install dependencies
106
- npm install
107
-
108
- # Build the project
109
- npm run build
110
-
111
- # Link locally for testing
112
- npm link
211
+ ```
212
+ .claude/
213
+ ├── skills/
214
+ │ └── .../SKILL.md
215
+ └── agents/
216
+ └── *.agent.md
113
217
  ```
114
218
 
115
- ### Running Tests
116
-
117
- ```bash
118
- # Run all tests
119
- npm test
219
+ ### Antigravity
120
220
 
121
- # Run tests with coverage report
122
- npm run test:coverage
221
+ ```
222
+ .agent/
223
+ ├── skills/
224
+ │ └── .../SKILL.md
225
+ └── workflows/
226
+ └── *.md
123
227
  ```
124
228
 
125
- ### Local Development
229
+ ### Cursor
126
230
 
127
- ```bash
128
- # Run directly without building
129
- npm run dev init
130
- npm run dev list
131
-
132
- # Or after npm link
133
- z-command init
134
- z-command list
231
+ ```
232
+ .cursor/
233
+ └── rules/
234
+ └── *.md
235
+ ```
135
236
 
136
237
  ## Sources
137
238
 
@@ -140,8 +241,8 @@ This project aggregates best practices from:
140
241
  - [obra/superpowers](https://github.com/obra/superpowers)
141
242
  - [VoltAgent/awesome-claude-code-subagents](https://github.com/VoltAgent/awesome-claude-code-subagents)
142
243
  - [OneRedOak/claude-code-workflows](https://github.com/OneRedOak/claude-code-workflows)
244
+ - [nextlevelbuilder/ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) - UI/UX design intelligence
143
245
 
144
246
  ## License
145
247
 
146
248
  MIT
147
- ```
package/dist/cli.js CHANGED
@@ -1,14 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
4
7
  const commander_1 = require("commander");
5
8
  const init_1 = require("./commands/init");
6
9
  const list_1 = require("./commands/list");
10
+ const update_1 = require("./commands/update");
11
+ const update_notifier_1 = __importDefault(require("update-notifier"));
12
+ const package_json_1 = __importDefault(require("../package.json"));
13
+ (0, update_notifier_1.default)({ pkg: package_json_1.default }).notify();
7
14
  const program = new commander_1.Command();
8
15
  program
9
16
  .name('z-command')
10
- .description('Install curated GitHub Copilot skills and agents for your project')
11
- .version('1.0.0');
17
+ .description('Install curated AI coding assistant skills and agents for your project')
18
+ .version('1.1.0');
12
19
  program
13
20
  .command('init')
14
21
  .description('Initialize skills and agents in current project')
@@ -16,6 +23,7 @@ program
16
23
  .option('-a, --agents', 'Install agents only')
17
24
  .option('-g, --global', 'Install to user home directory')
18
25
  .option('-c, --category <name>', 'Install specific category only')
26
+ .option('-t, --target <platform>', 'Target platform: copilot, claude, antigravity, cursor, all (default: all)')
19
27
  .action(init_1.initCommand);
20
28
  program
21
29
  .command('list')
@@ -23,5 +31,9 @@ program
23
31
  .option('-s, --skills', 'List skills only')
24
32
  .option('-a, --agents', 'List agents only')
25
33
  .action(list_1.listCommand);
34
+ program
35
+ .command('update')
36
+ .description('Update z-command to the latest version')
37
+ .action(update_1.updateCommand);
26
38
  program.parse();
27
39
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AAEpC,0CAA8C;AAC9C,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,cAAc,EAAE,gCAAgC,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;KACjE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,0CAA8C;AAC9C,8CAAkD;AAClD,sEAA6C;AAC7C,mEAAkC;AAElC,IAAA,yBAAc,EAAC,EAAE,GAAG,EAAH,sBAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,wEAAwE,CAAC;KACrF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,cAAc,EAAE,gCAAgC,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;KACjE,MAAM,CAAC,yBAAyB,EAAE,2EAA2E,CAAC;KAC9G,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,9 +1,3 @@
1
- interface InitOptions {
2
- skills?: boolean;
3
- agents?: boolean;
4
- global?: boolean;
5
- category?: string;
6
- }
1
+ import { InitOptions } from '../types';
7
2
  export declare function initCommand(options: InitOptions): Promise<void>;
8
- export {};
9
3
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAiC,MAAM,UAAU,CAAC;AAKtE,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrE"}
@@ -8,34 +8,56 @@ const path_1 = __importDefault(require("path"));
8
8
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
10
  const os_1 = __importDefault(require("os"));
11
+ const platforms_1 = require("../platforms");
11
12
  const TEMPLATES_DIR = path_1.default.join(__dirname, '..', '..', 'templates');
12
13
  async function initCommand(options) {
13
- console.log(chalk_1.default.cyan('\n🚀 Z-Command - Installing GitHub Copilot Skills & Agents\n'));
14
+ console.log(chalk_1.default.cyan('\n🚀 Z-Command - Installing AI Coding Assistant Skills & Agents\n'));
15
+ const platforms = (0, platforms_1.getTargetPlatforms)(options.target);
16
+ const results = [];
17
+ for (const platform of platforms) {
18
+ console.log(chalk_1.default.blue(`\n📦 Installing for ${platform.displayName}...`));
19
+ const result = await installForPlatform(platform, options);
20
+ results.push(result);
21
+ console.log(chalk_1.default.dim(` Location: ${result.location}`));
22
+ }
23
+ // Summary
24
+ console.log(chalk_1.default.green('\n✅ Installation complete!\n'));
25
+ console.log(chalk_1.default.bold('Summary:'));
26
+ for (const result of results) {
27
+ console.log(chalk_1.default.cyan(` ${result.platform}:`));
28
+ console.log(chalk_1.default.dim(` Skills: ${result.skillsCount}`));
29
+ console.log(chalk_1.default.dim(` Agents: ${result.agentsCount}`));
30
+ }
31
+ console.log();
32
+ }
33
+ async function installForPlatform(platform, options) {
14
34
  const targetBase = options.global
15
- ? path_1.default.join(os_1.default.homedir(), '.copilot')
16
- : path_1.default.join(process.cwd(), '.github');
35
+ ? path_1.default.join(os_1.default.homedir(), platform.globalDir)
36
+ : path_1.default.join(process.cwd(), platform.projectDir);
17
37
  const installSkills = !options.agents || options.skills;
18
38
  const installAgents = !options.skills || options.agents;
19
39
  let skillsCount = 0;
20
40
  let agentsCount = 0;
21
- // Install skills
22
- if (installSkills) {
23
- skillsCount = await copySkills(targetBase, options.category);
41
+ // Install skills (if platform supports them)
42
+ if (installSkills && platform.skillsDir) {
43
+ skillsCount = await copySkills(targetBase, platform, options.category);
24
44
  }
25
45
  // Install agents
26
46
  if (installAgents) {
27
- agentsCount = await copyAgents(targetBase, options.category);
47
+ agentsCount = await copyAgents(targetBase, platform, options.category);
28
48
  }
29
- console.log(chalk_1.default.green('\n✅ Installation complete!'));
30
- console.log(chalk_1.default.dim(` Skills: ${skillsCount}`));
31
- console.log(chalk_1.default.dim(` Agents: ${agentsCount}`));
32
- console.log(chalk_1.default.dim(` Location: ${targetBase}\n`));
49
+ return {
50
+ platform: platform.displayName,
51
+ skillsCount,
52
+ agentsCount,
53
+ location: targetBase,
54
+ };
33
55
  }
34
- async function copySkills(targetBase, category) {
56
+ async function copySkills(targetBase, platform, category) {
35
57
  const skillsSource = path_1.default.join(TEMPLATES_DIR, 'skills');
36
- const skillsTarget = path_1.default.join(targetBase, 'skills');
58
+ const skillsTarget = path_1.default.join(targetBase, platform.skillsDir);
37
59
  if (!await fs_extra_1.default.pathExists(skillsSource)) {
38
- console.log(chalk_1.default.yellow('⚠ No skills templates found'));
60
+ console.log(chalk_1.default.yellow(' ⚠ No skills templates found'));
39
61
  return 0;
40
62
  }
41
63
  await fs_extra_1.default.ensureDir(skillsTarget);
@@ -48,18 +70,62 @@ async function copySkills(targetBase, category) {
48
70
  continue;
49
71
  const stat = await fs_extra_1.default.stat(sourcePath);
50
72
  if (stat.isDirectory()) {
51
- await fs_extra_1.default.copy(sourcePath, targetPath, { overwrite: false });
52
- console.log(chalk_1.default.green(` ✓ Skill: ${skill}`));
73
+ // Copy skill directory, applying transformation if needed
74
+ await copySkillDirectory(sourcePath, targetPath, platform);
75
+ // Handle shared resources for complex skills (data/, scripts/)
76
+ if (platform.sharedDir) {
77
+ const dataSource = path_1.default.join(sourcePath, 'data');
78
+ const scriptsSource = path_1.default.join(sourcePath, 'scripts');
79
+ const hasData = await fs_extra_1.default.pathExists(dataSource);
80
+ const hasScripts = await fs_extra_1.default.pathExists(scriptsSource);
81
+ if (hasData || hasScripts) {
82
+ const sharedTarget = path_1.default.join(process.cwd(), platform.sharedDir, skill);
83
+ await fs_extra_1.default.ensureDir(sharedTarget);
84
+ // Copy data directory to shared location
85
+ if (hasData) {
86
+ await fs_extra_1.default.copy(dataSource, path_1.default.join(sharedTarget, 'data'));
87
+ }
88
+ // Copy scripts directory to shared location
89
+ if (hasScripts) {
90
+ await fs_extra_1.default.copy(scriptsSource, path_1.default.join(sharedTarget, 'scripts'));
91
+ }
92
+ console.log(chalk_1.default.dim(` → Shared resources: ${platform.sharedDir}/${skill}/`));
93
+ }
94
+ }
95
+ console.log(chalk_1.default.green(` ✓ Skill: ${skill}`));
53
96
  count++;
54
97
  }
55
98
  }
56
99
  return count;
57
100
  }
58
- async function copyAgents(targetBase, category) {
101
+ async function copySkillDirectory(sourcePath, targetPath, platform) {
102
+ await fs_extra_1.default.ensureDir(targetPath);
103
+ const files = await fs_extra_1.default.readdir(sourcePath);
104
+ for (const file of files) {
105
+ const sourceFile = path_1.default.join(sourcePath, file);
106
+ const targetFile = path_1.default.join(targetPath, file);
107
+ const stat = await fs_extra_1.default.stat(sourceFile);
108
+ if (stat.isFile()) {
109
+ let content = await fs_extra_1.default.readFile(sourceFile, 'utf-8');
110
+ // Apply skill transformation if defined
111
+ if (platform.transformSkill && file === 'SKILL.md') {
112
+ content = platform.transformSkill(content);
113
+ }
114
+ // Don't overwrite existing files
115
+ if (!await fs_extra_1.default.pathExists(targetFile)) {
116
+ await fs_extra_1.default.writeFile(targetFile, content, 'utf-8');
117
+ }
118
+ }
119
+ else if (stat.isDirectory()) {
120
+ await copySkillDirectory(sourceFile, targetFile, platform);
121
+ }
122
+ }
123
+ }
124
+ async function copyAgents(targetBase, platform, category) {
59
125
  const agentsSource = path_1.default.join(TEMPLATES_DIR, 'agents');
60
- const agentsTarget = path_1.default.join(targetBase, 'agents');
126
+ const agentsTarget = path_1.default.join(targetBase, platform.agentsDir);
61
127
  if (!await fs_extra_1.default.pathExists(agentsSource)) {
62
- console.log(chalk_1.default.yellow('⚠ No agents templates found'));
128
+ console.log(chalk_1.default.yellow(' ⚠ No agents templates found'));
63
129
  return 0;
64
130
  }
65
131
  await fs_extra_1.default.ensureDir(agentsTarget);
@@ -67,14 +133,26 @@ async function copyAgents(targetBase, category) {
67
133
  let count = 0;
68
134
  for (const agent of agents) {
69
135
  const sourcePath = path_1.default.join(agentsSource, agent);
70
- const targetPath = path_1.default.join(agentsTarget, agent);
71
136
  if (category && !agent.includes(category))
72
137
  continue;
73
138
  const stat = await fs_extra_1.default.stat(sourcePath);
74
139
  if (stat.isFile() && agent.endsWith('.agent.md')) {
75
- await fs_extra_1.default.copy(sourcePath, targetPath, { overwrite: false });
76
- console.log(chalk_1.default.green(` ✓ Agent: ${agent.replace('.agent.md', '')}`));
77
- count++;
140
+ // Generate target filename with platform-specific extension
141
+ const baseName = agent.replace('.agent.md', '');
142
+ const targetFilename = baseName + platform.agentExtension;
143
+ const targetPath = path_1.default.join(agentsTarget, targetFilename);
144
+ // Read source content
145
+ let content = await fs_extra_1.default.readFile(sourcePath, 'utf-8');
146
+ // Apply agent transformation if defined
147
+ if (platform.transformAgent) {
148
+ content = platform.transformAgent(content, agent);
149
+ }
150
+ // Don't overwrite existing files
151
+ if (!await fs_extra_1.default.pathExists(targetPath)) {
152
+ await fs_extra_1.default.writeFile(targetPath, content, 'utf-8');
153
+ console.log(chalk_1.default.green(` ✓ Agent: ${baseName}`));
154
+ count++;
155
+ }
78
156
  }
79
157
  }
80
158
  return count;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as cp from 'child_process';
2
+ /**
3
+ * Core logic for updating the package.
4
+ * dependency injection allows for easy testing.
5
+ */
6
+ export declare function runUpdate(spawnFn: typeof cp.spawn): Promise<void>;
7
+ /**
8
+ * CLI Entry point for update command
9
+ */
10
+ export declare function updateCommand(): Promise<void>;
11
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAGpC;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,iBA8BvD;AAED;;GAEG;AACH,wBAAsB,aAAa,kBAOlC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.runUpdate = runUpdate;
40
+ exports.updateCommand = updateCommand;
41
+ const cp = __importStar(require("child_process"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ /**
44
+ * Core logic for updating the package.
45
+ * dependency injection allows for easy testing.
46
+ */
47
+ async function runUpdate(spawnFn) {
48
+ console.log(chalk_1.default.blue('Checking for updates and installing...'));
49
+ console.log(chalk_1.default.dim('Running: npm install -g @zimezone/z-command@latest'));
50
+ const child = spawnFn('npm', ['install', '-g', '@zimezone/z-command@latest'], {
51
+ stdio: 'inherit',
52
+ shell: true
53
+ });
54
+ await new Promise((resolve, reject) => {
55
+ child.on('close', (code) => {
56
+ if (code === 0) {
57
+ console.log(chalk_1.default.green('✅ Update successful!'));
58
+ console.log(chalk_1.default.dim('Please restart your terminal to use the new version.'));
59
+ resolve();
60
+ }
61
+ else {
62
+ console.error(chalk_1.default.red(`❌ Update failed with code ${code}.`));
63
+ console.error(chalk_1.default.yellow('Please try running manually:'));
64
+ console.error(chalk_1.default.cyan('npm install -g @zimezone/z-command'));
65
+ // We reject here to allow caller to handle failure (e.g. exit process)
66
+ reject(new Error(`Update process exited with code ${code}`));
67
+ }
68
+ });
69
+ child.on('error', (err) => {
70
+ console.error(chalk_1.default.red('❌ Failed to start update process.'));
71
+ console.error(err);
72
+ reject(err);
73
+ });
74
+ });
75
+ }
76
+ /**
77
+ * CLI Entry point for update command
78
+ */
79
+ async function updateCommand() {
80
+ try {
81
+ await runUpdate(cp.spawn);
82
+ }
83
+ catch (error) {
84
+ // Exit with error code if update failed
85
+ process.exit(1);
86
+ }
87
+ }
88
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8BA8BC;AAKD,sCAOC;AAjDD,kDAAoC;AACpC,kDAA0B;AAE1B;;;GAGG;AACI,KAAK,UAAU,SAAS,CAAC,OAAwB;IACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAE7E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,4BAA4B,CAAC,EAAE;QAC5E,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAChE,uEAAuE;gBACvE,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wCAAwC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}