@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.
- package/README.md +152 -51
- package/dist/cli.js +14 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +1 -7
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +101 -23
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +11 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +88 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/platforms.d.ts +21 -0
- package/dist/platforms.d.ts.map +1 -0
- package/dist/platforms.js +137 -0
- package/dist/platforms.js.map +1 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +13 -4
- package/templates/skills/ui-ux-pro-max/SKILL.md +352 -0
- package/templates/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/templates/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/templates/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/templates/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/templates/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/templates/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/templates/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/templates/skills/ui-ux-pro-max/scripts/core.py +258 -0
- package/templates/skills/ui-ux-pro-max/scripts/design_system.py +547 -0
- 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
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@zimezone/z-command)
|
|
4
|
+
[](https://www.npmjs.com/package/@zimezone/z-command)
|
|
5
|
+
[](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
|
|
29
|
+
# Install for all platforms (default)
|
|
17
30
|
z-command init
|
|
18
31
|
|
|
19
|
-
# Install to global user directory
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
126
|
+
|
|
127
|
+
- `code-reviewer`
|
|
128
|
+
- `security-analyst`
|
|
129
|
+
- `test-engineer`
|
|
130
|
+
- `accessibility-expert`
|
|
131
|
+
- `performance-optimizer`
|
|
62
132
|
|
|
63
133
|
**05. Data & AI**
|
|
64
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
175
|
+
|
|
176
|
+
- `workflow-orchestrator`
|
|
177
|
+
- `multi-agent-coordinator`
|
|
178
|
+
- `context-manager`
|
|
179
|
+
- `task-distributor`
|
|
77
180
|
|
|
78
181
|
**10. Research & Analysis**
|
|
79
|
-
|
|
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
|
-
|
|
209
|
+
### Claude Code
|
|
100
210
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
###
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Run all tests
|
|
119
|
-
npm test
|
|
219
|
+
### Antigravity
|
|
120
220
|
|
|
121
|
-
|
|
122
|
-
|
|
221
|
+
```
|
|
222
|
+
.agent/
|
|
223
|
+
├── skills/
|
|
224
|
+
│ └── .../SKILL.md
|
|
225
|
+
└── workflows/
|
|
226
|
+
└── *.md
|
|
123
227
|
```
|
|
124
228
|
|
|
125
|
-
###
|
|
229
|
+
### Cursor
|
|
126
230
|
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
|
11
|
-
.version('1.
|
|
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":"
|
|
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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
|
|
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":"
|
|
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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -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
|
|
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(),
|
|
16
|
-
: path_1.default.join(process.cwd(),
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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,
|
|
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
|
-
|
|
52
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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":";;;;;
|
|
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"}
|