Skip to content

Commit 2dbc7fd

Browse files
authored
v0.6.47: files focusing, documentation, opus 4.7
2 parents 387cc97 + e16c8e6 commit 2dbc7fd

File tree

142 files changed

+12464
-2467
lines changed

Some content is hidden

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

142 files changed

+12464
-2467
lines changed

apps/docs/app/[lang]/not-found.tsx

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { DocsBody, DocsPage } from 'fumadocs-ui/page'
1+
import { DocsPage } from 'fumadocs-ui/page'
2+
import Link from 'next/link'
23

34
export const metadata = {
45
title: 'Page Not Found',
@@ -7,17 +8,21 @@ export const metadata = {
78
export default function NotFound() {
89
return (
910
<DocsPage>
10-
<DocsBody>
11-
<div className='flex min-h-[60vh] flex-col items-center justify-center text-center'>
12-
<h1 className='mb-4 bg-gradient-to-b from-[#47d991] to-[#33c482] bg-clip-text font-bold text-8xl text-transparent'>
13-
404
14-
</h1>
15-
<h2 className='mb-2 font-semibold text-2xl text-foreground'>Page Not Found</h2>
16-
<p className='text-muted-foreground'>
17-
The page you're looking for doesn't exist or has been moved.
18-
</p>
19-
</div>
20-
</DocsBody>
11+
<div className='flex min-h-[70vh] flex-col items-center justify-center gap-4 text-center'>
12+
<h1 className='bg-gradient-to-b from-[#47d991] to-[#33c482] bg-clip-text font-bold text-8xl text-transparent'>
13+
404
14+
</h1>
15+
<h2 className='font-semibold text-2xl text-foreground'>Page Not Found</h2>
16+
<p className='text-muted-foreground'>
17+
The page you're looking for doesn't exist or has been moved.
18+
</p>
19+
<Link
20+
href='/'
21+
className='ml-1 flex items-center rounded-[8px] bg-[#33c482] px-2.5 py-1.5 text-[13px] text-white transition-colors duration-200 hover:bg-[#2DAC72]'
22+
>
23+
Go home
24+
</Link>
25+
</div>
2126
</DocsPage>
2227
)
2328
}

apps/docs/app/llms.txt/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ ${Object.entries(sections)
6262
6363
- Full documentation content: ${baseUrl}/llms-full.txt
6464
- Individual page content: ${baseUrl}/llms.mdx/[page-path]
65-
- API documentation: ${baseUrl}/sdks/
65+
- API documentation: ${baseUrl}/api-reference/
6666
- Tool integrations: ${baseUrl}/tools/
6767
6868
## Statistics

apps/docs/components/ui/icon-mapping.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,10 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
226226
cloudflare: CloudflareIcon,
227227
cloudformation: CloudFormationIcon,
228228
cloudwatch: CloudWatchIcon,
229+
confluence: ConfluenceIcon,
229230
confluence_v2: ConfluenceIcon,
230231
crowdstrike: CrowdStrikeIcon,
232+
cursor: CursorIcon,
231233
cursor_v2: CursorIcon,
232234
dagster: DagsterIcon,
233235
databricks: DatabricksIcon,
@@ -245,19 +247,25 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
245247
enrich: EnrichSoIcon,
246248
evernote: EvernoteIcon,
247249
exa: ExaAIIcon,
250+
extend: ExtendIcon,
248251
extend_v2: ExtendIcon,
249252
fathom: FathomIcon,
253+
file: DocumentIcon,
250254
file_v3: DocumentIcon,
251255
firecrawl: FirecrawlIcon,
256+
fireflies: FirefliesIcon,
252257
fireflies_v2: FirefliesIcon,
253258
gamma: GammaIcon,
259+
github: GithubIcon,
254260
github_v2: GithubIcon,
255261
gitlab: GitLabIcon,
262+
gmail: GmailIcon,
256263
gmail_v2: GmailIcon,
257264
gong: GongIcon,
258265
google_ads: GoogleAdsIcon,
259266
google_bigquery: GoogleBigQueryIcon,
260267
google_books: GoogleBooksIcon,
268+
google_calendar: GoogleCalendarIcon,
261269
google_calendar_v2: GoogleCalendarIcon,
262270
google_contacts: GoogleContactsIcon,
263271
google_docs: GoogleDocsIcon,
@@ -268,7 +276,9 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
268276
google_meet: GoogleMeetIcon,
269277
google_pagespeed: GooglePagespeedIcon,
270278
google_search: GoogleIcon,
279+
google_sheets: GoogleSheetsIcon,
271280
google_sheets_v2: GoogleSheetsIcon,
281+
google_slides: GoogleSlidesIcon,
272282
google_slides_v2: GoogleSlidesIcon,
273283
google_tasks: GoogleTasksIcon,
274284
google_translate: GoogleTranslateIcon,
@@ -287,16 +297,19 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
287297
imap: MailServerIcon,
288298
incidentio: IncidentioIcon,
289299
infisical: InfisicalIcon,
300+
intercom: IntercomIcon,
290301
intercom_v2: IntercomIcon,
291302
jina: JinaAIIcon,
292303
jira: JiraIcon,
293304
jira_service_management: JiraServiceManagementIcon,
305+
kalshi: KalshiIcon,
294306
kalshi_v2: KalshiIcon,
295307
ketch: KetchIcon,
296308
knowledge: PackageSearchIcon,
297309
langsmith: LangsmithIcon,
298310
launchdarkly: LaunchDarklyIcon,
299311
lemlist: LemlistIcon,
312+
linear: LinearIcon,
300313
linear_v2: LinearIcon,
301314
linkedin: LinkedInIcon,
302315
linkup: LinkupIcon,
@@ -308,13 +321,16 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
308321
memory: BrainIcon,
309322
microsoft_ad: AzureIcon,
310323
microsoft_dataverse: MicrosoftDataverseIcon,
324+
microsoft_excel: MicrosoftExcelIcon,
311325
microsoft_excel_v2: MicrosoftExcelIcon,
312326
microsoft_planner: MicrosoftPlannerIcon,
313327
microsoft_teams: MicrosoftTeamsIcon,
328+
mistral_parse: MistralIcon,
314329
mistral_parse_v3: MistralIcon,
315330
mongodb: MongoDBIcon,
316331
mysql: MySQLIcon,
317332
neo4j: Neo4jIcon,
333+
notion: NotionIcon,
318334
notion_v2: NotionIcon,
319335
obsidian: ObsidianIcon,
320336
okta: OktaIcon,
@@ -331,12 +347,14 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
331347
postgresql: PostgresIcon,
332348
posthog: PosthogIcon,
333349
profound: ProfoundIcon,
350+
pulse: PulseIcon,
334351
pulse_v2: PulseIcon,
335352
qdrant: QdrantIcon,
336353
quiver: QuiverIcon,
337354
rds: RDSIcon,
338355
reddit: RedditIcon,
339356
redis: RedisIcon,
357+
reducto: ReductoIcon,
340358
reducto_v2: ReductoIcon,
341359
resend: ResendIcon,
342360
revenuecat: RevenueCatIcon,
@@ -362,11 +380,13 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
362380
stagehand: StagehandIcon,
363381
stripe: StripeIcon,
364382
sts: STSIcon,
383+
stt: STTIcon,
365384
stt_v2: STTIcon,
366385
supabase: SupabaseIcon,
367386
tailscale: TailscaleIcon,
368387
tavily: TavilyIcon,
369388
telegram: TelegramIcon,
389+
textract: TextractIcon,
370390
textract_v2: TextractIcon,
371391
tinybird: TinybirdIcon,
372392
translate: TranslateIcon,
@@ -377,7 +397,9 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
377397
typeform: TypeformIcon,
378398
upstash: UpstashIcon,
379399
vercel: VercelIcon,
400+
video_generator: VideoIcon,
380401
video_generator_v2: VideoIcon,
402+
vision: EyeIcon,
381403
vision_v2: EyeIcon,
382404
wealthbox: WealthboxIcon,
383405
webflow: WebflowIcon,

apps/docs/content/docs/de/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Willkommen bei Sim, einem visuellen Workflow-Builder für KI-Anwendungen. Erstel
5151
<Card title="MCP-Integration" href="/mcp">
5252
Externe Dienste mit dem Model Context Protocol verbinden
5353
</Card>
54-
<Card title="SDKs" href="/sdks">
54+
<Card title="SDKs" href="/api-reference">
5555
Sim in Ihre Anwendungen integrieren
5656
</Card>
5757
</Cards>

apps/docs/content/docs/en/api-reference/python.mdx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ Execute a workflow with optional input data.
6565
```python
6666
result = client.execute_workflow(
6767
"workflow-id",
68-
input_data={"message": "Hello, world!"},
68+
input={"message": "Hello, world!"},
6969
timeout=30.0 # 30 seconds
7070
)
7171
```
7272

7373
**Parameters:**
7474
- `workflow_id` (str): The ID of the workflow to execute
75-
- `input_data` (dict, optional): Input data to pass to the workflow
75+
- `input` (dict, optional): Input data to pass to the workflow
7676
- `timeout` (float, optional): Timeout in seconds (default: 30.0)
7777
- `stream` (bool, optional): Enable streaming responses (default: False)
7878
- `selected_outputs` (list[str], optional): Block outputs to stream in `blockName.attribute` format (e.g., `["agent1.content"]`)
@@ -144,7 +144,7 @@ Execute a workflow with automatic retry on rate limit errors using exponential b
144144
```python
145145
result = client.execute_with_retry(
146146
"workflow-id",
147-
input_data={"message": "Hello"},
147+
input={"message": "Hello"},
148148
timeout=30.0,
149149
max_retries=3, # Maximum number of retries
150150
initial_delay=1.0, # Initial delay in seconds
@@ -155,7 +155,7 @@ result = client.execute_with_retry(
155155

156156
**Parameters:**
157157
- `workflow_id` (str): The ID of the workflow to execute
158-
- `input_data` (dict, optional): Input data to pass to the workflow
158+
- `input` (dict, optional): Input data to pass to the workflow
159159
- `timeout` (float, optional): Timeout in seconds
160160
- `stream` (bool, optional): Enable streaming responses
161161
- `selected_outputs` (list, optional): Block outputs to stream
@@ -359,7 +359,7 @@ def run_workflow():
359359
# Execute the workflow
360360
result = client.execute_workflow(
361361
"my-workflow-id",
362-
input_data={
362+
input={
363363
"message": "Process this data",
364364
"user_id": "12345"
365365
}
@@ -488,7 +488,7 @@ def execute_async():
488488
# Start async execution
489489
result = client.execute_workflow(
490490
"workflow-id",
491-
input_data={"data": "large dataset"},
491+
input={"data": "large dataset"},
492492
async_execution=True # Execute asynchronously
493493
)
494494

@@ -533,7 +533,7 @@ def execute_with_retry_handling():
533533
# Automatically retries on rate limit
534534
result = client.execute_with_retry(
535535
"workflow-id",
536-
input_data={"message": "Process this"},
536+
input={"message": "Process this"},
537537
max_retries=5,
538538
initial_delay=1.0,
539539
max_delay=60.0,
@@ -615,7 +615,7 @@ def execute_with_streaming():
615615
# Enable streaming for specific block outputs
616616
result = client.execute_workflow(
617617
"workflow-id",
618-
input_data={"message": "Count to five"},
618+
input={"message": "Count to five"},
619619
stream=True,
620620
selected_outputs=["agent1.content"] # Use blockName.attribute format
621621
)
@@ -758,4 +758,15 @@ Configure the client using environment variables:
758758

759759
## License
760760

761-
Apache-2.0
761+
Apache-2.0
762+
763+
import { FAQ } from '@/components/ui/faq'
764+
765+
<FAQ items={[
766+
{ question: "Do I need to deploy a workflow before I can execute it via the SDK?", answer: "Yes. Workflows must be deployed before they can be executed through the SDK. You can use the validate_workflow() method to check whether a workflow is deployed and ready. If it returns False, deploy the workflow from the Sim UI first and create or select an API key during deployment." },
767+
{ question: "What is the difference between sync and async execution?", answer: "Sync execution (the default) blocks until the workflow completes and returns the full result. Async execution (async_execution=True) returns immediately with a task ID that you can poll using get_job_status(). Use async mode for long-running workflows to avoid request timeouts. Async job statuses include queued, processing, completed, failed, and cancelled." },
768+
{ question: "How does the SDK handle rate limiting?", answer: "The SDK provides built-in rate limiting support through the execute_with_retry() method. It uses exponential backoff (1s, 2s, 4s, 8s...) with 25% jitter to avoid thundering herd problems. If the API returns a retry-after header, that value is used instead. You can configure max_retries, initial_delay, max_delay, and backoff_multiplier. Use get_rate_limit_info() to check your current rate limit status." },
769+
{ question: "Can I use the Python SDK as a context manager?", answer: "Yes. The SimStudioClient supports Python's context manager protocol. Use it with the 'with' statement to automatically close the underlying HTTP session when you are done, which is especially useful for scripts that create and discard client instances." },
770+
{ question: "How do I handle different types of errors from the SDK?", answer: "The SDK raises SimStudioError with a code property for API-specific errors. Common error codes are UNAUTHORIZED (invalid API key), TIMEOUT (request timed out), RATE_LIMIT_EXCEEDED (too many requests), USAGE_LIMIT_EXCEEDED (billing limit reached), and EXECUTION_ERROR (workflow failed). Use the error code to implement targeted error handling and recovery logic." },
771+
{ question: "How do I monitor my API usage and remaining quota?", answer: "Use the get_usage_limits() method to check your current usage. It returns sync and async rate limit details (limit, remaining, reset time, whether you are currently limited), plus your current period cost, usage limit, and plan tier. This lets you monitor consumption and alert before hitting limits." },
772+
]} />

0 commit comments

Comments
 (0)