@ai-stack/payloadcms 3.2.26 → 3.68.0-beta.2

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.
Files changed (313) hide show
  1. package/{LICENSE.md → LICENSE} +1 -1
  2. package/README.md +218 -229
  3. package/dist/access/checkAccess.d.ts +4 -0
  4. package/dist/access/checkAccess.js +20 -0
  5. package/dist/access/checkAccess.js.map +1 -0
  6. package/dist/ai/core/generateObject.d.ts +7 -0
  7. package/dist/ai/core/generateObject.js +35 -0
  8. package/dist/ai/core/generateObject.js.map +1 -0
  9. package/dist/ai/core/generateText.d.ts +7 -0
  10. package/dist/ai/core/generateText.js +31 -0
  11. package/dist/ai/core/generateText.js.map +1 -0
  12. package/dist/ai/core/index.d.ts +11 -0
  13. package/dist/ai/core/index.js +10 -0
  14. package/dist/ai/core/index.js.map +1 -0
  15. package/dist/ai/core/media/generateMedia.d.ts +7 -0
  16. package/dist/ai/core/media/generateMedia.js +50 -0
  17. package/dist/ai/core/media/generateMedia.js.map +1 -0
  18. package/dist/ai/core/media/image/generateImage.d.ts +6 -0
  19. package/dist/ai/core/media/image/generateImage.js +41 -0
  20. package/dist/ai/core/media/image/generateImage.js.map +1 -0
  21. package/dist/ai/core/media/image/handlers/multimodal.d.ts +7 -0
  22. package/dist/ai/core/media/image/handlers/multimodal.js +100 -0
  23. package/dist/ai/core/media/image/handlers/multimodal.js.map +1 -0
  24. package/dist/ai/core/media/image/handlers/standard.d.ts +7 -0
  25. package/dist/ai/core/media/image/handlers/standard.js +28 -0
  26. package/dist/ai/core/media/image/handlers/standard.js.map +1 -0
  27. package/dist/ai/core/media/image/index.d.ts +2 -0
  28. package/dist/ai/core/media/image/index.js +3 -0
  29. package/dist/ai/core/media/image/index.js.map +1 -0
  30. package/dist/ai/core/media/index.d.ts +2 -0
  31. package/dist/ai/core/media/index.js +3 -0
  32. package/dist/ai/core/media/index.js.map +1 -0
  33. package/dist/ai/core/media/speech/generateSpeech.d.ts +5 -0
  34. package/dist/ai/core/media/speech/generateSpeech.js +55 -0
  35. package/dist/ai/core/media/speech/generateSpeech.js.map +1 -0
  36. package/dist/ai/core/media/speech/index.d.ts +2 -0
  37. package/dist/ai/core/media/speech/index.js +3 -0
  38. package/dist/ai/core/media/speech/index.js.map +1 -0
  39. package/dist/ai/core/media/types.d.ts +74 -0
  40. package/dist/ai/core/media/types.js +5 -0
  41. package/dist/ai/core/media/types.js.map +1 -0
  42. package/dist/ai/core/media/utils.d.ts +11 -0
  43. package/dist/ai/core/media/utils.js +34 -0
  44. package/dist/ai/core/media/utils.js.map +1 -0
  45. package/dist/ai/core/media/video/generateVideo.d.ts +6 -0
  46. package/dist/ai/core/media/video/generateVideo.js +32 -0
  47. package/dist/ai/core/media/video/generateVideo.js.map +1 -0
  48. package/dist/ai/core/media/video/index.d.ts +2 -0
  49. package/dist/ai/core/media/video/index.js +3 -0
  50. package/dist/ai/core/media/video/index.js.map +1 -0
  51. package/dist/ai/core/streamObject.d.ts +7 -0
  52. package/dist/ai/core/streamObject.js +54 -0
  53. package/dist/ai/core/streamObject.js.map +1 -0
  54. package/dist/ai/core/streamText.d.ts +7 -0
  55. package/dist/ai/core/streamText.js +30 -0
  56. package/dist/ai/core/streamText.js.map +1 -0
  57. package/dist/ai/core/types.d.ts +85 -0
  58. package/dist/ai/core/types.js +5 -0
  59. package/dist/ai/core/types.js.map +1 -0
  60. package/dist/ai/index.d.ts +11 -0
  61. package/dist/ai/index.js +25 -0
  62. package/dist/ai/index.js.map +1 -0
  63. package/dist/ai/providers/blocks/anthropic.d.ts +2 -0
  64. package/dist/ai/providers/blocks/anthropic.js +223 -0
  65. package/dist/ai/providers/blocks/anthropic.js.map +1 -0
  66. package/dist/ai/providers/blocks/elevenlabs.d.ts +2 -0
  67. package/dist/ai/providers/blocks/elevenlabs.js +449 -0
  68. package/dist/ai/providers/blocks/elevenlabs.js.map +1 -0
  69. package/dist/ai/providers/blocks/fal.d.ts +2 -0
  70. package/dist/ai/providers/blocks/fal.js +312 -0
  71. package/dist/ai/providers/blocks/fal.js.map +1 -0
  72. package/dist/ai/providers/blocks/google.d.ts +2 -0
  73. package/dist/ai/providers/blocks/google.js +623 -0
  74. package/dist/ai/providers/blocks/google.js.map +1 -0
  75. package/dist/ai/providers/blocks/index.d.ts +2 -0
  76. package/dist/ai/providers/blocks/index.js +18 -0
  77. package/dist/ai/providers/blocks/index.js.map +1 -0
  78. package/dist/ai/providers/blocks/openai-compatible.d.ts +2 -0
  79. package/dist/ai/providers/blocks/openai-compatible.js +308 -0
  80. package/dist/ai/providers/blocks/openai-compatible.js.map +1 -0
  81. package/dist/ai/providers/blocks/openai.d.ts +2 -0
  82. package/dist/ai/providers/blocks/openai.js +600 -0
  83. package/dist/ai/providers/blocks/openai.js.map +1 -0
  84. package/dist/ai/providers/blocks/xai.d.ts +2 -0
  85. package/dist/ai/providers/blocks/xai.js +247 -0
  86. package/dist/ai/providers/blocks/xai.js.map +1 -0
  87. package/dist/ai/providers/icons.d.ts +7 -0
  88. package/dist/ai/providers/icons.js +9 -0
  89. package/dist/ai/providers/icons.js.map +1 -0
  90. package/dist/ai/providers/index.d.ts +2 -0
  91. package/dist/ai/providers/index.js +6 -0
  92. package/dist/ai/providers/index.js.map +1 -0
  93. package/dist/ai/providers/registry.d.ts +40 -0
  94. package/dist/ai/providers/registry.js +267 -0
  95. package/dist/ai/providers/registry.js.map +1 -0
  96. package/dist/ai/providers/types.d.ts +115 -0
  97. package/dist/ai/providers/types.js +4 -0
  98. package/dist/ai/providers/types.js.map +1 -0
  99. package/dist/ai/utils/systemGenerate.d.ts +1 -1
  100. package/dist/ai/utils/systemGenerate.js +19 -19
  101. package/dist/ai/utils/systemGenerate.js.map +1 -1
  102. package/dist/collections/AIJobs.d.ts +2 -0
  103. package/dist/collections/AIJobs.js +81 -0
  104. package/dist/collections/AIJobs.js.map +1 -0
  105. package/dist/collections/AISettings.d.ts +2 -0
  106. package/dist/collections/AISettings.js +279 -0
  107. package/dist/collections/AISettings.js.map +1 -0
  108. package/dist/collections/Instructions.js +224 -50
  109. package/dist/collections/Instructions.js.map +1 -1
  110. package/dist/defaults.d.ts +3 -0
  111. package/dist/defaults.js +3 -0
  112. package/dist/defaults.js.map +1 -1
  113. package/dist/endpoints/buildPromptUtils.d.ts +19 -0
  114. package/dist/endpoints/buildPromptUtils.js +114 -0
  115. package/dist/endpoints/buildPromptUtils.js.map +1 -0
  116. package/dist/endpoints/chat.d.ts +4 -0
  117. package/dist/endpoints/fetchFields.js +0 -7
  118. package/dist/endpoints/fetchFields.js.map +1 -1
  119. package/dist/endpoints/fetchVoices.d.ts +2 -0
  120. package/dist/endpoints/fetchVoices.js +79 -0
  121. package/dist/endpoints/fetchVoices.js.map +1 -0
  122. package/dist/endpoints/index.js +339 -232
  123. package/dist/endpoints/index.js.map +1 -1
  124. package/dist/exports/client.d.ts +9 -0
  125. package/dist/exports/client.js +9 -0
  126. package/dist/exports/client.js.map +1 -1
  127. package/dist/exports/fields.d.ts +1 -0
  128. package/dist/exports/fields.js +1 -0
  129. package/dist/exports/fields.js.map +1 -1
  130. package/dist/fields/ArrayComposeField/ArrayComposeField.d.ts +15 -0
  131. package/dist/fields/ArrayComposeField/ArrayComposeField.js +87 -0
  132. package/dist/fields/ArrayComposeField/ArrayComposeField.js.map +1 -0
  133. package/dist/fields/ArrayComposeField/ArrayComposeField.jsx +73 -0
  134. package/dist/fields/ComposeField/ComposeField.js +2 -2
  135. package/dist/fields/ComposeField/ComposeField.js.map +1 -1
  136. package/dist/fields/ComposeField/ComposeField.jsx +2 -2
  137. package/dist/fields/PromptEditorField/PromptEditorField.js +162 -16
  138. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  139. package/dist/fields/PromptEditorField/PromptEditorField.jsx +123 -5
  140. package/dist/index.d.ts +3 -0
  141. package/dist/index.js +1 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/init.js +63 -65
  144. package/dist/init.js.map +1 -1
  145. package/dist/payload-ai.d.ts +149 -0
  146. package/dist/plugin.js +94 -46
  147. package/dist/plugin.js.map +1 -1
  148. package/dist/providers/InstructionsProvider/InstructionsProvider.js +38 -7
  149. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  150. package/dist/providers/InstructionsProvider/InstructionsProvider.jsx +30 -4
  151. package/dist/providers/InstructionsProvider/context.d.ts +1 -0
  152. package/dist/providers/InstructionsProvider/context.js +1 -0
  153. package/dist/providers/InstructionsProvider/context.js.map +1 -1
  154. package/dist/providers/InstructionsProvider/useInstructions.js +30 -10
  155. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
  156. package/dist/styles.d.ts +11 -0
  157. package/dist/types/handlebars-async-helpers.d.ts +1 -0
  158. package/dist/types/handlebars-dist-handlebars.d.ts +1 -0
  159. package/dist/types/react-mentions.d.ts +1 -0
  160. package/dist/types.d.ts +6 -16
  161. package/dist/types.js.map +1 -1
  162. package/dist/ui/AIConfigDashboard/index.d.ts +2 -0
  163. package/dist/ui/AIConfigDashboard/index.js +46 -0
  164. package/dist/ui/AIConfigDashboard/index.js.map +1 -0
  165. package/dist/ui/AIConfigDashboard/index.jsx +24 -0
  166. package/dist/ui/ApiKeyStatusIndicator/index.d.ts +6 -0
  167. package/dist/ui/ApiKeyStatusIndicator/index.js +39 -0
  168. package/dist/ui/ApiKeyStatusIndicator/index.js.map +1 -0
  169. package/dist/ui/ApiKeyStatusIndicator/index.jsx +29 -0
  170. package/dist/ui/Compose/Compose.d.ts +2 -2
  171. package/dist/ui/Compose/Compose.js +118 -92
  172. package/dist/ui/Compose/Compose.js.map +1 -1
  173. package/dist/ui/Compose/Compose.jsx +113 -103
  174. package/dist/ui/Compose/ComposePlaceholder.d.ts +7 -0
  175. package/dist/ui/Compose/ComposePlaceholder.js +78 -0
  176. package/dist/ui/Compose/ComposePlaceholder.js.map +1 -0
  177. package/dist/ui/Compose/ComposePlaceholder.jsx +66 -0
  178. package/dist/ui/Compose/UndoRedoActions.d.ts +2 -2
  179. package/dist/ui/Compose/UndoRedoActions.js +11 -6
  180. package/dist/ui/Compose/UndoRedoActions.js.map +1 -1
  181. package/dist/ui/Compose/UndoRedoActions.jsx +8 -6
  182. package/dist/ui/Compose/compose.module.css +57 -17
  183. package/dist/ui/Compose/hooks/menu/itemsMap.js +13 -7
  184. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -1
  185. package/dist/ui/Compose/hooks/menu/useMenu.d.ts +2 -1
  186. package/dist/ui/Compose/hooks/menu/useMenu.js +28 -17
  187. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -1
  188. package/dist/ui/Compose/hooks/menu/useMenu.jsx +27 -14
  189. package/dist/ui/Compose/hooks/useActiveFieldTracking.js +69 -10
  190. package/dist/ui/Compose/hooks/useActiveFieldTracking.js.map +1 -1
  191. package/dist/ui/Compose/hooks/useGenerate.d.ts +3 -0
  192. package/dist/ui/Compose/hooks/useGenerate.js +71 -11
  193. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
  194. package/dist/ui/Compose/hooks/useHistory.d.ts +0 -1
  195. package/dist/ui/Compose/hooks/useHistory.js +113 -26
  196. package/dist/ui/Compose/hooks/useHistory.js.map +1 -1
  197. package/dist/ui/DynamicModelSelect/index.d.ts +7 -0
  198. package/dist/ui/DynamicModelSelect/index.js +231 -0
  199. package/dist/ui/DynamicModelSelect/index.js.map +1 -0
  200. package/dist/ui/DynamicModelSelect/index.jsx +207 -0
  201. package/dist/ui/DynamicProviderSelect/index.d.ts +7 -0
  202. package/dist/ui/DynamicProviderSelect/index.js +101 -0
  203. package/dist/ui/DynamicProviderSelect/index.js.map +1 -0
  204. package/dist/ui/DynamicProviderSelect/index.jsx +90 -0
  205. package/dist/ui/DynamicVoiceSelect/index.d.ts +7 -0
  206. package/dist/ui/DynamicVoiceSelect/index.js +156 -0
  207. package/dist/ui/DynamicVoiceSelect/index.js.map +1 -0
  208. package/dist/ui/DynamicVoiceSelect/index.jsx +102 -0
  209. package/dist/ui/EncryptedTextField/index.d.ts +8 -0
  210. package/dist/ui/EncryptedTextField/index.js +74 -0
  211. package/dist/ui/EncryptedTextField/index.js.map +1 -0
  212. package/dist/ui/EncryptedTextField/index.jsx +35 -0
  213. package/dist/ui/Icons/LottieAnimation.js +3 -1
  214. package/dist/ui/Icons/LottieAnimation.js.map +1 -1
  215. package/dist/ui/Icons/LottieAnimation.jsx +2 -1
  216. package/dist/ui/ModelRowLabel/index.d.ts +6 -0
  217. package/dist/ui/ModelRowLabel/index.js +41 -0
  218. package/dist/ui/ModelRowLabel/index.js.map +1 -0
  219. package/dist/ui/ModelRowLabel/index.jsx +26 -0
  220. package/dist/ui/ProviderOptionsEditor/index.d.ts +7 -0
  221. package/dist/ui/ProviderOptionsEditor/index.js +291 -0
  222. package/dist/ui/ProviderOptionsEditor/index.js.map +1 -0
  223. package/dist/ui/ProviderOptionsEditor/index.jsx +210 -0
  224. package/dist/ui/VoicesFetcher/index.d.ts +7 -0
  225. package/dist/ui/VoicesFetcher/index.js +118 -0
  226. package/dist/ui/VoicesFetcher/index.js.map +1 -0
  227. package/dist/ui/VoicesFetcher/index.jsx +79 -0
  228. package/dist/utilities/buildSmartPrompt.d.ts +22 -0
  229. package/dist/utilities/buildSmartPrompt.js +143 -0
  230. package/dist/utilities/buildSmartPrompt.js.map +1 -0
  231. package/dist/utilities/encryption.d.ts +2 -0
  232. package/dist/utilities/encryption.js +47 -0
  233. package/dist/utilities/encryption.js.map +1 -0
  234. package/dist/utilities/extractImageData.d.ts +9 -0
  235. package/dist/utilities/extractImageData.js +12 -2
  236. package/dist/utilities/extractImageData.js.map +1 -1
  237. package/dist/utilities/fetchImages.d.ts +14 -0
  238. package/dist/utilities/fetchImages.js +38 -0
  239. package/dist/utilities/fetchImages.js.map +1 -0
  240. package/dist/utilities/fieldToJsonSchema.d.ts +2 -1
  241. package/dist/utilities/fieldToJsonSchema.js +66 -3
  242. package/dist/utilities/fieldToJsonSchema.js.map +1 -1
  243. package/dist/utilities/getFieldBySchemaPath.d.ts +2 -2
  244. package/dist/utilities/getFieldBySchemaPath.js +15 -0
  245. package/dist/utilities/getFieldBySchemaPath.js.map +1 -1
  246. package/dist/utilities/getProviderOptionsFields.d.ts +16 -0
  247. package/dist/utilities/getProviderOptionsFields.js +80 -0
  248. package/dist/utilities/getProviderOptionsFields.js.map +1 -0
  249. package/dist/utilities/isPluginActivated.js +1 -2
  250. package/dist/utilities/isPluginActivated.js.map +1 -1
  251. package/dist/utilities/lexicalToHTML.js.map +1 -1
  252. package/dist/utilities/resolveImageReferences.d.ts +30 -0
  253. package/dist/utilities/resolveImageReferences.js +167 -0
  254. package/dist/utilities/resolveImageReferences.js.map +1 -0
  255. package/dist/utilities/schemaConverter.d.ts +3 -0
  256. package/dist/utilities/schemaConverter.js +93 -0
  257. package/dist/utilities/schemaConverter.js.map +1 -0
  258. package/dist/utilities/setSafeLexicalState.d.ts +1 -3
  259. package/dist/utilities/setSafeLexicalState.js +1 -1
  260. package/dist/utilities/setSafeLexicalState.js.map +1 -1
  261. package/dist/utilities/updateFieldsConfig.js +27 -43
  262. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  263. package/package.json +23 -24
  264. package/dist/ai/models/anthropic/index.d.ts +0 -2
  265. package/dist/ai/models/anthropic/index.js +0 -129
  266. package/dist/ai/models/anthropic/index.js.map +0 -1
  267. package/dist/ai/models/elevenLabs/generateVoice.d.ts +0 -8
  268. package/dist/ai/models/elevenLabs/generateVoice.js +0 -20
  269. package/dist/ai/models/elevenLabs/generateVoice.js.map +0 -1
  270. package/dist/ai/models/elevenLabs/index.d.ts +0 -2
  271. package/dist/ai/models/elevenLabs/index.js +0 -133
  272. package/dist/ai/models/elevenLabs/index.js.map +0 -1
  273. package/dist/ai/models/elevenLabs/voices.d.ts +0 -8
  274. package/dist/ai/models/elevenLabs/voices.js +0 -24
  275. package/dist/ai/models/elevenLabs/voices.js.map +0 -1
  276. package/dist/ai/models/generateObject.d.ts +0 -11
  277. package/dist/ai/models/generateObject.js +0 -22
  278. package/dist/ai/models/generateObject.js.map +0 -1
  279. package/dist/ai/models/google/generateImage.d.ts +0 -9
  280. package/dist/ai/models/google/generateImage.js +0 -27
  281. package/dist/ai/models/google/generateImage.js.map +0 -1
  282. package/dist/ai/models/google/index.d.ts +0 -2
  283. package/dist/ai/models/google/index.js +0 -201
  284. package/dist/ai/models/google/index.js.map +0 -1
  285. package/dist/ai/models/index.d.ts +0 -2
  286. package/dist/ai/models/index.js +0 -13
  287. package/dist/ai/models/index.js.map +0 -1
  288. package/dist/ai/models/openai/generateImage.d.ts +0 -5
  289. package/dist/ai/models/openai/generateImage.js +0 -31
  290. package/dist/ai/models/openai/generateImage.js.map +0 -1
  291. package/dist/ai/models/openai/generateVoice.d.ts +0 -6
  292. package/dist/ai/models/openai/generateVoice.js +0 -19
  293. package/dist/ai/models/openai/generateVoice.js.map +0 -1
  294. package/dist/ai/models/openai/index.d.ts +0 -2
  295. package/dist/ai/models/openai/index.js +0 -428
  296. package/dist/ai/models/openai/index.js.map +0 -1
  297. package/dist/ai/models/openai/openai.d.ts +0 -1
  298. package/dist/ai/models/openai/openai.js +0 -8
  299. package/dist/ai/models/openai/openai.js.map +0 -1
  300. package/dist/ai/utils/editImagesWithOpenAI.d.ts +0 -10
  301. package/dist/ai/utils/editImagesWithOpenAI.js +0 -37
  302. package/dist/ai/utils/editImagesWithOpenAI.js.map +0 -1
  303. package/dist/styles.d.js +0 -2
  304. package/dist/styles.d.js.map +0 -1
  305. package/dist/types/handlebars-async-helpers.d.js +0 -2
  306. package/dist/types/handlebars-async-helpers.d.js.map +0 -1
  307. package/dist/types/handlebars-dist-handlebars.d.js +0 -2
  308. package/dist/types/handlebars-dist-handlebars.d.js.map +0 -1
  309. package/dist/types/react-mentions.d.js +0 -2
  310. package/dist/types/react-mentions.d.js.map +0 -1
  311. package/dist/utilities/getGenerationModels.d.ts +0 -2
  312. package/dist/utilities/getGenerationModels.js +0 -10
  313. package/dist/utilities/getGenerationModels.js.map +0 -1
