Skip to content

Commit bcedadf

Browse files
feat(scheduled-tasks): calendar views + persisted, runnable tasks (#4979)
* improvement(resource): simplify table shell, toasts, and loading breadcrumbs - Resource.Table: remove internal sorting (defaultSort/sortValues) and the emptyMessage state — rows render in the order given, chrome always paints - Resource: root is now the positioning context for overlays; consumers (files, tables, knowledge, document) wrap detail views in <Resource> instead of hand-rolled divs - ResourceHeader: root titles no longer truncate during initial layout; LocationFocusVeil gates the portal on mount to fix a hydration mismatch - Toasts: drop the StackDismiss ring and stack countdown — each toast runs its own timer; remove the Mod+E clear-notifications command; align toast typography and icons with chip chrome - Breadcrumbs: use the canonical '…' placeholder while names load - incident.io: fix display name and catalog slug (with redirect) - Add dev:capped / dev:full:capped scripts with a 4GB heap cap * feat(scheduled-tasks): calendar views; rename Mothership to Sim/Chat Add month/time calendar views for scheduled tasks with toolbar, event chips, and a create-task modal, backed by calendar-grid and schedule-events utils (with tests) and a use-calendar hook. Replace the old schedule-modal/context-menu flow. Rename the "Mothership" agent to "Sim" and the chat surface to "Chat" across landing copy, constitution, block metadata, API error messages, and copilot/data-drain internals. Drop unused workspace route layouts. * fix(emcn): force dropdown menus modal inside dialogs so they scroll A non-modal DropdownMenu portals outside an open dialog's react-remove-scroll subtree, so its content cannot be wheel-scrolled (e.g. the time picker in the scheduled-task create modal). ModalContent now marks its subtree via an InsideModal context, and the emcn DropdownMenu root upgrades itself to modal inside dialogs so it mounts its own scroll lock and focus scope; page-level menus keep their consumer-chosen modality. Also stretch the create-task modal's date/time chip controls to full width and drop the dead EDGE_GUTTER constant left behind by the equal-tracks calendar layout. * fix(scheduled-tasks): address review — midnight rollover, stub feedback, smooth Today scroll - useCalendar: today was frozen at mount, so after midnight the isToday column highlight and the current-time indicator stayed on the previous day. today is now state refreshed by a sleep-resilient minute poll that only re-renders when the calendar day actually changes - CreateTaskModal: the stub submit closed silently, reading as false success; it now shows an info toast that the task was not created - ScheduleCalendar: Today presses scroll smoothly as an orientation cue; mount and scope switches keep instant positioning * feat(emcn): view-only field primitives + scheduled-task modals - ChipCopyInput (canonical view-only copy field), ChipTimePicker, ChipModalField type='copy', ChipTextarea viewOnly; new border chip variant and shared chipPrimaryFillTokens - migrate ~40 consumers off disabled inputs and the deleted CopyableValueField; ChipConfirmModal description->text and secondaryActions[] API sweep - scheduled-tasks: rename create-task-modal to task-modal, add task-details-modal + task-context-menu, useScheduledTasks hook - home: extract prompt-editor (usePromptEditor) out of user-input * feat(scheduled-tasks): persist + run tasks via the job-schedule backend Wire the calendar UI to the existing sourceType='job' workflow_schedule backend instead of local component state, so tasks persist and actually run as Sim agent invocations. - schema: add contexts (@-mentions resolved into the run), excludedDates (per-occurrence deletes), and endsAt (recurrence end) to workflow_schedule (migration 0235) - contracts/schedules: expose one-time `time`, contexts, endsAt on create; add the exclude_occurrence action; nullable cron in the create response - orchestration: persist the new fields, honor exclusions + end boundary via a shared computeNextRunAt, add performExcludeOccurrence - execution: forward contexts to /api/mothership/execute and recompute the next run through computeNextRunAt - mothership/execute: accept + resolve contexts like the interactive chat path - frontend: replace the local hook with React Query (create/update/delete + exclude-occurrence), expand recurrences into calendar occurrences, add the recurrence control (frequency + end) and the recurring this/all delete dialog * chore(scheduled-tasks): satisfy biome line-width on user-input imports * fix(scheduled-tasks): log agent-context resolution failures in execute route * fix(scheduled-tasks): keep context double-cast adjacent to its boundary annotation * fix(scheduled-tasks): preserve @-mention contexts on edit; sync editor valueRef on input * fix(scheduled-tasks): footer-wrap modal controls; audit fixes; cleanup - chip-modal: footer secondary cluster now wraps (min-w-0 flex-wrap) with a non-shrinking action cluster, so scheduling controls can never clip Cancel/ primary; recurrence labels compacted so the common case stays one row - schedule-execution: failure path now completes a recurring job when maxRuns/ endsAt/exclusions are exhausted (and a one-time/maxRuns job), mirroring the success path instead of leaving it active with a stale nextRunAt - prompt-editor: commitValue keeps valueRef in lockstep with state on the mention-hook setter paths, completing the stale-ref fix - task-modal: preserve @-mention contexts on edit (seed editor.setContexts); single emptiness source of truth - recurrence-control: preserve prior count when toggling end type; drop a needless useMemo - contracts: reuse scheduleContextSchema for the execute contexts shape * feat(scheduled-tasks): valid future default launch time; test scheduleToTasks mapping * chore(scheduled-tasks): convert added inline comments to TSDoc * simplify(scheduled-tasks): reuse date-fns for launch/end math; drop dead 'running' status + single-use helper --------- Co-authored-by: waleed <walif6@gmail.com>
1 parent 7b5c776 commit bcedadf

169 files changed

Lines changed: 22351 additions & 3485 deletions

File tree

Some content is hidden

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

.claude/rules/constitution.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ Sim is the **AI workspace** where teams build and run AI agents. Not a workflow
2323
| The product | "AI workspace" | "workflow tool", "automation platform", "agent framework" |
2424
| Building | "build agents", "create agents" | "create workflows" (unless describing the workflow module specifically) |
2525
| Visual builder | "workflow builder" or "visual builder" | "canvas", "graph editor" |
26-
| Mothership | "Mothership" (capitalized) | "chat", "AI assistant", "copilot" |
26+
| The agent | "Sim" — you talk to Sim | "Mothership", "copilot", "AI assistant" |
27+
| The chat surface | "Chat" (capitalized, the module) | "Mothership", "copilot" |
2728
| Deployment | "deploy", "ship" | "publish", "activate" |
2829
| Audience | "teams", "builders" | "users", "customers" (in marketing copy) |
2930
| What agents do | "automate real work" | "automate tasks", "automate workflows" |
@@ -50,7 +51,7 @@ When describing Sim, always lead with the most differentiated claim:
5051

5152
| Module | One-liner |
5253
|--------|-----------|
53-
| **Mothership** | Your AI command center. Build and manage everything in natural language. |
54+
| **Chat** | Your AI command center. Talk to Sim — build and manage everything in natural language. |
5455
| **Workflows** | The visual builder. Connect blocks, models, and integrations into agent logic. |
5556
| **Knowledge Base** | Your agents' memory. Upload docs, sync sources, build vector databases. |
5657
| **Tables** | A database, built in. Store, query, and wire structured data into agent runs. |
@@ -65,7 +66,8 @@ When describing Sim, always lead with the most differentiated claim:
6566
- Never promise unshipped features
6667
- Never use jargon ("RAG", "vector database", "MCP") without plain-English explanation on public pages
6768
- Avoid "agentic workforce" as a primary term — use "AI agents"
69+
- Never say "Mothership" or "copilot" — the agent is "Sim", the surface is "Chat" (in run logs the trigger reads "Sim agent")
6870

6971
## Vision
7072

71-
Sim becomes the default environment where teams build AI agents — not a tool you visit for one task, but a workspace you live in. Workflows are one module; Mothership is another. The workspace is the constant; the interface adapts.
73+
Sim becomes the default environment where teams build AI agents — not a tool you visit for one task, but a workspace you live in. Workflows are one module; Chat is another. The workspace is the constant; the interface adapts.

.claude/rules/emcn-components.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ The menu surface intentionally diverges from the pill: `dropdown-menu.tsx` items
2222

2323
- **`Chip` / `ChipLink`** — the pill button (`<button>` / Next `<Link>`). Variants: `ghost`, `filled`, `primary`, `destructive`, `border-shadow`. `leftIcon`/`rightIcon`, `active`, `fullWidth`, `flush`.
2424
- **`ChipInput`** — single-line text field. `icon`, `endAdornment`, `error`, `inputClassName` (inner `<input>`); `className` styles the chrome wrapper.
25-
- **`ChipTextarea`** — multi-line sibling. `error`, `resizable` (off by default).
25+
- **`ChipCopyInput`** — the canonical view-only field: a read-only `ChipInput` at full opacity with a trailing copy-to-clipboard button. View-only is a display mode, not a disabled state — reach for it (or `ChipModalField type='copy'`) over a `disabled` (greyed) input for values the user cannot edit.
26+
- **`ChipTextarea`** — multi-line sibling. `error`, `resizable` (off by default), `viewOnly` (read-only at full opacity with the default cursor — the multi-line counterpart of `ChipCopyInput`).
2627
- **`ChipDropdown`** — pill that opens a menu. Single OR multi-select via the discriminated `multiple` prop (one component, not two). Owns its trailing chevron — no `rightIcon`.
2728
- **`ChipSelect` / `ChipCombobox`**`Combobox`-backed pickers with search, groups, multi-select; for richer lists than `ChipDropdown`.
28-
- **`ChipModal` + `ChipModalField`** — declarative compact modal. The field's `type` (`input` | `email` | `textarea` | `dropdown` | `file` | `emails` | `custom`) picks the control and **owns all chrome** — consumers describe intent, never pass `variant`/`className`/`id` to the inner control. `custom` is the escape hatch. **Every body field MUST be a `ChipModalField`** — never hand-roll a field row (raw `<div>` + hand-rolled `<p>`/`<label>` title + bare `ChipInput`/`ChipTextarea`). `ChipModalBody` applies `px-2` + `gap-4`; `ChipModalField` adds another `px-2`, so each field lands at effective `px-4`, exactly matching the `px-4` header/footer — a hand-rolled row skips that gutter and sits misaligned at `px-2`. For controls the field doesn't cover (`ChipCombobox`, `ChipSelect`, `DatePicker`, `TimePicker`, `ButtonGroup`, arbitrary JSX), use `type='custom'` with a `title` — it still applies the gutter and renders the canonical `Label`.
29+
- **`ChipModal` + `ChipModalField`** — declarative compact modal. The field's `type` (`input` | `email` | `textarea` | `dropdown` | `copy` | `file` | `emails` | `custom`) picks the control and **owns all chrome** — consumers describe intent, never pass `variant`/`className`/`id` to the inner control. `custom` is the escape hatch. **Every body field MUST be a `ChipModalField`** — never hand-roll a field row (raw `<div>` + hand-rolled `<p>`/`<label>` title + bare `ChipInput`/`ChipTextarea`). `ChipModalBody` applies `px-2` + `gap-4`; `ChipModalField` adds another `px-2`, so each field lands at effective `px-4`, exactly matching the `px-4` header/footer — a hand-rolled row skips that gutter and sits misaligned at `px-2`. For controls the field doesn't cover (`ChipCombobox`, `ChipSelect`, `DatePicker`, `TimePicker`, `ButtonGroup`, arbitrary JSX), use `type='custom'` with a `title` — it still applies the gutter and renders the canonical `Label`.
2930
- **`ChipSwitch`** — segmented pill control (built from `chipVariants`).
3031
- **`ChipTag`** — 20px inline tag/badge (`mono`/`gray`/`invite`), not a pill trigger.
3132
- **`ChipDatePicker`** — chip-styled date field.
33+
- **`ChipTimePicker`** — minute-granular time sibling of `ChipDatePicker`, a `ChipInput` that leniently parses typed input (`9:47`, `947`, `2:05pm`, `14:30`), commits on Enter/blur, and re-renders the canonical `9:47 AM` label.
3234
- **`DropdownMenu`** — the canonical context/action menu (Radix-backed). Not a chip, but the standard menu for command/action lists; reach for it instead of a hand-rolled popover. Its surface intentionally diverges from the chip pill (`text-small`, `gap-2`) — keep them distinct. For a pill that opens a value picker, use `ChipDropdown`/`ChipSelect` instead.
3335

3436
## Authoring principles

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@
2121
<a href="https://deepwiki.com/simstudioai/sim" target="_blank" rel="noopener noreferrer"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> <a href="https://cursor.com/link/prompt?text=Help%20me%20set%20up%20Sim%20locally.%20Follow%20these%20steps%3A%0A%0A1.%20First%2C%20verify%20Docker%20is%20installed%20and%20running%3A%0A%20%20%20docker%20--version%0A%20%20%20docker%20info%0A%0A2.%20Clone%20the%20repository%3A%0A%20%20%20git%20clone%20https%3A%2F%2Fgithub.com%2Fsimstudioai%2Fsim.git%0A%20%20%20cd%20sim%0A%0A3.%20Start%20the%20services%20with%20Docker%20Compose%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.prod.yml%20up%20-d%0A%0A4.%20Wait%20for%20all%20containers%20to%20be%20healthy%20(this%20may%20take%201-2%20minutes)%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.prod.yml%20ps%0A%0A5.%20Verify%20the%20app%20is%20accessible%20at%20http%3A%2F%2Flocalhost%3A3000%0A%0AIf%20there%20are%20any%20errors%2C%20help%20me%20troubleshoot%20them.%20Common%20issues%3A%0A-%20Port%203000%2C%203002%2C%20or%205432%20already%20in%20use%0A-%20Docker%20not%20running%0A-%20Insufficient%20memory%20(needs%2012GB%2B%20RAM)%0A%0AFor%20local%20AI%20models%20with%20Ollama%2C%20use%20this%20instead%20of%20step%203%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.ollama.yml%20--profile%20setup%20up%20-d"><img src="https://img.shields.io/badge/Set%20Up%20with-Cursor-000000?logo=cursor&logoColor=white" alt="Set Up with Cursor"></a>
2222
</p>
2323

24-
### Build everything in Mothership
25-
Your AI command center. Describe what you want in plain language. Mothership knows your entire workspace and takes action: building agents, running them, querying data, and more.
24+
### Build everything in Chat
25+
Your AI command center. Describe what you want in plain language. Sim knows your entire workspace and takes action: building agents, running them, querying data, and more.
2626

2727
<p align="center">
28-
<img src="apps/sim/public/static/mothership.gif" alt="Mothership building and running an agent from chat" width="800"/>
28+
<img src="apps/sim/public/static/mothership.gif" alt="Sim building and running an agent from chat" width="800"/>
2929
</p>
3030

3131
### Create files and documents
3232
Generate documents, reports, and presentations from a single prompt, grounded in your workspace data.
3333

3434
<p align="center">
35-
<img src="apps/sim/public/static/files.gif" alt="Mothership generating a document from a prompt" width="800"/>
35+
<img src="apps/sim/public/static/files.gif" alt="Sim generating a document from a prompt" width="800"/>
3636
</p>
3737

3838
### Ground agents in your knowledge
@@ -50,7 +50,7 @@ A database, built in. Store, query, and wire structured data into agent runs.
5050
</p>
5151

5252
### Build visually with Workflows
53-
Prefer a canvas? Design agents block by block in the visual builder, and let Copilot generate blocks, wire variables, and fix errors from natural language.
53+
Prefer a canvas? Design agents block by block in the visual builder, and let Sim generate blocks, wire variables, and fix errors from natural language.
5454

5555
<p align="center">
5656
<img src="apps/sim/public/static/workflow.gif" alt="Workflow builder demo" width="800"/>
@@ -138,11 +138,11 @@ bun run dev:full # Starts Next.js app and realtime socket server
138138

139139
Or run separately: `bun run dev` (Next.js) and `cd apps/sim && bun run dev:sockets` (realtime).
140140

141-
## Copilot API Keys
141+
## Chat API Keys
142142

143-
Copilot is a Sim-managed service. To use Copilot on a self-hosted instance:
143+
Chat is a Sim-managed service. To use Chat on a self-hosted instance:
144144

145-
- Go to https://sim.ai → Settings → Copilot and generate a Copilot API key
145+
- Go to https://sim.ai → Settings → Chat keys and generate a Chat API key
146146
- Set `COPILOT_API_KEY` environment variable in your self-hosted apps/sim/.env file to that value
147147

148148
## Environment Variables

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: incidentio
2+
title: incident.io
33
description: Manage incidents with incident.io
44
---
55

apps/sim/app/(landing)/components/features/features.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ interface FeatureTab {
4141

4242
const FEATURE_TABS: FeatureTab[] = [
4343
{
44-
label: 'Mothership',
44+
label: 'Chat',
4545
color: '#FA4EDF',
4646
title: 'Your AI command center',
4747
description:
4848
'Direct your entire AI workforce from one place. Build agents, spin up workflows, query tables, and manage every resource across your workspace — in natural language.',
49-
cta: 'Explore mothership',
49+
cta: 'Explore chat',
5050
segments: [
5151
[0.3, 8],
5252
[0.25, 10],
@@ -186,7 +186,7 @@ export default function Features() {
186186
Workspace
187187
</Badge>
188188
<p className='sr-only'>
189-
Sim's workspace includes four core features: Mothership, an AI command center for
189+
Sim's workspace includes four core features: Chat, an AI command center for
190190
natural-language control of your entire workspace; Tables, a built-in database for
191191
filtering, sorting, and wiring data directly into workflows; Files, a shared document
192192
store for uploading, creating, and sharing documents, spreadsheets, and media across

apps/sim/app/(landing)/components/footer/footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ interface FooterItem {
1414
}
1515

1616
const PRODUCT_LINKS: FooterItem[] = [
17-
{ label: 'Mothership', href: 'https://docs.sim.ai/mothership', external: true },
17+
{ label: 'Chat', href: 'https://docs.sim.ai/mothership', external: true },
1818
{ label: 'Workflows', href: 'https://docs.sim.ai', external: true },
1919
{ label: 'Knowledge Base', href: 'https://docs.sim.ai/knowledgebase', external: true },
2020
{ label: 'Tables', href: 'https://docs.sim.ai/tables', external: true },

apps/sim/app/(landing)/components/hero/hero.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default function Hero() {
4444
Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect
4545
1,000+ integrations and every major LLM, including OpenAI, Anthropic Claude, Google Gemini,
4646
Mistral, and xAI Grok, to create agents that automate real work. Build agents visually with
47-
the workflow builder, conversationally through Mothership, or programmatically with the API.
47+
the workflow builder, conversationally through Chat, or programmatically with the API.
4848
Trusted by over 100,000 builders at startups and Fortune 500 companies. SOC2 compliant.
4949
</p>
5050

apps/sim/app/(landing)/components/landing-preview/components/landing-preview-home/landing-preview-home.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ export const LandingPreviewHome = memo(function LandingPreviewHome({
218218
<Blimp className='h-[16px] w-[16px]' style={{ color: C.TEXT_ICON }} />
219219
</div>
220220
<span className='text-sm' style={{ color: C.TEXT_BODY }}>
221-
Mothership
221+
Sim
222222
</span>
223223
<ChevronDown
224224
className='h-[7px] w-[9px] transition-transform duration-150'

apps/sim/app/(landing)/components/landing-preview/components/landing-preview-panel/landing-preview-panel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const EDITOR_BLOCK_ICONS: Record<string, React.ComponentType<{ className?: strin
3434
}
3535

3636
const TABS_WITH_TOOLBAR: { id: PanelTab | 'toolbar'; label: string; disabled?: boolean }[] = [
37-
{ id: 'copilot', label: 'Copilot' },
37+
{ id: 'copilot', label: 'Chat' },
3838
{ id: 'toolbar', label: 'Toolbar', disabled: true },
3939
{ id: 'editor', label: 'Editor' },
4040
]
@@ -68,10 +68,10 @@ interface LandingPreviewPanelProps {
6868
}
6969

7070
/**
71-
* Workspace panel replica with switchable Copilot / Editor tabs.
71+
* Workspace panel replica with switchable Chat / Editor tabs.
7272
*
7373
* On every workflow switch (`animationKey` change):
74-
* 1. Resets to Copilot tab.
74+
* 1. Resets to Chat tab.
7575
* 2. Waits for blocks + edges to finish animating.
7676
* 3. Slides the tab indicator to Editor and types the agent's prompt.
7777
* 4. Highlights the agent block with the blue ring on the canvas.

apps/sim/app/(landing)/components/structured-data.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export default function StructuredData() {
138138
],
139139
featureList: [
140140
'AI workspace for teams',
141-
'Mothership — natural language agent creation',
141+
'Chat — natural language agent creation',
142142
'Visual workflow builder',
143143
'1,000+ integrations',
144144
'LLM orchestration (OpenAI, Anthropic, Google, xAI, Mistral, Perplexity)',
@@ -191,15 +191,15 @@ export default function StructuredData() {
191191
name: 'What is the best AI agent builder?',
192192
acceptedAnswer: {
193193
'@type': 'Answer',
194-
text: 'Sim is the open-source AI workspace trusted by over 100,000 builders for creating, deploying, and managing AI agents. Build agents visually with the workflow builder, conversationally through Mothership, or programmatically with the API. Sim connects to 1,000+ integrations and all major LLMs (OpenAI, Anthropic, Google, xAI, Mistral), and includes knowledge bases, tables, real-time collaboration, and enterprise governance. Free tier available. SOC2 compliant. Self-hostable.',
194+
text: 'Sim is the open-source AI workspace trusted by over 100,000 builders for creating, deploying, and managing AI agents. Build agents visually with the workflow builder, conversationally through Chat, or programmatically with the API. Sim connects to 1,000+ integrations and all major LLMs (OpenAI, Anthropic, Google, xAI, Mistral), and includes knowledge bases, tables, real-time collaboration, and enterprise governance. Free tier available. SOC2 compliant. Self-hostable.',
195195
},
196196
},
197197
{
198198
'@type': 'Question',
199199
name: 'What is Sim?',
200200
acceptedAnswer: {
201201
'@type': 'Answer',
202-
text: 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. The workspace includes Mothership for natural-language creation, a visual workflow builder, knowledge bases, tables, and full observability. Trusted by over 100,000 builders. SOC2 compliant.',
202+
text: 'Sim is the open-source AI workspace where teams build, deploy, and manage AI agents. Connect 1,000+ integrations and every major LLM to create agents that automate real work — visually, conversationally, or with code. The workspace includes Chat for natural-language creation, a visual workflow builder, knowledge bases, tables, and full observability. Trusted by over 100,000 builders. SOC2 compliant.',
203203
},
204204
},
205205
{
@@ -223,7 +223,7 @@ export default function StructuredData() {
223223
name: 'Do I need coding skills to use Sim?',
224224
acceptedAnswer: {
225225
'@type': 'Answer',
226-
text: 'No coding skills are required. Sim provides multiple ways to build agents: a visual workflow builder for drag-and-drop creation, Mothership for building in natural language, and templates for common use cases. Developers can also use custom functions, the API, and the CLI/SDK for advanced use cases.',
226+
text: 'No coding skills are required. Sim provides multiple ways to build agents: a visual workflow builder for drag-and-drop creation, Chat for building in natural language, and templates for common use cases. Developers can also use custom functions, the API, and the CLI/SDK for advanced use cases.',
227227
},
228228
},
229229
{

0 commit comments

Comments
 (0)