Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ This visibility system ensures clean user interfaces while maintaining full flex

### Guidelines & Best Practices

- **Code Style:** Follow the project's ESLint and Prettier configurations. Use meaningful variable names and small, focused functions.
- **Code Style:** Follow the project's Biome configurations. Use meaningful variable names and small, focused functions.
- **Documentation:** Clearly document the purpose, inputs, outputs, and any special behavior for your block/tool.
- **Error Handling:** Implement robust error handling and provide user-friendly error messages.
- **Parameter Visibility:** Always specify the appropriate visibility level for each parameter to ensure proper UI behavior and LLM integration.
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/tools/file.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ The File Parser tool is particularly useful for scenarios where your agents need

## Usage Instructions

Upload and extract contents from structured file formats including PDFs, CSV spreadsheets, and Word documents (DOCX). Upload files directly. Specialized parsers extract text and metadata from each format. You can upload multiple files at once and access them individually or as a combined document.
Upload and extract contents from structured file formats including PDFs, CSV spreadsheets, and Word documents (DOCX). You can either provide a URL to a file or upload files directly. Specialized parsers extract text and metadata from each format. You can upload multiple files at once and access them individually or as a combined document.



Expand Down
1 change: 1 addition & 0 deletions apps/docs/content/docs/tools/hunter.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ With Hunter.io, you can:
In Sim, the Hunter.io integration enables your agents to programmatically search for and verify email addresses, discover companies, and enrich contact data using Hunter.io’s API. This allows you to automate lead generation, contact enrichment, and email verification directly within your workflows. Your agents can leverage Hunter.io’s tools to streamline outreach, keep your CRM up-to-date, and power intelligent automation scenarios for sales, recruiting, and more.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Search for email addresses, verify their deliverability, discover companies, and enrich contact data using Hunter.io's powerful email finding capabilities.
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/tools/knowledge.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Search for similar content in a knowledge base using vector similarity
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `knowledgeBaseId` | string | Yes | ID of the knowledge base to search in |
| `query` | string | Yes | Search query text |
| `query` | string | No | Search query text \(optional when using tag filters\) |
| `topK` | number | No | Number of most similar results to return \(1-100\) |
| `tagFilters` | any | No | Array of tag filters with tagName and tagValue properties |

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/tools/mistral_parse.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ The Mistral Parse tool is particularly useful for scenarios where your agents ne

## Usage Instructions

Extract text and structure from PDF documents using Mistral's OCR API. Configure processing options and get the content in your preferred format. For URLs, they must be publicly accessible and point to a valid PDF file. Note: Google Drive, Dropbox, and other cloud storage links are not supported; use a direct download URL from a web server instead.
Extract text and structure from PDF documents using Mistral's OCR API. Either enter a URL to a PDF document or upload a PDF file directly. Configure processing options and get the content in your preferred format. For URLs, they must be publicly accessible and point to a valid PDF file. Note: Google Drive, Dropbox, and other cloud storage links are not supported; use a direct download URL from a web server instead.



Expand Down
4 changes: 4 additions & 0 deletions apps/docs/content/docs/tools/outlook.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,10 @@ Send emails using Outlook
| `to` | string | Yes | Recipient email address |
| `subject` | string | Yes | Email subject |
| `body` | string | Yes | Email body content |
| `replyToMessageId` | string | No | Message ID to reply to \(for threading\) |
| `conversationId` | string | No | Conversation ID for threading |
| `cc` | string | No | CC recipients \(comma-separated\) |
| `bcc` | string | No | BCC recipients \(comma-separated\) |

#### Output

Expand Down
15 changes: 14 additions & 1 deletion apps/sim/app/(auth)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

import Image from 'next/image'
import Link from 'next/link'
import { useBrandConfig } from '@/lib/branding/branding'
import { GridPattern } from '@/app/(landing)/components/grid-pattern'

