Skip to content

Commit 31fdd2b

Browse files
authored
v0.5.77: room manager redis migration, tool outputs, ui fixes
2 parents 028bc65 + 2c4eb9f commit 31fdd2b

File tree

605 files changed

+37343
-9967
lines changed

Some content is hidden

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

605 files changed

+37343
-9967
lines changed

.cursor/commands/council.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Based on the given area of interest, please:
2+
3+
1. Dig around the codebase in terms of that given area of interest, gather general information such as keywords and architecture overview.
4+
2. Spawn off n=10 (unless specified otherwise) task agents to dig deeper into the codebase in terms of that given area of interest, some of them should be out of the box for variance.
5+
3. Once the task agents are done, use the information to do what the user wants.
6+
7+
If user is in plan mode, use the information to create the plan.

apps/docs/app/[lang]/[[...slug]]/page.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type React from 'react'
22
import { findNeighbour } from 'fumadocs-core/page-tree'
3+
import { Pre } from 'fumadocs-ui/components/codeblock'
34
import defaultMdxComponents from 'fumadocs-ui/mdx'
45
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page'
56
import { ChevronLeft, ChevronRight } from 'lucide-react'
@@ -21,6 +22,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
2122
const data = page.data as PageData
2223
const MDX = data.body
2324
const baseUrl = 'https://docs.sim.ai'
25+
const markdownContent = await data.getText('processed')
2426

