@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.
- package/CHANGELOG.md +161 -0
- package/README.md +292 -83
- package/dist/applier/agents-installer.d.ts +7 -1
- package/dist/applier/agents-installer.js +9 -3
- package/dist/applier/agents-installer.js.map +1 -1
- package/dist/applier/skills-installer.d.ts +7 -1
- package/dist/applier/skills-installer.js +9 -3
- package/dist/applier/skills-installer.js.map +1 -1
- package/dist/commands/backup.js +10 -3
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/new.d.ts +1 -0
- package/dist/commands/new.js +198 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.js +306 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/steps/6-github.js +13 -3
- package/dist/steps/6-github.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,13 +33,19 @@ function templatesSkillsPath() {
|
|
|
33
33
|
}
|
|
34
34
|
return candidates[0];
|
|
35
35
|
}
|
|
36
|
-
|
|
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(
|
|
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(
|
|
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":"AAAA,+CAA+C;AAC/C,mEAAmE;AACnE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,sDAAsD;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;GASG;AACH,SAAS,mBAAmB;IAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,yCAAyC;IACzC,2BAA2B;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAiB,uBAAuB;QAC5E,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAS,0CAA0C;KACjG,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAQD,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"skills-installer.js","sourceRoot":"","sources":["../../src/applier/skills-installer.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/backup.js
CHANGED
|
@@ -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({
|
|
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.
|
|
114
|
-
|
|
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,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
|