Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 1 addition & 3 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"@sim/db": "workspace:*",
"@sim/emcn": "workspace:*",
"@sim/workflow-renderer": "workspace:*",
"@vercel/og": "^0.6.5",
"ai": "5.0.203",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
Expand All @@ -32,7 +31,6 @@
"lucide-react": "^0.511.0",
"next": "16.2.11",
"next-themes": "^0.4.6",
"postgres": "^3.4.5",
"react": "19.2.4",
"react-dom": "19.2.4",
"remark-breaks": "^4.0.0",
Expand All @@ -47,7 +45,7 @@
"@sim/tsconfig": "workspace:*",
"@tailwindcss/postcss": "^4.0.12",
"@types/mdx": "^2.0.13",
"@types/node": "^22.14.1",
"@types/node": "24.2.1",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.0.4",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
'use client'

import { ChipLink } from '@sim/emcn'
import { BookOpen, Github, Rss } from 'lucide-react'
import { BookOpen, Rss } from 'lucide-react'
import { GithubOutlineIcon } from '@/components/icons'

/**
* Changelog hero actions - the GitHub / Documentation / RSS pill links shown
Expand All @@ -18,7 +19,7 @@ export function ChangelogActions() {
href='https://github.com/simstudioai/sim/releases'
target='_blank'
rel='noopener noreferrer'
leftIcon={Github}
leftIcon={GithubOutlineIcon}
>
View on GitHub
</ChipLink>
Expand Down
15 changes: 0 additions & 15 deletions apps/sim/lib/audio/extractor.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { execSync } from 'node:child_process'
import fsSync from 'node:fs'
import fs from 'node:fs/promises'
import os from 'node:os'
import path from 'node:path'
import { createLogger } from '@sim/logger'
import ffmpegStatic from 'ffmpeg-static'
import ffmpeg from 'fluent-ffmpeg'
import type {
AudioExtractionOptions,
Expand Down Expand Up @@ -32,19 +30,6 @@ function ensureFfmpeg(): void {

ffmpegInitialized = true

// Try ffmpeg-static binary
if (ffmpegStatic && typeof ffmpegStatic === 'string') {
try {
fsSync.accessSync(ffmpegStatic, fsSync.constants.X_OK)
ffmpegPath = ffmpegStatic
ffmpeg.setFfmpegPath(ffmpegPath)
logger.info('[FFmpeg] Using ffmpeg-static:', ffmpegPath)
return
} catch {
// Binary doesn't exist or not executable
}
}

// Try system ffmpeg (cross-platform)
try {
const cmd = process.platform === 'win32' ? 'where ffmpeg' : 'which ffmpeg'
Expand Down
15 changes: 1 addition & 14 deletions apps/sim/lib/media/ffmpeg.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
import { execSync } from 'node:child_process'
import fsSync from 'node:fs'
import fs from 'node:fs/promises'
import os from 'node:os'
import path from 'node:path'
import { createLogger } from '@sim/logger'
import ffmpegStatic from 'ffmpeg-static'
import ffmpeg from 'fluent-ffmpeg'

const logger = createLogger('MediaFfmpeg')

let ffmpegInitialized = false
let ffmpegPath: string | null = null

/** Lazy FFmpeg binary resolution (ffmpeg-static, then system), mirroring lib/audio/extractor.ts. */
/** Lazy system FFmpeg binary resolution, mirroring lib/audio/extractor.ts. */
function ensureFfmpeg(): void {
if (ffmpegInitialized) {
if (!ffmpegPath) {
Expand All @@ -24,17 +22,6 @@ function ensureFfmpeg(): void {
}
ffmpegInitialized = true

if (ffmpegStatic && typeof ffmpegStatic === 'string') {
try {
fsSync.accessSync(ffmpegStatic, fsSync.constants.X_OK)
ffmpegPath = ffmpegStatic
ffmpeg.setFfmpegPath(ffmpegPath)
return
} catch {
// fall through to system ffmpeg
}
}

try {
const cmd = process.platform === 'win32' ? 'where ffmpeg' : 'which ffmpeg'
ffmpegPath = execSync(cmd, { encoding: 'utf-8' }).trim().split('\n')[0]
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ const nextConfig: NextConfig = {
serverExternalPackages: [
'@1password/sdk',
'unpdf',
'ffmpeg-static',
'fluent-ffmpeg',
'ws',
'isolated-vm',
Expand All @@ -143,7 +142,6 @@ const nextConfig: NextConfig = {
],
},
experimental: {
optimizeCss: !isDev,
turbopackFileSystemCacheForDev: false,
/**
* Turbopack's persistent build cache (beta) — opt-in via env so only the
Expand Down
34 changes: 12 additions & 22 deletions apps/sim/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"@1password/sdk": "0.3.1",
"@a2a-js/sdk": "1.0.0-alpha.0",
"@anthropic-ai/sdk": "0.114.0",
"@aws-sdk/client-appconfig": "3.1032.0",
"@aws-sdk/client-appconfigdata": "3.1032.0",
"@aws-sdk/client-athena": "3.1032.0",
"@aws-sdk/client-bedrock-runtime": "3.1032.0",
Expand Down Expand Up @@ -78,14 +79,15 @@
"@modelcontextprotocol/sdk": "1.29.0",
"@monaco-editor/react": "4.7.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/exporter-logs-otlp-http": "^0.217.0",
"@opentelemetry/exporter-metrics-otlp-http": "^0.217.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.217.0",
"@opentelemetry/resources": "^2.7.0",
"@opentelemetry/sdk-metrics": "^2.7.0",
"@opentelemetry/sdk-node": "^0.217.0",
"@opentelemetry/sdk-trace-base": "^2.7.0",
"@opentelemetry/sdk-trace-node": "^2.7.0",
"@opentelemetry/core": "2.7.1",
"@opentelemetry/exporter-logs-otlp-http": "0.217.0",
"@opentelemetry/exporter-metrics-otlp-http": "0.217.0",
"@opentelemetry/exporter-trace-otlp-http": "0.217.0",
"@opentelemetry/resources": "2.7.1",
"@opentelemetry/sdk-metrics": "2.7.1",
"@opentelemetry/sdk-node": "0.217.0",
"@opentelemetry/sdk-trace-base": "2.7.1",
"@opentelemetry/sdk-trace-node": "2.7.1",
"@opentelemetry/semantic-conventions": "^1.32.0",
"@radix-ui/react-avatar": "1.1.10",
"@radix-ui/react-checkbox": "^1.1.3",
Expand Down Expand Up @@ -148,7 +150,6 @@
"drizzle-orm": "^0.45.2",
"echarts": "6.1.0",
"es-toolkit": "1.45.1",
"ffmpeg-static": "5.3.0",
"fluent-ffmpeg": "2.1.3",
"framer-motion": "^12.5.0",
"free-email-domains": "1.2.25",
Expand All @@ -159,7 +160,7 @@
"http-proxy-agent": "7.0.2",
"https-proxy-agent": "7.0.6",
"idb-keyval": "6.2.2",
"image-size": "1.2.1",
"image-size": "2.0.2",
"imapflow": "1.2.4",
"input-otp": "^1.4.2",
"ioredis": "^5.6.0",
Expand All @@ -168,10 +169,9 @@
"jose": "6.0.11",
"js-tiktoken": "1.0.21",
"js-yaml": "4.3.0",
"json5": "2.2.3",
"jszip": "3.10.1",
"lru-cache": "11.3.6",
"lucide-react": "^0.479.0",
"lucide-react": "^0.511.0",
"mammoth": "^1.9.0",
"mermaid": "11.15.0",
"micromatch": "4.0.8",
Expand Down Expand Up @@ -248,22 +248,12 @@
"@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^4.1.0",
"autoprefixer": "10.4.21",
"critters": "0.0.25",
"jsdom": "^26.0.0",
"postcss": "^8",
"react-email": "4.3.2",
"tailwindcss": "^3.4.1",
"typescript": "^7.0.2",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^4.1.0"
},
"overrides": {
"next": "16.2.11",
"@next/env": "16.2.11",
"mermaid": "11.15.0",
"react-floater": {
"react": "$react",
"react-dom": "$react-dom"
}
}
}
5 changes: 2 additions & 3 deletions apps/sim/stores/variables/store.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { createLogger } from '@sim/logger'
import { getErrorMessage } from '@sim/utils/errors'
import { generateId } from '@sim/utils/id'
import JSON5 from 'json5'
import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { normalizeName } from '@/executor/constants'
Expand Down Expand Up @@ -32,7 +31,7 @@ function validateVariable(variable: Variable): string | undefined {
return 'Not a valid object format'
}

const parsed = JSON5.parse(valueToEvaluate)
const parsed = JSON.parse(valueToEvaluate)

if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
return 'Not a valid object'
Expand All @@ -45,7 +44,7 @@ function validateVariable(variable: Variable): string | undefined {
}
case 'array':
try {
const parsed = JSON5.parse(String(variable.value))
const parsed = JSON.parse(String(variable.value))
if (!Array.isArray(parsed)) {
return 'Not a valid array'
}
Expand Down
Loading
Loading