@ai-stack/payloadcms 3.68.0 → 3.76.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/core/media/image/generateImage.js +2 -6
- package/dist/ai/core/media/image/generateImage.js.map +1 -1
- package/dist/ai/core/media/image/handlers/multimodal.js +13 -28
- package/dist/ai/core/media/image/handlers/multimodal.js.map +1 -1
- package/dist/ai/core/media/image/handlers/standard.js +10 -7
- package/dist/ai/core/media/image/handlers/standard.js.map +1 -1
- package/dist/ai/core/media/speech/generateSpeech.js +8 -8
- package/dist/ai/core/media/speech/generateSpeech.js.map +1 -1
- package/dist/ai/core/media/types.d.ts +1 -1
- package/dist/ai/core/media/types.js.map +1 -1
- package/dist/ai/core/streamObject.js +3 -3
- package/dist/ai/core/streamObject.js.map +1 -1
- package/dist/ai/core/types.d.ts +3 -0
- package/dist/ai/core/types.js.map +1 -1
- package/dist/ai/prompts.d.ts +1 -2
- package/dist/ai/prompts.js +0 -110
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/providers/blocks/anthropic.js +2 -1
- package/dist/ai/providers/blocks/anthropic.js.map +1 -1
- package/dist/ai/providers/blocks/elevenlabs.js +3 -2
- package/dist/ai/providers/blocks/elevenlabs.js.map +1 -1
- package/dist/ai/providers/blocks/fal.js +2 -1
- package/dist/ai/providers/blocks/fal.js.map +1 -1
- package/dist/ai/providers/blocks/google.js +12 -6
- package/dist/ai/providers/blocks/google.js.map +1 -1
- package/dist/ai/providers/blocks/openai-compatible.js +2 -1
- package/dist/ai/providers/blocks/openai-compatible.js.map +1 -1
- package/dist/ai/providers/blocks/openai.js +3 -2
- package/dist/ai/providers/blocks/openai.js.map +1 -1
- package/dist/ai/providers/blocks/xai.js +2 -1
- package/dist/ai/providers/blocks/xai.js.map +1 -1
- package/dist/ai/providers/icons.d.ts +7 -0
- package/dist/ai/providers/icons.js +9 -0
- package/dist/ai/providers/icons.js.map +1 -0
- package/dist/ai/providers/registry.js +36 -26
- package/dist/ai/providers/registry.js.map +1 -1
- package/dist/ai/utils/filterEditorSchemaByNodes.d.ts +9 -0
- package/dist/ai/utils/filterEditorSchemaByNodes.js +30 -3
- package/dist/ai/utils/filterEditorSchemaByNodes.js.map +1 -1
- package/dist/ai/utils/nodeToSchemaMap.d.ts +22 -0
- package/dist/ai/utils/nodeToSchemaMap.js +72 -0
- package/dist/ai/utils/nodeToSchemaMap.js.map +1 -0
- package/dist/collections/AIJobs.js +1 -1
- package/dist/collections/AIJobs.js.map +1 -1
- package/dist/collections/AIProviders.d.ts +2 -0
- package/dist/collections/{AISettings.js → AIProviders.js} +53 -25
- package/dist/collections/AIProviders.js.map +1 -0
- package/dist/collections/Instructions.js +45 -4
- package/dist/collections/Instructions.js.map +1 -1
- package/dist/defaults.d.ts +1 -0
- package/dist/defaults.js +8 -0
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/chat.d.ts +4 -0
- package/dist/endpoints/fetchFields.js +10 -0
- package/dist/endpoints/fetchFields.js.map +1 -1
- package/dist/endpoints/fetchVoices.js +42 -25
- package/dist/endpoints/fetchVoices.js.map +1 -1
- package/dist/endpoints/index.js +248 -35
- package/dist/endpoints/index.js.map +1 -1
- package/dist/exports/client.d.ts +1 -1
- package/dist/exports/client.js +1 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/fields.d.ts +1 -0
- package/dist/exports/fields.js +1 -0
- package/dist/exports/fields.js.map +1 -1
- package/dist/fields/ArrayComposeField/ArrayComposeField.d.ts +15 -0
- package/dist/fields/ArrayComposeField/ArrayComposeField.js +87 -0
- package/dist/fields/ArrayComposeField/ArrayComposeField.js.map +1 -0
- package/dist/fields/ArrayComposeField/ArrayComposeField.jsx +73 -0
- package/dist/fields/PromptEditorField/PromptEditorField.js +7 -2
- package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
- package/dist/fields/PromptEditorField/PromptEditorField.jsx +5 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/payload-ai.d.ts +152 -0
- package/dist/plugin.js +18 -34
- package/dist/plugin.js.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +47 -15
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.jsx +39 -16
- package/dist/providers/InstructionsProvider/context.d.ts +3 -0
- package/dist/providers/InstructionsProvider/context.js +2 -0
- package/dist/providers/InstructionsProvider/context.js.map +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js +22 -3
- package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
- package/dist/styles.d.ts +11 -0
- package/dist/types/handlebars-async-helpers.d.ts +1 -0
- package/dist/types/handlebars-dist-handlebars.d.ts +1 -0
- package/dist/types/react-mentions.d.ts +1 -0
- package/dist/types.d.ts +36 -7
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/AIConfigDashboard/index.d.ts +1 -1
- package/dist/ui/AIConfigDashboard/index.js +201 -23
- package/dist/ui/AIConfigDashboard/index.js.map +1 -1
- package/dist/ui/AIConfigDashboard/index.jsx +166 -15
- package/dist/ui/Compose/Compose.d.ts +1 -0
- package/dist/ui/Compose/Compose.js +23 -4
- package/dist/ui/Compose/Compose.js.map +1 -1
- package/dist/ui/Compose/Compose.jsx +23 -4
- package/dist/ui/Compose/UndoRedoActions.d.ts +2 -2
- package/dist/ui/Compose/UndoRedoActions.js +8 -5
- package/dist/ui/Compose/UndoRedoActions.js.map +1 -1
- package/dist/ui/Compose/UndoRedoActions.jsx +6 -5
- package/dist/ui/Compose/compose.module.css +56 -16
- package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts +5 -0
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js +45 -4
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/TranslateMenu.jsx +41 -5
- package/dist/ui/Compose/hooks/menu/itemsMap.js +12 -6
- package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/menu.module.scss +4 -1
- package/dist/ui/Compose/hooks/menu/useMenu.js +26 -15
- package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/useMenu.jsx +25 -12
- package/dist/ui/Compose/hooks/useActiveFieldTracking.js +34 -0
- package/dist/ui/Compose/hooks/useActiveFieldTracking.js.map +1 -1
- package/dist/ui/Compose/hooks/useGenerate.js +26 -174
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
- package/dist/ui/Compose/hooks/useGenerateUpload.d.ts +11 -0
- package/dist/ui/Compose/hooks/useGenerateUpload.js +156 -0
- package/dist/ui/Compose/hooks/useGenerateUpload.js.map +1 -0
- package/dist/ui/Compose/hooks/useHistory.d.ts +0 -1
- package/dist/ui/Compose/hooks/useHistory.js +65 -25
- package/dist/ui/Compose/hooks/useHistory.js.map +1 -1
- package/dist/ui/Compose/hooks/useStreamingUpdate.d.ts +8 -0
- package/dist/ui/Compose/hooks/useStreamingUpdate.js +48 -0
- package/dist/ui/Compose/hooks/useStreamingUpdate.js.map +1 -0
- package/dist/ui/ConfigDashboard/index.d.ts +2 -0
- package/dist/ui/ConfigDashboard/index.js +224 -0
- package/dist/ui/ConfigDashboard/index.js.map +1 -0
- package/dist/ui/ConfigDashboard/index.jsx +175 -0
- package/dist/ui/DynamicModelSelect/index.js +1 -1
- package/dist/ui/DynamicModelSelect/index.js.map +1 -1
- package/dist/ui/DynamicModelSelect/index.jsx +1 -1
- package/dist/ui/DynamicProviderSelect/index.js +1 -1
- package/dist/ui/DynamicProviderSelect/index.js.map +1 -1
- package/dist/ui/DynamicProviderSelect/index.jsx +1 -1
- package/dist/ui/DynamicVoiceSelect/index.js +63 -11
- package/dist/ui/DynamicVoiceSelect/index.js.map +1 -1
- package/dist/ui/DynamicVoiceSelect/index.jsx +47 -14
- package/dist/ui/EncryptedTextField/index.js +4 -4
- package/dist/ui/EncryptedTextField/index.js.map +1 -1
- package/dist/ui/EncryptedTextField/index.jsx +4 -4
- package/dist/ui/ProviderOptionsEditor/index.js +1 -1
- package/dist/ui/ProviderOptionsEditor/index.js.map +1 -1
- package/dist/ui/ProviderOptionsEditor/index.jsx +1 -1
- package/dist/ui/VoicesFetcher/index.js +34 -16
- package/dist/ui/VoicesFetcher/index.js.map +1 -1
- package/dist/ui/VoicesFetcher/index.jsx +32 -15
- package/dist/utilities/buildSmartPrompt.d.ts +22 -0
- package/dist/utilities/buildSmartPrompt.js +141 -0
- package/dist/utilities/buildSmartPrompt.js.map +1 -0
- package/dist/utilities/encryption.js +2 -1
- package/dist/utilities/encryption.js.map +1 -1
- package/dist/utilities/fieldToJsonSchema.js +32 -3
- package/dist/utilities/fieldToJsonSchema.js.map +1 -1
- package/dist/utilities/resolveImageReferences.d.ts +3 -1
- package/dist/utilities/resolveImageReferences.js +21 -2
- package/dist/utilities/resolveImageReferences.js.map +1 -1
- package/dist/utilities/seedProperties.d.ts +7 -0
- package/dist/utilities/seedProperties.js +100 -0
- package/dist/utilities/seedProperties.js.map +1 -0
- package/dist/utilities/setSafeLexicalState.js +79 -6
- package/dist/utilities/setSafeLexicalState.js.map +1 -1
- package/dist/utilities/updateFieldsConfig.d.ts +1 -1
- package/dist/utilities/updateFieldsConfig.js +9 -2
- package/dist/utilities/updateFieldsConfig.js.map +1 -1
- package/package.json +35 -33
- package/dist/collections/AISettings.d.ts +0 -2
- package/dist/collections/AISettings.js.map +0 -1
- package/dist/endpoints/chat.d.js +0 -3
- package/dist/endpoints/chat.d.js.map +0 -1
- package/dist/init.d.ts +0 -7
- package/dist/init.js +0 -135
- package/dist/init.js.map +0 -1
- package/dist/payload-ai.d.js +0 -3
- package/dist/payload-ai.d.js.map +0 -1
- package/dist/styles.d.js +0 -2
- package/dist/styles.d.js.map +0 -1
- package/dist/types/handlebars-async-helpers.d.js +0 -2
- package/dist/types/handlebars-async-helpers.d.js.map +0 -1
- package/dist/types/handlebars-dist-handlebars.d.js +0 -2
- package/dist/types/handlebars-dist-handlebars.d.js.map +0 -1
- package/dist/types/react-mentions.d.js +0 -2
- package/dist/types/react-mentions.d.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/elevenlabs.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nexport const elevenlabsBlock: Block = {\n slug: 'elevenlabs',\n custom: {\n providerOptionsSchemas: {\n tts: {\n fields: [\n 'stability',\n 'similarity_boost',\n 'style',\n 'use_speaker_boost',\n 'seed',\n 'language_code',\n 'apply_text_normalization',\n 'apply_language_text_normalization',\n ],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Your ElevenLabs API key. Will be encrypted in the database. Get yours at elevenlabs.io',\n },\n label: 'API Key',\n required: true,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://api.elevenlabs.io/v1).',\n },\n defaultValue: 'https://api.elevenlabs.io/v1',\n label: 'Base URL',\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description: 'Optional. Custom headers to send with every request.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (Existing)\n {\n fields: [\n {\n name: 'voicesFetcherUI',\n type: 'ui',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#VoicesFetcher',\n },\n },\n },\n {\n name: 'voices',\n type: 'array',\n admin: {\n description:\n 'Use the \"Fetch Voices\" button above to populate this list from your ElevenLabs account.',\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID from ElevenLabs',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'category',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'eleven-voice-category',\n label: 'Category',\n options: [\n { label: 'Premade', value: 'premade' },\n { label: 'Cloned', value: 'cloned' },\n { label: 'Professional', value: 'professional' },\n { label: 'Generated', value: 'generated' },\n ],\n },\n {\n name: 'preview_url',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Preview URL',\n },\n ],\n },\n {\n name: 'labels',\n type: 'json',\n admin: {\n description:\n 'Voice attributes like gender, age, accent (JSON object). Example: {\"gender\": \"female\", \"age\": \"young\", \"accent\": \"american\"}',\n },\n label: 'Labels',\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW)\n {\n fields: [\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for ElevenLabs TTS.',\n },\n fields: [\n {\n name: 'voice_settings',\n type: 'group',\n fields: [\n {\n name: 'stability',\n type: 'number',\n defaultValue: 0.5,\n label: 'Default Stability',\n max: 1,\n min: 0,\n },\n {\n name: 'similarity_boost',\n type: 'number',\n defaultValue: 0.75,\n label: 'Default Similarity Boost',\n max: 1,\n min: 0,\n },\n {\n name: 'style',\n type: 'number',\n defaultValue: 0,\n label: 'Default Style',\n max: 1,\n min: 0,\n },\n {\n name: 'use_speaker_boost',\n type: 'checkbox',\n defaultValue: false,\n label: 'Use Speaker Boost',\n },\n ],\n label: 'Voice Settings',\n },\n {\n name: 'seed',\n type: 'number',\n label: 'Default Seed',\n max: 4294967295,\n min: 0,\n },\n {\n name: 'apply_text_normalization',\n type: 'select',\n dbName: 'eleven-tts-normalization',\n defaultValue: 'auto',\n label: 'Text Normalization',\n options: [\n { label: 'Auto', value: 'auto' },\n { label: 'On', value: 'on' },\n { label: 'Off', value: 'off' },\n ],\n },\n {\n name: 'language_code',\n type: 'text',\n admin: {\n placeholder: 'en',\n },\n label: 'Language Code',\n },\n ],\n label: 'TTS Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models (SIMPLIFIED - no per-model settings)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description:\n 'Configure TTS models. Use the Voices and Provider Options tabs for detailed settings.',\n initCollapsed: false,\n },\n defaultValue: [\n {\n id: 'eleven_flash_v2_5',\n name: 'Flash V2.5 (Fastest)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_turbo_v2_5',\n name: 'Turbo V2.5 (Latest)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_multilingual_v2',\n name: 'Multilingual V2',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_turbo_v2',\n name: 'Turbo V2',\n enabled: false,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Model ID (e.g., eleven_flash_v2_5)',\n width: '50%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Display Name',\n required: true,\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'eleven-model-useCase',\n defaultValue: 'tts',\n label: 'Use Case',\n options: [{ label: 'Text-to-Speech', value: 'tts' }],\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '33%',\n },\n dbName: 'eleven-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '33%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: '/provider-icons/elevenlabs.webp',\n labels: {\n plural: 'ElevenLabs Providers',\n singular: 'ElevenLabs',\n },\n}\n"],"names":["elevenlabsBlock","slug","custom","providerOptionsSchemas","tts","fields","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","dbName","options","value","max","min","placeholder","RowLabel","id","enabled","responseModalities","useCase","hasMany","labels","plural","singular","imageURL"],"mappings":"AAEA,OAAO,MAAMA,kBAAyB;IACpCC,MAAM;IACNC,QAAQ;QACNC,wBAAwB;YACtBC,KAAK;gBACHC,QAAQ;oBACN;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;iBACD;YACH;QACF;IACF;IACAA,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;gBACJ,eAAe;gBACf;oBACEF,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNG,cAAc;4BACdC,OAAO;wBACT;wBACA;4BACEF,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLC,YAAY;oCACVC,OAAO;gCACT;gCACAC,aACE;4BACJ;4BACAJ,OAAO;4BACPK,UAAU;wBACZ;qBACD;oBACDL,OAAO;gBACT;gBAEA,oBAAoB;gBACpB;oBACEL,QAAQ;wBACN;4BACEC,MAAM;4BACNK,OAAO;gCACLK,eAAe;4BACjB;4BACAX,QAAQ;gCACN;oCACEG,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLG,aACE;oCACJ;oCACAL,cAAc;oCACdC,OAAO;gCACT;gCACA;oCACEF,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLG,aAAa;oCACf;oCACAT,QAAQ;wCACN;4CACEC,MAAM;4CACND,QAAQ;gDACN;oDACEG,MAAM;oDACNF,MAAM;oDACNK,OAAO;wDACLM,OAAO;oDACT;oDACAP,OAAO;oDACPK,UAAU;gDACZ;gDACA;oDACEP,MAAM;oDACNF,MAAM;oDACNK,OAAO;wDACLM,OAAO;oDACT;oDACAP,OAAO;oDACPK,UAAU;gDACZ;6CACD;wCACH;qCACD;oCACDL,OAAO;gCACT;6BACD;4BACDA,OAAO;wBACT;qBACD;oBACDA,OAAO;gBACT;gBAEA,2BAA2B;gBAC3B;oBACEL,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLC,YAAY;oCACVC,OAAO;gCACT;4BACF;wBACF;wBACA;4BACEL,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLG,aACE;gCACFE,eAAe;4BACjB;4BACAX,QAAQ;gCACN;oCACEC,MAAM;oCACND,QA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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/elevenlabs.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { ElevenLabsIcon } from '../icons.js'\n\nexport const elevenlabsBlock: Block = {\n slug: 'elevenlabs',\n custom: {\n providerOptionsSchemas: {\n tts: {\n fields: [\n 'stability',\n 'similarity_boost',\n 'style',\n 'use_speaker_boost',\n 'seed',\n 'language_code',\n 'apply_text_normalization',\n 'apply_language_text_normalization',\n ],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Your ElevenLabs API key. Will be encrypted in the database. Get yours at elevenlabs.io',\n },\n label: 'API Key',\n required: true,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://api.elevenlabs.io/v1).',\n },\n defaultValue: 'https://api.elevenlabs.io/v1',\n label: 'Base URL',\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description: 'Optional. Custom headers to send with every request.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (Existing)\n {\n fields: [\n {\n name: 'voicesFetcherUI',\n type: 'ui',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#VoicesFetcher',\n },\n },\n },\n {\n name: 'voices',\n type: 'array',\n admin: {\n description:\n 'Use the \"Fetch Voices\" button above to populate this list from your ElevenLabs account.',\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID from ElevenLabs',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'category',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'eleven-voice-category',\n label: 'Category',\n options: [\n { label: 'Premade', value: 'premade' },\n { label: 'Cloned', value: 'cloned' },\n { label: 'Professional', value: 'professional' },\n { label: 'Generated', value: 'generated' },\n ],\n },\n {\n name: 'preview_url',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Preview URL',\n },\n ],\n },\n {\n name: 'labels',\n type: 'json',\n admin: {\n description:\n 'Voice attributes like gender, age, accent (JSON object). Example: {\"gender\": \"female\", \"age\": \"young\", \"accent\": \"american\"}',\n },\n label: 'Labels',\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW)\n {\n fields: [\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for ElevenLabs TTS.',\n },\n fields: [\n {\n name: 'voice_settings',\n type: 'group',\n fields: [\n {\n name: 'stability',\n type: 'number',\n defaultValue: 0.5,\n label: 'Default Stability',\n max: 1,\n min: 0,\n },\n {\n name: 'similarity_boost',\n type: 'number',\n defaultValue: 0.75,\n label: 'Default Similarity Boost',\n max: 1,\n min: 0,\n },\n {\n name: 'style',\n type: 'number',\n defaultValue: 0,\n label: 'Default Style',\n max: 1,\n min: 0,\n },\n {\n name: 'use_speaker_boost',\n type: 'checkbox',\n defaultValue: false,\n label: 'Use Speaker Boost',\n },\n ],\n label: 'Voice Settings',\n },\n {\n name: 'seed',\n type: 'number',\n label: 'Default Seed',\n max: 4294967295,\n min: 0,\n },\n {\n name: 'apply_text_normalization',\n type: 'select',\n dbName: 'eleven-tts-normalization',\n defaultValue: 'auto',\n label: 'Text Normalization',\n options: [\n { label: 'Auto', value: 'auto' },\n { label: 'On', value: 'on' },\n { label: 'Off', value: 'off' },\n ],\n },\n {\n name: 'language_code',\n type: 'text',\n admin: {\n placeholder: 'en',\n },\n label: 'Language Code',\n },\n ],\n label: 'TTS Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models (SIMPLIFIED - no per-model settings)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description:\n 'Configure TTS models. Use the Voices and Provider Options tabs for detailed settings.',\n initCollapsed: true,\n },\n defaultValue: [\n {\n id: 'eleven_flash_v2_5',\n name: 'Flash V2.5 (Fastest)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_turbo_v2_5',\n name: 'Turbo V2.5 (Latest)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_multilingual_v2',\n name: 'Multilingual V2',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'eleven_turbo_v2',\n name: 'Turbo V2',\n enabled: false,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Model ID (e.g., eleven_flash_v2_5)',\n width: '50%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Display Name',\n required: true,\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'eleven-model-useCase',\n defaultValue: 'tts',\n label: 'Use Case',\n options: [{ label: 'Text-to-Speech', value: 'tts' }],\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '33%',\n },\n dbName: 'eleven-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '33%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: ElevenLabsIcon,\n labels: {\n plural: 'ElevenLabs Providers',\n singular: 'ElevenLabs',\n },\n}\n"],"names":["ElevenLabsIcon","elevenlabsBlock","slug","custom","providerOptionsSchemas","tts","fields","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","dbName","options","value","max","min","placeholder","RowLabel","id","enabled","responseModalities","useCase","hasMany","labels","plural","singular","imageURL"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FalIcon } from '../icons.js';
|
|
1
2
|
export const falBlock = {
|
|
2
3
|
slug: 'fal',
|
|
3
4
|
fields: [
|
|
@@ -301,7 +302,7 @@ export const falBlock = {
|
|
|
301
302
|
]
|
|
302
303
|
}
|
|
303
304
|
],
|
|
304
|
-
imageURL:
|
|
305
|
+
imageURL: FalIcon,
|
|
305
306
|
labels: {
|
|
306
307
|
plural: 'Fal Providers',
|
|
307
308
|
singular: 'Fal AI'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/fal.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nexport const falBlock: Block = {\n slug: 'fal',\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description: 'Your Fal API key. Will be encrypted in the database.',\n },\n label: 'API Key',\n required: true,\n },\n {\n name: 'webhookSecret',\n type: 'text',\n admin: {\n description: 'Secret for webhook verification (optional)',\n },\n label: 'Webhook Secret',\n },\n ],\n label: 'Setup',\n },\n\n // 2. Provider Options tab\n {\n fields: [\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'num_inference_steps',\n type: 'number',\n defaultValue: 28,\n label: 'Inference Steps',\n max: 100,\n min: 1,\n },\n {\n name: 'guidance_scale',\n type: 'number',\n defaultValue: 3.5,\n label: 'Guidance Scale',\n max: 20,\n min: 0,\n },\n {\n name: 'seed',\n type: 'number',\n admin: {\n description: 'Random seed for reproducible results',\n },\n label: 'Seed',\n },\n {\n name: 'image_size',\n type: 'select',\n dbName: 'fal-image-size',\n defaultValue: 'landscape_16_9',\n label: 'Image Size',\n options: [\n { label: 'Square (1:1)', value: 'square' },\n { label: 'Square HD', value: 'square_hd' },\n { label: 'Portrait 4:3', value: 'portrait_4_3' },\n { label: 'Portrait 16:9', value: 'portrait_16_9' },\n { label: 'Landscape 4:3', value: 'landscape_4_3' },\n { label: 'Landscape 16:9', value: 'landscape_16_9' },\n ],\n },\n {\n name: 'enable_safety_checker',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enable Safety Checker',\n },\n ],\n label: 'Image Provider Options',\n },\n {\n name: 'videoProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for video generation models.',\n },\n fields: [\n {\n name: 'duration',\n type: 'number',\n defaultValue: 5,\n label: 'Duration (seconds)',\n max: 60,\n min: 1,\n },\n {\n name: 'aspect_ratio',\n type: 'select',\n dbName: 'fal-video-aspectRatio',\n defaultValue: '16:9',\n label: 'Aspect Ratio',\n options: [\n { label: '16:9', value: '16:9' },\n { label: '9:16', value: '9:16' },\n { label: '1:1', value: '1:1' },\n ],\n },\n ],\n label: 'Video Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 3. Models tab\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n initCollapsed: true,\n },\n defaultValue: [\n { id: 'fal-ai/flux-pro', name: 'Flux Pro', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux/dev', name: 'Flux Dev', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux/schnell', name: 'Flux Schnell', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux-realism', name: 'Flux Realism', enabled: true, useCase: 'image' },\n { id: 'fal-ai/minimax-video', name: 'Minimax Video', enabled: true, useCase: 'video' },\n { id: 'fal-ai/hunyuan-video', name: 'Hunyuan Video', enabled: true, useCase: 'video' },\n {\n id: 'fal-ai/luma-dream-machine',\n name: 'Luma Dream Machine',\n enabled: true,\n useCase: 'video',\n },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: { width: '33%' },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: { width: '33%' },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: { width: '33%' },\n dbName: 'fal-model-useCase',\n label: 'Use Case',\n options: [\n { label: 'Image Generation', value: 'image' },\n { label: 'Video Generation', value: 'video' },\n ],\n required: true,\n },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'fal-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n { label: 'Video', value: 'VIDEO' },\n ],\n },\n ],\n label: 'Available Models',\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: '/provider-icons/fai-ai.webp',\n labels: {\n plural: 'Fal Providers',\n singular: 'Fal AI',\n },\n}\n\n"],"names":["falBlock","slug","fields","type","tabs","name","defaultValue","label","admin","components","Field","description","required","max","min","dbName","options","value","RowLabel","initCollapsed","id","enabled","useCase","width","hasMany","imageURL","labels","plural","singular"],"mappings":"AAEA,OAAO,MAAMA,WAAkB;IAC7BC,MAAM;IACNC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;gBACJ,eAAe;gBACf;oBACEF,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNG,cAAc;4BACdC,OAAO;wBACT;wBACA;4BACEF,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLC,YAAY;oCACVC,OAAO;gCACT;gCACAC,aAAa;4BACf;4BACAJ,OAAO;4BACPK,UAAU;wBACZ;wBACA;4BACEP,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLG,aAAa;4BACf;4BACAJ,OAAO;wBACT;qBACD;oBACDA,OAAO;gBACT;gBAEA,0BAA0B;gBAC1B;oBACEL,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLG,aAAa;4BACf;4BACAT,QAAQ;gCACN;oCACEG,MAAM;oCACNF,MAAM;oCACNG,cAAc;oCACdC,OAAO;oCACPM,KAAK;oCACLC,KAAK;gCACP;gCACA;oCACET,MAAM;oCACNF,MAAM;oCACNG,cAAc;oCACdC,OAAO;oCACPM,KAAK;oCACLC,KAAK;gCACP;gCACA;oCACET,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLG,aAAa;oCACf;oCACAJ,OAAO;gCACT;gCACA;oCACEF,MAAM;oCACNF,MAAM;oCACNY,QAAQ;oCACRT,cAAc;oCACdC,OAAO;oCACPS,SAAS;wCACP;4CAAET,OAAO;4CAAgBU,OAAO;wCAAS;wCACzC;4CAAEV,OAAO;4CAAaU,OAAO;wCAAY;wCACzC;4CAAEV,OAAO;4CAAgBU,OAAO;wCAAe;wCAC/C;4CAAEV,OAAO;4CAAiBU,OAAO;wCAAgB;wCACjD;4CAAEV,OAAO;4CAAiBU,OAAO;wCAAgB;wCACjD;4CAAEV,OAAO;4CAAkBU,OAAO;wCAAiB;qCACpD;gCACH;gCACA;oCACEZ,MAAM;oCACNF,MAAM;oCACNG,cAAc;oCACdC,OAAO;gCACT;6BACD;4BACDA,OAAO;wBACT;wBACA;4BACEF,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLG,aAAa;4BACf;4BACAT,QAAQ;gCACN;oCACEG,MAAM;oCACNF,MAAM;oCACNG,cAAc;oCACdC,OAAO;oCACPM,KAAK;oCACLC,KAAK;gCACP;gCACA;oCACET,MAAM;oCACNF,MAAM;oCACNY,QAAQ;oCACRT,cAAc;oCACdC,OAAO;oCACPS,SAAS;wCACP;4CAAET,OAAO;4CAAQU,OAAO;wCAAO;wCAC/B;4CAAEV,OAAO;4CAAQU,OAAO;wCAAO;wCAC/B;4CAAEV,OAAO;4CAAOU,OAAO;wCAAM;qCAC9B;gCACH;6BACD;4BACDV,OAAO;wBACT;qBACD;oBACDA,OAAO;gBACT;gBAEA,gBAAgB;gBAChB;oBACEL,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLC,YAAY;oCACVS,UAAU;gCACZ;gCACAC,eAAe;4BACjB;4BACAb,cAAc;gCACZ;oCAAEc,IAAI;oCAAmBf,MAAM;oCAAYgB,SAAS;oCAAMC,SAAS;gCAAQ;gCAC3E;oCAAEF,IAAI;oCAAmBf,MAAM;oCAAYgB,SAAS;oCAAMC,SAAS;gCAAQ;gCAC3E;oCAAEF,IAAI;oCAAuBf,MAAM;oCAAgBgB,SAAS;oCAAMC,SAAS;gCAAQ;gCACnF;oCAAEF,IAAI;oCAAuBf,MAAM;oCAAgBgB,SAAS;oCAAMC,SAAS;gCAAQ;gCACnF;oCAAEF,IAAI;oCAAwBf,MAAM;oCAAiBgB,SAAS;oCAAMC,SAAS;gCAAQ;gCACrF;oCAAEF,IAAI;oCAAwBf,MAAM;oCAAiBgB,SAAS;oCAAMC,SAAS;gCAAQ;gCACrF;oCACEF,IAAI;oCACJf,MAAM;oCACNgB,SAAS;oCACTC,SAAS;gCACX;6BACD;4BACDpB,QAAQ;gCACN;oCACEC,MAAM;oCACND,QAAQ;wCACN;4CACEG,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEe,OAAO;4CAAM;4CACtBhB,OAAO;4CACPK,UAAU;wCACZ;wCACA;4CACEP,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEe,OAAO;4CAAM;4CACtBhB,OAAO;4CACPK,UAAU;wCACZ;wCACA;4CACEP,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEe,OAAO;4CAAM;4CACtBR,QAAQ;4CACRR,OAAO;4CACPS,SAAS;gDACP;oDAAET,OAAO;oDAAoBU,OAAO;gDAAQ;gDAC5C;oDAAEV,OAAO;oDAAoBU,OAAO;gDAAQ;6CAC7C;4CACDL,UAAU;wCACZ;qCACD;gCACH;gCACA;oCACEP,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLe,OAAO;oCACT;oCACAjB,cAAc;oCACdC,OAAO;gCACT;gCACA;oCACEF,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLG,aAAa;wCACbY,OAAO;oCACT;oCACAR,QAAQ;oCACRS,SAAS;oCACTjB,OAAO;oCACPS,SAAS;wCACP;4CAAET,OAAO;4CAAQU,OAAO;wCAAO;wCAC/B;4CAAEV,OAAO;4CAASU,OAAO;wCAAQ;wCACjC;4CAAEV,OAAO;4CAASU,OAAO;wCAAQ;wCACjC;4CAAEV,OAAO;4CAASU,OAAO;wCAAQ;qCAClC;gCACH;6BACD;4BACDV,OAAO;wBACT;qBACD;oBACDA,OAAO;gBACT;aACD;QACH;KACD;IACDkB,UAAU;IACVC,QAAQ;QACNC,QAAQ;QACRC,UAAU;IACZ;AACF,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/fal.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { FalIcon } from '../icons.js'\n\nexport const falBlock: Block = {\n slug: 'fal',\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description: 'Your Fal API key. Will be encrypted in the database.',\n },\n label: 'API Key',\n required: true,\n },\n {\n name: 'webhookSecret',\n type: 'text',\n admin: {\n description: 'Secret for webhook verification (optional)',\n },\n label: 'Webhook Secret',\n },\n ],\n label: 'Setup',\n },\n\n // 2. Provider Options tab\n {\n fields: [\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'num_inference_steps',\n type: 'number',\n defaultValue: 28,\n label: 'Inference Steps',\n max: 100,\n min: 1,\n },\n {\n name: 'guidance_scale',\n type: 'number',\n defaultValue: 3.5,\n label: 'Guidance Scale',\n max: 20,\n min: 0,\n },\n {\n name: 'seed',\n type: 'number',\n admin: {\n description: 'Random seed for reproducible results',\n },\n label: 'Seed',\n },\n {\n name: 'image_size',\n type: 'select',\n dbName: 'fal-image-size',\n defaultValue: 'landscape_16_9',\n label: 'Image Size',\n options: [\n { label: 'Square (1:1)', value: 'square' },\n { label: 'Square HD', value: 'square_hd' },\n { label: 'Portrait 4:3', value: 'portrait_4_3' },\n { label: 'Portrait 16:9', value: 'portrait_16_9' },\n { label: 'Landscape 4:3', value: 'landscape_4_3' },\n { label: 'Landscape 16:9', value: 'landscape_16_9' },\n ],\n },\n {\n name: 'enable_safety_checker',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enable Safety Checker',\n },\n ],\n label: 'Image Provider Options',\n },\n {\n name: 'videoProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for video generation models.',\n },\n fields: [\n {\n name: 'duration',\n type: 'number',\n defaultValue: 5,\n label: 'Duration (seconds)',\n max: 60,\n min: 1,\n },\n {\n name: 'aspect_ratio',\n type: 'select',\n dbName: 'fal-video-aspectRatio',\n defaultValue: '16:9',\n label: 'Aspect Ratio',\n options: [\n { label: '16:9', value: '16:9' },\n { label: '9:16', value: '9:16' },\n { label: '1:1', value: '1:1' },\n ],\n },\n ],\n label: 'Video Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 3. Models tab\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n initCollapsed: true,\n },\n defaultValue: [\n { id: 'fal-ai/flux-pro', name: 'Flux Pro', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux/dev', name: 'Flux Dev', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux/schnell', name: 'Flux Schnell', enabled: true, useCase: 'image' },\n { id: 'fal-ai/flux-realism', name: 'Flux Realism', enabled: true, useCase: 'image' },\n { id: 'fal-ai/minimax-video', name: 'Minimax Video', enabled: true, useCase: 'video' },\n { id: 'fal-ai/hunyuan-video', name: 'Hunyuan Video', enabled: true, useCase: 'video' },\n {\n id: 'fal-ai/luma-dream-machine',\n name: 'Luma Dream Machine',\n enabled: true,\n useCase: 'video',\n },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: { width: '33%' },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: { width: '33%' },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: { width: '33%' },\n dbName: 'fal-model-useCase',\n label: 'Use Case',\n options: [\n { label: 'Image Generation', value: 'image' },\n { label: 'Video Generation', value: 'video' },\n ],\n required: true,\n },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'fal-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n { label: 'Video', value: 'VIDEO' },\n ],\n },\n ],\n label: 'Available Models',\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: FalIcon,\n labels: {\n plural: 'Fal Providers',\n singular: 'Fal AI',\n },\n}\n\n"],"names":["FalIcon","falBlock","slug","fields","type","tabs","name","defaultValue","label","admin","components","Field","description","required","max","min","dbName","options","value","RowLabel","initCollapsed","id","enabled","useCase","width","hasMany","imageURL","labels","plural","singular"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GoogleIcon } from '../icons.js';
|
|
1
2
|
export const googleBlock = {
|
|
2
3
|
slug: 'google',
|
|
3
4
|
custom: {
|
|
@@ -335,6 +336,7 @@ export const googleBlock = {
|
|
|
335
336
|
admin: {
|
|
336
337
|
description: 'Safety filter settings'
|
|
337
338
|
},
|
|
339
|
+
dbName: 'google-safety',
|
|
338
340
|
fields: [
|
|
339
341
|
{
|
|
340
342
|
type: 'row',
|
|
@@ -417,7 +419,7 @@ export const googleBlock = {
|
|
|
417
419
|
RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel'
|
|
418
420
|
},
|
|
419
421
|
description: 'Keep this list short. Enable only the models you actually use.',
|
|
420
|
-
initCollapsed:
|
|
422
|
+
initCollapsed: true
|
|
421
423
|
},
|
|
422
424
|
defaultValue: [
|
|
423
425
|
// Text models
|
|
@@ -468,15 +470,19 @@ export const googleBlock = {
|
|
|
468
470
|
},
|
|
469
471
|
// Image models
|
|
470
472
|
{
|
|
471
|
-
id: '
|
|
472
|
-
name: '
|
|
473
|
+
id: 'gemini-2.5-flash-image',
|
|
474
|
+
name: 'Gemini 2.5 Flash Image',
|
|
473
475
|
enabled: true,
|
|
476
|
+
responseModalities: [
|
|
477
|
+
'IMAGE'
|
|
478
|
+
],
|
|
474
479
|
useCase: 'image'
|
|
475
480
|
},
|
|
476
481
|
{
|
|
477
|
-
id: '
|
|
478
|
-
name: '
|
|
482
|
+
id: 'imagen-4.0-generate-001',
|
|
483
|
+
name: 'Imagen 4',
|
|
479
484
|
enabled: true,
|
|
485
|
+
// TODO: fix this with proper definition for multimodel or image model only
|
|
480
486
|
responseModalities: [
|
|
481
487
|
'IMAGE'
|
|
482
488
|
],
|
|
@@ -612,7 +618,7 @@ export const googleBlock = {
|
|
|
612
618
|
]
|
|
613
619
|
}
|
|
614
620
|
],
|
|
615
|
-
imageURL:
|
|
621
|
+
imageURL: GoogleIcon,
|
|
616
622
|
labels: {
|
|
617
623
|
plural: 'Google Providers',
|
|
618
624
|
singular: 'Google Gemini'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/google.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nexport const googleBlock: Block = {\n slug: 'google',\n custom: {\n providerOptionsSchemas: {\n image: {\n fields: ['aspectRatio', 'personGeneration', 'seed', 'addWatermark'],\n },\n text: {\n fields: ['temperature', 'maxOutputTokens', 'topP', 'topK', 'safetySettings'],\n },\n tts: {\n fields: ['speed', 'volumeGainDb', 'speakingRate'],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Optional. If empty, @ai-sdk/google will use the GOOGLE_GENERATIVE_AI_API_KEY environment variable.',\n },\n label: 'API Key',\n required: false,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://generativelanguage.googleapis.com/v1beta).',\n },\n label: 'Base URL',\n },\n ],\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description:\n 'Optional. Extra headers to send with every request, for example routing through a proxy.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (NEW)\n {\n fields: [\n {\n name: 'voices',\n type: 'array',\n admin: {\n description: 'Available voices for Gemini TTS models.',\n initCollapsed: false,\n },\n defaultValue: [\n { id: 'Puck', name: 'Puck (Upbeat)', enabled: true },\n { id: 'Charon', name: 'Charon (Informative)', enabled: true },\n { id: 'Kore', name: 'Kore (Firm)', enabled: true },\n { id: 'Fenrir', name: 'Fenrir (Excitable)', enabled: true },\n { id: 'Aoede', name: 'Aoede (Breezy)', enabled: true },\n { id: 'Zephyr', name: 'Zephyr (Bright)', enabled: true },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID used by Google API',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW - One group per use case)\n {\n fields: [\n // TTS Settings\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Speaking Rate',\n max: 4.0,\n min: 0.25,\n },\n {\n name: 'volumeGainDb',\n type: 'number',\n defaultValue: 0,\n label: 'Volume Gain (dB)',\n },\n ],\n label: 'TTS Provider Options',\n },\n\n // Image Settings\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'aspectRatio',\n type: 'select',\n dbName: 'google-image-aspectRatio',\n defaultValue: '1:1',\n label: 'Default Aspect Ratio',\n options: [\n { label: '1:1 (Square)', value: '1:1' },\n { label: '16:9 (Landscape)', value: '16:9' },\n { label: '9:16 (Portrait)', value: '9:16' },\n { label: '4:3', value: '4:3' },\n { label: '3:4', value: '3:4' },\n ],\n },\n {\n name: 'personGeneration',\n type: 'select',\n dbName: 'google-image-personGeneration',\n defaultValue: 'allow_adult',\n label: 'Person Generation (Imagen)',\n options: [\n { label: 'Allow Adults Only', value: 'allow_adult' },\n { label: 'Allow All', value: 'allow_all' },\n { label: 'Do Not Allow', value: 'dont_allow' },\n ],\n },\n {\n name: 'addWatermark',\n type: 'checkbox',\n defaultValue: true,\n label: 'Add SynthID Watermark',\n },\n ],\n label: 'Image Provider Options',\n },\n\n // Text Settings\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2.0,\n min: 0.0,\n },\n {\n name: 'maxOutputTokens',\n type: 'number',\n label: 'Max Output Tokens',\n },\n {\n name: 'topP',\n type: 'number',\n defaultValue: 0.95,\n label: 'Top P',\n max: 1.0,\n min: 0.0,\n },\n {\n name: 'topK',\n type: 'number',\n defaultValue: 40,\n label: 'Top K',\n },\n {\n name: 'safetySettings',\n type: 'array',\n admin: {\n description: 'Safety filter settings',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'category',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'google-safety-category',\n label: 'Category',\n options: [\n { label: 'Harassment', value: 'HARM_CATEGORY_HARASSMENT' },\n { label: 'Hate Speech', value: 'HARM_CATEGORY_HATE_SPEECH' },\n { label: 'Sexually Explicit', value: 'HARM_CATEGORY_SEXUALLY_EXPLICIT' },\n { label: 'Dangerous Content', value: 'HARM_CATEGORY_DANGEROUS_CONTENT' },\n ],\n required: true,\n },\n {\n name: 'threshold',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'google-safety-threshold',\n label: 'Threshold',\n options: [\n { label: 'Block None', value: 'BLOCK_NONE' },\n { label: 'Block Low+', value: 'BLOCK_LOW_AND_ABOVE' },\n { label: 'Block Medium+', value: 'BLOCK_MEDIUM_AND_ABOVE' },\n { label: 'Block High', value: 'BLOCK_ONLY_HIGH' },\n ],\n required: true,\n },\n ],\n },\n ],\n label: 'Default Safety Settings',\n },\n ],\n label: 'Text Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models tab (Simplified)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description: 'Keep this list short. Enable only the models you actually use.',\n initCollapsed: false,\n },\n defaultValue: [\n // Text models\n {\n id: 'gemini-3-pro-preview',\n name: 'Gemini 3.0 Pro (Preview)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-2.5-pro',\n name: 'Gemini 2.5 Pro',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-2.5-flash',\n name: 'Gemini 2.5 Flash',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-1.5-pro-latest',\n name: 'Gemini 1.5 Pro (Latest)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-1.5-flash-latest',\n name: 'Gemini 1.5 Flash (Latest)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n\n // Image models\n {\n id: 'imagen-3.0-generate-002',\n name: 'Imagen 3 (Fast)',\n enabled: true,\n useCase: 'image',\n },\n {\n id: 'gemini-2.5-flash-image',\n name: 'Gemini 2.5 Flash Image',\n enabled: true,\n responseModalities: ['IMAGE'],\n useCase: 'image',\n },\n {\n id: 'gemini-3-pro-image-preview',\n name: 'Gemini 3.0 Pro Image (Preview)',\n enabled: true,\n responseModalities: ['IMAGE'],\n useCase: 'image',\n },\n\n // TTS Models\n {\n id: 'gemini-2.5-pro-preview-tts',\n name: 'Gemini 2.5 Pro TTS (Preview)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'gemini-2.5-flash-preview-tts',\n name: 'Gemini 2.5 Flash TTS (Preview)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic model info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description:\n 'Exact model id as used with @ai-sdk/google.',\n width: '33%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '33%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'google-model-useCase',\n defaultValue: 'text',\n label: 'Use Case',\n options: [\n { label: 'Text', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Text-to-Speech', value: 'tts' },\n { label: 'Embeddings', value: 'embedding' },\n ],\n },\n ],\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'google-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: '/provider-icons/google-gemini.webp',\n labels: {\n plural: 'Google Providers',\n singular: 'Google Gemini',\n },\n}\n"],"names":["googleBlock","slug","custom","providerOptionsSchemas","image","fields","text","tts","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","id","enabled","max","min","dbName","options","value","RowLabel","responseModalities","useCase","hasMany","labels","plural","singular","imageURL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/google.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { GoogleIcon } from '../icons.js'\n\nexport const googleBlock: Block = {\n slug: 'google',\n custom: {\n providerOptionsSchemas: {\n image: {\n fields: ['aspectRatio', 'personGeneration', 'seed', 'addWatermark'],\n },\n text: {\n fields: ['temperature', 'maxOutputTokens', 'topP', 'topK', 'safetySettings'],\n },\n tts: {\n fields: ['speed', 'volumeGainDb', 'speakingRate'],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Optional. If empty, @ai-sdk/google will use the GOOGLE_GENERATIVE_AI_API_KEY environment variable.',\n },\n label: 'API Key',\n required: false,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://generativelanguage.googleapis.com/v1beta).',\n },\n label: 'Base URL',\n },\n ],\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description:\n 'Optional. Extra headers to send with every request, for example routing through a proxy.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (NEW)\n {\n fields: [\n {\n name: 'voices',\n type: 'array',\n admin: {\n description: 'Available voices for Gemini TTS models.',\n initCollapsed: false,\n },\n defaultValue: [\n { id: 'Puck', name: 'Puck (Upbeat)', enabled: true },\n { id: 'Charon', name: 'Charon (Informative)', enabled: true },\n { id: 'Kore', name: 'Kore (Firm)', enabled: true },\n { id: 'Fenrir', name: 'Fenrir (Excitable)', enabled: true },\n { id: 'Aoede', name: 'Aoede (Breezy)', enabled: true },\n { id: 'Zephyr', name: 'Zephyr (Bright)', enabled: true },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID used by Google API',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW - One group per use case)\n {\n fields: [\n // TTS Settings\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Speaking Rate',\n max: 4.0,\n min: 0.25,\n },\n {\n name: 'volumeGainDb',\n type: 'number',\n defaultValue: 0,\n label: 'Volume Gain (dB)',\n },\n ],\n label: 'TTS Provider Options',\n },\n\n // Image Settings\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'aspectRatio',\n type: 'select',\n dbName: 'google-image-aspectRatio',\n defaultValue: '1:1',\n label: 'Default Aspect Ratio',\n options: [\n { label: '1:1 (Square)', value: '1:1' },\n { label: '16:9 (Landscape)', value: '16:9' },\n { label: '9:16 (Portrait)', value: '9:16' },\n { label: '4:3', value: '4:3' },\n { label: '3:4', value: '3:4' },\n ],\n },\n {\n name: 'personGeneration',\n type: 'select',\n dbName: 'google-image-personGeneration',\n defaultValue: 'allow_adult',\n label: 'Person Generation (Imagen)',\n options: [\n { label: 'Allow Adults Only', value: 'allow_adult' },\n { label: 'Allow All', value: 'allow_all' },\n { label: 'Do Not Allow', value: 'dont_allow' },\n ],\n },\n {\n name: 'addWatermark',\n type: 'checkbox',\n defaultValue: true,\n label: 'Add SynthID Watermark',\n },\n ],\n label: 'Image Provider Options',\n },\n\n // Text Settings\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2.0,\n min: 0.0,\n },\n {\n name: 'maxOutputTokens',\n type: 'number',\n label: 'Max Output Tokens',\n },\n {\n name: 'topP',\n type: 'number',\n defaultValue: 0.95,\n label: 'Top P',\n max: 1.0,\n min: 0.0,\n },\n {\n name: 'topK',\n type: 'number',\n defaultValue: 40,\n label: 'Top K',\n },\n {\n name: 'safetySettings',\n type: 'array',\n admin: {\n description: 'Safety filter settings',\n },\n dbName: 'google-safety',\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'category',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'google-safety-category',\n label: 'Category',\n options: [\n { label: 'Harassment', value: 'HARM_CATEGORY_HARASSMENT' },\n { label: 'Hate Speech', value: 'HARM_CATEGORY_HATE_SPEECH' },\n {\n label: 'Sexually Explicit',\n value: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',\n },\n {\n label: 'Dangerous Content',\n value: 'HARM_CATEGORY_DANGEROUS_CONTENT',\n },\n ],\n required: true,\n },\n {\n name: 'threshold',\n type: 'select',\n admin: {\n width: '50%',\n },\n dbName: 'google-safety-threshold',\n label: 'Threshold',\n options: [\n { label: 'Block None', value: 'BLOCK_NONE' },\n { label: 'Block Low+', value: 'BLOCK_LOW_AND_ABOVE' },\n { label: 'Block Medium+', value: 'BLOCK_MEDIUM_AND_ABOVE' },\n { label: 'Block High', value: 'BLOCK_ONLY_HIGH' },\n ],\n required: true,\n },\n ],\n },\n ],\n label: 'Default Safety Settings',\n },\n ],\n label: 'Text Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models tab (Simplified)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description: 'Keep this list short. Enable only the models you actually use.',\n initCollapsed: true,\n },\n defaultValue: [\n // Text models\n {\n id: 'gemini-3-pro-preview',\n name: 'Gemini 3.0 Pro (Preview)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-2.5-pro',\n name: 'Gemini 2.5 Pro',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-2.5-flash',\n name: 'Gemini 2.5 Flash',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-1.5-pro-latest',\n name: 'Gemini 1.5 Pro (Latest)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gemini-1.5-flash-latest',\n name: 'Gemini 1.5 Flash (Latest)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n\n // Image models\n {\n id: 'gemini-2.5-flash-image',\n name: 'Gemini 2.5 Flash Image',\n enabled: true,\n responseModalities: ['IMAGE'],\n useCase: 'image',\n },\n {\n id: 'imagen-4.0-generate-001',\n name: 'Imagen 4',\n enabled: true,\n // TODO: fix this with proper definition for multimodel or image model only\n responseModalities: ['IMAGE'],\n useCase: 'image',\n },\n {\n id: 'gemini-3-pro-image-preview',\n name: 'Gemini 3.0 Pro Image (Preview)',\n enabled: true,\n responseModalities: ['IMAGE'],\n useCase: 'image',\n },\n\n // TTS Models\n {\n id: 'gemini-2.5-pro-preview-tts',\n name: 'Gemini 2.5 Pro TTS (Preview)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n {\n id: 'gemini-2.5-flash-preview-tts',\n name: 'Gemini 2.5 Flash TTS (Preview)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic model info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Exact model id as used with @ai-sdk/google.',\n width: '33%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '33%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'google-model-useCase',\n defaultValue: 'text',\n label: 'Use Case',\n options: [\n { label: 'Text', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Text-to-Speech', value: 'tts' },\n { label: 'Embeddings', value: 'embedding' },\n ],\n },\n ],\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'google-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: GoogleIcon,\n labels: {\n plural: 'Google Providers',\n singular: 'Google Gemini',\n },\n}\n"],"names":["GoogleIcon","googleBlock","slug","custom","providerOptionsSchemas","image","fields","text","tts","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","id","enabled","max","min","dbName","options","value","RowLabel","responseModalities","useCase","hasMany","labels","plural","singular","imageURL"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CustomProviderIcon } from '../icons.js';
|
|
1
2
|
export const openaiCompatibleBlock = {
|
|
2
3
|
slug: 'openai-compatible',
|
|
3
4
|
fields: [
|
|
@@ -297,7 +298,7 @@ export const openaiCompatibleBlock = {
|
|
|
297
298
|
]
|
|
298
299
|
}
|
|
299
300
|
],
|
|
300
|
-
imageURL:
|
|
301
|
+
imageURL: CustomProviderIcon,
|
|
301
302
|
labels: {
|
|
302
303
|
plural: 'Custom Providers',
|
|
303
304
|
singular: 'Custom Provider'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/openai-compatible.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nexport const openaiCompatibleBlock: Block = {\n slug: 'openai-compatible',\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'providerName',\n type: 'text',\n admin: {\n description: 'Display name for this custom provider (e.g., \"Ollama\", \"Together AI\")',\n },\n label: 'Provider Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description: 'API key for this provider (if required)',\n },\n label: 'API Key',\n required: true,\n },\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description: 'OpenAI-compatible API endpoint (e.g., http://localhost:11434/v1)',\n },\n label: 'API Base URL',\n required: true,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Provider Options tab\n {\n fields: [\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2,\n min: 0,\n },\n {\n name: 'max_tokens',\n type: 'number',\n label: 'Max Tokens',\n },\n {\n name: 'top_p',\n type: 'number',\n defaultValue: 1.0,\n label: 'Top P',\n max: 1,\n min: 0,\n },\n {\n name: 'frequency_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Frequency Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'presence_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Presence Penalty',\n max: 2,\n min: -2,\n },\n ],\n label: 'Text Provider Options',\n },\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'quality',\n type: 'select',\n dbName: 'compat-image-quality',\n defaultValue: 'standard',\n label: 'Quality',\n options: [\n { label: 'Standard', value: 'standard' },\n { label: 'HD', value: 'hd' },\n ],\n },\n {\n name: 'style',\n type: 'select',\n dbName: 'compat-image-style',\n defaultValue: 'vivid',\n label: 'Style',\n options: [\n { label: 'Vivid', value: 'vivid' },\n { label: 'Natural', value: 'natural' },\n ],\n },\n ],\n label: 'Image Provider Options',\n },\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Speed',\n max: 4,\n min: 0.25,\n },\n {\n name: 'response_format',\n type: 'select',\n dbName: 'compat-tts-format',\n defaultValue: 'mp3',\n label: 'Response Format',\n options: [\n { label: 'MP3', value: 'mp3' },\n { label: 'Opus', value: 'opus' },\n { label: 'AAC', value: 'aac' },\n { label: 'FLAC', value: 'flac' },\n { label: 'WAV', value: 'wav' },\n ],\n },\n ],\n label: 'TTS Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 3. Models tab\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n initCollapsed: true,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: { width: '33%' },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: { width: '33%' },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: { width: '33%' },\n dbName: 'compat-model-useCase',\n label: 'Use Case',\n options: [\n { label: 'Text Generation', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Video Generation', value: 'video' },\n { label: 'Text-to-Speech', value: 'tts' },\n ],\n required: true,\n },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'compat-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n ],\n label: 'Available Models',\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: '/provider-icons/custom-provider.png',\n labels: {\n plural: 'Custom Providers',\n singular: 'Custom Provider',\n },\n}\n\n"],"names":["openaiCompatibleBlock","slug","fields","type","tabs","name","admin","description","label","required","defaultValue","components","Field","max","min","dbName","options","value","RowLabel","initCollapsed","width","hasMany","imageURL","labels","plural","singular"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/openai-compatible.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { CustomProviderIcon } from '../icons.js'\n\nexport const openaiCompatibleBlock: Block = {\n slug: 'openai-compatible',\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'providerName',\n type: 'text',\n admin: {\n description: 'Display name for this custom provider (e.g., \"Ollama\", \"Together AI\")',\n },\n label: 'Provider Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description: 'API key for this provider (if required)',\n },\n label: 'API Key',\n required: true,\n },\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description: 'OpenAI-compatible API endpoint (e.g., http://localhost:11434/v1)',\n },\n label: 'API Base URL',\n required: true,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Provider Options tab\n {\n fields: [\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2,\n min: 0,\n },\n {\n name: 'max_tokens',\n type: 'number',\n label: 'Max Tokens',\n },\n {\n name: 'top_p',\n type: 'number',\n defaultValue: 1.0,\n label: 'Top P',\n max: 1,\n min: 0,\n },\n {\n name: 'frequency_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Frequency Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'presence_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Presence Penalty',\n max: 2,\n min: -2,\n },\n ],\n label: 'Text Provider Options',\n },\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'quality',\n type: 'select',\n dbName: 'compat-image-quality',\n defaultValue: 'standard',\n label: 'Quality',\n options: [\n { label: 'Standard', value: 'standard' },\n { label: 'HD', value: 'hd' },\n ],\n },\n {\n name: 'style',\n type: 'select',\n dbName: 'compat-image-style',\n defaultValue: 'vivid',\n label: 'Style',\n options: [\n { label: 'Vivid', value: 'vivid' },\n { label: 'Natural', value: 'natural' },\n ],\n },\n ],\n label: 'Image Provider Options',\n },\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Speed',\n max: 4,\n min: 0.25,\n },\n {\n name: 'response_format',\n type: 'select',\n dbName: 'compat-tts-format',\n defaultValue: 'mp3',\n label: 'Response Format',\n options: [\n { label: 'MP3', value: 'mp3' },\n { label: 'Opus', value: 'opus' },\n { label: 'AAC', value: 'aac' },\n { label: 'FLAC', value: 'flac' },\n { label: 'WAV', value: 'wav' },\n ],\n },\n ],\n label: 'TTS Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 3. Models tab\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n initCollapsed: true,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: { width: '33%' },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: { width: '33%' },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: { width: '33%' },\n dbName: 'compat-model-useCase',\n label: 'Use Case',\n options: [\n { label: 'Text Generation', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Video Generation', value: 'video' },\n { label: 'Text-to-Speech', value: 'tts' },\n ],\n required: true,\n },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'compat-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n ],\n label: 'Available Models',\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: CustomProviderIcon,\n labels: {\n plural: 'Custom Providers',\n singular: 'Custom Provider',\n },\n}\n\n"],"names":["CustomProviderIcon","openaiCompatibleBlock","slug","fields","type","tabs","name","admin","description","label","required","defaultValue","components","Field","max","min","dbName","options","value","RowLabel","initCollapsed","width","hasMany","imageURL","labels","plural","singular"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OpenAIIcon } from '../icons.js';
|
|
1
2
|
export const openaiBlock = {
|
|
2
3
|
slug: 'openai',
|
|
3
4
|
custom: {
|
|
@@ -404,7 +405,7 @@ export const openaiBlock = {
|
|
|
404
405
|
RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel'
|
|
405
406
|
},
|
|
406
407
|
description: 'Keep this list short. Enable only the models you actually use.',
|
|
407
|
-
initCollapsed:
|
|
408
|
+
initCollapsed: true
|
|
408
409
|
},
|
|
409
410
|
label: 'Available Models',
|
|
410
411
|
labels: {
|
|
@@ -589,7 +590,7 @@ export const openaiBlock = {
|
|
|
589
590
|
]
|
|
590
591
|
}
|
|
591
592
|
],
|
|
592
|
-
imageURL:
|
|
593
|
+
imageURL: OpenAIIcon,
|
|
593
594
|
labels: {
|
|
594
595
|
plural: 'OpenAI Providers',
|
|
595
596
|
singular: 'OpenAI'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/openai.ts"],"sourcesContent":["import type { Block } from 'payload'\n\n\nexport const openaiBlock: Block = {\n slug: 'openai',\n custom: {\n providerOptionsSchemas: {\n image: {\n fields: ['quality', 'style'],\n },\n text: {\n fields: [\n 'temperature',\n 'max_tokens',\n 'top_p',\n 'frequency_penalty',\n 'presence_penalty',\n 'seed',\n 'logitBias',\n ],\n },\n tts: {\n fields: ['speed', 'response_format', 'instructions'],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Optional. If empty, @ai-sdk/openai will use the OPENAI_API_KEY environment variable.',\n },\n label: 'API Key',\n required: false,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://api.openai.com/v1).',\n },\n defaultValue: 'https://api.openai.com/v1',\n label: 'Base URL',\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'organization',\n type: 'text',\n admin: {\n description:\n 'Optional. OpenAI organization ID for billing and access control.',\n },\n label: 'Organization ID',\n },\n {\n name: 'project',\n type: 'text',\n admin: {\n description: 'Optional. OpenAI project ID for organization-level access.',\n },\n label: 'Project ID',\n },\n ],\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description:\n 'Optional. Extra headers to send with every request, for example routing through a proxy.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (NEW)\n {\n fields: [\n {\n name: 'voices',\n type: 'array',\n admin: {\n description: 'Available voices for Text-to-Speech models. You can add custom voices here.',\n initCollapsed: false,\n },\n defaultValue: [\n { id: 'alloy', name: 'Alloy', enabled: true },\n { id: 'echo', name: 'Echo', enabled: true },\n { id: 'fable', name: 'Fable', enabled: true },\n { id: 'onyx', name: 'Onyx', enabled: true },\n { id: 'nova', name: 'Nova', enabled: true },\n { id: 'shimmer', name: 'Shimmer', enabled: true },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID as used by OpenAI API',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW - One group per use case)\n {\n fields: [\n // TTS Provider Options\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models. Users can override these per field.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Speed',\n max: 4,\n min: 0.25,\n },\n {\n name: 'response_format',\n type: 'select',\n dbName: \"openai-tts-response_format\",\n defaultValue: 'mp3',\n label: 'Default Response Format',\n options: [\n { label: 'MP3', value: 'mp3' },\n { label: 'Opus', value: 'opus' },\n { label: 'AAC', value: 'aac' },\n { label: 'FLAC', value: 'flac' },\n { label: 'WAV', value: 'wav' },\n { label: 'PCM', value: 'pcm' },\n ],\n },\n {\n name: 'instructions',\n type: 'textarea',\n admin: {\n placeholder: 'Optional default voice instructions',\n },\n label: 'Default Instructions',\n },\n ],\n label: 'TTS Provider Options',\n },\n\n // Image Provider Options\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'quality',\n type: 'select',\n dbName: 'openai-image-quality',\n defaultValue: 'standard',\n label: 'Default Quality',\n options: [\n { label: 'Standard', value: 'standard' },\n { label: 'HD', value: 'hd' },\n ],\n },\n {\n name: 'style',\n type: 'select',\n dbName: 'openai-image-style',\n defaultValue: 'vivid',\n label: 'Default Style',\n options: [\n { label: 'Vivid', value: 'vivid' },\n { label: 'Natural', value: 'natural' },\n ],\n },\n ],\n label: 'Image Provider Options',\n },\n\n // Text Provider Options\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2,\n min: 0,\n },\n {\n name: 'max_tokens',\n type: 'number',\n label: 'Default Max Tokens',\n },\n {\n name: 'top_p',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Top P',\n max: 1,\n min: 0,\n },\n {\n name: 'frequency_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Default Frequency Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'presence_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Default Presence Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'seed',\n type: 'number',\n label: 'Default Seed',\n },\n {\n name: 'logitBias',\n type: 'json',\n admin: {\n description: 'Modify likelihood of tokens (JSON object mapping token IDs to bias).',\n },\n label: 'Default Logit Bias',\n },\n ],\n label: 'Text Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models (SIMPLIFIED - no per-model settings)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description: 'Keep this list short. Enable only the models you actually use.',\n initCollapsed: false,\n },\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n // Curated models for content creation platforms\n defaultValue: [\n // ===== Text Generation =====\n {\n id: 'gpt-5',\n name: 'GPT-5 (Latest Flagship)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-5-mini',\n name: 'GPT-5 Mini (Fast & Efficient)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'chatgpt-4o-latest',\n name: 'ChatGPT-4o (Always Updated)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4o',\n name: 'GPT-4o (Multimodal)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4o-mini',\n name: 'GPT-4o Mini (Best Value)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4-turbo',\n name: 'GPT-4 Turbo',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n\n // ===== Image Generation =====\n {\n id: 'gpt-image-1',\n name: 'GPT Image 1 (Latest)',\n enabled: true,\n useCase: 'image',\n },\n {\n id: 'dall-e-3',\n name: 'DALL-E 3',\n enabled: true,\n useCase: 'image',\n },\n\n // ===== Audio =====\n {\n id: 'tts-1-hd',\n name: 'TTS HD (Text-to-Speech)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic model info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description:\n 'Exact model id as used with @ai-sdk/openai, for example gpt-4o.',\n width: '33%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '33%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'openai-model-useCase',\n defaultValue: 'text',\n label: 'Use Case',\n options: [\n { label: 'Text', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Text-to-Speech', value: 'tts' },\n { label: 'Embeddings', value: 'embedding' },\n ],\n },\n ],\n },\n // Response modalities and enabled checkbox\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'openai-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: '/provider-icons/openai.webp',\n labels: {\n plural: 'OpenAI Providers',\n singular: 'OpenAI',\n },\n}\n"],"names":["openaiBlock","slug","custom","providerOptionsSchemas","image","fields","text","tts","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","id","enabled","max","min","dbName","options","value","placeholder","RowLabel","labels","plural","singular","responseModalities","useCase","hasMany","imageURL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/openai.ts"],"sourcesContent":["import type { Block } from 'payload'\n\n\nimport { OpenAIIcon } from '../icons.js'\n\nexport const openaiBlock: Block = {\n slug: 'openai',\n custom: {\n providerOptionsSchemas: {\n image: {\n fields: ['quality', 'style'],\n },\n text: {\n fields: [\n 'temperature',\n 'max_tokens',\n 'top_p',\n 'frequency_penalty',\n 'presence_penalty',\n 'seed',\n 'logitBias',\n ],\n },\n tts: {\n fields: ['speed', 'response_format', 'instructions'],\n },\n },\n },\n fields: [\n {\n type: 'tabs',\n tabs: [\n // 1. Setup tab\n {\n fields: [\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n label: 'Enabled',\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: '@ai-stack/payloadcms/client#EncryptedTextField',\n },\n description:\n 'Optional. If empty, @ai-sdk/openai will use the OPENAI_API_KEY environment variable.',\n },\n label: 'API Key',\n required: false,\n },\n ],\n label: 'Setup',\n },\n\n // 2. Connection tab\n {\n fields: [\n {\n type: 'collapsible',\n admin: {\n initCollapsed: false,\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'baseURL',\n type: 'text',\n admin: {\n description:\n 'Optional. Override default API endpoint (defaults to https://api.openai.com/v1).',\n },\n defaultValue: 'https://api.openai.com/v1',\n label: 'Base URL',\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'organization',\n type: 'text',\n admin: {\n description:\n 'Optional. OpenAI organization ID for billing and access control.',\n },\n label: 'Organization ID',\n },\n {\n name: 'project',\n type: 'text',\n admin: {\n description: 'Optional. OpenAI project ID for organization-level access.',\n },\n label: 'Project ID',\n },\n ],\n },\n {\n name: 'headers',\n type: 'array',\n admin: {\n description:\n 'Optional. Extra headers to send with every request, for example routing through a proxy.',\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'key',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Name',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'Header Value',\n required: true,\n },\n ],\n },\n ],\n label: 'Custom Headers',\n },\n ],\n label: 'API & Network Settings',\n },\n ],\n label: 'Connection',\n },\n\n // 3. Voices tab (NEW)\n {\n fields: [\n {\n name: 'voices',\n type: 'array',\n admin: {\n description: 'Available voices for Text-to-Speech models. You can add custom voices here.',\n initCollapsed: false,\n },\n defaultValue: [\n { id: 'alloy', name: 'Alloy', enabled: true },\n { id: 'echo', name: 'Echo', enabled: true },\n { id: 'fable', name: 'Fable', enabled: true },\n { id: 'onyx', name: 'Onyx', enabled: true },\n { id: 'nova', name: 'Nova', enabled: true },\n { id: 'shimmer', name: 'Shimmer', enabled: true },\n ],\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description: 'Voice ID as used by OpenAI API',\n width: '40%',\n },\n label: 'Voice ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '40%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '20%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Available Voices',\n },\n ],\n label: 'Voices',\n },\n\n // 4. Provider Options (NEW - One group per use case)\n {\n fields: [\n // TTS Provider Options\n {\n name: 'ttsProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for TTS models. Users can override these per field.',\n },\n fields: [\n {\n name: 'speed',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Speed',\n max: 4,\n min: 0.25,\n },\n {\n name: 'response_format',\n type: 'select',\n dbName: \"openai-tts-response_format\",\n defaultValue: 'mp3',\n label: 'Default Response Format',\n options: [\n { label: 'MP3', value: 'mp3' },\n { label: 'Opus', value: 'opus' },\n { label: 'AAC', value: 'aac' },\n { label: 'FLAC', value: 'flac' },\n { label: 'WAV', value: 'wav' },\n { label: 'PCM', value: 'pcm' },\n ],\n },\n {\n name: 'instructions',\n type: 'textarea',\n admin: {\n placeholder: 'Optional default voice instructions',\n },\n label: 'Default Instructions',\n },\n ],\n label: 'TTS Provider Options',\n },\n\n // Image Provider Options\n {\n name: 'imageProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for image generation models.',\n },\n fields: [\n {\n name: 'quality',\n type: 'select',\n dbName: 'openai-image-quality',\n defaultValue: 'standard',\n label: 'Default Quality',\n options: [\n { label: 'Standard', value: 'standard' },\n { label: 'HD', value: 'hd' },\n ],\n },\n {\n name: 'style',\n type: 'select',\n dbName: 'openai-image-style',\n defaultValue: 'vivid',\n label: 'Default Style',\n options: [\n { label: 'Vivid', value: 'vivid' },\n { label: 'Natural', value: 'natural' },\n ],\n },\n ],\n label: 'Image Provider Options',\n },\n\n // Text Provider Options\n {\n name: 'textProviderOptions',\n type: 'group',\n admin: {\n description: 'Default provider options for text generation models.',\n },\n fields: [\n {\n name: 'temperature',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Temperature',\n max: 2,\n min: 0,\n },\n {\n name: 'max_tokens',\n type: 'number',\n label: 'Default Max Tokens',\n },\n {\n name: 'top_p',\n type: 'number',\n defaultValue: 1.0,\n label: 'Default Top P',\n max: 1,\n min: 0,\n },\n {\n name: 'frequency_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Default Frequency Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'presence_penalty',\n type: 'number',\n defaultValue: 0,\n label: 'Default Presence Penalty',\n max: 2,\n min: -2,\n },\n {\n name: 'seed',\n type: 'number',\n label: 'Default Seed',\n },\n {\n name: 'logitBias',\n type: 'json',\n admin: {\n description: 'Modify likelihood of tokens (JSON object mapping token IDs to bias).',\n },\n label: 'Default Logit Bias',\n },\n ],\n label: 'Text Provider Options',\n },\n ],\n label: 'Provider Options',\n },\n\n // 5. Models (SIMPLIFIED - no per-model settings)\n {\n fields: [\n {\n name: 'models',\n type: 'array',\n admin: {\n components: {\n RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel',\n },\n description: 'Keep this list short. Enable only the models you actually use.',\n initCollapsed: true,\n },\n label: 'Available Models',\n labels: {\n plural: 'Models',\n singular: 'Model',\n },\n // Curated models for content creation platforms\n defaultValue: [\n // ===== Text Generation =====\n {\n id: 'gpt-5',\n name: 'GPT-5 (Latest Flagship)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-5-mini',\n name: 'GPT-5 Mini (Fast & Efficient)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'chatgpt-4o-latest',\n name: 'ChatGPT-4o (Always Updated)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4o',\n name: 'GPT-4o (Multimodal)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4o-mini',\n name: 'GPT-4o Mini (Best Value)',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'gpt-4-turbo',\n name: 'GPT-4 Turbo',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n\n // ===== Image Generation =====\n {\n id: 'gpt-image-1',\n name: 'GPT Image 1 (Latest)',\n enabled: true,\n useCase: 'image',\n },\n {\n id: 'dall-e-3',\n name: 'DALL-E 3',\n enabled: true,\n useCase: 'image',\n },\n\n // ===== Audio =====\n {\n id: 'tts-1-hd',\n name: 'TTS HD (Text-to-Speech)',\n enabled: true,\n responseModalities: ['AUDIO'],\n useCase: 'tts',\n },\n ],\n fields: [\n // Basic model info\n {\n type: 'row',\n fields: [\n {\n name: 'id',\n type: 'text',\n admin: {\n description:\n 'Exact model id as used with @ai-sdk/openai, for example gpt-4o.',\n width: '33%',\n },\n label: 'Model ID',\n required: true,\n },\n {\n name: 'name',\n type: 'text',\n admin: {\n width: '33%',\n },\n label: 'Display Name',\n required: true,\n },\n {\n name: 'useCase',\n type: 'select',\n admin: {\n width: '33%',\n },\n dbName: 'openai-model-useCase',\n defaultValue: 'text',\n label: 'Use Case',\n options: [\n { label: 'Text', value: 'text' },\n { label: 'Image Generation', value: 'image' },\n { label: 'Text-to-Speech', value: 'tts' },\n { label: 'Embeddings', value: 'embedding' },\n ],\n },\n ],\n },\n // Response modalities and enabled checkbox\n {\n name: 'responseModalities',\n type: 'select',\n admin: {\n description: 'Output capabilities of this model',\n width: '50%',\n },\n dbName: 'openai-model-modalities',\n hasMany: true,\n label: 'Response Modalities',\n options: [\n { label: 'Text', value: 'TEXT' },\n { label: 'Image', value: 'IMAGE' },\n { label: 'Audio', value: 'AUDIO' },\n ],\n },\n {\n name: 'enabled',\n type: 'checkbox',\n admin: {\n width: '50%',\n },\n defaultValue: true,\n label: 'Enabled',\n },\n ],\n },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: OpenAIIcon,\n labels: {\n plural: 'OpenAI Providers',\n singular: 'OpenAI',\n },\n}\n"],"names":["OpenAIIcon","openaiBlock","slug","custom","providerOptionsSchemas","image","fields","text","tts","type","tabs","name","defaultValue","label","admin","components","Field","description","required","initCollapsed","width","id","enabled","max","min","dbName","options","value","placeholder","RowLabel","labels","plural","singular","responseModalities","useCase","hasMany","imageURL"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { XAIIcon } from '../icons.js';
|
|
1
2
|
export const xaiBlock = {
|
|
2
3
|
slug: 'xai',
|
|
3
4
|
fields: [
|
|
@@ -236,7 +237,7 @@ export const xaiBlock = {
|
|
|
236
237
|
]
|
|
237
238
|
}
|
|
238
239
|
],
|
|
239
|
-
imageURL:
|
|
240
|
+
imageURL: XAIIcon,
|
|
240
241
|
labels: {
|
|
241
242
|
plural: 'xAI Providers',
|
|
242
243
|
singular: 'xAI Grok'
|