antenna-openclaw-plugin 1.2.7 → 1.2.8
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 +28 -0
- package/package.json +1 -1
- package/skills/antenna/SKILL.md +8 -0
package/index.ts
CHANGED
|
@@ -825,6 +825,34 @@ export default function register(api: any) {
|
|
|
825
825
|
},
|
|
826
826
|
});
|
|
827
827
|
|
|
828
|
+
// Tool: antenna_event_upload_image
|
|
829
|
+
// ═════════════════════════════════════════════════════════════════
|
|
830
|
+
api.registerTool({
|
|
831
|
+
name: "antenna_event_upload_image",
|
|
832
|
+
description: "Upload an image for an event OG preview. Returns a public URL.",
|
|
833
|
+
parameters: {
|
|
834
|
+
type: "object",
|
|
835
|
+
properties: {
|
|
836
|
+
image_base64: { type: "string", description: "Base64-encoded image data" },
|
|
837
|
+
content_type: { type: "string", description: "MIME type (default image/png)" },
|
|
838
|
+
event_code: { type: "string", description: "Event code" },
|
|
839
|
+
},
|
|
840
|
+
required: ["image_base64", "event_code"],
|
|
841
|
+
},
|
|
842
|
+
async execute(_id: string, params: any) {
|
|
843
|
+
const cfg = getConfig(api);
|
|
844
|
+
const supabase = getSupabase(cfg);
|
|
845
|
+
const content_type = params.content_type || "image/png";
|
|
846
|
+
const ext = content_type.split("/")[1] || "png";
|
|
847
|
+
const path = `${params.event_code}.${ext}`;
|
|
848
|
+
const buf = Buffer.from(params.image_base64, "base64");
|
|
849
|
+
const { error } = await supabase.storage.from("event-images").upload(path, buf, { contentType: content_type, upsert: true });
|
|
850
|
+
if (error) return ok({ error: error.message });
|
|
851
|
+
const { data } = supabase.storage.from("event-images").getPublicUrl(path);
|
|
852
|
+
return ok({ url: data.publicUrl });
|
|
853
|
+
},
|
|
854
|
+
});
|
|
855
|
+
|
|
828
856
|
// Tool: antenna_check_matches
|
|
829
857
|
// ═══════════════════════════════════════════════════════════════════
|
|
830
858
|
api.registerTool({
|
package/package.json
CHANGED
package/skills/antenna/SKILL.md
CHANGED
|
@@ -282,6 +282,8 @@ Create an event. Returns a shareable link (antenna.fyi/e/CODE).
|
|
|
282
282
|
- `description`: optional event description
|
|
283
283
|
- `og_image`: optional OG image URL for social sharing preview
|
|
284
284
|
|
|
285
|
+
**GPS flow for events:** If the user doesn't provide coordinates, generate a bind link (`antenna_bind`) and ask them to open it at the event location. Once GPS comes in, use those coordinates for `lat`/`lng`. Don't use profile location — the user may create an event at a different place.
|
|
286
|
+
|
|
285
287
|
### `antenna_event_end`
|
|
286
288
|
End an event. Only the creator can end it.
|
|
287
289
|
- `code`: event code
|
|
@@ -303,3 +305,9 @@ Check in at an event — marks you as present at the event location. Optionally
|
|
|
303
305
|
- `code`: event code
|
|
304
306
|
- `sender_id`, `channel`: from context
|
|
305
307
|
- `lat`, `lng`: optional GPS coordinates
|
|
308
|
+
|
|
309
|
+
### `antenna_event_upload_image`
|
|
310
|
+
Upload an image for an event OG preview. Returns a public URL.
|
|
311
|
+
- `image_base64`: base64-encoded image data
|
|
312
|
+
- `content_type`: MIME type (default image/png)
|
|
313
|
+
- `event_code`: event code
|