diff --git a/apps/docs/public/android-chrome-192x192.png b/apps/docs/public/android-chrome-192x192.png new file mode 100644 index 00000000000..b37ebba8596 Binary files /dev/null and b/apps/docs/public/android-chrome-192x192.png differ diff --git a/apps/docs/public/android-chrome-512x512.png b/apps/docs/public/android-chrome-512x512.png new file mode 100644 index 00000000000..3f792baace7 Binary files /dev/null and b/apps/docs/public/android-chrome-512x512.png differ diff --git a/apps/docs/public/apple-touch-icon.png b/apps/docs/public/apple-touch-icon.png new file mode 100644 index 00000000000..a0096f37e99 Binary files /dev/null and b/apps/docs/public/apple-touch-icon.png differ diff --git a/apps/docs/public/favicon-16x16.png b/apps/docs/public/favicon-16x16.png new file mode 100644 index 00000000000..eb5d33b2ea7 Binary files /dev/null and b/apps/docs/public/favicon-16x16.png differ diff --git a/apps/docs/public/favicon-32x32.png b/apps/docs/public/favicon-32x32.png new file mode 100644 index 00000000000..6d296ff9510 Binary files /dev/null and b/apps/docs/public/favicon-32x32.png differ diff --git a/apps/docs/public/favicon/android-chrome-192x192.png b/apps/docs/public/favicon/android-chrome-192x192.png index fb64742df31..b37ebba8596 100644 Binary files a/apps/docs/public/favicon/android-chrome-192x192.png and b/apps/docs/public/favicon/android-chrome-192x192.png differ diff --git a/apps/docs/public/favicon/android-chrome-512x512.png b/apps/docs/public/favicon/android-chrome-512x512.png index 74138d0430a..3f792baace7 100644 Binary files a/apps/docs/public/favicon/android-chrome-512x512.png and b/apps/docs/public/favicon/android-chrome-512x512.png differ diff --git a/apps/docs/public/favicon/apple-touch-icon.png b/apps/docs/public/favicon/apple-touch-icon.png index 373fdb092c6..a0096f37e99 100644 Binary files a/apps/docs/public/favicon/apple-touch-icon.png and b/apps/docs/public/favicon/apple-touch-icon.png differ diff --git a/apps/docs/public/favicon/favicon-16x16.png b/apps/docs/public/favicon/favicon-16x16.png index f7db82fa3da..eb5d33b2ea7 100644 Binary files a/apps/docs/public/favicon/favicon-16x16.png and b/apps/docs/public/favicon/favicon-16x16.png differ diff --git a/apps/docs/public/favicon/favicon-32x32.png b/apps/docs/public/favicon/favicon-32x32.png index c246b267286..6d296ff9510 100644 Binary files a/apps/docs/public/favicon/favicon-32x32.png and b/apps/docs/public/favicon/favicon-32x32.png differ diff --git a/apps/docs/public/favicon/site.webmanifest b/apps/docs/public/favicon/site.webmanifest index 981d97f1563..fa99de77db6 100644 --- a/apps/docs/public/favicon/site.webmanifest +++ b/apps/docs/public/favicon/site.webmanifest @@ -1,18 +1,16 @@ { - "name": "MyWebSite", - "short_name": "MySite", + "name": "", + "short_name": "", "icons": [ { - "src": "/web-app-manifest-192x192.png", + "src": "/android-chrome-192x192.png", "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" + "type": "image/png" }, { - "src": "/web-app-manifest-512x512.png", + "src": "/android-chrome-512x512.png", "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" + "type": "image/png" } ], "theme_color": "#ffffff", diff --git a/apps/sim/executor/index.test.ts b/apps/sim/executor/index.test.ts index 523afe8933e..9059f1d0e63 100644 --- a/apps/sim/executor/index.test.ts +++ b/apps/sim/executor/index.test.ts @@ -1397,58 +1397,61 @@ describe('Executor', () => { } ) - it.concurrent.skip('should propagate errors from child workflows to parent workflow', async () => { - const workflow = { - version: '1.0', - blocks: [ - { - id: 'starter', - position: { x: 0, y: 0 }, - metadata: { id: BlockType.STARTER, name: 'Starter Block' }, - config: { tool: 'starter', params: {} }, - inputs: {} as Record, - outputs: {} as Record, - enabled: true, - }, - { - id: 'workflow-block', - position: { x: 100, y: 0 }, - metadata: { id: BlockType.WORKFLOW, name: 'Failing Workflow Block' }, - config: { - tool: 'workflow', - params: { - workflowId: 'failing-child-workflow', - input: {}, + it.concurrent.skip( + 'should propagate errors from child workflows to parent workflow', + async () => { + const workflow = { + version: '1.0', + blocks: [ + { + id: 'starter', + position: { x: 0, y: 0 }, + metadata: { id: BlockType.STARTER, name: 'Starter Block' }, + config: { tool: 'starter', params: {} }, + inputs: {} as Record, + outputs: {} as Record, + enabled: true, + }, + { + id: 'workflow-block', + position: { x: 100, y: 0 }, + metadata: { id: BlockType.WORKFLOW, name: 'Failing Workflow Block' }, + config: { + tool: 'workflow', + params: { + workflowId: 'failing-child-workflow', + input: {}, + }, }, + inputs: {} as Record, + outputs: { output: 'json' as BlockOutput }, + enabled: true, }, - inputs: {} as Record, - outputs: { output: 'json' as BlockOutput }, - enabled: true, - }, - ], - connections: [{ source: 'starter', target: 'workflow-block' }], - loops: {}, - } - - const executor = new Executor({ - workflow, - workflowInput: {}, - }) + ], + connections: [{ source: 'starter', target: 'workflow-block' }], + loops: {}, + } - const result = await executor.execute('test-workflow-id') + const executor = new Executor({ + workflow, + workflowInput: {}, + }) - // Verify that child workflow errors propagate to parent - expect(result).toBeDefined() - if ('success' in result) { - // The workflow should fail due to child workflow failure - expect(result.success).toBe(false) - expect(result.error).toBeDefined() + const result = await executor.execute('test-workflow-id') - // Error message should indicate it came from a child workflow - if (result.error && typeof result.error === 'string') { - expect(result.error).toContain('Error in child workflow') + // Verify that child workflow errors propagate to parent + expect(result).toBeDefined() + if ('success' in result) { + // The workflow should fail due to child workflow failure + expect(result.success).toBe(false) + expect(result.error).toBeDefined() + + // Error message should indicate it came from a child workflow + if (result.error && typeof result.error === 'string') { + expect(result.error).toContain('Error in child workflow') + } } } - }) + ) }) }) diff --git a/apps/sim/package.json b/apps/sim/package.json index 5d07cc11e2c..8976f32efe7 100644 --- a/apps/sim/package.json +++ b/apps/sim/package.json @@ -73,6 +73,7 @@ "@vercel/speed-insights": "^1.2.0", "ai": "^4.3.2", "better-auth": "1.2.9", + "binary-extensions": "^3.1.0", "browser-image-compression": "^2.0.2", "cheerio": "1.1.2", "class-variance-authority": "^0.7.1", diff --git a/apps/sim/providers/gatewayz/index.ts b/apps/sim/providers/gatewayz/index.ts index 417ddba5478..ed8db26a435 100644 --- a/apps/sim/providers/gatewayz/index.ts +++ b/apps/sim/providers/gatewayz/index.ts @@ -1,18 +1,9 @@ import OpenAI from 'openai' -import { createLogger } from '@/lib/logs/console/logger' import { env } from '@/lib/env' +import { createLogger } from '@/lib/logs/console/logger' import type { StreamingExecution } from '@/executor/types' -import type { - ProviderConfig, - ProviderRequest, - ProviderResponse, - TimeSegment, -} from '@/providers/types' -import { - prepareToolExecution, - prepareToolsWithUsageControl, - trackForcedToolUsage, -} from '@/providers/utils' +import type { ProviderConfig, ProviderRequest, ProviderResponse } from '@/providers/types' +import { prepareToolExecution, prepareToolsWithUsageControl } from '@/providers/utils' import { executeTool } from '@/tools' const logger = createLogger('GatewayzProvider') @@ -69,7 +60,9 @@ export const gatewayzProvider: ProviderConfig = { models: [], // Will be populated dynamically defaultModel: '', // Will be determined by the gateway - executeRequest: async (request: ProviderRequest): Promise => { + executeRequest: async ( + request: ProviderRequest + ): Promise => { logger.info('Preparing Gatewayz request', { model: request.model, hasSystemPrompt: !!request.systemPrompt, @@ -178,7 +171,7 @@ async function executeNonStreamingRequest( return { content: message.content || '', model: request.model, - toolCalls: message.tool_calls.map(tc => ({ + toolCalls: message.tool_calls.map((tc) => ({ name: tc.function.name, arguments: JSON.parse(tc.function.arguments), })), @@ -234,4 +227,4 @@ async function executeStreamingRequest( logger.error('Gatewayz stream failed:', error) throw error } -} \ No newline at end of file +} diff --git a/apps/sim/providers/utils.ts b/apps/sim/providers/utils.ts index 72510f9e1d5..c3a8d18fa69 100644 --- a/apps/sim/providers/utils.ts +++ b/apps/sim/providers/utils.ts @@ -4,6 +4,7 @@ import { anthropicProvider } from '@/providers/anthropic' import { azureOpenAIProvider } from '@/providers/azure-openai' import { cerebrasProvider } from '@/providers/cerebras' import { deepseekProvider } from '@/providers/deepseek' +import { gatewayzProvider } from '@/providers/gatewayz' import { googleProvider } from '@/providers/google' import { groqProvider } from '@/providers/groq' import { @@ -29,7 +30,6 @@ import { openaiProvider } from '@/providers/openai' import { openRouterProvider } from '@/providers/openrouter' import type { ProviderConfig, ProviderId, ProviderToolConfig } from '@/providers/types' import { xAIProvider } from '@/providers/xai' -import { gatewayzProvider } from '@/providers/gatewayz' import { useCustomToolsStore } from '@/stores/custom-tools/store' import { useProvidersStore } from '@/stores/providers/store' diff --git a/bun.lock b/bun.lock index 069cf936fc6..b2dd4eb3adc 100644 --- a/bun.lock +++ b/bun.lock @@ -111,6 +111,7 @@ "@vercel/speed-insights": "^1.2.0", "ai": "^4.3.2", "better-auth": "1.2.9", + "binary-extensions": "^3.1.0", "browser-image-compression": "^2.0.2", "cheerio": "1.1.2", "class-variance-authority": "^0.7.1", @@ -1682,7 +1683,7 @@ "bignumber.js": ["bignumber.js@9.3.1", "", {}, "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ=="], - "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + "binary-extensions": ["binary-extensions@3.1.0", "", {}, "sha512-Jvvd9hy1w+xUad8+ckQsWA/V1AoyubOvqn0aygjMOVM4BfIaRav1NFS3LsTSDaV4n4FtcCtQXvzep1E6MboqwQ=="], "bintrees": ["bintrees@1.0.2", "", {}, "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="], @@ -4012,6 +4013,8 @@ "http-proxy-agent/agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "is-binary-path/binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + "isomorphic-unfetch/node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], "istanbul-lib-report/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], diff --git a/package.json b/package.json index 3e4b55fdd8e..215c9cf940b 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,13 @@ "dev:sockets": "cd apps/sim && bun run dev:sockets", "dev:full": "cd apps/sim && bun run dev:full", "test": "turbo run test", - "format": "bunx biome format --write .", - "format:check": "bunx biome format .", - "lint": "bunx biome check --write --unsafe .", - "lint:check": "bunx biome check --unsafe .", + "format": "bun x biome format --write .", + "format:check": "bun x biome format .", + "lint": "bun x biome check --write --unsafe .", + "lint:check": "bun x biome check --unsafe .", "lint:helm": "helm lint ./helm/sim --strict --values ./helm/sim/test/values-lint.yaml", "lint:all": "bun run lint && bun run lint:helm", - "check": "bunx biome check --files-ignore-unknown=true", + "check": "bun x biome check --files-ignore-unknown=true", "prepare": "bun husky", "prebuild": "bun run lint:check", "type-check": "turbo run type-check" diff --git a/packages/db/package.json b/packages/db/package.json index 2c02997457a..496e2abbb9b 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -19,9 +19,9 @@ } }, "scripts": { - "db:push": "bunx drizzle-kit push --config=./drizzle.config.ts", - "db:migrate": "bunx drizzle-kit migrate --config=./drizzle.config.ts", - "db:studio": "bunx drizzle-kit studio --config=./drizzle.config.ts", + "db:push": "bun x drizzle-kit push --config=./drizzle.config.ts", + "db:migrate": "bun x drizzle-kit migrate --config=./drizzle.config.ts", + "db:studio": "bun x drizzle-kit studio --config=./drizzle.config.ts", "type-check": "tsc --noEmit" }, "peerDependencies": {