2527
const pageTreeRecord = source.pageTree as Record<string, any>
2628
const pageTree =
@@ -200,7 +202,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
200202
<div className='relative mt-6 sm:mt-0'>
201203
<div className='absolute top-1 right-0 flex items-center gap-2'>
202204
<div className='hidden sm:flex'>
203-
<LLMCopyButton markdownUrl={`${page.url}.mdx`} />
205+
<LLMCopyButton content={markdownContent} />
204206
</div>
205207
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
206208
</div>
@@ -211,7 +213,11 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
211213
<MDX
212214
components={{
213215
...defaultMdxComponents,
214-
CodeBlock,
216+
pre: (props: React.HTMLAttributes<HTMLPreElement>) => (
217+
<CodeBlock {...props}>
218+
<Pre>{props.children}</Pre>
219+
</CodeBlock>
220+
),
215221
h1: (props: React.HTMLAttributes<HTMLHeadingElement>) => (
216222
<Heading as='h1' {...props} />
217223
),

apps/docs/app/[lang]/layout.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { defineI18nUI } from 'fumadocs-ui/i18n'
33
import { DocsLayout } from 'fumadocs-ui/layouts/docs'
44
import { RootProvider } from 'fumadocs-ui/provider/next'
55
import { Geist_Mono, Inter } from 'next/font/google'
6+
import Script from 'next/script'
67
import {
78
SidebarFolder,
89
SidebarItem,
@@ -17,11 +18,13 @@ import '../global.css'
1718
const inter = Inter({
1819
subsets: ['latin'],
1920
variable: '--font-geist-sans',
21+
display: 'swap',
2022
})
2123

2224
const geistMono = Geist_Mono({
2325
subsets: ['latin'],
2426
variable: '--font-geist-mono',
27+
display: 'swap',
2528
})
2629

2730
const { provider } = defineI18nUI(i18n, {
@@ -93,10 +96,9 @@ export default async function Layout({ children, params }: LayoutProps) {
9396
type='application/ld+json'
9497
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
9598
/>
96-
{/* OneDollarStats Analytics - CDN script handles everything automatically */}
97-
<script defer src='https://assets.onedollarstats.com/stonks.js' />
9899
</head>
99100
<body className='flex min-h-screen flex-col font-sans'>
101+
<Script src='https://assets.onedollarstats.com/stonks.js' strategy='lazyOnload' />
100102
<RootProvider i18n={provider(lang)}>
101103
<Navbar />
102104
<DocsLayout

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default function NotFound() {
99
<DocsPage>
1010
<DocsBody>
1111
<div className='flex min-h-[60vh] flex-col items-center justify-center text-center'>
12-
<h1 className='mb-4 bg-gradient-to-b from-[#8357FF] to-[#6F3DFA] bg-clip-text font-bold text-8xl text-transparent'>
12+
<h1 className='mb-4 bg-gradient-to-b from-[#47d991] to-[#33c482] bg-clip-text font-bold text-8xl text-transparent'>
1313
404
1414
</h1>
1515
<h2 className='mb-2 font-semibold text-2xl text-foreground'>Page Not Found</h2>

apps/docs/components/icons.tsx

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5113,3 +5113,60 @@ export function PulseIcon(props: SVGProps<SVGSVGElement>) {
51135113
</svg>
51145114
)
51155115
}
5116+
5117+
export function SimilarwebIcon(props: SVGProps<SVGSVGElement>) {
5118+
return (
5119+
<svg
5120+
{...props}
5121+
role='img'
5122+
viewBox='0 0 24 24'
5123+
xmlns='http://www.w3.org/2000/svg'
5124+
height='24'
5125+
width='24'
5126+
>
5127+
<path
5128+
d='M22.099 5.781c-1.283 -2 -3.14 -3.67 -5.27 -4.52l-0.63 -0.213a7.433 7.433 0 0 0 -2.15 -0.331c-2.307 0.01 -4.175 1.92 -4.175 4.275a4.3 4.3 0 0 0 0.867 2.602l-0.26 -0.342c0.124 0.186 0.26 0.37 0.417 0.556 0.663 0.802 1.604 1.635 2.822 2.58 2.999 2.32 4.943 4.378 5.104 6.93 0.038 0.344 0.062 0.696 0.062 1.051 0 1.297 -0.283 2.67 -0.764 3.635h0.005s-0.207 0.377 -0.077 0.487c0.066 0.057 0.21 0.1 0.46 -0.053a12.104 12.104 0 0 0 3.4 -3.33 12.111 12.111 0 0 0 2.088 -6.635 12.098 12.098 0 0 0 -1.9 -6.692zm-9.096 8.718 -1.878 -1.55c-3.934 -2.87 -5.98 -5.966 -4.859 -9.783a8.73 8.73 0 0 1 0.37 -1.016v-0.004s0.278 -0.583 -0.327 -0.295a12.067 12.067 0 0 0 -6.292 9.975 12.11 12.11 0 0 0 2.053 7.421 9.394 9.394 0 0 0 2.154 2.168H4.22c4.148 3.053 7.706 1.446 7.706 1.446h0.003a4.847 4.847 0 0 0 2.962 -4.492 4.855 4.855 0 0 0 -1.889 -3.87z'
5129+
fill='currentColor'
5130+
/>
5131+
</svg>
5132+
)
5133+
}
5134+
5135+
export function CalComIcon(props: SVGProps<SVGSVGElement>) {
5136+
return (
5137+
<svg
5138+
{...props}
5139+
width='101'
5140+
height='22'
5141+
viewBox='0 0 101 22'
5142+
fill='currentColor'
5143+
xmlns='http://www.w3.org/2000/svg'
5144+
>
5145+
<path
5146+
d='M10.0582 20.817C4.32115 20.817 0 16.2763 0 10.6704C0 5.04589 4.1005 0.467773 10.0582 0.467773C13.2209 0.467773 15.409 1.43945 17.1191 3.66311L14.3609 5.96151C13.2025 4.72822 11.805 4.11158 10.0582 4.11158C6.17833 4.11158 4.04533 7.08268 4.04533 10.6704C4.04533 14.2582 6.38059 17.1732 10.0582 17.1732C11.7866 17.1732 13.2577 16.5566 14.4161 15.3233L17.1375 17.7151C15.501 19.8453 13.2577 20.817 10.0582 20.817Z'
5147+
fill='#292929'
5148+
/>
5149+
<path
5150+
d='M29.0161 5.88601H32.7304V20.4612H29.0161V18.331C28.2438 19.8446 26.9566 20.8536 24.4927 20.8536C20.5577 20.8536 17.4133 17.4341 17.4133 13.2297C17.4133 9.02528 20.5577 5.60571 24.4927 5.60571C26.9383 5.60571 28.2438 6.61477 29.0161 8.12835V5.88601ZM29.1264 13.2297C29.1264 10.95 27.5634 9.06266 25.0995 9.06266C22.7274 9.06266 21.1828 10.9686 21.1828 13.2297C21.1828 15.4346 22.7274 17.3967 25.0995 17.3967C27.5451 17.3967 29.1264 15.4907 29.1264 13.2297Z'
5151+
fill='#292929'
5152+
/>
5153+
<path d='M35.3599 0H39.0742V20.4427H35.3599V0Z' fill='#292929' />
5154+
<path
5155+
d='M40.7291 18.5182C40.7291 17.3223 41.6853 16.3132 42.9908 16.3132C44.2964 16.3132 45.2158 17.3223 45.2158 18.5182C45.2158 19.7515 44.278 20.7605 42.9908 20.7605C41.7037 20.7605 40.7291 19.7515 40.7291 18.5182Z'
5156+
fill='#292929'
5157+
/>
5158+
<path
5159+
d='M59.4296 18.1068C58.0505 19.7885 55.9543 20.8536 53.4719 20.8536C49.0404 20.8536 45.7858 17.4341 45.7858 13.2297C45.7858 9.02528 49.0404 5.60571 53.4719 5.60571C55.8623 5.60571 57.9402 6.61477 59.3193 8.20309L56.4508 10.6136C55.7336 9.71667 54.7958 9.04397 53.4719 9.04397C51.0999 9.04397 49.5553 10.95 49.5553 13.211C49.5553 15.472 51.0999 17.378 53.4719 17.378C54.9062 17.378 55.8991 16.6306 56.6346 15.6215L59.4296 18.1068Z'
5160+
fill='#292929'
5161+
/>
5162+
<path
5163+
d='M59.7422 13.2297C59.7422 9.02528 62.9968 5.60571 67.4283 5.60571C71.8598 5.60571 75.1144 9.02528 75.1144 13.2297C75.1144 17.4341 71.8598 20.8536 67.4283 20.8536C62.9968 20.8349 59.7422 17.4341 59.7422 13.2297ZM71.3449 13.2297C71.3449 10.95 69.8003 9.06266 67.4283 9.06266C65.0563 9.04397 63.5117 10.95 63.5117 13.2297C63.5117 15.4907 65.0563 17.3967 67.4283 17.3967C69.8003 17.3967 71.3449 15.4907 71.3449 13.2297Z'
5164+
fill='#292929'
5165+
/>
5166+
<path
5167+
d='M100.232 11.5482V20.4428H96.518V12.4638C96.518 9.94119 95.3412 8.85739 93.576 8.85739C91.921 8.85739 90.7442 9.67958 90.7442 12.4638V20.4428H87.0299V12.4638C87.0299 9.94119 85.8346 8.85739 84.0878 8.85739C82.4329 8.85739 80.9802 9.67958 80.9802 12.4638V20.4428H77.2659V5.8676H80.9802V7.88571C81.7525 6.31607 83.15 5.53125 85.3014 5.53125C87.3425 5.53125 89.0525 6.5403 89.9903 8.24074C90.9281 6.50293 92.3072 5.53125 94.8079 5.53125C97.8603 5.54994 100.232 7.86702 100.232 11.5482Z'
5168+
fill='#292929'
5169+
/>
5170+
</svg>
5171+
)
5172+
}

apps/docs/components/navbar/navbar.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,7 @@ import { ThemeToggle } from '@/components/ui/theme-toggle'
88

99
export function Navbar() {
1010
return (
11-
<nav
12-
className='sticky top-0 z-50 border-border/50 border-b'
13-
style={{
14-
backdropFilter: 'blur(25px) saturate(180%)',
15-
WebkitBackdropFilter: 'blur(25px) saturate(180%)',
16-
}}
17-
>
11+
<nav className='sticky top-0 z-50 border-border/50 border-b bg-background/80 backdrop-blur-md backdrop-saturate-150'>
1812
{/* Desktop: Single row layout */}
1913
<div className='hidden h-16 w-full items-center lg:flex'>
2014
<div

apps/docs/components/page-actions.tsx

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,13 @@
11
'use client'
22

3-
import { useState } from 'react'
43
import { useCopyButton } from 'fumadocs-ui/utils/use-copy-button'
54
import { Check, Copy } from 'lucide-react'
65

7-
const cache = new Map<string, string>()
8-
9-
export function LLMCopyButton({
10-
markdownUrl,
11-
}: {
12-
/**
13-
* A URL to fetch the raw Markdown/MDX content of page
14-
*/
15-
markdownUrl: string
16-
}) {
17-
const [isLoading, setLoading] = useState(false)
18-
const [checked, onClick] = useCopyButton(async () => {
19-
const cached = cache.get(markdownUrl)
20-
if (cached) return navigator.clipboard.writeText(cached)
21-
22-
setLoading(true)
23-
24-
try {
25-
await navigator.clipboard.write([
26-
new ClipboardItem({
27-
'text/plain': fetch(markdownUrl).then(async (res) => {
28-
const content = await res.text()
29-
cache.set(markdownUrl, content)
30-
31-
return content
32-
}),
33-
}),
34-
])
35-
} finally {
36-
setLoading(false)
37-
}
38-
})
6+
export function LLMCopyButton({ content }: { content: string }) {
7+
const [checked, onClick] = useCopyButton(() => navigator.clipboard.writeText(content))
398

409
return (
4110
<button
42-
disabled={isLoading}
4311
onClick={onClick}
4412
className='flex cursor-pointer items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
4513
aria-label={checked ? 'Copied to clipboard' : 'Copy page content'}

apps/docs/components/ui/code-block.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,16 @@ export function CodeBlock(props: React.ComponentProps<typeof FumadocsCodeBlock>)
1717
return (
1818
<FumadocsCodeBlock
1919
{...props}
20-
Actions={({ children, className }) => (
20+
Actions={({ className }) => (
2121
<div className={cn('empty:hidden', className)}>
22-
{/* Custom copy button */}
2322
<button
2423
type='button'
2524
aria-label={copied ? 'Copied Text' : 'Copy Text'}
2625
onClick={(e) => {
27-
const pre = (e.currentTarget as HTMLElement)
28-
.closest('.nd-codeblock')
29-
?.querySelector('pre')
26+
const pre = (e.currentTarget as HTMLElement).closest('figure')?.querySelector('pre')
3027
if (pre) handleCopy(pre.textContent || '')
3128
}}
32-
className={cn(
33-
'cursor-pointer rounded-md p-2 transition-all',
34-
'border border-border bg-background/80 hover:bg-muted',
35-
'backdrop-blur-sm'
36-
)}
29+
className='cursor-pointer rounded-md p-2 text-muted-foreground transition-colors hover:text-foreground'
3730
>
3831
<span className='flex items-center justify-center'>
3932
{copied ? (

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
AsanaIcon,
1414
BrainIcon,
1515
BrowserUseIcon,
16+
CalComIcon,
1617
CalendlyIcon,
1718
CirclebackIcon,
1819
ClayIcon,
@@ -100,6 +101,7 @@ import {
100101
ServiceNowIcon,
101102
SftpIcon,
102103
ShopifyIcon,
104+
SimilarwebIcon,
103105
SlackIcon,
104106
SmtpIcon,
105107
SQSIcon,
@@ -141,6 +143,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
141143
arxiv: ArxivIcon,
142144
asana: AsanaIcon,
143145
browser_use: BrowserUseIcon,
146+
calcom: CalComIcon,
144147
calendly: CalendlyIcon,
145148
circleback: CirclebackIcon,
146149
clay: ClayIcon,
@@ -228,6 +231,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
228231
sftp: SftpIcon,
229232
sharepoint: MicrosoftSharepointIcon,
230233
shopify: ShopifyIcon,
234+
similarweb: SimilarwebIcon,
231235
slack: SlackIcon,
232236
smtp: SmtpIcon,
233237
sqs: SQSIcon,

apps/docs/content/docs/en/blocks/agent.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Controls response randomness and creativity:
5858

5959
### Max Output Tokens
6060

61-
Controls the maximum length of the model's response. For Anthropic models, Sim uses reliable defaults: streaming executions use the model's full capacity (e.g. 64,000 tokens for Claude 4.5), while non-streaming executions default to 8,192 to avoid timeout issues. For long-form content generation via API, explicitly set a higher value.
61+
Controls the maximum length of the model's response. For Anthropic models, Sim uses reliable defaults: streaming executions use the model's full capacity (e.g. 64,000 tokens for Claude 4.5), while non-streaming executions default to 8,192 to avoid timeout issues. When using tools with Anthropic models, intermediate tool-calling requests use a capped limit of 8,192 tokens to avoid SDK timeout errors, regardless of your configured max tokens—the final streaming response uses your full configured limit. This only affects Anthropic's direct API; AWS Bedrock handles this automatically. For long-form content generation via API, explicitly set a higher value.
6262

6363
### API Key
6464

0 commit comments

Comments
 (0)