Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 52 additions & 7 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,8 @@ In addition, you will need to update the registries:

```typescript:/apps/sim/blocks/blocks/pinecone.ts
import { PineconeIcon } from '@/components/icons'
import { PineconeResponse } from '@/tools/pinecone/types'
import { BlockConfig } from '../types'
import type { BlockConfig } from '@/blocks/types'
import type { PineconeResponse } from '@/tools/pinecone/types'

export const PineconeBlock: BlockConfig<PineconeResponse> = {
type: 'pinecone',
Expand All @@ -313,13 +313,58 @@ In addition, you will need to update the registries:
bgColor: '#123456',
icon: PineconeIcon,

// If this block requires OAuth authentication
provider: 'pinecone',

// Define subBlocks for the UI configuration
subBlocks: [
// Block configuration options
{
id: 'operation',
title: 'Operation',
type: 'dropdown',
layout: 'full',
required: true,
options: [
{ label: 'Generate Embeddings', id: 'generate' },
{ label: 'Search Text', id: 'search_text' },
],
value: () => 'generate',
},
{
id: 'apiKey',
title: 'API Key',
type: 'short-input',
layout: 'full',
placeholder: 'Your Pinecone API key',
password: true,
required: true,
},
],

tools: {
access: ['pinecone_generate_embeddings', 'pinecone_search_text'],
config: {
tool: (params: Record<string, any>) => {
switch (params.operation) {
case 'generate':
return 'pinecone_generate_embeddings'
case 'search_text':
return 'pinecone_search_text'
default:
throw new Error('Invalid operation selected')
}
},
},
},

inputs: {
operation: { type: 'string', description: 'Operation to perform' },
apiKey: { type: 'string', description: 'Pinecone API key' },
searchQuery: { type: 'string', description: 'Search query text' },
topK: { type: 'string', description: 'Number of results to return' },
},

outputs: {
matches: { type: 'any', description: 'Search results or generated embeddings' },
data: { type: 'any', description: 'Response data from Pinecone' },
usage: { type: 'any', description: 'API usage statistics' },
},
}
```

Expand Down
63 changes: 23 additions & 40 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,25 @@
## Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.

Fixes # (issue)

## Type of change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Security enhancement
- [ ] Performance improvement
- [ ] Code refactoring (no functional changes)

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] All tests pass locally and in CI (`bun run test`)
- [ ] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published in downstream modules
- [ ] I have updated version numbers as needed (if needed)
## Summary
Brief description of what this PR does and why.

Fixes #(issue)

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation
- [ ] Other: ___________

## Testing
How has this been tested? What should reviewers focus on?

## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-reviewed my changes
- [ ] Tests added/updated and passing
- [ ] No new warnings introduced
- [ ] I confirm that I have read and agree to the terms outlined in the [Contributor License Agreement (CLA)](./CONTRIBUTING.md#contributor-license-agreement-cla)

## Security Considerations:

- [ ] My changes do not introduce any new security vulnerabilities
- [ ] I have considered the security implications of my changes

## Additional Information:

Any additional information, configuration or data that might be necessary to reproduce the issue or use the feature.
## Screenshots/Videos
<!-- If applicable, add screenshots or videos to help explain your changes -->
<!-- For UI changes, before/after screenshots are especially helpful -->
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<p align="center">
<a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License: Apache-2.0"></a>
<a href="https://discord.gg/Hr4UWYEcTT"><img src="https://img.shields.io/badge/Discord-Join%20Server-7289DA?logo=discord&logoColor=white" alt="Discord"></a>
<a href="https://x.com/simstudioai"><img src="https://img.shields.io/twitter/follow/simstudioai?style=social" alt="Twitter"></a>
<a href="https://x.com/simdotai"><img src="https://img.shields.io/twitter/follow/simstudioai?style=social" alt="Twitter"></a>
<a href="https://github.com/simstudioai/sim/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome"></a>
<a href="https://docs.sim.ai"><img src="https://img.shields.io/badge/Docs-visit%20documentation-blue.svg" alt="Documentation"></a>
</p>
Expand Down
10 changes: 8 additions & 2 deletions apps/docs/content/docs/execution/advanced.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,18 @@ Sim automatically calculates costs for all AI model usage:

### How Costs Are Calculated

Every workflow execution includes two cost components:

**Base Execution Charge**: $0.001 per execution

**AI Model Usage**: Variable cost based on token consumption
```javascript
cost = (inputTokens × inputPrice + outputTokens × outputPrice) / 1,000,000
modelCost = (inputTokens × inputPrice + outputTokens × outputPrice) / 1,000,000
totalCost = baseExecutionCharge + modelCost
```

<Callout type="info">
Prices are per million tokens. The calculation divides by 1,000,000 to get the actual cost.
AI model prices are per million tokens. The calculation divides by 1,000,000 to get the actual cost. Workflows without AI blocks only incur the base execution charge.
</Callout>

### Pricing Options
Expand Down
67 changes: 25 additions & 42 deletions apps/docs/content/docs/tools/airtable.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@ Read records from an Airtable table

#### Output

| Parameter | Type |
| --------- | ---- |
| `records` | string |
| `metadata` | string |
| `totalRecords` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `records` | json | Retrieved record data |
| `record` | json | Single record data |
| `metadata` | json | Operation metadata |

### `airtable_get_record`

Expand All @@ -100,10 +100,11 @@ Retrieve a single record from an Airtable table by its ID

#### Output

| Parameter | Type |
| --------- | ---- |
| `record` | string |
| `metadata` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `records` | json | Retrieved record data |
| `record` | json | Single record data |
| `metadata` | json | Operation metadata |

### `airtable_create_records`

Expand All @@ -119,10 +120,11 @@ Write new records to an Airtable table

#### Output

| Parameter | Type |
| --------- | ---- |
| `records` | string |
| `metadata` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `records` | json | Retrieved record data |
| `record` | json | Single record data |
| `metadata` | json | Operation metadata |

### `airtable_update_record`

Expand All @@ -140,11 +142,11 @@ Update an existing record in an Airtable table by ID

#### Output

| Parameter | Type |
| --------- | ---- |
| `record` | string |
| `metadata` | string |
| `updatedFields` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `records` | json | Retrieved record data |
| `record` | json | Single record data |
| `metadata` | json | Operation metadata |

### `airtable_update_multiple_records`

Expand All @@ -160,33 +162,14 @@ Update multiple existing records in an Airtable table

#### Output

| Parameter | Type |
| --------- | ---- |
| `records` | string |
| `metadata` | string |
| `updatedRecordIds` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `records` | json | Retrieved record data |
| `record` | json | Single record data |
| `metadata` | json | Operation metadata |



## Block Configuration

### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `operation` | string | Yes | Operation |



### Outputs

| Output | Type | Description |
| ------ | ---- | ----------- |
| `records` | json | records output from the block |
| `record` | json | record output from the block |
| `metadata` | json | metadata output from the block |


## Notes

- Category: `tools`
Expand Down
53 changes: 19 additions & 34 deletions apps/docs/content/docs/tools/arxiv.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,20 @@ Search for academic papers on ArXiv by keywords, authors, titles, or other field

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query to execute |
| `searchQuery` | string | Yes | The search query to execute |
| `searchField` | string | No | Field to search in: all, ti \(title\), au \(author\), abs \(abstract\), co \(comment\), jr \(journal\), cat \(category\), rn \(report number\) |
| `maxResults` | number | No | Maximum number of results to return \(default: 10, max: 2000\) |
| `sortBy` | string | No | Sort by: relevance, lastUpdatedDate, submittedDate \(default: relevance\) |
| `sortOrder` | string | No | Sort order: ascending, descending \(default: descending\) |

#### Output

| Parameter | Type |
| --------- | ---- |
| `query` | string |
| `papers` | string |
| `totalResults` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `papers` | json | Found papers data |
| `totalResults` | number | Total results count |
| `paper` | json | Paper details |
| `authorPapers` | json | Author papers list |

### `arxiv_get_paper`

Expand All @@ -87,9 +88,12 @@ Get detailed information about a specific ArXiv paper by its ID.

#### Output

| Parameter | Type |
| --------- | ---- |
| `paper` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `papers` | json | Found papers data |
| `totalResults` | number | Total results count |
| `paper` | json | Paper details |
| `authorPapers` | json | Author papers list |

### `arxiv_get_author_papers`

Expand All @@ -104,34 +108,15 @@ Search for papers by a specific author on ArXiv.

#### Output

| Parameter | Type |
| --------- | ---- |
| `authorPapers` | string |
| `authorName` | string |
| `totalResults` | string |
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `papers` | json | Found papers data |
| `totalResults` | number | Total results count |
| `paper` | json | Paper details |
| `authorPapers` | json | Author papers list |



## Block Configuration

### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `operation` | string | Yes | Operation |



### Outputs

| Output | Type | Description |
| ------ | ---- | ----------- |
| `papers` | json | papers output from the block |
| `totalResults` | number | totalResults output from the block |
| `paper` | json | paper output from the block |
| `authorPapers` | json | authorPapers output from the block |


## Notes

- Category: `tools`
Expand Down
Loading