@hybridlabor-api/bdb-antigravity-skills 1.0.4 → 1.0.6
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 +10 -3
- package/installer.js +119 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -71,7 +71,14 @@ By combining the **140 Optimized Skills** with our **Custom MCPs**, we collapse
|
|
|
71
71
|
|
|
72
72
|
We support multiple installation methods depending on your environment. The installer will safely back up any existing skills, deploy the curated global/workspace skills, and configure your MCP settings.
|
|
73
73
|
|
|
74
|
-
### Option 1:
|
|
74
|
+
### Option 1: Autonomous AI Agent (The Easiest Way)
|
|
75
|
+
|
|
76
|
+
Simply give your AI agent the link to this repository and ask it to read the `agent.md` file. It will clone the repository, read the instructions, and autonomously run the installation process for you!
|
|
77
|
+
|
|
78
|
+
Prompt example:
|
|
79
|
+
> *"Please read the `agent.md` file in https://github.com/hybridlabor-api/bdb-dev-optimized-antigravity-skills and follow its instructions to install the skills in my workspace."*
|
|
80
|
+
|
|
81
|
+
### Option 2: Using NPM / NPX (Recommended for Node users)
|
|
75
82
|
|
|
76
83
|
You can run the installer directly without downloading the repository using `npx`:
|
|
77
84
|
|
|
@@ -86,7 +93,7 @@ npm install -g @hybridlabor-api/bdb-antigravity-skills
|
|
|
86
93
|
bdb-skills
|
|
87
94
|
```
|
|
88
95
|
|
|
89
|
-
### Option
|
|
96
|
+
### Option 3: Using Homebrew (macOS)
|
|
90
97
|
|
|
91
98
|
If you are on a Mac and prefer Homebrew, you can install the package directly:
|
|
92
99
|
|
|
@@ -96,7 +103,7 @@ brew install bdb-skills
|
|
|
96
103
|
bdb-skills
|
|
97
104
|
```
|
|
98
105
|
|
|
99
|
-
### Option
|
|
106
|
+
### Option 4: Manual Shell Script
|
|
100
107
|
|
|
101
108
|
Clone the repository and run the installer script:
|
|
102
109
|
|
package/installer.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const readline = require('readline');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
|
|
8
|
+
console.log("=========================================================");
|
|
9
|
+
console.log(" Starting BDB Optimized Antigravity Skills Installation");
|
|
10
|
+
console.log("=========================================================");
|
|
11
|
+
|
|
12
|
+
const rl = readline.createInterface({
|
|
13
|
+
input: process.stdin,
|
|
14
|
+
output: process.stdout
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const homeDir = os.homedir();
|
|
18
|
+
const currentDir = process.cwd();
|
|
19
|
+
const scriptDir = __dirname;
|
|
20
|
+
|
|
21
|
+
let srcDir = scriptDir;
|
|
22
|
+
if (!fs.existsSync(path.join(srcDir, 'skills')) && fs.existsSync(path.join(srcDir, '..', 'skills'))) {
|
|
23
|
+
srcDir = path.join(scriptDir, '..');
|
|
24
|
+
} else if (!fs.existsSync(path.join(srcDir, 'skills'))) {
|
|
25
|
+
console.error("Error: Cannot find skills payload directory.");
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const geminiDir = path.join(homeDir, '.gemini');
|
|
30
|
+
const globalConfigDir = path.join(geminiDir, 'config', 'skills');
|
|
31
|
+
const globalLegacyDir = path.join(geminiDir, 'skills');
|
|
32
|
+
const workspaceDir = path.join(currentDir, '.agents', 'skills');
|
|
33
|
+
|
|
34
|
+
// Format timestamp like YYYYMMDD_HHMMSS
|
|
35
|
+
const now = new Date();
|
|
36
|
+
const timestamp = now.getFullYear().toString() +
|
|
37
|
+
(now.getMonth()+1).toString().padStart(2, '0') +
|
|
38
|
+
now.getDate().toString().padStart(2, '0') + "_" +
|
|
39
|
+
now.getHours().toString().padStart(2, '0') +
|
|
40
|
+
now.getMinutes().toString().padStart(2, '0') +
|
|
41
|
+
now.getSeconds().toString().padStart(2, '0');
|
|
42
|
+
|
|
43
|
+
const backupDir = path.join(geminiDir, `skills_backup_${timestamp}`);
|
|
44
|
+
|
|
45
|
+
console.log(`Creating backup of current skills in ${backupDir}...`);
|
|
46
|
+
fs.mkdirSync(backupDir, { recursive: true });
|
|
47
|
+
|
|
48
|
+
function moveIfExists(src, dest, label) {
|
|
49
|
+
if (fs.existsSync(src)) {
|
|
50
|
+
fs.renameSync(src, dest);
|
|
51
|
+
console.log(` -> Backed up ${label}.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
moveIfExists(globalConfigDir, path.join(backupDir, 'config_skills_backup'), 'global config skills');
|
|
56
|
+
moveIfExists(globalLegacyDir, path.join(backupDir, 'legacy_skills_backup'), 'global legacy skills');
|
|
57
|
+
moveIfExists(workspaceDir, path.join(backupDir, 'workspace_skills_backup'), 'workspace skills');
|
|
58
|
+
|
|
59
|
+
console.log("\nInstalling optimized skills (140 curated skills)...");
|
|
60
|
+
|
|
61
|
+
fs.mkdirSync(globalConfigDir, { recursive: true });
|
|
62
|
+
fs.mkdirSync(globalLegacyDir, { recursive: true });
|
|
63
|
+
fs.mkdirSync(workspaceDir, { recursive: true });
|
|
64
|
+
|
|
65
|
+
function copyDirRecursiveSync(source, target) {
|
|
66
|
+
if (!fs.existsSync(source)) return;
|
|
67
|
+
if (!fs.existsSync(target)) fs.mkdirSync(target, { recursive: true });
|
|
68
|
+
|
|
69
|
+
const files = fs.readdirSync(source);
|
|
70
|
+
files.forEach(file => {
|
|
71
|
+
const curSource = path.join(source, file);
|
|
72
|
+
const curTarget = path.join(target, file);
|
|
73
|
+
if (fs.lstatSync(curSource).isDirectory()) {
|
|
74
|
+
copyDirRecursiveSync(curSource, curTarget);
|
|
75
|
+
} else {
|
|
76
|
+
fs.copyFileSync(curSource, curTarget);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
copyDirRecursiveSync(path.join(srcDir, 'skills', 'global_config'), globalConfigDir);
|
|
82
|
+
console.log(" -> Installed global config skills.");
|
|
83
|
+
|
|
84
|
+
copyDirRecursiveSync(path.join(srcDir, 'skills', 'global_legacy'), globalLegacyDir);
|
|
85
|
+
console.log(" -> Installed global legacy skills.");
|
|
86
|
+
|
|
87
|
+
copyDirRecursiveSync(path.join(srcDir, 'skills', 'workspace_agents'), workspaceDir);
|
|
88
|
+
console.log(" -> Installed workspace skills.");
|
|
89
|
+
|
|
90
|
+
console.log("");
|
|
91
|
+
const geminiMdSrc = path.join(srcDir, 'GEMINI.md');
|
|
92
|
+
if (fs.existsSync(geminiMdSrc)) {
|
|
93
|
+
fs.copyFileSync(geminiMdSrc, path.join(geminiDir, 'GEMINI.md'));
|
|
94
|
+
console.log(` -> Installed GEMINI.md to ${path.join(geminiDir, 'GEMINI.md')}`);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
console.log("");
|
|
98
|
+
rl.question("Do you also want to install the MCP Pack (Unreal, Rhino, Resolve, Grandma3, Resolume, Github, Chrome DevTools)? (y/n): ", function(answer) {
|
|
99
|
+
if (answer.toLowerCase().startsWith('y')) {
|
|
100
|
+
const configDir = path.join(geminiDir, 'config');
|
|
101
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
102
|
+
|
|
103
|
+
const mcpTarget = path.join(configDir, 'mcp_config.json');
|
|
104
|
+
if (fs.existsSync(mcpTarget)) {
|
|
105
|
+
fs.copyFileSync(mcpTarget, path.join(backupDir, 'mcp_config_backup.json'));
|
|
106
|
+
console.log(" -> Backed up existing mcp_config.json");
|
|
107
|
+
}
|
|
108
|
+
fs.copyFileSync(path.join(srcDir, 'mcp_config.json'), mcpTarget);
|
|
109
|
+
console.log(` -> Installed optimized mcp_config.json to ${configDir}`);
|
|
110
|
+
} else {
|
|
111
|
+
console.log(" -> Skipping MCP installation.");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
console.log("=========================================================");
|
|
115
|
+
console.log(" Installation complete! The environment now has the ");
|
|
116
|
+
console.log(" optimized skill configuration.");
|
|
117
|
+
console.log("=========================================================");
|
|
118
|
+
rl.close();
|
|
119
|
+
});
|
package/package.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hybridlabor-api/bdb-antigravity-skills",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Optimized Antigravity skills and MCP pack for BDB DEV",
|
|
5
|
-
"main": "installer.
|
|
5
|
+
"main": "installer.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"bdb-skills": "./installer.
|
|
7
|
+
"bdb-skills": "./installer.js"
|
|
8
8
|
},
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
13
|
"installer.sh",
|
|
14
|
+
"installer.js",
|
|
14
15
|
"mcp_config.json",
|
|
15
16
|
"GEMINI.md",
|
|
16
17
|
"skilloverview.html",
|