@@ -0,0 +1,623 @@
1
+ import { GoogleIcon } from '../icons.js';
2
+ export const googleBlock = {
3
+ slug: 'google',
4
+ custom: {
5
+ providerOptionsSchemas: {
6
+ image: {
7
+ fields: [
8
+ 'aspectRatio',
9
+ 'personGeneration',
10
+ 'seed',
11
+ 'addWatermark'
12
+ ]
13
+ },
14
+ text: {
15
+ fields: [
16
+ 'temperature',
17
+ 'maxOutputTokens',
18
+ 'topP',
19
+ 'topK',
20
+ 'safetySettings'
21
+ ]
22
+ },
23
+ tts: {
24
+ fields: [
25
+ 'speed',
26
+ 'volumeGainDb',
27
+ 'speakingRate'
28
+ ]
29
+ }
30
+ }
31
+ },
32
+ fields: [
33
+ {
34
+ type: 'tabs',
35
+ tabs: [
36
+ // 1. Setup tab
37
+ {
38
+ fields: [
39
+ {
40
+ name: 'enabled',
41
+ type: 'checkbox',
42
+ defaultValue: true,
43
+ label: 'Enabled'
44
+ },
45
+ {
46
+ name: 'apiKey',
47
+ type: 'text',
48
+ admin: {
49
+ components: {
50
+ Field: '@ai-stack/payloadcms/client#EncryptedTextField'
51
+ },
52
+ description: 'Optional. If empty, @ai-sdk/google will use the GOOGLE_GENERATIVE_AI_API_KEY environment variable.'
53
+ },
54
+ label: 'API Key',
55
+ required: false
56
+ }
57
+ ],
58
+ label: 'Setup'
59
+ },
60
+ // 2. Connection tab
61
+ {
62
+ fields: [
63
+ {
64
+ type: 'collapsible',
65
+ admin: {
66
+ initCollapsed: false
67
+ },
68
+ fields: [
69
+ {
70
+ type: 'row',
71
+ fields: [
72
+ {
73
+ name: 'baseURL',
74
+ type: 'text',
75
+ admin: {
76
+ description: 'Optional. Override default API endpoint (defaults to https://generativelanguage.googleapis.com/v1beta).'
77
+ },
78
+ label: 'Base URL'
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ name: 'headers',
84
+ type: 'array',
85
+ admin: {
86
+ description: 'Optional. Extra headers to send with every request, for example routing through a proxy.'
87
+ },
88
+ fields: [
89
+ {
90
+ type: 'row',
91
+ fields: [
92
+ {
93
+ name: 'key',
94
+ type: 'text',
95
+ admin: {
96
+ width: '50%'
97
+ },
98
+ label: 'Header Name',
99
+ required: true
100
+ },
101
+ {
102
+ name: 'value',
103
+ type: 'text',
104
+ admin: {
105
+ width: '50%'
106
+ },
107
+ label: 'Header Value',
108
+ required: true
109
+ }
110
+ ]
111
+ }
112
+ ],
113
+ label: 'Custom Headers'
114
+ }
115
+ ],
116
+ label: 'API & Network Settings'
117
+ }
118
+ ],
119
+ label: 'Connection'
120
+ },
121
+ // 3. Voices tab (NEW)
122
+ {
123
+ fields: [
124
+ {
125
+ name: 'voices',
126
+ type: 'array',
127
+ admin: {
128
+ description: 'Available voices for Gemini TTS models.',
129
+ initCollapsed: false
130
+ },
131
+ defaultValue: [
132
+ {
133
+ id: 'Puck',
134
+ name: 'Puck (Upbeat)',
135
+ enabled: true
136
+ },
137
+ {
138
+ id: 'Charon',
139
+ name: 'Charon (Informative)',
140
+ enabled: true
141
+ },
142
+ {
143
+ id: 'Kore',
144
+ name: 'Kore (Firm)',
145
+ enabled: true
146
+ },
147
+ {
148
+ id: 'Fenrir',
149
+ name: 'Fenrir (Excitable)',
150
+ enabled: true
151
+ },
152
+ {
153
+ id: 'Aoede',
154
+ name: 'Aoede (Breezy)',
155
+ enabled: true
156
+ },
157
+ {
158
+ id: 'Zephyr',
159
+ name: 'Zephyr (Bright)',
160
+ enabled: true
161
+ }
162
+ ],
163
+ fields: [
164
+ {
165
+ type: 'row',
166
+ fields: [
167
+ {
168
+ name: 'id',
169
+ type: 'text',
170
+ admin: {
171
+ description: 'Voice ID used by Google API',
172
+ width: '40%'
173
+ },
174
+ label: 'Voice ID',
175
+ required: true
176
+ },
177
+ {
178
+ name: 'name',
179
+ type: 'text',
180
+ admin: {
181
+ width: '40%'
182
+ },
183
+ label: 'Display Name',
184
+ required: true
185
+ },
186
+ {
187
+ name: 'enabled',
188
+ type: 'checkbox',
189
+ admin: {
190
+ width: '20%'
191
+ },
192
+ defaultValue: true,
193
+ label: 'Enabled'
194
+ }
195
+ ]
196
+ }
197
+ ],
198
+ label: 'Available Voices'
199
+ }
200
+ ],
201
+ label: 'Voices'
202
+ },
203
+ // 4. Provider Options (NEW - One group per use case)
204
+ {
205
+ fields: [
206
+ // TTS Settings
207
+ {
208
+ name: 'ttsProviderOptions',
209
+ type: 'group',
210
+ admin: {
211
+ description: 'Default provider options for TTS models.'
212
+ },
213
+ fields: [
214
+ {
215
+ name: 'speed',
216
+ type: 'number',
217
+ defaultValue: 1.0,
218
+ label: 'Speaking Rate',
219
+ max: 4.0,
220
+ min: 0.25
221
+ },
222
+ {
223
+ name: 'volumeGainDb',
224
+ type: 'number',
225
+ defaultValue: 0,
226
+ label: 'Volume Gain (dB)'
227
+ }
228
+ ],
229
+ label: 'TTS Provider Options'
230
+ },
231
+ // Image Settings
232
+ {
233
+ name: 'imageProviderOptions',
234
+ type: 'group',
235
+ admin: {
236
+ description: 'Default provider options for image generation models.'
237
+ },
238
+ fields: [
239
+ {
240
+ name: 'aspectRatio',
241
+ type: 'select',
242
+ dbName: 'google-image-aspectRatio',
243
+ defaultValue: '1:1',
244
+ label: 'Default Aspect Ratio',
245
+ options: [
246
+ {
247
+ label: '1:1 (Square)',
248
+ value: '1:1'
249
+ },
250
+ {
251
+ label: '16:9 (Landscape)',
252
+ value: '16:9'
253
+ },
254
+ {
255
+ label: '9:16 (Portrait)',
256
+ value: '9:16'
257
+ },
258
+ {
259
+ label: '4:3',
260
+ value: '4:3'
261
+ },
262
+ {
263
+ label: '3:4',
264
+ value: '3:4'
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ name: 'personGeneration',
270
+ type: 'select',
271
+ dbName: 'google-image-personGeneration',
272
+ defaultValue: 'allow_adult',
273
+ label: 'Person Generation (Imagen)',
274
+ options: [
275
+ {
276
+ label: 'Allow Adults Only',
277
+ value: 'allow_adult'
278
+ },
279
+ {
280
+ label: 'Allow All',
281
+ value: 'allow_all'
282
+ },
283
+ {
284
+ label: 'Do Not Allow',
285
+ value: 'dont_allow'
286
+ }
287
+ ]
288
+ },
289
+ {
290
+ name: 'addWatermark',
291
+ type: 'checkbox',
292
+ defaultValue: true,
293
+ label: 'Add SynthID Watermark'
294
+ }
295
+ ],
296
+ label: 'Image Provider Options'
297
+ },
298
+ // Text Settings
299
+ {
300
+ name: 'textProviderOptions',
301
+ type: 'group',
302
+ admin: {
303
+ description: 'Default provider options for text generation models.'
304
+ },
305
+ fields: [
306
+ {
307
+ name: 'temperature',
308
+ type: 'number',
309
+ defaultValue: 1.0,
310
+ label: 'Default Temperature',
311
+ max: 2.0,
312
+ min: 0.0
313
+ },
314
+ {
315
+ name: 'maxOutputTokens',
316
+ type: 'number',
317
+ label: 'Max Output Tokens'
318
+ },
319
+ {
320
+ name: 'topP',
321
+ type: 'number',
322
+ defaultValue: 0.95,
323
+ label: 'Top P',
324
+ max: 1.0,
325
+ min: 0.0
326
+ },
327
+ {
328
+ name: 'topK',
329
+ type: 'number',
330
+ defaultValue: 40,
331
+ label: 'Top K'
332
+ },
333
+ {
334
+ name: 'safetySettings',
335
+ type: 'array',
336
+ admin: {
337
+ description: 'Safety filter settings'
338
+ },
339
+ fields: [
340
+ {
341
+ type: 'row',
342
+ fields: [
343
+ {
344
+ name: 'category',
345
+ type: 'select',
346
+ admin: {
347
+ width: '50%'
348
+ },
349
+ dbName: 'google-safety-category',
350
+ label: 'Category',
351
+ options: [
352
+ {
353
+ label: 'Harassment',
354
+ value: 'HARM_CATEGORY_HARASSMENT'
355
+ },
356
+ {
357
+ label: 'Hate Speech',
358
+ value: 'HARM_CATEGORY_HATE_SPEECH'
359
+ },
360
+ {
361
+ label: 'Sexually Explicit',
362
+ value: 'HARM_CATEGORY_SEXUALLY_EXPLICIT'
363
+ },
364
+ {
365
+ label: 'Dangerous Content',
366
+ value: 'HARM_CATEGORY_DANGEROUS_CONTENT'
367
+ }
368
+ ],
369
+ required: true
370
+ },
371
+ {
372
+ name: 'threshold',
373
+ type: 'select',
374
+ admin: {
375
+ width: '50%'
376
+ },
377
+ dbName: 'google-safety-threshold',
378
+ label: 'Threshold',
379
+ options: [
380
+ {
381
+ label: 'Block None',
382
+ value: 'BLOCK_NONE'
383
+ },
384
+ {
385
+ label: 'Block Low+',
386
+ value: 'BLOCK_LOW_AND_ABOVE'
387
+ },
388
+ {
389
+ label: 'Block Medium+',
390
+ value: 'BLOCK_MEDIUM_AND_ABOVE'
391
+ },
392
+ {
393
+ label: 'Block High',
394
+ value: 'BLOCK_ONLY_HIGH'
395
+ }
396
+ ],
397
+ required: true
398
+ }
399
+ ]
400
+ }
401
+ ],
402
+ label: 'Default Safety Settings'
403
+ }
404
+ ],
405
+ label: 'Text Provider Options'
406
+ }
407
+ ],
408
+ label: 'Provider Options'
409
+ },
410
+ // 5. Models tab (Simplified)
411
+ {
412
+ fields: [
413
+ {
414
+ name: 'models',
415
+ type: 'array',
416
+ admin: {
417
+ components: {
418
+ RowLabel: '@ai-stack/payloadcms/client#ModelRowLabel'
419
+ },
420
+ description: 'Keep this list short. Enable only the models you actually use.',
421
+ initCollapsed: false
422
+ },
423
+ defaultValue: [
424
+ // Text models
425
+ {
426
+ id: 'gemini-3-pro-preview',
427
+ name: 'Gemini 3.0 Pro (Preview)',
428
+ enabled: true,
429
+ responseModalities: [
430
+ 'TEXT'
431
+ ],
432
+ useCase: 'text'
433
+ },
434
+ {
435
+ id: 'gemini-2.5-pro',
436
+ name: 'Gemini 2.5 Pro',
437
+ enabled: true,
438
+ responseModalities: [
439
+ 'TEXT'
440
+ ],
441
+ useCase: 'text'
442
+ },
443
+ {
444
+ id: 'gemini-2.5-flash',
445
+ name: 'Gemini 2.5 Flash',
446
+ enabled: true,
447
+ responseModalities: [
448
+ 'TEXT'
449
+ ],
450
+ useCase: 'text'
451
+ },
452
+ {
453
+ id: 'gemini-1.5-pro-latest',
454
+ name: 'Gemini 1.5 Pro (Latest)',
455
+ enabled: true,
456
+ responseModalities: [
457
+ 'TEXT'
458
+ ],
459
+ useCase: 'text'
460
+ },
461
+ {
462
+ id: 'gemini-1.5-flash-latest',
463
+ name: 'Gemini 1.5 Flash (Latest)',
464
+ enabled: true,
465
+ responseModalities: [
466
+ 'TEXT'
467
+ ],
468
+ useCase: 'text'
469
+ },
470
+ // Image models
471
+ {
472
+ id: 'imagen-3.0-generate-002',
473
+ name: 'Imagen 3 (Fast)',
474
+ enabled: true,
475
+ useCase: 'image'
476
+ },
477
+ {
478
+ id: 'gemini-2.5-flash-image',
479
+ name: 'Gemini 2.5 Flash Image',
480
+ enabled: true,
481
+ responseModalities: [
482
+ 'IMAGE'
483
+ ],
484
+ useCase: 'image'
485
+ },
486
+ {
487
+ id: 'gemini-3-pro-image-preview',
488
+ name: 'Gemini 3.0 Pro Image (Preview)',
489
+ enabled: true,
490
+ responseModalities: [
491
+ 'IMAGE'
492
+ ],
493
+ useCase: 'image'
494
+ },
495
+ // TTS Models
496
+ {
497
+ id: 'gemini-2.5-pro-preview-tts',
498
+ name: 'Gemini 2.5 Pro TTS (Preview)',
499
+ enabled: true,
500
+ responseModalities: [
501
+ 'AUDIO'
502
+ ],
503
+ useCase: 'tts'
504
+ },
505
+ {
506
+ id: 'gemini-2.5-flash-preview-tts',
507
+ name: 'Gemini 2.5 Flash TTS (Preview)',
508
+ enabled: true,
509
+ responseModalities: [
510
+ 'AUDIO'
511
+ ],
512
+ useCase: 'tts'
513
+ }
514
+ ],
515
+ fields: [
516
+ // Basic model info
517
+ {
518
+ type: 'row',
519
+ fields: [
520
+ {
521
+ name: 'id',
522
+ type: 'text',
523
+ admin: {
524
+ description: 'Exact model id as used with @ai-sdk/google.',
525
+ width: '33%'
526
+ },
527
+ label: 'Model ID',
528
+ required: true
529
+ },
530
+ {
531
+ name: 'name',
532
+ type: 'text',
533
+ admin: {
534
+ width: '33%'
535
+ },
536
+ label: 'Display Name',
537
+ required: true
538
+ },
539
+ {
540
+ name: 'useCase',
541
+ type: 'select',
542
+ admin: {
543
+ width: '33%'
544
+ },
545
+ dbName: 'google-model-useCase',
546
+ defaultValue: 'text',
547
+ label: 'Use Case',
548
+ options: [
549
+ {
550
+ label: 'Text',
551
+ value: 'text'
552
+ },
553
+ {
554
+ label: 'Image Generation',
555
+ value: 'image'
556
+ },
557
+ {
558
+ label: 'Text-to-Speech',
559
+ value: 'tts'
560
+ },
561
+ {
562
+ label: 'Embeddings',
563
+ value: 'embedding'
564
+ }
565
+ ]
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ name: 'responseModalities',
571
+ type: 'select',
572
+ admin: {
573
+ description: 'Output capabilities of this model',
574
+ width: '50%'
575
+ },
576
+ dbName: 'google-model-modalities',
577
+ hasMany: true,
578
+ label: 'Response Modalities',
579
+ options: [
580
+ {
581
+ label: 'Text',
582
+ value: 'TEXT'
583
+ },
584
+ {
585
+ label: 'Image',
586
+ value: 'IMAGE'
587
+ },
588
+ {
589
+ label: 'Audio',
590
+ value: 'AUDIO'
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ name: 'enabled',
596
+ type: 'checkbox',
597
+ admin: {
598
+ width: '50%'
599
+ },
600
+ defaultValue: true,
601
+ label: 'Enabled'
602
+ }
603
+ ],
604
+ label: 'Available Models',
605
+ labels: {
606
+ plural: 'Models',
607
+ singular: 'Model'
608
+ }
609
+ }
610
+ ],
611
+ label: 'Models'
612
+ }
613
+ ]
614
+ }
615
+ ],
616
+ imageURL: GoogleIcon,
617
+ labels: {
618
+ plural: 'Google Providers',
619
+ singular: 'Google Gemini'
620
+ }
621
+ };
622
+
623
+ //# sourceMappingURL=google.js.map