ai-devkit 0.6.0 → 0.7.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 (70) hide show
  1. package/README.md +248 -0
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/skill.d.ts +3 -0
  5. package/dist/commands/skill.d.ts.map +1 -0
  6. package/dist/commands/skill.js +77 -0
  7. package/dist/commands/skill.js.map +1 -0
  8. package/dist/lib/EnvironmentSelector.d.ts +2 -1
  9. package/dist/lib/EnvironmentSelector.d.ts.map +1 -1
  10. package/dist/lib/EnvironmentSelector.js +55 -27
  11. package/dist/lib/EnvironmentSelector.js.map +1 -1
  12. package/dist/lib/SkillManager.d.ts +33 -0
  13. package/dist/lib/SkillManager.d.ts.map +1 -0
  14. package/dist/lib/SkillManager.js +254 -0
  15. package/dist/lib/SkillManager.js.map +1 -0
  16. package/dist/templates/commands/capture-knowledge.md +0 -5
  17. package/dist/templates/commands/check-implementation.md +0 -5
  18. package/dist/templates/commands/code-review.md +0 -5
  19. package/dist/templates/commands/debug.md +0 -5
  20. package/dist/templates/commands/execute-plan.md +0 -5
  21. package/dist/templates/commands/new-requirement.md +0 -5
  22. package/dist/templates/commands/remember.md +1 -1
  23. package/dist/templates/commands/review-design.md +0 -5
  24. package/dist/templates/commands/review-requirements.md +0 -5
  25. package/dist/templates/commands/simplify-implementation.md +0 -5
  26. package/dist/templates/commands/update-planning.md +0 -5
  27. package/dist/templates/commands/writing-test.md +0 -5
  28. package/dist/templates/env/base.md +32 -0
  29. package/dist/templates/templates/commands/capture-knowledge.md +0 -5
  30. package/dist/templates/templates/commands/check-implementation.md +0 -5
  31. package/dist/templates/templates/commands/code-review.md +0 -5
  32. package/dist/templates/templates/commands/debug.md +0 -5
  33. package/dist/templates/templates/commands/execute-plan.md +0 -5
  34. package/dist/templates/templates/commands/new-requirement.md +0 -5
  35. package/dist/templates/templates/commands/remember.md +1 -1
  36. package/dist/templates/templates/commands/review-design.md +0 -5
  37. package/dist/templates/templates/commands/review-requirements.md +0 -5
  38. package/dist/templates/templates/commands/simplify-implementation.md +0 -5
  39. package/dist/templates/templates/commands/update-planning.md +0 -5
  40. package/dist/templates/templates/commands/writing-test.md +0 -5
  41. package/dist/templates/templates/env/base.md +32 -0
  42. package/dist/types.d.ts +1 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js.map +1 -1
  45. package/dist/util/env.d.ts +2 -0
  46. package/dist/util/env.d.ts.map +1 -1
  47. package/dist/util/env.js +14 -0
  48. package/dist/util/env.js.map +1 -1
  49. package/dist/util/git.d.ts +15 -0
  50. package/dist/util/git.d.ts.map +1 -0
  51. package/dist/util/git.js +82 -0
  52. package/dist/util/git.js.map +1 -0
  53. package/dist/util/skill.d.ts +13 -0
  54. package/dist/util/skill.d.ts.map +1 -0
  55. package/dist/util/skill.js +34 -0
  56. package/dist/util/skill.js.map +1 -0
  57. package/package.json +1 -1
  58. package/templates/commands/capture-knowledge.md +0 -5
  59. package/templates/commands/check-implementation.md +0 -5
  60. package/templates/commands/code-review.md +0 -5
  61. package/templates/commands/debug.md +0 -5
  62. package/templates/commands/execute-plan.md +0 -5
  63. package/templates/commands/new-requirement.md +0 -5
  64. package/templates/commands/remember.md +1 -1
  65. package/templates/commands/review-design.md +0 -5
  66. package/templates/commands/review-requirements.md +0 -5
  67. package/templates/commands/simplify-implementation.md +0 -5
  68. package/templates/commands/update-planning.md +0 -5
  69. package/templates/commands/writing-test.md +0 -5
  70. package/templates/env/base.md +32 -0
