antenna-openclaw-plugin 1.2.2 → 1.2.5

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/index.ts CHANGED
@@ -642,6 +642,8 @@ export default function register(api: any) {
642
642
  lng: { type: "number", description: "Event longitude" },
643
643
  starts_at: { type: "string", description: "Start time ISO" },
644
644
  ends_at: { type: "string", description: "End time ISO" },
645
+ description: { type: "string", description: "Event description" },
646
+ og_image: { type: "string", description: "OG image URL for social sharing" },
645
647
  },
646
648
  required: ["name", "sender_id", "channel"],
647
649
  },
@@ -656,6 +658,36 @@ export default function register(api: any) {
656
658
  p_created_by: deviceId,
657
659
  p_starts_at: params.starts_at || new Date().toISOString(),
658
660
  p_ends_at: params.ends_at || new Date(Date.now() + 12*60*60*1000).toISOString(),
661
+ p_description: params.description || null,
662
+ p_og_image: params.og_image || null,
663
+ });
664
+ if (error) return ok({ error: error.message });
665
+ return ok(data);
666
+ },
667
+ });
668
+
669
+ // ═════════════════════════════════════════════════════════════════
670
+ // Tool: antenna_event_end
671
+ // ═════════════════════════════════════════════════════════════════
672
+ api.registerTool({
673
+ name: "antenna_event_end",
674
+ description: "End an event. Only the creator can end it.",
675
+ parameters: {
676
+ type: "object",
677
+ properties: {
678
+ code: { type: "string", description: "Event code" },
679
+ sender_id: { type: "string" },
680
+ channel: { type: "string" },
681
+ },
682
+ required: ["code", "sender_id", "channel"],
683
+ },
684
+ async execute(_id: string, params: any) {
685
+ const cfg = getConfig(api);
686
+ const supabase = getSupabase(cfg);
687
+ const deviceId = deriveDeviceId(params.sender_id, params.channel);
688
+ const { data, error } = await supabase.rpc("end_event", {
689
+ p_code: params.code,
690
+ p_device_id: deviceId,
659
691
  });
660
692
  if (error) return ok({ error: error.message });
661
693
  return ok(data);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antenna-openclaw-plugin",
3
- "version": "1.2.2",
3
+ "version": "1.2.5",
4
4
  "description": "Antenna — agent-mediated nearby people discovery for OpenClaw",
5
5
  "openclaw": {
6
6
  "extensions": ["./index.ts"]
@@ -66,11 +66,12 @@ cron 设完后,问用户一句:
66
66
  ## Tools
67
67
 
68
68
  ### `antenna_scan`
69
- Scan for nearby people. Returns **raw profile cards** no scores, no pre-matching. **You are the matching engine.**
69
+ Scan for nearby people **and events**. Returns raw profile cards + active events within 5km.
70
70
  - `lat`, `lng`: coordinates (from `LocationLat`/`LocationLon` context, or geocoded from user input)
71
- - `radius_m`: search radius in meters (default 500, max 1000)
71
+ - `radius_m`: search radius in meters (default 500, max 1000) for people; events search uses 5km
72
72
  - `sender_id`: the user's id from message context
73
73
  - `channel`: the channel name (telegram, whatsapp, discord, etc.)
74
+ - Returns `profiles` (nearby people) + `nearby_events` (active events with name, participants count, code)
74
75
 
75
76
  After receiving the nearby profiles, **you decide** who to recommend:
76
77
  - Use everything you know about the user: their SOUL.md, memory, recent conversations, interests, current mood
@@ -122,6 +123,20 @@ Get today's global recommendation — the person most similar to you worldwide.
122
123
  - If all users have been recommended, returns a message saying "wait for new people"
123
124
  - Use this in the daily cron job, or when user asks "find someone interesting globally"
124
125
 
126
+ ### `antenna_pass`
127
+ Pass/skip a person. They won't be recommended again.
128
+ - `sender_id`, `channel`: from context
129
+ - `ref`: ref number from scan/discover results (e.g. '1')
130
+ - `target_device_id`: device ID (use ref instead when possible)
131
+ - Use when the user says "skip", "pass", "not interested", etc.
132
+
133
+ ### `antenna_checkin`
134
+ Check in at a location — update your position so others can find you when they scan.
135
+ - `lat`, `lng`: coordinates (required)
136
+ - `sender_id`, `channel`: from context
137
+ - `place_name`: optional name of the place
138
+ - Use when the user says "I'm at XX" or wants to be discoverable without scanning others
139
+
125
140
  ## Data Transparency — what Antenna sends
126
141
 
127
142
  Antenna only communicates with Supabase (bcudjloikmpcqwcptuyd.supabase.co) via HTTPS.
@@ -264,6 +279,13 @@ Create an event. Returns a shareable link (antenna.fyi/e/CODE).
264
279
  - `sender_id`, `channel`: from context
265
280
  - `lat`, `lng`: optional event location
266
281
  - `starts_at`, `ends_at`: optional time range (default: now to +12h)
282
+ - `description`: optional event description
283
+ - `og_image`: optional OG image URL for social sharing preview
284
+
285
+ ### `antenna_event_end`
286
+ End an event. Only the creator can end it.
287
+ - `code`: event code
288
+ - `sender_id`, `channel`: from context
267
289
 
268
290
  ### `antenna_event_join`
269
291
  Join an event by code.