@ai-stack/payloadcms 3.2.24 → 3.68.0-beta.1

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