ai-skill-generator 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.
- package/CHANGELOG.md +134 -0
- package/LICENSE +21 -0
- package/README.md +227 -0
- package/dist/agents/index.d.ts +26 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +232 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +77 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +17 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +347 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +8 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +91 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list-presets.d.ts +2 -0
- package/dist/commands/list-presets.d.ts.map +1 -0
- package/dist/commands/list-presets.js +24 -0
- package/dist/commands/list-presets.js.map +1 -0
- package/dist/commands/list-templates.d.ts +2 -0
- package/dist/commands/list-templates.d.ts.map +1 -0
- package/dist/commands/list-templates.js +24 -0
- package/dist/commands/list-templates.js.map +1 -0
- package/dist/commands/package.d.ts +6 -0
- package/dist/commands/package.d.ts.map +1 -0
- package/dist/commands/package.js +75 -0
- package/dist/commands/package.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +142 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/context-loaders/index.d.ts +14 -0
- package/dist/context-loaders/index.d.ts.map +1 -0
- package/dist/context-loaders/index.js +105 -0
- package/dist/context-loaders/index.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/index.d.ts +15 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +81 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/templates/configs/basic-config.d.ts +3 -0
- package/dist/templates/configs/basic-config.d.ts.map +1 -0
- package/dist/templates/configs/basic-config.js +10 -0
- package/dist/templates/configs/basic-config.js.map +1 -0
- package/dist/templates/configs/frontend-config.d.ts +20 -0
- package/dist/templates/configs/frontend-config.d.ts.map +1 -0
- package/dist/templates/configs/frontend-config.js +129 -0
- package/dist/templates/configs/frontend-config.js.map +1 -0
- package/dist/templates/configs/index.d.ts +12 -0
- package/dist/templates/configs/index.d.ts.map +1 -0
- package/dist/templates/configs/index.js +26 -0
- package/dist/templates/configs/index.js.map +1 -0
- package/dist/templates/configs/library-config.d.ts +3 -0
- package/dist/templates/configs/library-config.d.ts.map +1 -0
- package/dist/templates/configs/library-config.js +48 -0
- package/dist/templates/configs/library-config.js.map +1 -0
- package/dist/templates/configs/microservice-config.d.ts +3 -0
- package/dist/templates/configs/microservice-config.d.ts.map +1 -0
- package/dist/templates/configs/microservice-config.js +113 -0
- package/dist/templates/configs/microservice-config.js.map +1 -0
- package/dist/templates/index.d.ts +27 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +534 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/validators/skill-validator.d.ts +7 -0
- package/dist/validators/skill-validator.d.ts.map +1 -0
- package/dist/validators/skill-validator.js +106 -0
- package/dist/validators/skill-validator.js.map +1 -0
- package/package.json +69 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the AI Skill Generator project.
|
|
4
|
+
|
|
5
|
+
## [1.0.0] - 2026-02-09
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
#### Core Features
|
|
10
|
+
- **Skill Generation**: Create skills from 4 configurable templates
|
|
11
|
+
- `frontend`: Next.js with UI library options (shadcn, MUI, Chakra, Headless)
|
|
12
|
+
- `microservice`: NestJS with architecture options (Clean, Hexagonal, Modular)
|
|
13
|
+
- `library`: TypeScript/JavaScript shared library
|
|
14
|
+
- `basic`: Minimal skill structure
|
|
15
|
+
|
|
16
|
+
- **Presets System**: Pre-configured stacks for quick generation
|
|
17
|
+
- `modern-react`: Next.js + shadcn + Zustand + Vitest
|
|
18
|
+
- `enterprise-api`: NestJS + Clean Arch + TypeORM + Swagger
|
|
19
|
+
- `fullstack-next`: Next.js + tRPC + Prisma
|
|
20
|
+
- `minimal-api`: NestJS + Modular + Postgres
|
|
21
|
+
|
|
22
|
+
- **Context Loading**: Import external documentation
|
|
23
|
+
- Support for `.md`, `.txt`, `.mdx`, `.yml`, `.yaml`, `.json`
|
|
24
|
+
- Single files or entire directories
|
|
25
|
+
- Merged into `references/CONTEXT.md`
|
|
26
|
+
|
|
27
|
+
- **Multi-Agent Installation**: Install skills to AI agents
|
|
28
|
+
- Claude Code
|
|
29
|
+
- Cursor
|
|
30
|
+
- VS Code / Copilot
|
|
31
|
+
- Codex
|
|
32
|
+
- Goose
|
|
33
|
+
- OpenCode
|
|
34
|
+
- Gemini CLI
|
|
35
|
+
- Letta
|
|
36
|
+
- Amp
|
|
37
|
+
|
|
38
|
+
- **Validation**: YAML frontmatter validation
|
|
39
|
+
- Required fields check
|
|
40
|
+
- Naming convention validation (kebab-case)
|
|
41
|
+
- Description length limits
|
|
42
|
+
|
|
43
|
+
- **Packaging**: Create distributable `.skill` files
|
|
44
|
+
- ZIP format for easy sharing
|
|
45
|
+
- Maintains directory structure
|
|
46
|
+
|
|
47
|
+
### Commands
|
|
48
|
+
|
|
49
|
+
| Command | Description |
|
|
50
|
+
|---------|-------------|
|
|
51
|
+
| `init` | Create new skill with interactive or flag-based options |
|
|
52
|
+
| `install` | Install skill to AI agents |
|
|
53
|
+
| `validate` | Validate skill structure and frontmatter |
|
|
54
|
+
| `package` | Create .skill package |
|
|
55
|
+
| `list-agents` | Show detected AI agents |
|
|
56
|
+
| `list-templates` | Show available templates |
|
|
57
|
+
| `list-presets` | Show available presets |
|
|
58
|
+
|
|
59
|
+
### Flags
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Creation flags
|
|
63
|
+
--name <name> # Skill name (kebab-case)
|
|
64
|
+
--type <type> # Template type
|
|
65
|
+
--desc <description> # Skill description
|
|
66
|
+
--preset <preset> # Use preset configuration
|
|
67
|
+
--context <paths...> # External context files
|
|
68
|
+
--output <path> # Output directory
|
|
69
|
+
--with-references # Include references/ directory
|
|
70
|
+
--with-scripts # Include scripts/ directory
|
|
71
|
+
--with-assets # Include assets/ directory
|
|
72
|
+
--install # Install after creation
|
|
73
|
+
--install-agent <agents> # Specific agents to install
|
|
74
|
+
--non-interactive # Run without prompts
|
|
75
|
+
|
|
76
|
+
# Install flags
|
|
77
|
+
--agent <agents> # Target specific agents
|
|
78
|
+
--yes # Auto-confirm
|
|
79
|
+
--force # Overwrite existing
|
|
80
|
+
|
|
81
|
+
# Package flags
|
|
82
|
+
--output <path> # Output directory for package
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Test Suite
|
|
86
|
+
|
|
87
|
+
Added 5 functional tests in `tests/`:
|
|
88
|
+
|
|
89
|
+
1. **test1-basic-frontend**: Basic frontend skill generation
|
|
90
|
+
2. **test2-microservice**: Microservice with references and scripts
|
|
91
|
+
3. **test3-library**: Library generation and packaging
|
|
92
|
+
4. **test4-with-context**: External context loading
|
|
93
|
+
5. **test5-preset**: Preset-based generation
|
|
94
|
+
|
|
95
|
+
### Documentation
|
|
96
|
+
|
|
97
|
+
- Complete README with installation and usage
|
|
98
|
+
- USAGE_GUIDE with all commands and examples
|
|
99
|
+
- Individual test READMEs
|
|
100
|
+
- Inline code comments
|
|
101
|
+
|
|
102
|
+
### Technical Implementation
|
|
103
|
+
|
|
104
|
+
- TypeScript with strict type checking
|
|
105
|
+
- Commander.js for CLI
|
|
106
|
+
- Inquirer.js for interactive prompts
|
|
107
|
+
- js-yaml for YAML parsing
|
|
108
|
+
- adm-zip for packaging
|
|
109
|
+
- Chalk for colored output
|
|
110
|
+
|
|
111
|
+
### Project Structure
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
skill-generator/
|
|
115
|
+
├── src/
|
|
116
|
+
│ ├── cli.ts # Entry point
|
|
117
|
+
│ ├── commands/ # CLI commands
|
|
118
|
+
│ ├── templates/ # Template configurations
|
|
119
|
+
│ ├── presets/ # Preset definitions
|
|
120
|
+
│ ├── agents/ # AI agent detection & install
|
|
121
|
+
│ ├── context-loaders/ # External file loading
|
|
122
|
+
│ └── validators/ # Skill validation
|
|
123
|
+
├── tests/ # Functional tests
|
|
124
|
+
├── package.json
|
|
125
|
+
├── tsconfig.json
|
|
126
|
+
├── README.md
|
|
127
|
+
├── USAGE_GUIDE.md
|
|
128
|
+
└── CHANGELOG.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Compatibility
|
|
132
|
+
|
|
133
|
+
- Node.js >= 18.0.0
|
|
134
|
+
- Supports Windows, macOS, Linux
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 engineererick
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# AI Skill Generator
|
|
2
|
+
|
|
3
|
+
Create, validate, and package skills for AI coding assistants (Claude, Cursor, Copilot, Codex, and more). Configurable templates with external context support.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **4 Configurable templates**: Frontend, Microservice, Library, Basic
|
|
8
|
+
- **Built-in presets**: Ready-to-use stacks
|
|
9
|
+
- **Interactive mode**: Guided wizard with smart prompts
|
|
10
|
+
- **Automated mode**: Flags for CI/CD pipelines
|
|
11
|
+
- **External context**: Include .md, .txt files as references
|
|
12
|
+
- **Validation**: Automatically verify SKILL.md structure
|
|
13
|
+
- **Packaging**: Generate .skill files (zip) for distribution
|
|
14
|
+
- **Multi-agent install**: Install skills to 9 AI agents at once
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
### Global
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install -g ai-skill-generator
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Local
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
git clone https://github.com/engineererick/ai-skill-generator.git
|
|
28
|
+
cd ai-skill-generator
|
|
29
|
+
npm install
|
|
30
|
+
npm run build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### Interactive Mode (Recommended)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
skill-gen init
|
|
39
|
+
# or
|
|
40
|
+
sg init
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### With Preset
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# List available presets
|
|
47
|
+
skill-gen list-presets
|
|
48
|
+
|
|
49
|
+
# Use a preset
|
|
50
|
+
skill-gen init --preset modern-react --name my-skill --desc "My skill"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### With Flags (Automation)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
skill-gen init \
|
|
57
|
+
--name my-api \
|
|
58
|
+
--type microservice \
|
|
59
|
+
--desc "Payments API" \
|
|
60
|
+
--with-references \
|
|
61
|
+
--with-scripts \
|
|
62
|
+
--non-interactive
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### With External Context
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
skill-gen init \
|
|
69
|
+
--name my-docs \
|
|
70
|
+
--type frontend \
|
|
71
|
+
--desc "With external documentation" \
|
|
72
|
+
--context ./docs/specs.md \
|
|
73
|
+
--context ./docs/requirements/
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Commands
|
|
77
|
+
|
|
78
|
+
| Command | Description |
|
|
79
|
+
|---------|-------------|
|
|
80
|
+
| `init` | Create a new skill |
|
|
81
|
+
| `validate <path>` | Validate SKILL.md structure |
|
|
82
|
+
| `package <path>` | Create a .skill file (zip) |
|
|
83
|
+
| `install <path>` | Install skill to AI agents |
|
|
84
|
+
| `list-templates` | Show available templates |
|
|
85
|
+
| `list-presets` | Show built-in presets |
|
|
86
|
+
| `list-agents` | Show detected AI agents |
|
|
87
|
+
|
|
88
|
+
## Templates
|
|
89
|
+
|
|
90
|
+
### Frontend (Next.js)
|
|
91
|
+
|
|
92
|
+
Available options:
|
|
93
|
+
- **UI Library**: shadcn/ui, MUI, Chakra UI, Headless UI
|
|
94
|
+
- **State**: Zustand, Redux Toolkit, Jotai, Context API
|
|
95
|
+
- **Forms**: React Hook Form + Zod, TanStack Form, Formik
|
|
96
|
+
- **Data Fetching**: TanStack Query, SWR, RTK Query
|
|
97
|
+
- **Styling**: Tailwind CSS, CSS Modules, Styled Components
|
|
98
|
+
- **Extras**: Storybook, Testing (Vitest/Jest)
|
|
99
|
+
|
|
100
|
+
### Microservice (NestJS)
|
|
101
|
+
|
|
102
|
+
Available options:
|
|
103
|
+
- **Database**: SQL Server, PostgreSQL, MongoDB, MySQL
|
|
104
|
+
- **Architecture**: Clean Architecture, Hexagonal, Modular
|
|
105
|
+
- **Communication**: REST, gRPC, RabbitMQ, Redis
|
|
106
|
+
- **Auth**: JWT, API Keys, OAuth2, None
|
|
107
|
+
- **Docs**: Swagger, Compodoc
|
|
108
|
+
- **Extras**: Docker, Testing (Jest/Vitest)
|
|
109
|
+
|
|
110
|
+
### Library
|
|
111
|
+
|
|
112
|
+
Template for shared utility libraries without framework dependencies.
|
|
113
|
+
|
|
114
|
+
### Basic
|
|
115
|
+
|
|
116
|
+
Minimal template for simple use cases.
|
|
117
|
+
|
|
118
|
+
## Presets
|
|
119
|
+
|
|
120
|
+
| Preset | Description | Stack |
|
|
121
|
+
|--------|-------------|-------|
|
|
122
|
+
| `modern-react` | Modern 2025 stack | Next.js + shadcn + Zustand + RHF |
|
|
123
|
+
| `enterprise-api` | Enterprise API | NestJS + Clean Arch + TypeORM + Swagger |
|
|
124
|
+
| `minimal-api` | Lightweight API | NestJS + Modular + Postgres |
|
|
125
|
+
| `fullstack-next` | Full stack | Next.js + tRPC + Prisma |
|
|
126
|
+
|
|
127
|
+
## Init Options
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Options:
|
|
131
|
+
-n, --name <name> Skill name (kebab-case)
|
|
132
|
+
-t, --type <type> Type: microservice, frontend, library, basic
|
|
133
|
+
-o, --output <path> Output directory (default: ./skills)
|
|
134
|
+
-d, --desc <description> Short description
|
|
135
|
+
-p, --preset <preset> Use a built-in preset
|
|
136
|
+
-c, --context <paths...> Context files/directories
|
|
137
|
+
--with-references Include references/ directory
|
|
138
|
+
--with-scripts Include scripts/ directory
|
|
139
|
+
--with-assets Include assets/ directory
|
|
140
|
+
--install Install to AI agents after creation
|
|
141
|
+
--install-agent <agents> Install to specific agents only
|
|
142
|
+
--non-interactive Automated mode (requires flags)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## External Context
|
|
146
|
+
|
|
147
|
+
You can include external files that will be merged into `references/CONTEXT.md`:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Single file
|
|
151
|
+
skill-gen init --context ./docs/specifications.md
|
|
152
|
+
|
|
153
|
+
# Entire directory
|
|
154
|
+
skill-gen init --context ./docs/requirements/
|
|
155
|
+
|
|
156
|
+
# Multiple sources
|
|
157
|
+
skill-gen init --context ./docs/api.md --context ./docs/architecture/
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Supported formats**: `.md`, `.txt`, `.mdx`, `.yml`, `.yaml`, `.json`
|
|
161
|
+
|
|
162
|
+
## Generated Skill Structure
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
my-skill/
|
|
166
|
+
├── SKILL.md # Main file with YAML frontmatter
|
|
167
|
+
├── references/ # Extended documentation (optional)
|
|
168
|
+
│ ├── API.md
|
|
169
|
+
│ ├── ARCHITECTURE.md
|
|
170
|
+
│ └── CONTEXT.md # Included if external context was provided
|
|
171
|
+
├── scripts/ # Utilities (optional)
|
|
172
|
+
│ ├── seed.ts
|
|
173
|
+
│ └── example.ts
|
|
174
|
+
└── assets/ # Resources (optional)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Development
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npm run watch # Recompile on changes
|
|
181
|
+
npm run clean # Clean build
|
|
182
|
+
npm run build # Rebuild
|
|
183
|
+
npm test # Run all tests
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Examples
|
|
187
|
+
|
|
188
|
+
### Create a skill with a modern preset
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
skill-gen init --preset modern-react --name customer-portal --desc "Customer portal"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Create a skill with full configuration
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
skill-gen init \
|
|
198
|
+
--name reports-api \
|
|
199
|
+
--type microservice \
|
|
200
|
+
--desc "Report generation" \
|
|
201
|
+
--with-references \
|
|
202
|
+
--with-scripts \
|
|
203
|
+
--non-interactive
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Create a skill with external documentation
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
skill-gen init \
|
|
210
|
+
--name integration-service \
|
|
211
|
+
--type microservice \
|
|
212
|
+
--desc "Third-party integration" \
|
|
213
|
+
--context ./docs/integration-spec.md \
|
|
214
|
+
--context ./docs/api-contracts/ \
|
|
215
|
+
--with-references
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Roadmap
|
|
219
|
+
|
|
220
|
+
- [ ] Custom presets (save user configurations)
|
|
221
|
+
- [ ] Template plugins (extensible system)
|
|
222
|
+
- [ ] Stricter SKILL.md validation
|
|
223
|
+
- [ ] Export to other formats (JSON, YAML)
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
MIT
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface Agent {
|
|
2
|
+
name: string;
|
|
3
|
+
id: string;
|
|
4
|
+
detect: () => Promise<boolean>;
|
|
5
|
+
getInstallPath: () => string;
|
|
6
|
+
}
|
|
7
|
+
export declare const agents: Agent[];
|
|
8
|
+
export interface DetectedAgent extends Agent {
|
|
9
|
+
installed: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function detectAgents(): Promise<DetectedAgent[]>;
|
|
12
|
+
export declare function installToAgent(skillPath: string, agentId: string): Promise<{
|
|
13
|
+
success: boolean;
|
|
14
|
+
message: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function installToAllAgents(skillPath: string, specificAgents?: string[]): Promise<{
|
|
17
|
+
agent: string;
|
|
18
|
+
success: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
}[]>;
|
|
21
|
+
export declare function formatInstallResults(results: {
|
|
22
|
+
agent: string;
|
|
23
|
+
success: boolean;
|
|
24
|
+
message: string;
|
|
25
|
+
}[]): string;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B;AAGD,eAAO,MAAM,MAAM,EAAE,KAAK,EAsHzB,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAS7D;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyChD;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAkBjE;AAkBD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9D,MAAM,CAYR"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Detection and installation of skills to AI agents
|
|
3
|
+
// Compatible with the AI Agent Skills standard
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.agents = void 0;
|
|
9
|
+
exports.detectAgents = detectAgents;
|
|
10
|
+
exports.installToAgent = installToAgent;
|
|
11
|
+
exports.installToAllAgents = installToAllAgents;
|
|
12
|
+
exports.formatInstallResults = formatInstallResults;
|
|
13
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const os_1 = __importDefault(require("os"));
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
// Install paths per agent
|
|
18
|
+
exports.agents = [
|
|
19
|
+
{
|
|
20
|
+
name: 'Claude Code',
|
|
21
|
+
id: 'claude',
|
|
22
|
+
detect: async () => {
|
|
23
|
+
try {
|
|
24
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.claude'));
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.claude', 'skills'),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Cursor',
|
|
35
|
+
id: 'cursor',
|
|
36
|
+
detect: async () => {
|
|
37
|
+
try {
|
|
38
|
+
await promises_1.default.access(path_1.default.join(process.cwd(), '.cursor'));
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
getInstallPath: () => path_1.default.join(process.cwd(), '.cursor', 'skills'),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'VS Code / Copilot',
|
|
49
|
+
id: 'vscode',
|
|
50
|
+
detect: async () => {
|
|
51
|
+
try {
|
|
52
|
+
await promises_1.default.access(path_1.default.join(process.cwd(), '.github'));
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
getInstallPath: () => path_1.default.join(process.cwd(), '.github', 'skills'),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Codex',
|
|
63
|
+
id: 'codex',
|
|
64
|
+
detect: async () => {
|
|
65
|
+
try {
|
|
66
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.codex'));
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.codex', 'skills'),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'Goose',
|
|
77
|
+
id: 'goose',
|
|
78
|
+
detect: async () => {
|
|
79
|
+
try {
|
|
80
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.config', 'goose'));
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.config', 'goose', 'skills'),
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'OpenCode',
|
|
91
|
+
id: 'opencode',
|
|
92
|
+
detect: async () => {
|
|
93
|
+
try {
|
|
94
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.opencode'));
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.opencode', 'skill'),
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'Gemini CLI',
|
|
105
|
+
id: 'gemini',
|
|
106
|
+
detect: async () => {
|
|
107
|
+
try {
|
|
108
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.gemini'));
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.gemini', 'skills'),
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'Letta',
|
|
119
|
+
id: 'letta',
|
|
120
|
+
detect: async () => {
|
|
121
|
+
try {
|
|
122
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.letta'));
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.letta', 'skills'),
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'Amp',
|
|
133
|
+
id: 'amp',
|
|
134
|
+
detect: async () => {
|
|
135
|
+
try {
|
|
136
|
+
await promises_1.default.access(path_1.default.join(os_1.default.homedir(), '.amp'));
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
getInstallPath: () => path_1.default.join(os_1.default.homedir(), '.amp', 'skills'),
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
async function detectAgents() {
|
|
147
|
+
const detected = [];
|
|
148
|
+
for (const agent of exports.agents) {
|
|
149
|
+
const installed = await agent.detect();
|
|
150
|
+
detected.push({ ...agent, installed });
|
|
151
|
+
}
|
|
152
|
+
return detected;
|
|
153
|
+
}
|
|
154
|
+
async function installToAgent(skillPath, agentId) {
|
|
155
|
+
const agent = exports.agents.find(a => a.id === agentId);
|
|
156
|
+
if (!agent) {
|
|
157
|
+
return { success: false, message: `Unsupported agent: ${agentId}` };
|
|
158
|
+
}
|
|
159
|
+
const isInstalled = await agent.detect();
|
|
160
|
+
if (!isInstalled) {
|
|
161
|
+
return { success: false, message: `${agent.name} is not installed` };
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const installPath = agent.getInstallPath();
|
|
165
|
+
const skillName = path_1.default.basename(skillPath);
|
|
166
|
+
const targetPath = path_1.default.join(installPath, skillName);
|
|
167
|
+
await promises_1.default.mkdir(installPath, { recursive: true });
|
|
168
|
+
try {
|
|
169
|
+
await promises_1.default.access(targetPath);
|
|
170
|
+
return {
|
|
171
|
+
success: false,
|
|
172
|
+
message: `Skill already exists at ${targetPath}. Use --force to overwrite.`
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Does not exist, we can continue
|
|
177
|
+
}
|
|
178
|
+
await copyDir(skillPath, targetPath);
|
|
179
|
+
return {
|
|
180
|
+
success: true,
|
|
181
|
+
message: `Installed to ${targetPath}`
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
return {
|
|
186
|
+
success: false,
|
|
187
|
+
message: `Error: ${error instanceof Error ? error.message : error}`
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async function installToAllAgents(skillPath, specificAgents) {
|
|
192
|
+
const detected = await detectAgents();
|
|
193
|
+
const results = [];
|
|
194
|
+
const agentsToInstall = specificAgents
|
|
195
|
+
? detected.filter(a => specificAgents.includes(a.id) && a.installed)
|
|
196
|
+
: detected.filter(a => a.installed);
|
|
197
|
+
for (const agent of agentsToInstall) {
|
|
198
|
+
const result = await installToAgent(skillPath, agent.id);
|
|
199
|
+
results.push({
|
|
200
|
+
agent: agent.name,
|
|
201
|
+
success: result.success,
|
|
202
|
+
message: result.message,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return results;
|
|
206
|
+
}
|
|
207
|
+
async function copyDir(src, dest) {
|
|
208
|
+
await promises_1.default.mkdir(dest, { recursive: true });
|
|
209
|
+
const entries = await promises_1.default.readdir(src, { withFileTypes: true });
|
|
210
|
+
for (const entry of entries) {
|
|
211
|
+
const srcPath = path_1.default.join(src, entry.name);
|
|
212
|
+
const destPath = path_1.default.join(dest, entry.name);
|
|
213
|
+
if (entry.isDirectory()) {
|
|
214
|
+
await copyDir(srcPath, destPath);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
await promises_1.default.copyFile(srcPath, destPath);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function formatInstallResults(results) {
|
|
222
|
+
const lines = [];
|
|
223
|
+
for (const result of results) {
|
|
224
|
+
const icon = result.success ? chalk_1.default.green('✅') : chalk_1.default.red('❌');
|
|
225
|
+
lines.push(`${icon} ${result.agent}`);
|
|
226
|
+
if (!result.success) {
|
|
227
|
+
lines.push(chalk_1.default.gray(` ${result.message}`));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return lines.join('\n');
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|