From 8e733731e660551d8adba19b558de0a25c11a4fc Mon Sep 17 00:00:00 2001 From: Chaker Atallah <74781393+MrChaker@users.noreply.github.com> Date: Sun, 1 Mar 2026 13:22:58 +0100 Subject: [PATCH 1/3] feat(file-helper): add Get File Name action (#11463) Co-authored-by: Claude Sonnet 4.6 --- packages/pieces/core/file-helper/package.json | 2 +- .../pieces/core/file-helper/src/i18n/ca.json | 4 ++- .../pieces/core/file-helper/src/i18n/de.json | 4 ++- .../pieces/core/file-helper/src/i18n/es.json | 4 ++- .../pieces/core/file-helper/src/i18n/fr.json | 4 ++- .../pieces/core/file-helper/src/i18n/hi.json | 4 ++- .../pieces/core/file-helper/src/i18n/id.json | 4 ++- .../pieces/core/file-helper/src/i18n/ja.json | 4 ++- .../pieces/core/file-helper/src/i18n/nl.json | 4 ++- .../pieces/core/file-helper/src/i18n/pt.json | 4 ++- .../pieces/core/file-helper/src/i18n/ru.json | 4 ++- .../file-helper/src/i18n/translation.json | 4 ++- .../pieces/core/file-helper/src/i18n/vi.json | 4 ++- .../pieces/core/file-helper/src/i18n/zh.json | 4 ++- packages/pieces/core/file-helper/src/index.ts | 2 ++ .../src/lib/actions/get-file-name.ts | 27 +++++++++++++++++++ .../src/app/pieces/metadata/piece-cache.ts | 3 ++- 17 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 packages/pieces/core/file-helper/src/lib/actions/get-file-name.ts diff --git a/packages/pieces/core/file-helper/package.json b/packages/pieces/core/file-helper/package.json index 4f2f4bd213f..704fef6a1e5 100644 --- a/packages/pieces/core/file-helper/package.json +++ b/packages/pieces/core/file-helper/package.json @@ -1,6 +1,6 @@ { "name": "@activepieces/piece-file-helper", - "version": "0.1.22", + "version": "0.1.23", "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts", "dependencies": { diff --git a/packages/pieces/core/file-helper/src/i18n/ca.json b/packages/pieces/core/file-helper/src/i18n/ca.json index 74ffbe54cbd..05aa20f5195 100644 --- a/packages/pieces/core/file-helper/src/i18n/ca.json +++ b/packages/pieces/core/file-helper/src/i18n/ca.json @@ -105,5 +105,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Get File Name", + "Get the name of a file": "Get the name of a file" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/de.json b/packages/pieces/core/file-helper/src/i18n/de.json index 63834e94022..0289cbc88f6 100644 --- a/packages/pieces/core/file-helper/src/i18n/de.json +++ b/packages/pieces/core/file-helper/src/i18n/de.json @@ -117,5 +117,7 @@ "FreeARC Archive": "FreeARC-Archiv", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG-Transport-Stream", - "Opus Audio in Ogg Container": "Opus Audio im Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio im Ogg Container", + "Get File Name": "Dateinamen abrufen", + "Get the name of a file": "Den Namen einer Datei abrufen" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/es.json b/packages/pieces/core/file-helper/src/i18n/es.json index b4f0305f407..9971da67089 100644 --- a/packages/pieces/core/file-helper/src/i18n/es.json +++ b/packages/pieces/core/file-helper/src/i18n/es.json @@ -117,5 +117,7 @@ "FreeARC Archive": "Archivo FreeARC", "CD Audio": "Audio de CD", "MPEG Transport Stream": "Flujo de transporte MPEG", - "Opus Audio in Ogg Container": "Audio Opus en contenedor Ogg" + "Opus Audio in Ogg Container": "Audio Opus en contenedor Ogg", + "Get File Name": "Obtener nombre de archivo", + "Get the name of a file": "Obtener el nombre de un archivo" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/fr.json b/packages/pieces/core/file-helper/src/i18n/fr.json index 5c82e8e4bbb..8d4d554da69 100644 --- a/packages/pieces/core/file-helper/src/i18n/fr.json +++ b/packages/pieces/core/file-helper/src/i18n/fr.json @@ -117,5 +117,7 @@ "FreeARC Archive": "Archive FreeARC", "CD Audio": "CD audio", "MPEG Transport Stream": "Flux de Transport MPEG", - "Opus Audio in Ogg Container": "Opus Audio dans Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio dans Ogg Container", + "Get File Name": "Obtenir le nom du fichier", + "Get the name of a file": "Obtenir le nom d'un fichier" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/hi.json b/packages/pieces/core/file-helper/src/i18n/hi.json index 74ffbe54cbd..05aa20f5195 100644 --- a/packages/pieces/core/file-helper/src/i18n/hi.json +++ b/packages/pieces/core/file-helper/src/i18n/hi.json @@ -105,5 +105,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Get File Name", + "Get the name of a file": "Get the name of a file" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/id.json b/packages/pieces/core/file-helper/src/i18n/id.json index 74ffbe54cbd..05aa20f5195 100644 --- a/packages/pieces/core/file-helper/src/i18n/id.json +++ b/packages/pieces/core/file-helper/src/i18n/id.json @@ -105,5 +105,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Get File Name", + "Get the name of a file": "Get the name of a file" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/ja.json b/packages/pieces/core/file-helper/src/i18n/ja.json index 04584fa2522..ee416046d68 100644 --- a/packages/pieces/core/file-helper/src/i18n/ja.json +++ b/packages/pieces/core/file-helper/src/i18n/ja.json @@ -117,5 +117,7 @@ "FreeARC Archive": "FreeARCアーカイブ", "CD Audio": "CD オーディオ", "MPEG Transport Stream": "MPEG転送ストリーム", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "ファイル名を取得", + "Get the name of a file": "ファイルの名前を取得します" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/nl.json b/packages/pieces/core/file-helper/src/i18n/nl.json index 50c2d97006f..889567d64ee 100644 --- a/packages/pieces/core/file-helper/src/i18n/nl.json +++ b/packages/pieces/core/file-helper/src/i18n/nl.json @@ -117,5 +117,7 @@ "FreeARC Archive": "FreeARC archief", "CD Audio": "CD audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Bestandsnaam ophalen", + "Get the name of a file": "Haal de naam van een bestand op" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/pt.json b/packages/pieces/core/file-helper/src/i18n/pt.json index 4e455d2216e..16e4690a320 100644 --- a/packages/pieces/core/file-helper/src/i18n/pt.json +++ b/packages/pieces/core/file-helper/src/i18n/pt.json @@ -117,5 +117,7 @@ "FreeARC Archive": "Arquivo FreeARC", "CD Audio": "Áudio do CD", "MPEG Transport Stream": "Transporte MPEG - Transporte", - "Opus Audio in Ogg Container": "Opus Audio no Recipiente Ogg" + "Opus Audio in Ogg Container": "Opus Audio no Recipiente Ogg", + "Get File Name": "Obter nome do arquivo", + "Get the name of a file": "Obter o nome de um arquivo" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/ru.json b/packages/pieces/core/file-helper/src/i18n/ru.json index c319b9a14dd..74f0ac9984f 100644 --- a/packages/pieces/core/file-helper/src/i18n/ru.json +++ b/packages/pieces/core/file-helper/src/i18n/ru.json @@ -105,5 +105,7 @@ "FreeARC Archive": "Архив FreeARC", "CD Audio": "CD аудио", "MPEG Transport Stream": "MPEG транспортный поток", - "Opus Audio in Ogg Container": "Opus аудио в Ogg Container" + "Opus Audio in Ogg Container": "Opus аудио в Ogg Container", + "Get File Name": "Получить имя файла", + "Get the name of a file": "Получить имя файла" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/translation.json b/packages/pieces/core/file-helper/src/i18n/translation.json index 48b67996e06..d2e80157dd9 100644 --- a/packages/pieces/core/file-helper/src/i18n/translation.json +++ b/packages/pieces/core/file-helper/src/i18n/translation.json @@ -117,5 +117,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Get File Name", + "Get the name of a file": "Get the name of a file" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/vi.json b/packages/pieces/core/file-helper/src/i18n/vi.json index 74ffbe54cbd..05aa20f5195 100644 --- a/packages/pieces/core/file-helper/src/i18n/vi.json +++ b/packages/pieces/core/file-helper/src/i18n/vi.json @@ -105,5 +105,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "Get File Name", + "Get the name of a file": "Get the name of a file" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/i18n/zh.json b/packages/pieces/core/file-helper/src/i18n/zh.json index 768341a3752..2a53bcdccf5 100644 --- a/packages/pieces/core/file-helper/src/i18n/zh.json +++ b/packages/pieces/core/file-helper/src/i18n/zh.json @@ -117,5 +117,7 @@ "FreeARC Archive": "FreeARC Archive", "CD Audio": "CD Audio", "MPEG Transport Stream": "MPEG Transport Stream", - "Opus Audio in Ogg Container": "Opus Audio in Ogg Container" + "Opus Audio in Ogg Container": "Opus Audio in Ogg Container", + "Get File Name": "获取文件名", + "Get the name of a file": "获取文件的名称" } \ No newline at end of file diff --git a/packages/pieces/core/file-helper/src/index.ts b/packages/pieces/core/file-helper/src/index.ts index 6f505290333..2420e8a284b 100644 --- a/packages/pieces/core/file-helper/src/index.ts +++ b/packages/pieces/core/file-helper/src/index.ts @@ -6,6 +6,7 @@ import { changeFileEncoding } from './lib/actions/change-file-encoding'; import { checkFileType } from './lib/actions/check-file-type'; import { zipFiles } from './lib/actions/zip-files'; import { unzipFile } from './lib/actions/unzip-file'; +import { getFileName } from './lib/actions/get-file-name'; export const filesHelper = createPiece({ displayName: 'Files Helper', @@ -22,6 +23,7 @@ export const filesHelper = createPiece({ checkFileType, zipFiles, unzipFile, + getFileName, ], triggers: [], }); diff --git a/packages/pieces/core/file-helper/src/lib/actions/get-file-name.ts b/packages/pieces/core/file-helper/src/lib/actions/get-file-name.ts new file mode 100644 index 00000000000..9b7ab6c487b --- /dev/null +++ b/packages/pieces/core/file-helper/src/lib/actions/get-file-name.ts @@ -0,0 +1,27 @@ +import { Property, createAction } from '@activepieces/pieces-framework'; + +export const getFileName = createAction({ + name: 'get_file_name', + displayName: 'Get File Name', + description: 'Get the name of a file', + errorHandlingOptions: { + continueOnFailure: { + hide: true, + }, + retryOnFailure: { + hide: true, + }, + }, + props: { + file: Property.File({ + displayName: 'File', + required: true, + }), + }, + async run(context) { + const file = context.propsValue.file; + return { + fileName: file.filename, + }; + }, +}); diff --git a/packages/server/api/src/app/pieces/metadata/piece-cache.ts b/packages/server/api/src/app/pieces/metadata/piece-cache.ts index 475a4e03bba..29b75dd6dd7 100644 --- a/packages/server/api/src/app/pieces/metadata/piece-cache.ts +++ b/packages/server/api/src/app/pieces/metadata/piece-cache.ts @@ -64,7 +64,8 @@ export const pieceCache = (log: FastifyBaseLogger) => { pieceTranslation.translatePiece({ piece, locale, mutate: true }), ) - const filteredPieces = [...cachedPieces, ...translatedDevPieces].filter((piece) => + const devPieceNames = new Set(translatedDevPieces.map((p) => p.name)) + const filteredPieces = [...cachedPieces.filter((p) => !devPieceNames.has(p.name)), ...translatedDevPieces].filter((piece) => filterPieceBasedOnType(platformId, piece), ) return lastVersionOfEachPiece(filteredPieces) From 94964554ad47935c3a94e2fa2101980e68a7ef01 Mon Sep 17 00:00:00 2001 From: Abdul <106555838+AbdulTheActivePiecer@users.noreply.github.com> Date: Sun, 1 Mar 2026 15:31:24 +0300 Subject: [PATCH 2/3] fix: remove tools/scripts/fix-dts-require.js (#11466) --- .github/workflows/release-pieces.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-pieces.yml b/.github/workflows/release-pieces.yml index 157c37111ac..c63a175d64f 100644 --- a/.github/workflows/release-pieces.yml +++ b/.github/workflows/release-pieces.yml @@ -105,7 +105,7 @@ jobs: - name: update pieces metadata if: steps.changed.outputs.has_changes == 'true' - run: npx ts-node -r tsconfig-paths/register -r ./tools/scripts/fix-dts-require.js -P packages/server/engine/tsconfig.lib.json tools/scripts/pieces/update-pieces-metadata.ts packages/pieces/framework + run: npx ts-node -r tsconfig-paths/register -r -P packages/server/engine/tsconfig.lib.json tools/scripts/pieces/update-pieces-metadata.ts packages/pieces/framework env: AP_CLOUD_API_KEY: ${{ secrets.AP_CLOUD_API_KEY }} NODE_OPTIONS: "--max-old-space-size=8192" From 9d8e39a9ca0923d54bf30e724b42c4f22ea62cde Mon Sep 17 00:00:00 2001 From: Hazem Adel Date: Sun, 1 Mar 2026 16:22:53 +0200 Subject: [PATCH 3/3] feat: add xAI (Grok) models to agent (#11465) --- bun.lock | 12 ++++---- .../web/src/features/agents/ai-model/hooks.ts | 30 +++++++++++++------ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/bun.lock b/bun.lock index 3e932cfdbd6..3910a93a2b3 100644 --- a/bun.lock +++ b/bun.lock @@ -469,7 +469,7 @@ }, "packages/pieces/community/ai": { "name": "@activepieces/piece-ai", - "version": "0.1.14", + "version": "0.1.15", "dependencies": { "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", @@ -6982,7 +6982,7 @@ }, "packages/pieces/core/file-helper": { "name": "@activepieces/piece-file-helper", - "version": "0.1.22", + "version": "0.1.23", "dependencies": { "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", @@ -13379,7 +13379,7 @@ "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], - "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + "quick-lru": ["quick-lru@4.0.1", "", {}, "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g=="], "quick-temp": ["quick-temp@0.1.9", "", { "dependencies": { "mktemp": "^2.0.1", "rimraf": "^5.0.10", "underscore.string": "~3.3.6" } }, "sha512-yI0h7tIhKVObn03kD+Ln9JFi4OljD28lfaOsTdfpTR0xzrhGOod+q66CjGafUqYX2juUfT9oHIGrTBBo22mkRA=="], @@ -14373,6 +14373,8 @@ "@activepieces/piece-assemblyai/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "@activepieces/piece-drupal/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-prompthub/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@activepieces/piece-rabbitmq/@types/amqplib": ["@types/amqplib@0.10.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-IVj3avf9AQd2nXCx0PGk/OYq7VmHiyNxWFSb5HhU9ATh+i+gHWvVcljFTcTWQ/dyHJCTrzCixde+r/asL2ErDA=="], @@ -15835,8 +15837,6 @@ "camelcase-keys/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], - "camelcase-keys/quick-lru": ["quick-lru@4.0.1", "", {}, "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g=="], - "checkly/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.56.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.56.1", "@typescript-eslint/tsconfig-utils": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg=="], "checkly/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], @@ -16125,6 +16125,8 @@ "http-call/parse-json": ["parse-json@4.0.0", "", { "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw=="], + "http2-wrapper/quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + "hume/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], "hume/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], diff --git a/packages/web/src/features/agents/ai-model/hooks.ts b/packages/web/src/features/agents/ai-model/hooks.ts index 8f8ac3b87c5..023444aac0c 100644 --- a/packages/web/src/features/agents/ai-model/hooks.ts +++ b/packages/web/src/features/agents/ai-model/hooks.ts @@ -12,26 +12,36 @@ type Provider = | 'openrouter' | 'cloudflare-gateway' | 'custom' - | 'azure'; + | 'azure' + | 'x-ai'; type AIModelType = 'text' | 'image'; const OPENAI_MODELS = ['gpt-5.2', 'gpt-5.1', 'gpt-5-mini'] as const; const ANTHROPIC_MODELS = [ - 'claude-sonnet-4.5', - 'claude-opus-4-5-20251101', - 'claude-opus-4.5', - 'claude-sonnet-4-5-20250929', - 'claude-haiku-4.5', 'claude-haiku-4-5-20251001', + 'claude-haiku-4.5', + 'claude-sonnet-4-5-20250929', + 'claude-opus-4.5', + 'claude-opus-4-5-20251101', + 'claude-sonnet-4.5', ] as const; const GOOGLE_MODELS = [ - 'gemini-3-pro-preview', - 'gemini-3-flash-preview', - 'gemini-2.5-flash-preview-09-2025', 'gemini-2.5-flash-lite-preview-09-2025', + 'gemini-2.5-flash-preview-09-2025', + 'gemini-3-flash-preview', + 'gemini-3-pro-preview', +] as const; + +const X_AI_MODELS = [ + 'grok-3-mini', + 'grok-3', + 'grok-code-fast-1', + 'grok-4', + 'grok-4-fast', + 'grok-4.1-fast', ] as const; const ALLOWED_MODELS_BY_PROVIDER: Partial> = @@ -39,12 +49,14 @@ const ALLOWED_MODELS_BY_PROVIDER: Partial> = openai: OPENAI_MODELS, anthropic: ANTHROPIC_MODELS, google: GOOGLE_MODELS, + 'x-ai': X_AI_MODELS, activepieces: [ ...OPENAI_MODELS.map((model) => `${AIProviderName.OPENAI}/${model}`), ...ANTHROPIC_MODELS.map( (model) => `${AIProviderName.ANTHROPIC}/${model}`, ), ...GOOGLE_MODELS.map((model) => `${AIProviderName.GOOGLE}/${model}`), + ...X_AI_MODELS.map((model) => `${'x-ai'}/${model}`), ], };