antenna-fyi 1.3.16 → 1.3.17

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/lib/core.js +18 -18
  2. package/lib/mcp.js +5 -5
  3. package/package.json +1 -1
package/lib/core.js CHANGED
@@ -106,9 +106,9 @@ export async function scan({ lat, lng, radius_m = 500, device_id, supabaseUrl, s
106
106
  ref,
107
107
  name: p.display_name || "匿名",
108
108
  emoji: p.emoji || "👤",
109
- line1: p.line1,
110
- line2: p.line2,
111
- line3: p.line3,
109
+ personal_description: p.line1,
110
+ looking_for: p.line2,
111
+ conversation_style: p.line3,
112
112
  distance_m: p.distance_m ?? p.dist_meters ?? null,
113
113
  };
114
114
  });
@@ -185,9 +185,9 @@ export async function scan({ lat, lng, radius_m = 500, device_id, supabaseUrl, s
185
185
 
186
186
  export const PROFILE_FIELDS = {
187
187
  display_name: { label: "显示名称", description: "How you want to be called" },
188
- line1: { label: "个人描述", description: "Who you are and what you do", maxLength: 220, required: true },
189
- line2: { label: "想认识的人", description: "The kind of people you want to meet", maxLength: 140 },
190
- line3: { label: "想要的交流方式", description: "The type of conversations you want", maxLength: 160 },
188
+ personal_description: { label: "个人描述", description: "Who you are and what you do", maxLength: 220, required: true },
189
+ looking_for: { label: "想认识的人", description: "The kind of people you want to meet", maxLength: 140 },
190
+ conversation_style: { label: "想要的交流方式", description: "The type of conversations you want", maxLength: 160 },
191
191
  matching_context: { label: "匹配上下文", description: "Agent-generated rich context for better matching (not shown to others)", maxLength: 1000 },
192
192
  interest_tags: { label: "兴趣标签", description: "Interest/topic tags shown on the card (up to 8)", maxItems: 8 },
193
193
  city: { label: "国家/地区", description: "Country or region" },
@@ -418,9 +418,9 @@ export async function checkMatches({ device_id, supabaseUrl, supabaseKey }) {
418
418
  _device_id: m.target_id,
419
419
  name: m.name || "匿名",
420
420
  emoji: m.emoji || "👤",
421
- line1: m.line1,
422
- line2: m.line2,
423
- line3: m.line3,
421
+ personal_description: m.line1,
422
+ looking_for: m.line2,
423
+ conversation_style: m.line3,
424
424
  their_contact: m.their_contact || null,
425
425
  you_shared: m.you_shared || null,
426
426
  }));
@@ -431,9 +431,9 @@ export async function checkMatches({ device_id, supabaseUrl, supabaseKey }) {
431
431
  _device_id: m.target_id,
432
432
  name: m.name || "匿名",
433
433
  emoji: m.emoji || "👤",
434
- line1: m.line1,
435
- line2: m.line2,
436
- line3: m.line3,
434
+ personal_description: m.line1,
435
+ looking_for: m.line2,
436
+ conversation_style: m.line3,
437
437
  }));
438
438
 
439
439
  const messages = [];
@@ -503,9 +503,9 @@ export async function discover({ device_id, supabaseUrl, supabaseKey }) {
503
503
  ref,
504
504
  name: p.display_name || "匿名",
505
505
  emoji: p.emoji || "👤",
506
- line1: p.line1,
507
- line2: p.line2,
508
- line3: p.line3,
506
+ personal_description: p.line1,
507
+ looking_for: p.line2,
508
+ conversation_style: p.line3,
509
509
  match_reason: reason,
510
510
  });
511
511
  }
@@ -694,9 +694,9 @@ export async function eventScan({ code, device_id, supabaseUrl, supabaseKey }) {
694
694
  ref,
695
695
  name: p.display_name || "匿名",
696
696
  emoji: p.emoji || "👤",
697
- line1: p.line1,
698
- line2: p.line2,
699
- line3: p.line3,
697
+ personal_description: p.line1,
698
+ looking_for: p.line2,
699
+ conversation_style: p.line3,
700
700
  checked_in: !!p.checked_in,
701
701
  role: p.role || "participant",
702
702
  status: p.status || "active",
package/lib/mcp.js CHANGED
@@ -111,9 +111,9 @@ export async function startMcpServer() {
111
111
  sender_id: z.string().describe("The sender's user ID"),
112
112
  channel: z.string().describe("Channel name"),
113
113
  display_name: z.string().optional().describe("Display name"),
114
- line1: z.string().optional().describe("Personal description — who you are and what you do (max 220 chars)"),
115
- line2: z.string().optional().describe("Looking for — the kind of people you want to meet (max 140 chars)"),
116
- line3: z.string().optional().describe("Conversation style — the type of conversations you want (max 160 chars)"),
114
+ personal_description: z.string().optional().describe("Personal description — who you are and what you do (max 220 chars)"),
115
+ looking_for: z.string().optional().describe("Looking for — the kind of people you want to meet (max 140 chars)"),
116
+ conversation_style: z.string().optional().describe("Conversation style — the type of conversations you want (max 160 chars)"),
117
117
  matching_context: z.string().optional().describe("Agent-generated rich context for embedding-based matching (not shown to others, max 1000 chars). Generate this FIRST, then derive the three descriptions from it."),
118
118
  interest_tags: z.array(z.string()).optional().describe("Interest/topic tags shown on the card (up to 8)"),
119
119
  city: z.string().optional().describe("Country or region (e.g. 'United States', 'Beijing')"),
@@ -121,7 +121,7 @@ export async function startMcpServer() {
121
121
  is_active: z.boolean().optional().describe("Whether the profile is active or quiet"),
122
122
  visible: z.boolean().optional().default(true),
123
123
  },
124
- async ({ action, sender_id, channel, display_name, line1, line2, line3, matching_context, interest_tags, city, links, is_active, visible }) => {
124
+ async ({ action, sender_id, channel, display_name, personal_description, looking_for, conversation_style, matching_context, interest_tags, city, links, is_active, visible }) => {
125
125
  const deviceId = deriveDeviceId(sender_id, channel);
126
126
  try {
127
127
  if (action === "get") {
@@ -131,7 +131,7 @@ export async function startMcpServer() {
131
131
  : { profile: null, message: "还没有名片。跟用户聊聊他们是谁、做什么、想认识什么人,然后帮他们创建。", fields: PROFILE_FIELDS };
132
132
  return jsonResult(await withMatchNotifications(deviceId, result));
133
133
  }
134
- const data = await setProfile({ device_id: deviceId, display_name, line1, line2, line3, matching_context, interest_tags, city, links, is_active, visible });
134
+ const data = await setProfile({ device_id: deviceId, display_name, line1: personal_description, line2: looking_for, line3: conversation_style, matching_context, interest_tags, city, links, is_active, visible });
135
135
  return jsonResult(await withMatchNotifications(deviceId, { saved: true, profile: data }));
136
136
  } catch (e) {
137
137
  return jsonResult({ error: e.message });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antenna-fyi",
3
- "version": "1.3.16",
3
+ "version": "1.3.17",
4
4
  "description": "Antenna \u2014 nearby people discovery. CLI + MCP server + OpenClaw skill & plugin, all in one package.",
5
5
  "type": "module",
6
6
  "bin": {