Skip to content

Commit d77bc98

Browse files
committed
Merge branch 'staging' into upstream/execution-diagnostics-foundation
2 parents 767775c + 75a3e2c commit d77bc98

File tree

444 files changed

+67082
-6781
lines changed

Some content is hidden

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

444 files changed

+67082
-6781
lines changed

.claude/commands/validate-connector.md

Lines changed: 316 additions & 0 deletions
Large diffs are not rendered by default.

apps/docs/app/layout.tsx

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
import type { ReactNode } from 'react'
2+
import type { Viewport } from 'next'
23

34
export default function RootLayout({ children }: { children: ReactNode }) {
45
return children
56
}
67

8+
export const viewport: Viewport = {
9+
width: 'device-width',
10+
initialScale: 1,
11+
maximumScale: 1,
12+
userScalable: false,
13+
themeColor: [
14+
{ media: '(prefers-color-scheme: light)', color: '#ffffff' },
15+
{ media: '(prefers-color-scheme: dark)', color: '#0c0c0c' },
16+
],
17+
}
18+
719
export const metadata = {
820
metadataBase: new URL('https://docs.sim.ai'),
921
title: {
@@ -12,6 +24,9 @@ export const metadata = {
1224
},
1325
description:
1426
'Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.',
27+
applicationName: 'Sim Docs',
28+
generator: 'Next.js',
29+
referrer: 'origin-when-cross-origin' as const,
1530
keywords: [
1631
'AI agents',
1732
'agentic workforce',
@@ -37,17 +52,28 @@ export const metadata = {
3752
manifest: '/favicon/site.webmanifest',
3853
icons: {
3954
icon: [
55+
{ url: '/icon.svg', type: 'image/svg+xml', sizes: 'any' },
4056
{ url: '/favicon/favicon-16x16.png', sizes: '16x16', type: 'image/png' },
4157
{ url: '/favicon/favicon-32x32.png', sizes: '32x32', type: 'image/png' },
58+
{ url: '/favicon/android-chrome-192x192.png', sizes: '192x192', type: 'image/png' },
59+
{ url: '/favicon/android-chrome-512x512.png', sizes: '512x512', type: 'image/png' },
4260
],
4361
apple: '/favicon/apple-touch-icon.png',
44-
shortcut: '/favicon/favicon.ico',
62+
shortcut: '/icon.svg',
4563
},
4664
appleWebApp: {
4765
capable: true,
4866
statusBarStyle: 'default',
4967
title: 'Sim Docs',
5068
},
69+
formatDetection: {
70+
telephone: false,
71+
},
72+
other: {
73+
'apple-mobile-web-app-capable': 'yes',
74+
'mobile-web-app-capable': 'yes',
75+
'msapplication-TileColor': '#33C482',
76+
},
5177
openGraph: {
5278
type: 'website',
5379
locale: 'en_US',

apps/docs/content/docs/en/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"mailer",
1414
"skills",
1515
"knowledgebase",
16+
"tables",
1617
"variables",
1718
"credentials",
1819
"execution",
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
---
2+
title: Tables
3+
description: Store, query, and manage structured data directly within your workspace
4+
---
5+
6+
import { Callout } from 'fumadocs-ui/components/callout'
7+
import { Image } from '@/components/ui/image'
8+
import { FAQ } from '@/components/ui/faq'
9+
10+
Tables let you store and manage structured data directly in your workspace. Use them to maintain reference data, collect workflow outputs, or build lightweight databases — all without leaving Sim.
11+
12+
<Image src="/static/tables/tables-overview.png" alt="Tables view showing structured data with typed columns for name, title, company, role, and more" width={800} height={500} />
13+
14+
Each table has a schema of typed columns, supports filtering and sorting, and is fully accessible through the [Tables API](/docs/en/api-reference/(generated)/tables).
15+
16+
## Creating a Table
17+
18+
1. Open the **Tables** section from your workspace sidebar
19+
2. Click **New table**
20+
3. Name your table and start adding columns
21+
22+
Tables start with a single text column. Add more columns by clicking **New column** in the column header area.
23+
24+
## Column Types
25+
26+
Each column has a type that determines how values are stored and validated.
27+
28+
| Type | Description | Example Values |
29+
|------|-------------|----------------|
30+
| **Text** | Free-form string | `"Acme Corp"`, `"hello@example.com"` |
31+
| **Number** | Numeric value | `42`, `3.14`, `-100` |
32+
| **Boolean** | True or false | `true`, `false` |
33+
| **Date** | Date value | `2026-03-16` |
34+
| **JSON** | Structured object or array | `{"key": "value"}`, `[1, 2, 3]` |
35+
36+
<Callout type="info">
37+
Column types are enforced on input. For example, typing into a Number column is restricted to digits, dots, and minus signs. Non-numeric values entered via paste are coerced to `0`.
38+
</Callout>
39+
40+
## Working with Rows
41+
42+
### Adding Rows
43+
44+
- Click **New row** below the last row to append a new row
45+
- Press **Shift + Enter** while a cell is selected to insert a row below
46+
- Paste tabular data (from a spreadsheet or TSV) to bulk-create rows
47+
48+
### Editing Cells
49+
50+
Click a cell to select it, then press **Enter**, **F2**, or start typing to edit. Press **Escape** to cancel, or **Tab** to save and move to the next cell.
51+
52+
### Selecting Rows
53+
54+
Click a row's checkbox to select it. Selecting additional checkboxes adds to the selection without clearing previous selections.
55+
56+
| Action | Behavior |
57+
|--------|----------|
58+
| Click checkbox | Toggle that row's selection |
59+
| Shift + click checkbox | Select range from last clicked to current |
60+
| Click header checkbox | Select all / deselect all |
61+
| Shift + Space | Toggle row selection from keyboard |
62+
63+
### Deleting Rows
64+
65+
Right-click a selected row (or group of selected rows) and choose **Delete row** from the context menu.
66+
67+
## Filtering and Sorting
68+
69+
Use the toolbar above the table to filter and sort your data.
70+
71+
- **Filter**: Set conditions on any column (e.g., "Name contains Acme"). Multiple filters are combined with AND logic.
72+
- **Sort**: Order rows by any column, ascending or descending.
73+
74+
Filters and sorts are applied in real time and do not modify the underlying data.
75+
76+
## Keyboard Shortcuts
77+
78+
All shortcuts work when the table is focused and no cell is being edited.
79+
80+
<Callout type="info">
81+
**Mod** refers to `Cmd` on macOS and `Ctrl` on Windows/Linux.
82+
</Callout>
83+
84+
### Navigation
85+
86+
| Shortcut | Action |
87+
|----------|--------|
88+
| Arrow keys | Move one cell |
89+
| `Mod` + Arrow keys | Jump to edge of table |
90+
| `Tab` / `Shift` + `Tab` | Move to next / previous cell |
91+
| `Escape` | Clear selection |
92+
93+
### Selection
94+
95+
| Shortcut | Action |
96+
|----------|--------|
97+
| `Shift` + Arrow keys | Extend selection by one cell |
98+
| `Mod` + `Shift` + Arrow keys | Extend selection to edge |
99+
| `Mod` + `A` | Select all rows |
100+
| `Shift` + `Space` | Toggle current row selection |
101+
102+
### Editing
103+
104+
| Shortcut | Action |
105+
|----------|--------|
106+
| `Enter` or `F2` | Start editing selected cell |
107+
| `Escape` | Cancel editing |
108+
| Type any character | Start editing with that character |
109+
| `Shift` + `Enter` | Insert new row below |
110+
| `Space` | Expand row details |
111+
112+
### Clipboard
113+
114+
| Shortcut | Action |
115+
|----------|--------|
116+
| `Mod` + `C` | Copy selected cells |
117+
| `Mod` + `X` | Cut selected cells |
118+
| `Mod` + `V` | Paste |
119+
| `Delete` / `Backspace` | Clear selected cells (all columns when using checkbox selection) |
120+
121+
### History
122+
123+
| Shortcut | Action |
124+
|----------|--------|
125+
| `Mod` + `Z` | Undo |
126+
| `Mod` + `Shift` + `Z` | Redo |
127+
| `Mod` + `Y` | Redo (alternative) |
128+
129+
## Using Tables in Workflows
130+
131+
Tables can be read from and written to within your workflows using the **Table** block. Common patterns include:
132+
133+
- **Lookup**: Query a table for reference data (e.g., pricing rules, customer metadata)
134+
- **Write-back**: Store workflow outputs in a table for later review or reporting
135+
- **Iteration**: Process each row in a table as part of a batch workflow
136+
137+
## API Access
138+
139+
Tables are fully accessible through the REST API. You can create, read, update, and delete both tables and rows programmatically.
140+
141+
See the [Tables API Reference](/docs/en/api-reference/(generated)/tables) for endpoints, parameters, and examples.
142+
143+
## Best Practices
144+
145+
- **Use typed columns** to enforce data integrity — prefer Number and Boolean over storing everything as Text
146+
- **Name columns descriptively** so they are self-documenting when referenced in workflows
147+
- **Use JSON columns sparingly** — they are flexible but harder to filter and sort against
148+
- **Leverage the API** for bulk imports rather than manually entering large datasets
149+
150+
<FAQ items={[
151+
{ question: "Is there a row limit per table?", answer: "Tables are designed for working datasets. For very large datasets (100k+ rows), consider paginating API reads or splitting data across multiple tables." },
152+
{ question: "Can I import data from a spreadsheet?", answer: "Yes. Copy rows from any spreadsheet application and paste them directly into the table. Column values will be validated against the column types." },
153+
{ question: "Do tables support formulas?", answer: "Tables store raw data and do not support computed formulas. Use workflow logic (Function block or Agent block) to derive computed values and write them back to the table." },
154+
{ question: "Can multiple workflows write to the same table?", answer: "Yes. Table writes are atomic at the row level, so multiple workflows can safely write to the same table concurrently." },
155+
{ question: "How do I reference a table from a workflow?", answer: "Use the Table block in your workflow. Select the target table from the dropdown, choose an operation (read, write, update), and configure the parameters." },
156+
{ question: "Are tables shared across workspace members?", answer: "Yes. Tables are workspace-scoped and accessible to all members with appropriate permissions." },
157+
{ question: "Can I undo changes?", answer: "In the table editor, Cmd/Ctrl+Z undoes recent cell edits, row insertions, and row deletions. API-driven changes are not covered by the editor's undo history." },
158+
]} />

apps/docs/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
"next": "16.1.6",
3030
"next-themes": "^0.4.6",
3131
"postgres": "^3.4.5",
32-
"react": "19.2.1",
33-
"react-dom": "19.2.1",
32+
"react": "19.2.4",
33+
"react-dom": "19.2.4",
3434
"shiki": "4.0.0",
3535
"tailwind-merge": "^3.0.2"
3636
},
Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,42 @@
11
{
2-
"name": "MyWebSite",
3-
"short_name": "MySite",
2+
"name": "Sim Documentation — Build AI Agents & Run Your Agentic Workforce",
3+
"short_name": "Sim Docs",
4+
"description": "Documentation for Sim — the open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to deploy and orchestrate agentic workflows.",
5+
"start_url": "/",
6+
"scope": "/",
47
"icons": [
58
{
6-
"src": "/web-app-manifest-192x192.png",
9+
"src": "/favicon/web-app-manifest-192x192.png",
710
"sizes": "192x192",
811
"type": "image/png",
912
"purpose": "maskable"
1013
},
1114
{
12-
"src": "/web-app-manifest-512x512.png",
15+
"src": "/favicon/web-app-manifest-512x512.png",
1316
"sizes": "512x512",
1417
"type": "image/png",
1518
"purpose": "maskable"
19+
},
20+
{
21+
"src": "/favicon/android-chrome-192x192.png",
22+
"sizes": "192x192",
23+
"type": "image/png"
24+
},
25+
{
26+
"src": "/favicon/android-chrome-512x512.png",
27+
"sizes": "512x512",
28+
"type": "image/png"
29+
},
30+
{
31+
"src": "/favicon/apple-touch-icon.png",
32+
"sizes": "180x180",
33+
"type": "image/png"
1634
}
1735
],
18-
"theme_color": "#ffffff",
36+
"theme_color": "#33C482",
1937
"background_color": "#ffffff",
20-
"display": "standalone"
38+
"display": "standalone",
39+
"categories": ["productivity", "developer", "business"],
40+
"lang": "en-US",
41+
"dir": "ltr"
2142
}

apps/docs/public/icon.svg

Lines changed: 14 additions & 0 deletions
Loading
591 KB
Loading

apps/sim/app/(auth)/auth-layout-client.tsx

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,22 @@
22

33
import { useEffect } from 'react'
44
import AuthBackground from '@/app/(auth)/components/auth-background'
5-
import Nav from '@/app/(landing)/components/nav/nav'
6-
7-
function isColorDark(hexColor: string): boolean {
8-
const hex = hexColor.replace('#', '')
9-
const r = Number.parseInt(hex.substr(0, 2), 16)
10-
const g = Number.parseInt(hex.substr(2, 2), 16)
11-
const b = Number.parseInt(hex.substr(4, 2), 16)
12-
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255
13-
return luminance < 0.5
14-
}
5+
import Navbar from '@/app/(home)/components/navbar/navbar'
156

167
export default function AuthLayoutClient({ children }: { children: React.ReactNode }) {
178
useEffect(() => {
18-
const rootStyle = getComputedStyle(document.documentElement)
19-
const brandBackground = rootStyle.getPropertyValue('--brand-background-hex').trim()
20-
21-
if (brandBackground && isColorDark(brandBackground)) {
22-
document.body.classList.add('auth-dark-bg')
23-
} else {
24-
document.body.classList.remove('auth-dark-bg')
9+
document.documentElement.classList.add('dark')
10+
return () => {
11+
document.documentElement.classList.remove('dark')
2512
}
2613
}, [])
14+
2715
return (
28-
<AuthBackground>
29-
<main className='relative flex min-h-screen flex-col text-foreground'>
30-
<Nav hideAuthButtons={true} variant='auth' />
16+
<AuthBackground className='dark font-[430] font-season'>
17+
<main className='relative flex min-h-full flex-col text-[#ECECEC]'>
18+
<header className='shrink-0 bg-[#1C1C1C]'>
19+
<Navbar logoOnly />
20+
</header>
3121
<div className='relative z-30 flex flex-1 items-center justify-center px-4 pb-24'>
3222
<div className='w-full max-w-lg px-4'>{children}</div>
3323
</div>

0 commit comments

Comments
 (0)