@azerogluemin/ai-bootstrap 0.2.1 → 0.4.1

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.
@@ -33,13 +33,19 @@ function templatesSkillsPath() {
33
33
  }
34
34
  return candidates[0];
35
35
  }
36
- export function installSkills(skillNames) {
36
+ /**
37
+ * Install skills into a target skills directory.
38
+ * @param skillNames List of skill IDs to install
39
+ * @param targetSkillsDir Absolute path to the skills directory (default: `~/.claude/skills/`).
40
+ * Pass `<project>/.claude/skills/` for project-scope installation.
41
+ */
42
+ export function installSkills(skillNames, targetSkillsDir = SKILLS_DIR) {
37
43
  const result = {
38
44
  installed: [],
39
45
  skipped: [],
40
46
  errors: [],
41
47
  };
42
- ensureDir(SKILLS_DIR);
48
+ ensureDir(targetSkillsDir);
43
49
  const templatesDir = templatesSkillsPath();
44
50
  if (!existsSync(templatesDir)) {
45
51
  for (const name of skillNames) {
@@ -52,7 +58,7 @@ export function installSkills(skillNames) {
52
58
  }
53
59
  for (const name of skillNames) {
54
60
  const sourceDir = join(templatesDir, name);
55
- const targetDir = join(SKILLS_DIR, name);
61
+ const targetDir = join(targetSkillsDir, name);
56
62
  // Check source exists
57
63
  if (!existsSync(sourceDir)) {
58
64
  result.skipped.push({
@@ -1 +1 @@
1
- {"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/applier/skills-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/applier/skills-installer.ts"],"names":[],"mappings":"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"}
@@ -108,10 +108,17 @@ async function initBackup() {
108
108
  validate: (v) => /^(git@github\.com:|https?:\/\/github\.com\/)[\w.-]+\/[\w.-]+(\.git)?$/.test(v.trim()) ||
109
109
  'GitHub SSH yaxud HTTPS URL olmalıdır',
110
110
  });
111
- const isPrivate = await confirm({ message: 'Repo private-dir? (HÖKMƏN private olmalıdır)', default: true });
111
+ const isPrivate = await confirm({
112
+ message: 'Repo private-dir? (private tövsiyə olunur — ~/.claude/-da şəxsi data var)',
113
+ default: true,
114
+ });
112
115
  if (!isPrivate) {
113
- console.log(chalk.red(' Public repo dayandırıldı — ~/.claude/ şəxsi məlumat içərir.'));
114
- return;
116
+ console.log(chalk.yellow(' Public repo: ~/.claude/ məlumatın görünür olacaq. Davam edirsən, sənin qərarındır.'));
117
+ const proceedPublic = await confirm({ message: 'Yenə də davam edək?', default: false });
118
+ if (!proceedPublic) {
119
+ console.log(chalk.dim(' Backup dayandırıldı. Sonra yenidən: ai-bootstrap backup init'));
120
+ return;
121
+ }
115
122
  }
116
123
  const branch = 'main';
117
124
  console.log(chalk.dim('\n Git init...'));
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runNewCommand(_args: string[]): Promise<void>;
@@ -0,0 +1,198 @@
1
+ // ai-bootstrap new — bootstrap a NEW project folder with project-scope skills + agents
2
+ //
3
+ // Flow:
4
+ // 1. Detect cwd as the project folder
5
+ // 2. Ask: what is this project? (intent → bundle suggestion)
6
+ // 3. Confirm bundle (or override)
7
+ // 4. Ask: 1-line project description (goes into CLAUDE.md)
8
+ // 5. Install skills to <cwd>/.claude/skills/ (PROJECT scope)
9
+ // 6. Install agents to <cwd>/.claude/agents/ (PROJECT scope)
10
+ // 7. Write <cwd>/CLAUDE.md with description + bundle reference
11
+ // 8. Write <cwd>/.claude/.gitignore (excludes installed templates if desired)
12
+ //
13
+ // Why project-scope: Claude Code loads project-scope skills ONLY when the user
14
+ // is inside that project. This lets you have different skill sets per project
15
+ // (developer for SaaS, creator for content, marketer for SMM) without polluting
16
+ // every session with irrelevant skills.
17
+ import chalk from 'chalk';
18
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
19
+ import { join, basename } from 'node:path';
20
+ import { select, input, confirm } from '@inquirer/prompts';
21
+ import { installSkills } from '../applier/skills-installer.js';
22
+ import { installAgents } from '../applier/agents-installer.js';
23
+ import { resolvePlan, SKILL_BUNDLES, AGENT_BUNDLES } from '../applier/bundle-definitions.js';
24
+ const INTENTS = [
25
+ { id: 'saas', label: 'SaaS / Fullstack web app', bundle: 'developer', description: 'Backend + frontend + DB + DevOps' },
26
+ { id: 'creator', label: 'AI Creator content (video, Reels, story, music)', bundle: 'creator', description: 'Video pipeline + character + storyboard + audio' },
27
+ { id: 'marketing', label: 'Marketing / SMM campaign', bundle: 'marketer', description: 'SEO + social orchestrators + copywriting + ads' },
28
+ { id: 'mobile', label: 'Mobile app', bundle: 'developer', description: 'Same developer bundle as web (architect/test/refactor/security)' },
29
+ { id: 'data', label: 'Data analysis / dashboard', bundle: 'developer', description: 'Architect + analyst patterns; consider founder bundle for biz metrics' },
30
+ { id: 'agency', label: 'Client agency work (multi-service)', bundle: 'full-stack', description: 'Everything — heaviest install (75+ agents)' },
31
+ { id: 'founder', label: 'Startup / founder work', bundle: 'founder', description: 'C-Level advisors + product + marketing + coaching' },
32
+ { id: 'opensource', label: 'Open source library / tool', bundle: 'developer', description: 'Engineering bundle + docs' },
33
+ { id: 'foundation', label: 'Just the basics (minimal)', bundle: 'foundation', description: '10 essential skills, 2 agents' },
34
+ ];
35
+ function projectClaudeMd(name, description, intent, customRules) {
36
+ return `# CLAUDE.md — ${name}
37
+
38
+ Bu fayl bu layihə üçün xüsusi instruksiyalardır. Hər söhbətdə avtomatik yüklənir.
39
+
40
+ ## Layihə haqqında
41
+
42
+ ${description}
43
+
44
+ ## Növ + bundle
45
+
46
+ - **Növ**: ${intent.label}
47
+ - **Bundle**: \`${intent.bundle}\` (${intent.description})
48
+ - **Bootstrap**: ai-bootstrap v$(npm view @azerogluemin/ai-bootstrap version 2>/dev/null || echo 'unknown')
49
+
50
+ ## Layihə skill + agent-ləri
51
+
52
+ Bu layihənin \`.claude/skills/\` və \`.claude/agents/\` qovluqlarında **project-scope** olaraq quraşdırılıb.
53
+ Yalnız bu layihədə işləyəndə Claude Code onları yükləyir.
54
+
55
+ Yenidən install:
56
+
57
+ \`\`\`bash
58
+ ai-bootstrap new # bu qovluqda yenidən qaçırsan, mövcudları skip edir
59
+ \`\`\`
60
+
61
+ Layihə-spesifik skill yaratmaq üçün: \`.claude/skills/<my-skill>/SKILL.md\`
62
+
63
+ ## Custom rules (bu layihəyə xas)
64
+
65
+ ${customRules || '(buraya layihə-spesifik qaydalar yaz — məcburi yox)'}
66
+ `;
67
+ }
68
+ function projectGitignore() {
69
+ return [
70
+ '# ai-bootstrap project-scope installations',
71
+ '# Uncomment to track installed skills/agents in git (default: tracked):',
72
+ '#skills/',
73
+ '#agents/',
74
+ '',
75
+ '# Always exclude:',
76
+ '*.log',
77
+ '.DS_Store',
78
+ '',
79
+ ].join('\n');
80
+ }
81
+ export async function runNewCommand(_args) {
82
+ const cwd = process.cwd();
83
+ const folderName = basename(cwd);
84
+ console.log(chalk.bold(`\nai-bootstrap new — bootstrap project skills + agents\n`));
85
+ console.log(chalk.dim(` Project folder: ${cwd}`));
86
+ console.log(chalk.dim(` Detected name: ${folderName}\n`));
87
+ // Step 1: project name
88
+ const projectName = await input({
89
+ message: 'Layihə adı?',
90
+ default: folderName,
91
+ });
92
+ // Step 2: intent (open-ended would also be valid; we offer choices for speed)
93
+ const intentId = await select({
94
+ message: 'Bu qovluqda nə etmək istəyirsən?',
95
+ choices: INTENTS.map((i) => ({
96
+ name: `${i.label} ${chalk.dim('(' + i.bundle + ')')}`,
97
+ value: i.id,
98
+ description: i.description,
99
+ })),
100
+ });
101
+ const intent = INTENTS.find((i) => i.id === intentId);
102
+ // Step 3: bundle override
103
+ const useCustomBundle = await confirm({
104
+ message: `Bundle: ${chalk.cyan(intent.bundle)} (${SKILL_BUNDLES[intent.bundle].length} skill, ${AGENT_BUNDLES[intent.bundle].length} agent). Dəyişdirək?`,
105
+ default: false,
106
+ });
107
+ let bundleKey = intent.bundle;
108
+ if (useCustomBundle) {
109
+ const picked = await select({
110
+ message: 'Bundle seç:',
111
+ choices: Object.keys(SKILL_BUNDLES).map((b) => ({
112
+ name: `${b} ${chalk.dim(`(${SKILL_BUNDLES[b].length} skill, ${AGENT_BUNDLES[b].length} agent)`)}`,
113
+ value: b,
114
+ })),
115
+ default: intent.bundle,
116
+ });
117
+ bundleKey = picked;
118
+ }
119
+ // Step 4: description
120
+ const description = await input({
121
+ message: 'Layihə təsviri (1-2 cümlə) — CLAUDE.md-yə yazılacaq:',
122
+ default: '',
123
+ });
124
+ // Step 5: custom rules (optional)
125
+ const wantsRules = await confirm({
126
+ message: 'Layihə-spesifik qayda(lar) əlavə edək? (sonra əl ilə də əlavə oluna bilər)',
127
+ default: false,
128
+ });
129
+ let customRules = '';
130
+ if (wantsRules) {
131
+ customRules = await input({
132
+ message: 'Qaydalar (çoxsətirli — Enter ilə bitir):',
133
+ default: '',
134
+ });
135
+ }
136
+ // Step 6: install
137
+ const projectClaudeDir = join(cwd, '.claude');
138
+ const projectSkillsDir = join(projectClaudeDir, 'skills');
139
+ const projectAgentsDir = join(projectClaudeDir, 'agents');
140
+ if (!existsSync(projectClaudeDir)) {
141
+ mkdirSync(projectClaudeDir, { recursive: true });
142
+ }
143
+ console.log('');
144
+ console.log(chalk.bold(`Quraşdırılır → ${chalk.cyan(projectClaudeDir)}\n`));
145
+ const plan = resolvePlan(bundleKey, bundleKey);
146
+ console.log(chalk.dim(` Skills (${plan.skills.length})...`));
147
+ const skillResult = installSkills(plan.skills, projectSkillsDir);
148
+ console.log(` ${chalk.green('✓')} ${skillResult.installed.length} installed` +
149
+ (skillResult.skipped.length > 0 ? `, ${chalk.dim(skillResult.skipped.length + ' skipped (already present)')}` : '') +
150
+ (skillResult.errors.length > 0 ? `, ${chalk.red(skillResult.errors.length + ' errors')}` : ''));
151
+ console.log(chalk.dim(` Agents (${plan.agents.length})...`));
152
+ const agentResult = installAgents(plan.agents, projectAgentsDir);
153
+ console.log(` ${chalk.green('✓')} ${agentResult.installed.length} installed` +
154
+ (agentResult.skipped.length > 0 ? `, ${chalk.dim(agentResult.skipped.length + ' skipped (already present)')}` : '') +
155
+ (agentResult.errors.length > 0 ? `, ${chalk.red(agentResult.errors.length + ' errors')}` : ''));
156
+ // Write CLAUDE.md
157
+ const claudeMdPath = join(cwd, 'CLAUDE.md');
158
+ if (existsSync(claudeMdPath)) {
159
+ const overwrite = await confirm({
160
+ message: 'CLAUDE.md artıq var. Üstünə yazaq?',
161
+ default: false,
162
+ });
163
+ if (overwrite) {
164
+ writeFileSync(claudeMdPath, projectClaudeMd(projectName, description || '(təsvir verilməyib)', intent, customRules), 'utf-8');
165
+ console.log(` ${chalk.green('✓')} CLAUDE.md yenilədi`);
166
+ }
167
+ else {
168
+ console.log(` ${chalk.dim('−')} CLAUDE.md saxlandı (üstünə yazılmadı)`);
169
+ }
170
+ }
171
+ else {
172
+ writeFileSync(claudeMdPath, projectClaudeMd(projectName, description || '(təsvir verilməyib)', intent, customRules), 'utf-8');
173
+ console.log(` ${chalk.green('✓')} CLAUDE.md yazıldı`);
174
+ }
175
+ // Write .claude/.gitignore if not present
176
+ const gitignorePath = join(projectClaudeDir, '.gitignore');
177
+ if (!existsSync(gitignorePath)) {
178
+ writeFileSync(gitignorePath, projectGitignore(), 'utf-8');
179
+ }
180
+ // Write project state for `ai-bootstrap update` inside the project
181
+ const projectStatePath = join(projectClaudeDir, 'ai-bootstrap-project.json');
182
+ writeFileSync(projectStatePath, JSON.stringify({
183
+ version: '1.0',
184
+ name: projectName,
185
+ intent: intent.id,
186
+ bundle: bundleKey,
187
+ description,
188
+ createdAt: new Date().toISOString(),
189
+ }, null, 2), 'utf-8');
190
+ console.log('');
191
+ console.log(chalk.bold.green('🎉 Layihə hazırdır.\n'));
192
+ console.log(chalk.dim('Növbəti:'));
193
+ console.log(` ${chalk.cyan('claude')} — sessiyanı başlat`);
194
+ console.log(` ${chalk.cyan('cat CLAUDE.md')} — layihə qaydalarını yoxla`);
195
+ console.log(` ${chalk.cyan('ls .claude/skills | head')} — quraşdırılan skill-ləri gör`);
196
+ console.log('');
197
+ }
198
+ //# sourceMappingURL=new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function runAddCommand(args: string[]): Promise<void>;
2
+ export declare function runRemoveCommand(args: string[]): void;
3
+ export declare function runListCommand(args: string[]): void;
@@ -0,0 +1,306 @@
1
+ // ai-bootstrap add / remove / list — manage skills + agents incrementally
2
+ //
3
+ // Scope auto-detection:
4
+ // - If cwd has CLAUDE.md OR .claude/ → project scope (cwd/.claude/)
5
+ // - Else → user scope (~/.claude/)
6
+ // - --user flag forces user scope
7
+ // - --project flag forces project scope
8
+ //
9
+ // Add can take individual skill/agent names, or --bundle <name> to merge a whole bundle.
10
+ // Auto-detects skill vs. agent by checking templates.
11
+ import chalk from 'chalk';
12
+ import { existsSync, readdirSync, statSync, rmSync } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ import { SKILLS_DIR, AGENTS_DIR } from '../utils/paths.js';
15
+ import { installSkills } from '../applier/skills-installer.js';
16
+ import { installAgents } from '../applier/agents-installer.js';
17
+ import { resolvePlan, SKILL_BUNDLES, AGENT_BUNDLES } from '../applier/bundle-definitions.js';
18
+ function detectScope(argv) {
19
+ const forceUser = argv.includes('--user');
20
+ const forceProject = argv.includes('--project');
21
+ if (forceUser) {
22
+ return {
23
+ scope: 'user',
24
+ skillsDir: SKILLS_DIR,
25
+ agentsDir: AGENTS_DIR,
26
+ label: '~/.claude/ (user scope, all projects)',
27
+ };
28
+ }
29
+ if (forceProject) {
30
+ const cwd = process.cwd();
31
+ return {
32
+ scope: 'project',
33
+ skillsDir: join(cwd, '.claude', 'skills'),
34
+ agentsDir: join(cwd, '.claude', 'agents'),
35
+ label: `${cwd}/.claude/ (project scope, ONLY this folder)`,
36
+ };
37
+ }
38
+ const cwd = process.cwd();
39
+ const hasProjectClaudeMd = existsSync(join(cwd, 'CLAUDE.md'));
40
+ const hasProjectClaudeDir = existsSync(join(cwd, '.claude'));
41
+ if (hasProjectClaudeMd || hasProjectClaudeDir) {
42
+ return {
43
+ scope: 'project',
44
+ skillsDir: join(cwd, '.claude', 'skills'),
45
+ agentsDir: join(cwd, '.claude', 'agents'),
46
+ label: `${cwd}/.claude/ (auto-detected project)`,
47
+ };
48
+ }
49
+ return {
50
+ scope: 'user',
51
+ skillsDir: SKILLS_DIR,
52
+ agentsDir: AGENTS_DIR,
53
+ label: '~/.claude/ (user scope — no project detected)',
54
+ };
55
+ }
56
+ function getTemplatesSkillsList() {
57
+ // Same lookup as skills-installer; lazy-checked via SKILL_BUNDLES union
58
+ const all = new Set();
59
+ for (const list of Object.values(SKILL_BUNDLES)) {
60
+ for (const s of list)
61
+ all.add(s);
62
+ }
63
+ return all;
64
+ }
65
+ function getTemplatesAgentsList() {
66
+ const all = new Set();
67
+ for (const list of Object.values(AGENT_BUNDLES)) {
68
+ for (const a of list)
69
+ all.add(a);
70
+ }
71
+ return all;
72
+ }
73
+ function classify(names) {
74
+ const knownSkills = getTemplatesSkillsList();
75
+ const knownAgents = getTemplatesAgentsList();
76
+ const skills = [];
77
+ const agents = [];
78
+ const unknown = [];
79
+ for (const n of names) {
80
+ if (knownSkills.has(n) && knownAgents.has(n)) {
81
+ // Both — install both (rare but possible if there's name overlap)
82
+ skills.push(n);
83
+ agents.push(n);
84
+ }
85
+ else if (knownSkills.has(n)) {
86
+ skills.push(n);
87
+ }
88
+ else if (knownAgents.has(n)) {
89
+ agents.push(n);
90
+ }
91
+ else {
92
+ unknown.push(n);
93
+ }
94
+ }
95
+ return { skills, agents, unknown };
96
+ }
97
+ function printHelp(action) {
98
+ if (action === 'add') {
99
+ console.log(`
100
+ ${chalk.bold('ai-bootstrap add')} — install additional skills, agents, or bundles
101
+
102
+ ${chalk.bold('Usage:')}
103
+ ${chalk.cyan('ai-bootstrap add <name1> <name2> ...')} Auto-detects skill vs agent
104
+ ${chalk.cyan('ai-bootstrap add --bundle <name>')} Merge an entire bundle
105
+ ${chalk.cyan('ai-bootstrap add ... --user')} Force user scope (~/.claude/)
106
+ ${chalk.cyan('ai-bootstrap add ... --project')} Force project scope (./.claude/)
107
+
108
+ ${chalk.bold('Default scope:')}
109
+ Project if cwd has CLAUDE.md or .claude/; else user.
110
+
111
+ ${chalk.bold('Examples:')}
112
+ ${chalk.cyan('ai-bootstrap add showrunner character-designer')} # add 2 skills
113
+ ${chalk.cyan('ai-bootstrap add --bundle creator')} # add all 26 creator skills
114
+ ${chalk.cyan('ai-bootstrap add seo-technical seo-content')} # add 2 SEO agents
115
+ `);
116
+ }
117
+ else if (action === 'remove') {
118
+ console.log(`
119
+ ${chalk.bold('ai-bootstrap remove')} — uninstall skills or agents
120
+
121
+ ${chalk.bold('Usage:')}
122
+ ${chalk.cyan('ai-bootstrap remove <name1> <name2> ...')}
123
+ ${chalk.cyan('ai-bootstrap remove ... --user')} Force user scope
124
+ ${chalk.cyan('ai-bootstrap remove ... --project')} Force project scope
125
+
126
+ ${chalk.bold('Default scope:')}
127
+ Project if cwd has CLAUDE.md or .claude/; else user.
128
+ `);
129
+ }
130
+ else {
131
+ console.log(`
132
+ ${chalk.bold('ai-bootstrap list')} — list installed skills + agents
133
+
134
+ ${chalk.bold('Usage:')}
135
+ ${chalk.cyan('ai-bootstrap list')} Auto-detect scope
136
+ ${chalk.cyan('ai-bootstrap list --user')} Force user scope
137
+ ${chalk.cyan('ai-bootstrap list --project')} Force project scope
138
+ ${chalk.cyan('ai-bootstrap list --all')} Both user + current project
139
+ `);
140
+ }
141
+ }
142
+ function listInstalled(skillsDir, agentsDir) {
143
+ const skills = existsSync(skillsDir)
144
+ ? readdirSync(skillsDir).filter((e) => {
145
+ try {
146
+ return statSync(join(skillsDir, e)).isDirectory();
147
+ }
148
+ catch {
149
+ return false;
150
+ }
151
+ })
152
+ : [];
153
+ const agents = existsSync(agentsDir)
154
+ ? readdirSync(agentsDir).filter((e) => {
155
+ try {
156
+ return statSync(join(agentsDir, e)).isDirectory();
157
+ }
158
+ catch {
159
+ return false;
160
+ }
161
+ })
162
+ : [];
163
+ return { skills, agents };
164
+ }
165
+ export async function runAddCommand(args) {
166
+ if (args.length === 0 || args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
167
+ printHelp('add');
168
+ return;
169
+ }
170
+ const ctx = detectScope(args);
171
+ let names;
172
+ const bundleIdx = args.indexOf('--bundle');
173
+ if (bundleIdx >= 0) {
174
+ const bundleName = args[bundleIdx + 1];
175
+ if (!bundleName || !(bundleName in SKILL_BUNDLES)) {
176
+ console.error(chalk.red(`✗ Naməlum bundle: ${bundleName}. Bundle adları: ${Object.keys(SKILL_BUNDLES).join(', ')}`));
177
+ process.exit(1);
178
+ }
179
+ const plan = resolvePlan(bundleName, bundleName);
180
+ names = [...new Set([...plan.skills, ...plan.agents])];
181
+ console.log(chalk.bold(`\nai-bootstrap add --bundle ${bundleName}\n`));
182
+ console.log(chalk.dim(` Scope: ${ctx.label}`));
183
+ console.log(chalk.dim(` Plan: ${plan.skills.length} skills + ${plan.agents.length} agents (overlap dedupe)\n`));
184
+ }
185
+ else {
186
+ names = args.filter((a) => !a.startsWith('--'));
187
+ if (names.length === 0) {
188
+ console.error(chalk.red('✗ Heç bir ad verilmədi. İstifadə: ai-bootstrap add <name1> <name2> ...'));
189
+ process.exit(1);
190
+ }
191
+ console.log(chalk.bold(`\nai-bootstrap add (${names.length})\n`));
192
+ console.log(chalk.dim(` Scope: ${ctx.label}\n`));
193
+ }
194
+ const cls = classify(names);
195
+ if (cls.unknown.length > 0) {
196
+ console.log(chalk.yellow(` ⚠ Naməlum: ${cls.unknown.join(', ')}`));
197
+ console.log(chalk.dim(' (catalog-da yoxdur — yoxla: ai-bootstrap list --all yaxud ad düzgündürmü?)\n'));
198
+ }
199
+ if (cls.skills.length > 0) {
200
+ console.log(chalk.dim(` Skills (${cls.skills.length})...`));
201
+ const r = installSkills(cls.skills, ctx.skillsDir);
202
+ console.log(` ${chalk.green('✓')} ${r.installed.length} installed` +
203
+ (r.skipped.length > 0 ? `, ${chalk.dim(r.skipped.length + ' skipped')}` : '') +
204
+ (r.errors.length > 0 ? `, ${chalk.red(r.errors.length + ' errors')}` : ''));
205
+ }
206
+ if (cls.agents.length > 0) {
207
+ console.log(chalk.dim(` Agents (${cls.agents.length})...`));
208
+ const r = installAgents(cls.agents, ctx.agentsDir);
209
+ console.log(` ${chalk.green('✓')} ${r.installed.length} installed` +
210
+ (r.skipped.length > 0 ? `, ${chalk.dim(r.skipped.length + ' skipped')}` : '') +
211
+ (r.errors.length > 0 ? `, ${chalk.red(r.errors.length + ' errors')}` : ''));
212
+ }
213
+ console.log('');
214
+ }
215
+ export function runRemoveCommand(args) {
216
+ if (args.length === 0 || args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
217
+ printHelp('remove');
218
+ return;
219
+ }
220
+ const ctx = detectScope(args);
221
+ const names = args.filter((a) => !a.startsWith('--'));
222
+ if (names.length === 0) {
223
+ console.error(chalk.red('✗ Heç bir ad verilmədi.'));
224
+ process.exit(1);
225
+ }
226
+ console.log(chalk.bold(`\nai-bootstrap remove (${names.length})\n`));
227
+ console.log(chalk.dim(` Scope: ${ctx.label}\n`));
228
+ let removed = 0;
229
+ let notFound = 0;
230
+ for (const name of names) {
231
+ const skillPath = join(ctx.skillsDir, name);
232
+ const agentPath = join(ctx.agentsDir, name);
233
+ let didRemove = false;
234
+ if (existsSync(skillPath)) {
235
+ try {
236
+ rmSync(skillPath, { recursive: true, force: true });
237
+ console.log(` ${chalk.green('✓')} skill: ${name}`);
238
+ removed++;
239
+ didRemove = true;
240
+ }
241
+ catch (err) {
242
+ console.log(` ${chalk.red('✗')} skill: ${name} — ${err instanceof Error ? err.message : err}`);
243
+ }
244
+ }
245
+ if (existsSync(agentPath)) {
246
+ try {
247
+ rmSync(agentPath, { recursive: true, force: true });
248
+ console.log(` ${chalk.green('✓')} agent: ${name}`);
249
+ removed++;
250
+ didRemove = true;
251
+ }
252
+ catch (err) {
253
+ console.log(` ${chalk.red('✗')} agent: ${name} — ${err instanceof Error ? err.message : err}`);
254
+ }
255
+ }
256
+ if (!didRemove) {
257
+ console.log(` ${chalk.dim('−')} ${name} — yoxdur bu scope-da`);
258
+ notFound++;
259
+ }
260
+ }
261
+ console.log(chalk.dim(`\n ${removed} removed, ${notFound} not found\n`));
262
+ }
263
+ export function runListCommand(args) {
264
+ if (args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
265
+ printHelp('list');
266
+ return;
267
+ }
268
+ const showAll = args.includes('--all');
269
+ if (showAll) {
270
+ console.log(chalk.bold('\nUser scope (~/.claude/)\n'));
271
+ const user = listInstalled(SKILLS_DIR, AGENTS_DIR);
272
+ printList(user);
273
+ const cwd = process.cwd();
274
+ if (existsSync(join(cwd, 'CLAUDE.md')) || existsSync(join(cwd, '.claude'))) {
275
+ console.log(chalk.bold(`\nProject scope (${cwd}/.claude/)\n`));
276
+ const proj = listInstalled(join(cwd, '.claude', 'skills'), join(cwd, '.claude', 'agents'));
277
+ printList(proj);
278
+ }
279
+ return;
280
+ }
281
+ const ctx = detectScope(args);
282
+ console.log(chalk.bold(`\nInstalled — ${ctx.label}\n`));
283
+ printList(listInstalled(ctx.skillsDir, ctx.agentsDir));
284
+ }
285
+ function printList({ skills, agents }) {
286
+ console.log(` Skills (${skills.length}):`);
287
+ if (skills.length === 0) {
288
+ console.log(chalk.dim(' (none)'));
289
+ }
290
+ else {
291
+ for (const s of skills.sort()) {
292
+ console.log(` ${chalk.cyan('•')} ${s}`);
293
+ }
294
+ }
295
+ console.log(`\n Agents (${agents.length}):`);
296
+ if (agents.length === 0) {
297
+ console.log(chalk.dim(' (none)'));
298
+ }
299
+ else {
300
+ for (const a of agents.sort()) {
301
+ console.log(` ${chalk.cyan('•')} ${a}`);
302
+ }
303
+ }
304
+ console.log('');
305
+ }
306
+ //# sourceMappingURL=skills.js.map