package/README.md ADDED
@@ -0,0 +1,248 @@
1
+ # @ai-devkit/cli
2
+ > Part of [AI DevKit](https://github.com/Codeaholicguy/ai-devkit)
3
+
4
+ The official command-line interface for **AI DevKit**.
5
+
6
+ This tool orchestrates the setup and management of AI-assisted development environments, ensuring your project is ready for agents like Cursor, Claude Code, and more.
7
+
8
+ [![npm version](https://img.shields.io/npm/v/ai-devkit.svg)](https://www.npmjs.com/package/ai-devkit)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+
11
+ ## Features
12
+
13
+ - 🎯 **Phase-based Development**: Structured templates for each stage of the software development lifecycle
14
+ - 🤖 **AI Environment Setup**: Automatic configuration for Cursor and Claude Code
15
+ - 📝 **Customizable Templates**: Markdown-based templates with YAML frontmatter
16
+ - 🚀 **Interactive CLI**: User-friendly prompts with flag override support
17
+ - ⚙️ **State Management**: Tracks initialized phases and configuration
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ # Using npx (no installation needed)
23
+ npx ai-devkit init
24
+
25
+ # Or install globally
26
+ npm install -g ai-devkit
27
+ ```
28
+
29
+ ## Quick Start
30
+
31
+ Initialize AI DevKit in your project:
32
+
33
+ ```bash
34
+ # Interactive mode (recommended)
35
+ ai-devkit init
36
+ ```
37
+
38
+ This will:
39
+ 1. Create a `.ai-devkit.json` configuration file
40
+ 2. Set up your AI development environment (Cursor/Claude Code)
41
+ 3. Generate phase templates in `docs/ai/`
42
+
43
+ Detailed user guide can be found [here](https://ai-devkit.com/docs/).
44
+
45
+ ## Available Phases
46
+
47
+ - **Requirements**: Problem understanding, requirements gathering, and success criteria
48
+ - **Design**: System architecture, data models, and technical design (include mermaid diagrams for architecture/data flow)
49
+ - **Planning**: Task breakdown, milestones, and project timeline
50
+ - **Implementation**: Technical implementation notes and code guidelines
51
+ - **Testing**: Testing strategy, test cases, and quality assurance
52
+ - **Deployment**: Deployment process, infrastructure, and release procedures
53
+ - **Monitoring**: Monitoring strategy, metrics, alerts, and observability
54
+
55
+ ## Commands
56
+
57
+ ### `ai-devkit init`
58
+
59
+ Initialize AI DevKit in your project.
60
+
61
+ **Options:**
62
+ - `-e, --environment <env>`: Specify environment (cursor|claude|both)
63
+ - `-a, --all`: Initialize all phases at once
64
+ - `-p, --phases <phases>`: Comma-separated list of specific phases
65
+
66
+ ```bash
67
+ # Interactive mode
68
+ ai-devkit init
69
+
70
+ # Initialize for Cursor with all phases
71
+ ai-devkit init --environment cursor --all
72
+
73
+ # Initialize specific phases
74
+ ai-devkit init --phases requirements,design,implementation
75
+ ```
76
+
77
+ ### `ai-devkit phase [name]`
78
+
79
+ Add or update a specific phase template.
80
+
81
+ **Examples:**
82
+ ```bash
83
+ # Interactive selection
84
+ ai-devkit phase
85
+
86
+ # Add specific phase
87
+ ai-devkit phase requirements
88
+ ai-devkit phase testing
89
+ ```
90
+
91
+ ## Generated Structure
92
+
93
+ After initialization, your project will have:
94
+
95
+ ```
96
+ your-project/
97
+ ├── .ai-devkit.json # Configuration and state
98
+ ├── docs/
99
+ │ └── ai/
100
+ │ ├── requirements/
101
+ │ │ └── README.md
102
+ │ ├── design/
103
+ │ │ └── README.md
104
+ │ ├── planning/
105
+ │ │ └── README.md
106
+ │ ├── implementation/
107
+ │ │ └── README.md
108
+ │ ├── testing/
109
+ │ │ └── README.md
110
+ │ ├── deployment/
111
+ │ │ └── README.md
112
+ │ └── monitoring/
113
+ │ └── README.md
114
+ └── [Environment-specific files]
115
+ ```
116
+
117
+ Supported Tools & Agents:
118
+ | Agent | Support | Notes |
119
+ |-----------------------------------------------------------|---------|---------------------------------------------------|
120
+ | [Claude Code](https://www.anthropic.com/claude-code) | ✅ | |
121
+ | [GitHub Copilot](https://code.visualstudio.com/) | ✅ | VSCode only |
122
+ | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ | |
123
+ | [Cursor](https://cursor.sh/) | ✅ | |
124
+ | [opencode](https://opencode.ai/) | ✅ | |
125
+ | [Antigravity](https://antigravity.google/) | ✅ | |
126
+ | [Windsurf](https://windsurf.com/) | 🚧 | Testing |
127
+ | [Kilo Code](https://github.com/Kilo-Org/kilocode) | 🚧 | Testing |
128
+ | [Roo Code](https://roocode.com/) | 🚧 | Testing |
129
+ | [Codex CLI](https://github.com/openai/codex) | ✅ | Only Global |
130
+ | [Amp](https://ampcode.com/) | 🚧 | Testing |
131
+
132
+ Templates are designed to provide structure while remaining concise and AI-friendly.
133
+
134
+ ## Workflow Examples
135
+
136
+ ### Initial Project Setup
137
+
138
+ 1. **Initialize your project:**
139
+ ```bash
140
+ ai-devkit init
141
+ ```
142
+
143
+ 2. **Start with requirements:**
144
+ - Use slash command to start filling the requirement `/new-requerement`
145
+ - Your AI assistant will help clarify and document requirements
146
+ - Use slash command to review the requirement `/review-requirement`
147
+
148
+ 3. **Design your system:**
149
+ - Review `docs/ai/design/` and feature-specific files
150
+ - Use slash command to review the design `/review-design`
151
+ - Your AI assistant will help clarify and document design
152
+
153
+ 4. **Plan your work:**
154
+ - Review `docs/ai/planning/` and feature-specific plans
155
+ - Clarify and document plan with AI assistant
156
+
157
+ 5. **Implement with guidance:**
158
+ - When the plan is ready, your AI assistant will help you implement the code
159
+ - You can start the execution of the plan with the command `/execute-plan`
160
+ - AI assistant will help you to review the code and update the implementation notes
161
+ - After executing each task, you can check the implementation and compare it with the design with AI support by using the command `/check-implementation`
162
+ - Once the implementation is good, you can review the code with AI support by using the command `/code-review`
163
+
164
+ 6. **Test thoroughly:**
165
+ - After implementation is done, you can start testing
166
+ - Use `docs/ai/testing/` as your testing guide
167
+ - Use slash command to start writing test `/writing-test`
168
+
169
+ 7. **Deploy confidently:**
170
+ - Follow deployment procedures in `docs/ai/deployment/`
171
+
172
+ 8. **Monitor and iterate:**
173
+ - Set up monitoring per `docs/ai/monitoring/`
174
+
175
+ ## Use Cases
176
+
177
+ - **New Projects**: Scaffold complete development documentation
178
+ - **Existing Projects**: Add structured documentation gradually
179
+ - **Team Collaboration**: Share common development practices
180
+ - **AI Pair Programming**: Provide context for AI assistants
181
+ - **Knowledge Management**: Document decisions and patterns
182
+
183
+ ## Best Practices
184
+
185
+ 1. **Keep templates updated**: As your project evolves, update phase documentation
186
+ 2. **Reference across phases**: Link requirements to design, design to implementation
187
+ 3. **Use with AI assistants**: Templates are designed to work well with AI code assistants
188
+ 4. **Customize for your needs**: Templates are starting points, not rigid requirements
189
+ 5. **Track decisions**: Document architectural decisions and their rationale
190
+
191
+ ## Configuration File
192
+
193
+ The `.ai-devkit.json` file tracks your setup:
194
+
195
+ ```json
196
+ {
197
+ "version": "0.2.0",
198
+ "environment": "cursor",
199
+ "initializedPhases": ["requirements", "design", "planning"],
200
+ "createdAt": "2025-10-14T...",
201
+ "updatedAt": "2025-10-14T..."
202
+ }
203
+ ```
204
+
205
+ ## Development
206
+
207
+ To work on the CLI package:
208
+
209
+ ```bash
210
+ # Clone the repository
211
+ git clone <repository-url>
212
+ cd ai-devkit
213
+
214
+ # Install dependencies for the monorepo
215
+ npm install
216
+
217
+ # Navigate to CLI package
218
+ cd packages/cli
219
+
220
+ # Run in development mode
221
+ npm run dev -- init
222
+
223
+ # Build
224
+ npm run build
225
+
226
+ # Test locally
227
+ npm link
228
+ ai-devkit init
229
+ ```
230
+
231
+ ## Contributing
232
+
233
+ Contributions are welcome! Please feel free to submit issues and pull requests.
234
+
235
+ ## License
236
+
237
+ MIT
238
+
239
+ ---
240
+
241
+ **Happy building with AI! 🚀**
242
+
243
+ ## Quick Reference
244
+
245
+ | Quick links | Description |
246
+ |-------------|-------------|
247
+ | [CHANGELOG.md](CHANGELOG.md) | Recent changes and release notes |
248
+
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ const init_1 = require("./commands/init");
6
6
  const phase_1 = require("./commands/phase");
7
7
  const setup_1 = require("./commands/setup");
8
8
  const memory_1 = require("./commands/memory");
9
+ const skill_1 = require("./commands/skill");
9
10
  const program = new commander_1.Command();
10
11
  program
11
12
  .name('ai-devkit')
@@ -28,5 +29,6 @@ program
28
29
  .option('-g, --global', 'Install commands to global environment folders')
29
30
  .action(setup_1.setupCommand);
30
31
  (0, memory_1.registerMemoryCommand)(program);
32
+ (0, skill_1.registerSkillCommand)(program);
31
33
  program.parse();
32
34
  //# 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;AACpC,0CAA8C;AAC9C,4CAAgD;AAChD,4CAAgD;AAChD,8CAA0D;AAE1D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,yBAAyB,EAAE,8CAA8C,CAAC;KACjF,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;KAC/E,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,2GAA2G,CAAC;KACxH,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;KACxE,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,4CAAgD;AAChD,4CAAgD;AAChD,8CAA0D;AAC1D,4CAAwD;AAExD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,yBAAyB,EAAE,8CAA8C,CAAC;KACjF,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;KAC/E,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,2GAA2G,CAAC;KACxH,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;KACxE,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSkillCommand(program: Command): void;
3
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+E3D"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerSkillCommand = registerSkillCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const Config_1 = require("../lib/Config");
9
+ const SkillManager_1 = require("../lib/SkillManager");
10
+ function registerSkillCommand(program) {
11
+ const skillCommand = program
12
+ .command('skill')
13
+ .description('Manage Agent Skills');
14
+ skillCommand
15
+ .command('add <registry-repo> <skill-name>')
16
+ .description('Install a skill from a registry (e.g., ai-devkit skill add anthropics/skills frontend-design)')
17
+ .action(async (registryRepo, skillName) => {
18
+ try {
19
+ const configManager = new Config_1.ConfigManager();
20
+ const skillManager = new SkillManager_1.SkillManager(configManager);
21
+ await skillManager.addSkill(registryRepo, skillName);
22
+ }
23
+ catch (error) {
24
+ console.error(chalk_1.default.red(`\nFailed to add skill: ${error.message}\n`));
25
+ process.exit(1);
26
+ }
27
+ });
28
+ skillCommand
29
+ .command('list')
30
+ .description('List all installed skills in the current project')
31
+ .action(async () => {
32
+ try {
33
+ const configManager = new Config_1.ConfigManager();
34
+ const skillManager = new SkillManager_1.SkillManager(configManager);
35
+ const skills = await skillManager.listSkills();
36
+ if (skills.length === 0) {
37
+ console.log(chalk_1.default.yellow('\nNo skills installed in this project.'));
38
+ console.log(chalk_1.default.dim('Install a skill with: ai-devkit skill add <registry>/<repo> <skill-name>\n'));
39
+ return;
40
+ }
41
+ console.log(chalk_1.default.bold('\nInstalled Skills:\n'));
42
+ const maxNameLength = Math.max(...skills.map(s => s.name.length), 10);
43
+ const maxRegistryLength = Math.max(...skills.map(s => s.registry.length), 15);
44
+ console.log(chalk_1.default.dim(' ') +
45
+ chalk_1.default.bold('Skill Name'.padEnd(maxNameLength + 2)) +
46
+ chalk_1.default.bold('Registry'.padEnd(maxRegistryLength + 2)) +
47
+ chalk_1.default.bold('Environments'));
48
+ console.log(chalk_1.default.dim(' ' + '─'.repeat(maxNameLength + maxRegistryLength + 30)));
49
+ skills.forEach(skill => {
50
+ console.log(' ' +
51
+ chalk_1.default.cyan(skill.name.padEnd(maxNameLength + 2)) +
52
+ chalk_1.default.dim(skill.registry.padEnd(maxRegistryLength + 2)) +
53
+ chalk_1.default.green(skill.environments.join(', ')));
54
+ });
55
+ console.log(chalk_1.default.dim(`\n Total: ${skills.length} skill(s)\n`));
56
+ }
57
+ catch (error) {
58
+ console.error(chalk_1.default.red(`\nFailed to list skills: ${error.message}\n`));
59
+ process.exit(1);
60
+ }
61
+ });
62
+ skillCommand
63
+ .command('remove <skill-name>')
64
+ .description('Remove a skill from the current project')
65
+ .action(async (skillName) => {
66
+ try {
67
+ const configManager = new Config_1.ConfigManager();
68
+ const skillManager = new SkillManager_1.SkillManager(configManager);
69
+ await skillManager.removeSkill(skillName);
70
+ }
71
+ catch (error) {
72
+ console.error(chalk_1.default.red(`\nFailed to remove skill: ${error.message}\n`));
73
+ process.exit(1);
74
+ }
75
+ });
76
+ }
77
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { EnvironmentCode } from '../types';
1
+ import { EnvironmentCode } from "../types";
2
2
  export declare class EnvironmentSelector {
3
3
  selectEnvironments(): Promise<EnvironmentCode[]>;
4
4
  confirmOverride(conflicts: EnvironmentCode[]): Promise<boolean>;
5
5
  displaySelectionSummary(selected: EnvironmentCode[]): void;
6
6
  selectGlobalEnvironments(): Promise<EnvironmentCode[]>;
7
+ selectSkillEnvironments(): Promise<EnvironmentCode[]>;
7
8
  }
8
9
  //# sourceMappingURL=EnvironmentSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,qBAAa,mBAAmB;IACxB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BhD,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrE,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAapD,wBAAwB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAgC7D"}
1
+ {"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,qBAAa,mBAAmB;IACxB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA6BhD,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrE,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAapD,wBAAwB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkCtD,uBAAuB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAiC5D"}
@@ -9,25 +9,25 @@ const env_1 = require("../util/env");
9
9
  class EnvironmentSelector {
10
10
  async selectEnvironments() {
11
11
  const environments = (0, env_1.getAllEnvironments)();
12
- const choices = environments.map(env => ({
12
+ const choices = environments.map((env) => ({
13
13
  name: env.name,
14
14
  value: env.code,
15
- short: env.name
15
+ short: env.name,
16
16
  }));
17
17
  const answers = await inquirer_1.default.prompt([
18
18
  {
19
- type: 'checkbox',
20
- name: 'environments',
21
- message: 'Select AI environments to set up (use space to select, enter to confirm):',
19
+ type: "checkbox",
20
+ name: "environments",
21
+ message: "Select AI environments to set up (use space to select, enter to confirm):",
22
22
  choices,
23
23
  pageSize: 10,
24
24
  validate: (input) => {
25
25
  if (input.length === 0) {
26
- return 'Please select at least one environment.';
26
+ return "Please select at least one environment.";
27
27
  }
28
28
  return true;
29
- }
30
- }
29
+ },
30
+ },
31
31
  ]);
32
32
  return answers.environments;
33
33
  }
@@ -35,53 +35,81 @@ class EnvironmentSelector {
35
35
  if (conflicts.length === 0) {
36
36
  return true;
37
37
  }
38
- const conflictNames = conflicts.map(id => (0, env_1.getEnvironmentDisplayName)(id));
38
+ const conflictNames = conflicts.map((id) => (0, env_1.getEnvironmentDisplayName)(id));
39
39
  const answers = await inquirer_1.default.prompt([
40
40
  {
41
- type: 'confirm',
42
- name: 'proceed',
43
- message: `The following environments are already set up and will be overwritten:\n ${conflictNames.join(', ')}\n\nDo you want to continue?`,
44
- default: false
45
- }
41
+ type: "confirm",
42
+ name: "proceed",
43
+ message: `The following environments are already set up and will be overwritten:\n ${conflictNames.join(", ")}\n\nDo you want to continue?`,
44
+ default: false,
45
+ },
46
46
  ]);
47
47
  return answers.proceed;
48
48
  }
49
49
  displaySelectionSummary(selected) {
50
50
  if (selected.length === 0) {
51
- console.log('No environments selected.');
51
+ console.log("No environments selected.");
52
52
  return;
53
53
  }
54
- console.log('\nSelected environments:');
55
- selected.forEach(envId => {
54
+ console.log("\nSelected environments:");
55
+ selected.forEach((envId) => {
56
56
  console.log(` ${(0, env_1.getEnvironmentDisplayName)(envId)}`);
57
57
  });
58
- console.log('');
58
+ console.log("");
59
59
  }
60
60
  async selectGlobalEnvironments() {
61
61
  const globalCapableEnvs = (0, env_1.getGlobalCapableEnvironments)();
62
62
  if (globalCapableEnvs.length === 0) {
63
- console.log('No environments support global setup.');
63
+ console.log("No environments support global setup.");
64
64
  return [];
65
65
  }
66
- const choices = globalCapableEnvs.map(env => ({
66
+ const choices = globalCapableEnvs.map((env) => ({
67
67
  name: env.name,
68
68
  value: env.code,
69
- short: env.name
69
+ short: env.name,
70
70
  }));
71
71
  const answers = await inquirer_1.default.prompt([
72
72
  {
73
- type: 'checkbox',
74
- name: 'environments',
75
- message: 'Select AI environments for global setup (use space to select, enter to confirm):',
73
+ type: "checkbox",
74
+ name: "environments",
75
+ message: "Select AI environments for global setup (use space to select, enter to confirm):",
76
76
  choices,
77
77
  pageSize: 10,
78
78
  validate: (input) => {
79
79
  if (input.length === 0) {
80
- return 'Please select at least one environment.';
80
+ return "Please select at least one environment.";
81
81
  }
82
82
  return true;
83
- }
84
- }
83
+ },
84
+ },
85
+ ]);
86
+ return answers.environments;
87
+ }
88
+ async selectSkillEnvironments() {
89
+ const skillCapableEnvs = (0, env_1.getSkillCapableEnvironments)();
90
+ if (skillCapableEnvs.length === 0) {
91
+ console.log("No environments support skills.");
92
+ return [];
93
+ }
94
+ const choices = skillCapableEnvs.map((env) => ({
95
+ name: env.name,
96
+ value: env.code,
97
+ short: env.name,
98
+ }));
99
+ const answers = await inquirer_1.default.prompt([
100
+ {
101
+ type: "checkbox",
102
+ name: "environments",
103
+ message: "Select AI environments for skill installation (use space to select, enter to confirm):",
104
+ choices,
105
+ pageSize: 10,
106
+ validate: (input) => {
107
+ if (input.length === 0) {
108
+ return "Please select at least one environment.";
109
+ }
110
+ return true;
111
+ },
112
+ },
85
113
  ]);
86
114
  return answers.environments;
87
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,qCAKqB;AAErB,MAAa,mBAAmB;IAC9B,KAAK,CAAC,kBAAkB;QACtB,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,IAAuB;YAClC,KAAK,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EACL,2EAA2E;gBAC7E,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;oBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,yCAAyC,CAAC;oBACnD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAA4B;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6EAA6E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B;gBAC5I,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,uBAAuB,CAAC,QAA2B;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,+BAAyB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,iBAAiB,GAAG,IAAA,kCAA4B,GAAE,CAAC;QAEzD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,IAAuB;YAClC,KAAK,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EACL,kFAAkF;gBACpF,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;oBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,yCAAyC,CAAC;oBACnD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,gBAAgB,GAAG,IAAA,iCAA2B,GAAE,CAAC;QAEvD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,IAAuB;YAClC,KAAK,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EACL,wFAAwF;gBAC1F,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;oBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,yCAAyC,CAAC;oBACnD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;CACF;AAjID,kDAiIC"}
@@ -0,0 +1,33 @@
1
+ import { ConfigManager } from './Config';
2
+ import { EnvironmentSelector } from './EnvironmentSelector';
3
+ interface InstalledSkill {
4
+ name: string;
5
+ registry: string;
6
+ environments: string[];
7
+ }
8
+ export declare class SkillManager {
9
+ private configManager;
10
+ private environmentSelector;
11
+ constructor(configManager: ConfigManager, environmentSelector?: EnvironmentSelector);
12
+ /**
13
+ * Add a skill to the project
14
+ * @param registryId - e.g., "anthropics/skills"
15
+ * @param skillName - e.g., "frontend-design"
16
+ */
17
+ addSkill(registryId: string, skillName: string): Promise<void>;
18
+ /**
19
+ * List installed skills in the project
20
+ */
21
+ listSkills(): Promise<InstalledSkill[]>;
22
+ /**
23
+ * Remove a skill from the project
24
+ * @param skillName - Name of the skill to remove
25
+ */
26
+ removeSkill(skillName: string): Promise<void>;
27
+ private fetchRegistry;
28
+ private getInstallationTargets;
29
+ private cloneRepositoryToCache;
30
+ private filterSkillCapableEnvironments;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=SkillManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillManager.d.ts","sourceRoot":"","sources":["../../src/lib/SkillManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAY5D,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;gBADnB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,GAAE,mBAA+C;IAG9E;;;;OAIG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgFpE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA6D7C;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqCrC,aAAa;IAuB3B,OAAO,CAAC,sBAAsB;YAiBhB,sBAAsB;IAcpC,OAAO,CAAC,8BAA8B;CAMvC"}