Skip to content

Commit 9aa6963

Browse files
committed
Merge remote-tracking branch 'origin/staging' into worktree-smartlead-integration
# Conflicts: # apps/sim/tools/generated/tool-ids.ts # apps/sim/tools/generated/tool-metadata.ts # apps/sim/tools/generated/tool-outputs.ts
2 parents 4cde5ce + 2b35a3c commit 9aa6963

69 files changed

Lines changed: 3856 additions & 589 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/docs/components/icons.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2412,6 +2412,36 @@ export function ImageIcon(props: SVGProps<SVGSVGElement>) {
24122412
)
24132413
}
24142414

2415+
export function EmbeddingsIcon(props: SVGProps<SVGSVGElement>) {
2416+
return (
2417+
<svg
2418+
{...props}
2419+
width='26'
2420+
height='26'
2421+
viewBox='0 0 26 26'
2422+
fill='none'
2423+
xmlns='http://www.w3.org/2000/svg'
2424+
stroke='currentColor'
2425+
strokeWidth='2'
2426+
strokeLinecap='round'
2427+
strokeLinejoin='round'
2428+
>
2429+
{/* Rays sit below the nodes in weight, but not so far below that they
2430+
wash out to loose dots at the 14px search-row size. */}
2431+
<path
2432+
d='M13 13L5.5 6.5M13 13L21 7M13 13L6.5 20M13 13L21 19'
2433+
strokeWidth='1.6'
2434+
opacity='0.9'
2435+
/>
2436+
<circle cx='13' cy='13' r='3.1' fill='currentColor' stroke='none' />
2437+
<circle cx='5.5' cy='6.5' r='1.9' fill='currentColor' stroke='none' />
2438+
<circle cx='21' cy='7' r='1.9' fill='currentColor' stroke='none' />
2439+
<circle cx='6.5' cy='20' r='1.9' fill='currentColor' stroke='none' />
2440+
<circle cx='21' cy='19' r='1.9' fill='currentColor' stroke='none' />
2441+
</svg>
2442+
)
2443+
}
2444+
24152445
export function TypeformIcon(props: SVGProps<SVGSVGElement>) {
24162446
return (
24172447
<svg

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ import {
6666
ElasticsearchIcon,
6767
ElevenLabsIcon,
6868
EmailBisonIcon,
69+
EmbeddingsIcon,
6970
EnrichmentIcon,
7071
EnrichSoIcon,
7172
EnrowIcon,
@@ -318,6 +319,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
318319
elasticsearch: ElasticsearchIcon,
319320
elevenlabs: ElevenLabsIcon,
320321
emailbison: EmailBisonIcon,
322+
embeddings: EmbeddingsIcon,
321323
enrich: EnrichSoIcon,
322324
enrichment: EnrichmentIcon,
323325
enrow: EnrowIcon,
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
title: Embeddings
3+
description: Generate embeddings
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="embeddings"
10+
color="#7B4DFF"
11+
/>
12+
13+
{/* MANUAL-CONTENT-START:intro */}
14+
An embedding turns a piece of text into a list of numbers that captures its meaning. Two texts that mean similar things get similar numbers, so you can compare meaning directly instead of matching keywords. That is what powers semantic search, grouping related items, and spotting near-duplicates that are worded differently.
15+
16+
The Embeddings block generates those numbers using OpenAI, Google Gemini, Cohere, or Mistral. Pick a provider, pick one of its models, pass in text, and get a vector back — one vector per input, in the order you supplied them. You can embed a single string or a list of strings in one call.
17+
18+
Models differ in what they are good at and what they cost. `text-embedding-3-small` is the cost-efficient general choice, `gemini-embedding-001` gives the highest retrieval quality, `embed-v4.0` handles multilingual content, and `codestral-embed` is tuned for source code. Some models also let you trade vector size against quality, and some accept a task type so the vector is conditioned for how it will be used — the block only offers those controls for the models that actually support them.
19+
20+
Two things worth knowing before you build on it. Vectors are only comparable when they come from the same model at the same size, so changing either means re-embedding everything you intend to compare. And input longer than the model's limit is shortened to fit rather than rejected, with a warning in the run, so chunk long documents yourself when the tail matters.
21+
22+
Sim's knowledge bases embed separately, at a fixed vector width and from a smaller set of models. This block is for embedding text yourself inside a workflow.
23+
{/* MANUAL-CONTENT-END */}
24+
25+
26+
## Usage Instructions
27+
28+
Turn text into embedding vectors for semantic search, clustering, and similarity. Supports OpenAI, Google Gemini, Cohere, and Mistral embedding models.
29+
30+
31+
32+
## Actions
33+
34+
### `embeddings_openai`
35+
36+
Generate embeddings from text using OpenAI's embedding models
37+
38+
#### Input
39+
40+
| Parameter | Type | Required | Description |
41+
| --------- | ---- | -------- | ----------- |
42+
| `input` | string | Yes | Text to embed, or an array of texts to embed in one call |
43+
| `model` | string | No | Embedding model to use |
44+
| `taskType` | string | No | What the embedding is for, when the model supports task conditioning: document, query, similarity, classification, or clustering |
45+
| `dimensions` | number | No | Output dimensions, when the model supports truncation. Defaults to native. |
46+
| `apiKey` | string | Yes | API key for the selected embedding provider |
47+
48+
#### Output
49+
50+
| Parameter | Type | Description |
51+
| --------- | ---- | ----------- |
52+
| `embeddings` | json | Generated embeddings |
53+
| `model` | string | Model used |
54+
| `provider` | string | Provider used |
55+
| `dimensions` | number | Dimensionality of each vector |
56+
| `usage` | json | Token usage |
57+
58+
### `embeddings_gemini`
59+
60+
Generate embeddings from text using Google's Gemini embedding models
61+
62+
#### Input
63+
64+
| Parameter | Type | Required | Description |
65+
| --------- | ---- | -------- | ----------- |
66+
| `input` | string | Yes | Text to embed, or an array of texts to embed in one call |
67+
| `model` | string | No | Embedding model to use |
68+
| `taskType` | string | No | What the embedding is for, when the model supports task conditioning: document, query, similarity, classification, or clustering |
69+
| `dimensions` | number | No | Output dimensions, when the model supports truncation. Defaults to native. |
70+
| `apiKey` | string | Yes | API key for the selected embedding provider |
71+
72+
#### Output
73+
74+
| Parameter | Type | Description |
75+
| --------- | ---- | ----------- |
76+
| `embeddings` | json | Generated embeddings |
77+
| `model` | string | Model used |
78+
| `provider` | string | Provider used |
79+
| `dimensions` | number | Dimensionality of each vector |
80+
| `usage` | json | Token usage |
81+
82+
### `embeddings_cohere`
83+
84+
Generate embeddings from text using Cohere's embedding models
85+
86+
#### Input
87+
88+
| Parameter | Type | Required | Description |
89+
| --------- | ---- | -------- | ----------- |
90+
| `input` | string | Yes | Text to embed, or an array of texts to embed in one call |
91+
| `model` | string | No | Embedding model to use |
92+
| `taskType` | string | No | What the embedding is for, when the model supports task conditioning: document, query, similarity, classification, or clustering |
93+
| `dimensions` | number | No | Output dimensions, when the model supports truncation. Defaults to native. |
94+
| `apiKey` | string | Yes | API key for the selected embedding provider |
95+
96+
#### Output
97+
98+
| Parameter | Type | Description |
99+
| --------- | ---- | ----------- |
100+
| `embeddings` | json | Generated embeddings |
101+
| `model` | string | Model used |
102+
| `provider` | string | Provider used |
103+
| `dimensions` | number | Dimensionality of each vector |
104+
| `usage` | json | Token usage |
105+
106+
### `embeddings_mistral`
107+
108+
Generate embeddings from text using Mistral's embedding models
109+
110+
#### Input
111+
112+
| Parameter | Type | Required | Description |
113+
| --------- | ---- | -------- | ----------- |
114+
| `input` | string | Yes | Text to embed, or an array of texts to embed in one call |
115+
| `model` | string | No | Embedding model to use |
116+
| `taskType` | string | No | What the embedding is for, when the model supports task conditioning: document, query, similarity, classification, or clustering |
117+
| `dimensions` | number | No | Output dimensions, when the model supports truncation. Defaults to native. |
118+
| `apiKey` | string | Yes | API key for the selected embedding provider |
119+
120+
#### Output
121+
122+
| Parameter | Type | Description |
123+
| --------- | ---- | ----------- |
124+
| `embeddings` | json | Generated embeddings |
125+
| `model` | string | Model used |
126+
| `provider` | string | Provider used |
127+
| `dimensions` | number | Dimensionality of each vector |
128+
| `usage` | json | Token usage |
129+
130+

apps/docs/content/docs/en/integrations/exa.mdx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ Search the web using Exa AI. Returns relevant search results with titles, URLs,
7171
| `startCrawlDate` | string | No | Deprecated: use startPublishedDate. Only include results crawled on or after this ISO 8601 date |
7272
| `endCrawlDate` | string | No | Deprecated: use endPublishedDate. Only include results crawled on or before this ISO 8601 date |
7373
| `apiKey` | string | Yes | Exa AI API Key |
74-
| `pricing` | custom | No | No description |
75-
| `rateLimit` | string | No | No description |
7674

7775
#### Output
7876

@@ -120,8 +118,6 @@ Retrieve the contents of webpages using Exa AI. Returns the title, text content,
120118
| `livecrawlTimeout` | number | No | Live crawl timeout in milliseconds \(max 90000\). Default: 10000 |
121119
| `livecrawl` | string | No | Deprecated: use maxAgeHours instead. Live crawling mode: never, fallback, always, or preferred |
122120
| `apiKey` | string | Yes | Exa AI API Key |
123-
| `pricing` | custom | No | No description |
124-
| `rateLimit` | string | No | No description |
125121

126122
#### Output
127123

@@ -162,8 +158,6 @@ Find webpages similar to a given URL using Exa AI. Deprecated by Exa in favor of
162158
| `livecrawlTimeout` | number | No | Live crawl timeout in milliseconds \(max 90000\). Default: 10000 |
163159
| `livecrawl` | string | No | Deprecated: use maxAgeHours instead. Live crawling mode: never, fallback, always, or preferred |
164160
| `apiKey` | string | Yes | Exa AI API Key |
165-
| `pricing` | custom | No | No description |
166-
| `rateLimit` | string | No | No description |
167161

168162
#### Output
169163

@@ -191,8 +185,6 @@ Get an AI-generated answer to a question with citations from the web using Exa A
191185
| `text` | boolean | No | Include the full page text of each cited source \(default: false\). This does not affect the answer itself. |
192186
| `outputSchema` | json | No | JSON Schema describing the answer shape. When supplied, the answer is returned as a structured object instead of a string. |
193187
| `apiKey` | string | Yes | Exa AI API Key |
194-
| `pricing` | custom | No | No description |
195-
| `rateLimit` | string | No | No description |
196188

197189
#### Output
198190

@@ -222,8 +214,6 @@ Run a deep research task with Exa Agent. Handles multi-step list building, enric
222214
| `systemPrompt` | string | No | Additional guidance for how the agent should behave or format its answer |
223215
| `previousRunId` | string | No | ID of a completed agent run to continue from, for follow-up questions |
224216
| `apiKey` | string | Yes | Exa AI API Key |
225-
| `pricing` | custom | No | No description |
226-
| `rateLimit` | string | No | No description |
227217

228218
#### Output
229219

apps/docs/content/docs/en/integrations/google_books.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ Search for books using the Google Books API
4646
| `startIndex` | number | No | Index of the first result to return \(for pagination\) |
4747
| `maxResults` | number | No | Maximum number of results to return \(1-40\) |
4848
| `langRestrict` | string | No | Restrict results to a specific language \(ISO 639-1 code\) |
49-
| `pricing` | per_request | No | No description |
50-
| `rateLimit` | string | No | No description |
5149

5250
#### Output
5351

@@ -84,8 +82,6 @@ Get detailed information about a specific book volume
8482
| `apiKey` | string | Yes | Google Books API key |
8583
| `volumeId` | string | Yes | The ID of the volume to retrieve |
8684
| `projection` | string | No | Projection level \(full, lite\) |
87-
| `pricing` | per_request | No | No description |
88-
| `rateLimit` | string | No | No description |
8985

9086
#### Output
9187

apps/docs/content/docs/en/integrations/google_maps.mdx

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ Get current air quality data for a location
5050
| `lat` | number | Yes | Latitude coordinate |
5151
| `lng` | number | Yes | Longitude coordinate |
5252
| `languageCode` | string | No | Language code for the response \(e.g., "en", "es"\) |
53-
| `pricing` | per_request | No | No description |
54-
| `rateLimit` | string | No | No description |
5553

5654
#### Output
5755

@@ -93,8 +91,6 @@ Get directions and route information between two locations
9391
| `waypoints` | json | No | Array of intermediate waypoints |
9492
| `units` | string | No | Unit system: metric or imperial |
9593
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
96-
| `pricing` | per_request | No | No description |
97-
| `rateLimit` | string | No | No description |
9894

9995
#### Output
10096

@@ -139,8 +135,6 @@ Calculate travel distance and time between multiple origins and destinations
139135
| `avoid` | string | No | Features to avoid: tolls, highways, or ferries |
140136
| `units` | string | No | Unit system: metric or imperial |
141137
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
142-
| `pricing` | custom | No | No description |
143-
| `rateLimit` | string | No | No description |
144138

145139
#### Output
146140

@@ -169,8 +163,6 @@ Get elevation data for a location
169163
| `apiKey` | string | Yes | Google Maps API key |
170164
| `lat` | number | Yes | Latitude coordinate |
171165
| `lng` | number | Yes | Longitude coordinate |
172-
| `pricing` | per_request | No | No description |
173-
| `rateLimit` | string | No | No description |
174166

175167
#### Output
176168

@@ -193,8 +185,6 @@ Convert an address into geographic coordinates (latitude and longitude)
193185
| `address` | string | Yes | The address to geocode |
194186
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
195187
| `region` | string | No | Region bias as a ccTLD code \(e.g., us, uk\) |
196-
| `pricing` | per_request | No | No description |
197-
| `rateLimit` | string | No | No description |
198188

199189
#### Output
200190

@@ -227,8 +217,6 @@ Geolocate a device using WiFi access points, cell towers, or IP address
227217
| `considerIp` | boolean | No | Whether to use IP address for geolocation \(default: true\) |
228218
| `cellTowers` | array | No | Array of cell tower objects with cellId, locationAreaCode, mobileCountryCode, mobileNetworkCode |
229219
| `wifiAccessPoints` | array | No | Array of WiFi access point objects with macAddress \(required\), signalStrength, etc. |
230-
| `pricing` | per_request | No | No description |
231-
| `rateLimit` | string | No | No description |
232220

233221
#### Output
234222

@@ -250,8 +238,6 @@ Get detailed information about a specific place
250238
| `placeId` | string | Yes | Google Place ID |
251239
| `fields` | string | No | Comma-separated list of fields to return |
252240
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
253-
| `pricing` | per_request | No | No description |
254-
| `rateLimit` | string | No | No description |
255241

256242
#### Output
257243

@@ -306,8 +292,6 @@ Search for places of a given type within a radius of a location
306292
| `rankPreference` | string | No | How to rank results: POPULARITY \(default\) or DISTANCE |
307293
| `languageCode` | string | No | Language code for the response \(e.g., en, es\) |
308294
| `regionCode` | string | No | Region bias as a ccTLD code \(e.g., us, uk\) |
309-
| `pricing` | per_request | No | No description |
310-
| `rateLimit` | string | No | No description |
311295

312296
#### Output
313297

@@ -342,8 +326,6 @@ Search for places using a text query
342326
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
343327
| `region` | string | No | Region bias as a ccTLD code \(e.g., us, uk\) |
344328
| `pageToken` | string | No | Token from a previous search response to fetch the next page of results. Wait a couple seconds after receiving the token before using it, or the API returns INVALID_REQUEST |
345-
| `pricing` | per_request | No | No description |
346-
| `rateLimit` | string | No | No description |
347329

348330
#### Output
349331

@@ -378,8 +360,6 @@ Get a daily pollen forecast (grass, tree, weed) for a location
378360
| `days` | number | No | Number of forecast days to return \(1-5, defaults to 1\) |
379361
| `languageCode` | string | No | Language code for the response \(e.g., "en", "es"\) |
380362
| `plantsDescription` | boolean | No | Include detailed plant descriptions \(defaults to true\) |
381-
| `pricing` | per_request | No | No description |
382-
| `rateLimit` | string | No | No description |
383363

384364
#### Output
385365

@@ -413,8 +393,6 @@ Convert geographic coordinates (latitude and longitude) into a human-readable ad
413393
| `lat` | number | Yes | Latitude coordinate |
414394
| `lng` | number | Yes | Longitude coordinate |
415395
| `language` | string | No | Language code for results \(e.g., en, es, fr\) |
416-
| `pricing` | per_request | No | No description |
417-
| `rateLimit` | string | No | No description |
418396

419397
#### Output
420398

@@ -439,8 +417,6 @@ Snap GPS coordinates to the nearest road segment
439417
| `apiKey` | string | Yes | Google Maps API key with Roads API enabled |
440418
| `path` | string | Yes | Pipe-separated list of lat,lng coordinates \(e.g., "60.170880,24.942795\|60.170879,24.942796"\) |
441419
| `interpolate` | boolean | No | Whether to interpolate additional points along the road |
442-
| `pricing` | per_request | No | No description |
443-
| `rateLimit` | string | No | No description |
444420

445421
#### Output
446422

@@ -466,8 +442,6 @@ Get solar potential and panel insights for the building nearest a location
466442
| `lat` | number | Yes | Latitude coordinate |
467443
| `lng` | number | Yes | Longitude coordinate |
468444
| `requiredQuality` | string | No | Minimum imagery quality to accept \(HIGH, MEDIUM, or BASE\) |
469-
| `pricing` | per_request | No | No description |
470-
| `rateLimit` | string | No | No description |
471445

472446
#### Output
473447

@@ -525,8 +499,6 @@ Get timezone information for a location
525499
| `lng` | number | Yes | Longitude coordinate |
526500
| `timestamp` | number | No | Unix timestamp to determine DST offset \(defaults to current time\) |
527501
| `language` | string | No | Language code for timezone name \(e.g., en, es, fr\) |
528-
| `pricing` | per_request | No | No description |
529-
| `rateLimit` | string | No | No description |
530502

531503
#### Output
532504

@@ -552,8 +524,6 @@ Validate and standardize a postal address
552524
| `regionCode` | string | No | ISO 3166-1 alpha-2 country code \(e.g., "US", "CA"\) |
553525
| `locality` | string | No | City or locality name |
554526
| `enableUspsCass` | boolean | No | Enable USPS CASS validation for US addresses |
555-
| `pricing` | per_request | No | No description |
556-
| `rateLimit` | string | No | No description |
557527

558528
#### Output
559529

apps/docs/content/docs/en/integrations/google_pagespeed.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ Analyze a webpage for performance, accessibility, SEO, and best practices using
5555
| `category` | string | No | Lighthouse categories to analyze \(comma-separated\): performance, accessibility, best-practices, seo |
5656
| `strategy` | string | No | Analysis strategy: desktop or mobile |
5757
| `locale` | string | No | Locale for results \(e.g., en, fr, de\) |
58-
| `pricing` | per_request | No | No description |
59-
| `rateLimit` | string | No | No description |
6058

6159
#### Output
6260

0 commit comments

Comments
 (0)