gsd-antigravity-kit 1.32.1 → 2.0.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.
@@ -1,6 +1,6 @@
1
1
  # GSD Migration Report
2
2
 
3
- - **Timestamp**: 2026-04-08T07:01:26.026612
3
+ - **Timestamp**: 2026-04-08T07:18:24.858917
4
4
  - **Version**: 1.34.2 -> 1.34.2
5
5
  - **Skill Name**: gsd
6
6
 
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
  [![Antigravity Compatible](https://img.shields.io/badge/Antigravity-Compatible-purple.svg?logo=google&logoColor=white)](https://github.com/google-deepmind/antigravity)
5
5
  [![NPM Version](https://img.shields.io/npm/v/gsd-antigravity-kit.svg?logo=npm)](https://www.npmjs.com/package/gsd-antigravity-kit)
6
- [![Release Version](https://img.shields.io/badge/Release-v1.32.1-blue?style=flat-square)](https://github.com/dturkuler/GSD-Antigravity/releases/latest)
6
+ [![Release Version](https://img.shields.io/badge/Release-v2.0.0-blue?style=flat-square)](https://github.com/dturkuler/GSD-Antigravity/releases/latest)
7
7
  [![GSD Version](https://img.shields.io/badge/gsd-v1.34.2-orange?style=flat-square)](https://github.com/glittercowboy/get-shit-done)
8
8
 
9
9
  **GSD-Antigravity Kit** is the official bootstrapping and management utility for the [Get Shit Done (GSD)](https://github.com/glittercowboy/get-shit-done) protocol within the Antigravity AI framework. It serves as a high-performance **Installer** and **Skill Manager** that provision, optimizes, and maintains GSD skills in your AG environment.
@@ -104,3 +104,4 @@ The core logic, philosophy, and original script engine were created by **[glitte
104
104
 
105
105
 
106
106
 
107
+
package/bin/install.js ADDED
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const readline = require('readline');
6
+ const { execSync } = require('child_process');
7
+
8
+ const rl = readline.createInterface({
9
+ input: process.stdin,
10
+ output: process.stdout
11
+ });
12
+
13
+ const ask = (query) => new Promise((resolve) => rl.question(query, (ans) => resolve(ans.toLowerCase().trim())));
14
+
15
+ async function install() {
16
+ const targetDir = process.cwd();
17
+ const sourceAgentDir = path.join(__dirname, '..', '.agent');
18
+ const skillsSourceDir = path.join(sourceAgentDir, 'skills');
19
+
20
+ // Skills to check/install
21
+ const skillNames = ['gsd', 'gsd-converter'];
22
+ const targetSkillsDir = path.join(targetDir, '.agent', 'skills');
23
+
24
+ console.log('\n🌌 GSD-Antigravity Skill System Installer\n');
25
+
26
+ try {
27
+ // 1. Check for existing skills
28
+ const existing = [];
29
+ for (const name of skillNames) {
30
+ if (fs.existsSync(path.join(targetSkillsDir, name))) {
31
+ existing.push(name);
32
+ }
33
+ }
34
+
35
+ if (existing.length > 0) {
36
+ console.log(`⚠️ Detected existing skills in .agent/skills/: ${existing.join(', ')}`);
37
+ const confirmRemove = await ask(`Do you want to REMOVE existing skills and perform a fresh install? (y/n): `);
38
+ if (confirmRemove === 'y') {
39
+ for (const name of existing) {
40
+ const p = path.join(targetSkillsDir, name);
41
+ console.log(` 🗑️ Removing ${name}...`);
42
+ fs.rmSync(p, { recursive: true, force: true });
43
+ }
44
+ } else {
45
+ console.log(' ⏩ Skipping removal. New files will be merged/overwritten.');
46
+ }
47
+ }
48
+
49
+ // 2. Interactive Installation Selection
50
+ const installGsd = await ask(`Install GSD skill? (y/n) [default: y]: `);
51
+ const installConverter = await ask(`Install GSD-Converter skill? (y/n) [default: y]: `);
52
+
53
+ const selection = {
54
+ 'gsd': installGsd !== 'n',
55
+ 'gsd-converter': installConverter !== 'n'
56
+ };
57
+
58
+ // 3. Perform Installation
59
+ if (!fs.existsSync(targetSkillsDir)) {
60
+ fs.mkdirSync(targetSkillsDir, { recursive: true });
61
+ }
62
+
63
+ // Also copy rules if they exist
64
+ const sourceRulesDir = path.join(sourceAgentDir, 'rules');
65
+ const targetRulesDir = path.join(targetDir, '.agent', 'rules');
66
+ if (fs.existsSync(sourceRulesDir)) {
67
+ copyFolderSync(sourceRulesDir, targetRulesDir);
68
+ }
69
+
70
+ let installedCount = 0;
71
+ for (const [name, shouldInstall] of Object.entries(selection)) {
72
+ if (shouldInstall) {
73
+ const src = path.join(skillsSourceDir, name);
74
+ const tgt = path.join(targetSkillsDir, name);
75
+ if (fs.existsSync(src)) {
76
+ console.log(`📦 Installing ${name}...`);
77
+ copyFolderSync(src, tgt);
78
+ installedCount++;
79
+ }
80
+ }
81
+ }
82
+
83
+ if (installedCount > 0) {
84
+ console.log('\n✅ Installation completed successfully.');
85
+ if (selection['gsd-converter']) {
86
+ console.log('\n✨ To initialize the GSD engine, run:');
87
+ console.log(' py .agent/skills/gsd-converter/scripts/convert.py gsd\n');
88
+ }
89
+ } else {
90
+ console.log('\nℹ️ No skills were selected for installation.');
91
+ }
92
+
93
+ } catch (err) {
94
+ console.error('\n❌ Installation failed:', err.message);
95
+ } finally {
96
+ rl.close();
97
+ }
98
+ }
99
+
100
+ function copyFolderSync(from, to) {
101
+ if (!fs.existsSync(to)) {
102
+ fs.mkdirSync(to, { recursive: true });
103
+ }
104
+ fs.readdirSync(from).forEach(element => {
105
+ const srcPath = path.join(from, element);
106
+ const tgtPath = path.join(to, element);
107
+ const stat = fs.lstatSync(srcPath);
108
+ if (stat.isFile()) {
109
+ fs.copyFileSync(srcPath, tgtPath);
110
+ } else if (stat.isDirectory()) {
111
+ copyFolderSync(srcPath, tgtPath);
112
+ }
113
+ });
114
+ }
115
+
116
+ install();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-antigravity-kit",
3
- "version": "1.32.1",
3
+ "version": "2.0.0",
4
4
  "description": "Installer for GSD-Antigravity skills",
5
5
  "main": "index.js",
6
6
  "files": [