You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -57,7 +55,7 @@ We strive to keep our workflow as simple as possible. To contribute:
57
55
```
58
56
59
57
7.**Create a Pull Request**
60
-
Open a pull request against the `main` branch on GitHub. Please provide a clear description of the changes and reference any relevant issues (e.g., `fixes #123`).
58
+
Open a pull request against the `staging` branch on GitHub. Please provide a clear description of the changes and reference any relevant issues (e.g., `fixes #123`).
61
59
62
60
---
63
61
@@ -85,7 +83,7 @@ If you discover a bug or have a feature request, please open an issue in our Git
85
83
Before creating a pull request:
86
84
87
85
-**Ensure Your Branch Is Up-to-Date:**
88
-
Rebase your branch onto the latest `main` branch to prevent merge conflicts.
86
+
Rebase your branch onto the latest `staging` branch to prevent merge conflicts.
89
87
-**Follow the Guidelines:**
90
88
Make sure your changes are well-tested, follow our coding standards, and include relevant documentation if necessary.
91
89
@@ -209,13 +207,14 @@ Dev Containers provide a consistent and easy-to-use development environment:
209
207
210
208
3. **Start Developing:**
211
209
212
-
- Run `bun run dev` in the terminal or use the `sim-start` alias
210
+
- Run `bun run dev:full` in the terminal or use the `sim-start` alias
211
+
- This starts both the main application and the realtime socket server
213
212
- All dependencies and configurations are automatically set up
214
213
- Your changes will be automatically hot-reloaded
215
214
216
215
4. **GitHub Codespaces:**
217
216
- This setup also works with GitHub Codespaces if you prefer development in the browser
218
-
- Just click "Code" → "Codespaces" → "Create codespace on main"
217
+
- Just click "Code" → "Codespaces" → "Create codespace on staging"
219
218
220
219
### Option 4: Manual Setup
221
220
@@ -246,9 +245,11 @@ If you prefer not to use Docker or Dev Containers:
246
245
4. **Run the Development Server:**
247
246
248
247
```bash
249
-
bun run dev
248
+
bun run dev:full
250
249
```
251
250
251
+
This command starts both the main application and the realtime socket server required for full functionality.
252
+
252
253
5. **Make Your Changes and Test Locally.**
253
254
254
255
### Email Template Development
@@ -379,7 +380,18 @@ In addition, you will need to update the registries:
description: 'Optional parameter only user can set',
394
+
},
383
395
},
384
396
request: {
385
397
// Request configuration
@@ -429,11 +441,57 @@ Maintaining consistent naming across the codebase is critical for auto-generatio
429
441
- **Tool Exports:** Should be named `{toolName}Tool` (e.g., `fetchTool`)
430
442
- **Tool IDs:** Should follow the format `{provider}_{tool_name}` (e.g., `pinecone_fetch`)
431
443
444
+
### Parameter Visibility System
445
+
446
+
Sim Studio implements a sophisticated parameter visibility system that controls how parameters are exposed to users and LLMs in agent workflows. Each parameter can have one of four visibility levels:
447
+
448
+
| Visibility | User Sees | LLM Sees | How It Gets Set |
|`user-only`| ✅ Yes | ❌ No | User provides in UI |
451
+
|`user-or-llm`| ✅ Yes | ✅ Yes | User provides OR LLM generates |
452
+
|`llm-only`| ❌ No | ✅ Yes | LLM generates only |
453
+
|`hidden`| ❌ No | ❌ No | Application injects at runtime |
454
+
455
+
#### Visibility Guidelines
456
+
457
+
- **`user-or-llm`**: Use for core parameters that can be provided by users or intelligently filled by the LLM (e.g., search queries, email subjects)
458
+
- **`user-only`**: Use for configuration parameters, API keys, and settings that only users should control (e.g., number of results, authentication credentials)
459
+
- **`llm-only`**: Use for computed values that the LLM should handle internally (e.g., dynamic calculations, contextual data)
460
+
- **`hidden`**: Use for system-level parameters injected at runtime (e.g., OAuth tokens, internal identifiers)
461
+
462
+
#### Example Implementation
463
+
464
+
```typescript
465
+
params: {
466
+
query: {
467
+
type: 'string',
468
+
required: true,
469
+
visibility: 'user-or-llm', // User can provide or LLM can generate
470
+
description: 'Search query to execute',
471
+
},
472
+
apiKey: {
473
+
type: 'string',
474
+
required: true,
475
+
visibility: 'user-only', // Only user provides this
476
+
description: 'API key for authentication',
477
+
},
478
+
internalId: {
479
+
type: 'string',
480
+
required: false,
481
+
visibility: 'hidden', // System provides this at runtime
482
+
description: 'Internal tracking identifier',
483
+
},
484
+
}
485
+
```
486
+
487
+
This visibility system ensures clean user interfaces while maintaining full flexibility for LLM-driven workflows.
488
+
432
489
### Guidelines & Best Practices
433
490
434
491
- **Code Style:** Follow the project's ESLint and Prettier configurations. Use meaningful variable names and small, focused functions.
435
492
- **Documentation:** Clearly document the purpose, inputs, outputs, and any special behavior for your block/tool.
436
493
- **Error Handling:** Implement robust error handling and provide user-friendly error messages.
494
+
- **Parameter Visibility:** Always specify the appropriate visibility level for each parameter to ensure proper UI behavior and LLM integration.
437
495
- **Testing:** Add unit or integration tests to verify your changes when possible.
438
496
- **Commit Changes:** Update all related components and registries, and describe your changes in your pull request.
0 commit comments