export default function AuthLayout({ children }: { children: React.ReactNode }) {
const brand = useBrandConfig()

return (
<main className='relative flex min-h-screen flex-col bg-[#0C0C0C] font-geist-sans text-white'>
{/* Background pattern */}
Expand All @@ -21,7 +24,17 @@ export default function AuthLayout({ children }: { children: React.ReactNode })
<div className='relative z-10 px-6 pt-9'>
<div className='mx-auto max-w-7xl'>
<Link href='/' className='inline-flex'>
<Image src='/sim.svg' alt='Sim Logo' width={42} height={42} />
{brand.logoUrl ? (
<img
src={brand.logoUrl}
alt={`${brand.name} Logo`}
width={42}
height={42}
className='h-[42px] w-[42px] object-contain'
/>
) : (
<Image src='/sim.svg' alt={`${brand.name} Logo`} width={42} height={42} />
)}
</Link>
</div>
</div>
Expand Down
14 changes: 13 additions & 1 deletion apps/sim/app/(landing)/components/nav-client.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
SheetTitle,
SheetTrigger,
} from '@/components/ui/sheet'
import { useBrandConfig } from '@/lib/branding/branding'
import { usePrefetchOnHover } from '@/app/(landing)/utils/prefetch'

// --- Framer Motion Variants ---
Expand Down Expand Up @@ -165,6 +166,7 @@ export default function NavClient({
const [isMobile, setIsMobile] = useState(initialIsMobile ?? false)
const [isSheetOpen, setIsSheetOpen] = useState(false)
const _router = useRouter()
const brand = useBrandConfig()

useEffect(() => {
setMounted(true)
Expand Down Expand Up @@ -199,7 +201,17 @@ export default function NavClient({
<div className='flex flex-1 items-center'>
<div className='inline-block'>
<Link href='/' className='inline-flex'>
<Image src='/sim.svg' alt='Sim Logo' width={42} height={42} />
{brand.logoUrl ? (
<img
src={brand.logoUrl}
alt={`${brand.name} Logo`}
width={42}
height={42}
className='h-[42px] w-[42px] object-contain'
/>
) : (
<Image src='/sim.svg' alt={`${brand.name} Logo`} width={42} height={42} />
)}
</Link>
</div>
</div>
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/app/api/auth/oauth/connections/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import { createLogger } from '@/lib/logs/console/logger'
import { db } from '@/db'
import { account, user } from '@/db/schema'

export const dynamic = 'force-dynamic'

const logger = createLogger('OAuthConnectionsAPI')

interface GoogleIdToken {
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/app/api/billing/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import { member } from '@/db/schema'

const logger = createLogger('UnifiedBillingAPI')

export const dynamic = 'force-dynamic'

/**
* Unified Billing Endpoint
*/
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/app/api/files/serve/[...path]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ import {
getContentType,
} from '@/app/api/files/utils'

export const dynamic = 'force-dynamic'

const logger = createLogger('FilesServeAPI')

async function streamToBuffer(readableStream: NodeJS.ReadableStream): Promise<Buffer> {
Expand Down
3 changes: 0 additions & 3 deletions apps/sim/app/api/folders/[id]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ import { and, eq } from 'drizzle-orm'
import { type NextRequest, NextResponse } from 'next/server'
import { getSession } from '@/lib/auth'
import { createLogger } from '@/lib/logs/console/logger'

export const dynamic = 'force-dynamic'

import { getUserEntityPermissions } from '@/lib/permissions/utils'
import { db } from '@/db'
import { workflow, workflowFolder } from '@/db/schema'
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/app/api/folders/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import { workflowFolder } from '@/db/schema'

const logger = createLogger('FoldersAPI')

export const dynamic = 'force-dynamic'

// GET - Fetch folders for a workspace
export async function GET(request: NextRequest) {
try {
Expand Down
1 change: 0 additions & 1 deletion apps/sim/app/api/logs/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ function extractBlockExecutionsFromTraceSpans(traceSpans: any[]): any[] {
return blockExecutions
}

export const dynamic = 'force-dynamic'
export const revalidate = 0

const QueryParamsSchema = z.object({
Expand Down
3 changes: 0 additions & 3 deletions apps/sim/app/api/organizations/[id]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ import {
updateOrganizationSeats,
} from '@/lib/billing/validation/seat-management'
import { createLogger } from '@/lib/logs/console/logger'

export const dynamic = 'force-dynamic'

import { db } from '@/db'
import { member, organization } from '@/db/schema'

Expand Down
2 changes: 0 additions & 2 deletions apps/sim/app/api/organizations/[id]/workspaces/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import { member, permissions, user, workspace } from '@/db/schema'

const logger = createLogger('OrganizationWorkspacesAPI')

export const dynamic = 'force-dynamic'

/**
* GET /api/organizations/[id]/workspaces
* Get workspaces related to the organization with optional filtering
Expand Down
1 change: 0 additions & 1 deletion apps/sim/app/api/templates/[id]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { templates } from '@/db/schema'

const logger = createLogger('TemplateByIdAPI')

export const dynamic = 'force-dynamic'
export const revalidate = 0

// GET /api/templates/[id] - Retrieve a single template by ID
Expand Down
1 change: 0 additions & 1 deletion apps/sim/app/api/templates/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { templateStars, templates, workflow } from '@/db/schema'

const logger = createLogger('TemplatesAPI')

export const dynamic = 'force-dynamic'
export const revalidate = 0

// Function to sanitize sensitive data from workflow state
Expand Down
3 changes: 0 additions & 3 deletions apps/sim/app/api/users/me/settings/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ import { NextResponse } from 'next/server'
import { z } from 'zod'
import { getSession } from '@/lib/auth'
import { createLogger } from '@/lib/logs/console/logger'

export const dynamic = 'force-dynamic'

import { db } from '@/db'
import { settings } from '@/db/schema'

Expand Down
3 changes: 0 additions & 3 deletions apps/sim/app/api/workspaces/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ import { and, desc, eq, isNull } from 'drizzle-orm'
import { NextResponse } from 'next/server'
import { getSession } from '@/lib/auth'
import { createLogger } from '@/lib/logs/console/logger'

export const dynamic = 'force-dynamic'

import { db } from '@/db'
import { permissions, workflow, workflowBlocks, workspace } from '@/db/schema'

Expand Down
Loading