aiblueprint-cli 1.4.50 → 1.4.51
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/README.md +17 -17
- package/dist/cli.js +85 -75
- package/package.json +5 -4
- /package/{ai-config → ai-coding}/.claude-plugin/plugin.json +0 -0
- /package/{ai-config → ai-coding}/agents/action.md +0 -0
- /package/{ai-config → ai-coding}/agents/explore-codebase.md +0 -0
- /package/{ai-config → ai-coding}/agents/explore-docs.md +0 -0
- /package/{ai-config → ai-coding}/agents/websearch.md +0 -0
- /package/{ai-config → ai-coding}/scripts/.claude/commands/fix-on-my-computer.md +0 -0
- /package/{ai-config → ai-coding}/scripts/CLAUDE.md +0 -0
- /package/{ai-config → ai-coding}/scripts/biome.json +0 -0
- /package/{ai-config → ai-coding}/scripts/bun.lockb +0 -0
- /package/{ai-config → ai-coding}/scripts/package.json +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/CLAUDE.md +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/README.md +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/__tests__/context.test.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/__tests__/formatters.test.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/__tests__/statusline.test.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/data/.gitignore +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/data/.gitkeep +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/defaults.json +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/docs/ARCHITECTURE.md +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/fixtures/mock-transcript.jsonl +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/fixtures/test-input.json +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/index.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/config-types.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/config.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/context.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/formatters.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/git.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/menu-factories.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/presets.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/render-pure.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/types.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/lib/utils.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/src/tests/spend-v2.test.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/statusline.config.json +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/test-with-fixtures.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/test.ts +0 -0
- /package/{ai-config → ai-coding}/scripts/statusline/tsconfig.json +0 -0
- /package/{ai-config → ai-coding}/scripts/tsconfig.json +0 -0
- /package/{ai-config → ai-coding}/skills/apex/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/scripts/setup-templates.sh +0 -0
- /package/{ai-config → ai-coding}/skills/apex/scripts/update-progress.sh +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-00-init.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-00b-branch.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-00b-economy.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-00b-interactive.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-01-analyze.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-02-plan.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-03-execute.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/steps/step-04-validate.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/00-context.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/01-analyze.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/02-plan.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/03-execute.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/04-validate.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/README.md +0 -0
- /package/{ai-config → ai-coding}/skills/apex/templates/step-complete.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/comprehensive-example.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/optimize-guide.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/project-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/prompting-techniques.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/rules-directory-guide.md +0 -0
- /package/{ai-config → ai-coding}/skills/claude-memory/references/section-templates.md +0 -0
- /package/{ai-config → ai-coding}/skills/codex-environment/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/commit/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/create-pr/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/fix-errors/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/fix-grammar/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/fix-pr-comments/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/merge/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/oneshot/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/anthropic-best-practices.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/anti-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/clarity-principles.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/context-management.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/few-shot-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/openai-best-practices.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/prompt-templates.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/reasoning-techniques.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/system-prompt-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/prompt-creator/references/xml-structure.md +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/scripts/setup.sh +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/steps/step-00-init.md +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/steps/step-01-interactive-prd.md +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/steps/step-02-create-stories.md +0 -0
- /package/{ai-config → ai-coding}/skills/ralph-loop/steps/step-03-finish.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/LICENSE.txt +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/package.json +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/output-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/progressive-disclosure-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/prompting-integration.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/real-world-examples.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/script-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/workflows.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/references/xml-tag-guide.md +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/scripts/init-skill.ts +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/scripts/package-skill.ts +0 -0
- /package/{ai-config → ai-coding}/skills/skill-creator/scripts/validate.ts +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/context-management.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/debugging-agents.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/error-handling-and-recovery.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/evaluation-and-testing.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/orchestration-patterns.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/subagents.md +0 -0
- /package/{ai-config → ai-coding}/skills/subagent-creator/references/writing-subagent-prompts.md +0 -0
- /package/{ai-config → ai-coding}/skills/ultrathink/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/SKILL.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/scripts/setup-templates.sh +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/scripts/update-progress.sh +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-00-init.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-00b-branch.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-00b-economy.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-00b-interactive.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-01-analyze.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-02-plan.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-03-execute.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/steps/step-04-validate.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/00-context.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/01-analyze.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/02-plan.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/03-execute.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/04-validate.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/README.md +0 -0
- /package/{ai-config → ai-coding}/skills/workflow-apex-free/templates/step-complete.md +0 -0
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Supercharge Claude Code with security hooks, custom commands, intelligent status
|
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
# Run setup (no installation required)
|
|
11
|
-
npx aiblueprint-cli@latest
|
|
11
|
+
npx aiblueprint-cli@latest ai-coding setup
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## ✨ Features
|
|
@@ -32,7 +32,7 @@ npx aiblueprint-cli@latest claude-code setup
|
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
# Run without installation
|
|
35
|
-
npx aiblueprint-cli@latest
|
|
35
|
+
npx aiblueprint-cli@latest ai-coding setup
|
|
36
36
|
|
|
37
37
|
# Or install globally
|
|
38
38
|
npm install -g aiblueprint-cli
|
|
@@ -44,13 +44,13 @@ npm install -g aiblueprint-cli
|
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
# Interactive setup
|
|
47
|
-
npx aiblueprint-cli@latest
|
|
47
|
+
npx aiblueprint-cli@latest ai-coding setup
|
|
48
48
|
|
|
49
49
|
# Install all features (no prompts)
|
|
50
|
-
npx aiblueprint-cli@latest
|
|
50
|
+
npx aiblueprint-cli@latest ai-coding setup --skip
|
|
51
51
|
|
|
52
52
|
# Custom location
|
|
53
|
-
npx aiblueprint-cli@latest
|
|
53
|
+
npx aiblueprint-cli@latest ai-coding setup --folder ~/.my-claude
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### Statusline Scripts
|
|
@@ -59,16 +59,16 @@ Run utility scripts from anywhere:
|
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
# List available scripts
|
|
62
|
-
npx aiblueprint-cli@latest
|
|
62
|
+
npx aiblueprint-cli@latest ai-coding statusline --list
|
|
63
63
|
|
|
64
64
|
# Today's spending report
|
|
65
|
-
npx aiblueprint-cli@latest
|
|
65
|
+
npx aiblueprint-cli@latest ai-coding statusline spend:today
|
|
66
66
|
|
|
67
67
|
# Weekly usage analysis
|
|
68
|
-
npx aiblueprint-cli@latest
|
|
68
|
+
npx aiblueprint-cli@latest ai-coding statusline weekly
|
|
69
69
|
|
|
70
70
|
# Configure statusline
|
|
71
|
-
npx aiblueprint-cli@latest
|
|
71
|
+
npx aiblueprint-cli@latest ai-coding statusline config
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
**Available scripts:**
|
|
@@ -82,14 +82,14 @@ npx aiblueprint-cli@latest claude-code statusline config
|
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
84
|
# Add specific hooks
|
|
85
|
-
npx aiblueprint-cli@latest
|
|
85
|
+
npx aiblueprint-cli@latest ai-coding add hook post-edit-typescript
|
|
86
86
|
|
|
87
87
|
# Manage commands
|
|
88
|
-
npx aiblueprint-cli@latest
|
|
89
|
-
npx aiblueprint-cli@latest
|
|
88
|
+
npx aiblueprint-cli@latest ai-coding add commands
|
|
89
|
+
npx aiblueprint-cli@latest ai-coding add commands commit
|
|
90
90
|
|
|
91
91
|
# Create symlinks between tools
|
|
92
|
-
npx aiblueprint-cli@latest
|
|
92
|
+
npx aiblueprint-cli@latest ai-coding symlink
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
## 📚 What You Get
|
|
@@ -174,10 +174,10 @@ Unlock advanced features at [mlv.sh/claude-cli](https://mlv.sh/claude-cli)
|
|
|
174
174
|
|
|
175
175
|
```bash
|
|
176
176
|
# Activate premium
|
|
177
|
-
npx aiblueprint-cli@latest
|
|
177
|
+
npx aiblueprint-cli@latest ai-coding pro activate YOUR_TOKEN
|
|
178
178
|
|
|
179
179
|
# Setup premium configs
|
|
180
|
-
npx aiblueprint-cli@latest
|
|
180
|
+
npx aiblueprint-cli@latest ai-coding pro setup
|
|
181
181
|
```
|
|
182
182
|
|
|
183
183
|
## 🛠️ Development
|
|
@@ -189,8 +189,8 @@ cd aiblueprint-cli
|
|
|
189
189
|
bun install
|
|
190
190
|
|
|
191
191
|
# Development mode
|
|
192
|
-
bun run dev
|
|
193
|
-
bun run dev
|
|
192
|
+
bun run dev ai-coding setup
|
|
193
|
+
bun run dev ai-coding statusline --list
|
|
194
194
|
|
|
195
195
|
# Run tests
|
|
196
196
|
bun run test:run
|
package/dist/cli.js
CHANGED
|
@@ -847,7 +847,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
847
847
|
this._exitCallback = (err) => {
|
|
848
848
|
if (err.code !== "commander.executeSubCommandAsync") {
|
|
849
849
|
throw err;
|
|
850
|
-
}
|
|
850
|
+
}
|
|
851
851
|
};
|
|
852
852
|
}
|
|
853
853
|
return this;
|
|
@@ -26102,7 +26102,7 @@ var require_dbcs_codec = __commonJS((exports) => {
|
|
|
26102
26102
|
if (resCode !== undefined) {
|
|
26103
26103
|
dbcsCode = resCode;
|
|
26104
26104
|
nextChar = uCode;
|
|
26105
|
-
}
|
|
26105
|
+
}
|
|
26106
26106
|
}
|
|
26107
26107
|
seqObj = undefined;
|
|
26108
26108
|
} else if (uCode >= 0) {
|
|
@@ -26167,7 +26167,7 @@ var require_dbcs_codec = __commonJS((exports) => {
|
|
|
26167
26167
|
newBuf[j++] = dbcsCode >> 8;
|
|
26168
26168
|
newBuf[j++] = dbcsCode & 255;
|
|
26169
26169
|
}
|
|
26170
|
-
}
|
|
26170
|
+
}
|
|
26171
26171
|
this.seqObj = undefined;
|
|
26172
26172
|
}
|
|
26173
26173
|
if (this.leadSurrogate !== -1) {
|
|
@@ -33133,7 +33133,7 @@ async function cleanupRepository(repoPath) {
|
|
|
33133
33133
|
}
|
|
33134
33134
|
}
|
|
33135
33135
|
async function resolveConfigDir(repoPath) {
|
|
33136
|
-
const candidates =
|
|
33136
|
+
const candidates = CONFIG_FOLDER_CANDIDATES;
|
|
33137
33137
|
for (const name of candidates) {
|
|
33138
33138
|
const candidate = path6.join(repoPath, name);
|
|
33139
33139
|
if (await import_fs_extra4.default.pathExists(candidate)) {
|
|
@@ -33142,6 +33142,7 @@ async function resolveConfigDir(repoPath) {
|
|
|
33142
33142
|
}
|
|
33143
33143
|
return null;
|
|
33144
33144
|
}
|
|
33145
|
+
var CONFIG_FOLDER_CANDIDATES = ["ai-coding", "claude-code-config", "ai-config"];
|
|
33145
33146
|
|
|
33146
33147
|
// src/lib/version.ts
|
|
33147
33148
|
import { readFileSync as readFileSync2 } from "fs";
|
|
@@ -33654,9 +33655,9 @@ async function setupCommand(params = {}) {
|
|
|
33654
33655
|
let repoPath = null;
|
|
33655
33656
|
try {
|
|
33656
33657
|
console.log(source_default.blue.bold(`
|
|
33657
|
-
\uD83D\uDE80 AIBlueprint
|
|
33658
|
+
\uD83D\uDE80 AIBlueprint AI Coding Setup ${source_default.gray(`v${getVersion()}`)}
|
|
33658
33659
|
`));
|
|
33659
|
-
console.log(source_default.bgBlue(" Setting up your
|
|
33660
|
+
console.log(source_default.bgBlue(" Setting up your AI coding environment "));
|
|
33660
33661
|
let features;
|
|
33661
33662
|
if (skipInteractive) {
|
|
33662
33663
|
features = [
|
|
@@ -33752,7 +33753,7 @@ async function setupCommand(params = {}) {
|
|
|
33752
33753
|
const sourceDir = await resolveConfigDir(repoPath);
|
|
33753
33754
|
if (!sourceDir) {
|
|
33754
33755
|
await cleanupRepository(repoPath);
|
|
33755
|
-
throw new Error("Configuration directory not found in cloned repository (looked for ai-
|
|
33756
|
+
throw new Error("Configuration directory not found in cloned repository (looked for ai-coding/, claude-code-config/, and ai-config/)");
|
|
33756
33757
|
}
|
|
33757
33758
|
s.stop("Repository cloned successfully");
|
|
33758
33759
|
if (options.shellShortcuts) {
|
|
@@ -35089,6 +35090,7 @@ import { promisify as promisify2 } from "util";
|
|
|
35089
35090
|
var execAsync2 = promisify2(exec3);
|
|
35090
35091
|
var PREMIUM_REPO = "Melvynx/aiblueprint-cli-premium";
|
|
35091
35092
|
var PREMIUM_BRANCH = "main";
|
|
35093
|
+
var CONFIG_FOLDER_CANDIDATES2 = ["ai-coding", "claude-code-config", "ai-config"];
|
|
35092
35094
|
function resolveBaseDir(relativePath, claudeDir, agentsDir) {
|
|
35093
35095
|
const firstSeg = relativePath.split(path13.sep)[0];
|
|
35094
35096
|
if (isAgentCategory(firstSeg)) {
|
|
@@ -35123,13 +35125,13 @@ async function cloneOrUpdateRepo(token) {
|
|
|
35123
35125
|
await import_fs_extra10.default.ensureDir(path13.dirname(cacheDir));
|
|
35124
35126
|
await execGitWithAuth(`clone ${repoUrl} ${cacheDir}`, token, repoUrl);
|
|
35125
35127
|
}
|
|
35126
|
-
for (const candidate of
|
|
35128
|
+
for (const candidate of CONFIG_FOLDER_CANDIDATES2) {
|
|
35127
35129
|
const candidatePath = path13.join(cacheDir, candidate);
|
|
35128
35130
|
if (await import_fs_extra10.default.pathExists(candidatePath)) {
|
|
35129
35131
|
return candidatePath;
|
|
35130
35132
|
}
|
|
35131
35133
|
}
|
|
35132
|
-
throw new Error("Premium repo missing config folder (ai-
|
|
35134
|
+
throw new Error("Premium repo missing config folder (ai-coding or claude-code-config)");
|
|
35133
35135
|
}
|
|
35134
35136
|
async function copyConfigFromCache(cacheConfigDir, claudeDir, agentsDir, onProgress) {
|
|
35135
35137
|
const walk = async (dir, baseDir = dir) => {
|
|
@@ -35216,7 +35218,7 @@ async function downloadDirectoryFromPrivateGitHub(repo, branch, dirPath, targetD
|
|
|
35216
35218
|
for (const file of files) {
|
|
35217
35219
|
const relativePath = dirPath ? `${dirPath}/${file.name}` : file.name;
|
|
35218
35220
|
const targetPath = path13.join(targetDir, file.name);
|
|
35219
|
-
const displayPath = relativePath.replace(
|
|
35221
|
+
const displayPath = relativePath.replace(/^(ai-coding|claude-code-config|ai-config)\//, "");
|
|
35220
35222
|
if (file.type === "file") {
|
|
35221
35223
|
onProgress?.(displayPath, "file");
|
|
35222
35224
|
await downloadFromPrivateGitHub(repo, branch, relativePath, targetPath, githubToken);
|
|
@@ -35247,7 +35249,7 @@ async function installProConfigs(options) {
|
|
|
35247
35249
|
const tempDir = path13.join(os13.tmpdir(), `aiblueprint-premium-${Date.now()}`);
|
|
35248
35250
|
try {
|
|
35249
35251
|
let success = false;
|
|
35250
|
-
for (const candidate of
|
|
35252
|
+
for (const candidate of CONFIG_FOLDER_CANDIDATES2) {
|
|
35251
35253
|
success = await downloadDirectoryFromPrivateGitHub(PREMIUM_REPO, PREMIUM_BRANCH, candidate, tempDir, githubToken, onProgress);
|
|
35252
35254
|
if (success)
|
|
35253
35255
|
break;
|
|
@@ -35457,7 +35459,7 @@ async function proActivateCommand(userToken) {
|
|
|
35457
35459
|
M2.info(`Product: ${data.product.title}`);
|
|
35458
35460
|
M2.info(`Token saved to: ${tokenInfo.path}`);
|
|
35459
35461
|
M2.info(source_default.cyan(`
|
|
35460
|
-
\uD83D\uDCA1 Next step: Run 'npx aiblueprint-cli@latest
|
|
35462
|
+
\uD83D\uDCA1 Next step: Run 'npx aiblueprint-cli@latest ai-coding pro setup' to install premium configs`));
|
|
35461
35463
|
trackEvent("pro-activate");
|
|
35462
35464
|
Se(source_default.green("✅ Activation complete!"));
|
|
35463
35465
|
} catch (error) {
|
|
@@ -35476,7 +35478,7 @@ async function proStatusCommand() {
|
|
|
35476
35478
|
const token = await getToken();
|
|
35477
35479
|
if (!token) {
|
|
35478
35480
|
M2.warn("No token found");
|
|
35479
|
-
M2.info("Run: npx aiblueprint-cli@latest
|
|
35481
|
+
M2.info("Run: npx aiblueprint-cli@latest ai-coding pro activate <token>");
|
|
35480
35482
|
M2.info("Get your token at: https://mlv.sh/claude-cli");
|
|
35481
35483
|
Se(source_default.yellow("⚠️ Not activated"));
|
|
35482
35484
|
process.exit(0);
|
|
@@ -35500,7 +35502,7 @@ async function proSetupCommand(options = {}) {
|
|
|
35500
35502
|
const githubToken = await getToken();
|
|
35501
35503
|
if (!githubToken) {
|
|
35502
35504
|
M2.error("No token found");
|
|
35503
|
-
M2.info("Run: npx aiblueprint-cli@latest
|
|
35505
|
+
M2.info("Run: npx aiblueprint-cli@latest ai-coding pro activate <token>");
|
|
35504
35506
|
Se(source_default.red("❌ Not activated"));
|
|
35505
35507
|
process.exit(1);
|
|
35506
35508
|
}
|
|
@@ -35570,7 +35572,7 @@ async function proUpdateCommand(options = {}) {
|
|
|
35570
35572
|
const githubToken = await getToken();
|
|
35571
35573
|
if (!githubToken) {
|
|
35572
35574
|
M2.error("No token found");
|
|
35573
|
-
M2.info("Run: npx aiblueprint-cli@latest
|
|
35575
|
+
M2.info("Run: npx aiblueprint-cli@latest ai-coding pro activate <token>");
|
|
35574
35576
|
Se(source_default.red("❌ Not activated"));
|
|
35575
35577
|
process.exit(1);
|
|
35576
35578
|
}
|
|
@@ -35605,6 +35607,7 @@ import path16 from "path";
|
|
|
35605
35607
|
import crypto from "crypto";
|
|
35606
35608
|
var PREMIUM_REPO2 = "Melvynx/aiblueprint-cli-premium";
|
|
35607
35609
|
var PREMIUM_BRANCH2 = "main";
|
|
35610
|
+
var CONFIG_FOLDER_CANDIDATES3 = ["ai-coding", "claude-code-config", "ai-config"];
|
|
35608
35611
|
function computeFileSha(content) {
|
|
35609
35612
|
const size = content.length;
|
|
35610
35613
|
const header = `blob ${size}\x00`;
|
|
@@ -35615,7 +35618,7 @@ var resolvedConfigFolder = null;
|
|
|
35615
35618
|
async function resolveRemoteConfigFolder(githubToken) {
|
|
35616
35619
|
if (resolvedConfigFolder)
|
|
35617
35620
|
return resolvedConfigFolder;
|
|
35618
|
-
for (const candidate of
|
|
35621
|
+
for (const candidate of CONFIG_FOLDER_CANDIDATES3) {
|
|
35619
35622
|
const apiUrl = `https://api.github.com/repos/${PREMIUM_REPO2}/contents/${candidate}?ref=${PREMIUM_BRANCH2}`;
|
|
35620
35623
|
const response = await fetch(apiUrl, {
|
|
35621
35624
|
headers: {
|
|
@@ -35628,8 +35631,8 @@ async function resolveRemoteConfigFolder(githubToken) {
|
|
|
35628
35631
|
return candidate;
|
|
35629
35632
|
}
|
|
35630
35633
|
}
|
|
35631
|
-
resolvedConfigFolder = "ai-
|
|
35632
|
-
return "ai-
|
|
35634
|
+
resolvedConfigFolder = "ai-coding";
|
|
35635
|
+
return "ai-coding";
|
|
35633
35636
|
}
|
|
35634
35637
|
async function listRemoteDirectory(dirPath, githubToken) {
|
|
35635
35638
|
const configFolder = await resolveRemoteConfigFolder(githubToken);
|
|
@@ -36077,7 +36080,7 @@ async function proSyncCommand(options = {}) {
|
|
|
36077
36080
|
const githubToken = await getToken();
|
|
36078
36081
|
if (!githubToken) {
|
|
36079
36082
|
M2.error("No token found");
|
|
36080
|
-
M2.info("Run: npx aiblueprint-cli@latest
|
|
36083
|
+
M2.info("Run: npx aiblueprint-cli@latest ai-coding pro activate <token>");
|
|
36081
36084
|
Se(source_default.red("❌ Not activated"));
|
|
36082
36085
|
process.exit(1);
|
|
36083
36086
|
}
|
|
@@ -36742,7 +36745,7 @@ async function executeScript(scriptName, claudeDir) {
|
|
|
36742
36745
|
const scriptsDir = path23.join(claudeDir, "scripts");
|
|
36743
36746
|
if (!await import_fs_extra18.default.pathExists(scriptsDir)) {
|
|
36744
36747
|
console.error(source_default.red(`Scripts directory not found at ${scriptsDir}`));
|
|
36745
|
-
console.log(source_default.gray("Run: aiblueprint
|
|
36748
|
+
console.log(source_default.gray("Run: aiblueprint ai-coding setup"));
|
|
36746
36749
|
return 1;
|
|
36747
36750
|
}
|
|
36748
36751
|
const packageJsonPath = path23.join(scriptsDir, "package.json");
|
|
@@ -36807,65 +36810,71 @@ import { homedir as homedir2 } from "os";
|
|
|
36807
36810
|
var __dirname3 = dirname3(fileURLToPath3(import.meta.url));
|
|
36808
36811
|
var packageJson = JSON.parse(readFileSync3(join2(__dirname3, "../package.json"), "utf8"));
|
|
36809
36812
|
var program2 = new Command;
|
|
36810
|
-
program2.name("aiblueprint").description("AIBlueprint CLI for setting up
|
|
36811
|
-
|
|
36812
|
-
|
|
36813
|
-
|
|
36814
|
-
|
|
36815
|
-
|
|
36816
|
-
|
|
36817
|
-
|
|
36818
|
-
|
|
36819
|
-
|
|
36813
|
+
program2.name("aiblueprint").description("AIBlueprint CLI for setting up AI coding configurations").version(packageJson.version);
|
|
36814
|
+
function registerAiCodingCommands(cmd) {
|
|
36815
|
+
cmd.option("-f, --folder <path>", "Specify custom Claude Code folder path (default: ~/.claude) - alias for --claudeCodeFolder").option("--claudeCodeFolder <path>", "Specify custom Claude Code folder path (default: ~/.claude)").option("--codexFolder <path>", "Specify custom Codex folder path (default: ~/.codex)").option("--openCodeFolder <path>", "Specify custom OpenCode folder path (default: ~/.config/opencode)").option("--factoryAiFolder <path>", "Specify custom FactoryAI folder path (default: ~/.factory)").option("--agentsFolder <path>", "Specify custom agents folder path (default: ~/.agents)").option("-s, --skip", "Skip interactive prompts and install all features");
|
|
36816
|
+
cmd.command("setup").description("Setup AI coding configuration with AIBlueprint defaults").action((options, command) => {
|
|
36817
|
+
const parentOptions = command.parent.opts();
|
|
36818
|
+
setupCommand({
|
|
36819
|
+
claudeCodeFolder: parentOptions.claudeCodeFolder || parentOptions.folder,
|
|
36820
|
+
codexFolder: parentOptions.codexFolder,
|
|
36821
|
+
openCodeFolder: parentOptions.openCodeFolder,
|
|
36822
|
+
agentsFolder: parentOptions.agentsFolder,
|
|
36823
|
+
skipInteractive: parentOptions.skip
|
|
36824
|
+
});
|
|
36820
36825
|
});
|
|
36821
|
-
|
|
36822
|
-
|
|
36823
|
-
|
|
36824
|
-
|
|
36825
|
-
|
|
36826
|
-
|
|
36826
|
+
cmd.command("setup-terminal").description("Setup terminal with Oh My ZSH, plugins, and a beautiful theme").action((options, command) => {
|
|
36827
|
+
const parentOptions = command.parent.opts();
|
|
36828
|
+
setupTerminalCommand({
|
|
36829
|
+
skipInteractive: parentOptions.skip,
|
|
36830
|
+
homeDir: parentOptions.claudeCodeFolder || parentOptions.folder
|
|
36831
|
+
});
|
|
36827
36832
|
});
|
|
36828
|
-
|
|
36829
|
-
|
|
36830
|
-
|
|
36831
|
-
|
|
36832
|
-
|
|
36833
|
-
|
|
36834
|
-
|
|
36835
|
-
|
|
36833
|
+
cmd.command("symlink").description("Create symlinks between different AI coding tools (Claude Code, Codex, OpenCode, FactoryAI)").action((options, command) => {
|
|
36834
|
+
const parentOptions = command.parent.opts();
|
|
36835
|
+
symlinkCommand({
|
|
36836
|
+
claudeCodeFolder: parentOptions.claudeCodeFolder || parentOptions.folder,
|
|
36837
|
+
codexFolder: parentOptions.codexFolder,
|
|
36838
|
+
openCodeFolder: parentOptions.openCodeFolder,
|
|
36839
|
+
factoryAiFolder: parentOptions.factoryAiFolder
|
|
36840
|
+
});
|
|
36836
36841
|
});
|
|
36837
|
-
|
|
36838
|
-
|
|
36839
|
-
|
|
36840
|
-
proActivateCommand(token);
|
|
36841
|
-
});
|
|
36842
|
-
proCmd.command("status").description("Check your Premium token status").action(() => {
|
|
36843
|
-
proStatusCommand();
|
|
36844
|
-
});
|
|
36845
|
-
proCmd.command("setup").description("Install premium configurations (requires activation)").action((options, command) => {
|
|
36846
|
-
const parentOptions = command.parent.parent.opts();
|
|
36847
|
-
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36848
|
-
proSetupCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36849
|
-
});
|
|
36850
|
-
proCmd.command("update").description("Update premium configurations").action((options, command) => {
|
|
36851
|
-
const parentOptions = command.parent.parent.opts();
|
|
36852
|
-
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36853
|
-
proUpdateCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36854
|
-
});
|
|
36855
|
-
proCmd.command("sync").description("Sync premium configurations with selective update").action((options, command) => {
|
|
36856
|
-
const parentOptions = command.parent.parent.opts();
|
|
36857
|
-
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36858
|
-
proSyncCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36859
|
-
});
|
|
36860
|
-
var backupCmd = claudeCodeCmd.command("backup").description("Manage Claude Code configuration backups");
|
|
36861
|
-
backupCmd.command("load").description("Load a previous backup interactively").action((options, command) => {
|
|
36862
|
-
const parentOptions = command.parent.parent.opts();
|
|
36863
|
-
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36864
|
-
backupLoadCommand({
|
|
36865
|
-
folder: claudeCodeFolder,
|
|
36866
|
-
agentsFolder: parentOptions.agentsFolder
|
|
36842
|
+
const proCmd = cmd.command("pro").description("Manage AIBlueprint CLI Premium features");
|
|
36843
|
+
proCmd.command("activate [token]").description("Activate AIBlueprint CLI Premium with your access token").action((token) => {
|
|
36844
|
+
proActivateCommand(token);
|
|
36867
36845
|
});
|
|
36868
|
-
|
|
36846
|
+
proCmd.command("status").description("Check your Premium token status").action(() => {
|
|
36847
|
+
proStatusCommand();
|
|
36848
|
+
});
|
|
36849
|
+
proCmd.command("setup").description("Install premium configurations (requires activation)").action((options, command) => {
|
|
36850
|
+
const parentOptions = command.parent.parent.opts();
|
|
36851
|
+
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36852
|
+
proSetupCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36853
|
+
});
|
|
36854
|
+
proCmd.command("update").description("Update premium configurations").action((options, command) => {
|
|
36855
|
+
const parentOptions = command.parent.parent.opts();
|
|
36856
|
+
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36857
|
+
proUpdateCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36858
|
+
});
|
|
36859
|
+
proCmd.command("sync").description("Sync premium configurations with selective update").action((options, command) => {
|
|
36860
|
+
const parentOptions = command.parent.parent.opts();
|
|
36861
|
+
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36862
|
+
proSyncCommand({ folder: claudeCodeFolder, agentsFolder: parentOptions.agentsFolder });
|
|
36863
|
+
});
|
|
36864
|
+
const backupCmd = cmd.command("backup").description("Manage AI coding configuration backups");
|
|
36865
|
+
backupCmd.command("load").description("Load a previous backup interactively").action((options, command) => {
|
|
36866
|
+
const parentOptions = command.parent.parent.opts();
|
|
36867
|
+
const claudeCodeFolder = parentOptions.claudeCodeFolder || parentOptions.folder;
|
|
36868
|
+
backupLoadCommand({
|
|
36869
|
+
folder: claudeCodeFolder,
|
|
36870
|
+
agentsFolder: parentOptions.agentsFolder
|
|
36871
|
+
});
|
|
36872
|
+
});
|
|
36873
|
+
}
|
|
36874
|
+
var aiCodingCmd = program2.command("ai-coding").description("AI coding configuration commands");
|
|
36875
|
+
registerAiCodingCommands(aiCodingCmd);
|
|
36876
|
+
var claudeCodeCmd = program2.command("claude-code").description("Legacy alias for ai-coding configuration commands");
|
|
36877
|
+
registerAiCodingCommands(claudeCodeCmd);
|
|
36869
36878
|
var agentsCmd = program2.command("agents").description("Manage AIBlueprint configurations under ~/.agents (with ~/.claude symlinks)").option("-f, --folder <path>", "Specify custom Claude Code folder path (default: ~/.claude) - alias for --claudeCodeFolder").option("--claudeCodeFolder <path>", "Specify custom Claude Code folder path (default: ~/.claude)").option("--agentsFolder <path>", "Specify custom agents folder path (default: ~/.agents)");
|
|
36870
36879
|
var agentsProCmd = agentsCmd.command("pro").description("Manage AIBlueprint CLI Premium features");
|
|
36871
36880
|
agentsProCmd.command("activate [token]").description("Activate AIBlueprint CLI Premium with your access token").action((token) => {
|
|
@@ -36918,6 +36927,7 @@ openclawProCmd.command("update").description("Update OpenClaw Pro configurations
|
|
|
36918
36927
|
});
|
|
36919
36928
|
try {
|
|
36920
36929
|
const claudeDir = join2(homedir2(), ".claude");
|
|
36930
|
+
await registerDynamicScriptCommands(aiCodingCmd, claudeDir);
|
|
36921
36931
|
await registerDynamicScriptCommands(claudeCodeCmd, claudeDir);
|
|
36922
36932
|
} catch (error) {
|
|
36923
36933
|
if (process.env.DEBUG) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiblueprint-cli",
|
|
3
|
-
"version": "1.4.
|
|
4
|
-
"description": "AIBlueprint CLI for setting up
|
|
3
|
+
"version": "1.4.51",
|
|
4
|
+
"description": "AIBlueprint CLI for setting up AI coding configurations",
|
|
5
5
|
"author": "AIBlueprint",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "bun build src/cli.ts --outdir dist --target node && chmod +x dist/cli.js",
|
|
17
17
|
"dev": "bun src/cli.ts",
|
|
18
|
-
"dev-test": "
|
|
18
|
+
"dev-test": "trash ./test-claude-config && bun src/cli.ts ai-coding -f ./test-claude-config --skip setup",
|
|
19
19
|
"test": "vitest",
|
|
20
20
|
"test:ui": "vitest --ui",
|
|
21
21
|
"test:watch": "vitest --watch",
|
|
@@ -47,10 +47,11 @@
|
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
49
49
|
"dist",
|
|
50
|
-
"ai-
|
|
50
|
+
"ai-coding"
|
|
51
51
|
],
|
|
52
52
|
"keywords": [
|
|
53
53
|
"claude",
|
|
54
|
+
"ai-coding",
|
|
54
55
|
"claude-code",
|
|
55
56
|
"aiblueprint",
|
|
56
57
|
"developer-tools"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{ai-config → ai-coding}/skills/prompt-creator/references/anthropic-best-practices.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{ai-config → ai-coding}/skills/skill-creator/references/progressive-disclosure-patterns.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{ai-config → ai-coding}/skills/subagent-creator/references/error-handling-and-recovery.md
RENAMED
|
File without changes
|
/package/{ai-config → ai-coding}/skills/subagent-creator/references/evaluation-and-testing.md
RENAMED
|
File without changes
|
/package/{ai-config → ai-coding}/skills/subagent-creator/references/orchestration-patterns.md
RENAMED
|
File without changes
|
|
File without changes
|
/package/{ai-config → ai-coding}/skills/subagent-creator/references/writing-subagent-prompts.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|