@azerogluemin/ai-bootstrap 0.4.1 → 0.5.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 +95 -0
- package/README.md +21 -9
- package/dist/applier/agents-installer.d.ts +1 -6
- package/dist/applier/agents-installer.js +16 -64
- package/dist/applier/agents-installer.js.map +1 -1
- package/dist/applier/pool.d.ts +34 -0
- package/dist/applier/pool.js +166 -0
- package/dist/applier/pool.js.map +1 -0
- package/dist/applier/skills-installer.d.ts +5 -3
- package/dist/applier/skills-installer.js +26 -75
- package/dist/applier/skills-installer.js.map +1 -1
- package/dist/commands/help.d.ts +1 -0
- package/dist/commands/help.js +98 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/mcp.js +50 -5
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/new.js +83 -108
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/scan.d.ts +1 -0
- package/dist/commands/scan.js +42 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/skills.js +65 -1
- package/dist/commands/skills.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.js +8 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/wizard.js +63 -75
- package/dist/wizard.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// ai-bootstrap help — comprehensive guide.
|
|
2
|
+
// `--help` shows brief; `help` shows the full tour.
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
export function runHelpCommand() {
|
|
5
|
+
console.log(`
|
|
6
|
+
${chalk.bold.cyan('ai-bootstrap')} ${chalk.dim('— Personal AI infrastructure for Claude Code')}
|
|
7
|
+
|
|
8
|
+
${chalk.bold('Necə işləyir')}
|
|
9
|
+
|
|
10
|
+
ai-bootstrap iki yerdə skill və agent quraşdırır:
|
|
11
|
+
1. ${chalk.cyan('User scope')} (${chalk.dim('~/.claude/skills/')})
|
|
12
|
+
Hər layihədə, hər session-da yüklənir. Universal əsas.
|
|
13
|
+
2. ${chalk.cyan('Project scope')} (${chalk.dim('<layihə>/.claude/skills/')})
|
|
14
|
+
Yalnız o layihədə yüklənir. Layihəyə xas dəst.
|
|
15
|
+
|
|
16
|
+
Hər ikisi ${chalk.cyan('pool')}-dan symlink edir:
|
|
17
|
+
${chalk.dim('~/.claude/skills-pool/')} ← bütün skill-lər bir dəfə saxlanır (3-4 MB)
|
|
18
|
+
${chalk.dim('~/.claude/agents-pool/')} ← bütün agent-lər bir dəfə
|
|
19
|
+
|
|
20
|
+
${chalk.bold('Nəticə:')} ${chalk.green('10 layihə = 1 dəfə disk, 10 layihəyə link')}
|
|
21
|
+
|
|
22
|
+
${chalk.bold('İlk istifadə (3 addım)')}
|
|
23
|
+
|
|
24
|
+
${chalk.cyan('npm install -g @azerogluemin/ai-bootstrap')} ${chalk.dim('# qlobal install')}
|
|
25
|
+
${chalk.cyan('ai-bootstrap')} ${chalk.dim('# 3 sual, foundation + free MCPs quraşdırır')}
|
|
26
|
+
${chalk.cyan('cd ~/Projects/yeni-layihə && ai-bootstrap new')} ${chalk.dim('# layihə bundle')}
|
|
27
|
+
|
|
28
|
+
${chalk.bold('Komandalar')}
|
|
29
|
+
|
|
30
|
+
${chalk.bold.cyan(' Setup')}
|
|
31
|
+
${chalk.cyan('ai-bootstrap')} User-scope setup (3 sual)
|
|
32
|
+
${chalk.cyan('ai-bootstrap new')} Layihə setup (3 sual, multi-bundle)
|
|
33
|
+
${chalk.cyan('ai-bootstrap update')} Yeni versiyaya yenilə (pool sinxron)
|
|
34
|
+
${chalk.cyan('ai-bootstrap doctor')} Sağlamlıq yoxla
|
|
35
|
+
|
|
36
|
+
${chalk.bold.cyan(' Skill + Agent idarəsi')}
|
|
37
|
+
${chalk.cyan('ai-bootstrap add')} ${chalk.dim('İnteraktiv multi-select siyahı')}
|
|
38
|
+
${chalk.cyan('ai-bootstrap add <name1> <name2>')} Konkret skill/agent əlavə
|
|
39
|
+
${chalk.cyan('ai-bootstrap add --bundle creator')} Bütün bundle əlavə
|
|
40
|
+
${chalk.cyan('ai-bootstrap remove <name>')} Sil (alias: rm)
|
|
41
|
+
${chalk.cyan('ai-bootstrap list')} Bu scope-da quraşdırılanlar
|
|
42
|
+
${chalk.cyan('ai-bootstrap list --all')} User + bu layihə yan-yana
|
|
43
|
+
|
|
44
|
+
${chalk.bold.cyan(' MCP servers')}
|
|
45
|
+
${chalk.cyan('ai-bootstrap mcp list')} 63 mövcud server siyahısı
|
|
46
|
+
${chalk.cyan('ai-bootstrap mcp add github notion')} Manual MCP əlavə
|
|
47
|
+
${chalk.cyan('ai-bootstrap mcp installed')} Quraşdırılan MCP-lər
|
|
48
|
+
${chalk.cyan('ai-bootstrap mcp credentials')} Token-ləri əlavə et
|
|
49
|
+
|
|
50
|
+
${chalk.bold.cyan(' Backup (opsional)')}
|
|
51
|
+
${chalk.cyan('ai-bootstrap backup init')} Git remote bağla
|
|
52
|
+
${chalk.cyan('ai-bootstrap backup sync')} Dəyişiklikləri push
|
|
53
|
+
${chalk.cyan('ai-bootstrap backup pull')} Yeni maşında bərpa
|
|
54
|
+
${chalk.cyan('ai-bootstrap backup status')} Son sinx + remote
|
|
55
|
+
|
|
56
|
+
${chalk.bold.cyan(' Layihə skan')}
|
|
57
|
+
${chalk.cyan('ai-bootstrap scan ~/MyJobs')} Mövcud layihələri tap
|
|
58
|
+
|
|
59
|
+
${chalk.bold.cyan(' Telemetry (default OFF)')}
|
|
60
|
+
${chalk.cyan('ai-bootstrap telemetry on/off/status')} Anonim usage data
|
|
61
|
+
|
|
62
|
+
${chalk.bold.cyan(' Meta')}
|
|
63
|
+
${chalk.cyan('ai-bootstrap --version')} Versiya
|
|
64
|
+
${chalk.cyan('ai-bootstrap --help')} Qısa kömək
|
|
65
|
+
${chalk.cyan('ai-bootstrap help')} Bu tam kömək
|
|
66
|
+
|
|
67
|
+
${chalk.bold('Tipik axın')}
|
|
68
|
+
|
|
69
|
+
${chalk.dim('# 1) Maşına bir dəfə:')}
|
|
70
|
+
${chalk.cyan('npm install -g @azerogluemin/ai-bootstrap')}
|
|
71
|
+
${chalk.cyan('ai-bootstrap')} ${chalk.dim('# foundation + free MCPs')}
|
|
72
|
+
${chalk.cyan('ai-bootstrap mcp add github instagram brave-search')}
|
|
73
|
+
${chalk.cyan('ai-bootstrap mcp credentials')} ${chalk.dim('# token-ləri əlavə')}
|
|
74
|
+
|
|
75
|
+
${chalk.dim('# 2) Yeni AI Creator layihə:')}
|
|
76
|
+
${chalk.cyan('mkdir -p ~/Projects/ai-content && cd ~/Projects/ai-content')}
|
|
77
|
+
${chalk.cyan('ai-bootstrap new')} ${chalk.dim('# creator bundle seç')}
|
|
78
|
+
${chalk.cyan('claude')}
|
|
79
|
+
|
|
80
|
+
${chalk.dim('# 3) Yeni SaaS layihə:')}
|
|
81
|
+
${chalk.cyan('mkdir -p ~/Projects/saas && cd ~/Projects/saas')}
|
|
82
|
+
${chalk.cyan('ai-bootstrap new')} ${chalk.dim('# developer bundle seç')}
|
|
83
|
+
${chalk.cyan('claude')}
|
|
84
|
+
|
|
85
|
+
${chalk.dim('# 4) Layihənin yarısında əlavə skill lazım oldu:')}
|
|
86
|
+
${chalk.cyan('cd ~/Projects/saas')}
|
|
87
|
+
${chalk.cyan('ai-bootstrap add')} ${chalk.dim('# interaktiv siyahı, multi-select')}
|
|
88
|
+
${chalk.cyan('# yaxud')}
|
|
89
|
+
${chalk.cyan('ai-bootstrap add showrunner image-prompt-engineer')}
|
|
90
|
+
|
|
91
|
+
${chalk.bold('Ətraflı')}
|
|
92
|
+
|
|
93
|
+
Docs: ${chalk.cyan('https://github.com/eminazeroglu/ai-bootstrap')}
|
|
94
|
+
npm: ${chalk.cyan('https://www.npmjs.com/package/@azerogluemin/ai-bootstrap')}
|
|
95
|
+
Issue: ${chalk.cyan('https://github.com/eminazeroglu/ai-bootstrap/issues')}
|
|
96
|
+
`);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -8,19 +8,21 @@
|
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import { existsSync, readFileSync, writeFileSync, chmodSync } from 'node:fs';
|
|
10
10
|
import { join } from 'node:path';
|
|
11
|
-
import { input, password } from '@inquirer/prompts';
|
|
11
|
+
import { input, password, checkbox } from '@inquirer/prompts';
|
|
12
12
|
import { HOME } from '../utils/paths.js';
|
|
13
13
|
import { MCP_CATALOG, getMcpEntry } from '../applier/mcp-catalog.js';
|
|
14
|
-
import { listInstalledMcps } from '../applier/mcp-config.js';
|
|
14
|
+
import { writeMcpConfig, listInstalledMcps } from '../applier/mcp-config.js';
|
|
15
15
|
const ENV_FILE = join(HOME, '.ai-bootstrap.env');
|
|
16
16
|
function printMcpHelp() {
|
|
17
17
|
console.log(`
|
|
18
18
|
${chalk.bold('ai-bootstrap mcp')} — MCP server management
|
|
19
19
|
|
|
20
20
|
${chalk.bold('Subcommands:')}
|
|
21
|
-
${chalk.cyan('list')}
|
|
22
|
-
${chalk.cyan('
|
|
23
|
-
${chalk.cyan('
|
|
21
|
+
${chalk.cyan('list')} List all available MCPs in the catalog
|
|
22
|
+
${chalk.cyan('add')} Interactive multi-select MCP server(s)
|
|
23
|
+
${chalk.cyan('add github notion slack')} Add specific MCPs by ID
|
|
24
|
+
${chalk.cyan('installed')} List MCPs configured via ai-bootstrap
|
|
25
|
+
${chalk.cyan('credentials')} Interactively fill credentials into ~/.ai-bootstrap.env
|
|
24
26
|
`);
|
|
25
27
|
}
|
|
26
28
|
function listAll() {
|
|
@@ -117,6 +119,45 @@ async function collectCredentials() {
|
|
|
117
119
|
console.log(chalk.dim('Shell-də yüklə (qoy ~/.zshrc və ya ~/.bashrc-ə):'));
|
|
118
120
|
console.log(chalk.cyan(` set -a; source ${ENV_FILE}; set +a\n`));
|
|
119
121
|
}
|
|
122
|
+
async function addMcps(names) {
|
|
123
|
+
let toInstall = names;
|
|
124
|
+
// No args → interactive multi-select
|
|
125
|
+
if (toInstall.length === 0) {
|
|
126
|
+
const byCategory = new Map();
|
|
127
|
+
for (const entry of Object.values(MCP_CATALOG)) {
|
|
128
|
+
const list = byCategory.get(entry.category) ?? [];
|
|
129
|
+
list.push(entry);
|
|
130
|
+
byCategory.set(entry.category, list);
|
|
131
|
+
}
|
|
132
|
+
const choices = [];
|
|
133
|
+
for (const [cat, entries] of byCategory) {
|
|
134
|
+
choices.push({ name: chalk.bold(`── ${cat.toUpperCase()} ──`), value: `__cat_${cat}`, disabled: true });
|
|
135
|
+
for (const e of entries.sort((a, b) => a.id.localeCompare(b.id))) {
|
|
136
|
+
const credIcon = e.credentialKeys.length > 0 ? chalk.yellow(' 🔑') : '';
|
|
137
|
+
choices.push({ name: `${e.id.padEnd(22)} ${chalk.dim(e.description)}${credIcon}`, value: e.id });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
toInstall = await checkbox({
|
|
141
|
+
message: 'MCP server-(lər)i seç: (Space = seç, Enter = bitir, 🔑 = credential lazımdır)',
|
|
142
|
+
choices,
|
|
143
|
+
pageSize: 25,
|
|
144
|
+
required: true,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
console.log(chalk.dim(`\n Quraşdırılır: ${toInstall.join(', ')}\n`));
|
|
148
|
+
const result = writeMcpConfig(toInstall);
|
|
149
|
+
console.log(` ${chalk.green('✓')} ${result.installed.length} yeni MCP konfiq edildi`);
|
|
150
|
+
if (result.skipped.length > 0) {
|
|
151
|
+
console.log(chalk.dim(` ${result.skipped.length} artıq var: ${result.skipped.join(', ')}`));
|
|
152
|
+
}
|
|
153
|
+
if (result.missingFromCatalog.length > 0) {
|
|
154
|
+
console.log(chalk.yellow(` ⚠ Kataloqda yoxdur: ${result.missingFromCatalog.join(', ')}`));
|
|
155
|
+
}
|
|
156
|
+
if (result.credentialsRequired.length > 0) {
|
|
157
|
+
console.log(chalk.dim(`\n ${result.credentialsRequired.length} MCP credential gözləyir. İçin: ${chalk.cyan('ai-bootstrap mcp credentials')}`));
|
|
158
|
+
}
|
|
159
|
+
console.log('');
|
|
160
|
+
}
|
|
120
161
|
export async function runMcpCommand(args) {
|
|
121
162
|
const sub = args[0];
|
|
122
163
|
if (!sub || sub === 'help' || sub === '--help' || sub === '-h') {
|
|
@@ -131,6 +172,10 @@ export async function runMcpCommand(args) {
|
|
|
131
172
|
listInstalled();
|
|
132
173
|
return;
|
|
133
174
|
}
|
|
175
|
+
if (sub === 'add') {
|
|
176
|
+
await addMcps(args.slice(1).filter((a) => !a.startsWith('--')));
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
134
179
|
if (sub === 'credentials' || sub === 'creds') {
|
|
135
180
|
await collectCredentials();
|
|
136
181
|
return;
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,eAAe;AACf,0DAA0D;AAC1D,iEAAiE;AACjE,2EAA2E;AAC3E,8BAA8B;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/new.js
CHANGED
|
@@ -1,78 +1,72 @@
|
|
|
1
|
-
// ai-bootstrap new — bootstrap a
|
|
1
|
+
// ai-bootstrap new — bootstrap a project folder with project-scope skills + agents.
|
|
2
|
+
//
|
|
3
|
+
// v0.5.0 changes (per user feedback):
|
|
4
|
+
// - 3 questions only (was 5)
|
|
5
|
+
// - MULTI-SELECT bundles (was single-select + override)
|
|
6
|
+
// - No custom rules question (placeholder in CLAUDE.md instead)
|
|
2
7
|
//
|
|
3
8
|
// Flow:
|
|
4
|
-
// 1
|
|
5
|
-
// 2
|
|
6
|
-
// 3
|
|
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)
|
|
9
|
+
// 1) Project name (default: folder basename)
|
|
10
|
+
// 2) Bundles (multi-select checkbox)
|
|
11
|
+
// 3) Description (1-2 sentences for CLAUDE.md)
|
|
12
12
|
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
// (developer for SaaS, creator for content, marketer for SMM) without polluting
|
|
16
|
-
// every session with irrelevant skills.
|
|
13
|
+
// Installation uses Pool+Symlink: skills/agents are symlinked from
|
|
14
|
+
// ~/.claude/skills-pool/ — no per-project duplication on disk.
|
|
17
15
|
import chalk from 'chalk';
|
|
18
16
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
19
17
|
import { join, basename } from 'node:path';
|
|
20
|
-
import {
|
|
18
|
+
import { input, confirm, checkbox } from '@inquirer/prompts';
|
|
21
19
|
import { installSkills } from '../applier/skills-installer.js';
|
|
22
20
|
import { installAgents } from '../applier/agents-installer.js';
|
|
23
|
-
import { resolvePlan
|
|
24
|
-
const
|
|
25
|
-
{ id: '
|
|
26
|
-
{ id: '
|
|
27
|
-
{ id: '
|
|
28
|
-
{ id: '
|
|
29
|
-
{ id: '
|
|
30
|
-
{ id: '
|
|
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' },
|
|
21
|
+
import { resolvePlan } from '../applier/bundle-definitions.js';
|
|
22
|
+
const BUNDLES_INFO = [
|
|
23
|
+
{ id: 'foundation', label: 'Foundation', description: '10 universal skill (artıq qlobalda var)' },
|
|
24
|
+
{ id: 'developer', label: 'Developer', description: 'SaaS, fullstack, mobile, data (21 skill, 18 agent)' },
|
|
25
|
+
{ id: 'creator', label: 'Creator', description: 'Video, Reel, sosial, brand (26 skill, 13 agent)' },
|
|
26
|
+
{ id: 'marketer', label: 'Marketer', description: 'SEO, SMM, copy, ads (24 skill, 29 agent)' },
|
|
27
|
+
{ id: 'founder', label: 'Founder', description: 'C-Level + product + marketing + coaching (35, 38)' },
|
|
28
|
+
{ id: 'full-stack', label: 'Full Stack', description: 'HƏR ŞEY — 85 skill, 78 agent' },
|
|
34
29
|
];
|
|
35
|
-
function projectClaudeMd(name, description,
|
|
30
|
+
function projectClaudeMd(name, description, bundles) {
|
|
36
31
|
return `# CLAUDE.md — ${name}
|
|
37
32
|
|
|
38
33
|
Bu fayl bu layihə üçün xüsusi instruksiyalardır. Hər söhbətdə avtomatik yüklənir.
|
|
39
34
|
|
|
40
35
|
## Layihə haqqında
|
|
41
36
|
|
|
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')
|
|
37
|
+
${description || '(təsvir verilməyib — buraya yaz)'}
|
|
49
38
|
|
|
50
|
-
##
|
|
39
|
+
## Bundle(lər)
|
|
51
40
|
|
|
52
|
-
|
|
53
|
-
Yalnız bu layihədə işləyəndə Claude Code onları yükləyir.
|
|
41
|
+
${bundles.map((b) => '- `' + b + '`').join('\n')}
|
|
54
42
|
|
|
55
|
-
|
|
43
|
+
Skill + agent siyahısı: \`.claude/skills/\` və \`.claude/agents/\` qovluqlarında (symlinks).
|
|
44
|
+
Pool: \`~/.claude/skills-pool/\` — bütün skill-lər bir dəfə saxlanır, hər layihə link verir.
|
|
56
45
|
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
Əlavə skill/bundle əlavə etmək:
|
|
47
|
+
\`\`\`
|
|
48
|
+
ai-bootstrap add showrunner # tək skill
|
|
49
|
+
ai-bootstrap add --bundle marketer # bütün bundle
|
|
50
|
+
ai-bootstrap add # interaktiv siyahı
|
|
59
51
|
\`\`\`
|
|
60
|
-
|
|
61
|
-
Layihə-spesifik skill yaratmaq üçün: \`.claude/skills/<my-skill>/SKILL.md\`
|
|
62
52
|
|
|
63
53
|
## Custom rules (bu layihəyə xas)
|
|
64
54
|
|
|
65
|
-
|
|
55
|
+
<!-- Buraya layihə-spesifik qaydalar yaz. Misal:
|
|
56
|
+
1. AZ-də danış, RU sözləri qarışdırma
|
|
57
|
+
2. Bu layihədə Tailwind v4 istifadə olunur
|
|
58
|
+
3. Müştəri "Restoran X" şirkətidir, terminlərinə hörmət et
|
|
59
|
+
-->
|
|
66
60
|
`;
|
|
67
61
|
}
|
|
68
62
|
function projectGitignore() {
|
|
69
63
|
return [
|
|
70
64
|
'# ai-bootstrap project-scope installations',
|
|
71
|
-
'#
|
|
72
|
-
'#skills/',
|
|
73
|
-
'#agents/',
|
|
65
|
+
'# Skills + agents qovluqlarını git-ə salmaq istəyirsənsə commentdə qoy:',
|
|
66
|
+
'# skills/',
|
|
67
|
+
'# agents/',
|
|
74
68
|
'',
|
|
75
|
-
'#
|
|
69
|
+
'# Həmişə xaric:',
|
|
76
70
|
'*.log',
|
|
77
71
|
'.DS_Store',
|
|
78
72
|
'',
|
|
@@ -81,59 +75,29 @@ function projectGitignore() {
|
|
|
81
75
|
export async function runNewCommand(_args) {
|
|
82
76
|
const cwd = process.cwd();
|
|
83
77
|
const folderName = basename(cwd);
|
|
84
|
-
console.log(chalk.bold(`\nai-bootstrap new —
|
|
85
|
-
console.log(chalk.dim(`
|
|
86
|
-
console.log(chalk.dim(` Detected name: ${folderName}\n`));
|
|
78
|
+
console.log(chalk.bold(`\nai-bootstrap new — layihə skill + agent quraşdırması\n`));
|
|
79
|
+
console.log(chalk.dim(` Qovluq: ${cwd}\n`));
|
|
87
80
|
// Step 1: project name
|
|
88
81
|
const projectName = await input({
|
|
89
|
-
message: 'Layihə adı?',
|
|
82
|
+
message: '1/3 — Layihə adı?',
|
|
90
83
|
default: folderName,
|
|
91
84
|
});
|
|
92
|
-
// Step 2:
|
|
93
|
-
const
|
|
94
|
-
message: '
|
|
95
|
-
choices:
|
|
96
|
-
name: `${
|
|
97
|
-
value:
|
|
98
|
-
|
|
85
|
+
// Step 2: multi-select bundles
|
|
86
|
+
const bundleIds = await checkbox({
|
|
87
|
+
message: '2/3 — Hansı bundle(ləri) istəyirsən? (Space = seç, Enter = bitir)',
|
|
88
|
+
choices: BUNDLES_INFO.map((b) => ({
|
|
89
|
+
name: `${b.label} — ${chalk.dim(b.description)}`,
|
|
90
|
+
value: b.id,
|
|
91
|
+
disabled: b.id === 'foundation' ? '(artıq qlobalda)' : false,
|
|
99
92
|
})),
|
|
93
|
+
required: true,
|
|
100
94
|
});
|
|
101
|
-
|
|
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
|
|
95
|
+
// Step 3: description
|
|
120
96
|
const description = await input({
|
|
121
|
-
message: '
|
|
97
|
+
message: '3/3 — Qısa təsvir (1-2 cümlə) — CLAUDE.md-yə yazılacaq:',
|
|
122
98
|
default: '',
|
|
123
99
|
});
|
|
124
|
-
//
|
|
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
|
|
100
|
+
// Install
|
|
137
101
|
const projectClaudeDir = join(cwd, '.claude');
|
|
138
102
|
const projectSkillsDir = join(projectClaudeDir, 'skills');
|
|
139
103
|
const projectAgentsDir = join(projectClaudeDir, 'agents');
|
|
@@ -141,17 +105,28 @@ export async function runNewCommand(_args) {
|
|
|
141
105
|
mkdirSync(projectClaudeDir, { recursive: true });
|
|
142
106
|
}
|
|
143
107
|
console.log('');
|
|
144
|
-
console.log(chalk.bold(`Quraşdırılır → ${chalk.cyan(projectClaudeDir)}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const
|
|
108
|
+
console.log(chalk.bold(`Quraşdırılır → ${chalk.cyan(projectClaudeDir)}`));
|
|
109
|
+
console.log(chalk.dim(` Pool: ~/.claude/skills-pool/ + ~/.claude/agents-pool/ (symlinks)\n`));
|
|
110
|
+
// Aggregate skills + agents from all selected bundles (dedupe)
|
|
111
|
+
const allSkills = new Set();
|
|
112
|
+
const allAgents = new Set();
|
|
113
|
+
for (const id of bundleIds) {
|
|
114
|
+
const plan = resolvePlan(id, id);
|
|
115
|
+
for (const s of plan.skills)
|
|
116
|
+
allSkills.add(s);
|
|
117
|
+
for (const a of plan.agents)
|
|
118
|
+
allAgents.add(a);
|
|
119
|
+
}
|
|
120
|
+
console.log(chalk.dim(` Skills (${allSkills.size})...`));
|
|
121
|
+
const skillResult = installSkills([...allSkills], projectSkillsDir);
|
|
148
122
|
console.log(` ${chalk.green('✓')} ${skillResult.installed.length} installed` +
|
|
149
|
-
(skillResult.skipped.length > 0 ? `, ${chalk.dim(skillResult.skipped.length + ' skipped
|
|
150
|
-
(skillResult.errors.length > 0 ? `, ${chalk.red(skillResult.errors.length + ' errors')}` : '')
|
|
151
|
-
|
|
152
|
-
|
|
123
|
+
(skillResult.skipped.length > 0 ? `, ${chalk.dim(skillResult.skipped.length + ' skipped')}` : '') +
|
|
124
|
+
(skillResult.errors.length > 0 ? `, ${chalk.red(skillResult.errors.length + ' errors')}` : '') +
|
|
125
|
+
(skillResult.linkMode ? chalk.dim(` [${skillResult.linkMode}]`) : ''));
|
|
126
|
+
console.log(chalk.dim(` Agents (${allAgents.size})...`));
|
|
127
|
+
const agentResult = installAgents([...allAgents], projectAgentsDir);
|
|
153
128
|
console.log(` ${chalk.green('✓')} ${agentResult.installed.length} installed` +
|
|
154
|
-
(agentResult.skipped.length > 0 ? `, ${chalk.dim(agentResult.skipped.length + ' skipped
|
|
129
|
+
(agentResult.skipped.length > 0 ? `, ${chalk.dim(agentResult.skipped.length + ' skipped')}` : '') +
|
|
155
130
|
(agentResult.errors.length > 0 ? `, ${chalk.red(agentResult.errors.length + ' errors')}` : ''));
|
|
156
131
|
// Write CLAUDE.md
|
|
157
132
|
const claudeMdPath = join(cwd, 'CLAUDE.md');
|
|
@@ -161,7 +136,7 @@ export async function runNewCommand(_args) {
|
|
|
161
136
|
default: false,
|
|
162
137
|
});
|
|
163
138
|
if (overwrite) {
|
|
164
|
-
writeFileSync(claudeMdPath, projectClaudeMd(projectName, description
|
|
139
|
+
writeFileSync(claudeMdPath, projectClaudeMd(projectName, description, bundleIds), 'utf-8');
|
|
165
140
|
console.log(` ${chalk.green('✓')} CLAUDE.md yenilədi`);
|
|
166
141
|
}
|
|
167
142
|
else {
|
|
@@ -169,30 +144,30 @@ export async function runNewCommand(_args) {
|
|
|
169
144
|
}
|
|
170
145
|
}
|
|
171
146
|
else {
|
|
172
|
-
writeFileSync(claudeMdPath, projectClaudeMd(projectName, description
|
|
147
|
+
writeFileSync(claudeMdPath, projectClaudeMd(projectName, description, bundleIds), 'utf-8');
|
|
173
148
|
console.log(` ${chalk.green('✓')} CLAUDE.md yazıldı`);
|
|
174
149
|
}
|
|
175
|
-
//
|
|
150
|
+
// Project gitignore (in .claude/)
|
|
176
151
|
const gitignorePath = join(projectClaudeDir, '.gitignore');
|
|
177
152
|
if (!existsSync(gitignorePath)) {
|
|
178
153
|
writeFileSync(gitignorePath, projectGitignore(), 'utf-8');
|
|
179
154
|
}
|
|
180
|
-
//
|
|
155
|
+
// Project state
|
|
181
156
|
const projectStatePath = join(projectClaudeDir, 'ai-bootstrap-project.json');
|
|
182
157
|
writeFileSync(projectStatePath, JSON.stringify({
|
|
183
158
|
version: '1.0',
|
|
184
159
|
name: projectName,
|
|
185
|
-
|
|
186
|
-
bundle: bundleKey,
|
|
160
|
+
bundles: bundleIds,
|
|
187
161
|
description,
|
|
188
162
|
createdAt: new Date().toISOString(),
|
|
189
163
|
}, null, 2), 'utf-8');
|
|
190
164
|
console.log('');
|
|
191
165
|
console.log(chalk.bold.green('🎉 Layihə hazırdır.\n'));
|
|
192
166
|
console.log(chalk.dim('Növbəti:'));
|
|
193
|
-
console.log(` ${chalk.cyan('claude')}
|
|
194
|
-
console.log(` ${chalk.cyan('cat CLAUDE.md')}
|
|
195
|
-
console.log(` ${chalk.cyan('
|
|
167
|
+
console.log(` ${chalk.cyan('claude')} — sessiyanı başlat`);
|
|
168
|
+
console.log(` ${chalk.cyan('cat CLAUDE.md')} — layihə qaydalarını yoxla`);
|
|
169
|
+
console.log(` ${chalk.cyan('ai-bootstrap list')} — quraşdırılanlar`);
|
|
170
|
+
console.log(` ${chalk.cyan('ai-bootstrap add <skill>')} — əlavə skill əlavə`);
|
|
196
171
|
console.log('');
|
|
197
172
|
}
|
|
198
173
|
//# sourceMappingURL=new.js.map
|
package/dist/commands/new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runScanCommand(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ai-bootstrap scan <path1> <path2> ...
|
|
2
|
+
// Scans paths for existing projects (CLAUDE.md / .claude/ markers)
|
|
3
|
+
// and writes a manifest to ~/.claude/knowledge/projects.md
|
|
4
|
+
//
|
|
5
|
+
// Replaces the removed "Step 2" of the v0.4.x wizard.
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { resolve } from 'node:path';
|
|
9
|
+
import { scanFolder } from '../utils/scanner.js';
|
|
10
|
+
import { writeProjectManifest } from '../applier/projects-writer.js';
|
|
11
|
+
export async function runScanCommand(args) {
|
|
12
|
+
if (args.length === 0 || args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
|
|
13
|
+
console.log(`
|
|
14
|
+
${chalk.bold('ai-bootstrap scan')} — scan paths for existing projects
|
|
15
|
+
|
|
16
|
+
${chalk.bold('Usage:')}
|
|
17
|
+
${chalk.cyan('ai-bootstrap scan ~/Projects ~/MyJobs')}
|
|
18
|
+
|
|
19
|
+
Detects folders containing CLAUDE.md or .claude/ — writes
|
|
20
|
+
manifest to ~/.claude/knowledge/projects.md for Claude Code context.
|
|
21
|
+
`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const paths = args.filter((a) => !a.startsWith('--')).map((p) => resolve(p));
|
|
25
|
+
const valid = paths.filter((p) => existsSync(p));
|
|
26
|
+
if (valid.length === 0) {
|
|
27
|
+
console.error(chalk.red('✗ Heç bir yol tapılmadı.'));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
console.log(chalk.bold(`\nai-bootstrap scan — ${valid.length} yol\n`));
|
|
31
|
+
for (const p of valid)
|
|
32
|
+
console.log(chalk.dim(` ${p}`));
|
|
33
|
+
const projects = valid.flatMap((p) => scanFolder(p));
|
|
34
|
+
console.log('');
|
|
35
|
+
console.log(`${chalk.green('✓')} ${projects.length} layihə tapıldı`);
|
|
36
|
+
if (projects.length > 0) {
|
|
37
|
+
const written = writeProjectManifest(projects);
|
|
38
|
+
console.log(chalk.dim(` Manifest: ${written[0]}`));
|
|
39
|
+
}
|
|
40
|
+
console.log('');
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,mEAAmE;AACnE,2DAA2D;AAC3D,EAAE;AACF,sDAAsD;AAEtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC;EACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;;EAE/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC;;;;CAItD,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAErE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|