antenna-fyi 0.6.0 → 0.6.1

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.
Files changed (3) hide show
  1. package/README.md +2 -11
  2. package/lib/cli.js +35 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -64,22 +64,13 @@ mcp_servers:
64
64
 
65
65
  Hermes will auto-discover `mcp_antenna_scan`, `mcp_antenna_profile`, etc.
66
66
 
67
- ### Option 2: Plugin (full auto-scan)
67
+ ### Option 2: One-step install (Plugin + Skill + deps)
68
68
 
69
69
  ```bash
70
70
  antenna install-hermes
71
- cd ~/.hermes/hermes-agent && uv pip install supabase
72
71
  ```
73
72
 
74
- Restarts Hermes. The plugin registers tools + `pre_llm_call` hook for auto location detection.
75
-
76
- ### Option 3: Skill only
77
-
78
- ```bash
79
- antenna install-skill
80
- ```
81
-
82
- Copies SKILL.md to `~/.hermes/skills/antenna/`.
73
+ Done. Restart Hermes.
83
74
 
84
75
  ## OpenClaw Integration
85
76
 
package/lib/cli.js CHANGED
@@ -6,6 +6,7 @@ import { existsSync, mkdirSync, copyFileSync } from "fs";
6
6
  import { join, dirname } from "path";
7
7
  import { fileURLToPath } from "url";
8
8
  import { homedir } from "os";
9
+ import { execSync } from "child_process";
9
10
 
10
11
  const __filename = fileURLToPath(import.meta.url);
11
12
  const __dirname = dirname(__filename);
@@ -218,30 +219,51 @@ export function handleInstallPlugin() {
218
219
 
219
220
  export function handleInstallHermesPlugin() {
220
221
  const templateDir = join(__dirname, "hermes-plugin");
221
- const targetDir = join(homedir(), ".hermes", "plugins", "antenna");
222
- const files = ["plugin.yaml", "__init__.py", "schemas.py", "tools.py"];
222
+ const hermesHome = join(homedir(), ".hermes");
223
+ const pluginDir = join(hermesHome, "plugins", "antenna");
224
+ const skillDir = join(hermesHome, "skills", "antenna");
225
+ const skillSrc = join(__dirname, "..", "skill", "SKILL.md");
226
+ const pluginFiles = ["plugin.yaml", "__init__.py", "schemas.py", "tools.py"];
223
227
 
224
- if (!existsSync(join(homedir(), ".hermes"))) {
228
+ if (!existsSync(hermesHome)) {
225
229
  console.error("āŒ ~/.hermes not found. Is Hermes Agent installed?");
226
230
  console.error(" Install: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash");
227
231
  return;
228
232
  }
229
233
 
230
- if (!existsSync(targetDir)) mkdirSync(targetDir, { recursive: true });
231
-
232
- for (const file of files) {
234
+ // 1. Install Plugin
235
+ if (!existsSync(pluginDir)) mkdirSync(pluginDir, { recursive: true });
236
+ for (const file of pluginFiles) {
233
237
  const src = join(templateDir, file);
234
- const dest = join(targetDir, file);
238
+ const dest = join(pluginDir, file);
235
239
  if (existsSync(src)) {
236
240
  copyFileSync(src, dest);
237
- console.log(`šŸ“„ ${file}`);
241
+ console.log(`šŸ“„ Plugin: ${file}`);
242
+ }
243
+ }
244
+
245
+ // 2. Install Skill
246
+ if (!existsSync(skillDir)) mkdirSync(skillDir, { recursive: true });
247
+ copyFileSync(skillSrc, join(skillDir, "SKILL.md"));
248
+ console.log("šŸ“„ Skill: SKILL.md");
249
+
250
+ // 3. Auto-install supabase-py
251
+ console.log("\nšŸ“¦ Installing supabase-py...");
252
+ const hermesAgent = join(hermesHome, "hermes-agent");
253
+ try {
254
+ if (existsSync(hermesAgent)) {
255
+ execSync("uv pip install supabase", { cwd: hermesAgent, stdio: "inherit", timeout: 60_000 });
256
+ } else {
257
+ execSync("pip install supabase", { stdio: "inherit", timeout: 60_000 });
238
258
  }
259
+ console.log("āœ… supabase-py installed");
260
+ } catch {
261
+ console.log("āš ļø Could not auto-install supabase-py. Run manually:");
262
+ console.log(" cd ~/.hermes/hermes-agent && uv pip install supabase");
239
263
  }
240
264
 
241
- console.log("\nāœ… Hermes Plugin installed to ~/.hermes/plugins/antenna/");
242
- console.log(" Note: requires supabase-py. Run:");
243
- console.log(" cd ~/.hermes/hermes-agent && uv pip install supabase");
244
- console.log(" Then restart Hermes.");
265
+ console.log("\nāœ… Antenna installed for Hermes! (Plugin + Skill + deps)");
266
+ console.log(" Restart Hermes to activate.");
245
267
  console.log();
246
268
  }
247
269
 
@@ -259,7 +281,7 @@ Usage:
259
281
  antenna status Show config & status [--id telegram:123]
260
282
  antenna install-skill Install SKILL.md (detects OpenClaw + Hermes)
261
283
  antenna install-plugin Copy OpenClaw plugin template to cwd
262
- antenna install-hermes Install Hermes plugin to ~/.hermes/plugins/antenna/
284
+ antenna install-hermes One-step Hermes setup (Plugin + Skill + deps)
263
285
  antenna help Show this help
264
286
 
265
287
  Environment:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antenna-fyi",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Antenna — nearby people discovery. CLI + MCP server + OpenClaw skill & plugin, all in one package.",
5
5
  "type": "module",
6
6
  "bin": {