Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
f269fc9
Merge pull request #647 from simstudioai/staging
icecrasher321 Jul 9, 2025
0cd9965
Fix docs agent
Sg312 Jul 9, 2025
b2b6655
Doc agent fixes
Sg312 Jul 9, 2025
9dfe45b
Refactor copilot
Sg312 Jul 9, 2025
4b6a44d
Lint
Sg312 Jul 9, 2025
78e5a31
Update yaml editor
Sg312 Jul 9, 2025
5f9d79e
Lint
Sg312 Jul 9, 2025
8c068df
Fix block tool
Sg312 Jul 9, 2025
400895a
Lint
Sg312 Jul 9, 2025
f1d5b9e
Get block metadata tool
Sg312 Jul 10, 2025
45e0ed3
Lint
Sg312 Jul 10, 2025
f4d5548
Yaml changes
Sg312 Jul 10, 2025
8bda606
Lint
Sg312 Jul 10, 2025
384bc65
Fixes?
Sg312 Jul 10, 2025
904b269
Lint
Sg312 Jul 10, 2025
f6833e6
Better yaml language
Sg312 Jul 10, 2025
eee5825
Lint
Sg312 Jul 10, 2025
e0a894d
UPdate
Sg312 Jul 10, 2025
036eb45
Lint
Sg312 Jul 10, 2025
4dc9430
Fix condition blocks
Sg312 Jul 10, 2025
ee2dea4
lint
Sg312 Jul 10, 2025
d6d3ff5
Fix start block
Sg312 Jul 10, 2025
9f19e27
Fix starter block stuff
Sg312 Jul 10, 2025
7776987
Lint
Sg312 Jul 10, 2025
4de96d7
Fix yaml ui
Sg312 Jul 10, 2025
0ddfd52
Lint
Sg312 Jul 10, 2025
c6348ae
get yaml tool
Sg312 Jul 10, 2025
ead8fe8
Lint
Sg312 Jul 10, 2025
1bb76d2
hi
Sg312 Jul 10, 2025
b9a6fe8
Lint
Sg312 Jul 10, 2025
120b5ce
Agnet
Sg312 Jul 10, 2025
be283bb
Copilot UI
Sg312 Jul 10, 2025
f86df24
Lint
Sg312 Jul 10, 2025
aa01427
Better workflow builder
Sg312 Jul 10, 2025
813873a
Lint
Sg312 Jul 10, 2025
e5a9285
REHYDRATION
Sg312 Jul 10, 2025
b0e3656
Lint
Sg312 Jul 10, 2025
184c675
Auto layout
Sg312 Jul 10, 2025
f2aeb4e
Lint
Sg312 Jul 10, 2025
5eb8992
Fixes
Sg312 Jul 10, 2025
ed5b638
Lint
Sg312 Jul 10, 2025
1c2c1c5
Chatbar sizing
Sg312 Jul 10, 2025
2b79661
Lint
Sg312 Jul 10, 2025
93a1e56
Initial chat fixes
Sg312 Jul 10, 2025
07910fc
Lint
Sg312 Jul 10, 2025
a1f1252
Dropdown overflow
Sg312 Jul 10, 2025
afa701b
Lint
Sg312 Jul 10, 2025
f91146f
UI text
Sg312 Jul 10, 2025
a447a79
Lint
Sg312 Jul 10, 2025
2d239d8
Sample question pills
Sg312 Jul 10, 2025
852cce4
Lint
Sg312 Jul 10, 2025
c8422d8
Ui button
Sg312 Jul 10, 2025
fb7246b
Fix dropdown appearance
Sg312 Jul 10, 2025
551c744
Lint
Sg312 Jul 10, 2025
5e3c059
Modal fixes
Sg312 Jul 10, 2025
a4b5c83
UI Updates
Sg312 Jul 10, 2025
baaf7d7
Lint
Sg312 Jul 10, 2025
202325f
Initial ask vs agent mode
Sg312 Jul 10, 2025
180e9a9
Lint
Sg312 Jul 10, 2025
12d4880
Ask vs agent
Sg312 Jul 10, 2025
9fd5027
Lint
Sg312 Jul 10, 2025
10edede
Ask udpate
Sg312 Jul 10, 2025
b5b91ec
Ui fixes
Sg312 Jul 10, 2025
b142781
Lint
Sg312 Jul 10, 2025
53063dd
User message width
Sg312 Jul 10, 2025
f6fb328
Chat leak fix
Sg312 Jul 10, 2025
27f5383
Lint
Sg312 Jul 10, 2025
b7d536b
v0.2.11: fix + feat + improvement
waleedlatif1 Jul 10, 2025
548be3b
Agent ui
Sg312 Jul 10, 2025
9e79cd3
Checkpointing
Sg312 Jul 10, 2025
1c461a6
Lint
Sg312 Jul 10, 2025
4414cb2
Checkpoints
Sg312 Jul 10, 2025
4ea2adb
Lint
Sg312 Jul 10, 2025
5ac96d3
Tweaks
Sg312 Jul 10, 2025
098386e
Sample questions
Sg312 Jul 10, 2025
22d62ef
Lint
Sg312 Jul 10, 2025
9ae0a2c
Modal full screen mode
Sg312 Jul 10, 2025
c63d492
Lint
Sg312 Jul 10, 2025
b60b380
Prompt updates
Sg312 Jul 11, 2025
bf897c9
Cleaning
Sg312 Jul 11, 2025
be4d17f
Lint
Sg312 Jul 11, 2025
2b80b18
Prompt update
Sg312 Jul 11, 2025
720b5cc
Streaming v1
Sg312 Jul 11, 2025
9d435ed
Lint
Sg312 Jul 11, 2025
91b27a6
Tool call inline
Sg312 Jul 11, 2025
8a95781
Lint
Sg312 Jul 11, 2025
fc09b3f
Checkpoint
Sg312 Jul 11, 2025
ab1fdcd
Lint
Sg312 Jul 11, 2025
0595442
Fix lint
Sg312 Jul 11, 2025
514efcd
Sizing
Sg312 Jul 11, 2025
f9aaa3b
Lint
Sg312 Jul 11, 2025
b005907
Copilot ui tool call fixes
Sg312 Jul 11, 2025
7eef6b4
Remove output from tool call ui
Sg312 Jul 11, 2025
aa7ca70
Updates
Sg312 Jul 11, 2025
e25aa5a
Lint
Sg312 Jul 11, 2025
7284286
Checkpoitn
Sg312 Jul 11, 2025
4af3c5a
Loading icon
Sg312 Jul 11, 2025
9daf18a
Lint
Sg312 Jul 11, 2025
d555b84
Pulse
Sg312 Jul 11, 2025
91e4a9a
Lint
Sg312 Jul 11, 2025
d1137b1
Modal fixes
Sg312 Jul 11, 2025
da5f92b
Sidebar padding
Sg312 Jul 11, 2025
8c64ad3
Checkpoint
Sg312 Jul 12, 2025
4a417c8
checkpoint
Sg312 Jul 12, 2025
38f5aae
v0.2.12: fix + improvement
waleedlatif1 Jul 13, 2025
7192cde
v0.2.13: fix + improvement + feat
waleedlatif1 Jul 14, 2025
39444af
Merge pull request #688 from simstudioai/staging
icecrasher321 Jul 15, 2025
b223e45
Merge pull request #692 from simstudioai/staging
icecrasher321 Jul 15, 2025
46f84e8
feat(platform): new UI and templates (#639) (#693)
emir-karabeg Jul 15, 2025
8b09510
fix: remove package-lock
emir-karabeg Jul 15, 2025
b7185c9
v0.3.1: improvement + fix
waleedlatif1 Jul 15, 2025
aade4bf
fix(sockets): remove package-lock
waleedlatif1 Jul 15, 2025
8f71684
v0.3.2: improvement + fix + feat
waleedlatif1 Jul 16, 2025
e528621
fix: sidebar scroll going over sidebar height (#709)
emir-karabeg Jul 16, 2025
1e55a0e
v0.3.3: fix + improvement
waleedlatif1 Jul 16, 2025
27794e5
v0.3.4: fix + feat + improvement
waleedlatif1 Jul 17, 2025
06b1d82
v0.3.5: fix
waleedlatif1 Jul 18, 2025
f2b1c73
v0.3.6: advanced mode for blocks, async api + bg tasks, trigger blocks
waleedlatif1 Jul 20, 2025
f8cd2f8
Merge conflict fix
Jul 21, 2025
8e9fb88
Checkpoint
Jul 21, 2025
cd43dca
Fix build error
Sg312 Jul 21, 2025
a21b09f
Checkpoitn
Sg312 Jul 21, 2025
3c2cc56
Docs updates
Sg312 Jul 21, 2025
560d184
v0.3.7: ms teams webhook, docker fixes, condition block dropdown, fix…
waleedlatif1 Jul 22, 2025
8e692d9
Checkpoint
Sg312 Jul 22, 2025
68e1cd7
Streaming vs non streaming
Sg312 Jul 22, 2025
7afb3ba
Clean up yaml save
Sg312 Jul 22, 2025
0ec7c36
Fix revert checkpoitn yaml
Sg312 Jul 22, 2025
f9c13e9
Doc fixes
Sg312 Jul 22, 2025
b35bf37
Small docs fix
Sg312 Jul 22, 2025
583f308
Clean up old yaml docs
Sg312 Jul 22, 2025
7a2da38
Doc updates
Sg312 Jul 22, 2025
3e7bc4d
Hide copilot
Sg312 Jul 22, 2025
2aa2ddd
Revert width
Sg312 Jul 22, 2025
2056f10
Db migration fixes
Sg312 Jul 22, 2025
2c5175b
Merge remote-tracking branch 'origin' into feat/copilot-v1
Sg312 Jul 22, 2025
d690a56
Merge remote-tracking branch 'origin' into feat/copilot-v1
Sg312 Jul 22, 2025
e3a6640
Add snapshot
Sg312 Jul 22, 2025
4982b0a
Remove space from mdx
Sg312 Jul 22, 2025
efe04bb
Add spaces
Sg312 Jul 22, 2025
25400d4
Lint
Sg312 Jul 22, 2025
0f25be0
Address greptile comments
Sg312 Jul 22, 2025
1abe88b
lint fix
Sg312 Jul 22, 2025
57fd9d7
Hide copilot
Sg312 Jul 22, 2025
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 apps/docs/content/docs/blocks/loop.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,4 @@ After a loop completes, you can access aggregated results:

- **Set reasonable limits**: Keep iteration counts reasonable to avoid long execution times
- **Use ForEach for collections**: When processing arrays or objects, use ForEach instead of For loops
- **Handle errors gracefully**: Consider adding error handling inside loops for robust workflows
- **Handle errors gracefully**: Consider adding error handling inside loops for robust workflows
2 changes: 1 addition & 1 deletion apps/docs/content/docs/blocks/parallel.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -207,4 +207,4 @@ Understanding when to use each:

- **Independent operations only**: Ensure operations don't depend on each other
- **Handle rate limits**: Add delays or throttling for API-heavy workflows
- **Error handling**: Each instance should handle its own errors gracefully
- **Error handling**: Each instance should handle its own errors gracefully
3 changes: 2 additions & 1 deletion apps/docs/content/docs/blocks/response.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -182,4 +182,5 @@ headers:
- **Structure your responses consistently**: Maintain a consistent JSON structure across all your API endpoints for better developer experience
- **Include relevant metadata**: Add timestamps and version information to help with debugging and monitoring
- **Handle errors gracefully**: Use conditional logic in your workflow to set appropriate error responses with descriptive messages
- **Validate variable references**: Ensure all referenced variables exist and contain the expected data types before the Response block executes
- **Validate variable references**: Ensure all referenced variables exist and contain the expected data types before the Response block executes

2 changes: 1 addition & 1 deletion apps/docs/content/docs/blocks/workflow.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -256,4 +256,4 @@ return {
- **Document dependencies**: Clearly document which workflows depend on others and maintain dependency maps
- **Test independently**: Ensure child workflows can be tested and validated independently from parent workflows
- **Monitor performance**: Be aware that nested workflows can impact overall execution time and resource usage
- **Use semantic naming**: Give workflows descriptive names that clearly indicate their purpose and functionality
- **Use semantic naming**: Give workflows descriptive names that clearly indicate their purpose and functionality
1 change: 1 addition & 0 deletions apps/docs/content/docs/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"execution",
"---Advanced---",
"./variables/index",
"yaml",
"---SDKs---",
"./sdks/python",
"./sdks/typescript"
Expand Down
11 changes: 11 additions & 0 deletions apps/docs/content/docs/tools/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,14 @@ Tools typically return structured data that can be processed by subsequent block
- Status information

Refer to each tool's specific documentation to understand its exact output format.

## YAML Configuration

For detailed YAML workflow configuration and syntax, see the [YAML Workflow Reference](/yaml) documentation. This includes comprehensive guides for:

- **Block Reference Syntax**: How to connect and reference data between blocks
- **Tool Configuration**: Using tools in both standalone blocks and agent configurations
- **Environment Variables**: Secure handling of API keys and credentials
- **Complete Examples**: Real-world workflow patterns and configurations

For specific tool parameters and configuration options, refer to each tool's individual documentation page.
238 changes: 238 additions & 0 deletions apps/docs/content/docs/yaml/block-reference.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
---
title: Block Reference Syntax
description: How to reference data between blocks in YAML workflows
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'

Block references are the foundation of data flow in Sim Studio workflows. Understanding how to correctly reference outputs from one block as inputs to another is essential for building functional workflows.

## Basic Reference Rules

### 1. Use Block Names, Not Block IDs

<Tabs items={['Correct', 'Incorrect']}>
<Tab>
```yaml
# Block definition
email-sender:
type: agent
name: "Email Generator"
# ... configuration

# Reference the block
next-block:
inputs:
userPrompt: "Process this: <emailgenerator.content>"
```
</Tab>
<Tab>
```yaml
# Block definition
email-sender:
type: agent
name: "Email Generator"
# ... configuration

# ❌ Don't reference by block ID
next-block:
inputs:
userPrompt: "Process this: <email-sender.content>"
```
</Tab>
</Tabs>

### 2. Convert Names to Reference Format

To create a block reference:

1. **Take the block name**: "Email Generator"
2. **Convert to lowercase**: "email generator"
3. **Remove spaces and special characters**: "emailgenerator"
4. **Add property**: `<emailgenerator.content>`

### 3. Use Correct Properties

Different block types expose different properties:

- **Agent blocks**: `.content` (the AI response)
- **Function blocks**: `.output` (the return value)
- **API blocks**: `.output` (the response data)
- **Tool blocks**: `.output` (the tool result)

## Reference Examples

### Common Block References

```yaml
# Agent block outputs
<agentname.content> # Primary AI response
<agentname.tokens> # Token usage information
<agentname.cost> # Estimated cost
<agentname.tool_calls> # Tool execution details

# Function block outputs
<functionname.output> # Function return value
<functionname.error> # Error information (if any)

# API block outputs
<apiname.output> # Response data
<apiname.status> # HTTP status code
<apiname.headers> # Response headers

# Tool block outputs
<toolname.output> # Tool execution result
```

### Multi-Word Block Names

```yaml
# Block name: "Data Processor 2"
<dataprocessor2.output>

# Block name: "Email Validation Service"
<emailvalidationservice.output>

# Block name: "Customer Info Agent"
<customerinfoagent.content>
```

## Special Reference Cases

### Starter Block

<Callout type="warning">
The starter block is always referenced as `<start.input>` regardless of its actual name.
</Callout>

```yaml
# Starter block definition
my-custom-start:
type: starter
name: "Custom Workflow Start"
# ... configuration

# Always reference as 'start'
agent-1:
inputs:
userPrompt: <start.input> # ✅ Correct
# userPrompt: <customworkflowstart.input> # ❌ Wrong
```

### Loop Variables

Inside loop blocks, special variables are available:

```yaml
# Available in loop child blocks
<loop.index> # Current iteration (0-based)
<loop.currentItem> # Current item being processed (forEach loops)
<loop.items> # Full collection (forEach loops)
```

### Parallel Variables

Inside parallel blocks, special variables are available:

```yaml
# Available in parallel child blocks
<parallel.index> # Instance number (0-based)
<parallel.currentItem> # Item for this instance
<parallel.items> # Full collection
```

## Complex Reference Examples

### Nested Data Access

When referencing complex objects, use dot notation:

```yaml
# If an agent returns structured data
data-analyzer:
type: agent
name: "Data Analyzer"
inputs:
responseFormat: |
{
"schema": {
"type": "object",
"properties": {
"analysis": {"type": "object"},
"summary": {"type": "string"},
"metrics": {"type": "object"}
}
}
}

# Reference nested properties
next-step:
inputs:
userPrompt: |
Summary: <dataanalyzer.analysis.summary>
Score: <dataanalyzer.metrics.score>
Full data: <dataanalyzer.content>
```

### Multiple References in Text

```yaml
email-composer:
type: agent
inputs:
userPrompt: |
Create an email with the following information:

Customer: <customeragent.content>
Order Details: <orderprocessor.output>
Support Ticket: <ticketanalyzer.content>

Original request: <start.input>
```

### References in Code Blocks

When using references in function blocks, they're replaced as JavaScript values:

```yaml
data-processor:
type: function
inputs:
code: |
// References are replaced with actual values
const customerData = <customeragent.content>;
const orderInfo = <orderprocessor.output>;
const originalInput = <start.input>;

// Process the data
return {
customer: customerData.name,
orderId: orderInfo.id,
processed: true
};
```

## Reference Validation

Sim Studio validates all references when importing YAML:

### Valid References
- Block exists in the workflow
- Property is appropriate for block type
- No circular dependencies
- Proper syntax formatting

### Common Errors
- **Block not found**: Referenced block doesn't exist
- **Wrong property**: Using `.content` on a function block
- **Typos**: Misspelled block names or properties
- **Circular references**: Block references itself directly or indirectly

## Best Practices

1. **Use descriptive block names**: Makes references more readable
2. **Be consistent**: Use the same naming convention throughout
3. **Check references**: Ensure all referenced blocks exist
4. **Avoid deep nesting**: Keep reference chains manageable
5. **Document complex flows**: Add comments to explain reference relationships
Loading