Skip to content

sup.search

The sup.search package provides search capabilities for finding patches and emojis on the platform. It is accessed through sup.search.

Example sup.search Usage
// Search for patches
const aiPatches = sup.search.patches("ai image generation", 5);
console.log(aiPatches); // Array of up to 5 matching patches
// Search for emojis
const dogEmojis = sup.search.emojis("dog", 3);
console.log(dogEmojis); // Array of up to 3 matching emojis
// Use found patches
const imagePatch = sup.search.patches("image editor", 1)[0];
if (imagePatch) {
const result = imagePatch.run(sup.input.image);
return result;
}
// Use found emojis
const emoji = sup.search.emojis("fire", 1)[0];
if (emoji) {
return [emoji, "Found the emoji!"];
}

Methods

sup.search.patches()

(query: string, numResults?: number) → SupPatch[]

// Search for patches related to "music"
const patches = sup.search.patches("music player", 5);
// Get first result
const topPatch = sup.search.patches("weather", 1)[0];
// Use default number of results (if not specified)
const results = sup.search.patches("calculator");
// Execute a found patch
const imagePatches = sup.search.patches("blur image");
if (imagePatches.length > 0) {
const result = imagePatches[0].run(sup.input.image);
return result;
}

Searches for patches on the platform using semantic search. Returns patches that match the query based on their names, descriptions, and functionality.

Parameters:

  • query (string): Search query describing what patches to find
  • numResults (optional number): Maximum number of results to return (default varies)

Returns: Array of SupPatch objects matching the query

Example use cases:

// Find utility patches
const converters = sup.search.patches("unit converter");
const timers = sup.search.patches("countdown timer");
// Find creative tools
const imageTools = sup.search.patches("photo editor effects");
const musicMakers = sup.search.patches("beat maker synthesizer");
// Call a found patch's public functions
const mathPatch = sup.search.patches("advanced calculator", 1)[0];
if (mathPatch.public.factorial) {
const result = mathPatch.public.factorial(5);
console.log(result); // 120
}

sup.search.emojis()

(query: string, numResults?: number) → SupEmoji[]

// Search for animal emojis
const animals = sup.search.emojis("cat dog", 10);
// Get a specific emoji
const fire = sup.search.emojis("fire", 1)[0];
// Use default number of results
const hearts = sup.search.emojis("heart");
// Display found emojis
const results = sup.search.emojis("happy face", 5);
return ["Found emojis:", ...results];

Searches for emojis on the platform. Returns custom and standard emojis that match the query.

Parameters:

  • query (string): Search query describing what emojis to find
  • numResults (optional number): Maximum number of results to return (default varies)

Returns: Array of SupEmoji objects matching the query

Example use cases:

// Find reaction emojis
const reactions = sup.search.emojis("thumbs up like yes");
const celebrations = sup.search.emojis("party celebrate confetti");
// Check emoji properties
const emoji = sup.search.emojis("robot", 1)[0];
if (emoji) {
console.log(emoji.name); // 'robot'
console.log(emoji.id); // Unique ID
console.log(emoji.image); // SupImage if available
console.log(emoji.audio); // SupAudio if available
}
// Build an emoji response
const randomEmoji = sup.search.emojis(sup.input.text, 1)[0];
if (randomEmoji) {
return [randomEmoji, "Here's an emoji for you!"];
}

Return Types

SupPatch

Returned patches are SupPatch objects with these capabilities:

const patch = sup.search.patches("calculator", 1)[0];
// Properties
patch.id; // Unique patch ID
patch.code; // Source code
patch.public; // Public functions and data
// Methods
patch.run(...args); // Execute main() function
patch.public.functionName(); // Call public functions

See the Patch type reference for more details.

SupEmoji

Returned emojis are SupEmoji objects with these properties:

const emoji = sup.search.emojis("star", 1)[0];
emoji.id; // string - Unique emoji ID
emoji.name; // string - Emoji name/shortname
emoji.image; // SupImage | undefined - Visual representation
emoji.audio; // SupAudio | undefined - Sound effect

See the Emoji type reference for more details.


Examples

// Search for image processing patches
const imagePatches = sup.search.patches("image filter effects", 3);
if (imagePatches.length === 0) {
return "No image patches found!";
}
// Let user know what we found
const patchNames = imagePatches.map(p => p.id).join(", ");
sup.status(`Found patches: ${patchNames}`);
// Use the first one
const result = imagePatches[0].run(sup.input.image);
return result;

Building an Emoji Picker

const query = sup.input.text || "random emoji";
const emojis = sup.search.emojis(query, 10);
if (emojis.length === 0) {
return "No emojis found for: " + query;
}
// Return grid of emojis
return [
`Found ${emojis.length} emojis for "${query}":`,
...emojis
];

Composing Multiple Patches

// Find related patches
const blurPatch = sup.search.patches("blur image", 1)[0];
const sharpenPatch = sup.search.patches("sharpen enhance", 1)[0];
if (!blurPatch || !sharpenPatch) {
return "Required patches not found";
}
// Apply multiple effects
let image = sup.input.image;
image = blurPatch.run(image);
image = sharpenPatch.run(image);
return image;

Notes

  • Search uses semantic matching, not just keyword matching
  • Results are ranked by relevance to the query
  • Search includes only public patches