antigravity-seo-kit 3.1.5 → 3.9.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/lib/installer.js CHANGED
@@ -110,6 +110,14 @@ async function install(licenseKey, cwd) {
110
110
  }
111
111
 
112
112
  // Step 4: Save license info + manifest
113
+ const installedEnvExample = fs.existsSync(path.join(newAgentsDir, '.env.example'))
114
+ ? path.join(newAgentsDir, '.env.example')
115
+ : path.join(cwd, '.agent', '.env.example');
116
+ const localEnvExample = path.join(cwd, '.env.example');
117
+ if (fs.existsSync(installedEnvExample) && !fs.existsSync(localEnvExample)) {
118
+ fs.copyFileSync(installedEnvExample, localEnvExample);
119
+ }
120
+
113
121
  writeLicenseFile(cwd, {
114
122
  key: licenseKey,
115
123
  deviceId,
@@ -518,10 +526,20 @@ async function installPlugin(licenseKey) {
518
526
  const dest = path.join(globalPluginDir, entry);
519
527
  if (fs.statSync(src).isDirectory()) {
520
528
  if (fs.existsSync(dest)) removeRecursive(dest);
521
- fs.renameSync(src, dest);
529
+ try {
530
+ fs.renameSync(src, dest);
531
+ } catch (err) {
532
+ copyRecursive(src, dest, { overwrite: true });
533
+ removeRecursive(src);
534
+ }
522
535
  } else {
523
536
  if (fs.existsSync(dest)) fs.unlinkSync(dest);
524
- fs.renameSync(src, dest);
537
+ try {
538
+ fs.renameSync(src, dest);
539
+ } catch (err) {
540
+ fs.copyFileSync(src, dest);
541
+ fs.unlinkSync(src);
542
+ }
525
543
  }
526
544
  }
527
545
 
@@ -624,6 +642,13 @@ function setupWorkspace(cwd) {
624
642
  fs.copyFileSync(globalLicense, localLicense);
625
643
  }
626
644
 
645
+ // Copy .env.example to workspace root if not exists
646
+ const globalEnvExample = path.join(globalDir, '.env.example');
647
+ const localEnvExample = path.join(cwd, '.env.example');
648
+ if (fs.existsSync(globalEnvExample) && !fs.existsSync(localEnvExample)) {
649
+ fs.copyFileSync(globalEnvExample, localEnvExample);
650
+ }
651
+
627
652
  spin.succeed(`Workspace setup complete! Copied ${count} files to .agents/`);
628
653
  console.log('');
629
654
  info('Skills and rules are loaded from global plugin automatically.');
package/lib/utils.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('fs');
4
4
  const path = require('path');
5
+ const pkg = require('../package.json');
5
6
 
6
7
  // ─── ANSI Colors ────────────────────────────────────────────────────────────
7
8
 
@@ -290,7 +291,7 @@ function isValidKeyFormat(key) {
290
291
  const BANNER = `
291
292
  ${colorize('cyan', '╔═══════════════════════════════════════════════════════╗')}
292
293
  ${colorize('cyan', '║')} ${colorize('bold', '🔍 SEO Kit for Google Antigravity')} ${colorize('cyan', '║')}
293
- ${colorize('cyan', '║')} ${colorize('dim', 'v3.0.0 — Professional Agentic SEO Platform')} ${colorize('cyan', '║')}
294
+ ${colorize('cyan', '║')} ${colorize('dim', `v${pkg.version} — Professional Agentic SEO Platform`)} ${colorize('cyan', '║')}
294
295
  ${colorize('cyan', '╚═══════════════════════════════════════════════════════╝')}
295
296
  `;
296
297
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antigravity-seo-kit",
3
- "version": "3.1.5",
3
+ "version": "3.9.0",
4
4
  "description": "Professional Agentic SEO Platform for Google Antigravity 2 AI Agent — 44 specialized skills covering technical audit, E-E-A-T, schema, GEO, local SEO & more",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {