You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Things to do: hobbies, experiences, skills, sports, games
16
+
- Generic but actionable: "Let's go to a cafe" (specific type of place)`
17
+
18
+
exportconstSHARED_TENSE_RULES=`CRITICAL - ONLY FUTURE SUGGESTIONS:
19
+
We want IDEAS for things to do in the future - NOT things already happening or already done.
20
+
21
+
✅ SUGGESTIONS (include): "We should go to X", "Let's try X", "Want to visit X?", "X looks cool"
22
+
❌ PRESENT (skip): "I'm going to X", "I'm at X now", "Heading to X", "Going to get Y"
23
+
❌ PAST (skip): "I went to X", "I was at X yesterday", "We did X last week"
24
+
25
+
Even if a message contains a Google Maps link or place name, SKIP IT if the person is describing what they're doing RIGHT NOW or what they already did. We only want future plans and suggestions.
26
+
27
+
Examples:
28
+
- "I'm going to the shops" → SKIP (present action, not a suggestion)
29
+
- "I'm going here to get some boxes [maps link]" → SKIP (current errand, even with link)
30
+
- "Let's go to the department store sometime" → INCLUDE (future suggestion)
31
+
- "We should check out this place [maps link]" → INCLUDE (suggestion with link)`
- KEEP mediaKey specificity: "glow worm cave" not "cave", "hot air balloon" not "balloon"
64
+
- Disambiguation: "play pool"→"billiards" (cue game), "swim in pool"→"swimming pool"`
65
+
66
+
exportconstSHARED_COMPOUND_SECTION=`COMPOUND vs MULTIPLE: For complex activities that one JSON object can't fully represent (e.g., "Go to Iceland and see the aurora"), emit ONE object. For truly separate activities, emit multiple objects.`
67
+
68
+
// Examples from IMAGES.md - used by both suggestion and agreement prompts
69
+
exportconstSHARED_EXAMPLES=`EXAMPLES:
70
+
1. "let's go to Paris" → city:"Paris", country:"France", cat:"travel", image:{stock:"paris france eiffel tower", mediaKey:"city", preferStock:true}
71
+
2. "trip to Waiheke" → placeName:"Waiheke Island", region:"Auckland", country:"New Zealand", image:{stock:"waiheke island beach vineyard", mediaKey:"island", preferStock:true}
72
+
3. "board games at Dice Goblin" → placeQuery:"Dice Goblin Auckland", cat:"gaming", image:{stock:"board game cafe meetup", mediaKey:"board game", preferStock:true}
73
+
4. "see Infected Mushroom in Auckland" → wikiName:"Infected Mushroom", city:"Auckland", cat:"music", image:{stock:"psytrance rave edm concert", mediaKey:"concert", preferStock:true}
74
+
5. "visit geothermal park in Rotorua" → city:"Rotorua", cat:"nature", image:{stock:"rotorua mud pools geyser geothermal", mediaKey:"geothermal park", preferStock:true}
75
+
6. "watch The Matrix" → cat:"entertainment", link:{type:"movie", query:"The Matrix"}, image:{stock:"movie night popcorn", mediaKey:"movie night"}
76
+
7. "watch Severance" (unsure if movie/TV) → cat:"entertainment", link:{type:"media", query:"Severance"}, image:{stock:"tv show streaming", mediaKey:"movie night"}
77
+
8. "play Exploding Kittens" (unsure if video/board game) → cat:"gaming", link:{type:"game", query:"Exploding Kittens"}, image:{stock:"card game friends", mediaKey:"card game"}
78
+
9. "go to the theatre" → cat:"entertainment", image:{stock:"theatre stage performance", mediaKey:"theatre"}
79
+
10. "hot air balloon ride" (generic) → cat:"experiences", image:{stock:"hot air balloon sunrise", mediaKey:"hot air balloon"}
80
+
11. "hot air balloon in Turkey" → country:"Turkey", cat:"experiences", image:{stock:"cappadocia hot air balloon sunrise", mediaKey:"hot air balloon", preferStock:true}`
- KEEP mediaKey specificity: "glow worm cave" not "cave", "hot air balloon" not "balloon"
239
-
- Disambiguation: "play pool"→"billiards" (cue game), "swim in pool"→"swimming pool"`
240
-
241
-
constSHARED_COMPOUND_SECTION=`COMPOUND vs MULTIPLE: For complex activities that one JSON object can't fully represent (e.g., "Go to Iceland and see the aurora"), emit ONE object. For truly separate activities, emit multiple objects.`
242
-
243
-
// Examples from IMAGES.md - used by both suggestion and agreement prompts
244
-
constSHARED_EXAMPLES=`EXAMPLES:
245
-
1. "let's go to Paris" → city:"Paris", country:"France", cat:"travel", image:{stock:"paris france eiffel tower", mediaKey:"city", preferStock:true}
246
-
2. "trip to Waiheke" → placeName:"Waiheke Island", region:"Auckland", country:"New Zealand", image:{stock:"waiheke island beach vineyard", mediaKey:"island", preferStock:true}
247
-
3. "board games at Dice Goblin" → placeQuery:"Dice Goblin Auckland", cat:"gaming", image:{stock:"board game cafe meetup", mediaKey:"board game", preferStock:true}
248
-
4. "see Infected Mushroom in Auckland" → wikiName:"Infected Mushroom", city:"Auckland", cat:"music", image:{stock:"psytrance rave edm concert", mediaKey:"concert", preferStock:true}
249
-
5. "visit geothermal park in Rotorua" → city:"Rotorua", cat:"nature", image:{stock:"rotorua mud pools geyser geothermal", mediaKey:"geothermal park", preferStock:true}
250
-
6. "watch The Matrix" → cat:"entertainment", link:{type:"movie", query:"The Matrix"}, image:{stock:"movie night popcorn", mediaKey:"movie night"}
251
-
7. "watch Severance" (unsure if movie/TV) → cat:"entertainment", link:{type:"media", query:"Severance"}, image:{stock:"tv show streaming", mediaKey:"movie night"}
252
-
8. "play Exploding Kittens" (unsure if video/board game) → cat:"gaming", link:{type:"game", query:"Exploding Kittens"}, image:{stock:"card game friends", mediaKey:"card game"}
253
-
9. "go to the theatre" → cat:"entertainment", image:{stock:"theatre stage performance", mediaKey:"theatre"}
254
-
10. "hot air balloon ride" (generic) → cat:"experiences", image:{stock:"hot air balloon sunrise", mediaKey:"hot air balloon"}
255
-
11. "hot air balloon in Turkey" → country:"Turkey", cat:"experiences", image:{stock:"cappadocia hot air balloon sunrise", mediaKey:"hot air balloon", preferStock:true}`
You're seeing messages pre-filtered by heuristics (regex patterns like "let's go", "we should try") and semantic search (embeddings). We intentionally cast a wide net - you'll see some false positives. Your job is to identify the real activities worth saving.
@@ -290,6 +183,8 @@ CRITICAL: Only extract activities that are IN the >>> message itself. Context is
290
183
291
184
URLs may have [URL_META: {...}] with scraped metadata - use this to understand what links are about.
292
185
186
+
${SHARED_TENSE_RULES}
187
+
293
188
${SHARED_INCLUDE_RULES}
294
189
295
190
${SHARED_SKIP_RULES}
@@ -338,7 +233,7 @@ ${formatted}
338
233
339
234
return`GOAL: Extract activities that the user is agreeing to or expressing enthusiasm about.
These are AGREEMENT messages - phrases like "sounds great!", "I'm keen!", "let's do it!". Your job is to find WHAT they are agreeing to by looking at the messages BEFORE the >>> candidate.
344
239
@@ -352,6 +247,8 @@ If you can't find a clear activity in the context before the agreement, skip it
352
247
353
248
URLs may have [URL_META: {...}] with scraped metadata - use this to understand what links are about.
0 commit comments