@ai-stack/payloadcms 3.76.0-beta.1 → 3.76.0-beta.3
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/generateObject.js +1 -4
- package/dist/ai/core/generateObject.js.map +1 -1
- package/dist/ai/core/generateText.js +1 -5
- package/dist/ai/core/generateText.js.map +1 -1
- package/dist/ai/core/media/generateMedia.js +1 -4
- package/dist/ai/core/media/generateMedia.js.map +1 -1
- package/dist/ai/core/media/image/generateImage.js +4 -14
- package/dist/ai/core/media/image/generateImage.js.map +1 -1
- package/dist/ai/core/media/image/handlers/multimodal.js +7 -24
- package/dist/ai/core/media/image/handlers/multimodal.js.map +1 -1
- package/dist/ai/core/media/image/handlers/standard.js +7 -2
- package/dist/ai/core/media/image/handlers/standard.js.map +1 -1
- package/dist/ai/core/media/speech/generateSpeech.js +2 -3
- package/dist/ai/core/media/speech/generateSpeech.js.map +1 -1
- package/dist/ai/core/media/types.d.ts +2 -3
- package/dist/ai/core/media/types.js.map +1 -1
- package/dist/ai/core/streamObject.js +0 -3
- package/dist/ai/core/streamObject.js.map +1 -1
- package/dist/ai/core/streamText.js +1 -4
- package/dist/ai/core/streamText.js.map +1 -1
- package/dist/ai/core/types.d.ts +2 -2
- package/dist/ai/core/types.js.map +1 -1
- package/dist/ai/providers/blocks/anthropic.js +2 -44
- package/dist/ai/providers/blocks/anthropic.js.map +1 -1
- package/dist/ai/providers/blocks/elevenlabs.js +4 -109
- package/dist/ai/providers/blocks/elevenlabs.js.map +1 -1
- package/dist/ai/providers/blocks/fal.js +2 -120
- package/dist/ai/providers/blocks/fal.js.map +1 -1
- package/dist/ai/providers/blocks/google.js +6 -240
- package/dist/ai/providers/blocks/google.js.map +1 -1
- package/dist/ai/providers/blocks/openai-compatible.js +2 -146
- package/dist/ai/providers/blocks/openai-compatible.js.map +1 -1
- package/dist/ai/providers/blocks/openai.js +2 -202
- package/dist/ai/providers/blocks/openai.js.map +1 -1
- package/dist/ai/providers/blocks/xai.js +2 -55
- package/dist/ai/providers/blocks/xai.js.map +1 -1
- package/dist/ai/providers/index.d.ts +1 -1
- package/dist/ai/providers/index.js +0 -2
- package/dist/ai/providers/index.js.map +1 -1
- package/dist/ai/providers/registry.d.ts +24 -28
- package/dist/ai/providers/registry.js +184 -138
- package/dist/ai/providers/registry.js.map +1 -1
- package/dist/ai/providers/types.d.ts +12 -33
- package/dist/ai/providers/types.js +0 -1
- package/dist/ai/providers/types.js.map +1 -1
- package/dist/ai/schemas/lexicalJsonSchema.js +1 -1
- package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -1
- package/dist/ai/utilities/filterEditorSchemaByNodes.js.map +1 -0
- package/dist/ai/utilities/generateFileNameByPrompt.js.map +1 -0
- package/dist/ai/utilities/isObjectSchema.js.map +1 -0
- package/dist/ai/{utils → utilities}/nodeToSchemaMap.js +6 -6
- package/dist/ai/utilities/nodeToSchemaMap.js.map +1 -0
- package/dist/ai/{prompts.d.ts → utilities/prompts.d.ts} +1 -1
- package/dist/ai/utilities/prompts.js.map +1 -0
- package/dist/ai/utilities/systemGenerate.js.map +1 -0
- package/dist/collections/AIJobs.js +3 -12
- package/dist/collections/AIJobs.js.map +1 -1
- package/dist/collections/AIProviders.js +56 -29
- package/dist/collections/AIProviders.js.map +1 -1
- package/dist/collections/Instructions.js +91 -59
- package/dist/collections/Instructions.js.map +1 -1
- package/dist/collections/shared.d.ts +30 -0
- package/dist/collections/shared.js +15 -0
- package/dist/collections/shared.js.map +1 -0
- package/dist/endpoints/fetchFields.js +14 -6
- package/dist/endpoints/fetchFields.js.map +1 -1
- package/dist/endpoints/fetchVoices.js +1 -1
- package/dist/endpoints/fetchVoices.js.map +1 -1
- package/dist/endpoints/generate.d.ts +7 -0
- package/dist/endpoints/generate.js +268 -0
- package/dist/endpoints/generate.js.map +1 -0
- package/dist/endpoints/index.js +9 -639
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/promptMentions.d.ts +2 -0
- package/dist/endpoints/promptMentions.js +166 -0
- package/dist/endpoints/promptMentions.js.map +1 -0
- package/dist/endpoints/upload.d.ts +7 -0
- package/dist/endpoints/upload.js +294 -0
- package/dist/endpoints/upload.js.map +1 -0
- package/dist/endpoints/videogenWebhook.d.ts +7 -0
- package/dist/endpoints/videogenWebhook.js +132 -0
- package/dist/endpoints/videogenWebhook.js.map +1 -0
- package/dist/exports/client.d.ts +2 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/fields.d.ts +2 -1
- package/dist/exports/fields.js +2 -1
- package/dist/exports/fields.js.map +1 -1
- package/dist/fields/ArrayComposeField/ArrayComposeField.js +1 -1
- package/dist/fields/ArrayComposeField/ArrayComposeField.js.map +1 -1
- package/dist/fields/ArrayComposeField/ArrayComposeField.jsx +1 -1
- package/dist/fields/ComposeField/ComposeField.d.ts +1 -0
- package/dist/fields/ComposeField/ComposeField.js +18 -8
- package/dist/fields/ComposeField/ComposeField.js.map +1 -1
- package/dist/fields/ComposeField/ComposeField.jsx +12 -7
- package/dist/fields/LexicalEditor/feature.server.js +1 -1
- package/dist/fields/LexicalEditor/feature.server.js.map +1 -1
- package/dist/fields/PromptEditorField/feature.client.d.ts +1 -0
- package/dist/fields/PromptEditorField/feature.client.js +173 -0
- package/dist/fields/PromptEditorField/feature.client.js.map +1 -0
- package/dist/fields/PromptEditorField/feature.client.jsx +148 -0
- package/dist/fields/PromptEditorField/feature.server.d.ts +1 -0
- package/dist/fields/PromptEditorField/feature.server.js +30 -0
- package/dist/fields/PromptEditorField/feature.server.js.map +1 -0
- package/dist/fields/PromptField.d.ts +4 -0
- package/dist/fields/PromptField.js +18 -0
- package/dist/fields/PromptField.js.map +1 -0
- package/dist/fields/SelectField/SelectField.js +0 -1
- package/dist/fields/SelectField/SelectField.js.map +1 -1
- package/dist/fields/SelectField/SelectField.jsx +0 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/libraries/handlebars/helpers.js +2 -2
- package/dist/libraries/handlebars/helpers.js.map +1 -1
- package/dist/libraries/handlebars/replacePlaceholders.js +5 -1
- package/dist/libraries/handlebars/replacePlaceholders.js.map +1 -1
- package/dist/payload-ai.d.ts +5 -19
- package/dist/plugin.js +18 -21
- package/dist/plugin.js.map +1 -1
- package/dist/providers/FieldProvider/FieldProvider.js +11 -20
- package/dist/providers/FieldProvider/FieldProvider.js.map +1 -1
- package/dist/providers/FieldProvider/FieldProvider.jsx +8 -18
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +5 -2
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.jsx +5 -2
- package/dist/translations/de.json +47 -0
- package/dist/translations/en.json +45 -2
- package/dist/translations/es.json +45 -2
- package/dist/translations/fa.json +45 -2
- package/dist/translations/fr.json +46 -3
- package/dist/translations/hi.json +47 -0
- package/dist/translations/index.d.ts +88 -26
- package/dist/translations/index.js +18 -32
- package/dist/translations/index.js.map +1 -1
- package/dist/translations/ja.json +47 -0
- package/dist/translations/nb.json +47 -0
- package/dist/translations/nl.json +47 -0
- package/dist/translations/pl.json +45 -2
- package/dist/translations/pt.json +47 -0
- package/dist/translations/ru.json +45 -2
- package/dist/translations/th.json +47 -0
- package/dist/translations/translation-schema.json +184 -11
- package/dist/translations/uk.json +45 -2
- package/dist/translations/zh.json +47 -0
- package/dist/types.d.ts +64 -28
- package/dist/types.js.map +1 -1
- package/dist/ui/Compose/Compose.js +42 -79
- package/dist/ui/Compose/Compose.js.map +1 -1
- package/dist/ui/Compose/Compose.jsx +32 -86
- package/dist/ui/Compose/ComposePlaceholder.js +1 -1
- package/dist/ui/Compose/ComposePlaceholder.js.map +1 -1
- package/dist/ui/Compose/ComposePlaceholder.jsx +1 -1
- package/dist/ui/Compose/{compose.module.css → compose.module.scss} +3 -5
- package/dist/ui/Compose/hooks/menu/Item.d.ts +1 -1
- package/dist/ui/Compose/hooks/menu/Item.js +7 -3
- package/dist/ui/Compose/hooks/menu/Item.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/Item.jsx +11 -5
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js +15 -5
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/TranslateMenu.jsx +11 -5
- package/dist/ui/Compose/hooks/menu/items.d.ts +8 -8
- package/dist/ui/Compose/hooks/menu/itemsMap.d.ts +2 -1
- package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/types.d.ts +21 -0
- package/dist/ui/Compose/hooks/menu/types.js +3 -0
- package/dist/ui/Compose/hooks/menu/types.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/useMenu.d.ts +2 -2
- package/dist/ui/Compose/hooks/menu/useMenu.js +45 -23
- package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/useMenu.jsx +43 -23
- package/dist/ui/Compose/hooks/mergeGeneratedValue.d.ts +14 -0
- package/dist/ui/Compose/hooks/mergeGeneratedValue.js +38 -0
- package/dist/ui/Compose/hooks/mergeGeneratedValue.js.map +1 -0
- package/dist/ui/Compose/hooks/useGenerate.js +37 -12
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
- package/dist/ui/Compose/hooks/useGenerateUpload.js +66 -24
- package/dist/ui/Compose/hooks/useGenerateUpload.js.map +1 -1
- package/dist/ui/Compose/hooks/useHistory.js +1 -1
- package/dist/ui/Compose/hooks/useHistory.js.map +1 -1
- package/dist/ui/Compose/hooks/useStreamingUpdate.js +4 -4
- package/dist/ui/Compose/hooks/useStreamingUpdate.js.map +1 -1
- package/dist/ui/ConfigDashboard/configDashboard.module.css +94 -0
- package/dist/ui/ConfigDashboard/index.js +27 -92
- package/dist/ui/ConfigDashboard/index.js.map +1 -1
- package/dist/ui/ConfigDashboard/index.jsx +24 -77
- package/dist/ui/DynamicModelSelect/index.js +6 -27
- package/dist/ui/DynamicModelSelect/index.js.map +1 -1
- package/dist/ui/DynamicModelSelect/index.jsx +6 -29
- package/dist/ui/DynamicProviderSelect/index.js +6 -27
- package/dist/ui/DynamicProviderSelect/index.js.map +1 -1
- package/dist/ui/DynamicProviderSelect/index.jsx +6 -29
- package/dist/ui/DynamicVoiceSelect/index.js +34 -83
- package/dist/ui/DynamicVoiceSelect/index.js.map +1 -1
- package/dist/ui/DynamicVoiceSelect/index.jsx +16 -53
- package/dist/ui/GlobalProviderOptions/index.d.ts +2 -0
- package/dist/ui/GlobalProviderOptions/index.js +118 -0
- package/dist/ui/GlobalProviderOptions/index.js.map +1 -0
- package/dist/ui/GlobalProviderOptions/index.jsx +60 -0
- package/dist/ui/Icons/Icons.js +1 -1
- package/dist/ui/Icons/Icons.js.map +1 -1
- package/dist/ui/Icons/Icons.jsx +1 -1
- package/dist/ui/Icons/LottieAnimation.js +1 -1
- package/dist/ui/Icons/LottieAnimation.js.map +1 -1
- package/dist/ui/Icons/LottieAnimation.jsx +1 -1
- package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.d.ts +12 -0
- package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.js +166 -0
- package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.js.map +1 -0
- package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.jsx +83 -0
- package/dist/ui/InstructionProviderOptions/index.d.ts +2 -0
- package/dist/ui/InstructionProviderOptions/index.js +157 -0
- package/dist/ui/InstructionProviderOptions/index.js.map +1 -0
- package/dist/ui/InstructionProviderOptions/index.jsx +92 -0
- package/dist/ui/VoicesFetcher/index.js.map +1 -1
- package/dist/ui/hooks/useAISettings.d.ts +26 -0
- package/dist/ui/hooks/useAISettings.js +73 -0
- package/dist/ui/hooks/useAISettings.js.map +1 -0
- package/dist/ui/providerOptions/updateProviderOptionsValue.d.ts +6 -0
- package/dist/ui/providerOptions/updateProviderOptionsValue.js +50 -0
- package/dist/ui/providerOptions/updateProviderOptionsValue.js.map +1 -0
- package/dist/ui/shared/handleSelectChange.d.ts +5 -0
- package/dist/ui/shared/handleSelectChange.js +12 -0
- package/dist/ui/shared/handleSelectChange.js.map +1 -0
- package/dist/ui/shared/types.d.ts +11 -0
- package/dist/ui/shared/types.js +5 -0
- package/dist/ui/shared/types.js.map +1 -0
- package/dist/utilities/ai/resolveEffectiveInstructionSettings.d.ts +15 -0
- package/dist/utilities/ai/resolveEffectiveInstructionSettings.js +136 -0
- package/dist/utilities/ai/resolveEffectiveInstructionSettings.js.map +1 -0
- package/dist/{endpoints → utilities}/buildPromptUtils.js +14 -5
- package/dist/utilities/buildPromptUtils.js.map +1 -0
- package/dist/utilities/buildSmartPrompt.js +3 -3
- package/dist/utilities/buildSmartPrompt.js.map +1 -1
- package/dist/utilities/fields/fieldToJsonSchema.js.map +1 -0
- package/dist/utilities/fields/getFieldBySchemaPath.js.map +1 -0
- package/dist/utilities/fields/getFieldInfo.js.map +1 -0
- package/dist/utilities/{updateFieldsConfig.js → fields/updateFieldsConfig.js} +8 -3
- package/dist/utilities/fields/updateFieldsConfig.js.map +1 -0
- package/dist/utilities/images/extractImageData.js.map +1 -0
- package/dist/utilities/images/extractPromptAttachments.js.map +1 -0
- package/dist/utilities/{fetchImages.d.ts → images/fetchImages.d.ts} +1 -1
- package/dist/utilities/images/fetchImages.js +49 -0
- package/dist/utilities/images/fetchImages.js.map +1 -0
- package/dist/utilities/images/resolveImageReferences.js +183 -0
- package/dist/utilities/images/resolveImageReferences.js.map +1 -0
- package/dist/utilities/init/autoSetupProviders.d.ts +3 -0
- package/dist/utilities/init/autoSetupProviders.js +216 -0
- package/dist/utilities/init/autoSetupProviders.js.map +1 -0
- package/dist/utilities/lexical/editorSchemaValidator.js.map +1 -0
- package/dist/utilities/lexical/lexicalToHTML.js.map +1 -0
- package/dist/utilities/lexical/lexicalToPromptTemplate.d.ts +2 -0
- package/dist/utilities/lexical/lexicalToPromptTemplate.js +50 -0
- package/dist/utilities/lexical/lexicalToPromptTemplate.js.map +1 -0
- package/dist/utilities/lexical/setSafeLexicalState.js.map +1 -0
- package/dist/utilities/lexical/stringToLexicalJSON.d.ts +2 -0
- package/dist/utilities/lexical/stringToLexicalJSON.js +39 -0
- package/dist/utilities/lexical/stringToLexicalJSON.js.map +1 -0
- package/dist/utilities/sanitizeLog.d.ts +1 -0
- package/dist/utilities/sanitizeLog.js +39 -0
- package/dist/utilities/sanitizeLog.js.map +1 -0
- package/dist/utilities/seedProperties.js +54 -22
- package/dist/utilities/seedProperties.js.map +1 -1
- package/package.json +36 -2
- package/dist/ai/analyse.d.ts +0 -1
- package/dist/ai/analyse.js +0 -3
- package/dist/ai/analyse.js.map +0 -1
- package/dist/ai/index.d.ts +0 -11
- package/dist/ai/index.js +0 -25
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/prompts.js.map +0 -1
- package/dist/ai/utils/filterEditorSchemaByNodes.js.map +0 -1
- package/dist/ai/utils/generateFileNameByPrompt.js.map +0 -1
- package/dist/ai/utils/isObjectSchema.js.map +0 -1
- package/dist/ai/utils/nodeToSchemaMap.js.map +0 -1
- package/dist/ai/utils/systemGenerate.js.map +0 -1
- package/dist/endpoints/buildPromptUtils.js.map +0 -1
- package/dist/endpoints/chat.d.ts +0 -4
- package/dist/fields/PromptEditorField/PromptEditorField.d.ts +0 -3
- package/dist/fields/PromptEditorField/PromptEditorField.js +0 -217
- package/dist/fields/PromptEditorField/PromptEditorField.js.map +0 -1
- package/dist/fields/PromptEditorField/PromptEditorField.jsx +0 -160
- package/dist/ui/AIConfigDashboard/index.d.ts +0 -2
- package/dist/ui/AIConfigDashboard/index.js +0 -224
- package/dist/ui/AIConfigDashboard/index.js.map +0 -1
- package/dist/ui/AIConfigDashboard/index.jsx +0 -175
- package/dist/ui/ProviderOptionsEditor/index.d.ts +0 -7
- package/dist/ui/ProviderOptionsEditor/index.js +0 -291
- package/dist/ui/ProviderOptionsEditor/index.js.map +0 -1
- package/dist/ui/ProviderOptionsEditor/index.jsx +0 -210
- package/dist/utilities/editorSchemaValidator.js.map +0 -1
- package/dist/utilities/extractImageData.js.map +0 -1
- package/dist/utilities/extractPromptAttachments.js.map +0 -1
- package/dist/utilities/fetchImages.js +0 -38
- package/dist/utilities/fetchImages.js.map +0 -1
- package/dist/utilities/fieldToJsonSchema.js.map +0 -1
- package/dist/utilities/getFieldBySchemaPath.js.map +0 -1
- package/dist/utilities/getFieldInfo.js.map +0 -1
- package/dist/utilities/getProviderOptionsFields.d.ts +0 -16
- package/dist/utilities/getProviderOptionsFields.js +0 -80
- package/dist/utilities/getProviderOptionsFields.js.map +0 -1
- package/dist/utilities/isPluginActivated.d.ts +0 -2
- package/dist/utilities/isPluginActivated.js +0 -5
- package/dist/utilities/isPluginActivated.js.map +0 -1
- package/dist/utilities/lexicalToHTML.js.map +0 -1
- package/dist/utilities/resolveImageReferences.js +0 -167
- package/dist/utilities/resolveImageReferences.js.map +0 -1
- package/dist/utilities/schemaConverter.d.ts +0 -3
- package/dist/utilities/schemaConverter.js +0 -93
- package/dist/utilities/schemaConverter.js.map +0 -1
- package/dist/utilities/setSafeLexicalState.js.map +0 -1
- package/dist/utilities/updateFieldsConfig.js.map +0 -1
- /package/dist/ai/{utils → utilities}/filterEditorSchemaByNodes.d.ts +0 -0
- /package/dist/ai/{utils → utilities}/filterEditorSchemaByNodes.js +0 -0
- /package/dist/ai/{utils → utilities}/generateFileNameByPrompt.d.ts +0 -0
- /package/dist/ai/{utils → utilities}/generateFileNameByPrompt.js +0 -0
- /package/dist/ai/{utils → utilities}/isObjectSchema.d.ts +0 -0
- /package/dist/ai/{utils → utilities}/isObjectSchema.js +0 -0
- /package/dist/ai/{utils → utilities}/nodeToSchemaMap.d.ts +0 -0
- /package/dist/ai/{prompts.js → utilities/prompts.js} +0 -0
- /package/dist/ai/{utils → utilities}/systemGenerate.d.ts +0 -0
- /package/dist/ai/{utils → utilities}/systemGenerate.js +0 -0
- /package/dist/ui/Icons/{icons.module.css → icons.module.scss} +0 -0
- /package/dist/{endpoints → utilities}/buildPromptUtils.d.ts +0 -0
- /package/dist/utilities/{fieldToJsonSchema.d.ts → fields/fieldToJsonSchema.d.ts} +0 -0
- /package/dist/utilities/{fieldToJsonSchema.js → fields/fieldToJsonSchema.js} +0 -0
- /package/dist/utilities/{getFieldBySchemaPath.d.ts → fields/getFieldBySchemaPath.d.ts} +0 -0
- /package/dist/utilities/{getFieldBySchemaPath.js → fields/getFieldBySchemaPath.js} +0 -0
- /package/dist/utilities/{getFieldInfo.d.ts → fields/getFieldInfo.d.ts} +0 -0
- /package/dist/utilities/{getFieldInfo.js → fields/getFieldInfo.js} +0 -0
- /package/dist/utilities/{updateFieldsConfig.d.ts → fields/updateFieldsConfig.d.ts} +0 -0
- /package/dist/utilities/{extractImageData.d.ts → images/extractImageData.d.ts} +0 -0
- /package/dist/utilities/{extractImageData.js → images/extractImageData.js} +0 -0
- /package/dist/utilities/{extractPromptAttachments.d.ts → images/extractPromptAttachments.d.ts} +0 -0
- /package/dist/utilities/{extractPromptAttachments.js → images/extractPromptAttachments.js} +0 -0
- /package/dist/utilities/{resolveImageReferences.d.ts → images/resolveImageReferences.d.ts} +0 -0
- /package/dist/utilities/{editorSchemaValidator.d.ts → lexical/editorSchemaValidator.d.ts} +0 -0
- /package/dist/utilities/{editorSchemaValidator.js → lexical/editorSchemaValidator.js} +0 -0
- /package/dist/utilities/{lexicalToHTML.d.ts → lexical/lexicalToHTML.d.ts} +0 -0
- /package/dist/utilities/{lexicalToHTML.js → lexical/lexicalToHTML.js} +0 -0
- /package/dist/utilities/{setSafeLexicalState.d.ts → lexical/setSafeLexicalState.d.ts} +0 -0
- /package/dist/utilities/{setSafeLexicalState.js → lexical/setSafeLexicalState.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsonSchema, generateObject as sdkGenerateObject } from 'ai';
|
|
2
|
-
import { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js';
|
|
2
|
+
import { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js';
|
|
3
3
|
import { getLanguageModel } from '../providers/registry.js';
|
|
4
4
|
function isZodSchema(schema) {
|
|
5
5
|
return typeof schema === 'object' && schema !== null && '_def' in schema;
|
|
@@ -26,9 +26,6 @@ function isZodSchema(schema) {
|
|
|
26
26
|
maxOutputTokens: maxTokens
|
|
27
27
|
} : {}
|
|
28
28
|
};
|
|
29
|
-
if (providerOptions) {
|
|
30
|
-
options.providerOptions = providerOptions;
|
|
31
|
-
}
|
|
32
29
|
return sdkGenerateObject(options);
|
|
33
30
|
}
|
|
34
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/core/generateObject.ts"],"sourcesContent":["import { jsonSchema, generateObject as sdkGenerateObject } from 'ai'\n\nimport type { PayloadGenerateObjectArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\nfunction isZodSchema(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_def' in schema\n}\n\n/**\n * Generate structured output using AI SDK's generateObject\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK\n */\nexport async function generateObject(args: PayloadGenerateObjectArgs) {\n const {\n maxTokens,\n mode,\n model: modelId,\n payload,\n prompt,\n provider,\n providerOptions,\n schema,\n system,\n temperature,\n ...rest\n } = args\n\n // Extract attachments if needed (from existing utility)\n const processedPrompt = (rest as any).extractAttachments\n ? extractPromptAttachments(prompt)\n : prompt\n\n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n\n // Pass directly to AI SDK with minimal transformation\n const options: Record<string, unknown> = {\n mode: mode || 'auto',\n model,\n prompt: processedPrompt,\n schema: schema ? (isZodSchema(schema) ? schema : jsonSchema(schema as any)) : undefined,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/core/generateObject.ts"],"sourcesContent":["import { jsonSchema, generateObject as sdkGenerateObject } from 'ai'\n\nimport type { PayloadGenerateObjectArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\nfunction isZodSchema(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_def' in schema\n}\n\n/**\n * Generate structured output using AI SDK's generateObject\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK\n */\nexport async function generateObject(args: PayloadGenerateObjectArgs) {\n const {\n maxTokens,\n mode,\n model: modelId,\n payload,\n prompt,\n provider,\n providerOptions,\n\n schema,\n system,\n temperature,\n ...rest\n } = args\n\n // Extract attachments if needed (from existing utility)\n const processedPrompt = (rest as any).extractAttachments\n ? extractPromptAttachments(prompt)\n : prompt\n\n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n\n // Pass directly to AI SDK with minimal transformation\n const options: Record<string, unknown> = {\n mode: mode || 'auto',\n model,\n prompt: processedPrompt,\n schema: schema ? (isZodSchema(schema) ? schema : jsonSchema(schema as any)) : undefined,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n\n\n return sdkGenerateObject(options as Parameters<typeof sdkGenerateObject>[0])\n}\n"],"names":["jsonSchema","generateObject","sdkGenerateObject","extractPromptAttachments","getLanguageModel","isZodSchema","schema","args","maxTokens","mode","model","modelId","payload","prompt","provider","providerOptions","system","temperature","rest","processedPrompt","extractAttachments","options","undefined","maxOutputTokens"],"mappings":"AAAA,SAASA,UAAU,EAAEC,kBAAkBC,iBAAiB,QAAQ,KAAI;AAIpE,SAASC,wBAAwB,QAAQ,qDAAoD;AAC7F,SAASC,gBAAgB,QAAQ,2BAA0B;AAE3D,SAASC,YAAYC,MAAe;IAClC,OAAO,OAAOA,WAAW,YAAYA,WAAW,QAAQ,UAAUA;AACpE;AAEA;;;;CAIC,GACD,OAAO,eAAeL,eAAeM,IAA+B;IAClE,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,OAAOC,OAAO,EACdC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,eAAe,EAEfT,MAAM,EACNU,MAAM,EACNC,WAAW,EACX,GAAGC,MACJ,GAAGX;IAEJ,wDAAwD;IACxD,MAAMY,kBAAkB,AAACD,KAAaE,kBAAkB,GACpDjB,yBAAyBU,UACzBA;IAEJ,8BAA8B;IAC9B,MAAMH,QAAQ,MAAMN,iBAAiBQ,SAASE,UAAUH,SAASI;IAEjE,sDAAsD;IACtD,MAAMM,UAAmC;QACvCZ,MAAMA,QAAQ;QACdC;QACAG,QAAQM;QACRb,QAAQA,SAAUD,YAAYC,UAAUA,SAASN,WAAWM,UAAkBgB;QAC9EN;QACAC,aAAaA,eAAe;QAC5B,GAAIT,YAAY;YAAEe,iBAAiBf;QAAU,IAAI,CAAC,CAAC;IACrD;IAIA,OAAON,kBAAkBmB;AAC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generateText as sdkGenerateText } from 'ai';
|
|
2
|
-
import { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js';
|
|
2
|
+
import { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js';
|
|
3
3
|
import { getLanguageModel } from '../providers/registry.js';
|
|
4
4
|
/**
|
|
5
5
|
* Generate simple text using AI SDK's generateText
|
|
@@ -21,10 +21,6 @@ import { getLanguageModel } from '../providers/registry.js';
|
|
|
21
21
|
maxOutputTokens: maxTokens
|
|
22
22
|
} : {}
|
|
23
23
|
};
|
|
24
|
-
// Also pass providerOptions to generateText for per-call overrides if supported by SDK/Model
|
|
25
|
-
if (providerOptions) {
|
|
26
|
-
options.providerOptions = providerOptions;
|
|
27
|
-
}
|
|
28
24
|
return sdkGenerateText(options);
|
|
29
25
|
}
|
|
30
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/core/generateText.ts"],"sourcesContent":["import { generateText as sdkGenerateText } from 'ai'\n\nimport type { PayloadGenerateTextArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\n/**\n * Generate simple text using AI SDK's generateText\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK\n */\nexport async function generateText(args: PayloadGenerateTextArgs) {\n const { \n maxTokens, \n model: modelId, \n payload,\n prompt,\n provider,\n providerOptions,\n system,\n temperature,\n ...rest\n } = args\n \n // Extract attachments if needed\n const processedPrompt = (rest as any).extractAttachments \n ? extractPromptAttachments(prompt) \n : prompt\n \n // Resolve model from registry with provider options\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Pass directly to AI SDK\n const options: Record<string, unknown> = {\n model,\n prompt: processedPrompt,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/core/generateText.ts"],"sourcesContent":["import { generateText as sdkGenerateText } from 'ai'\n\nimport type { PayloadGenerateTextArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\n/**\n * Generate simple text using AI SDK's generateText\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK\n */\nexport async function generateText(args: PayloadGenerateTextArgs) {\n const { \n maxTokens, \n model: modelId, \n payload,\n prompt,\n provider,\n providerOptions,\n\n system,\n temperature,\n ...rest\n } = args\n \n // Extract attachments if needed\n const processedPrompt = (rest as any).extractAttachments \n ? extractPromptAttachments(prompt) \n : prompt\n \n // Resolve model from registry with provider options\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Pass directly to AI SDK\n const options: Record<string, unknown> = {\n model,\n prompt: processedPrompt,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n\n\n return sdkGenerateText(options as Parameters<typeof sdkGenerateText>[0])\n}\n"],"names":["generateText","sdkGenerateText","extractPromptAttachments","getLanguageModel","args","maxTokens","model","modelId","payload","prompt","provider","providerOptions","system","temperature","rest","processedPrompt","extractAttachments","options","maxOutputTokens"],"mappings":"AAAA,SAASA,gBAAgBC,eAAe,QAAQ,KAAI;AAIpD,SAASC,wBAAwB,QAAQ,qDAAoD;AAC7F,SAASC,gBAAgB,QAAQ,2BAA0B;AAE3D;;;;CAIC,GACD,OAAO,eAAeH,aAAaI,IAA6B;IAC9D,MAAM,EACJC,SAAS,EACTC,OAAOC,OAAO,EACdC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,eAAe,EAEfC,MAAM,EACNC,WAAW,EACX,GAAGC,MACJ,GAAGV;IAEJ,gCAAgC;IAChC,MAAMW,kBAAkB,AAACD,KAAaE,kBAAkB,GACpDd,yBAAyBO,UACzBA;IAEJ,oDAAoD;IACpD,MAAMH,QAAQ,MAAMH,iBAAiBK,SAASE,UAAUH,SAASI;IAEjE,0BAA0B;IAC1B,MAAMM,UAAmC;QACvCX;QACAG,QAAQM;QACRH;QACAC,aAAaA,eAAe;QAC5B,GAAIR,YAAY;YAAEa,iBAAiBb;QAAU,IAAI,CAAC,CAAC;IACrD;IAIA,OAAOJ,gBAAgBgB;AACzB"}
|
|
@@ -40,10 +40,7 @@ import { generateSpeech } from './speech/index.js';
|
|
|
40
40
|
case 'speech':
|
|
41
41
|
return generateSpeech(args);
|
|
42
42
|
case 'video':
|
|
43
|
-
throw Error(
|
|
44
|
-
// return generateVideo(args)
|
|
45
|
-
default:
|
|
46
|
-
throw new Error(`Unsupported media type: ${mediaType}`);
|
|
43
|
+
throw new Error('Video generation is not yet implemented');
|
|
47
44
|
}
|
|
48
45
|
}
|
|
49
46
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/core/media/generateMedia.ts"],"sourcesContent":["import type { PayloadGenerateMediaArgs } from '../types.js'\nimport type { MediaResult } from './types.js'\n\nimport { getProviderRegistry } from '../../providers/registry.js'\nimport { generateImage } from './image/index.js'\nimport { generateSpeech } from './speech/index.js'\
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/core/media/generateMedia.ts"],"sourcesContent":["import type { PayloadGenerateMediaArgs } from '../types.js'\nimport type { MediaResult } from './types.js'\n\nimport { getProviderRegistry } from '../../providers/registry.js'\nimport { generateImage } from './image/index.js'\nimport { generateSpeech } from './speech/index.js'\n\n/**\n * Detect media type from provider and model configuration\n */\nasync function detectMediaType(\n args: PayloadGenerateMediaArgs,\n): Promise<'image' | 'speech' | 'video'> {\n const { model: modelId, payload, provider } = args\n\n if (!provider) {\n throw new Error('Provider is required for media generation')\n }\n\n const registry = await getProviderRegistry(payload)\n const providerConfig = registry[provider]\n\n if (!providerConfig) {\n throw new Error(`Provider ${provider} not found in registry`)\n }\n\n // Check for video (Fal + video use case)\n const isVideo =\n providerConfig.id === 'fal' &&\n providerConfig.models?.find((m) => m.id === modelId)?.useCase === 'video'\n\n if (isVideo) {\n return 'video'\n }\n\n // Check for speech (TTS)\n const isTTS =\n providerConfig.id === 'elevenlabs' ||\n (providerConfig.id === 'openai' && modelId?.startsWith('tts'))\n\n if (isTTS) {\n return 'speech'\n }\n\n // Default to image\n return 'image'\n}\n\n/**\n * Unified media generation handler\n * Routes to appropriate specialized handler based on media type\n */\nexport async function generateMedia(args: PayloadGenerateMediaArgs): Promise<MediaResult> {\n if (!args.prompt || !args.prompt.trim()) {\n throw new Error('Prompt is required for media generation')\n }\n\n const mediaType = await detectMediaType(args)\n\n switch (mediaType) {\n case 'image':\n return generateImage(args)\n case 'speech':\n return generateSpeech(args)\n case 'video':\n throw new Error('Video generation is not yet implemented')\n }\n}\n"],"names":["getProviderRegistry","generateImage","generateSpeech","detectMediaType","args","model","modelId","payload","provider","Error","registry","providerConfig","isVideo","id","models","find","m","useCase","isTTS","startsWith","generateMedia","prompt","trim","mediaType"],"mappings":"AAGA,SAASA,mBAAmB,QAAQ,8BAA6B;AACjE,SAASC,aAAa,QAAQ,mBAAkB;AAChD,SAASC,cAAc,QAAQ,oBAAmB;AAElD;;CAEC,GACD,eAAeC,gBACbC,IAA8B;IAE9B,MAAM,EAAEC,OAAOC,OAAO,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGJ;IAE9C,IAAI,CAACI,UAAU;QACb,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,WAAW,MAAMV,oBAAoBO;IAC3C,MAAMI,iBAAiBD,QAAQ,CAACF,SAAS;IAEzC,IAAI,CAACG,gBAAgB;QACnB,MAAM,IAAIF,MAAM,CAAC,SAAS,EAAED,SAAS,sBAAsB,CAAC;IAC9D;IAEA,yCAAyC;IACzC,MAAMI,UACJD,eAAeE,EAAE,KAAK,SACtBF,eAAeG,MAAM,EAAEC,KAAK,CAACC,IAAMA,EAAEH,EAAE,KAAKP,UAAUW,YAAY;IAEpE,IAAIL,SAAS;QACX,OAAO;IACT;IAEA,yBAAyB;IACzB,MAAMM,QACJP,eAAeE,EAAE,KAAK,gBACrBF,eAAeE,EAAE,KAAK,YAAYP,SAASa,WAAW;IAEzD,IAAID,OAAO;QACT,OAAO;IACT;IAEA,mBAAmB;IACnB,OAAO;AACT;AAEA;;;CAGC,GACD,OAAO,eAAeE,cAAchB,IAA8B;IAChE,IAAI,CAACA,KAAKiB,MAAM,IAAI,CAACjB,KAAKiB,MAAM,CAACC,IAAI,IAAI;QACvC,MAAM,IAAIb,MAAM;IAClB;IAEA,MAAMc,YAAY,MAAMpB,gBAAgBC;IAExC,OAAQmB;QACN,KAAK;YACH,OAAOtB,cAAcG;QACvB,KAAK;YACH,OAAOF,eAAeE;QACxB,KAAK;YACH,MAAM,IAAIK,MAAM;IACpB;AACF"}
|
|
@@ -5,7 +5,7 @@ import { generateStandardImage } from './handlers/standard.js';
|
|
|
5
5
|
* Main image generation handler
|
|
6
6
|
* Routes to appropriate handler based on model capabilities
|
|
7
7
|
*/ export async function generateImage(args) {
|
|
8
|
-
const { model: modelId, payload, provider } = args;
|
|
8
|
+
const { model: modelId, payload, provider, providerOptions } = args;
|
|
9
9
|
// Get provider registry and model configuration
|
|
10
10
|
const registry = await getProviderRegistry(payload);
|
|
11
11
|
const providerConfig = registry[provider || ''];
|
|
@@ -16,22 +16,12 @@ import { generateStandardImage } from './handlers/standard.js';
|
|
|
16
16
|
// Determine if this is a multimodal text-to-image model
|
|
17
17
|
// It must support both TEXT and IMAGE modalities (or at least TEXT) to be treated as a language model
|
|
18
18
|
const isMultimodalText = modelConfig?.responseModalities?.includes('IMAGE') && modelConfig?.responseModalities?.includes('TEXT');
|
|
19
|
-
// Merge provider's default image options with instruction-level overrides
|
|
20
|
-
const mergedProviderOptions = {
|
|
21
|
-
...providerConfig.options?.image || {},
|
|
22
|
-
...args.providerOptions || {}
|
|
23
|
-
};
|
|
24
19
|
// Get appropriate model instance
|
|
25
|
-
const model = await getImageModel(payload, provider, modelId,
|
|
26
|
-
// Pass merged options to handlers
|
|
27
|
-
const argsWithMergedOptions = {
|
|
28
|
-
...args,
|
|
29
|
-
providerOptions: mergedProviderOptions
|
|
30
|
-
};
|
|
20
|
+
const model = await getImageModel(payload, provider, modelId, isMultimodalText, providerOptions);
|
|
31
21
|
if (isMultimodalText) {
|
|
32
|
-
return generateMultimodalImage(model,
|
|
22
|
+
return generateMultimodalImage(model, args);
|
|
33
23
|
}
|
|
34
|
-
return generateStandardImage(model,
|
|
24
|
+
return generateStandardImage(model, args);
|
|
35
25
|
}
|
|
36
26
|
|
|
37
27
|
//# sourceMappingURL=generateImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/ai/core/media/image/generateImage.ts"],"sourcesContent":["import type { ImageModel, LanguageModel } from 'ai'\n\nimport type { ImageGenerationArgs, MediaResult } from '../types.js'\n\nimport { getImageModel, getProviderRegistry } from '../../../providers/registry.js'\nimport { generateMultimodalImage } from './handlers/multimodal.js'\nimport { generateStandardImage } from './handlers/standard.js'\n\n/**\n * Main image generation handler\n * Routes to appropriate handler based on model capabilities\n */\nexport async function generateImage(args: ImageGenerationArgs): Promise<MediaResult> {\n const { model: modelId, payload, provider } = args\n // Get provider registry and model configuration\n const registry = await getProviderRegistry(payload)\n const providerConfig = registry[provider || '']\n\n if (!providerConfig) {\n throw new Error(`Provider ${provider} not found in registry`)\n }\n\n const modelConfig = providerConfig.models?.find((m) => m.id === modelId)\n\n // Determine if this is a multimodal text-to-image model\n // It must support both TEXT and IMAGE modalities (or at least TEXT) to be treated as a language model\n const isMultimodalText =\n modelConfig?.responseModalities?.includes('IMAGE') &&\n modelConfig?.responseModalities?.includes('TEXT')\n\n //
|
|
1
|
+
{"version":3,"sources":["../../../../../src/ai/core/media/image/generateImage.ts"],"sourcesContent":["import type { ImageModel, LanguageModel } from 'ai'\n\nimport type { ImageGenerationArgs, MediaResult } from '../types.js'\n\nimport { getImageModel, getProviderRegistry } from '../../../providers/registry.js'\nimport { generateMultimodalImage } from './handlers/multimodal.js'\nimport { generateStandardImage } from './handlers/standard.js'\n\n/**\n * Main image generation handler\n * Routes to appropriate handler based on model capabilities\n */\nexport async function generateImage(args: ImageGenerationArgs): Promise<MediaResult> {\n const { model: modelId, payload, provider, providerOptions } = args\n // Get provider registry and model configuration\n const registry = await getProviderRegistry(payload)\n const providerConfig = registry[provider || '']\n\n if (!providerConfig) {\n throw new Error(`Provider ${provider} not found in registry`)\n }\n\n const modelConfig = providerConfig.models?.find((m) => m.id === modelId)\n\n // Determine if this is a multimodal text-to-image model\n // It must support both TEXT and IMAGE modalities (or at least TEXT) to be treated as a language model\n const isMultimodalText =\n modelConfig?.responseModalities?.includes('IMAGE') &&\n modelConfig?.responseModalities?.includes('TEXT')\n\n // Get appropriate model instance\n const model = await getImageModel(\n payload,\n provider,\n modelId,\n isMultimodalText,\n providerOptions,\n )\n if (isMultimodalText) {\n return generateMultimodalImage(model as LanguageModel, args)\n }\n\n return generateStandardImage(model as ImageModel, args)\n}\n"],"names":["getImageModel","getProviderRegistry","generateMultimodalImage","generateStandardImage","generateImage","args","model","modelId","payload","provider","providerOptions","registry","providerConfig","Error","modelConfig","models","find","m","id","isMultimodalText","responseModalities","includes"],"mappings":"AAIA,SAASA,aAAa,EAAEC,mBAAmB,QAAQ,iCAAgC;AACnF,SAASC,uBAAuB,QAAQ,2BAA0B;AAClE,SAASC,qBAAqB,QAAQ,yBAAwB;AAE9D;;;CAGC,GACD,OAAO,eAAeC,cAAcC,IAAyB;IAC3D,MAAM,EAAEC,OAAOC,OAAO,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGL;IAC/D,gDAAgD;IAChD,MAAMM,WAAW,MAAMV,oBAAoBO;IAC3C,MAAMI,iBAAiBD,QAAQ,CAACF,YAAY,GAAG;IAE/C,IAAI,CAACG,gBAAgB;QACnB,MAAM,IAAIC,MAAM,CAAC,SAAS,EAAEJ,SAAS,sBAAsB,CAAC;IAC9D;IAEA,MAAMK,cAAcF,eAAeG,MAAM,EAAEC,KAAK,CAACC,IAAMA,EAAEC,EAAE,KAAKX;IAEhE,wDAAwD;IACxD,sGAAsG;IACtG,MAAMY,mBACJL,aAAaM,oBAAoBC,SAAS,YAC1CP,aAAaM,oBAAoBC,SAAS;IAE5C,iCAAiC;IACjC,MAAMf,QAAQ,MAAMN,cAClBQ,SACAC,UACAF,SACAY,kBACAT;IAEF,IAAIS,kBAAkB;QACpB,OAAOjB,wBAAwBI,OAAwBD;IACzD;IAEA,OAAOF,sBAAsBG,OAAqBD;AACpD"}
|
|
@@ -1,32 +1,17 @@
|
|
|
1
1
|
import { generateText } from 'ai';
|
|
2
|
+
import { toAISDKProviderOptions } from '../../../../providers/registry.js';
|
|
2
3
|
import { convertToBuffer, getExtensionFromMimeType } from '../../utils.js';
|
|
3
4
|
/**
|
|
4
5
|
* Handle multimodal text-to-image generation (e.g., Gemini Nano Banana)
|
|
5
6
|
* Uses generateText with image response modalities
|
|
6
7
|
*/ export async function generateMultimodalImage(model, args) {
|
|
7
|
-
const { images = [], prompt, providerOptions
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
...providerOptions?.personGeneration && {
|
|
13
|
-
personGeneration: providerOptions.personGeneration
|
|
14
|
-
},
|
|
15
|
-
...providerOptions?.addWatermark !== undefined && {
|
|
16
|
-
addWatermark: providerOptions.addWatermark
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
responseModalities: [
|
|
20
|
-
'IMAGE',
|
|
21
|
-
'TEXT'
|
|
22
|
-
]
|
|
23
|
-
};
|
|
8
|
+
const { images = [], prompt, provider, providerOptions } = args;
|
|
9
|
+
const aiSdkProviderOptions = toAISDKProviderOptions({
|
|
10
|
+
providerId: provider,
|
|
11
|
+
settingsOverride: providerOptions
|
|
12
|
+
});
|
|
24
13
|
const result = await generateText({
|
|
25
14
|
model,
|
|
26
|
-
// onStepFinish: (step) => {
|
|
27
|
-
// console.log('step finish: ', step.files)
|
|
28
|
-
// console.log('step finish: ', step.response)
|
|
29
|
-
// },
|
|
30
15
|
prompt: [
|
|
31
16
|
{
|
|
32
17
|
content: [
|
|
@@ -39,9 +24,7 @@ import { convertToBuffer, getExtensionFromMimeType } from '../../utils.js';
|
|
|
39
24
|
role: 'user'
|
|
40
25
|
}
|
|
41
26
|
],
|
|
42
|
-
providerOptions:
|
|
43
|
-
google: googleOptions
|
|
44
|
-
}
|
|
27
|
+
providerOptions: aiSdkProviderOptions
|
|
45
28
|
});
|
|
46
29
|
// Extract images from result.files
|
|
47
30
|
const resultImages = result.files?.filter((f)=>f.mediaType?.startsWith('image/')) || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/ai/core/media/image/handlers/multimodal.ts"],"sourcesContent":["import { generateText, type LanguageModel
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/ai/core/media/image/handlers/multimodal.ts"],"sourcesContent":["import { generateText, type LanguageModel } from 'ai'\n\nimport type { ImageGenerationArgs, MediaResult, MultimodalImageFile } from '../../types.js'\n\nimport { toAISDKProviderOptions } from '../../../../providers/registry.js'\nimport { convertToBuffer, getExtensionFromMimeType } from '../../utils.js'\n\n/**\n * Handle multimodal text-to-image generation (e.g., Gemini Nano Banana)\n * Uses generateText with image response modalities\n */\nexport async function generateMultimodalImage(\n model: LanguageModel,\n args: ImageGenerationArgs,\n): Promise<MediaResult> {\n const { images = [], prompt, provider, providerOptions } = args\n\n const aiSdkProviderOptions = toAISDKProviderOptions({\n providerId: provider,\n settingsOverride: providerOptions,\n })\n\n const result = await generateText({\n model,\n prompt: [\n {\n content: [{ type: 'text', text: prompt }, ...images],\n role: 'user',\n },\n ],\n providerOptions: aiSdkProviderOptions,\n })\n\n // Extract images from result.files\n const resultImages = (result.files?.filter((f: MultimodalImageFile) =>\n f.mediaType?.startsWith('image/'),\n ) || []) as MultimodalImageFile[]\n\n if (resultImages.length === 0) {\n // Check if Google returned a specific error message\n const responseBody = result.response?.body as\n | { candidates?: Array<{ finishMessage?: string; finishReason?: string }> }\n | undefined\n const candidate = responseBody?.candidates?.[0]\n\n if (candidate?.finishMessage) {\n throw new Error(`Image generation failed: ${candidate.finishMessage}`)\n }\n if (candidate?.finishReason && candidate.finishReason !== 'STOP') {\n throw new Error(`Image generation failed with reason: ${candidate.finishReason}`)\n }\n\n throw new Error('No images returned from the model. The model may have generated only text.')\n }\n\n const files = resultImages.map((image) => {\n const mimeType = image.mediaType || 'image/png'\n const imageData = image.base64Data || image.uint8Array\n\n if (!imageData) {\n throw new Error('Image data is missing from the response.')\n }\n\n const buffer = convertToBuffer(imageData)\n const extension = getExtensionFromMimeType(mimeType)\n\n return {\n name: `generated.${extension}`,\n data: buffer,\n mimetype: mimeType,\n size: buffer.byteLength,\n }\n })\n\n return {\n files,\n }\n}\n"],"names":["generateText","toAISDKProviderOptions","convertToBuffer","getExtensionFromMimeType","generateMultimodalImage","model","args","images","prompt","provider","providerOptions","aiSdkProviderOptions","providerId","settingsOverride","result","content","type","text","role","resultImages","files","filter","f","mediaType","startsWith","length","responseBody","response","body","candidate","candidates","finishMessage","Error","finishReason","map","image","mimeType","imageData","base64Data","uint8Array","buffer","extension","name","data","mimetype","size","byteLength"],"mappings":"AAAA,SAASA,YAAY,QAA4B,KAAI;AAIrD,SAASC,sBAAsB,QAAQ,oCAAmC;AAC1E,SAASC,eAAe,EAAEC,wBAAwB,QAAQ,iBAAgB;AAE1E;;;CAGC,GACD,OAAO,eAAeC,wBACpBC,KAAoB,EACpBC,IAAyB;IAEzB,MAAM,EAAEC,SAAS,EAAE,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGJ;IAE3D,MAAMK,uBAAuBV,uBAAuB;QAClDW,YAAYH;QACZI,kBAAkBH;IACpB;IAEA,MAAMI,SAAS,MAAMd,aAAa;QAChCK;QACAG,QAAQ;YACN;gBACEO,SAAS;oBAAC;wBAAEC,MAAM;wBAAQC,MAAMT;oBAAO;uBAAMD;iBAAO;gBACpDW,MAAM;YACR;SACD;QACDR,iBAAiBC;IACnB;IAEA,mCAAmC;IACnC,MAAMQ,eAAgBL,OAAOM,KAAK,EAAEC,OAAO,CAACC,IAC1CA,EAAEC,SAAS,EAAEC,WAAW,cACrB,EAAE;IAEP,IAAIL,aAAaM,MAAM,KAAK,GAAG;QAC7B,oDAAoD;QACpD,MAAMC,eAAeZ,OAAOa,QAAQ,EAAEC;QAGtC,MAAMC,YAAYH,cAAcI,YAAY,CAAC,EAAE;QAE/C,IAAID,WAAWE,eAAe;YAC5B,MAAM,IAAIC,MAAM,CAAC,yBAAyB,EAAEH,UAAUE,aAAa,CAAC,CAAC;QACvE;QACA,IAAIF,WAAWI,gBAAgBJ,UAAUI,YAAY,KAAK,QAAQ;YAChE,MAAM,IAAID,MAAM,CAAC,qCAAqC,EAAEH,UAAUI,YAAY,CAAC,CAAC;QAClF;QAEA,MAAM,IAAID,MAAM;IAClB;IAEA,MAAMZ,QAAQD,aAAae,GAAG,CAAC,CAACC;QAC9B,MAAMC,WAAWD,MAAMZ,SAAS,IAAI;QACpC,MAAMc,YAAYF,MAAMG,UAAU,IAAIH,MAAMI,UAAU;QAEtD,IAAI,CAACF,WAAW;YACd,MAAM,IAAIL,MAAM;QAClB;QAEA,MAAMQ,SAAStC,gBAAgBmC;QAC/B,MAAMI,YAAYtC,yBAAyBiC;QAE3C,OAAO;YACLM,MAAM,CAAC,UAAU,EAAED,UAAU,CAAC;YAC9BE,MAAMH;YACNI,UAAUR;YACVS,MAAML,OAAOM,UAAU;QACzB;IACF;IAEA,OAAO;QACL1B;IACF;AACF"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { experimental_generateImage } from 'ai';
|
|
2
|
+
import { toAISDKProviderOptions } from '../../../../providers/registry.js';
|
|
2
3
|
import { getExtensionFromMimeType } from '../../utils.js';
|
|
3
4
|
/**
|
|
4
5
|
* Handle standard image generation (DALL-E, Imagen, Flux, etc.)
|
|
5
6
|
* Uses AI SDK's experimental_generateImage
|
|
6
7
|
*/ export async function generateStandardImage(model, args) {
|
|
7
|
-
const { n = 1, prompt, providerOptions } = args;
|
|
8
|
+
const { n = 1, prompt, provider, providerOptions } = args;
|
|
9
|
+
const aiSdkProviderOptions = toAISDKProviderOptions({
|
|
10
|
+
providerId: provider,
|
|
11
|
+
settingsOverride: providerOptions
|
|
12
|
+
});
|
|
8
13
|
const generateResult = await experimental_generateImage({
|
|
9
14
|
model,
|
|
10
15
|
n,
|
|
11
16
|
prompt,
|
|
12
|
-
providerOptions
|
|
17
|
+
providerOptions: aiSdkProviderOptions
|
|
13
18
|
});
|
|
14
19
|
const { images } = generateResult;
|
|
15
20
|
const files = images.map((image)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/ai/core/media/image/handlers/standard.ts"],"sourcesContent":["import { experimental_generateImage, type ImageModel } from 'ai'\n\nimport type { ImageGenerationArgs, MediaResult } from '../../types.js'\n\nimport { getExtensionFromMimeType } from '../../utils.js'\n\n/**\n * Handle standard image generation (DALL-E, Imagen, Flux, etc.)\n * Uses AI SDK's experimental_generateImage\n */\nexport async function generateStandardImage(\n model: ImageModel,\n args: ImageGenerationArgs,\n): Promise<MediaResult> {\n const { n = 1, prompt, providerOptions } = args\n\n const generateResult = await experimental_generateImage({\n model,\n n,\n prompt,\n providerOptions,\n })\n\n const { images } = generateResult\n\n const files = images.map((image) => {\n const buffer = Buffer.from(image.base64, 'base64')\n const mimeType = image.mediaType || 'image/png'\n const extension = getExtensionFromMimeType(mimeType)\n\n return {\n name: `generated.${extension}`,\n data: buffer,\n mimetype: mimeType,\n size: buffer.byteLength,\n }\n })\n\n return {\n files,\n }\n}\n"],"names":["experimental_generateImage","getExtensionFromMimeType","generateStandardImage","model","args","n","prompt","providerOptions","generateResult","images","files","map","image","buffer","Buffer","from","base64","mimeType","mediaType","extension","name","data","mimetype","size","byteLength"],"mappings":"AAAA,SAASA,0BAA0B,QAAyB,KAAI;AAIhE,SAASC,wBAAwB,QAAQ,iBAAgB;AAEzD;;;CAGC,GACD,OAAO,eAAeC,sBACpBC,KAAiB,EACjBC,IAAyB;IAEzB,MAAM,EAAEC,IAAI,CAAC,EAAEC,MAAM,EAAEC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/ai/core/media/image/handlers/standard.ts"],"sourcesContent":["import { experimental_generateImage, type ImageModel } from 'ai'\n\nimport type { ImageGenerationArgs, MediaResult } from '../../types.js'\n\nimport { toAISDKProviderOptions } from '../../../../providers/registry.js'\nimport { getExtensionFromMimeType } from '../../utils.js'\n\n/**\n * Handle standard image generation (DALL-E, Imagen, Flux, etc.)\n * Uses AI SDK's experimental_generateImage\n */\nexport async function generateStandardImage(\n model: ImageModel,\n args: ImageGenerationArgs,\n): Promise<MediaResult> {\n const { n = 1, prompt, provider, providerOptions } = args\n const aiSdkProviderOptions = toAISDKProviderOptions({\n providerId: provider,\n settingsOverride: providerOptions,\n })\n\n const generateResult = await experimental_generateImage({\n model,\n n,\n prompt,\n providerOptions: aiSdkProviderOptions,\n })\n\n const { images } = generateResult\n\n const files = images.map((image) => {\n const buffer = Buffer.from(image.base64, 'base64')\n const mimeType = image.mediaType || 'image/png'\n const extension = getExtensionFromMimeType(mimeType)\n\n return {\n name: `generated.${extension}`,\n data: buffer,\n mimetype: mimeType,\n size: buffer.byteLength,\n }\n })\n\n return {\n files,\n }\n}\n"],"names":["experimental_generateImage","toAISDKProviderOptions","getExtensionFromMimeType","generateStandardImage","model","args","n","prompt","provider","providerOptions","aiSdkProviderOptions","providerId","settingsOverride","generateResult","images","files","map","image","buffer","Buffer","from","base64","mimeType","mediaType","extension","name","data","mimetype","size","byteLength"],"mappings":"AAAA,SAASA,0BAA0B,QAAyB,KAAI;AAIhE,SAASC,sBAAsB,QAAQ,oCAAmC;AAC1E,SAASC,wBAAwB,QAAQ,iBAAgB;AAEzD;;;CAGC,GACD,OAAO,eAAeC,sBACpBC,KAAiB,EACjBC,IAAyB;IAEzB,MAAM,EAAEC,IAAI,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGJ;IACrD,MAAMK,uBAAuBT,uBAAuB;QAClDU,YAAYH;QACZI,kBAAkBH;IACpB;IAEA,MAAMI,iBAAiB,MAAMb,2BAA2B;QACtDI;QACAE;QACAC;QACAE,iBAAiBC;IACnB;IAEA,MAAM,EAAEI,MAAM,EAAE,GAAGD;IAEnB,MAAME,QAAQD,OAAOE,GAAG,CAAC,CAACC;QACxB,MAAMC,SAASC,OAAOC,IAAI,CAACH,MAAMI,MAAM,EAAE;QACzC,MAAMC,WAAWL,MAAMM,SAAS,IAAI;QACpC,MAAMC,YAAYtB,yBAAyBoB;QAE3C,OAAO;YACLG,MAAM,CAAC,UAAU,EAAED,UAAU,CAAC;YAC9BE,MAAMR;YACNS,UAAUL;YACVM,MAAMV,OAAOW,UAAU;QACzB;IACF;IAEA,OAAO;QACLd;IACF;AACF"}
|
|
@@ -3,7 +3,7 @@ import { getExtensionFromMimeType } from '../utils.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate speech from text using AI SDK's generateSpeech
|
|
5
5
|
*/ export async function generateSpeech(args) {
|
|
6
|
-
const { model: modelId, payload, prompt, provider } = args;
|
|
6
|
+
const { model: modelId, payload, prompt, provider, providerOptions } = args;
|
|
7
7
|
let { voice } = args;
|
|
8
8
|
// Fallback to global default voice if not specified
|
|
9
9
|
if (!voice) {
|
|
@@ -13,7 +13,7 @@ import { getExtensionFromMimeType } from '../utils.js';
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
// Get TTS model instance
|
|
16
|
-
const model = await getTTSModel(payload, provider, modelId,
|
|
16
|
+
const model = await getTTSModel(payload, provider, modelId, providerOptions);
|
|
17
17
|
// Dynamic import to support older SDK versions
|
|
18
18
|
let generateSpeechFn;
|
|
19
19
|
try {
|
|
@@ -28,7 +28,6 @@ import { getExtensionFromMimeType } from '../utils.js';
|
|
|
28
28
|
// TODO: fix with proper error handling
|
|
29
29
|
const result = await generateSpeechFn({
|
|
30
30
|
model,
|
|
31
|
-
providerOptions: args.providerOptions,
|
|
32
31
|
speed: args.speed,
|
|
33
32
|
text: prompt,
|
|
34
33
|
voice
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/ai/core/media/speech/generateSpeech.ts"],"sourcesContent":["import type { MediaResult, SpeechGenerationArgs } from '../types.js'\n\nimport { getGlobalDefaults, getTTSModel } from '../../../providers/registry.js'\nimport { getExtensionFromMimeType } from '../utils.js'\n\n/**\n * Generate speech from text using AI SDK's generateSpeech\n */\nexport async function generateSpeech(args: SpeechGenerationArgs): Promise<MediaResult> {\n const { model: modelId, payload, prompt, provider } = args\n let { voice } = args\n\n // Fallback to global default voice if not specified\n if (!voice) {\n const defaults = await getGlobalDefaults(payload)\n if (defaults?.tts?.voice) {\n voice = defaults.tts.voice\n }\n }\n\n // Get TTS model instance\n const model = await getTTSModel(payload, provider, modelId,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/ai/core/media/speech/generateSpeech.ts"],"sourcesContent":["import type { MediaResult, SpeechGenerationArgs } from '../types.js'\n\nimport { getGlobalDefaults, getTTSModel } from '../../../providers/registry.js'\nimport { getExtensionFromMimeType } from '../utils.js'\n\n/**\n * Generate speech from text using AI SDK's generateSpeech\n */\nexport async function generateSpeech(args: SpeechGenerationArgs): Promise<MediaResult> {\n const { model: modelId, payload, prompt, provider, providerOptions } = args\n let { voice } = args\n\n // Fallback to global default voice if not specified\n if (!voice) {\n const defaults = await getGlobalDefaults(payload)\n if (defaults?.tts?.voice) {\n voice = defaults.tts.voice\n }\n }\n\n // Get TTS model instance\n const model = await getTTSModel(payload, provider, modelId, providerOptions)\n\n // Dynamic import to support older SDK versions\n let generateSpeechFn\n try {\n const ai = await import('ai')\n generateSpeechFn = ai.experimental_generateSpeech\n } catch (_e) {\n throw new Error('generateSpeech not found in \"ai\" package. Please upgrade to the latest version.')\n }\n\n if (!generateSpeechFn) {\n throw new Error('generateSpeech not found in \"ai\" package. Please upgrade to the latest version.')\n }\n\n // TODO: fix with proper error handling\n const result = await generateSpeechFn({\n model,\n speed: args.speed,\n text: prompt,\n voice,\n })\n\n // Extract audio from result\n const { audio } = result\n const mimeType = audio.mediaType || 'audio/mp3'\n \n // Try to get format from audio object, otherwise infer from mime type\n const extension = audio.format || getExtensionFromMimeType(mimeType)\n\n // Prefer uint8Array if available, else base64\n const dataBuffer = audio.uint8Array\n ? Buffer.from(audio.uint8Array)\n : Buffer.from(audio.base64, 'base64')\n\n return {\n files: [\n {\n name: `speech.${extension}`,\n data: dataBuffer,\n mimetype: mimeType,\n size: dataBuffer.length,\n },\n ],\n }\n}\n"],"names":["getGlobalDefaults","getTTSModel","getExtensionFromMimeType","generateSpeech","args","model","modelId","payload","prompt","provider","providerOptions","voice","defaults","tts","generateSpeechFn","ai","experimental_generateSpeech","_e","Error","result","speed","text","audio","mimeType","mediaType","extension","format","dataBuffer","uint8Array","Buffer","from","base64","files","name","data","mimetype","size","length"],"mappings":"AAEA,SAASA,iBAAiB,EAAEC,WAAW,QAAQ,iCAAgC;AAC/E,SAASC,wBAAwB,QAAQ,cAAa;AAEtD;;CAEC,GACD,OAAO,eAAeC,eAAeC,IAA0B;IAC7D,MAAM,EAAEC,OAAOC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGN;IACvE,IAAI,EAAEO,KAAK,EAAE,GAAGP;IAEhB,oDAAoD;IACpD,IAAI,CAACO,OAAO;QACV,MAAMC,WAAW,MAAMZ,kBAAkBO;QACzC,IAAIK,UAAUC,KAAKF,OAAO;YACxBA,QAAQC,SAASC,GAAG,CAACF,KAAK;QAC5B;IACF;IAEA,yBAAyB;IACzB,MAAMN,QAAQ,MAAMJ,YAAYM,SAASE,UAAUH,SAASI;IAE5D,+CAA+C;IAC/C,IAAII;IACJ,IAAI;QACF,MAAMC,KAAK,MAAM,MAAM,CAAC;QACxBD,mBAAmBC,GAAGC,2BAA2B;IACnD,EAAE,OAAOC,IAAI;QACX,MAAM,IAAIC,MAAM;IAClB;IAEA,IAAI,CAACJ,kBAAkB;QACrB,MAAM,IAAII,MAAM;IAClB;IAEA,uCAAuC;IACvC,MAAMC,SAAS,MAAML,iBAAiB;QACpCT;QACAe,OAAOhB,KAAKgB,KAAK;QACjBC,MAAMb;QACNG;IACF;IAED,4BAA4B;IAC3B,MAAM,EAAEW,KAAK,EAAE,GAAGH;IAClB,MAAMI,WAAWD,MAAME,SAAS,IAAI;IAEpC,sEAAsE;IACtE,MAAMC,YAAYH,MAAMI,MAAM,IAAIxB,yBAAyBqB;IAE3D,8CAA8C;IAC9C,MAAMI,aAAaL,MAAMM,UAAU,GAC/BC,OAAOC,IAAI,CAACR,MAAMM,UAAU,IAC5BC,OAAOC,IAAI,CAACR,MAAMS,MAAM,EAAE;IAE9B,OAAO;QACLC,OAAO;YACL;gBACEC,MAAM,CAAC,OAAO,EAAER,UAAU,CAAC;gBAC3BS,MAAMP;gBACNQ,UAAUZ;gBACVa,MAAMT,WAAWU,MAAM;YACzB;SACD;IACH;AACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ImagePart } from 'ai';
|
|
2
2
|
import type { Payload } from 'payload';
|
|
3
|
-
import type { ProviderOptions } from '../types.js';
|
|
4
3
|
/**
|
|
5
4
|
* Base interface for all media generation arguments
|
|
6
5
|
*/
|
|
@@ -9,7 +8,7 @@ export interface MediaGenerationArgs {
|
|
|
9
8
|
payload: Payload;
|
|
10
9
|
prompt: string;
|
|
11
10
|
provider?: string;
|
|
12
|
-
providerOptions?:
|
|
11
|
+
providerOptions?: Record<string, unknown>;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
14
|
* Arguments specific to image generation
|
|
@@ -57,12 +56,12 @@ export interface MediaFile {
|
|
|
57
56
|
* Can be either an immediate file result or an async job
|
|
58
57
|
*/
|
|
59
58
|
export interface MediaResult {
|
|
59
|
+
data?: any;
|
|
60
60
|
files?: MediaFile[];
|
|
61
61
|
jobId?: string;
|
|
62
62
|
progress?: number;
|
|
63
63
|
status?: 'completed' | 'failed' | 'queued' | 'running';
|
|
64
64
|
taskId?: string;
|
|
65
|
-
data?: any;
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
67
|
* Internal type for multimodal image files from AI SDK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/core/media/types.ts"],"sourcesContent":["import type { ImagePart } from 'ai'\nimport type { Payload } from 'payload'\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/core/media/types.ts"],"sourcesContent":["import type { ImagePart } from 'ai'\nimport type { Payload } from 'payload'\n\n\n/**\n * Base interface for all media generation arguments\n */\nexport interface MediaGenerationArgs {\n model?: string\n payload: Payload\n prompt: string\n provider?: string\n providerOptions?: Record<string, unknown>\n}\n\n/**\n * Arguments specific to image generation\n */\nexport interface ImageGenerationArgs extends MediaGenerationArgs {\n aspectRatio?: string\n images?: ImagePart[]\n n?: number\n seed?: number\n size?: { height: number; width: number }\n}\n\n/**\n * Arguments specific to video generation\n */\nexport interface VideoGenerationArgs extends MediaGenerationArgs {\n callbackUrl?: string\n duration?: number\n fps?: number\n images?: ImagePart[]\n instructionId?: number | string\n mode?: 'i2v' | 't2v'\n}\n\n/**\n * Arguments specific to speech generation\n */\nexport interface SpeechGenerationArgs extends MediaGenerationArgs {\n audioFormat?: string\n speed?: number\n voice?: string\n}\n\n/**\n * Generated media file\n */\nexport interface MediaFile {\n data: Buffer\n mimetype: string\n name: string\n size: number\n}\n\n/**\n * Result from media generation\n * Can be either an immediate file result or an async job\n */\nexport interface MediaResult {\n data?: any\n\n // Immediate result (image, speech)\n files?: MediaFile[]\n\n // Async job result (video)\n jobId?: string\n progress?: number\n status?: 'completed' | 'failed' | 'queued' | 'running'\n taskId?: string\n}\n\n/**\n * Internal type for multimodal image files from AI SDK\n */\nexport interface MultimodalImageFile {\n base64Data?: string\n mediaType?: string\n uint8Array?: Uint8Array\n}\n"],"names":[],"mappings":"AA0EA;;CAEC,GACD,WAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/core/streamObject.ts"],"sourcesContent":["import { type ImagePart, jsonSchema, streamObject as sdkStreamObject, type TextPart } from 'ai'\n\nimport type { PayloadGenerateObjectArgs } from './types.js'\n\nimport { getLanguageModel } from '../providers/registry.js'\n\nfunction isZodSchema(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_def' in schema\n}\n\n/**\n * Stream structured output using AI SDK's streamObject\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK for streaming\n */\nexport async function streamObject(args: PayloadGenerateObjectArgs) {\n const { \n maxTokens, \n mode,\n model: modelId,\n payload,\n prompt,\n provider,\n providerOptions,\n schema,\n system,\n temperature,\n ...rest\n } = args\n \n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Return streaming result from AI SDK\n const options: Record<string, unknown> = {\n mode: mode || 'auto',\n model,\n schema: schema ? (isZodSchema(schema) ? schema : jsonSchema(schema as Record<string, unknown>)) : undefined,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n // Handle multimodal input\n if ((args.images && args.images.length > 0) || (args.messages && args.messages.length > 0)) {\n if (args.messages) {\n options.messages = args.messages\n } else {\n // Construct multimodal message from prompt and images\n const content: Array<ImagePart | TextPart> = [\n { type: 'text', text: prompt },\n ...(args.images || []),\n ]\n\n options.messages = [\n { content, role: 'user' as const },\n ]\n }\n } else {\n options.prompt = prompt\n }\n\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/core/streamObject.ts"],"sourcesContent":["import { type ImagePart, jsonSchema, streamObject as sdkStreamObject, type TextPart } from 'ai'\n\nimport type { PayloadGenerateObjectArgs } from './types.js'\n\nimport { getLanguageModel } from '../providers/registry.js'\n\nfunction isZodSchema(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_def' in schema\n}\n\n/**\n * Stream structured output using AI SDK's streamObject\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK for streaming\n */\nexport async function streamObject(args: PayloadGenerateObjectArgs) {\n const { \n maxTokens, \n mode,\n model: modelId,\n payload,\n prompt,\n provider,\n providerOptions,\n\n schema,\n system,\n temperature,\n ...rest\n } = args\n \n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Return streaming result from AI SDK\n const options: Record<string, unknown> = {\n mode: mode || 'auto',\n model,\n schema: schema ? (isZodSchema(schema) ? schema : jsonSchema(schema as Record<string, unknown>)) : undefined,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n // Handle multimodal input\n if ((args.images && args.images.length > 0) || (args.messages && args.messages.length > 0)) {\n if (args.messages) {\n options.messages = args.messages\n } else {\n // Construct multimodal message from prompt and images\n const content: Array<ImagePart | TextPart> = [\n { type: 'text', text: prompt },\n ...(args.images || []),\n ]\n\n options.messages = [\n { content, role: 'user' as const },\n ]\n }\n } else {\n options.prompt = prompt\n }\n\n\n\n\n if (rest.onFinish) {\n options.onFinish = rest.onFinish\n }\n\n return sdkStreamObject(options as Parameters<typeof sdkStreamObject>[0])\n}\n"],"names":["jsonSchema","streamObject","sdkStreamObject","getLanguageModel","isZodSchema","schema","args","maxTokens","mode","model","modelId","payload","prompt","provider","providerOptions","system","temperature","rest","options","undefined","maxOutputTokens","images","length","messages","content","type","text","role","onFinish"],"mappings":"AAAA,SAAyBA,UAAU,EAAEC,gBAAgBC,eAAe,QAAuB,KAAI;AAI/F,SAASC,gBAAgB,QAAQ,2BAA0B;AAE3D,SAASC,YAAYC,MAAe;IAClC,OAAO,OAAOA,WAAW,YAAYA,WAAW,QAAQ,UAAUA;AACpE;AAEA;;;;CAIC,GACD,OAAO,eAAeJ,aAAaK,IAA+B;IAChE,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,OAAOC,OAAO,EACdC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,eAAe,EAEfT,MAAM,EACNU,MAAM,EACNC,WAAW,EACX,GAAGC,MACJ,GAAGX;IAEJ,8BAA8B;IAC9B,MAAMG,QAAQ,MAAMN,iBAAiBQ,SAASE,UAAUH,SAASI;IAEjE,sCAAsC;IACtC,MAAMI,UAAmC;QACvCV,MAAMA,QAAQ;QACdC;QACAJ,QAAQA,SAAUD,YAAYC,UAAUA,SAASL,WAAWK,UAAsCc;QAClGJ;QACAC,aAAaA,eAAe;QAC5B,GAAIT,YAAY;YAAEa,iBAAiBb;QAAU,IAAI,CAAC,CAAC;IACrD;IAEA,0BAA0B;IAC1B,IAAI,AAACD,KAAKe,MAAM,IAAIf,KAAKe,MAAM,CAACC,MAAM,GAAG,KAAOhB,KAAKiB,QAAQ,IAAIjB,KAAKiB,QAAQ,CAACD,MAAM,GAAG,GAAI;QAC1F,IAAIhB,KAAKiB,QAAQ,EAAE;YACjBL,QAAQK,QAAQ,GAAGjB,KAAKiB,QAAQ;QAClC,OAAO;YACL,sDAAsD;YACtD,MAAMC,UAAuC;gBAC3C;oBAAEC,MAAM;oBAAQC,MAAMd;gBAAO;mBACzBN,KAAKe,MAAM,IAAI,EAAE;aACtB;YAEDH,QAAQK,QAAQ,GAAG;gBACjB;oBAAEC;oBAASG,MAAM;gBAAgB;aAClC;QACH;IACF,OAAO;QACLT,QAAQN,MAAM,GAAGA;IACnB;IAKA,IAAIK,KAAKW,QAAQ,EAAE;QACjBV,QAAQU,QAAQ,GAAGX,KAAKW,QAAQ;IAClC;IAEA,OAAO1B,gBAAgBgB;AACzB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { streamText as sdkStreamText } from 'ai';
|
|
2
|
-
import { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js';
|
|
2
|
+
import { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js';
|
|
3
3
|
import { getLanguageModel } from '../providers/registry.js';
|
|
4
4
|
/**
|
|
5
5
|
* Stream text using AI SDK's streamText
|
|
@@ -21,9 +21,6 @@ import { getLanguageModel } from '../providers/registry.js';
|
|
|
21
21
|
maxOutputTokens: maxTokens
|
|
22
22
|
} : {}
|
|
23
23
|
};
|
|
24
|
-
if (providerOptions) {
|
|
25
|
-
options.providerOptions = providerOptions;
|
|
26
|
-
}
|
|
27
24
|
return sdkStreamText(options);
|
|
28
25
|
}
|
|
29
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/core/streamText.ts"],"sourcesContent":["import { streamText as sdkStreamText } from 'ai'\n\nimport type { PayloadGenerateTextArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\n/**\n * Stream text using AI SDK's streamText\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK for streaming\n */\nexport async function streamText(args: PayloadGenerateTextArgs) {\n const { \n maxTokens, \n model: modelId, \n payload,\n prompt,\n provider,\n providerOptions,\n system,\n temperature,\n ...rest\n } = args\n \n // Extract attachments if needed\n const processedPrompt = (rest as any).extractAttachments \n ? extractPromptAttachments(prompt) \n : prompt\n \n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Return streaming result from AI SDK\n const options: Record<string, unknown> = {\n model,\n prompt: processedPrompt,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/core/streamText.ts"],"sourcesContent":["import { streamText as sdkStreamText } from 'ai'\n\nimport type { PayloadGenerateTextArgs } from './types.js'\n\nimport { extractPromptAttachments } from '../../utilities/images/extractPromptAttachments.js'\nimport { getLanguageModel } from '../providers/registry.js'\n\n/**\n * Stream text using AI SDK's streamText\n * This is a thin wrapper that resolves the model from the registry\n * and passes everything directly to the AI SDK for streaming\n */\nexport async function streamText(args: PayloadGenerateTextArgs) {\n const { \n maxTokens, \n model: modelId, \n payload,\n prompt,\n provider,\n providerOptions,\n\n system,\n temperature,\n ...rest\n } = args\n \n // Extract attachments if needed\n const processedPrompt = (rest as any).extractAttachments \n ? extractPromptAttachments(prompt) \n : prompt\n \n // Resolve model from registry\n const model = await getLanguageModel(payload, provider, modelId, providerOptions)\n \n // Return streaming result from AI SDK\n const options: Record<string, unknown> = {\n model,\n prompt: processedPrompt,\n system,\n temperature: temperature ?? 0.7,\n ...(maxTokens ? { maxOutputTokens: maxTokens } : {}),\n }\n\n\n\n return sdkStreamText(options as Parameters<typeof sdkStreamText>[0])\n}\n"],"names":["streamText","sdkStreamText","extractPromptAttachments","getLanguageModel","args","maxTokens","model","modelId","payload","prompt","provider","providerOptions","system","temperature","rest","processedPrompt","extractAttachments","options","maxOutputTokens"],"mappings":"AAAA,SAASA,cAAcC,aAAa,QAAQ,KAAI;AAIhD,SAASC,wBAAwB,QAAQ,qDAAoD;AAC7F,SAASC,gBAAgB,QAAQ,2BAA0B;AAE3D;;;;CAIC,GACD,OAAO,eAAeH,WAAWI,IAA6B;IAC5D,MAAM,EACJC,SAAS,EACTC,OAAOC,OAAO,EACdC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,eAAe,EAEfC,MAAM,EACNC,WAAW,EACX,GAAGC,MACJ,GAAGV;IAEJ,gCAAgC;IAChC,MAAMW,kBAAkB,AAACD,KAAaE,kBAAkB,GACpDd,yBAAyBO,UACzBA;IAEJ,8BAA8B;IAC9B,MAAMH,QAAQ,MAAMH,iBAAiBK,SAASE,UAAUH,SAASI;IAEjE,sCAAsC;IACtC,MAAMM,UAAmC;QACvCX;QACAG,QAAQM;QACRH;QACAC,aAAaA,eAAe;QAC5B,GAAIR,YAAY;YAAEa,iBAAiBb;QAAU,IAAI,CAAC,CAAC;IACrD;IAIA,OAAOJ,cAAcgB;AACvB"}
|
package/dist/ai/core/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface PayloadGenerationBaseArgs {
|
|
|
17
17
|
payload: Payload;
|
|
18
18
|
prompt: string;
|
|
19
19
|
provider?: string;
|
|
20
|
-
providerOptions?:
|
|
20
|
+
providerOptions?: Record<string, unknown>;
|
|
21
21
|
system?: string;
|
|
22
22
|
temperature?: number;
|
|
23
23
|
}
|
|
@@ -54,7 +54,7 @@ export interface PayloadGenerateMediaArgs {
|
|
|
54
54
|
payload: Payload;
|
|
55
55
|
prompt: string;
|
|
56
56
|
provider?: string;
|
|
57
|
-
providerOptions?:
|
|
57
|
+
providerOptions?: Record<string, unknown>;
|
|
58
58
|
seed?: number;
|
|
59
59
|
size?: {
|
|
60
60
|
height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/core/types.ts"],"sourcesContent":["import type { ImagePart, JSONValue, ModelMessage } from 'ai'\nimport type { Payload } from 'payload'\nimport type { z } from 'zod'\n\n/**\n * Provider options compatible with AI SDK's SharedV2ProviderOptions\n * SharedV2ProviderOptions = Record<string, Record<string, JSONValue>>\n */\nexport type ProviderOptions = Record<string, Record<string, JSONValue>>\n\n/**\n * Base arguments for all generation methods\n */\nexport interface PayloadGenerationBaseArgs {\n extractAttachments?: boolean\n maxTokens?: number\n messages?: ModelMessage[]\n model?: string\n payload: Payload\n prompt: string\n provider?: string\n providerOptions?:
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/core/types.ts"],"sourcesContent":["import type { ImagePart, JSONValue, ModelMessage } from 'ai'\nimport type { Payload } from 'payload'\nimport type { z } from 'zod'\n\n/**\n * Provider options compatible with AI SDK's SharedV2ProviderOptions\n * SharedV2ProviderOptions = Record<string, Record<string, JSONValue>>\n */\nexport type ProviderOptions = Record<string, Record<string, JSONValue>>\n\n/**\n * Base arguments for all generation methods\n */\nexport interface PayloadGenerationBaseArgs {\n extractAttachments?: boolean\n maxTokens?: number\n messages?: ModelMessage[]\n model?: string\n payload: Payload\n prompt: string\n provider?: string\n providerOptions?: Record<string, unknown>\n system?: string\n temperature?: number\n}\n\n/**\n * Arguments for generateObject - structured output generation\n */\nexport interface PayloadGenerateObjectArgs extends PayloadGenerationBaseArgs {\n images?: ImagePart[]\n mode?: 'auto' | 'json' | 'tool'\n onFinish?: (event: { object?: any }) => Promise<void> | void\n schema?: Record<string, unknown> | z.ZodTypeAny\n}\n\n/**\n * Arguments for generateText - simple text generation\n */\nexport interface PayloadGenerateTextArgs extends PayloadGenerationBaseArgs {\n // No additional fields needed for basic text generation\n}\n\n/**\n * Arguments for generateMedia - image/video generation\n */\nexport interface PayloadGenerateMediaArgs {\n aspectRatio?: string\n audioFormat?: string\n callbackUrl?: string\n duration?: number\n fps?: number\n images?: ImagePart[]\n instructionId?: number | string\n mode?: 'i2v' | 't2v'\n model?: string\n n?: number\n payload: Payload\n prompt: string\n provider?: string\n providerOptions?: Record<string, unknown>\n seed?: number\n size?: { height: number; width: number }\n speed?: number\n voice?: string\n}\n\n/**\n * Result from generateMedia - can be immediate file or async job\n */\nexport interface MediaResult {\n // Immediate result (image generation)\n file?: {\n data: Buffer\n mimetype: string\n name: string\n size: number\n }\n \n // Async job result (video generation)\n jobId?: string\n progress?: number\n status?: 'completed' | 'failed' | 'queued' | 'running'\n taskId?: string\n}\n\n/**\n * Internal type for multimodal image files\n */\nexport interface MultimodalImageFile {\n base64Data?: string\n mediaType?: string\n uint8Array?: Uint8Array\n}\n"],"names":[],"mappings":"AAsFA;;CAEC,GACD,WAIC"}
|
|
@@ -19,7 +19,7 @@ export const anthropicBlock = {
|
|
|
19
19
|
type: 'text',
|
|
20
20
|
admin: {
|
|
21
21
|
components: {
|
|
22
|
-
Field: '@ai-stack/payloadcms/
|
|
22
|
+
Field: '@ai-stack/payloadcms/ui/EncryptedTextField/index.js#EncryptedTextField'
|
|
23
23
|
},
|
|
24
24
|
description: 'Your Anthropic API key. Will be encrypted in the database.'
|
|
25
25
|
},
|
|
@@ -29,48 +29,6 @@ export const anthropicBlock = {
|
|
|
29
29
|
],
|
|
30
30
|
label: 'Setup'
|
|
31
31
|
},
|
|
32
|
-
// 2. Provider Options tab
|
|
33
|
-
{
|
|
34
|
-
fields: [
|
|
35
|
-
{
|
|
36
|
-
name: 'textProviderOptions',
|
|
37
|
-
type: 'group',
|
|
38
|
-
admin: {
|
|
39
|
-
description: 'Default provider options for text generation models.'
|
|
40
|
-
},
|
|
41
|
-
fields: [
|
|
42
|
-
{
|
|
43
|
-
name: 'temperature',
|
|
44
|
-
type: 'number',
|
|
45
|
-
defaultValue: 1.0,
|
|
46
|
-
label: 'Default Temperature',
|
|
47
|
-
max: 1.0,
|
|
48
|
-
min: 0.0
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'max_tokens',
|
|
52
|
-
type: 'number',
|
|
53
|
-
defaultValue: 4096,
|
|
54
|
-
label: 'Max Tokens'
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: 'top_p',
|
|
58
|
-
type: 'number',
|
|
59
|
-
label: 'Top P',
|
|
60
|
-
max: 1.0,
|
|
61
|
-
min: 0.0
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'top_k',
|
|
65
|
-
type: 'number',
|
|
66
|
-
label: 'Top K'
|
|
67
|
-
}
|
|
68
|
-
],
|
|
69
|
-
label: 'Text Provider Options'
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
label: 'Provider Options'
|
|
73
|
-
},
|
|
74
32
|
// 3. Models tab
|
|
75
33
|
{
|
|
76
34
|
fields: [
|
|
@@ -79,7 +37,7 @@ export const anthropicBlock = {
|
|
|
79
37
|
type: 'array',
|
|
80
38
|
admin: {
|
|
81
39
|
components: {
|
|
82
|
-
RowLabel: '@ai-stack/payloadcms/
|
|
40
|
+
RowLabel: '@ai-stack/payloadcms/ui/ModelRowLabel/index.js#ModelRowLabel'
|
|
83
41
|
},
|
|
84
42
|
initCollapsed: true
|
|
85
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ai/providers/blocks/anthropic.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { AnthropicIcon } from '../icons.js'\n\nexport const anthropicBlock: Block = {\n slug: 'anthropic',\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/
|
|
1
|
+
{"version":3,"sources":["../../../../src/ai/providers/blocks/anthropic.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport { AnthropicIcon } from '../icons.js'\n\nexport const anthropicBlock: Block = {\n slug: 'anthropic',\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/ui/EncryptedTextField/index.js#EncryptedTextField',\n },\n description: 'Your Anthropic API key. Will be encrypted in the database.',\n },\n label: 'API Key',\n required: true,\n },\n ],\n label: 'Setup',\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/ui/ModelRowLabel/index.js#ModelRowLabel',\n },\n initCollapsed: true,\n },\n defaultValue: [\n { id: 'claude-opus-4-1', name: 'Claude Opus 4.1', enabled: true, responseModalities: ['TEXT'], useCase: 'text' },\n { id: 'claude-opus-4-0', name: 'Claude Opus 4.0', enabled: true, responseModalities: ['TEXT'], useCase: 'text' },\n { id: 'claude-sonnet-4-0', name: 'Claude Sonnet 4.0', enabled: true, responseModalities: ['TEXT'], useCase: 'text' },\n {\n id: 'claude-3-5-sonnet-latest',\n name: 'Claude 3.5 Sonnet',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\n },\n {\n id: 'claude-3-5-haiku-latest',\n name: 'Claude 3.5 Haiku',\n enabled: true,\n responseModalities: ['TEXT'],\n useCase: 'text',\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: 'anthropic-model-useCase',\n defaultValue: 'text',\n label: 'Use Case',\n options: [{ label: 'Text Generation', value: 'text' }],\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: 'anthropic-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 },\n ],\n label: 'Models',\n },\n ],\n },\n ],\n imageURL: AnthropicIcon,\n labels: {\n plural: 'Anthropic Providers',\n singular: 'Anthropic',\n },\n}\n"],"names":["AnthropicIcon","anthropicBlock","slug","fields","type","tabs","name","defaultValue","label","admin","components","Field","description","required","RowLabel","initCollapsed","id","enabled","responseModalities","useCase","width","dbName","options","value","hasMany","imageURL","labels","plural","singular"],"mappings":"AAEA,SAASA,aAAa,QAAQ,cAAa;AAE3C,OAAO,MAAMC,iBAAwB;IACnCC,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;qBACD;oBACDL,OAAO;gBACT;gBAEA,gBAAgB;gBAChB;oBACEL,QAAQ;wBACN;4BACEG,MAAM;4BACNF,MAAM;4BACNK,OAAO;gCACLC,YAAY;oCACVI,UAAU;gCACZ;gCACAC,eAAe;4BACjB;4BACAR,cAAc;gCACZ;oCAAES,IAAI;oCAAmBV,MAAM;oCAAmBW,SAAS;oCAAMC,oBAAoB;wCAAC;qCAAO;oCAAEC,SAAS;gCAAO;gCAC/G;oCAAEH,IAAI;oCAAmBV,MAAM;oCAAmBW,SAAS;oCAAMC,oBAAoB;wCAAC;qCAAO;oCAAEC,SAAS;gCAAO;gCAC/G;oCAAEH,IAAI;oCAAqBV,MAAM;oCAAqBW,SAAS;oCAAMC,oBAAoB;wCAAC;qCAAO;oCAAEC,SAAS;gCAAO;gCACnH;oCACEH,IAAI;oCACJV,MAAM;oCACNW,SAAS;oCACTC,oBAAoB;wCAAC;qCAAO;oCAC5BC,SAAS;gCACX;gCACA;oCACEH,IAAI;oCACJV,MAAM;oCACNW,SAAS;oCACTC,oBAAoB;wCAAC;qCAAO;oCAC5BC,SAAS;gCACX;6BACD;4BACDhB,QAAQ;gCACN;oCACEC,MAAM;oCACND,QAAQ;wCACN;4CACEG,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEW,OAAO;4CAAM;4CACtBZ,OAAO;4CACPK,UAAU;wCACZ;wCACA;4CACEP,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEW,OAAO;4CAAM;4CACtBZ,OAAO;4CACPK,UAAU;wCACZ;wCACA;4CACEP,MAAM;4CACNF,MAAM;4CACNK,OAAO;gDAAEW,OAAO;4CAAM;4CACtBC,QAAQ;4CACRd,cAAc;4CACdC,OAAO;4CACPc,SAAS;gDAAC;oDAAEd,OAAO;oDAAmBe,OAAO;gDAAO;6CAAE;wCACxD;qCACD;gCACH;gCACA;oCACEjB,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLG,aAAa;wCACbQ,OAAO;oCACT;oCACAC,QAAQ;oCACRG,SAAS;oCACThB,OAAO;oCACPc,SAAS;wCACP;4CAAEd,OAAO;4CAAQe,OAAO;wCAAO;wCAC/B;4CAAEf,OAAO;4CAASe,OAAO;wCAAQ;wCACjC;4CAAEf,OAAO;4CAASe,OAAO;wCAAQ;qCAClC;gCACH;gCACA;oCACEjB,MAAM;oCACNF,MAAM;oCACNK,OAAO;wCACLW,OAAO;oCACT;oCACAb,cAAc;oCACdC,OAAO;gCACT;6BACD;4BACDA,OAAO;wBACT;qBACD;oBACDA,OAAO;gBACT;aACD;QACH;KACD;IACDiB,UAAUzB;IACV0B,QAAQ;QACNC,QAAQ;QACRC,UAAU;IACZ;AACF,EAAC"}
|