eve 0.47.5 → 0.47.7

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 (450) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/NOTICE +72 -0
  3. package/dist/src/channel/adapter.js +1 -1
  4. package/dist/src/channel/session.js +1 -1
  5. package/dist/src/chunks/{use-eve-agent-DjYwFJF7.js → use-eve-agent-B5zw1dwj.js} +0 -1
  6. package/dist/src/chunks/{use-eve-agent-DkUB0Ok4.js → use-eve-agent-Dg5S44kG.js} +0 -1
  7. package/dist/src/cli/commands/registry-declared-setups.js +1 -1
  8. package/dist/src/cli/commands/registry-install-transaction.d.ts +23 -0
  9. package/dist/src/cli/commands/registry-install-transaction.js +1 -0
  10. package/dist/src/cli/commands/registry-package.js +1 -1
  11. package/dist/src/cli/commands/registry.js +1 -1
  12. package/dist/src/cli/commands/setup-headless.d.ts +6 -0
  13. package/dist/src/cli/commands/setup-headless.js +1 -1
  14. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  15. package/dist/src/cli/dev/tui/line-editor.d.ts +4 -0
  16. package/dist/src/cli/dev/tui/line-editor.js +3 -3
  17. package/dist/src/cli/dev/tui/runner.d.ts +2 -0
  18. package/dist/src/cli/dev/tui/runner.js +1 -1
  19. package/dist/src/cli/dev/tui/stream-format.d.ts +8 -0
  20. package/dist/src/cli/dev/tui/stream-format.js +2 -2
  21. package/dist/src/cli/dev/tui/subagent-pump.d.ts +3 -0
  22. package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
  23. package/dist/src/cli/dev/tui/tui.js +1 -1
  24. package/dist/src/cli/dev/tui/vercel-trusted-sources.js +1 -1
  25. package/dist/src/cli/invoke/result.d.ts +1 -1
  26. package/dist/src/client/agent-info-schema.d.ts +0 -1
  27. package/dist/src/client/agent-info-schema.js +1 -1
  28. package/dist/src/compiled/.vendor-stamp.json +5 -5
  29. package/dist/src/compiled/@agentclientprotocol/sdk/index.js +29 -43
  30. package/dist/src/compiled/@ai-sdk/anthropic/index.js +4 -4
  31. package/dist/src/compiled/@ai-sdk/code-mode/LICENSE +13 -0
  32. package/dist/src/compiled/@ai-sdk/code-mode/_run.d.ts +1 -0
  33. package/dist/src/compiled/@ai-sdk/code-mode/index.d.ts +300 -0
  34. package/dist/src/compiled/@ai-sdk/code-mode/index.js +663 -0
  35. package/dist/src/compiled/@ai-sdk/google/index.js +6 -6
  36. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  37. package/dist/src/compiled/@ai-sdk/openai/index.js +8 -8
  38. package/dist/src/compiled/@ai-sdk/provider/index.d.ts +6 -0
  39. package/dist/src/compiled/@ai-sdk/provider-utils/index.d.ts +50 -2
  40. package/dist/src/compiled/@modelcontextprotocol/server/index.js +36 -50
  41. package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +55 -55
  42. package/dist/src/compiled/@vercel/sandbox/index.js +3 -3
  43. package/dist/src/compiled/@vercel/sandbox-delete/index.js +3 -3
  44. package/dist/src/compiled/_chunks/client/errors-BLhNglBt.js +2 -0
  45. package/dist/src/compiled/_chunks/node/auth-BSKyPAEP.js +2 -0
  46. package/dist/src/compiled/_chunks/node/auth-YpKlwhP1.js +2 -0
  47. package/dist/src/compiled/_chunks/node/schemas-cFtr4EoN.js +50 -0
  48. package/dist/src/compiled/_chunks/node/xdg-app-paths-Buj3-Svl.js +1 -0
  49. package/dist/src/compiled/_chunks/workflow/dist-Cz-ffHKC.js +65 -0
  50. package/dist/src/compiled/zod/index.js +32 -45
  51. package/dist/src/compiled/zod-validation-error/index.js +1 -1
  52. package/dist/src/compiler/extension-compatibility.d.ts +2 -2
  53. package/dist/src/compiler/extension-compatibility.js +1 -1
  54. package/dist/src/compiler/manifest.d.ts +7 -17
  55. package/dist/src/compiler/manifest.js +1 -1
  56. package/dist/src/compiler/normalize-manifest.js +1 -1
  57. package/dist/src/compiler/normalize-tool.d.ts +0 -1
  58. package/dist/src/compiler/normalize-tool.js +1 -1
  59. package/dist/src/context/build-dynamic-tools.d.ts +2 -2
  60. package/dist/src/context/build-dynamic-tools.js +1 -1
  61. package/dist/src/context/container.d.ts +7 -0
  62. package/dist/src/context/container.js +1 -1
  63. package/dist/src/context/dynamic-tool-lifecycle.d.ts +16 -9
  64. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  65. package/dist/src/context/dynamic-tool-metadata.d.ts +44 -0
  66. package/dist/src/context/dynamic-tool-metadata.js +1 -0
  67. package/dist/src/context/keys.d.ts +11 -14
  68. package/dist/src/context/keys.js +1 -1
  69. package/dist/src/eve-channel/index.js +1 -1
  70. package/dist/src/eve-channel/request.d.ts +0 -1
  71. package/dist/src/eve-channel/request.js +2 -2
  72. package/dist/src/execution/create-session-step.js +1 -1
  73. package/dist/src/execution/delegation-tool.d.ts +1 -2
  74. package/dist/src/execution/delegation-tool.js +1 -1
  75. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +8 -3
  76. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -1
  77. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  78. package/dist/src/execution/dispatch-workflow-runtime-actions-step.js +1 -1
  79. package/dist/src/execution/node-step.js +1 -1
  80. package/dist/src/execution/pending-turn-state.js +1 -1
  81. package/dist/src/execution/prepared-agent-action.d.ts +7 -0
  82. package/dist/src/execution/prepared-agent-action.js +1 -0
  83. package/dist/src/execution/subagent-start-local.d.ts +3 -0
  84. package/dist/src/execution/subagent-start-local.js +1 -1
  85. package/dist/src/execution/subagent-tool.d.ts +1 -0
  86. package/dist/src/execution/subagent-tool.js +1 -1
  87. package/dist/src/execution/tasks/child/update.d.ts +3 -2
  88. package/dist/src/execution/tasks/parent/control-shared.d.ts +5 -4
  89. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
  90. package/dist/src/execution/tasks/parent/dispatch.d.ts +4 -3
  91. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  92. package/dist/src/execution/tools/subagent/local.d.ts +3 -4
  93. package/dist/src/execution/tools/subagent/local.js +1 -1
  94. package/dist/src/execution/tools/subagent/remote.d.ts +4 -1
  95. package/dist/src/execution/tools/subagent/remote.js +1 -1
  96. package/dist/src/execution/workflow-entry-finalization.d.ts +22 -0
  97. package/dist/src/execution/workflow-entry-finalization.js +1 -0
  98. package/dist/src/execution/workflow-entry.d.ts +1 -1
  99. package/dist/src/execution/workflow-entry.js +1 -1
  100. package/dist/src/execution/workflow-steps.js +1 -1
  101. package/dist/src/framework/sources/registry.js +1 -1
  102. package/dist/src/harness/advertised-tools.d.ts +3 -5
  103. package/dist/src/harness/advertised-tools.js +1 -1
  104. package/dist/src/harness/approval-delivery-coordinator.d.ts +6 -0
  105. package/dist/src/harness/approval-delivery-coordinator.js +1 -1
  106. package/dist/src/harness/background-tools.d.ts +2 -0
  107. package/dist/src/harness/execute-tool.d.ts +2 -28
  108. package/dist/src/harness/hitl/pending-input-resolution.js +1 -1
  109. package/dist/src/harness/input-extraction.d.ts +3 -0
  110. package/dist/src/harness/input-extraction.js +1 -1
  111. package/dist/src/harness/input-requests.js +1 -1
  112. package/dist/src/harness/messages.js +1 -1
  113. package/dist/src/harness/runtime-actions.d.ts +9 -3
  114. package/dist/src/harness/runtime-actions.js +1 -1
  115. package/dist/src/harness/stale-input-responses.d.ts +2 -1
  116. package/dist/src/harness/stale-input-responses.js +1 -1
  117. package/dist/src/harness/subagent-depth.d.ts +3 -4
  118. package/dist/src/harness/subagent-depth.js +1 -1
  119. package/dist/src/harness/tool-loop.js +2 -2
  120. package/dist/src/harness/tools.d.ts +0 -2
  121. package/dist/src/harness/tools.js +1 -1
  122. package/dist/src/harness/types.d.ts +6 -7
  123. package/dist/src/harness/workflow-interrupt-state.d.ts +6 -0
  124. package/dist/src/harness/workflow-interrupt-state.js +1 -1
  125. package/dist/src/harness/workflow-lifecycle.d.ts +15 -5
  126. package/dist/src/harness/workflow-lifecycle.js +1 -1
  127. package/dist/src/harness/workflow-runtime-action-state.d.ts +5 -5
  128. package/dist/src/harness/workflow-runtime-action-state.js +1 -1
  129. package/dist/src/harness/workflow-sandbox.d.ts +1 -2
  130. package/dist/src/harness/workflow-sandbox.js +2 -2
  131. package/dist/src/harness/workflow-subagent-limit.d.ts +7 -17
  132. package/dist/src/harness/workflow-subagent-limit.js +1 -1
  133. package/dist/src/instrumentation/ai-sdk-telemetry.d.ts +1 -0
  134. package/dist/src/instrumentation/ai-sdk-telemetry.js +1 -1
  135. package/dist/src/instrumentation/runtime.d.ts +3 -0
  136. package/dist/src/instrumentation/runtime.js +1 -1
  137. package/dist/src/internal/application/build-output-environment.d.ts +2 -0
  138. package/dist/src/internal/application/build-output-environment.js +1 -0
  139. package/dist/src/internal/application/package.js +1 -1
  140. package/dist/src/internal/application/paths.d.ts +1 -2
  141. package/dist/src/internal/application/paths.js +1 -1
  142. package/dist/src/internal/authored-definition/schema-backed.d.ts +6 -2
  143. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  144. package/dist/src/internal/client-context.d.ts +2 -0
  145. package/dist/src/internal/client-context.js +1 -0
  146. package/dist/src/internal/nitro/dev-client-address.d.ts +2 -0
  147. package/dist/src/internal/nitro/dev-client-address.js +1 -1
  148. package/dist/src/internal/nitro/host/dev-authored-source-watcher.d.ts +2 -2
  149. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  150. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  151. package/dist/src/internal/nitro/host/workflow-sandbox-runtime-plugin.js +1 -1
  152. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  153. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  154. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/lib/schemas.js +1 -1
  155. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/aclaction.js +1 -1
  156. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/sdkvalidationerror.js +1 -1
  157. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/updateprojectblock.js +1 -1
  158. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/models/updateprojectprojectsbranchmatcher.js +1 -1
  159. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/types/primitives.js +1 -1
  160. package/dist/src/node_modules/.pnpm/@vercel_sdk@1.28.8/node_modules/@vercel/sdk/esm/types/smartUnion.js +1 -1
  161. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/index.js +1 -0
  162. package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/ZodError.js +1 -1
  163. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v3/types.js +1 -0
  164. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/checks.js +1 -0
  165. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/deep-partial.js +1 -0
  166. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/errors.js +1 -0
  167. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/external.js +1 -0
  168. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/from-json-schema.js +1 -0
  169. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/in-out.js +1 -0
  170. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/iso.js +1 -0
  171. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/parse.js +1 -0
  172. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/classic/schemas.js +1 -0
  173. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/api.js +1 -0
  174. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/checks.js +1 -0
  175. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/compile.js +2 -0
  176. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/core.js +1 -0
  177. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/doc.js +3 -0
  178. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/errors.js +2 -0
  179. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/index.js +1 -0
  180. package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/core/json-schema-generator.js +1 -1
  181. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/json-schema-processors.js +1 -0
  182. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/memoizer.js +1 -0
  183. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/parse.js +1 -0
  184. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/regexes.js +1 -0
  185. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/schemas.js +46 -0
  186. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/to-json-schema.js +3 -0
  187. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/util.js +1 -0
  188. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/versions.js +1 -0
  189. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/core/visit.js +1 -0
  190. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ar.js +1 -0
  191. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/az.js +1 -0
  192. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/be.js +1 -0
  193. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/bg.js +1 -0
  194. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/bn.js +1 -0
  195. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ca.js +1 -0
  196. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ckb.js +1 -0
  197. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/cs.js +1 -0
  198. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/da.js +1 -0
  199. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/de.js +1 -0
  200. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/el.js +1 -0
  201. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/en.js +1 -0
  202. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/eo.js +1 -0
  203. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/es.js +1 -0
  204. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/fa.js +1 -0
  205. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/fi.js +1 -0
  206. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/fr-CA.js +1 -0
  207. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/fr.js +1 -0
  208. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/gu.js +1 -0
  209. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/he.js +1 -0
  210. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/hi.js +1 -0
  211. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/hr.js +1 -0
  212. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/hu.js +1 -0
  213. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/hy.js +1 -0
  214. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/id.js +1 -0
  215. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/index.js +1 -0
  216. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/is.js +1 -0
  217. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/it.js +1 -0
  218. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ja.js +1 -0
  219. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ka.js +1 -0
  220. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/km.js +1 -0
  221. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/kn.js +1 -0
  222. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ko.js +1 -0
  223. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/lt.js +1 -0
  224. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/mk.js +1 -0
  225. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ms.js +1 -0
  226. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ne.js +1 -0
  227. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/nl.js +1 -0
  228. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/nn.js +1 -0
  229. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/no.js +1 -0
  230. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ota.js +1 -0
  231. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/pl.js +1 -0
  232. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ps.js +1 -0
  233. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/pt-BR.js +1 -0
  234. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/pt.js +1 -0
  235. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ro.js +1 -0
  236. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ru.js +1 -0
  237. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/sk.js +1 -0
  238. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/sl.js +1 -0
  239. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/sv.js +1 -0
  240. package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/locales/ta.js +1 -1
  241. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/th.js +1 -0
  242. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/tk.js +1 -0
  243. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/tr.js +1 -0
  244. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/uk.js +1 -0
  245. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/ur.js +1 -0
  246. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/uz.js +1 -0
  247. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/vi.js +1 -0
  248. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/yo.js +1 -0
  249. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/zh-CN.js +1 -0
  250. package/dist/src/node_modules/.pnpm/zod@4.5.4/node_modules/zod/v4/locales/zh-TW.js +1 -0
  251. package/dist/src/packages/eve-catalog/src/index.js +1 -1
  252. package/dist/src/protocol/routes.d.ts +2 -2
  253. package/dist/src/public/local-dev.d.ts +9 -0
  254. package/dist/src/public/local-dev.js +1 -0
  255. package/dist/src/public/next/vercel-output-config.js +1 -1
  256. package/dist/src/runtime/actions/keys.d.ts +3 -0
  257. package/dist/src/runtime/actions/keys.js +1 -1
  258. package/dist/src/runtime/agent/bootstrap.js +1 -1
  259. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  260. package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
  261. package/dist/src/runtime/local-dev-capability.d.ts +55 -0
  262. package/dist/src/runtime/local-dev-capability.js +1 -0
  263. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  264. package/dist/src/runtime/resolve-agent.js +1 -1
  265. package/dist/src/runtime/resolve-tool.js +1 -1
  266. package/dist/src/runtime/sessions/runtime-session.d.ts +1 -0
  267. package/dist/src/runtime/sessions/runtime-session.js +1 -1
  268. package/dist/src/runtime/sessions/turn.d.ts +3 -0
  269. package/dist/src/runtime/subagents/registry.js +1 -1
  270. package/dist/src/runtime/tools/registry.d.ts +1 -0
  271. package/dist/src/runtime/tools/registry.js +1 -1
  272. package/dist/src/runtime/types.d.ts +2 -2
  273. package/dist/src/services/dev-client/client-options.d.ts +1 -0
  274. package/dist/src/services/dev-client/client-options.js +1 -1
  275. package/dist/src/services/dev-client/request-headers.js +1 -1
  276. package/dist/src/services/dev-client/runtime-artifacts.d.ts +2 -0
  277. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  278. package/dist/src/setup/integrations/discord/api.js +1 -1
  279. package/dist/src/setup/integrations/discord/connect.js +1 -1
  280. package/dist/src/setup/integrations/github/connect.js +1 -1
  281. package/dist/src/setup/integrations/linear/connect.js +1 -1
  282. package/dist/src/setup/integrations/linq/connect.js +1 -1
  283. package/dist/src/setup/integrations/photon/connect.js +1 -1
  284. package/dist/src/setup/project-resolution.js +1 -1
  285. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  286. package/dist/src/setup/scaffold/create/extension.js +1 -1
  287. package/dist/src/setup/scaffold/create/project.js +2 -2
  288. package/dist/src/setup/scaffold/create/web-template.d.ts +1 -1
  289. package/dist/src/setup/scaffold/create/web-template.js +1 -1
  290. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  291. package/dist/src/setup/slack-connect.js +1 -1
  292. package/dist/src/setup/vercel-api-failure.js +1 -1
  293. package/dist/src/setup/vercel-deployment.js +1 -1
  294. package/dist/src/setup/vercel-project-api.js +1 -1
  295. package/dist/src/setup/vercel-project-framework.js +1 -1
  296. package/dist/src/setup/vercel-project.js +0 -0
  297. package/dist/src/shared/dispatch-action.d.ts +24 -0
  298. package/dist/src/shared/dispatch-action.js +1 -0
  299. package/dist/src/shared/input.js +1 -1
  300. package/dist/src/shared/workflow-sandbox.d.ts +11 -6
  301. package/dist/src/shared/workflow-sandbox.js +1 -1
  302. package/dist/src/svelte/index.js +1 -1
  303. package/dist/src/svelte/use-eve-agent.js +1 -1
  304. package/dist/src/tasks/json.js +1 -1
  305. package/dist/src/tools/behavior.d.ts +55 -0
  306. package/dist/src/tools/behavior.js +1 -0
  307. package/dist/src/tools/durable-callbacks.d.ts +1 -0
  308. package/dist/src/tools/framework/agent.d.ts +2 -11
  309. package/dist/src/tools/framework/agent.js +1 -1
  310. package/dist/src/tools/framework/ask-question.d.ts +2 -14
  311. package/dist/src/tools/framework/ask-question.js +1 -1
  312. package/dist/src/tools/framework/task-cancel.d.ts +2 -7
  313. package/dist/src/tools/framework/task-cancel.js +1 -1
  314. package/dist/src/tools/framework/task-contract.d.ts +0 -2
  315. package/dist/src/tools/framework/task-contract.js +1 -1
  316. package/dist/src/tools/framework/task-update.d.ts +2 -7
  317. package/dist/src/tools/framework/task-update.js +1 -1
  318. package/dist/src/tools/native-definition.d.ts +6 -0
  319. package/dist/src/tools/native-definition.js +1 -0
  320. package/dist/src/tools/provided/load-skill.js +1 -1
  321. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  322. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  323. package/dist/src/tracing/agent-otel-provider.js +1 -1
  324. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  325. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  326. package/dist/src/tracing/otel-registration.d.ts +2 -0
  327. package/dist/src/tracing/otel-registration.js +1 -1
  328. package/dist/src/vue/index.js +1 -1
  329. package/dist/src/vue/use-eve-agent.js +1 -1
  330. package/docs/reference/typescript-api.md +24 -0
  331. package/package.json +11 -5
  332. package/dist/src/compiled/_chunks/client/errors-C14fPFvs.js +0 -2
  333. package/dist/src/compiled/_chunks/node/auth-DpzFWvTn.js +0 -2
  334. package/dist/src/compiled/_chunks/node/auth-QgeX8nBM.js +0 -2
  335. package/dist/src/compiled/_chunks/node/compat-Dm2n85Mx.js +0 -1
  336. package/dist/src/compiled/_chunks/node/schemas-DtQwuPdM.js +0 -65
  337. package/dist/src/compiled/_chunks/node/xdg-app-paths-Bys8q02u.js +0 -1
  338. package/dist/src/compiled/_chunks/workflow/dist-eUxFublw.js +0 -77
  339. package/dist/src/compiled/experimental-ai-sdk-code-mode/LICENSE +0 -21
  340. package/dist/src/compiled/experimental-ai-sdk-code-mode/approval-continuation.d.ts +0 -71
  341. package/dist/src/compiled/experimental-ai-sdk-code-mode/approval.d.ts +0 -32
  342. package/dist/src/compiled/experimental-ai-sdk-code-mode/code-mode-tool.d.ts +0 -16
  343. package/dist/src/compiled/experimental-ai-sdk-code-mode/continuation-capability.d.ts +0 -44
  344. package/dist/src/compiled/experimental-ai-sdk-code-mode/errors.d.ts +0 -114
  345. package/dist/src/compiled/experimental-ai-sdk-code-mode/fetch-policy.d.ts +0 -21
  346. package/dist/src/compiled/experimental-ai-sdk-code-mode/host-interrupt.d.ts +0 -25
  347. package/dist/src/compiled/experimental-ai-sdk-code-mode/index.d.ts +0 -11
  348. package/dist/src/compiled/experimental-ai-sdk-code-mode/index.js +0 -419
  349. package/dist/src/compiled/experimental-ai-sdk-code-mode/interrupt-continuation.d.ts +0 -32
  350. package/dist/src/compiled/experimental-ai-sdk-code-mode/options.d.ts +0 -3
  351. package/dist/src/compiled/experimental-ai-sdk-code-mode/run-code-mode.d.ts +0 -12
  352. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/guest-sources.d.ts +0 -3
  353. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/manager.d.ts +0 -22
  354. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/max-workers.d.ts +0 -20
  355. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/protocol.d.ts +0 -60
  356. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/worker-source.d.ts +0 -11
  357. package/dist/src/compiled/experimental-ai-sdk-code-mode/serialization.d.ts +0 -5
  358. package/dist/src/compiled/experimental-ai-sdk-code-mode/source-cache.d.ts +0 -11
  359. package/dist/src/compiled/experimental-ai-sdk-code-mode/telemetry.d.ts +0 -20
  360. package/dist/src/compiled/experimental-ai-sdk-code-mode/tool-invocation.d.ts +0 -24
  361. package/dist/src/compiled/experimental-ai-sdk-code-mode/tool-prompt.d.ts +0 -3
  362. package/dist/src/compiled/experimental-ai-sdk-code-mode/types.d.ts +0 -828
  363. package/dist/src/execution/tools/tasks.d.ts +0 -18
  364. package/dist/src/execution/tools/tasks.js +0 -1
  365. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.js +0 -1
  366. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/types.js +0 -1
  367. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.js +0 -1
  368. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js +0 -1
  369. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js +0 -1
  370. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.js +0 -1
  371. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js +0 -1
  372. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js +0 -1
  373. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js +0 -1
  374. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js +0 -1
  375. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js +0 -1
  376. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js +0 -1
  377. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js +0 -3
  378. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js +0 -2
  379. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.js +0 -1
  380. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js +0 -1
  381. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js +0 -1
  382. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js +0 -1
  383. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js +0 -60
  384. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js +0 -3
  385. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js +0 -1
  386. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js +0 -1
  387. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.js +0 -1
  388. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/az.js +0 -1
  389. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/be.js +0 -1
  390. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/bg.js +0 -1
  391. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ca.js +0 -1
  392. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/cs.js +0 -1
  393. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/da.js +0 -1
  394. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/de.js +0 -1
  395. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/el.js +0 -1
  396. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/en.js +0 -1
  397. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/eo.js +0 -1
  398. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/es.js +0 -1
  399. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fa.js +0 -1
  400. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fi.js +0 -1
  401. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr-CA.js +0 -1
  402. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr.js +0 -1
  403. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/he.js +0 -1
  404. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hr.js +0 -1
  405. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hu.js +0 -1
  406. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hy.js +0 -1
  407. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/id.js +0 -1
  408. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.js +0 -1
  409. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/is.js +0 -1
  410. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/it.js +0 -1
  411. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ja.js +0 -1
  412. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ka.js +0 -1
  413. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/km.js +0 -1
  414. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ko.js +0 -1
  415. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.js +0 -1
  416. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/mk.js +0 -1
  417. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ms.js +0 -1
  418. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/nl.js +0 -1
  419. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/no.js +0 -1
  420. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ota.js +0 -1
  421. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pl.js +0 -1
  422. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ps.js +0 -1
  423. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pt.js +0 -1
  424. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ro.js +0 -1
  425. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ru.js +0 -1
  426. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sl.js +0 -1
  427. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sv.js +0 -1
  428. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/th.js +0 -1
  429. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/tr.js +0 -1
  430. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uk.js +0 -1
  431. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ur.js +0 -1
  432. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uz.js +0 -1
  433. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/vi.js +0 -1
  434. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/yo.js +0 -1
  435. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-CN.js +0 -1
  436. package/dist/src/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-TW.js +0 -1
  437. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/errors.js +0 -0
  438. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/external.js +0 -0
  439. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/helpers/errorUtil.js +0 -0
  440. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/helpers/parseUtil.js +0 -0
  441. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/helpers/typeAliases.js +0 -0
  442. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/helpers/util.js +0 -0
  443. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/index.js +0 -0
  444. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v3/locales/en.js +0 -0
  445. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/classic/coerce.js +0 -0
  446. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/classic/compat.js +0 -0
  447. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/core/json-schema.js +0 -0
  448. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/core/registries.js +0 -0
  449. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/locales/kh.js +0 -0
  450. /package/dist/src/node_modules/.pnpm/{zod@4.4.3 → zod@4.5.4}/node_modules/zod/v4/locales/ua.js +0 -0
@@ -1,11 +1,11 @@
1
- import{AISDKError as e,InvalidArgumentError as t,TooManyEmbeddingValuesForCallError as n,UnsupportedFunctionalityError as r}from"../provider/index.js";import{$ as i,A as a,Ct as o,D as s,E as c,Et as l,F as u,G as d,I as f,J as p,M as m,N as h,O as g,Ot as _,R as v,St as y,T as b,Tt as x,U as S,Y as C,Z as w,_t as T,bt as E,c as D,ct as O,et as k,f as A,ft as j,g as M,ht as N,i as ee,k as P,kt as F,lt as I,m as L,o as te,ot as ne,p as re,q as R,r as z,s as ie,st as ae,u as oe,w as B,x as V,xt as H,y as U,z as se}from"../../_chunks/workflow/dist-eUxFublw.js";import{n as W,t as G}from"../../_chunks/workflow/dist-DsNhwdzf.js";var ce=`4.0.39`,K=re({errorSchema:u(()=>I(o({error:o({code:y().nullable(),message:l(),status:l()})}))),errorToMessage:e=>e.error.message}),le=_([o({text:l()}),o({inlineData:o({mimeType:l(),data:l()})}),o({fileData:o({fileUri:l(),mimeType:l()})})]),ue=u(()=>I(o({outputDimensionality:y().optional(),taskType:j([`SEMANTIC_SIMILARITY`,`CLASSIFICATION`,`CLUSTERING`,`RETRIEVAL_DOCUMENT`,`RETRIEVAL_QUERY`,`QUESTION_ANSWERING`,`FACT_VERIFICATION`,`CODE_RETRIEVAL_QUERY`]).optional(),content:N(N(le).min(1).nullable()).optional()}))),de=class e{constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=100,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}static[W](e){return k({modelId:e.modelId,config:e.config})}static[G](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:i}){let a=await S({provider:`google`,providerOptions:i,schema:ue});if(e.length>this.maxEmbeddingsPerCall)throw new n({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let o=z(this.config.headers?await R(this.config.headers):void 0,t),s=a?.content;if(s!=null&&s.length!==e.length)throw Error(`The number of multimodal content entries (${s.length}) must match the number of values (${e.length}).`);if(e.length===1){let t=s?.[0],n=e[0]?[{text:e[0]}]:[],i=t==null?[{text:e[0]}]:[...n,...t],{responseHeaders:c,value:l,rawValue:u}=await d({url:`${this.config.baseURL}/models/${this.modelId}:embedContent`,headers:o,body:{model:`models/${this.modelId}`,content:{parts:i},outputDimensionality:a?.outputDimensionality,taskType:a?.taskType},failedResponseHandler:K,successfulResponseHandler:L(pe),abortSignal:r,fetch:this.config.fetch});return{warnings:[],embeddings:[l.embedding.values],usage:void 0,response:{headers:c,body:u}}}let{responseHeaders:c,value:l,rawValue:u}=await d({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:o,body:{requests:e.map((e,t)=>{let n=s?.[t],r=e?[{text:e}]:[];return{model:`models/${this.modelId}`,content:{role:`user`,parts:n==null?[{text:e}]:[...r,...n]},outputDimensionality:a?.outputDimensionality,taskType:a?.taskType}})},failedResponseHandler:K,successfulResponseHandler:L(fe),abortSignal:r,fetch:this.config.fetch});return{warnings:[],embeddings:l.embeddings.map(e=>e.values),usage:void 0,response:{headers:c,body:u}}}},fe=u(()=>I(o({embeddings:N(o({values:N(y())}))}))),pe=u(()=>I(o({embedding:o({values:N(y())})})));function me(e){if(e==null)return M();let t=e.promptTokenCount??0,n=e.candidatesTokenCount??0,r=e.cachedContentTokenCount??0,i=e.thoughtsTokenCount??0;return{inputTokens:{total:t,noCache:t-r,cacheRead:r,cacheWrite:void 0},outputTokens:{total:n+i,text:n,reasoning:i},raw:e}}function q(e,t=!0){if(e==null)return;if(he(e))return t?void 0:typeof e==`object`&&e.description?{type:`object`,description:e.description}:{type:`object`};if(typeof e==`boolean`)return{type:`boolean`,properties:{}};let{type:n,description:r,required:i,properties:a,items:o,allOf:s,anyOf:c,oneOf:l,format:u,const:d,minLength:f,enum:p}=e,m={};if(r&&(m.description=r),i&&(m.required=i),u&&(m.format=u),d!==void 0&&(m.enum=[d]),n)if(Array.isArray(n)){let e=n.includes(`null`),t=n.filter(e=>e!==`null`);t.length===0?m.type=`null`:(m.anyOf=t.map(e=>({type:e})),e&&(m.nullable=!0))}else m.type=n;if(p!==void 0&&(m.enum=p),a!=null&&(m.properties=Object.entries(a).reduce((e,[t,n])=>(e[t]=q(n,!1),e),{})),o&&(m.items=Array.isArray(o)?o.map(e=>q(e,!1)):q(o,!1)),s&&(m.allOf=s.map(e=>q(e,!1))),c)if(c.some(e=>typeof e==`object`&&e?.type===`null`)){let e=c.filter(e=>!(typeof e==`object`&&e?.type===`null`));if(e.length===1){let t=q(e[0],!1);typeof t==`object`&&(m.nullable=!0,Object.assign(m,t))}else m.anyOf=e.map(e=>q(e,!1)),m.nullable=!0}else m.anyOf=c.map(e=>q(e,!1));return l&&(m.oneOf=l.map(e=>q(e,!1))),f!==void 0&&(m.minLength=f),m}function he(e){return typeof e==`object`&&!!e&&e.type===`object`&&(e.properties==null||Object.keys(e.properties).length===0)&&!e.additionalProperties}var ge=`skip_thought_signature_validator`,_e=/^data:([^;,]+);base64,(.+)$/s;function ve(e){let t=_e.exec(e);if(t!=null)return{mediaType:t[1],data:t[2]}}function ye(e){let t=ve(e);if(t!=null)return{inlineData:{mimeType:t.mediaType,data:t.data}}}function be(e,t,n,r,i=!0){let a=[],o=[];for(let e of n)switch(e.type){case`text`:o.push(e.text);break;case`file`:if(e.data.type===`data`)a.push({inlineData:{mimeType:p({part:e}),data:D(e.data.data)}});else if(e.data.type===`url`){let t=ye(e.data.url.toString());t==null?o.push(JSON.stringify(e)):a.push(t)}else o.push(JSON.stringify(e));break;default:o.push(JSON.stringify(e));break}e.push({functionResponse:{...i&&r!=null?{id:r}:{},name:t,response:{name:t,content:o.length>0?o.join(`
2
- `):`Tool executed successfully.`},...a.length>0?{parts:a}:{}}})}function xe(e,t,n,r,i=!0){for(let a of n)switch(a.type){case`text`:e.push({functionResponse:{...i&&r!=null?{id:r}:{},name:t,response:{name:t,content:a.text}}});break;case`file`:if(a.data.type===`data`){let t=s(a.mediaType);e.push({inlineData:{mimeType:p({part:a}),data:D(a.data.data)}},{text:`Tool executed successfully and returned this ${t===`image`?`image`:`file`} as a response`})}else e.push({text:JSON.stringify(a)});break;default:e.push({text:JSON.stringify(a)});break}}function Se(e,t){let n=[],o=[],s=!0,c=t?.isGemmaModel??!1,l=t?.isGemini3Model??!1,u=t?.onWarning,d=t?.providerOptionsNames??[`google`],f=!d.includes(`google`),m=t?.supportsFunctionResponseParts??!0,h=t?.includeFunctionCallIds??!0,g=!1,_=[],v=e=>(_.push(e),g=!0,ge),y=e=>{for(let t of d){let n=e.providerOptions?.[t];if(n!=null)return n}return f?e.providerOptions?.google:e.providerOptions?.googleVertex??e.providerOptions?.vertex};for(let{role:t,content:c}of e)switch(t){case`system`:if(!s)throw new r({functionality:`system messages are only supported at the beginning of the conversation`});n.push({text:c});break;case`user`:{s=!1;let e=[];for(let t of c)switch(t.type){case`text`:e.push({text:t.text});break;case`file`:switch(t.data.type){case`url`:e.push({fileData:{mimeType:p({part:t}),fileUri:t.data.url.toString()}});break;case`reference`:if(f)throw new r({functionality:`file parts with provider references`});e.push({fileData:{mimeType:p({part:t}),fileUri:C({reference:t.data.reference,provider:`google`})}});break;case`text`:e.push({inlineData:{mimeType:a(t.mediaType)?t.mediaType:`text/plain`,data:D(new TextEncoder().encode(t.data.text))}});break;case`data`:e.push({inlineData:{mimeType:p({part:t}),data:D(t.data.data)}});break}break}o.push({role:`user`,parts:e});break}case`assistant`:{s=!1;let e=!1;o.push({role:`model`,parts:c.map(t=>{let n=y(t),o=n?.thoughtSignature==null?void 0:String(n.thoughtSignature);switch(t.type){case`text`:return t.text.length===0?void 0:{text:t.text,thoughtSignature:o};case`reasoning`:return t.text.length===0?void 0:{text:t.text,thought:!0,thoughtSignature:o};case`reasoning-file`:switch(t.data.type){case`url`:throw new r({functionality:`File data URLs in assistant messages are not supported`});case`data`:return{inlineData:{mimeType:t.mediaType,data:D(t.data.data)},thought:!0,thoughtSignature:o}}break;case`file`:switch(t.data.type){case`url`:throw new r({functionality:`File data URLs in assistant messages are not supported`});case`reference`:if(f)throw new r({functionality:`file parts with provider references`});return{fileData:{mimeType:t.mediaType,fileUri:C({reference:t.data.reference,provider:`google`})},...n?.thought===!0?{thought:!0}:{},thoughtSignature:o};case`text`:return{inlineData:{mimeType:a(t.mediaType)?t.mediaType:`text/plain`,data:D(new TextEncoder().encode(t.data.text))},...n?.thought===!0?{thought:!0}:{},thoughtSignature:o};case`data`:return{inlineData:{mimeType:t.mediaType,data:D(t.data.data)},...n?.thought===!0?{thought:!0}:{},thoughtSignature:o}}break;case`tool-call`:{let r=n?.serverToolCallId==null?void 0:String(n.serverToolCallId),a=n?.serverToolType==null?void 0:String(n.serverToolType),s=r!=null&&a!=null,c=o??(l&&!(!s&&o==null&&e)?v(t.toolName):void 0);return!s&&o!=null&&(e=!0),s?{toolCall:{toolType:a,args:typeof t.input==`string`?i(t.input):t.input,id:r},thoughtSignature:c}:{functionCall:{...h&&t.toolCallId!=null?{id:t.toolCallId}:{},name:t.toolName,args:t.input},thoughtSignature:c}}case`tool-result`:{let e=n?.serverToolCallId==null?void 0:String(n.serverToolCallId),r=n?.serverToolType==null?void 0:String(n.serverToolType);return e&&r?{toolResponse:{toolType:r,response:t.output.type===`json`?t.output.value:{},id:e},thoughtSignature:o}:void 0}}}).filter(e=>e!==void 0)});break}case`tool`:{s=!1;let e=[];for(let t of c){if(t.type===`tool-approval-response`)continue;let n=y(t),r=n?.serverToolCallId==null?void 0:String(n.serverToolCallId),i=n?.serverToolType==null?void 0:String(n.serverToolType);if(r&&i){let e=n?.thoughtSignature==null?void 0:String(n.thoughtSignature);if(o.length>0){let n=o[o.length-1];if(n.role===`model`){n.parts.push({toolResponse:{toolType:i,response:t.output.type===`json`?t.output.value:{},id:r},thoughtSignature:e});continue}}}let a=t.output;a.type===`content`?m?be(e,t.toolName,a.value,t.toolCallId,h):xe(e,t.toolName,a.value,t.toolCallId,h):e.push({functionResponse:{...h&&t.toolCallId!=null?{id:t.toolCallId}:{},name:t.toolName,response:{name:t.toolName,content:a.type===`execution-denied`?a.reason??`Tool call execution denied.`:a.value}}})}o.push({role:`user`,parts:e});break}}if(c&&n.length>0&&o.length>0&&o[0].role===`user`){let e=n.map(e=>e.text).join(`
1
+ import{$ as e,A as t,Bt as n,Ct as r,D as i,E as a,Et as o,F as s,Ft as c,G as l,I as u,J as d,M as f,Mt as p,N as m,O as h,Ot as g,R as _,St as v,T as y,Tt as b,U as x,Y as S,Z as C,_t as w,bt as T,c as E,ct as D,et as O,f as k,ft as A,g as j,ht as M,i as ee,k as N,kt as P,lt as F,m as I,o as te,ot as ne,p as re,q as L,r as R,s as ie,st as ae,u as oe,w as z,x as B,xt as V,y as H,z as se,zt as ce}from"../../_chunks/workflow/dist-Cz-ffHKC.js";import{n as U,t as W}from"../../_chunks/workflow/dist-DsNhwdzf.js";var le=`4.0.39`,G=re({errorSchema:s(()=>F(r({error:r({code:v().nullable(),message:o(),status:o()})}))),errorToMessage:e=>e.error.message}),ue=g([r({text:o()}),r({inlineData:r({mimeType:o(),data:o()})}),r({fileData:r({fileUri:o(),mimeType:o()})})]),de=s(()=>F(r({outputDimensionality:v().optional(),taskType:A([`SEMANTIC_SIMILARITY`,`CLASSIFICATION`,`CLUSTERING`,`RETRIEVAL_DOCUMENT`,`RETRIEVAL_QUERY`,`QUESTION_ANSWERING`,`FACT_VERIFICATION`,`CODE_RETRIEVAL_QUERY`]).optional(),content:M(M(ue).min(1).nullable()).optional()}))),fe=class e{constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=100,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}static[U](e){return O({modelId:e.modelId,config:e.config})}static[W](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:n,providerOptions:r}){let i=await x({provider:`google`,providerOptions:r,schema:de});if(e.length>this.maxEmbeddingsPerCall)throw new ce({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let a=R(this.config.headers?await L(this.config.headers):void 0,t),o=i?.content;if(o!=null&&o.length!==e.length)throw Error(`The number of multimodal content entries (${o.length}) must match the number of values (${e.length}).`);if(e.length===1){let t=o?.[0],r=e[0]?[{text:e[0]}]:[],s=t==null?[{text:e[0]}]:[...r,...t],{responseHeaders:c,value:u,rawValue:d}=await l({url:`${this.config.baseURL}/models/${this.modelId}:embedContent`,headers:a,body:{model:`models/${this.modelId}`,content:{parts:s},outputDimensionality:i?.outputDimensionality,taskType:i?.taskType},failedResponseHandler:G,successfulResponseHandler:I(me),abortSignal:n,fetch:this.config.fetch});return{warnings:[],embeddings:[u.embedding.values],usage:void 0,response:{headers:c,body:d}}}let{responseHeaders:s,value:c,rawValue:u}=await l({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:a,body:{requests:e.map((e,t)=>{let n=o?.[t],r=e?[{text:e}]:[];return{model:`models/${this.modelId}`,content:{role:`user`,parts:n==null?[{text:e}]:[...r,...n]},outputDimensionality:i?.outputDimensionality,taskType:i?.taskType}})},failedResponseHandler:G,successfulResponseHandler:I(pe),abortSignal:n,fetch:this.config.fetch});return{warnings:[],embeddings:c.embeddings.map(e=>e.values),usage:void 0,response:{headers:s,body:u}}}},pe=s(()=>F(r({embeddings:M(r({values:M(v())}))}))),me=s(()=>F(r({embedding:r({values:M(v())})})));function he(e){if(e==null)return j();let t=e.promptTokenCount??0,n=e.candidatesTokenCount??0,r=e.cachedContentTokenCount??0,i=e.thoughtsTokenCount??0;return{inputTokens:{total:t,noCache:t-r,cacheRead:r,cacheWrite:void 0},outputTokens:{total:n+i,text:n,reasoning:i},raw:e}}function K(e,t=!0){if(e==null)return;if(ge(e))return t?void 0:typeof e==`object`&&e.description?{type:`object`,description:e.description}:{type:`object`};if(typeof e==`boolean`)return{type:`boolean`,properties:{}};let{type:n,description:r,required:i,properties:a,items:o,allOf:s,anyOf:c,oneOf:l,format:u,const:d,minLength:f,enum:p}=e,m={};if(r&&(m.description=r),i&&(m.required=i),u&&(m.format=u),d!==void 0&&(m.enum=[d]),n)if(Array.isArray(n)){let e=n.includes(`null`),t=n.filter(e=>e!==`null`);t.length===0?m.type=`null`:(m.anyOf=t.map(e=>({type:e})),e&&(m.nullable=!0))}else m.type=n;if(p!==void 0&&(m.enum=p),a!=null&&(m.properties=Object.entries(a).reduce((e,[t,n])=>(e[t]=K(n,!1),e),{})),o&&(m.items=Array.isArray(o)?o.map(e=>K(e,!1)):K(o,!1)),s&&(m.allOf=s.map(e=>K(e,!1))),c)if(c.some(e=>typeof e==`object`&&e?.type===`null`)){let e=c.filter(e=>!(typeof e==`object`&&e?.type===`null`));if(e.length===1){let t=K(e[0],!1);typeof t==`object`&&(m.nullable=!0,Object.assign(m,t))}else m.anyOf=e.map(e=>K(e,!1)),m.nullable=!0}else m.anyOf=c.map(e=>K(e,!1));return l&&(m.oneOf=l.map(e=>K(e,!1))),f!==void 0&&(m.minLength=f),m}function ge(e){return typeof e==`object`&&!!e&&e.type===`object`&&(e.properties==null||Object.keys(e.properties).length===0)&&!e.additionalProperties}var _e=`skip_thought_signature_validator`,ve=/^data:([^;,]+);base64,(.+)$/s;function ye(e){let t=ve.exec(e);if(t!=null)return{mediaType:t[1],data:t[2]}}function be(e){let t=ye(e);if(t!=null)return{inlineData:{mimeType:t.mediaType,data:t.data}}}function xe(e,t,n,r,i=!0){let a=[],o=[];for(let e of n)switch(e.type){case`text`:o.push(e.text);break;case`file`:if(e.data.type===`data`)a.push({inlineData:{mimeType:d({part:e}),data:E(e.data.data)}});else if(e.data.type===`url`){let t=be(e.data.url.toString());t==null?o.push(JSON.stringify(e)):a.push(t)}else o.push(JSON.stringify(e));break;default:o.push(JSON.stringify(e));break}e.push({functionResponse:{...i&&r!=null?{id:r}:{},name:t,response:{name:t,content:o.length>0?o.join(`
2
+ `):`Tool executed successfully.`},...a.length>0?{parts:a}:{}}})}function Se(e,t,n,r,a=!0){for(let o of n)switch(o.type){case`text`:e.push({functionResponse:{...a&&r!=null?{id:r}:{},name:t,response:{name:t,content:o.text}}});break;case`file`:if(o.data.type===`data`){let t=i(o.mediaType);e.push({inlineData:{mimeType:d({part:o}),data:E(o.data.data)}},{text:`Tool executed successfully and returned this ${t===`image`?`image`:`file`} as a response`})}else e.push({text:JSON.stringify(o)});break;default:e.push({text:JSON.stringify(o)});break}}function Ce(r,i){let a=[],o=[],s=!0,c=i?.isGemmaModel??!1,l=i?.isGemini3Model??!1,u=i?.onWarning,f=i?.providerOptionsNames??[`google`],p=!f.includes(`google`),m=i?.supportsFunctionResponseParts??!0,h=i?.includeFunctionCallIds??!0,g=!1,_=[],v=e=>(_.push(e),g=!0,_e),y=e=>{for(let t of f){let n=e.providerOptions?.[t];if(n!=null)return n}return p?e.providerOptions?.google:e.providerOptions?.googleVertex??e.providerOptions?.vertex};for(let{role:i,content:c}of r)switch(i){case`system`:if(!s)throw new n({functionality:`system messages are only supported at the beginning of the conversation`});a.push({text:c});break;case`user`:{s=!1;let e=[];for(let r of c)switch(r.type){case`text`:e.push({text:r.text});break;case`file`:switch(r.data.type){case`url`:e.push({fileData:{mimeType:d({part:r}),fileUri:r.data.url.toString()}});break;case`reference`:if(p)throw new n({functionality:`file parts with provider references`});e.push({fileData:{mimeType:d({part:r}),fileUri:S({reference:r.data.reference,provider:`google`})}});break;case`text`:e.push({inlineData:{mimeType:t(r.mediaType)?r.mediaType:`text/plain`,data:E(new TextEncoder().encode(r.data.text))}});break;case`data`:e.push({inlineData:{mimeType:d({part:r}),data:E(r.data.data)}});break}break}o.push({role:`user`,parts:e});break}case`assistant`:{s=!1;let r=!1;o.push({role:`model`,parts:c.map(i=>{let a=y(i),o=a?.thoughtSignature==null?void 0:String(a.thoughtSignature);switch(i.type){case`text`:return i.text.length===0?void 0:{text:i.text,thoughtSignature:o};case`reasoning`:return i.text.length===0?void 0:{text:i.text,thought:!0,thoughtSignature:o};case`reasoning-file`:switch(i.data.type){case`url`:throw new n({functionality:`File data URLs in assistant messages are not supported`});case`data`:return{inlineData:{mimeType:i.mediaType,data:E(i.data.data)},thought:!0,thoughtSignature:o}}break;case`file`:switch(i.data.type){case`url`:throw new n({functionality:`File data URLs in assistant messages are not supported`});case`reference`:if(p)throw new n({functionality:`file parts with provider references`});return{fileData:{mimeType:i.mediaType,fileUri:S({reference:i.data.reference,provider:`google`})},...a?.thought===!0?{thought:!0}:{},thoughtSignature:o};case`text`:return{inlineData:{mimeType:t(i.mediaType)?i.mediaType:`text/plain`,data:E(new TextEncoder().encode(i.data.text))},...a?.thought===!0?{thought:!0}:{},thoughtSignature:o};case`data`:return{inlineData:{mimeType:i.mediaType,data:E(i.data.data)},...a?.thought===!0?{thought:!0}:{},thoughtSignature:o}}break;case`tool-call`:{let t=a?.serverToolCallId==null?void 0:String(a.serverToolCallId),n=a?.serverToolType==null?void 0:String(a.serverToolType),s=t!=null&&n!=null,c=o??(l&&!(!s&&o==null&&r)?v(i.toolName):void 0);return!s&&o!=null&&(r=!0),s?{toolCall:{toolType:n,args:typeof i.input==`string`?e(i.input):i.input,id:t},thoughtSignature:c}:{functionCall:{...h&&i.toolCallId!=null?{id:i.toolCallId}:{},name:i.toolName,args:i.input},thoughtSignature:c}}case`tool-result`:{let e=a?.serverToolCallId==null?void 0:String(a.serverToolCallId),t=a?.serverToolType==null?void 0:String(a.serverToolType);return e&&t?{toolResponse:{toolType:t,response:i.output.type===`json`?i.output.value:{},id:e},thoughtSignature:o}:void 0}}}).filter(e=>e!==void 0)});break}case`tool`:{s=!1;let e=[];for(let t of c){if(t.type===`tool-approval-response`)continue;let n=y(t),r=n?.serverToolCallId==null?void 0:String(n.serverToolCallId),i=n?.serverToolType==null?void 0:String(n.serverToolType);if(r&&i){let e=n?.thoughtSignature==null?void 0:String(n.thoughtSignature);if(o.length>0){let n=o[o.length-1];if(n.role===`model`){n.parts.push({toolResponse:{toolType:i,response:t.output.type===`json`?t.output.value:{},id:r},thoughtSignature:e});continue}}}let a=t.output;a.type===`content`?m?xe(e,t.toolName,a.value,t.toolCallId,h):Se(e,t.toolName,a.value,t.toolCallId,h):e.push({functionResponse:{...h&&t.toolCallId!=null?{id:t.toolCallId}:{},name:t.toolName,response:{name:t.toolName,content:a.type===`execution-denied`?a.reason??`Tool call execution denied.`:a.value}}})}o.push({role:`user`,parts:e});break}}if(c&&a.length>0&&o.length>0&&o[0].role===`user`){let e=a.map(e=>e.text).join(`
3
3
 
4
4
  `);o[0].parts.unshift({text:e+`
5
5
 
6
- `})}if(g&&u!=null){let e=Array.from(new Set(_));u({type:`other`,message:`Replayed ${_.length} \`functionCall\` part(s) for a Gemini 3 model without a \`thoughtSignature\` (tools: ${e.map(e=>`\`${e}\``).join(`, `)}). Injected the documented \`skip_thought_signature_validator\` sentinel to keep the request from failing with HTTP 400. The likely cause is application code that drops \`providerOptions.google.thoughtSignature\` when persisting or serializing assistant tool-call messages. See https://ai.google.dev/gemini-api/docs/thought-signatures.`})}return{systemInstruction:n.length>0&&!c?{parts:n}:void 0,contents:o}}function J(e){return e.includes(`/`)?e:`models/${e}`}var Ce=u(()=>I(o({responseModalities:N(j([`TEXT`,`IMAGE`])).optional(),thinkingConfig:o({thinkingBudget:y().optional(),includeThoughts:T().optional(),thinkingLevel:j([`minimal`,`low`,`medium`,`high`]).optional()}).optional(),cachedContent:l().optional(),structuredOutputs:T().optional(),safetySettings:N(o({category:j([`HARM_CATEGORY_UNSPECIFIED`,`HARM_CATEGORY_HATE_SPEECH`,`HARM_CATEGORY_DANGEROUS_CONTENT`,`HARM_CATEGORY_HARASSMENT`,`HARM_CATEGORY_SEXUALLY_EXPLICIT`,`HARM_CATEGORY_CIVIC_INTEGRITY`]),threshold:j([`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,`BLOCK_LOW_AND_ABOVE`,`BLOCK_MEDIUM_AND_ABOVE`,`BLOCK_ONLY_HIGH`,`BLOCK_NONE`,`OFF`])})).optional(),threshold:j([`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,`BLOCK_LOW_AND_ABOVE`,`BLOCK_MEDIUM_AND_ABOVE`,`BLOCK_ONLY_HIGH`,`BLOCK_NONE`,`OFF`]).optional(),audioTimestamp:T().optional(),labels:x(l(),l()).optional(),mediaResolution:j([`MEDIA_RESOLUTION_UNSPECIFIED`,`MEDIA_RESOLUTION_LOW`,`MEDIA_RESOLUTION_MEDIUM`,`MEDIA_RESOLUTION_HIGH`]).optional(),imageConfig:o({aspectRatio:j([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).optional(),imageSize:j([`1K`,`2K`,`4K`,`512`]).optional(),personGeneration:j([`PERSON_GENERATION_UNSPECIFIED`,`ALLOW_ALL`,`ALLOW_ADULT`,`ALLOW_NONE`]).optional(),prominentPeople:j([`PROMINENT_PEOPLE_UNSPECIFIED`,`ALLOW_PROMINENT_PEOPLE`,`BLOCK_PROMINENT_PEOPLE`]).optional(),imageOutputOptions:o({mimeType:j([`image/jpeg`,`image/png`]).optional(),compressionQuality:y().optional()}).optional()}).optional(),retrievalConfig:o({latLng:o({latitude:y(),longitude:y()}).optional()}).optional(),streamFunctionCallArguments:T().optional(),serviceTier:j([`standard`,`flex`,`priority`]).optional(),sharedRequestType:j([`priority`,`flex`,`standard`]).optional(),requestType:j([`shared`]).optional()}))),we=/(^|\/)gemini-1(?:[.-]|$)/i,Te=/(^|\/)gemini-2(?:[.-]|$)/i,Ee=/(^|\/)gemini-2\.5(?:[.-]|$)/i,De=/(^|\/)gemini-/i;function Oe(e){return we.test(e)||/(^|\/)gemini-pro(?:-vision)?$/i.test(e)||/(^|\/)gemini-robotics-er-1\.5(?:[.-]|$)/i.test(e)}function ke(e){let t=De.test(e),n=Te.test(e),r=Oe(e),i=t&&!(r||n);return{supportsGemini2Tools:t&&!r||e.toLowerCase().includes(`nano-banana`),supportsFileSearch:Ee.test(e)||i,usesGemini3Features:i}}function Ae({tools:e,toolChoice:t,modelId:n,isVertexProvider:i=!1}){e=e?.length?e:void 0;let a=[],{supportsGemini2Tools:o,supportsFileSearch:s,usesGemini3Features:c}=ke(n);if(e==null)return{tools:void 0,toolConfig:void 0,toolWarnings:a};let l=e.some(e=>e.type===`function`),u=e.some(e=>e.type===`provider`);if(l&&u&&!c&&a.push({type:`unsupported`,feature:`combination of function and provider-defined tools`}),u){let n=[];if(e.filter(e=>e.type===`provider`).forEach(e=>{switch(e.id){case`google.google_search`:o?n.push({googleSearch:{...e.args}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`Google Search requires Gemini 2.0 or newer.`});break;case`google.enterprise_web_search`:o?n.push({enterpriseWebSearch:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`Enterprise Web Search requires Gemini 2.0 or newer.`});break;case`google.url_context`:o?n.push({urlContext:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The URL context tool is not supported with other Gemini models than Gemini 2.`});break;case`google.code_execution`:o?n.push({codeExecution:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The code execution tool is not supported with other Gemini models than Gemini 2.`});break;case`google.file_search`:s?n.push({fileSearch:{...e.args}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The file search tool is only supported with Gemini 2.5 models and Gemini 3 models.`});break;case`google.vertex_rag_store`:o?n.push({retrieval:{vertex_rag_store:{rag_resources:{rag_corpus:e.args.ragCorpus},similarity_top_k:e.args.topK}}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The RAG store tool is not supported with other Gemini models than Gemini 2.`});break;case`google.google_maps`:o?n.push({googleMaps:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.`});break;default:a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`});break}}),l&&c&&n.length>0){let r=[];for(let t of e)t.type===`function`&&r.push({name:t.name,description:t.description??``,parameters:q(t.inputSchema)});let o={functionCallingConfig:{mode:`VALIDATED`},...!i&&{includeServerSideToolInvocations:!0}};if(t!=null)switch(t.type){case`auto`:break;case`none`:o.functionCallingConfig={mode:`NONE`};break;case`required`:o.functionCallingConfig={mode:`ANY`};break;case`tool`:o.functionCallingConfig={mode:`ANY`,allowedFunctionNames:[t.toolName]};break}return{tools:[...n,{functionDeclarations:r}],toolConfig:o,toolWarnings:a}}return{tools:n.length>0?n:void 0,toolConfig:void 0,toolWarnings:a}}let d=[],f=!1;for(let t of e)switch(t.type){case`function`:d.push({name:t.name,description:t.description??``,parameters:q(t.inputSchema)}),t.strict===!0&&(f=!0);break;default:a.push({type:`unsupported`,feature:`function tool ${t.name}`});break}if(t==null)return{tools:[{functionDeclarations:d}],toolConfig:f?{functionCallingConfig:{mode:`VALIDATED`}}:void 0,toolWarnings:a};let p=t.type;switch(p){case`auto`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`AUTO`}},toolWarnings:a};case`none`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:`NONE`}},toolWarnings:a};case`required`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`ANY`}},toolWarnings:a};case`tool`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`ANY`,allowedFunctionNames:[t.toolName]}},toolWarnings:a};default:throw new r({functionality:`tool choice type: ${p}`})}}var je=class{constructor(){this.accumulatedArgs={},this.jsonText=``,this.pathStack=[],this.stringOpen=!1}processPartialArgs(e){let t=``;for(let n of e){let e=n.jsonPath.replace(/^\$\./,``);if(!e)continue;let r=Me(e),i=Ie(this.accumulatedArgs,r);if(n.stringValue!=null&&i!==void 0){let e=JSON.stringify(n.stringValue).slice(1,-1);Le(this.accumulatedArgs,r,i+n.stringValue),t+=e;continue}let a=Re(n);a!=null&&(Le(this.accumulatedArgs,r,a.value),t+=this.emitNavigationTo(r,n,a.json))}return this.jsonText+=t,{currentJSON:this.accumulatedArgs,textDelta:t}}finalize(){let e=JSON.stringify(this.accumulatedArgs);return{finalJSON:e,closingDelta:e.slice(this.jsonText.length)}}ensureRoot(){return this.pathStack.length===0?(this.pathStack.push({segment:``,isArray:!1,childCount:0}),`{`):``}emitNavigationTo(e,t,n){let r=``;this.stringOpen&&=(r+=`"`,!1),r+=this.ensureRoot();let i=e.slice(0,-1),a=e[e.length-1],o=this.findCommonStackDepth(i);return r+=this.closeDownTo(o),r+=this.openDownTo(i,a),r+=this.emitLeaf(a,t,n),r}findCommonStackDepth(e){let t=Math.min(this.pathStack.length-1,e.length),n=0;for(let r=0;r<t&&this.pathStack[r+1].segment===e[r];r++)n++;return n+1}closeDownTo(e){let t=``;for(;this.pathStack.length>e;){let e=this.pathStack.pop();t+=e.isArray?`]`:`}`}return t}openDownTo(e,t){let n=``,r=this.pathStack.length-1;for(let i=r;i<e.length;i++){let r=e[i],a=this.pathStack[this.pathStack.length-1];a.childCount>0&&(n+=`,`),a.childCount++,typeof r==`string`&&(n+=`${JSON.stringify(r)}:`);let o=typeof(i+1<e.length?e[i+1]:t)==`number`;n+=o?`[`:`{`,this.pathStack.push({segment:r,isArray:o,childCount:0})}return n}emitLeaf(e,t,n){let r=``,i=this.pathStack[this.pathStack.length-1];return i.childCount>0&&(r+=`,`),i.childCount++,typeof e==`string`&&(r+=`${JSON.stringify(e)}:`),t.stringValue!=null&&t.willContinue?(r+=n.slice(0,-1),this.stringOpen=!0):r+=n,r}};function Me(e){let t=[];for(let n of e.split(`.`)){let e=n.indexOf(`[`);if(e===-1)t.push(n);else{e>0&&t.push(n.slice(0,e));for(let e of n.matchAll(/\[(\d+)\]/g))t.push(parseInt(e[1],10))}}return t}var Ne=Object.prototype.hasOwnProperty;function Pe(e,t){return Ne.call(e,t)}function Fe(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function Ie(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;let t=n;if(!Pe(t,e))return;n=t[e]}return n}function Le(e,t,n){let r=e;for(let e=0;e<t.length-1;e++){let n=t[e],i=t[e+1];(!Pe(r,n)||r[n]==null)&&Fe(r,n,typeof i==`number`?[]:{}),r=r[n]}Fe(r,t[t.length-1],n)}function Re(e){let t=e.stringValue??e.numberValue??e.boolValue;if(t!=null)return{value:t,json:JSON.stringify(t)};if(`nullValue`in e)return{value:null,json:`null`}}function ze({finishReason:e,hasToolCalls:t}){switch(e){case`STOP`:return t?`tool-calls`:`stop`;case`MAX_TOKENS`:return`length`;case`IMAGE_SAFETY`:case`RECITATION`:case`SAFETY`:case`BLOCKLIST`:case`PROHIBITED_CONTENT`:case`SPII`:return`content-filter`;case`MALFORMED_FUNCTION_CALL`:return`error`;default:return`other`}}var Be=[`HARM_CATEGORY_HATE_SPEECH`,`HARM_CATEGORY_DANGEROUS_CONTENT`,`HARM_CATEGORY_HARASSMENT`,`HARM_CATEGORY_SEXUALLY_EXPLICIT`],Ve=class e{constructor(e,t){this.specificationVersion=`v4`,this.modelId=e,this.config=t,this.generateId=t.generateId??B}static[W](e){return k({modelId:e.modelId,config:e.config})}static[G](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}get supportedUrls(){var e;return(e=this.config).supportedUrls?.call(e)??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,seed:l,tools:u,toolChoice:d,reasoning:f,providerOptions:p},{isStreaming:m=!1}={}){let h=[],g=this.config.provider.includes(`vertex`)?[`googleVertex`,`vertex`]:[`google`],_;for(let e of g)if(_=await S({provider:e,providerOptions:p,schema:Ce}),_!=null)break;_==null&&!g.includes(`google`)&&(_=await S({provider:`google`,providerOptions:p,schema:Ce}));let v=this.config.provider.startsWith(`google.vertex.`);u?.some(e=>e.type===`provider`&&e.id===`google.vertex_rag_store`)&&!v&&h.push({type:`other`,message:`The 'vertex_rag_store' tool is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`}),_?.streamFunctionCallArguments&&!v&&h.push({type:`other`,message:`'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${this.config.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`}),_?.serviceTier&&v&&h.push({type:`other`,message:`'serviceTier' is a Gemini API option and is not supported on Vertex AI. Use 'sharedRequestType' (and optionally 'requestType') instead. See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo`}),(_?.sharedRequestType||_?.requestType)&&!v&&h.push({type:`other`,message:`'sharedRequestType' and 'requestType' are Vertex AI options and are ignored with the current Google provider (${this.config.provider}).`});let y=v&&(_?.sharedRequestType||_?.requestType)?{..._.sharedRequestType&&{"X-Vertex-AI-LLM-Shared-Request-Type":_.sharedRequestType},..._.requestType&&{"X-Vertex-AI-LLM-Request-Type":_.requestType}}:void 0,b=v?void 0:_?.serviceTier,x=_?.imageConfig;if(x!=null&&!v){let{personGeneration:e,prominentPeople:t,imageOutputOptions:n,...r}=x,i=Object.entries({personGeneration:e,prominentPeople:t,imageOutputOptions:n}).filter(([,e])=>e!=null).map(([e])=>`'imageConfig.${e}'`);i.length>0&&(h.push({type:`other`,message:`${i.join(`, `)} ${i.length===1?`is a Vertex AI option and is`:`are Vertex AI options and are`} ignored with the current Google provider (${this.config.provider}).`}),x=r)}let C=this.modelId.toLowerCase().startsWith(`gemma-`),{usesGemini3Features:w}=ke(this.modelId),{contents:T,systemInstruction:E}=Se(e,{isGemmaModel:C,isGemini3Model:w,onWarning:e=>h.push(e),providerOptionsNames:g,supportsFunctionResponseParts:w,includeFunctionCallIds:!v}),{tools:D,toolConfig:O,toolWarnings:k}=Ae({tools:u,toolChoice:d,modelId:this.modelId,isVertexProvider:v}),A=We({reasoning:f,modelId:this.modelId,warnings:h}),j=_?.thinkingConfig||A?{...A,..._?.thinkingConfig}:void 0,M=m&&v?_?.streamFunctionCallArguments??!1:void 0,N=_?.threshold,ee=_?.safetySettings??(N==null?void 0:Be.map(e=>({category:e,threshold:N}))),P=O||M||_?.retrievalConfig?{...O,...M&&{functionCallingConfig:{...O?.functionCallingConfig,streamFunctionCallArguments:!0}},..._?.retrievalConfig&&{retrievalConfig:_.retrievalConfig}}:void 0;return{args:{generationConfig:{maxOutputTokens:t,temperature:n,topK:i,topP:r,frequencyPenalty:a,presencePenalty:o,stopSequences:s,seed:l,responseMimeType:c?.type===`json`?`application/json`:void 0,responseSchema:c?.type===`json`&&c.schema!=null&&(_?.structuredOutputs??!0)?q(c.schema):void 0,..._?.audioTimestamp&&{audioTimestamp:_.audioTimestamp},responseModalities:_?.responseModalities,thinkingConfig:j,..._?.mediaResolution&&{mediaResolution:_.mediaResolution},...x&&{imageConfig:x}},contents:T,systemInstruction:C?void 0:E,safetySettings:ee,tools:D,toolConfig:P,cachedContent:_?.cachedContent,labels:_?.labels,serviceTier:b},warnings:[...h,...k],providerOptionsNames:g,extraHeaders:y}}async doGenerate(e){let{args:t,warnings:n,providerOptionsNames:r,extraHeaders:i}=await this.getArgs(e),a=e=>Object.fromEntries(r.map(t=>[t,e])),o=z(this.config.headers?await R(this.config.headers):void 0,e.headers,i),{responseHeaders:s,value:c,rawValue:l}=await d({url:`${this.config.baseURL}/${J(this.modelId)}:generateContent`,headers:o,body:t,failedResponseHandler:K,successfulResponseHandler:L(et),abortSignal:e.abortSignal,fetch:this.config.fetch}),u=c.candidates[0],f=[],p=u.content?.parts??[],m=c.usageMetadata,h,g;for(let e of p)if(`executableCode`in e&&e.executableCode?.code){let t=this.config.generateId();h=t,f.push({type:`tool-call`,toolCallId:t,toolName:`code_execution`,input:JSON.stringify(e.executableCode),providerExecuted:!0})}else if(`codeExecutionResult`in e&&e.codeExecutionResult)f.push({type:`tool-result`,toolCallId:h,toolName:`code_execution`,result:{outcome:e.codeExecutionResult.outcome,output:e.codeExecutionResult.output??``}});else if(`text`in e&&e.text!=null){let t=e.thoughtSignature?a({thoughtSignature:e.thoughtSignature}):void 0;if(e.text.length===0){if(t!=null&&f.length>0){let e=f[f.length-1];e.providerMetadata=t}}else f.push({type:e.thought===!0?`reasoning`:`text`,text:e.text,providerMetadata:t})}else if(`functionCall`in e&&e.functionCall.name!=null)f.push({type:`tool-call`,toolCallId:e.functionCall.id??this.config.generateId(),toolName:e.functionCall.name,input:JSON.stringify(e.functionCall.args??{}),providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature}):void 0});else if(`inlineData`in e){let t=e.thought===!0,n=!!e.thoughtSignature;f.push({type:t?`reasoning-file`:`file`,data:{type:`data`,data:e.inlineData.data},mediaType:e.inlineData.mimeType,providerMetadata:n?a({thoughtSignature:e.thoughtSignature}):void 0})}else if(`toolCall`in e&&e.toolCall){let t=e.toolCall.id??this.config.generateId();g=t,f.push({type:`tool-call`,toolCallId:t,toolName:`server:${e.toolCall.toolType}`,input:JSON.stringify(e.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature,serverToolCallId:t,serverToolType:e.toolCall.toolType}):a({serverToolCallId:t,serverToolType:e.toolCall.toolType})})}else if(`toolResponse`in e&&e.toolResponse){let t=g??e.toolResponse.id??this.config.generateId();f.push({type:`tool-result`,toolCallId:t,toolName:`server:${e.toolResponse.toolType}`,result:e.toolResponse.response??{},providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature,serverToolCallId:t,serverToolType:e.toolResponse.toolType}):a({serverToolCallId:t,serverToolType:e.toolResponse.toolType})}),g=void 0}let _=qe({groundingMetadata:u.groundingMetadata,generateId:this.config.generateId})??[];for(let e of _)f.push(e);return{content:f,finishReason:{unified:ze({finishReason:u.finishReason,hasToolCalls:f.some(e=>e.type===`tool-call`&&!e.providerExecuted)}),raw:u.finishReason??void 0},usage:me(m),warnings:n,providerMetadata:a({promptFeedback:c.promptFeedback??null,groundingMetadata:u.groundingMetadata??null,urlContextMetadata:u.urlContextMetadata??null,safetyRatings:u.safetyRatings??null,usageMetadata:m??null,finishMessage:u.finishMessage??null,serviceTier:m?.serviceTier??null}),request:{body:t},response:{id:c.responseId??void 0,headers:s,body:l}}}async doStream(e){let{args:t,warnings:n,providerOptionsNames:r,extraHeaders:i}=await this.getArgs(e,{isStreaming:!0}),a=e=>Object.fromEntries(r.map(t=>[t,e])),o=z(this.config.headers?await R(this.config.headers):void 0,e.headers,i),{responseHeaders:s,value:c}=await d({url:`${this.config.baseURL}/${J(this.modelId)}:streamGenerateContent?alt=sse`,headers:o,body:t,failedResponseHandler:K,successfulResponseHandler:A(tt),abortSignal:e.abortSignal,fetch:this.config.fetch}),l={unified:`other`,raw:void 0},u,f,p=null,m=null,h=this.config.generateId,g=!1,_=!1,v=null,y=null,b=0,x=new Set,S,C,w=[],T=e=>{let t=w.pop();if(t==null)return;let{finalJSON:n,closingDelta:r}=t.accumulator.finalize();r.length>0&&e.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:r,providerMetadata:t.providerMetadata}),e.enqueue({type:`tool-input-end`,id:t.toolCallId,providerMetadata:t.providerMetadata}),e.enqueue({type:`tool-call`,toolCallId:t.toolCallId,toolName:t.toolName,input:n,providerMetadata:t.providerMetadata}),g=!0};return{stream:c.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){n.enqueue({type:`error`,error:t.error});return}let r=t.value;!_&&r.responseId!=null&&(_=!0,n.enqueue({type:`response-metadata`,id:r.responseId}));let i=r.usageMetadata;i!=null&&(u=i);let o=r.candidates?.[0];if(o==null)return;let s=o.content;o.groundingMetadata!=null&&(p=o.groundingMetadata),o.urlContextMetadata!=null&&(m=o.urlContextMetadata);let c=qe({groundingMetadata:o.groundingMetadata,generateId:h});if(c!=null)for(let e of c)e.sourceType===`url`&&!x.has(e.url)&&(x.add(e.url),n.enqueue(e));if(s!=null){let e=s.parts??[];for(let t of e)if(`executableCode`in t&&t.executableCode?.code){let e=h();S=e,n.enqueue({type:`tool-call`,toolCallId:e,toolName:`code_execution`,input:JSON.stringify(t.executableCode),providerExecuted:!0})}else if(`codeExecutionResult`in t&&t.codeExecutionResult){let e=S;e&&n.enqueue({type:`tool-result`,toolCallId:e,toolName:`code_execution`,result:{outcome:t.codeExecutionResult.outcome,output:t.codeExecutionResult.output??``}})}else if(`text`in t&&t.text!=null){let e=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0;t.text.length===0?e!=null&&v!==null&&n.enqueue({type:`text-delta`,id:v,delta:``,providerMetadata:e}):t.thought===!0?(v!==null&&(n.enqueue({type:`text-end`,id:v}),v=null),y===null&&(y=String(b++),n.enqueue({type:`reasoning-start`,id:y,providerMetadata:e})),n.enqueue({type:`reasoning-delta`,id:y,delta:t.text,providerMetadata:e})):(y!==null&&(n.enqueue({type:`reasoning-end`,id:y}),y=null),v===null&&(v=String(b++),n.enqueue({type:`text-start`,id:v,providerMetadata:e})),n.enqueue({type:`text-delta`,id:v,delta:t.text,providerMetadata:e}))}else if(`inlineData`in t){v!==null&&(n.enqueue({type:`text-end`,id:v}),v=null),y!==null&&(n.enqueue({type:`reasoning-end`,id:y}),y=null);let e=t.thought===!0,r=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0;n.enqueue({type:e?`reasoning-file`:`file`,mediaType:t.inlineData.mimeType,data:{type:`data`,data:t.inlineData.data},providerMetadata:r})}else if(`toolCall`in t&&t.toolCall){let e=t.toolCall.id??h();C=e;let r=a({...t.thoughtSignature?{thoughtSignature:t.thoughtSignature}:{},serverToolCallId:e,serverToolType:t.toolCall.toolType});n.enqueue({type:`tool-call`,toolCallId:e,toolName:`server:${t.toolCall.toolType}`,input:JSON.stringify(t.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:r})}else if(`toolResponse`in t&&t.toolResponse){let e=C??t.toolResponse.id??h(),r=a({...t.thoughtSignature?{thoughtSignature:t.thoughtSignature}:{},serverToolCallId:e,serverToolType:t.toolResponse.toolType});n.enqueue({type:`tool-result`,toolCallId:e,toolName:`server:${t.toolResponse.toolType}`,result:t.toolResponse.response??{},providerMetadata:r}),C=void 0}for(let t of e){if(!(`functionCall`in t))continue;let e=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0,r=t.functionCall.partialArgs!=null||t.functionCall.name!=null&&t.functionCall.willContinue===!0,i=t.functionCall.name==null&&t.functionCall.args==null&&t.functionCall.partialArgs==null&&t.functionCall.willContinue==null,o=t.functionCall.name!=null&&t.functionCall.args!=null&&t.functionCall.partialArgs==null,s=t.functionCall.name!=null&&t.functionCall.args==null&&t.functionCall.partialArgs==null&&t.functionCall.willContinue!==!0;if(r){if(t.functionCall.name!=null){let r=t.functionCall.id??h(),i=new je;if(w.push({toolCallId:r,toolName:t.functionCall.name,accumulator:i,providerMetadata:e}),n.enqueue({type:`tool-input-start`,id:r,toolName:t.functionCall.name,providerMetadata:e}),t.functionCall.partialArgs!=null){let a=t.functionCall.partialArgs,{textDelta:o}=i.processPartialArgs(a);o.length>0&&n.enqueue({type:`tool-input-delta`,id:r,delta:o,providerMetadata:e}),t.functionCall.willContinue!==!0&&a.every(e=>e.willContinue!==!0)&&T(n)}}else if(t.functionCall.partialArgs!=null&&w.length>0){let r=w[w.length-1],i=t.functionCall.partialArgs,{textDelta:a}=r.accumulator.processPartialArgs(i);a.length>0&&n.enqueue({type:`tool-input-delta`,id:r.toolCallId,delta:a,providerMetadata:e}),t.functionCall.willContinue!==!0&&i.every(e=>e.willContinue!==!0)&&T(n)}}else if(i&&w.length>0)T(n);else if(o){let r=t.functionCall.id??h(),i=t.functionCall.name,a=typeof t.functionCall.args==`string`?t.functionCall.args:JSON.stringify(t.functionCall.args??{});n.enqueue({type:`tool-input-start`,id:r,toolName:i,providerMetadata:e}),n.enqueue({type:`tool-input-delta`,id:r,delta:a,providerMetadata:e}),n.enqueue({type:`tool-input-end`,id:r,providerMetadata:e}),n.enqueue({type:`tool-call`,toolCallId:r,toolName:i,input:a,providerMetadata:e}),g=!0}else if(s){let r=t.functionCall.id??h(),i=t.functionCall.name;n.enqueue({type:`tool-input-start`,id:r,toolName:i,providerMetadata:e}),n.enqueue({type:`tool-input-end`,id:r,providerMetadata:e}),n.enqueue({type:`tool-call`,toolCallId:r,toolName:i,input:`{}`,providerMetadata:e}),g=!0}}}o.finishReason!=null&&(l={unified:ze({finishReason:o.finishReason,hasToolCalls:g}),raw:o.finishReason},f=a({promptFeedback:r.promptFeedback??null,groundingMetadata:p,urlContextMetadata:m,safetyRatings:o.safetyRatings??null,usageMetadata:i??null,finishMessage:o.finishMessage??null,serviceTier:u?.serviceTier??null}))},flush(e){v!==null&&e.enqueue({type:`text-end`,id:v}),y!==null&&e.enqueue({type:`reasoning-end`,id:y}),e.enqueue({type:`finish`,finishReason:l,usage:me(u),providerMetadata:f})}})),response:{headers:s},request:{body:t}}}};function He(){return 65536}function Ue(e){let t=e.toLowerCase();return t.includes(`2.5-pro`)||t.includes(`gemini-3-pro-image`)?32768:24576}function We({reasoning:e,modelId:t,warnings:n}){if(P(e))return ke(t).usesGemini3Features&&!t.includes(`gemini-3-pro-image`)?Ge({reasoning:e,warnings:n}):Ke({reasoning:e,modelId:t,warnings:n})}function Ge({reasoning:e,warnings:t}){if(e===`none`)return{thinkingLevel:`minimal`};let n=se({reasoning:e,effortMap:{minimal:`minimal`,low:`low`,medium:`medium`,high:`high`,xhigh:`high`},warnings:t});if(n!=null)return{thinkingLevel:n}}function Ke({reasoning:e,modelId:t,warnings:n}){if(e===`none`)return{thinkingBudget:0};let r=v({reasoning:e,maxOutputTokens:He(),maxReasoningBudget:Ue(t),minReasoningBudget:0,warnings:n});if(r!=null)return{thinkingBudget:r}}function qe({groundingMetadata:e,generateId:t}){if(!e?.groundingChunks)return;let n=[];for(let r of e.groundingChunks)if(r.web!=null)n.push({type:`source`,sourceType:`url`,id:t(),url:r.web.uri,title:r.web.title??void 0});else if(r.image!=null)n.push({type:`source`,sourceType:`url`,id:t(),url:r.image.sourceUri,title:r.image.title??void 0});else if(r.retrievedContext!=null){let e=r.retrievedContext.uri,i=r.retrievedContext.fileSearchStore;if(e&&(e.startsWith(`http://`)||e.startsWith(`https://`)))n.push({type:`source`,sourceType:`url`,id:t(),url:e,title:r.retrievedContext.title??void 0});else if(e){let i=r.retrievedContext.title??`Unknown Document`,a=`application/octet-stream`,o;e.endsWith(`.pdf`)?(a=`application/pdf`,o=e.split(`/`).pop()):e.endsWith(`.txt`)?(a=`text/plain`,o=e.split(`/`).pop()):e.endsWith(`.docx`)?(a=`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,o=e.split(`/`).pop()):e.endsWith(`.doc`)?(a=`application/msword`,o=e.split(`/`).pop()):(e.match(/\.(md|markdown)$/)&&(a=`text/markdown`),o=e.split(`/`).pop()),n.push({type:`source`,sourceType:`document`,id:t(),mediaType:a,title:i,filename:o})}else if(i){let e=r.retrievedContext.title??`Unknown Document`;n.push({type:`source`,sourceType:`document`,id:t(),mediaType:`application/octet-stream`,title:e,filename:i.split(`/`).pop()})}}else r.maps!=null&&r.maps.uri&&n.push({type:`source`,sourceType:`url`,id:t(),url:r.maps.uri,title:r.maps.title??void 0});return n.length>0?n:void 0}var Je=()=>o({webSearchQueries:N(l()).nullish(),imageSearchQueries:N(l()).nullish(),retrievalQueries:N(l()).nullish(),searchEntryPoint:o({renderedContent:l()}).nullish(),groundingChunks:N(o({web:o({uri:l(),title:l().nullish()}).nullish(),image:o({sourceUri:l(),imageUri:l(),title:l().nullish(),domain:l().nullish()}).nullish(),retrievedContext:o({uri:l().nullish(),title:l().nullish(),text:l().nullish(),fileSearchStore:l().nullish()}).nullish(),maps:o({uri:l().nullish(),title:l().nullish(),text:l().nullish(),placeId:l().nullish()}).nullish()})).nullish(),groundingSupports:N(o({segment:o({startIndex:y().nullish(),endIndex:y().nullish(),text:l().nullish()}).nullish(),segment_text:l().nullish(),groundingChunkIndices:N(y()).nullish(),supportChunkIndices:N(y()).nullish(),confidenceScores:N(y()).nullish(),confidenceScore:N(y()).nullish()})).nullish(),retrievalMetadata:_([o({webDynamicRetrievalScore:y()}),o({})]).nullish()}),Ye=o({jsonPath:l(),stringValue:l().nullish(),numberValue:y().nullish(),boolValue:T().nullish(),nullValue:F().nullish(),willContinue:T().nullish()}),Xe=()=>o({parts:N(_([o({functionCall:o({id:l().nullish(),name:l().nullish(),args:F().nullish(),partialArgs:N(Ye).nullish(),willContinue:T().nullish()}),thoughtSignature:l().nullish()}),o({inlineData:o({mimeType:l(),data:l()}),thought:T().nullish(),thoughtSignature:l().nullish()}),o({toolCall:o({toolType:l(),args:F().nullish(),id:l()}),thoughtSignature:l().nullish()}),o({toolResponse:o({toolType:l(),response:F().nullish(),id:l()}),thoughtSignature:l().nullish()}),o({executableCode:o({language:l(),code:l()}).nullish(),codeExecutionResult:o({outcome:l(),output:l().nullish()}).nullish(),text:l().nullish(),thought:T().nullish(),thoughtSignature:l().nullish()})])).nullish()}),Y=()=>o({category:l().nullish(),probability:l().nullish(),probabilityScore:y().nullish(),severity:l().nullish(),severityScore:y().nullish(),blocked:T().nullish()}),Ze=N(o({modality:l(),tokenCount:y()})).nullish(),Qe=o({cachedContentTokenCount:y().nullish(),thoughtsTokenCount:y().nullish(),promptTokenCount:y().nullish(),candidatesTokenCount:y().nullish(),totalTokenCount:y().nullish(),trafficType:l().nullish(),serviceTier:l().nullish(),promptTokensDetails:Ze,candidatesTokensDetails:Ze}),$e=()=>o({urlMetadata:N(o({retrievedUrl:l(),urlRetrievalStatus:l()})).nullish()}),et=u(()=>I(o({responseId:l().nullish(),candidates:N(o({content:Xe().nullish().or(o({}).strict()),finishReason:l().nullish(),finishMessage:l().nullish(),safetyRatings:N(Y()).nullish(),groundingMetadata:Je().nullish(),urlContextMetadata:$e().nullish()})),usageMetadata:Qe.nullish(),promptFeedback:o({blockReason:l().nullish(),safetyRatings:N(Y()).nullish()}).nullish()}))),tt=u(()=>I(o({responseId:l().nullish(),candidates:N(o({content:Xe().nullish(),finishReason:l().nullish(),finishMessage:l().nullish(),safetyRatings:N(Y()).nullish(),groundingMetadata:Je().nullish(),urlContextMetadata:$e().nullish()})).nullish(),usageMetadata:Qe.nullish(),promptFeedback:o({blockReason:l().nullish(),safetyRatings:N(Y()).nullish()}).nullish()}))),nt=U({id:`google.code_execution`,inputSchema:o({language:l().describe(`The programming language of the code.`),code:l().describe(`The code to be executed.`)}),outputSchema:o({outcome:l().describe(`The outcome of the execution (e.g., "OUTCOME_OK").`),output:l().describe(`The output from the code execution.`)})}),rt=U({id:`google.enterprise_web_search`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))});H({fileSearchStoreNames:N(l()).describe("The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`"),topK:y().int().positive().describe(`The number of file search retrieval chunks to retrieve.`).optional(),metadataFilter:l().describe(`Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.`).optional()});var it=U({id:`google.file_search`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))}),at=U({id:`google.google_maps`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))}),ot=H({searchTypes:o({webSearch:o({}).optional(),imageSearch:o({}).optional()}).optional(),timeRangeFilter:o({startTime:l(),endTime:l()}).optional()}),st={googleSearch:U({id:`google.google_search`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))}),enterpriseWebSearch:rt,googleMaps:at,urlContext:U({id:`google.url_context`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))}),fileSearch:it,codeExecution:nt,vertexRagStore:U({id:`google.vertex_rag_store`,inputSchema:u(()=>I(o({}))),outputSchema:u(()=>I(o({})))})},ct=u(()=>I(o({personGeneration:j([`dont_allow`,`allow_adult`,`allow_all`]).nullish(),aspectRatio:j([`1:1`,`3:4`,`4:3`,`9:16`,`16:9`]).nullish(),googleSearch:ot.optional()}))),lt=class e{constructor(e,t,n){this.modelId=e,this.settings=t,this.config=n,this.specificationVersion=`v4`}static[W](e){return k({modelId:e.modelId,config:e.config})}static[G](t){return new e(t.modelId,{},t.config)}get maxImagesPerCall(){return this.settings.maxImagesPerCall==null?ut(this.modelId)?10:4:this.settings.maxImagesPerCall}get provider(){return this.config.provider}async doGenerate(e){return ut(this.modelId)?this.doGenerateGemini(e):this.doGenerateImagen(e)}async doGenerateImagen(e){var t;let{prompt:n,n:r=1,size:i,aspectRatio:a=`1:1`,seed:o,providerOptions:s,headers:c,abortSignal:l,files:u,mask:f}=e,p=[];if(u!=null&&u.length>0)throw Error(`Google Gemini API does not support image editing with Imagen models. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.`);if(f!=null)throw Error(`Google Gemini API does not support image editing with masks. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.`);i!=null&&p.push({type:`unsupported`,feature:`size`,details:"This model does not support the `size` option. Use `aspectRatio` instead."}),o!=null&&p.push({type:`unsupported`,feature:`seed`,details:"This model does not support the `seed` option through this provider."});let m=await S({provider:`google`,providerOptions:s,schema:ct}),h=((t=this.config._internal)?.currentDate)?.call(t)??new Date,g={sampleCount:r};if(a!=null&&(g.aspectRatio=a),m){let{googleSearch:e,...t}=m;e!=null&&p.push({type:`unsupported`,feature:`googleSearch`,details:`Google Search grounding is only supported on Gemini image models.`}),Object.assign(g,t)}let _={instances:[{prompt:n}],parameters:g},{responseHeaders:v,value:y}=await d({url:`${this.config.baseURL}/models/${this.modelId}:predict`,headers:z(this.config.headers?await R(this.config.headers):void 0,c),body:_,failedResponseHandler:K,successfulResponseHandler:L(dt),abortSignal:l,fetch:this.config.fetch});return{images:y.predictions.map(e=>e.bytesBase64Encoded),warnings:p,providerMetadata:{google:{images:y.predictions.map(()=>({}))}},response:{timestamp:h,modelId:this.modelId,headers:v}}}async doGenerateGemini(e){var t;let{prompt:n,n:r,size:i,aspectRatio:a,seed:o,providerOptions:s,headers:c,abortSignal:l,files:u,mask:d}=e,f=[];if(d!=null)throw Error(`Gemini image models do not support mask-based image editing.`);if(r!=null&&r>1)throw Error(`Gemini image models do not support generating a set number of images per call. Use n=1 or omit the n parameter.`);i!=null&&f.push({type:`unsupported`,feature:`size`,details:"This model does not support the `size` option. Use `aspectRatio` instead."});let p=[];if(n!=null&&p.push({type:`text`,text:n}),u!=null&&u.length>0)for(let e of u)e.type===`url`?p.push({type:`file`,data:{type:`url`,url:new URL(e.url)},mediaType:`image/*`}):p.push({type:`file`,data:{type:`data`,data:typeof e.data==`string`?e.data:new Uint8Array(e.data)},mediaType:e.mediaType});let m=[{role:`user`,content:p}],h=await S({provider:`google`,providerOptions:s,schema:ct}),{googleSearch:g,..._}=s?.google??{},v=await new Ve(this.modelId,{provider:this.config.provider,baseURL:this.config.baseURL,headers:this.config.headers??{},fetch:this.config.fetch,generateId:this.config.generateId??B}).doGenerate({prompt:m,seed:o,providerOptions:{google:{responseModalities:[`IMAGE`],imageConfig:a?{aspectRatio:a}:void 0,..._}},tools:h?.googleSearch==null?void 0:[{type:`provider`,id:`google.google_search`,name:`google_search`,args:h.googleSearch}],headers:c,abortSignal:l}),y=((t=this.config._internal)?.currentDate)?.call(t)??new Date,b=[];for(let e of v.content)e.type===`file`&&e.mediaType.startsWith(`image/`)&&e.data.type===`data`&&b.push(D(e.data.data));return{images:b,warnings:f,providerMetadata:{google:{...v.providerMetadata?.google??{},images:b.map(()=>({}))}},response:{timestamp:y,modelId:this.modelId,headers:v.response?.headers},usage:v.usage?{inputTokens:v.usage.inputTokens.total,outputTokens:v.usage.outputTokens.total,totalTokens:(v.usage.inputTokens.total??0)+(v.usage.outputTokens.total??0)}:void 0}}};function ut(e){return e.startsWith(`gemini-`)}var dt=u(()=>I(o({predictions:N(o({bytesBase64Encoded:l()})).default([])}))),ft=class{constructor(e){this.config=e,this.specificationVersion=`v4`}get provider(){return this.config.provider}async uploadFile(t){let n=await S({provider:`google`,providerOptions:t.providerOptions,schema:mt}),r=this.config.headers(),i=this.config.fetch??globalThis.fetch,a=[];t.filename!=null&&a.push({type:`unsupported`,feature:`filename`});let o=ie(t.data),s=t.mediaType,c=n?.displayName,l=await i(`${this.config.baseURL.replace(/\/v1beta$/,``)}/upload/v1beta/files`,{method:`POST`,headers:{...r,"X-Goog-Upload-Protocol":`resumable`,"X-Goog-Upload-Command":`start`,"X-Goog-Upload-Header-Content-Length":String(o.length),"X-Goog-Upload-Header-Content-Type":s,"Content-Type":`application/json`},body:JSON.stringify({file:{...c==null?{}:{display_name:c}}})});if(!l.ok){let t=await l.text();throw new e({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`Failed to initiate resumable upload: ${l.status} ${t}`})}let u=l.headers.get(`x-goog-upload-url`);if(!u)throw new e({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`No upload URL returned from initiation request`});let d=await i(u,{method:`POST`,headers:{"X-Goog-Upload-Offset":`0`,"X-Goog-Upload-Command":`upload, finalize`},body:o});if(!d.ok){let t=await d.text();throw new e({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`Failed to upload file data: ${d.status} ${t}`})}let f=(await d.json()).file,p=n?.pollIntervalMs??2e3,m=n?.pollTimeoutMs??3e5,h=Date.now();for(;f.state===`PROCESSING`;){if(Date.now()-h>m)throw new e({name:`GOOGLE_FILES_UPLOAD_TIMEOUT`,message:`File processing timed out after ${m}ms`});await V(p);let{value:t}=await b({url:`${this.config.baseURL}/${f.name}`,validateUrl:!1,headers:z(r),successfulResponseHandler:L(pt),failedResponseHandler:K,fetch:this.config.fetch});f=t}if(f.state===`FAILED`)throw new e({name:`GOOGLE_FILES_UPLOAD_FAILED`,message:`File processing failed for ${f.name}`});return{warnings:a,providerReference:{google:f.uri},mediaType:f.mimeType??t.mediaType,providerMetadata:{google:{name:f.name,displayName:f.displayName,mimeType:f.mimeType,sizeBytes:f.sizeBytes,state:f.state,uri:f.uri,...f.createTime==null?{}:{createTime:f.createTime},...f.updateTime==null?{}:{updateTime:f.updateTime},...f.expirationTime==null?{}:{expirationTime:f.expirationTime},...f.sha256Hash==null?{}:{sha256Hash:f.sha256Hash}}}}}},pt=u(()=>I(o({name:l(),displayName:l().nullish(),mimeType:l(),sizeBytes:l().nullish(),createTime:l().nullish(),updateTime:l().nullish(),expirationTime:l().nullish(),sha256Hash:l().nullish(),uri:l(),state:l()}))),mt=u(()=>I(H({displayName:l().nullish(),pollIntervalMs:y().positive().nullish(),pollTimeoutMs:y().positive().nullish()}))),ht=u(()=>I(H({pollIntervalMs:y().positive().nullish(),pollTimeoutMs:y().positive().nullish(),personGeneration:j([`dont_allow`,`allow_adult`,`allow_all`]).nullish(),negativePrompt:l().nullish(),referenceImages:N(o({bytesBase64Encoded:l().nullish(),gcsUri:l().nullish()})).nullish()})));function gt(e){return e.frameImages?.find(e=>e.frameType===`first_frame`)?.image}function _t(e){return gt(e)??e.image}function vt(e){return e.frameImages?.find(e=>e.frameType===`last_frame`)?.image}function yt(e){if(!(e.frameImages!=null&&e.frameImages.length>0))return e.inputReferences!=null&&e.inputReferences.length>0?e.inputReferences:void 0}function bt(e,t){if(e.type===`url`){if(e.url.startsWith(`gs://`))return{gcsUri:e.url,mimeType:`image/png`};t.push({type:`unsupported`,feature:`URL-based image input`,details:`Google Generative AI video models require base64-encoded images or GCS URIs. URL will be ignored.`});return}return{bytesBase64Encoded:typeof e.data==`string`?e.data:oe(e.data),mimeType:e.mediaType||`image/png`}}function xt(e){return e.bytesBase64Encoded?{image:{bytesBase64Encoded:e.bytesBase64Encoded,mimeType:`image/png`},referenceType:`asset`}:e.gcsUri?{image:{gcsUri:e.gcsUri,mimeType:`image/png`},referenceType:`asset`}:e}function St(e,t){let n=bt(e,t);return n==null?void 0:{image:n,referenceType:`asset`}}var Ct=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}get provider(){return this.config.provider}get maxVideosPerCall(){return 4}async buildRequest(e){let t=[],n=await S({provider:`google`,providerOptions:e.providerOptions,schema:ht}),r=[{}],i=r[0];e.prompt!=null&&(i.prompt=e.prompt);let a=_t(e);if(a!=null){let e=bt(a,t);e!=null&&(i.image=e)}let o=vt(e);if(o!=null){let e=bt(o,t);e!=null&&(i.lastFrame=e)}let s=yt(e);s==null?n?.referenceImages!=null&&(i.referenceImages=n.referenceImages.map(e=>xt(e))):i.referenceImages=s.flatMap(e=>{let n=St(e,t);return n==null?[]:[n]});let c={sampleCount:e.n};if(e.aspectRatio&&(c.aspectRatio=e.aspectRatio),e.resolution&&(c.resolution={"1280x720":`720p`,"1920x1080":`1080p`,"3840x2160":`4k`}[e.resolution]||e.resolution),e.duration&&(c.durationSeconds=e.duration),e.seed&&(c.seed=e.seed),n!=null){let e=n;e.personGeneration!==void 0&&e.personGeneration!==null&&(c.personGeneration=e.personGeneration),e.negativePrompt!==void 0&&e.negativePrompt!==null&&(c.negativePrompt=e.negativePrompt);for(let[t,n]of Object.entries(e))[`pollIntervalMs`,`pollTimeoutMs`,`personGeneration`,`negativePrompt`,`referenceImages`].includes(t)||(c[t]=n)}return{instances:r,parameters:c,warnings:t,googleOptions:n}}async buildCompletedResult(t,n,r,i){let a=t.response;if(!a?.generateVideoResponse?.generatedSamples||a.generateVideoResponse.generatedSamples.length===0)throw new e({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No videos in response. Response: ${JSON.stringify(t)}`});let o=[],s=[],c=(await R(this.config.headers))?.[`x-goog-api-key`];for(let e of a.generateVideoResponse.generatedSamples)if(e.video?.uri){let t=c&&h(e.video.uri,this.config.baseURL)?`${e.video.uri}${e.video.uri.includes(`?`)?`&`:`?`}key=${c}`:e.video.uri;o.push({type:`url`,url:t,mediaType:`video/mp4`}),s.push({uri:e.video.uri})}if(o.length===0)throw new e({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No valid videos in response`});return{status:`completed`,videos:o,warnings:r,response:{timestamp:i,modelId:this.modelId,headers:n},providerMetadata:{google:{videos:s}}}}async doStart(t){var n;let r=((n=this.config._internal)?.currentDate)?.call(n)??new Date,{instances:i,parameters:a,warnings:o}=await this.buildRequest(t),{value:s,responseHeaders:c}=await d({url:`${this.config.baseURL}/models/${this.modelId}:predictLongRunning`,headers:z(await R(this.config.headers),t.headers),body:{instances:i,parameters:a},successfulResponseHandler:L(wt),failedResponseHandler:K,abortSignal:t.abortSignal,fetch:this.config.fetch}),l=s.name;if(!l)throw new e({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No operation name returned from API`});return{operation:{operationName:l},warnings:o,response:{timestamp:r,modelId:this.modelId,headers:c}}}async doStatus(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{operationName:r}=e.operation,{value:i,responseHeaders:a}=await b({url:`${this.config.baseURL}/${r}`,validateUrl:!1,headers:z(await R(this.config.headers),e.headers),successfulResponseHandler:L(wt),failedResponseHandler:K,abortSignal:e.abortSignal,fetch:this.config.fetch});return i.done?i.error?{status:`error`,error:`Video generation failed: ${i.error.message}`,response:{timestamp:n,modelId:this.modelId,headers:a}}:this.buildCompletedResult(i,a,[],n):{status:`pending`,response:{timestamp:n,modelId:this.modelId,headers:a}}}},wt=o({name:l().nullish(),done:T().nullish(),error:o({code:y().nullish(),message:l(),status:l().nullish()}).nullish(),response:o({generateVideoResponse:o({generatedSamples:N(o({video:o({uri:l().nullish()}).nullish()})).nullish()}).nullish()}).nullish()}),Tt=u(()=>I(o({candidates:N(o({content:o({parts:N(o({inlineData:o({mimeType:l().nullish(),data:l().nullish()}).nullish()})).nullish()}).nullish()})).nullish()}))),Et=o({prebuiltVoiceConfig:o({voiceName:l()})}),Dt=u(()=>I(o({multiSpeakerVoiceConfig:o({speakerVoiceConfigs:N(o({speaker:l(),voiceConfig:Et}))}).optional()}))),Ot=`Kore`,kt=24e3,At=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}static[W](e){return k({modelId:e.modelId,config:e.config})}static[G](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({text:e,voice:t=Ot,outputFormat:n,instructions:r,speed:i,language:a,providerOptions:o}){let s=[],c=this.config.provider.includes(`vertex`)?[`googleVertex`,`vertex`]:[`google`],l;for(let e of c)if(l=await S({provider:e,providerOptions:o,schema:Dt}),l!=null)break;l==null&&!c.includes(`google`)&&(l=await S({provider:`google`,providerOptions:o,schema:Dt}));let u=l?.multiSpeakerVoiceConfig,d=u?{multiSpeakerVoiceConfig:u}:{voiceConfig:{prebuiltVoiceConfig:{voiceName:t}}},f=e;r!=null&&(u?s.push({type:`unsupported`,feature:`instructions`,details:"Google Gemini TTS ignores `instructions` when `multiSpeakerVoiceConfig` is set, because prepending them would break multi-speaker transcript parsing."}):f=`${r}: ${e}`),i!=null&&s.push({type:`unsupported`,feature:`speed`,details:"Google Gemini TTS models do not support the `speed` option. It was ignored."}),a!=null&&s.push({type:`unsupported`,feature:`language`,details:"Google Gemini TTS models do not support the `language` option. Language is detected automatically from the input text."});let p=`wav`;return n===`pcm`?p=`pcm`:n!=null&&n!==`wav`&&s.push({type:`unsupported`,feature:`outputFormat`,details:`Unsupported output format: ${n}. Using wav instead.`}),{requestBody:{contents:[{role:`user`,parts:[{text:f}]}],generationConfig:{responseModalities:[`AUDIO`],speechConfig:d}},warnings:s,outputFormat:p}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{requestBody:r,warnings:i,outputFormat:a}=await this.getArgs(e),{value:o,responseHeaders:s,rawValue:c}=await d({url:`${this.config.baseURL}/models/${this.modelId}:generateContent`,headers:z(this.config.headers?await R(this.config.headers):void 0,e.headers),body:r,failedResponseHandler:K,successfulResponseHandler:L(Tt),abortSignal:e.abortSignal,fetch:this.config.fetch}),l,u;for(let e of o.candidates??[]){for(let t of e.content?.parts??[])if(t.inlineData?.data){l=t.inlineData.data,u=t.inlineData.mimeType??void 0;break}if(l!=null)break}let f=jt(u)??kt,p=l==null?new Uint8Array:te(l),m=a===`pcm`||p.length===0?p:Mt(p,f);return a===`pcm`&&p.length>0&&i.push({type:`unsupported`,feature:`outputFormat`,details:`Returning raw PCM audio (signed 16-bit little-endian, mono, ${f} Hz). These bytes have no container header and are not directly playable; see providerMetadata.google for the sample rate and mime type.`}),{audio:m,warnings:i,request:{body:JSON.stringify(r)},response:{timestamp:n,modelId:this.modelId,headers:s,body:c},providerMetadata:{google:{sampleRate:f,mimeType:u??null}}}}};function jt(e){if(e==null)return;let t=/rate=(\d+)/.exec(e);return t?Number.parseInt(t[1],10):void 0}function Mt(e,t){let n=t*2,r=e.length,i=new ArrayBuffer(44+r),a=new DataView(i);X(a,0,`RIFF`),a.setUint32(4,36+r,!0),X(a,8,`WAVE`),X(a,12,`fmt `),a.setUint32(16,16,!0),a.setUint16(20,1,!0),a.setUint16(22,1,!0),a.setUint32(24,t,!0),a.setUint32(28,n,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),X(a,36,`data`),a.setUint32(40,r,!0);let o=new Uint8Array(i);return o.set(e,44),o}function X(e,t,n){for(let r=0;r<n.length;r++)e.setUint8(t+r,n.charCodeAt(r))}function Nt(e){if(e==null)return M();let t=e.total_input_tokens??0,n=e.total_output_tokens??0,r=e.total_thought_tokens??0,i=e.total_cached_tokens??0;return{inputTokens:{total:e.total_input_tokens??void 0,noCache:e.total_input_tokens==null?void 0:t-i,cacheRead:e.total_cached_tokens??void 0,cacheWrite:void 0},outputTokens:{total:e.total_output_tokens==null&&e.total_thought_tokens==null?void 0:n+r,text:e.total_output_tokens??void 0,reasoning:e.total_thought_tokens??void 0},raw:e}}function Pt(e){let t=e?.output_tokens_by_modality;if(t==null)return;let n={};for(let e of t)e?.modality!=null&&e.tokens!=null&&(n[e.modality]=e.tokens);return Object.keys(n).length>0?n:void 0}var Ft={pdf:`application/pdf`,txt:`text/plain`,md:`text/markdown`,markdown:`text/markdown`,doc:`application/msword`,docx:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`};function It(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(Ft))if(t.endsWith(`.${e}`))return n;return`application/octet-stream`}function Lt(e){let t=e.split(`/`),n=t[t.length-1];return n&&n.length>0?n:void 0}function Rt({annotation:e,generateId:t}){switch(e.type){case`url_citation`:{let n=e;return n.url==null||n.url.length===0?void 0:{type:`source`,sourceType:`url`,id:t(),url:n.url,...n.title==null?{}:{title:n.title}}}case`file_citation`:{let n=e,r=n.url??n.document_uri??n.file_name;if(r==null||r.length===0)return;if(r.startsWith(`http://`)||r.startsWith(`https://`))return{type:`source`,sourceType:`url`,id:t(),url:r,...n.file_name==null?{}:{title:n.file_name}};let i=n.file_name??Lt(r),a=It(r);return{type:`source`,sourceType:`document`,id:t(),mediaType:a,title:n.file_name??i??r,...i==null?{}:{filename:i}}}case`place_citation`:{let n=e;return n.url==null||n.url.length===0?void 0:{type:`source`,sourceType:`url`,id:t(),url:n.url,...n.name==null?{}:{title:n.name}}}default:return}}function zt({block:e,generateId:t}){let n=[];switch(e.type){case`url_context_result`:{let r=e.result??[];for(let e of r)e?.url==null||e.url.length===0||e.status!=null&&e.status!==`success`||n.push({type:`source`,sourceType:`url`,id:t(),url:e.url});break}case`google_search_result`:{let r=e.result??[];for(let e of r){let r=e?.url;r==null||r.length===0||n.push({type:`source`,sourceType:`url`,id:t(),url:r,...e.title==null?{}:{title:e.title}})}break}case`google_maps_result`:{let r=e.result??[];for(let e of r)for(let r of e.places??[])r.url==null||r.url.length===0||n.push({type:`source`,sourceType:`url`,id:t(),url:r.url,...r.name==null?{}:{title:r.name}});break}case`file_search_result`:{let r=e.result??[];for(let e of r){if(typeof e!=`object`||!e)continue;let r=e,i=r.url??r.document_uri??r.file_name;if(i==null||i.length===0)continue;if(i.startsWith(`http://`)||i.startsWith(`https://`)){n.push({type:`source`,sourceType:`url`,id:t(),url:i,...r.title==null?{}:{title:r.title}});continue}let a=r.file_name??Lt(i),o=It(i);n.push({type:`source`,sourceType:`document`,id:t(),mediaType:o,title:r.title??r.file_name??a??i,...a==null?{}:{filename:a}})}break}default:break}return n}function Bt({annotations:e,generateId:t}){if(e==null)return[];let n=new Set,r=[];for(let i of e){let e=Rt({annotation:i,generateId:t});if(e==null)continue;let a=e.sourceType===`url`?`url:${e.url}`:`doc:${e.filename??e.title}`;n.has(a)||(n.add(a),r.push(e))}return r}function Vt({status:e,hasFunctionCall:t}){switch(e){case`completed`:return t?`tool-calls`:`stop`;case`requires_action`:return`tool-calls`;case`failed`:return`error`;case`incomplete`:return`length`;case`cancelled`:return`other`;default:return`other`}}var Ht=new Set([`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`]),Ut=new Set([`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`]);function Wt(e){return e.replace(/_call$/,``)}function Gt(e){return e.replace(/_result$/,``)}function Kt({warnings:e,generateId:t,includeRawChunks:n,serviceTier:r}){let i,a,o=r,s,c=!1,l=new Map,u=new Set;function d(e){return e.sourceType===`url`?`url:${e.url}`:`doc:${e.filename??e.title}`}return new TransformStream({start(t){t.enqueue({type:`stream-start`,warnings:e})},transform(e,r){if(n&&r.enqueue({type:`raw`,rawValue:e.rawValue}),!e.success){s=`failed`,r.enqueue({type:`error`,error:e.error});return}let f=e.value,p=f.event_type;switch(p){case`interaction.created`:{let e=f.interaction;i=e?.id!=null&&e.id.length>0?e.id:void 0;let t=e?.created,n;if(typeof t==`string`){let e=new Date(t);Number.isNaN(e.getTime())||(n=e)}r.enqueue({type:`response-metadata`,...i==null?{}:{id:i},modelId:e?.model,...n?{timestamp:n}:{}});break}case`step.start`:{let e=f,n=e.step,a=e.index,o=`${i??`interaction`}:${a}`,s=n?.type;if(s===`model_output`){let e=n?.content?.[0];if(e?.type===`text`){l.set(a,{kind:`text`,id:o,emittedSourceKeys:new Set}),r.enqueue({type:`text-start`,id:o});let n=Bt({annotations:e.annotations,generateId:t});for(let e of n){let t=d(e);u.has(t)||(u.add(t),r.enqueue(e))}}else e?.type===`image`?l.set(a,{kind:`image`,id:o,...e.data==null?{}:{data:e.data},...e.mime_type==null?{}:{mimeType:e.mime_type},...e.uri==null?{}:{uri:e.uri}}):l.set(a,{kind:`pending_model_output`,id:o})}else if(s===`thought`){let e=n?.signature;if(l.set(a,{kind:`reasoning`,id:o,...e==null?{}:{signature:e}}),r.enqueue({type:`reasoning-start`,id:o}),Array.isArray(n?.summary))for(let e of n.summary)e?.type===`text`&&typeof e.text==`string`&&r.enqueue({type:`reasoning-delta`,id:o,delta:e.text})}else if(s===`function_call`){let e=n?.id??o,t=n?.name??`unknown`;c=!0;let i={kind:`function_call`,id:o,toolCallId:e,toolName:t,argumentsAccum:``,...n?.signature==null?{}:{signature:n.signature}};l.set(a,i),r.enqueue({type:`tool-input-start`,id:e,toolName:t})}else if(s!=null&&Ht.has(s)){let e=s===`mcp_server_tool_call`?n?.name??`mcp_server_tool`:Wt(s),t={kind:`builtin_tool_call`,id:o,blockType:s,toolCallId:n?.id??o,toolName:e,arguments:n?.arguments??{},callEmitted:!1};l.set(a,t)}else if(s!=null&&Ut.has(s)){let e=s===`mcp_server_tool_result`?n?.name??`mcp_server_tool`:Gt(s),t={kind:`builtin_tool_result`,id:o,blockType:s,callId:n?.call_id??o,toolName:e,result:n?.result??null,...n?.is_error==null?{}:{isError:n.is_error},resultEmitted:!1};l.set(a,t)}else l.set(a,{kind:`unknown`,id:o});break}case`step.delta`:{let e=f,n=l.get(e.index);if(n==null)break;let a=e.delta?.type;if(n.kind===`pending_model_output`&&(a===`text`||a===`text_annotation`||a===`text_annotation_delta`)){let t={kind:`text`,id:n.id,emittedSourceKeys:new Set};l.set(e.index,t),n=t,r.enqueue({type:`text-start`,id:t.id})}if(a===`image`&&(n.kind===`pending_model_output`||n.kind===`text`||n.kind===`image`)){let t=e.delta,a={};i!=null&&(a.interactionId=i);let o=Object.keys(a).length>0?{google:a}:void 0;t?.data!=null&&t.data.length>0?r.enqueue({type:`file`,mediaType:t.mime_type??`image/png`,data:{type:`data`,data:t.data},...o?{providerMetadata:o}:{}}):t?.uri!=null&&t.uri.length>0&&r.enqueue({type:`file`,mediaType:t.mime_type??`image/png`,data:{type:`url`,url:new URL(t.uri)},...o?{providerMetadata:o}:{}}),n.kind===`image`&&(n.data=void 0,n.uri=void 0);break}if(a===`video`&&(n.kind===`pending_model_output`||n.kind===`text`)){let t=e.delta,n={};i!=null&&(n.interactionId=i);let a=Object.keys(n).length>0?{google:n}:void 0;t?.data!=null&&t.data.length>0?r.enqueue({type:`file`,mediaType:t.mime_type??`video/mp4`,data:{type:`data`,data:t.data},...a?{providerMetadata:a}:{}}):t?.uri!=null&&t.uri.length>0&&r.enqueue({type:`file`,mediaType:t.mime_type??`video/mp4`,data:{type:`url`,url:new URL(t.uri)},...a?{providerMetadata:a}:{}});break}let o=e.delta;if(n.kind===`text`&&o?.type===`text`){let e=o.text??``;e.length>0&&r.enqueue({type:`text-delta`,id:n.id,delta:e})}else if(n.kind===`text`&&(o?.type===`text_annotation`||o?.type===`text_annotation_delta`)){let e=Bt({annotations:o.annotations,generateId:t});for(let t of e){let e=d(t);u.has(e)||(u.add(e),n.emittedSourceKeys.add(e),r.enqueue(t))}}else if(n.kind===`image`&&o?.type===`image`)o.data!=null&&(n.data=o.data),o.mime_type!=null&&(n.mimeType=o.mime_type),o.uri!=null&&(n.uri=o.uri);else if(n.kind===`reasoning`){if(o?.type===`thought_summary`){let e=o.content;e?.type===`text`&&typeof e.text==`string`&&r.enqueue({type:`reasoning-delta`,id:n.id,delta:e.text})}else if(o?.type===`thought_signature`){let e=o.signature;e!=null&&(n.signature=e)}}else if(n.kind===`function_call`&&o?.type===`arguments_delta`){let e=typeof o.arguments==`string`?o.arguments:``;e.length>0&&(n.argumentsAccum+=e,r.enqueue({type:`tool-input-delta`,id:n.toolCallId,delta:e})),o.id!=null&&(n.toolCallId=o.id),o.signature!=null&&(n.signature=o.signature),c=!0}else n.kind===`builtin_tool_call`&&o?.type===n.blockType?(o.id!=null&&(n.toolCallId=o.id),o.arguments!=null&&typeof o.arguments==`object`&&(n.arguments=o.arguments),o.name!=null&&n.blockType===`mcp_server_tool_call`&&(n.toolName=o.name)):n.kind===`builtin_tool_result`&&o?.type===n.blockType&&(o.call_id!=null&&(n.callId=o.call_id),o.result!==void 0&&(n.result=o.result),o.is_error!=null&&(n.isError=o.is_error),o.name!=null&&n.blockType===`mcp_server_tool_result`&&(n.toolName=o.name));break}case`step.stop`:{let e=f,n=l.get(e.index);if(n==null)break;if(n.kind===`text`){let e=i==null?void 0:{google:{interactionId:i}};r.enqueue({type:`text-end`,id:n.id,...e?{providerMetadata:e}:{}})}else if(n.kind===`reasoning`){let e={};n.signature!=null&&(e.signature=n.signature),i!=null&&(e.interactionId=i);let t=Object.keys(e).length>0?{google:e}:void 0;r.enqueue({type:`reasoning-end`,id:n.id,...t?{providerMetadata:t}:{}})}else if(n.kind===`image`){let e={};i!=null&&(e.interactionId=i);let t=Object.keys(e).length>0?{google:e}:void 0;n.data!=null&&n.data.length>0?r.enqueue({type:`file`,mediaType:n.mimeType??`image/png`,data:{type:`data`,data:n.data},...t?{providerMetadata:t}:{}}):n.uri!=null&&n.uri.length>0&&r.enqueue({type:`file`,mediaType:n.mimeType??`image/png`,data:{type:`url`,url:new URL(n.uri)},...t?{providerMetadata:t}:{}})}else if(n.kind===`function_call`){let e=n.argumentsAccum.length>0?n.argumentsAccum:`{}`;r.enqueue({type:`tool-input-end`,id:n.toolCallId});let t={};n.signature!=null&&(t.signature=n.signature),i!=null&&(t.interactionId=i);let a=Object.keys(t).length>0?{google:t}:void 0;r.enqueue({type:`tool-call`,toolCallId:n.toolCallId,toolName:n.toolName,input:e,...a?{providerMetadata:a}:{}})}else if(n.kind===`builtin_tool_call`&&!n.callEmitted)r.enqueue({type:`tool-call`,toolCallId:n.toolCallId,toolName:n.toolName,input:JSON.stringify(n.arguments??{}),providerExecuted:!0}),n.callEmitted=!0;else if(n.kind===`builtin_tool_result`&&!n.resultEmitted){r.enqueue({type:`tool-result`,toolCallId:n.callId,toolName:n.toolName,result:n.result??null}),n.resultEmitted=!0;let e=zt({block:{type:n.blockType,call_id:n.callId,result:n.result},generateId:t});for(let t of e){let e=d(t);u.has(e)||(u.add(e),r.enqueue(t))}}l.delete(e.index);break}case`interaction.status_update`:case`interaction.in_progress`:case`interaction.requires_action`:{let e=f;s=e.status==null?p===`interaction.requires_action`?`requires_action`:`in_progress`:e.status;break}case`interaction.completed`:{let e=f.interaction;e?.id!=null&&e.id.length>0&&(i=e.id),e?.status!=null&&(s=e.status),e?.usage!=null&&(a=e.usage),e?.service_tier!=null&&(o=e.service_tier);break}case`error`:{let e=f;s=`failed`;let t=e.error??{message:`Unknown interaction error`};r.enqueue({type:`error`,error:t});break}default:break}},flush(e){let t={unified:Vt({status:s,hasFunctionCall:c}),raw:s},n=Pt(a),r={google:{...i==null?{}:{interactionId:i},...o==null?{}:{serviceTier:o},...n==null?{}:{outputTokensByModality:n}}};e.enqueue({type:`finish`,finishReason:t,usage:Nt(a),providerMetadata:r})}})}function qt({prompt:e,previousInteractionId:t,store:n,mediaResolution:r}){let i=[],a=t!=null&&n===!1,o=t!=null&&n!==!1;a&&i.push({type:`other`,message:`google.interactions: providerOptions.google.previousInteractionId was set together with store: false. These are incoherent (the prior interaction cannot be referenced when nothing was stored on the server); the full history will be sent and previous_interaction_id will still be emitted.`});let s=o?Yt({prompt:e,previousInteractionId:t}):e,c=[],l=[];for(let e of s)switch(e.role){case`system`:c.push(e.content);break;case`user`:{let t=[];for(let n of e.content)if(n.type===`text`)t.push({type:`text`,text:n.text});else if(n.type===`file`){let e=Jt({part:n,warnings:i,mediaResolution:r});e!=null&&t.push(e)}let n=$t(t);n.length>0&&l.push({type:`user_input`,content:n});break}case`assistant`:{let t=[],n=()=>{t.length>0&&(l.push({type:`model_output`,content:t}),t=[])};for(let a of e.content)if(a.type===`text`)t.push({type:`text`,text:a.text});else if(a.type===`reasoning`){n();let e=a.providerOptions?.google?.signature;l.push({type:`thought`,...e==null?{}:{signature:e},summary:a.text.length>0?[{type:`text`,text:a.text}]:void 0})}else if(a.type===`file`){let e=Jt({part:a,warnings:i,mediaResolution:r});e!=null&&t.push(e)}else if(a.type===`tool-call`){n();let e=a.providerOptions?.google?.signature,t=typeof a.input==`string`?Xt(a.input):a.input??{};l.push({type:`function_call`,id:a.toolCallId,name:a.toolName,arguments:t,...e==null?{}:{signature:e}})}else i.push({type:`other`,message:`google.interactions: unsupported assistant content part type "${a.type}"; part dropped.`});n();break}case`tool`:{let t=[];for(let n of e.content){if(n.type!==`tool-result`){i.push({type:`other`,message:`google.interactions: unsupported tool message part type "${n.type}"; part dropped.`});continue}let e=Zt({toolCallId:n.toolCallId,toolName:n.toolName,output:n.output,signature:n.providerOptions?.google?.signature,warnings:i});t.push(e)}t.length>0&&l.push({type:`user_input`,content:t});break}}return{input:l,systemInstruction:c.length>0?c.join(`
6
+ `})}if(g&&u!=null){let e=Array.from(new Set(_));u({type:`other`,message:`Replayed ${_.length} \`functionCall\` part(s) for a Gemini 3 model without a \`thoughtSignature\` (tools: ${e.map(e=>`\`${e}\``).join(`, `)}). Injected the documented \`skip_thought_signature_validator\` sentinel to keep the request from failing with HTTP 400. The likely cause is application code that drops \`providerOptions.google.thoughtSignature\` when persisting or serializing assistant tool-call messages. See https://ai.google.dev/gemini-api/docs/thought-signatures.`})}return{systemInstruction:a.length>0&&!c?{parts:a}:void 0,contents:o}}function q(e){return e.includes(`/`)?e:`models/${e}`}var we=s(()=>F(r({responseModalities:M(A([`TEXT`,`IMAGE`])).optional(),thinkingConfig:r({thinkingBudget:v().optional(),includeThoughts:w().optional(),thinkingLevel:A([`minimal`,`low`,`medium`,`high`]).optional()}).optional(),cachedContent:o().optional(),structuredOutputs:w().optional(),safetySettings:M(r({category:A([`HARM_CATEGORY_UNSPECIFIED`,`HARM_CATEGORY_HATE_SPEECH`,`HARM_CATEGORY_DANGEROUS_CONTENT`,`HARM_CATEGORY_HARASSMENT`,`HARM_CATEGORY_SEXUALLY_EXPLICIT`,`HARM_CATEGORY_CIVIC_INTEGRITY`]),threshold:A([`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,`BLOCK_LOW_AND_ABOVE`,`BLOCK_MEDIUM_AND_ABOVE`,`BLOCK_ONLY_HIGH`,`BLOCK_NONE`,`OFF`])})).optional(),threshold:A([`HARM_BLOCK_THRESHOLD_UNSPECIFIED`,`BLOCK_LOW_AND_ABOVE`,`BLOCK_MEDIUM_AND_ABOVE`,`BLOCK_ONLY_HIGH`,`BLOCK_NONE`,`OFF`]).optional(),audioTimestamp:w().optional(),labels:b(o(),o()).optional(),mediaResolution:A([`MEDIA_RESOLUTION_UNSPECIFIED`,`MEDIA_RESOLUTION_LOW`,`MEDIA_RESOLUTION_MEDIUM`,`MEDIA_RESOLUTION_HIGH`]).optional(),imageConfig:r({aspectRatio:A([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).optional(),imageSize:A([`1K`,`2K`,`4K`,`512`]).optional(),personGeneration:A([`PERSON_GENERATION_UNSPECIFIED`,`ALLOW_ALL`,`ALLOW_ADULT`,`ALLOW_NONE`]).optional(),prominentPeople:A([`PROMINENT_PEOPLE_UNSPECIFIED`,`ALLOW_PROMINENT_PEOPLE`,`BLOCK_PROMINENT_PEOPLE`]).optional(),imageOutputOptions:r({mimeType:A([`image/jpeg`,`image/png`]).optional(),compressionQuality:v().optional()}).optional()}).optional(),retrievalConfig:r({latLng:r({latitude:v(),longitude:v()}).optional()}).optional(),streamFunctionCallArguments:w().optional(),serviceTier:A([`standard`,`flex`,`priority`]).optional(),sharedRequestType:A([`priority`,`flex`,`standard`]).optional(),requestType:A([`shared`]).optional()}))),Te=/(^|\/)gemini-1(?:[.-]|$)/i,Ee=/(^|\/)gemini-2(?:[.-]|$)/i,De=/(^|\/)gemini-2\.5(?:[.-]|$)/i,Oe=/(^|\/)gemini-/i;function ke(e){return Te.test(e)||/(^|\/)gemini-pro(?:-vision)?$/i.test(e)||/(^|\/)gemini-robotics-er-1\.5(?:[.-]|$)/i.test(e)}function J(e){let t=Oe.test(e),n=Ee.test(e),r=ke(e),i=t&&!(r||n);return{supportsGemini2Tools:t&&!r||e.toLowerCase().includes(`nano-banana`),supportsFileSearch:De.test(e)||i,usesGemini3Features:i}}function Ae({tools:e,toolChoice:t,modelId:r,isVertexProvider:i=!1}){e=e?.length?e:void 0;let a=[],{supportsGemini2Tools:o,supportsFileSearch:s,usesGemini3Features:c}=J(r);if(e==null)return{tools:void 0,toolConfig:void 0,toolWarnings:a};let l=e.some(e=>e.type===`function`),u=e.some(e=>e.type===`provider`);if(l&&u&&!c&&a.push({type:`unsupported`,feature:`combination of function and provider-defined tools`}),u){let n=[];if(e.filter(e=>e.type===`provider`).forEach(e=>{switch(e.id){case`google.google_search`:o?n.push({googleSearch:{...e.args}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`Google Search requires Gemini 2.0 or newer.`});break;case`google.enterprise_web_search`:o?n.push({enterpriseWebSearch:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`Enterprise Web Search requires Gemini 2.0 or newer.`});break;case`google.url_context`:o?n.push({urlContext:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The URL context tool is not supported with other Gemini models than Gemini 2.`});break;case`google.code_execution`:o?n.push({codeExecution:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The code execution tool is not supported with other Gemini models than Gemini 2.`});break;case`google.file_search`:s?n.push({fileSearch:{...e.args}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The file search tool is only supported with Gemini 2.5 models and Gemini 3 models.`});break;case`google.vertex_rag_store`:o?n.push({retrieval:{vertex_rag_store:{rag_resources:{rag_corpus:e.args.ragCorpus},similarity_top_k:e.args.topK}}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The RAG store tool is not supported with other Gemini models than Gemini 2.`});break;case`google.google_maps`:o?n.push({googleMaps:{}}):a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.`});break;default:a.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`});break}}),l&&c&&n.length>0){let r=[];for(let t of e)t.type===`function`&&r.push({name:t.name,description:t.description??``,parameters:K(t.inputSchema)});let o={functionCallingConfig:{mode:`VALIDATED`},...!i&&{includeServerSideToolInvocations:!0}};if(t!=null)switch(t.type){case`auto`:break;case`none`:o.functionCallingConfig={mode:`NONE`};break;case`required`:o.functionCallingConfig={mode:`ANY`};break;case`tool`:o.functionCallingConfig={mode:`ANY`,allowedFunctionNames:[t.toolName]};break}return{tools:[...n,{functionDeclarations:r}],toolConfig:o,toolWarnings:a}}return{tools:n.length>0?n:void 0,toolConfig:void 0,toolWarnings:a}}let d=[],f=!1;for(let t of e)switch(t.type){case`function`:d.push({name:t.name,description:t.description??``,parameters:K(t.inputSchema)}),t.strict===!0&&(f=!0);break;default:a.push({type:`unsupported`,feature:`function tool ${t.name}`});break}if(t==null)return{tools:[{functionDeclarations:d}],toolConfig:f?{functionCallingConfig:{mode:`VALIDATED`}}:void 0,toolWarnings:a};let p=t.type;switch(p){case`auto`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`AUTO`}},toolWarnings:a};case`none`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:`NONE`}},toolWarnings:a};case`required`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`ANY`}},toolWarnings:a};case`tool`:return{tools:[{functionDeclarations:d}],toolConfig:{functionCallingConfig:{mode:f?`VALIDATED`:`ANY`,allowedFunctionNames:[t.toolName]}},toolWarnings:a};default:throw new n({functionality:`tool choice type: ${p}`})}}var je=class{constructor(){this.accumulatedArgs={},this.jsonText=``,this.pathStack=[],this.stringOpen=!1}processPartialArgs(e){let t=``;for(let n of e){let e=n.jsonPath.replace(/^\$\./,``);if(!e)continue;let r=Me(e),i=Ie(this.accumulatedArgs,r);if(n.stringValue!=null&&i!==void 0){let e=JSON.stringify(n.stringValue).slice(1,-1);Le(this.accumulatedArgs,r,i+n.stringValue),t+=e;continue}let a=Re(n);a!=null&&(Le(this.accumulatedArgs,r,a.value),t+=this.emitNavigationTo(r,n,a.json))}return this.jsonText+=t,{currentJSON:this.accumulatedArgs,textDelta:t}}finalize(){let e=JSON.stringify(this.accumulatedArgs);return{finalJSON:e,closingDelta:e.slice(this.jsonText.length)}}ensureRoot(){return this.pathStack.length===0?(this.pathStack.push({segment:``,isArray:!1,childCount:0}),`{`):``}emitNavigationTo(e,t,n){let r=``;this.stringOpen&&=(r+=`"`,!1),r+=this.ensureRoot();let i=e.slice(0,-1),a=e[e.length-1],o=this.findCommonStackDepth(i);return r+=this.closeDownTo(o),r+=this.openDownTo(i,a),r+=this.emitLeaf(a,t,n),r}findCommonStackDepth(e){let t=Math.min(this.pathStack.length-1,e.length),n=0;for(let r=0;r<t&&this.pathStack[r+1].segment===e[r];r++)n++;return n+1}closeDownTo(e){let t=``;for(;this.pathStack.length>e;){let e=this.pathStack.pop();t+=e.isArray?`]`:`}`}return t}openDownTo(e,t){let n=``,r=this.pathStack.length-1;for(let i=r;i<e.length;i++){let r=e[i],a=this.pathStack[this.pathStack.length-1];a.childCount>0&&(n+=`,`),a.childCount++,typeof r==`string`&&(n+=`${JSON.stringify(r)}:`);let o=typeof(i+1<e.length?e[i+1]:t)==`number`;n+=o?`[`:`{`,this.pathStack.push({segment:r,isArray:o,childCount:0})}return n}emitLeaf(e,t,n){let r=``,i=this.pathStack[this.pathStack.length-1];return i.childCount>0&&(r+=`,`),i.childCount++,typeof e==`string`&&(r+=`${JSON.stringify(e)}:`),t.stringValue!=null&&t.willContinue?(r+=n.slice(0,-1),this.stringOpen=!0):r+=n,r}};function Me(e){let t=[];for(let n of e.split(`.`)){let e=n.indexOf(`[`);if(e===-1)t.push(n);else{e>0&&t.push(n.slice(0,e));for(let e of n.matchAll(/\[(\d+)\]/g))t.push(parseInt(e[1],10))}}return t}var Ne=Object.prototype.hasOwnProperty;function Pe(e,t){return Ne.call(e,t)}function Fe(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function Ie(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;let t=n;if(!Pe(t,e))return;n=t[e]}return n}function Le(e,t,n){let r=e;for(let e=0;e<t.length-1;e++){let n=t[e],i=t[e+1];(!Pe(r,n)||r[n]==null)&&Fe(r,n,typeof i==`number`?[]:{}),r=r[n]}Fe(r,t[t.length-1],n)}function Re(e){let t=e.stringValue??e.numberValue??e.boolValue;if(t!=null)return{value:t,json:JSON.stringify(t)};if(`nullValue`in e)return{value:null,json:`null`}}function ze({finishReason:e,hasToolCalls:t}){switch(e){case`STOP`:return t?`tool-calls`:`stop`;case`MAX_TOKENS`:return`length`;case`IMAGE_SAFETY`:case`RECITATION`:case`SAFETY`:case`BLOCKLIST`:case`PROHIBITED_CONTENT`:case`SPII`:return`content-filter`;case`MALFORMED_FUNCTION_CALL`:return`error`;default:return`other`}}var Be=[`HARM_CATEGORY_HATE_SPEECH`,`HARM_CATEGORY_DANGEROUS_CONTENT`,`HARM_CATEGORY_HARASSMENT`,`HARM_CATEGORY_SEXUALLY_EXPLICIT`],Ve=class e{constructor(e,t){this.specificationVersion=`v4`,this.modelId=e,this.config=t,this.generateId=t.generateId??z}static[U](e){return O({modelId:e.modelId,config:e.config})}static[W](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}get supportedUrls(){var e;return(e=this.config).supportedUrls?.call(e)??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,seed:l,tools:u,toolChoice:d,reasoning:f,providerOptions:p},{isStreaming:m=!1}={}){let h=[],g=this.config.provider.includes(`vertex`)?[`googleVertex`,`vertex`]:[`google`],_;for(let e of g)if(_=await x({provider:e,providerOptions:p,schema:we}),_!=null)break;_==null&&!g.includes(`google`)&&(_=await x({provider:`google`,providerOptions:p,schema:we}));let v=this.config.provider.startsWith(`google.vertex.`);u?.some(e=>e.type===`provider`&&e.id===`google.vertex_rag_store`)&&!v&&h.push({type:`other`,message:`The 'vertex_rag_store' tool is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`}),_?.streamFunctionCallArguments&&!v&&h.push({type:`other`,message:`'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${this.config.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`}),_?.serviceTier&&v&&h.push({type:`other`,message:`'serviceTier' is a Gemini API option and is not supported on Vertex AI. Use 'sharedRequestType' (and optionally 'requestType') instead. See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo`}),(_?.sharedRequestType||_?.requestType)&&!v&&h.push({type:`other`,message:`'sharedRequestType' and 'requestType' are Vertex AI options and are ignored with the current Google provider (${this.config.provider}).`});let y=v&&(_?.sharedRequestType||_?.requestType)?{..._.sharedRequestType&&{"X-Vertex-AI-LLM-Shared-Request-Type":_.sharedRequestType},..._.requestType&&{"X-Vertex-AI-LLM-Request-Type":_.requestType}}:void 0,b=v?void 0:_?.serviceTier,S=_?.imageConfig;if(S!=null&&!v){let{personGeneration:e,prominentPeople:t,imageOutputOptions:n,...r}=S,i=Object.entries({personGeneration:e,prominentPeople:t,imageOutputOptions:n}).filter(([,e])=>e!=null).map(([e])=>`'imageConfig.${e}'`);i.length>0&&(h.push({type:`other`,message:`${i.join(`, `)} ${i.length===1?`is a Vertex AI option and is`:`are Vertex AI options and are`} ignored with the current Google provider (${this.config.provider}).`}),S=r)}let C=this.modelId.toLowerCase().startsWith(`gemma-`),{usesGemini3Features:w}=J(this.modelId),{contents:T,systemInstruction:E}=Ce(e,{isGemmaModel:C,isGemini3Model:w,onWarning:e=>h.push(e),providerOptionsNames:g,supportsFunctionResponseParts:w,includeFunctionCallIds:!v}),{tools:D,toolConfig:O,toolWarnings:k}=Ae({tools:u,toolChoice:d,modelId:this.modelId,isVertexProvider:v}),A=We({reasoning:f,modelId:this.modelId,warnings:h}),j=_?.thinkingConfig||A?{...A,..._?.thinkingConfig}:void 0,M=m&&v?_?.streamFunctionCallArguments??!1:void 0,ee=_?.threshold,N=_?.safetySettings??(ee==null?void 0:Be.map(e=>({category:e,threshold:ee}))),P=O||M||_?.retrievalConfig?{...O,...M&&{functionCallingConfig:{...O?.functionCallingConfig,streamFunctionCallArguments:!0}},..._?.retrievalConfig&&{retrievalConfig:_.retrievalConfig}}:void 0;return{args:{generationConfig:{maxOutputTokens:t,temperature:n,topK:i,topP:r,frequencyPenalty:a,presencePenalty:o,stopSequences:s,seed:l,responseMimeType:c?.type===`json`?`application/json`:void 0,responseSchema:c?.type===`json`&&c.schema!=null&&(_?.structuredOutputs??!0)?K(c.schema):void 0,..._?.audioTimestamp&&{audioTimestamp:_.audioTimestamp},responseModalities:_?.responseModalities,thinkingConfig:j,..._?.mediaResolution&&{mediaResolution:_.mediaResolution},...S&&{imageConfig:S}},contents:T,systemInstruction:C?void 0:E,safetySettings:N,tools:D,toolConfig:P,cachedContent:_?.cachedContent,labels:_?.labels,serviceTier:b},warnings:[...h,...k],providerOptionsNames:g,extraHeaders:y}}async doGenerate(e){let{args:t,warnings:n,providerOptionsNames:r,extraHeaders:i}=await this.getArgs(e),a=e=>Object.fromEntries(r.map(t=>[t,e])),o=R(this.config.headers?await L(this.config.headers):void 0,e.headers,i),{responseHeaders:s,value:c,rawValue:u}=await l({url:`${this.config.baseURL}/${q(this.modelId)}:generateContent`,headers:o,body:t,failedResponseHandler:G,successfulResponseHandler:I(et),abortSignal:e.abortSignal,fetch:this.config.fetch}),d=c.candidates[0],f=[],p=d.content?.parts??[],m=c.usageMetadata,h,g;for(let e of p)if(`executableCode`in e&&e.executableCode?.code){let t=this.config.generateId();h=t,f.push({type:`tool-call`,toolCallId:t,toolName:`code_execution`,input:JSON.stringify(e.executableCode),providerExecuted:!0})}else if(`codeExecutionResult`in e&&e.codeExecutionResult)f.push({type:`tool-result`,toolCallId:h,toolName:`code_execution`,result:{outcome:e.codeExecutionResult.outcome,output:e.codeExecutionResult.output??``}});else if(`text`in e&&e.text!=null){let t=e.thoughtSignature?a({thoughtSignature:e.thoughtSignature}):void 0;if(e.text.length===0){if(t!=null&&f.length>0){let e=f[f.length-1];e.providerMetadata=t}}else f.push({type:e.thought===!0?`reasoning`:`text`,text:e.text,providerMetadata:t})}else if(`functionCall`in e&&e.functionCall.name!=null)f.push({type:`tool-call`,toolCallId:e.functionCall.id??this.config.generateId(),toolName:e.functionCall.name,input:JSON.stringify(e.functionCall.args??{}),providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature}):void 0});else if(`inlineData`in e){let t=e.thought===!0,n=!!e.thoughtSignature;f.push({type:t?`reasoning-file`:`file`,data:{type:`data`,data:e.inlineData.data},mediaType:e.inlineData.mimeType,providerMetadata:n?a({thoughtSignature:e.thoughtSignature}):void 0})}else if(`toolCall`in e&&e.toolCall){let t=e.toolCall.id??this.config.generateId();g=t,f.push({type:`tool-call`,toolCallId:t,toolName:`server:${e.toolCall.toolType}`,input:JSON.stringify(e.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature,serverToolCallId:t,serverToolType:e.toolCall.toolType}):a({serverToolCallId:t,serverToolType:e.toolCall.toolType})})}else if(`toolResponse`in e&&e.toolResponse){let t=g??e.toolResponse.id??this.config.generateId();f.push({type:`tool-result`,toolCallId:t,toolName:`server:${e.toolResponse.toolType}`,result:e.toolResponse.response??{},providerMetadata:e.thoughtSignature?a({thoughtSignature:e.thoughtSignature,serverToolCallId:t,serverToolType:e.toolResponse.toolType}):a({serverToolCallId:t,serverToolType:e.toolResponse.toolType})}),g=void 0}let _=qe({groundingMetadata:d.groundingMetadata,generateId:this.config.generateId})??[];for(let e of _)f.push(e);return{content:f,finishReason:{unified:ze({finishReason:d.finishReason,hasToolCalls:f.some(e=>e.type===`tool-call`&&!e.providerExecuted)}),raw:d.finishReason??void 0},usage:he(m),warnings:n,providerMetadata:a({promptFeedback:c.promptFeedback??null,groundingMetadata:d.groundingMetadata??null,urlContextMetadata:d.urlContextMetadata??null,safetyRatings:d.safetyRatings??null,usageMetadata:m??null,finishMessage:d.finishMessage??null,serviceTier:m?.serviceTier??null}),request:{body:t},response:{id:c.responseId??void 0,headers:s,body:u}}}async doStream(e){let{args:t,warnings:n,providerOptionsNames:r,extraHeaders:i}=await this.getArgs(e,{isStreaming:!0}),a=e=>Object.fromEntries(r.map(t=>[t,e])),o=R(this.config.headers?await L(this.config.headers):void 0,e.headers,i),{responseHeaders:s,value:c}=await l({url:`${this.config.baseURL}/${q(this.modelId)}:streamGenerateContent?alt=sse`,headers:o,body:t,failedResponseHandler:G,successfulResponseHandler:k(tt),abortSignal:e.abortSignal,fetch:this.config.fetch}),u={unified:`other`,raw:void 0},d,f,p=null,m=null,h=this.config.generateId,g=!1,_=!1,v=null,y=null,b=0,x=new Set,S,C,w=[],T=e=>{let t=w.pop();if(t==null)return;let{finalJSON:n,closingDelta:r}=t.accumulator.finalize();r.length>0&&e.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:r,providerMetadata:t.providerMetadata}),e.enqueue({type:`tool-input-end`,id:t.toolCallId,providerMetadata:t.providerMetadata}),e.enqueue({type:`tool-call`,toolCallId:t.toolCallId,toolName:t.toolName,input:n,providerMetadata:t.providerMetadata}),g=!0};return{stream:c.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){n.enqueue({type:`error`,error:t.error});return}let r=t.value;!_&&r.responseId!=null&&(_=!0,n.enqueue({type:`response-metadata`,id:r.responseId}));let i=r.usageMetadata;i!=null&&(d=i);let o=r.candidates?.[0];if(o==null)return;let s=o.content;o.groundingMetadata!=null&&(p=o.groundingMetadata),o.urlContextMetadata!=null&&(m=o.urlContextMetadata);let c=qe({groundingMetadata:o.groundingMetadata,generateId:h});if(c!=null)for(let e of c)e.sourceType===`url`&&!x.has(e.url)&&(x.add(e.url),n.enqueue(e));if(s!=null){let e=s.parts??[];for(let t of e)if(`executableCode`in t&&t.executableCode?.code){let e=h();S=e,n.enqueue({type:`tool-call`,toolCallId:e,toolName:`code_execution`,input:JSON.stringify(t.executableCode),providerExecuted:!0})}else if(`codeExecutionResult`in t&&t.codeExecutionResult){let e=S;e&&n.enqueue({type:`tool-result`,toolCallId:e,toolName:`code_execution`,result:{outcome:t.codeExecutionResult.outcome,output:t.codeExecutionResult.output??``}})}else if(`text`in t&&t.text!=null){let e=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0;t.text.length===0?e!=null&&v!==null&&n.enqueue({type:`text-delta`,id:v,delta:``,providerMetadata:e}):t.thought===!0?(v!==null&&(n.enqueue({type:`text-end`,id:v}),v=null),y===null&&(y=String(b++),n.enqueue({type:`reasoning-start`,id:y,providerMetadata:e})),n.enqueue({type:`reasoning-delta`,id:y,delta:t.text,providerMetadata:e})):(y!==null&&(n.enqueue({type:`reasoning-end`,id:y}),y=null),v===null&&(v=String(b++),n.enqueue({type:`text-start`,id:v,providerMetadata:e})),n.enqueue({type:`text-delta`,id:v,delta:t.text,providerMetadata:e}))}else if(`inlineData`in t){v!==null&&(n.enqueue({type:`text-end`,id:v}),v=null),y!==null&&(n.enqueue({type:`reasoning-end`,id:y}),y=null);let e=t.thought===!0,r=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0;n.enqueue({type:e?`reasoning-file`:`file`,mediaType:t.inlineData.mimeType,data:{type:`data`,data:t.inlineData.data},providerMetadata:r})}else if(`toolCall`in t&&t.toolCall){let e=t.toolCall.id??h();C=e;let r=a({...t.thoughtSignature?{thoughtSignature:t.thoughtSignature}:{},serverToolCallId:e,serverToolType:t.toolCall.toolType});n.enqueue({type:`tool-call`,toolCallId:e,toolName:`server:${t.toolCall.toolType}`,input:JSON.stringify(t.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:r})}else if(`toolResponse`in t&&t.toolResponse){let e=C??t.toolResponse.id??h(),r=a({...t.thoughtSignature?{thoughtSignature:t.thoughtSignature}:{},serverToolCallId:e,serverToolType:t.toolResponse.toolType});n.enqueue({type:`tool-result`,toolCallId:e,toolName:`server:${t.toolResponse.toolType}`,result:t.toolResponse.response??{},providerMetadata:r}),C=void 0}for(let t of e){if(!(`functionCall`in t))continue;let e=t.thoughtSignature?a({thoughtSignature:t.thoughtSignature}):void 0,r=t.functionCall.partialArgs!=null||t.functionCall.name!=null&&t.functionCall.willContinue===!0,i=t.functionCall.name==null&&t.functionCall.args==null&&t.functionCall.partialArgs==null&&t.functionCall.willContinue==null,o=t.functionCall.name!=null&&t.functionCall.args!=null&&t.functionCall.partialArgs==null,s=t.functionCall.name!=null&&t.functionCall.args==null&&t.functionCall.partialArgs==null&&t.functionCall.willContinue!==!0;if(r){if(t.functionCall.name!=null){let r=t.functionCall.id??h(),i=new je;if(w.push({toolCallId:r,toolName:t.functionCall.name,accumulator:i,providerMetadata:e}),n.enqueue({type:`tool-input-start`,id:r,toolName:t.functionCall.name,providerMetadata:e}),t.functionCall.partialArgs!=null){let a=t.functionCall.partialArgs,{textDelta:o}=i.processPartialArgs(a);o.length>0&&n.enqueue({type:`tool-input-delta`,id:r,delta:o,providerMetadata:e}),t.functionCall.willContinue!==!0&&a.every(e=>e.willContinue!==!0)&&T(n)}}else if(t.functionCall.partialArgs!=null&&w.length>0){let r=w[w.length-1],i=t.functionCall.partialArgs,{textDelta:a}=r.accumulator.processPartialArgs(i);a.length>0&&n.enqueue({type:`tool-input-delta`,id:r.toolCallId,delta:a,providerMetadata:e}),t.functionCall.willContinue!==!0&&i.every(e=>e.willContinue!==!0)&&T(n)}}else if(i&&w.length>0)T(n);else if(o){let r=t.functionCall.id??h(),i=t.functionCall.name,a=typeof t.functionCall.args==`string`?t.functionCall.args:JSON.stringify(t.functionCall.args??{});n.enqueue({type:`tool-input-start`,id:r,toolName:i,providerMetadata:e}),n.enqueue({type:`tool-input-delta`,id:r,delta:a,providerMetadata:e}),n.enqueue({type:`tool-input-end`,id:r,providerMetadata:e}),n.enqueue({type:`tool-call`,toolCallId:r,toolName:i,input:a,providerMetadata:e}),g=!0}else if(s){let r=t.functionCall.id??h(),i=t.functionCall.name;n.enqueue({type:`tool-input-start`,id:r,toolName:i,providerMetadata:e}),n.enqueue({type:`tool-input-end`,id:r,providerMetadata:e}),n.enqueue({type:`tool-call`,toolCallId:r,toolName:i,input:`{}`,providerMetadata:e}),g=!0}}}o.finishReason!=null&&(u={unified:ze({finishReason:o.finishReason,hasToolCalls:g}),raw:o.finishReason},f=a({promptFeedback:r.promptFeedback??null,groundingMetadata:p,urlContextMetadata:m,safetyRatings:o.safetyRatings??null,usageMetadata:i??null,finishMessage:o.finishMessage??null,serviceTier:d?.serviceTier??null}))},flush(e){v!==null&&e.enqueue({type:`text-end`,id:v}),y!==null&&e.enqueue({type:`reasoning-end`,id:y}),e.enqueue({type:`finish`,finishReason:u,usage:he(d),providerMetadata:f})}})),response:{headers:s},request:{body:t}}}};function He(){return 65536}function Ue(e){let t=e.toLowerCase();return t.includes(`2.5-pro`)||t.includes(`gemini-3-pro-image`)?32768:24576}function We({reasoning:e,modelId:t,warnings:n}){if(N(e))return J(t).usesGemini3Features&&!t.includes(`gemini-3-pro-image`)?Ge({reasoning:e,warnings:n}):Ke({reasoning:e,modelId:t,warnings:n})}function Ge({reasoning:e,warnings:t}){if(e===`none`)return{thinkingLevel:`minimal`};let n=se({reasoning:e,effortMap:{minimal:`minimal`,low:`low`,medium:`medium`,high:`high`,xhigh:`high`},warnings:t});if(n!=null)return{thinkingLevel:n}}function Ke({reasoning:e,modelId:t,warnings:n}){if(e===`none`)return{thinkingBudget:0};let r=_({reasoning:e,maxOutputTokens:He(),maxReasoningBudget:Ue(t),minReasoningBudget:0,warnings:n});if(r!=null)return{thinkingBudget:r}}function qe({groundingMetadata:e,generateId:t}){if(!e?.groundingChunks)return;let n=[];for(let r of e.groundingChunks)if(r.web!=null)n.push({type:`source`,sourceType:`url`,id:t(),url:r.web.uri,title:r.web.title??void 0});else if(r.image!=null)n.push({type:`source`,sourceType:`url`,id:t(),url:r.image.sourceUri,title:r.image.title??void 0});else if(r.retrievedContext!=null){let e=r.retrievedContext.uri,i=r.retrievedContext.fileSearchStore;if(e&&(e.startsWith(`http://`)||e.startsWith(`https://`)))n.push({type:`source`,sourceType:`url`,id:t(),url:e,title:r.retrievedContext.title??void 0});else if(e){let i=r.retrievedContext.title??`Unknown Document`,a=`application/octet-stream`,o;e.endsWith(`.pdf`)?(a=`application/pdf`,o=e.split(`/`).pop()):e.endsWith(`.txt`)?(a=`text/plain`,o=e.split(`/`).pop()):e.endsWith(`.docx`)?(a=`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,o=e.split(`/`).pop()):e.endsWith(`.doc`)?(a=`application/msword`,o=e.split(`/`).pop()):(e.match(/\.(md|markdown)$/)&&(a=`text/markdown`),o=e.split(`/`).pop()),n.push({type:`source`,sourceType:`document`,id:t(),mediaType:a,title:i,filename:o})}else if(i){let e=r.retrievedContext.title??`Unknown Document`;n.push({type:`source`,sourceType:`document`,id:t(),mediaType:`application/octet-stream`,title:e,filename:i.split(`/`).pop()})}}else r.maps!=null&&r.maps.uri&&n.push({type:`source`,sourceType:`url`,id:t(),url:r.maps.uri,title:r.maps.title??void 0});return n.length>0?n:void 0}var Je=()=>r({webSearchQueries:M(o()).nullish(),imageSearchQueries:M(o()).nullish(),retrievalQueries:M(o()).nullish(),searchEntryPoint:r({renderedContent:o()}).nullish(),groundingChunks:M(r({web:r({uri:o(),title:o().nullish()}).nullish(),image:r({sourceUri:o(),imageUri:o(),title:o().nullish(),domain:o().nullish()}).nullish(),retrievedContext:r({uri:o().nullish(),title:o().nullish(),text:o().nullish(),fileSearchStore:o().nullish()}).nullish(),maps:r({uri:o().nullish(),title:o().nullish(),text:o().nullish(),placeId:o().nullish()}).nullish()})).nullish(),groundingSupports:M(r({segment:r({startIndex:v().nullish(),endIndex:v().nullish(),text:o().nullish()}).nullish(),segment_text:o().nullish(),groundingChunkIndices:M(v()).nullish(),supportChunkIndices:M(v()).nullish(),confidenceScores:M(v()).nullish(),confidenceScore:M(v()).nullish()})).nullish(),retrievalMetadata:g([r({webDynamicRetrievalScore:v()}),r({})]).nullish()}),Ye=r({jsonPath:o(),stringValue:o().nullish(),numberValue:v().nullish(),boolValue:w().nullish(),nullValue:P().nullish(),willContinue:w().nullish()}),Xe=()=>r({parts:M(g([r({functionCall:r({id:o().nullish(),name:o().nullish(),args:P().nullish(),partialArgs:M(Ye).nullish(),willContinue:w().nullish()}),thoughtSignature:o().nullish()}),r({inlineData:r({mimeType:o(),data:o()}),thought:w().nullish(),thoughtSignature:o().nullish()}),r({toolCall:r({toolType:o(),args:P().nullish(),id:o()}),thoughtSignature:o().nullish()}),r({toolResponse:r({toolType:o(),response:P().nullish(),id:o()}),thoughtSignature:o().nullish()}),r({executableCode:r({language:o(),code:o()}).nullish(),codeExecutionResult:r({outcome:o(),output:o().nullish()}).nullish(),text:o().nullish(),thought:w().nullish(),thoughtSignature:o().nullish()})])).nullish()}),Y=()=>r({category:o().nullish(),probability:o().nullish(),probabilityScore:v().nullish(),severity:o().nullish(),severityScore:v().nullish(),blocked:w().nullish()}),Ze=M(r({modality:o(),tokenCount:v()})).nullish(),Qe=r({cachedContentTokenCount:v().nullish(),thoughtsTokenCount:v().nullish(),promptTokenCount:v().nullish(),candidatesTokenCount:v().nullish(),totalTokenCount:v().nullish(),trafficType:o().nullish(),serviceTier:o().nullish(),promptTokensDetails:Ze,candidatesTokensDetails:Ze}),$e=()=>r({urlMetadata:M(r({retrievedUrl:o(),urlRetrievalStatus:o()})).nullish()}),et=s(()=>F(r({responseId:o().nullish(),candidates:M(r({content:Xe().nullish().or(r({}).strict()),finishReason:o().nullish(),finishMessage:o().nullish(),safetyRatings:M(Y()).nullish(),groundingMetadata:Je().nullish(),urlContextMetadata:$e().nullish()})),usageMetadata:Qe.nullish(),promptFeedback:r({blockReason:o().nullish(),safetyRatings:M(Y()).nullish()}).nullish()}))),tt=s(()=>F(r({responseId:o().nullish(),candidates:M(r({content:Xe().nullish(),finishReason:o().nullish(),finishMessage:o().nullish(),safetyRatings:M(Y()).nullish(),groundingMetadata:Je().nullish(),urlContextMetadata:$e().nullish()})).nullish(),usageMetadata:Qe.nullish(),promptFeedback:r({blockReason:o().nullish(),safetyRatings:M(Y()).nullish()}).nullish()}))),nt=H({id:`google.code_execution`,inputSchema:r({language:o().describe(`The programming language of the code.`),code:o().describe(`The code to be executed.`)}),outputSchema:r({outcome:o().describe(`The outcome of the execution (e.g., "OUTCOME_OK").`),output:o().describe(`The output from the code execution.`)})}),rt=H({id:`google.enterprise_web_search`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))});V({fileSearchStoreNames:M(o()).describe("The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`"),topK:v().int().positive().describe(`The number of file search retrieval chunks to retrieve.`).optional(),metadataFilter:o().describe(`Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.`).optional()});var it=H({id:`google.file_search`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))}),at=H({id:`google.google_maps`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))}),ot=V({searchTypes:r({webSearch:r({}).optional(),imageSearch:r({}).optional()}).optional(),timeRangeFilter:r({startTime:o(),endTime:o()}).optional()}),st={googleSearch:H({id:`google.google_search`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))}),enterpriseWebSearch:rt,googleMaps:at,urlContext:H({id:`google.url_context`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))}),fileSearch:it,codeExecution:nt,vertexRagStore:H({id:`google.vertex_rag_store`,inputSchema:s(()=>F(r({}))),outputSchema:s(()=>F(r({})))})},ct=s(()=>F(r({personGeneration:A([`dont_allow`,`allow_adult`,`allow_all`]).nullish(),aspectRatio:A([`1:1`,`3:4`,`4:3`,`9:16`,`16:9`]).nullish(),googleSearch:ot.optional()}))),lt=class e{constructor(e,t,n){this.modelId=e,this.settings=t,this.config=n,this.specificationVersion=`v4`}static[U](e){return O({modelId:e.modelId,config:e.config})}static[W](t){return new e(t.modelId,{},t.config)}get maxImagesPerCall(){return this.settings.maxImagesPerCall==null?ut(this.modelId)?10:4:this.settings.maxImagesPerCall}get provider(){return this.config.provider}async doGenerate(e){return ut(this.modelId)?this.doGenerateGemini(e):this.doGenerateImagen(e)}async doGenerateImagen(e){var t;let{prompt:n,n:r=1,size:i,aspectRatio:a=`1:1`,seed:o,providerOptions:s,headers:c,abortSignal:u,files:d,mask:f}=e,p=[];if(d!=null&&d.length>0)throw Error(`Google Gemini API does not support image editing with Imagen models. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.`);if(f!=null)throw Error(`Google Gemini API does not support image editing with masks. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.`);i!=null&&p.push({type:`unsupported`,feature:`size`,details:"This model does not support the `size` option. Use `aspectRatio` instead."}),o!=null&&p.push({type:`unsupported`,feature:`seed`,details:"This model does not support the `seed` option through this provider."});let m=await x({provider:`google`,providerOptions:s,schema:ct}),h=((t=this.config._internal)?.currentDate)?.call(t)??new Date,g={sampleCount:r};if(a!=null&&(g.aspectRatio=a),m){let{googleSearch:e,...t}=m;e!=null&&p.push({type:`unsupported`,feature:`googleSearch`,details:`Google Search grounding is only supported on Gemini image models.`}),Object.assign(g,t)}let _={instances:[{prompt:n}],parameters:g},{responseHeaders:v,value:y}=await l({url:`${this.config.baseURL}/models/${this.modelId}:predict`,headers:R(this.config.headers?await L(this.config.headers):void 0,c),body:_,failedResponseHandler:G,successfulResponseHandler:I(dt),abortSignal:u,fetch:this.config.fetch});return{images:y.predictions.map(e=>e.bytesBase64Encoded),warnings:p,providerMetadata:{google:{images:y.predictions.map(()=>({}))}},response:{timestamp:h,modelId:this.modelId,headers:v}}}async doGenerateGemini(e){var t;let{prompt:n,n:r,size:i,aspectRatio:a,seed:o,providerOptions:s,headers:c,abortSignal:l,files:u,mask:d}=e,f=[];if(d!=null)throw Error(`Gemini image models do not support mask-based image editing.`);if(r!=null&&r>1)throw Error(`Gemini image models do not support generating a set number of images per call. Use n=1 or omit the n parameter.`);i!=null&&f.push({type:`unsupported`,feature:`size`,details:"This model does not support the `size` option. Use `aspectRatio` instead."});let p=[];if(n!=null&&p.push({type:`text`,text:n}),u!=null&&u.length>0)for(let e of u)e.type===`url`?p.push({type:`file`,data:{type:`url`,url:new URL(e.url)},mediaType:`image/*`}):p.push({type:`file`,data:{type:`data`,data:typeof e.data==`string`?e.data:new Uint8Array(e.data)},mediaType:e.mediaType});let m=[{role:`user`,content:p}],h=await x({provider:`google`,providerOptions:s,schema:ct}),{googleSearch:g,..._}=s?.google??{},v=await new Ve(this.modelId,{provider:this.config.provider,baseURL:this.config.baseURL,headers:this.config.headers??{},fetch:this.config.fetch,generateId:this.config.generateId??z}).doGenerate({prompt:m,seed:o,providerOptions:{google:{responseModalities:[`IMAGE`],imageConfig:a?{aspectRatio:a}:void 0,..._}},tools:h?.googleSearch==null?void 0:[{type:`provider`,id:`google.google_search`,name:`google_search`,args:h.googleSearch}],headers:c,abortSignal:l}),y=((t=this.config._internal)?.currentDate)?.call(t)??new Date,b=[];for(let e of v.content)e.type===`file`&&e.mediaType.startsWith(`image/`)&&e.data.type===`data`&&b.push(E(e.data.data));return{images:b,warnings:f,providerMetadata:{google:{...v.providerMetadata?.google??{},images:b.map(()=>({}))}},response:{timestamp:y,modelId:this.modelId,headers:v.response?.headers},usage:v.usage?{inputTokens:v.usage.inputTokens.total,outputTokens:v.usage.outputTokens.total,totalTokens:(v.usage.inputTokens.total??0)+(v.usage.outputTokens.total??0)}:void 0}}};function ut(e){return e.startsWith(`gemini-`)}var dt=s(()=>F(r({predictions:M(r({bytesBase64Encoded:o()})).default([])}))),ft=class{constructor(e){this.config=e,this.specificationVersion=`v4`}get provider(){return this.config.provider}async uploadFile(e){let t=await x({provider:`google`,providerOptions:e.providerOptions,schema:mt}),n=this.config.headers(),r=this.config.fetch??globalThis.fetch,i=[];e.filename!=null&&i.push({type:`unsupported`,feature:`filename`});let a=ie(e.data),o=e.mediaType,s=t?.displayName,c=await r(`${this.config.baseURL.replace(/\/v1beta$/,``)}/upload/v1beta/files`,{method:`POST`,headers:{...n,"X-Goog-Upload-Protocol":`resumable`,"X-Goog-Upload-Command":`start`,"X-Goog-Upload-Header-Content-Length":String(a.length),"X-Goog-Upload-Header-Content-Type":o,"Content-Type":`application/json`},body:JSON.stringify({file:{...s==null?{}:{display_name:s}}})});if(!c.ok){let e=await c.text();throw new p({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`Failed to initiate resumable upload: ${c.status} ${e}`})}let l=c.headers.get(`x-goog-upload-url`);if(!l)throw new p({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`No upload URL returned from initiation request`});let u=await r(l,{method:`POST`,headers:{"X-Goog-Upload-Offset":`0`,"X-Goog-Upload-Command":`upload, finalize`},body:a});if(!u.ok){let e=await u.text();throw new p({name:`GOOGLE_FILES_UPLOAD_ERROR`,message:`Failed to upload file data: ${u.status} ${e}`})}let d=(await u.json()).file,f=t?.pollIntervalMs??2e3,m=t?.pollTimeoutMs??3e5,h=Date.now();for(;d.state===`PROCESSING`;){if(Date.now()-h>m)throw new p({name:`GOOGLE_FILES_UPLOAD_TIMEOUT`,message:`File processing timed out after ${m}ms`});await B(f);let{value:e}=await y({url:`${this.config.baseURL}/${d.name}`,validateUrl:!1,headers:R(n),successfulResponseHandler:I(pt),failedResponseHandler:G,fetch:this.config.fetch});d=e}if(d.state===`FAILED`)throw new p({name:`GOOGLE_FILES_UPLOAD_FAILED`,message:`File processing failed for ${d.name}`});return{warnings:i,providerReference:{google:d.uri},mediaType:d.mimeType??e.mediaType,providerMetadata:{google:{name:d.name,displayName:d.displayName,mimeType:d.mimeType,sizeBytes:d.sizeBytes,state:d.state,uri:d.uri,...d.createTime==null?{}:{createTime:d.createTime},...d.updateTime==null?{}:{updateTime:d.updateTime},...d.expirationTime==null?{}:{expirationTime:d.expirationTime},...d.sha256Hash==null?{}:{sha256Hash:d.sha256Hash}}}}}},pt=s(()=>F(r({name:o(),displayName:o().nullish(),mimeType:o(),sizeBytes:o().nullish(),createTime:o().nullish(),updateTime:o().nullish(),expirationTime:o().nullish(),sha256Hash:o().nullish(),uri:o(),state:o()}))),mt=s(()=>F(V({displayName:o().nullish(),pollIntervalMs:v().positive().nullish(),pollTimeoutMs:v().positive().nullish()}))),ht=s(()=>F(V({pollIntervalMs:v().positive().nullish(),pollTimeoutMs:v().positive().nullish(),personGeneration:A([`dont_allow`,`allow_adult`,`allow_all`]).nullish(),negativePrompt:o().nullish(),referenceImages:M(r({bytesBase64Encoded:o().nullish(),gcsUri:o().nullish()})).nullish()})));function gt(e){return e.frameImages?.find(e=>e.frameType===`first_frame`)?.image}function _t(e){return gt(e)??e.image}function vt(e){return e.frameImages?.find(e=>e.frameType===`last_frame`)?.image}function yt(e){if(!(e.frameImages!=null&&e.frameImages.length>0))return e.inputReferences!=null&&e.inputReferences.length>0?e.inputReferences:void 0}function bt(e,t){if(e.type===`url`){if(e.url.startsWith(`gs://`))return{gcsUri:e.url,mimeType:`image/png`};t.push({type:`unsupported`,feature:`URL-based image input`,details:`Google Generative AI video models require base64-encoded images or GCS URIs. URL will be ignored.`});return}return{bytesBase64Encoded:typeof e.data==`string`?e.data:oe(e.data),mimeType:e.mediaType||`image/png`}}function xt(e){return e.bytesBase64Encoded?{image:{bytesBase64Encoded:e.bytesBase64Encoded,mimeType:`image/png`},referenceType:`asset`}:e.gcsUri?{image:{gcsUri:e.gcsUri,mimeType:`image/png`},referenceType:`asset`}:e}function St(e,t){let n=bt(e,t);return n==null?void 0:{image:n,referenceType:`asset`}}var Ct=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}get provider(){return this.config.provider}get maxVideosPerCall(){return 4}async buildRequest(e){let t=[],n=await x({provider:`google`,providerOptions:e.providerOptions,schema:ht}),r=[{}],i=r[0];e.prompt!=null&&(i.prompt=e.prompt);let a=_t(e);if(a!=null){let e=bt(a,t);e!=null&&(i.image=e)}let o=vt(e);if(o!=null){let e=bt(o,t);e!=null&&(i.lastFrame=e)}let s=yt(e);s==null?n?.referenceImages!=null&&(i.referenceImages=n.referenceImages.map(e=>xt(e))):i.referenceImages=s.flatMap(e=>{let n=St(e,t);return n==null?[]:[n]});let c={sampleCount:e.n};if(e.aspectRatio&&(c.aspectRatio=e.aspectRatio),e.resolution&&(c.resolution={"1280x720":`720p`,"1920x1080":`1080p`,"3840x2160":`4k`}[e.resolution]||e.resolution),e.duration&&(c.durationSeconds=e.duration),e.seed&&(c.seed=e.seed),n!=null){let e=n;e.personGeneration!==void 0&&e.personGeneration!==null&&(c.personGeneration=e.personGeneration),e.negativePrompt!==void 0&&e.negativePrompt!==null&&(c.negativePrompt=e.negativePrompt);for(let[t,n]of Object.entries(e))[`pollIntervalMs`,`pollTimeoutMs`,`personGeneration`,`negativePrompt`,`referenceImages`].includes(t)||(c[t]=n)}return{instances:r,parameters:c,warnings:t,googleOptions:n}}async buildCompletedResult(e,t,n,r){let i=e.response;if(!i?.generateVideoResponse?.generatedSamples||i.generateVideoResponse.generatedSamples.length===0)throw new p({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No videos in response. Response: ${JSON.stringify(e)}`});let a=[],o=[],s=(await L(this.config.headers))?.[`x-goog-api-key`];for(let e of i.generateVideoResponse.generatedSamples)if(e.video?.uri){let t=s&&m(e.video.uri,this.config.baseURL)?`${e.video.uri}${e.video.uri.includes(`?`)?`&`:`?`}key=${s}`:e.video.uri;a.push({type:`url`,url:t,mediaType:`video/mp4`}),o.push({uri:e.video.uri})}if(a.length===0)throw new p({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No valid videos in response`});return{status:`completed`,videos:a,warnings:n,response:{timestamp:r,modelId:this.modelId,headers:t},providerMetadata:{google:{videos:o}}}}async doStart(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{instances:r,parameters:i,warnings:a}=await this.buildRequest(e),{value:o,responseHeaders:s}=await l({url:`${this.config.baseURL}/models/${this.modelId}:predictLongRunning`,headers:R(await L(this.config.headers),e.headers),body:{instances:r,parameters:i},successfulResponseHandler:I(wt),failedResponseHandler:G,abortSignal:e.abortSignal,fetch:this.config.fetch}),c=o.name;if(!c)throw new p({name:`GOOGLE_VIDEO_GENERATION_ERROR`,message:`No operation name returned from API`});return{operation:{operationName:c},warnings:a,response:{timestamp:n,modelId:this.modelId,headers:s}}}async doStatus(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{operationName:r}=e.operation,{value:i,responseHeaders:a}=await y({url:`${this.config.baseURL}/${r}`,validateUrl:!1,headers:R(await L(this.config.headers),e.headers),successfulResponseHandler:I(wt),failedResponseHandler:G,abortSignal:e.abortSignal,fetch:this.config.fetch});return i.done?i.error?{status:`error`,error:`Video generation failed: ${i.error.message}`,response:{timestamp:n,modelId:this.modelId,headers:a}}:this.buildCompletedResult(i,a,[],n):{status:`pending`,response:{timestamp:n,modelId:this.modelId,headers:a}}}},wt=r({name:o().nullish(),done:w().nullish(),error:r({code:v().nullish(),message:o(),status:o().nullish()}).nullish(),response:r({generateVideoResponse:r({generatedSamples:M(r({video:r({uri:o().nullish()}).nullish()})).nullish()}).nullish()}).nullish()}),Tt=s(()=>F(r({candidates:M(r({content:r({parts:M(r({inlineData:r({mimeType:o().nullish(),data:o().nullish()}).nullish()})).nullish()}).nullish()})).nullish()}))),Et=r({prebuiltVoiceConfig:r({voiceName:o()})}),Dt=s(()=>F(r({multiSpeakerVoiceConfig:r({speakerVoiceConfigs:M(r({speaker:o(),voiceConfig:Et}))}).optional()}))),Ot=`Kore`,kt=24e3,At=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}static[U](e){return O({modelId:e.modelId,config:e.config})}static[W](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({text:e,voice:t=Ot,outputFormat:n,instructions:r,speed:i,language:a,providerOptions:o}){let s=[],c=this.config.provider.includes(`vertex`)?[`googleVertex`,`vertex`]:[`google`],l;for(let e of c)if(l=await x({provider:e,providerOptions:o,schema:Dt}),l!=null)break;l==null&&!c.includes(`google`)&&(l=await x({provider:`google`,providerOptions:o,schema:Dt}));let u=l?.multiSpeakerVoiceConfig,d=u?{multiSpeakerVoiceConfig:u}:{voiceConfig:{prebuiltVoiceConfig:{voiceName:t}}},f=e;r!=null&&(u?s.push({type:`unsupported`,feature:`instructions`,details:"Google Gemini TTS ignores `instructions` when `multiSpeakerVoiceConfig` is set, because prepending them would break multi-speaker transcript parsing."}):f=`${r}: ${e}`),i!=null&&s.push({type:`unsupported`,feature:`speed`,details:"Google Gemini TTS models do not support the `speed` option. It was ignored."}),a!=null&&s.push({type:`unsupported`,feature:`language`,details:"Google Gemini TTS models do not support the `language` option. Language is detected automatically from the input text."});let p=`wav`;return n===`pcm`?p=`pcm`:n!=null&&n!==`wav`&&s.push({type:`unsupported`,feature:`outputFormat`,details:`Unsupported output format: ${n}. Using wav instead.`}),{requestBody:{contents:[{role:`user`,parts:[{text:f}]}],generationConfig:{responseModalities:[`AUDIO`],speechConfig:d}},warnings:s,outputFormat:p}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{requestBody:r,warnings:i,outputFormat:a}=await this.getArgs(e),{value:o,responseHeaders:s,rawValue:c}=await l({url:`${this.config.baseURL}/models/${this.modelId}:generateContent`,headers:R(this.config.headers?await L(this.config.headers):void 0,e.headers),body:r,failedResponseHandler:G,successfulResponseHandler:I(Tt),abortSignal:e.abortSignal,fetch:this.config.fetch}),u,d;for(let e of o.candidates??[]){for(let t of e.content?.parts??[])if(t.inlineData?.data){u=t.inlineData.data,d=t.inlineData.mimeType??void 0;break}if(u!=null)break}let f=jt(d)??kt,p=u==null?new Uint8Array:te(u),m=a===`pcm`||p.length===0?p:Mt(p,f);return a===`pcm`&&p.length>0&&i.push({type:`unsupported`,feature:`outputFormat`,details:`Returning raw PCM audio (signed 16-bit little-endian, mono, ${f} Hz). These bytes have no container header and are not directly playable; see providerMetadata.google for the sample rate and mime type.`}),{audio:m,warnings:i,request:{body:JSON.stringify(r)},response:{timestamp:n,modelId:this.modelId,headers:s,body:c},providerMetadata:{google:{sampleRate:f,mimeType:d??null}}}}};function jt(e){if(e==null)return;let t=/rate=(\d+)/.exec(e);return t?Number.parseInt(t[1],10):void 0}function Mt(e,t){let n=t*2,r=e.length,i=new ArrayBuffer(44+r),a=new DataView(i);X(a,0,`RIFF`),a.setUint32(4,36+r,!0),X(a,8,`WAVE`),X(a,12,`fmt `),a.setUint32(16,16,!0),a.setUint16(20,1,!0),a.setUint16(22,1,!0),a.setUint32(24,t,!0),a.setUint32(28,n,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),X(a,36,`data`),a.setUint32(40,r,!0);let o=new Uint8Array(i);return o.set(e,44),o}function X(e,t,n){for(let r=0;r<n.length;r++)e.setUint8(t+r,n.charCodeAt(r))}function Nt(e){if(e==null)return j();let t=e.total_input_tokens??0,n=e.total_output_tokens??0,r=e.total_thought_tokens??0,i=e.total_cached_tokens??0;return{inputTokens:{total:e.total_input_tokens??void 0,noCache:e.total_input_tokens==null?void 0:t-i,cacheRead:e.total_cached_tokens??void 0,cacheWrite:void 0},outputTokens:{total:e.total_output_tokens==null&&e.total_thought_tokens==null?void 0:n+r,text:e.total_output_tokens??void 0,reasoning:e.total_thought_tokens??void 0},raw:e}}function Pt(e){let t=e?.output_tokens_by_modality;if(t==null)return;let n={};for(let e of t)e?.modality!=null&&e.tokens!=null&&(n[e.modality]=e.tokens);return Object.keys(n).length>0?n:void 0}var Ft={pdf:`application/pdf`,txt:`text/plain`,md:`text/markdown`,markdown:`text/markdown`,doc:`application/msword`,docx:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`};function It(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(Ft))if(t.endsWith(`.${e}`))return n;return`application/octet-stream`}function Lt(e){let t=e.split(`/`),n=t[t.length-1];return n&&n.length>0?n:void 0}function Rt({annotation:e,generateId:t}){switch(e.type){case`url_citation`:{let n=e;return n.url==null||n.url.length===0?void 0:{type:`source`,sourceType:`url`,id:t(),url:n.url,...n.title==null?{}:{title:n.title}}}case`file_citation`:{let n=e,r=n.url??n.document_uri??n.file_name;if(r==null||r.length===0)return;if(r.startsWith(`http://`)||r.startsWith(`https://`))return{type:`source`,sourceType:`url`,id:t(),url:r,...n.file_name==null?{}:{title:n.file_name}};let i=n.file_name??Lt(r),a=It(r);return{type:`source`,sourceType:`document`,id:t(),mediaType:a,title:n.file_name??i??r,...i==null?{}:{filename:i}}}case`place_citation`:{let n=e;return n.url==null||n.url.length===0?void 0:{type:`source`,sourceType:`url`,id:t(),url:n.url,...n.name==null?{}:{title:n.name}}}default:return}}function zt({block:e,generateId:t}){let n=[];switch(e.type){case`url_context_result`:{let r=e.result??[];for(let e of r)e?.url==null||e.url.length===0||e.status!=null&&e.status!==`success`||n.push({type:`source`,sourceType:`url`,id:t(),url:e.url});break}case`google_search_result`:{let r=e.result??[];for(let e of r){let r=e?.url;r==null||r.length===0||n.push({type:`source`,sourceType:`url`,id:t(),url:r,...e.title==null?{}:{title:e.title}})}break}case`google_maps_result`:{let r=e.result??[];for(let e of r)for(let r of e.places??[])r.url==null||r.url.length===0||n.push({type:`source`,sourceType:`url`,id:t(),url:r.url,...r.name==null?{}:{title:r.name}});break}case`file_search_result`:{let r=e.result??[];for(let e of r){if(typeof e!=`object`||!e)continue;let r=e,i=r.url??r.document_uri??r.file_name;if(i==null||i.length===0)continue;if(i.startsWith(`http://`)||i.startsWith(`https://`)){n.push({type:`source`,sourceType:`url`,id:t(),url:i,...r.title==null?{}:{title:r.title}});continue}let a=r.file_name??Lt(i),o=It(i);n.push({type:`source`,sourceType:`document`,id:t(),mediaType:o,title:r.title??r.file_name??a??i,...a==null?{}:{filename:a}})}break}default:break}return n}function Bt({annotations:e,generateId:t}){if(e==null)return[];let n=new Set,r=[];for(let i of e){let e=Rt({annotation:i,generateId:t});if(e==null)continue;let a=e.sourceType===`url`?`url:${e.url}`:`doc:${e.filename??e.title}`;n.has(a)||(n.add(a),r.push(e))}return r}function Vt({status:e,hasFunctionCall:t}){switch(e){case`completed`:return t?`tool-calls`:`stop`;case`requires_action`:return`tool-calls`;case`failed`:return`error`;case`incomplete`:return`length`;case`cancelled`:return`other`;default:return`other`}}var Ht=new Set([`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`]),Ut=new Set([`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`]);function Wt(e){return e.replace(/_call$/,``)}function Gt(e){return e.replace(/_result$/,``)}function Kt({warnings:e,generateId:t,includeRawChunks:n,serviceTier:r}){let i,a,o=r,s,c=!1,l=new Map,u=new Set;function d(e){return e.sourceType===`url`?`url:${e.url}`:`doc:${e.filename??e.title}`}return new TransformStream({start(t){t.enqueue({type:`stream-start`,warnings:e})},transform(e,r){if(n&&r.enqueue({type:`raw`,rawValue:e.rawValue}),!e.success){s=`failed`,r.enqueue({type:`error`,error:e.error});return}let f=e.value,p=f.event_type;switch(p){case`interaction.created`:{let e=f.interaction;i=e?.id!=null&&e.id.length>0?e.id:void 0;let t=e?.created,n;if(typeof t==`string`){let e=new Date(t);Number.isNaN(e.getTime())||(n=e)}r.enqueue({type:`response-metadata`,...i==null?{}:{id:i},modelId:e?.model,...n?{timestamp:n}:{}});break}case`step.start`:{let e=f,n=e.step,a=e.index,o=`${i??`interaction`}:${a}`,s=n?.type;if(s===`model_output`){let e=n?.content?.[0];if(e?.type===`text`){l.set(a,{kind:`text`,id:o,emittedSourceKeys:new Set}),r.enqueue({type:`text-start`,id:o});let n=Bt({annotations:e.annotations,generateId:t});for(let e of n){let t=d(e);u.has(t)||(u.add(t),r.enqueue(e))}}else e?.type===`image`?l.set(a,{kind:`image`,id:o,...e.data==null?{}:{data:e.data},...e.mime_type==null?{}:{mimeType:e.mime_type},...e.uri==null?{}:{uri:e.uri}}):l.set(a,{kind:`pending_model_output`,id:o})}else if(s===`thought`){let e=n?.signature;if(l.set(a,{kind:`reasoning`,id:o,...e==null?{}:{signature:e}}),r.enqueue({type:`reasoning-start`,id:o}),Array.isArray(n?.summary))for(let e of n.summary)e?.type===`text`&&typeof e.text==`string`&&r.enqueue({type:`reasoning-delta`,id:o,delta:e.text})}else if(s===`function_call`){let e=n?.id??o,t=n?.name??`unknown`;c=!0;let i={kind:`function_call`,id:o,toolCallId:e,toolName:t,argumentsAccum:``,...n?.signature==null?{}:{signature:n.signature}};l.set(a,i),r.enqueue({type:`tool-input-start`,id:e,toolName:t})}else if(s!=null&&Ht.has(s)){let e=s===`mcp_server_tool_call`?n?.name??`mcp_server_tool`:Wt(s),t={kind:`builtin_tool_call`,id:o,blockType:s,toolCallId:n?.id??o,toolName:e,arguments:n?.arguments??{},callEmitted:!1};l.set(a,t)}else if(s!=null&&Ut.has(s)){let e=s===`mcp_server_tool_result`?n?.name??`mcp_server_tool`:Gt(s),t={kind:`builtin_tool_result`,id:o,blockType:s,callId:n?.call_id??o,toolName:e,result:n?.result??null,...n?.is_error==null?{}:{isError:n.is_error},resultEmitted:!1};l.set(a,t)}else l.set(a,{kind:`unknown`,id:o});break}case`step.delta`:{let e=f,n=l.get(e.index);if(n==null)break;let a=e.delta?.type;if(n.kind===`pending_model_output`&&(a===`text`||a===`text_annotation`||a===`text_annotation_delta`)){let t={kind:`text`,id:n.id,emittedSourceKeys:new Set};l.set(e.index,t),n=t,r.enqueue({type:`text-start`,id:t.id})}if(a===`image`&&(n.kind===`pending_model_output`||n.kind===`text`||n.kind===`image`)){let t=e.delta,a={};i!=null&&(a.interactionId=i);let o=Object.keys(a).length>0?{google:a}:void 0;t?.data!=null&&t.data.length>0?r.enqueue({type:`file`,mediaType:t.mime_type??`image/png`,data:{type:`data`,data:t.data},...o?{providerMetadata:o}:{}}):t?.uri!=null&&t.uri.length>0&&r.enqueue({type:`file`,mediaType:t.mime_type??`image/png`,data:{type:`url`,url:new URL(t.uri)},...o?{providerMetadata:o}:{}}),n.kind===`image`&&(n.data=void 0,n.uri=void 0);break}if(a===`video`&&(n.kind===`pending_model_output`||n.kind===`text`)){let t=e.delta,n={};i!=null&&(n.interactionId=i);let a=Object.keys(n).length>0?{google:n}:void 0;t?.data!=null&&t.data.length>0?r.enqueue({type:`file`,mediaType:t.mime_type??`video/mp4`,data:{type:`data`,data:t.data},...a?{providerMetadata:a}:{}}):t?.uri!=null&&t.uri.length>0&&r.enqueue({type:`file`,mediaType:t.mime_type??`video/mp4`,data:{type:`url`,url:new URL(t.uri)},...a?{providerMetadata:a}:{}});break}let o=e.delta;if(n.kind===`text`&&o?.type===`text`){let e=o.text??``;e.length>0&&r.enqueue({type:`text-delta`,id:n.id,delta:e})}else if(n.kind===`text`&&(o?.type===`text_annotation`||o?.type===`text_annotation_delta`)){let e=Bt({annotations:o.annotations,generateId:t});for(let t of e){let e=d(t);u.has(e)||(u.add(e),n.emittedSourceKeys.add(e),r.enqueue(t))}}else if(n.kind===`image`&&o?.type===`image`)o.data!=null&&(n.data=o.data),o.mime_type!=null&&(n.mimeType=o.mime_type),o.uri!=null&&(n.uri=o.uri);else if(n.kind===`reasoning`){if(o?.type===`thought_summary`){let e=o.content;e?.type===`text`&&typeof e.text==`string`&&r.enqueue({type:`reasoning-delta`,id:n.id,delta:e.text})}else if(o?.type===`thought_signature`){let e=o.signature;e!=null&&(n.signature=e)}}else if(n.kind===`function_call`&&o?.type===`arguments_delta`){let e=typeof o.arguments==`string`?o.arguments:``;e.length>0&&(n.argumentsAccum+=e,r.enqueue({type:`tool-input-delta`,id:n.toolCallId,delta:e})),o.id!=null&&(n.toolCallId=o.id),o.signature!=null&&(n.signature=o.signature),c=!0}else n.kind===`builtin_tool_call`&&o?.type===n.blockType?(o.id!=null&&(n.toolCallId=o.id),o.arguments!=null&&typeof o.arguments==`object`&&(n.arguments=o.arguments),o.name!=null&&n.blockType===`mcp_server_tool_call`&&(n.toolName=o.name)):n.kind===`builtin_tool_result`&&o?.type===n.blockType&&(o.call_id!=null&&(n.callId=o.call_id),o.result!==void 0&&(n.result=o.result),o.is_error!=null&&(n.isError=o.is_error),o.name!=null&&n.blockType===`mcp_server_tool_result`&&(n.toolName=o.name));break}case`step.stop`:{let e=f,n=l.get(e.index);if(n==null)break;if(n.kind===`text`){let e=i==null?void 0:{google:{interactionId:i}};r.enqueue({type:`text-end`,id:n.id,...e?{providerMetadata:e}:{}})}else if(n.kind===`reasoning`){let e={};n.signature!=null&&(e.signature=n.signature),i!=null&&(e.interactionId=i);let t=Object.keys(e).length>0?{google:e}:void 0;r.enqueue({type:`reasoning-end`,id:n.id,...t?{providerMetadata:t}:{}})}else if(n.kind===`image`){let e={};i!=null&&(e.interactionId=i);let t=Object.keys(e).length>0?{google:e}:void 0;n.data!=null&&n.data.length>0?r.enqueue({type:`file`,mediaType:n.mimeType??`image/png`,data:{type:`data`,data:n.data},...t?{providerMetadata:t}:{}}):n.uri!=null&&n.uri.length>0&&r.enqueue({type:`file`,mediaType:n.mimeType??`image/png`,data:{type:`url`,url:new URL(n.uri)},...t?{providerMetadata:t}:{}})}else if(n.kind===`function_call`){let e=n.argumentsAccum.length>0?n.argumentsAccum:`{}`;r.enqueue({type:`tool-input-end`,id:n.toolCallId});let t={};n.signature!=null&&(t.signature=n.signature),i!=null&&(t.interactionId=i);let a=Object.keys(t).length>0?{google:t}:void 0;r.enqueue({type:`tool-call`,toolCallId:n.toolCallId,toolName:n.toolName,input:e,...a?{providerMetadata:a}:{}})}else if(n.kind===`builtin_tool_call`&&!n.callEmitted)r.enqueue({type:`tool-call`,toolCallId:n.toolCallId,toolName:n.toolName,input:JSON.stringify(n.arguments??{}),providerExecuted:!0}),n.callEmitted=!0;else if(n.kind===`builtin_tool_result`&&!n.resultEmitted){r.enqueue({type:`tool-result`,toolCallId:n.callId,toolName:n.toolName,result:n.result??null}),n.resultEmitted=!0;let e=zt({block:{type:n.blockType,call_id:n.callId,result:n.result},generateId:t});for(let t of e){let e=d(t);u.has(e)||(u.add(e),r.enqueue(t))}}l.delete(e.index);break}case`interaction.status_update`:case`interaction.in_progress`:case`interaction.requires_action`:{let e=f;s=e.status==null?p===`interaction.requires_action`?`requires_action`:`in_progress`:e.status;break}case`interaction.completed`:{let e=f.interaction;e?.id!=null&&e.id.length>0&&(i=e.id),e?.status!=null&&(s=e.status),e?.usage!=null&&(a=e.usage),e?.service_tier!=null&&(o=e.service_tier);break}case`error`:{let e=f;s=`failed`;let t=e.error??{message:`Unknown interaction error`};r.enqueue({type:`error`,error:t});break}default:break}},flush(e){let t={unified:Vt({status:s,hasFunctionCall:c}),raw:s},n=Pt(a),r={google:{...i==null?{}:{interactionId:i},...o==null?{}:{serviceTier:o},...n==null?{}:{outputTokensByModality:n}}};e.enqueue({type:`finish`,finishReason:t,usage:Nt(a),providerMetadata:r})}})}function qt({prompt:e,previousInteractionId:t,store:n,mediaResolution:r}){let i=[],a=t!=null&&n===!1,o=t!=null&&n!==!1;a&&i.push({type:`other`,message:`google.interactions: providerOptions.google.previousInteractionId was set together with store: false. These are incoherent (the prior interaction cannot be referenced when nothing was stored on the server); the full history will be sent and previous_interaction_id will still be emitted.`});let s=o?Yt({prompt:e,previousInteractionId:t}):e,c=[],l=[];for(let e of s)switch(e.role){case`system`:c.push(e.content);break;case`user`:{let t=[];for(let n of e.content)if(n.type===`text`)t.push({type:`text`,text:n.text});else if(n.type===`file`){let e=Jt({part:n,warnings:i,mediaResolution:r});e!=null&&t.push(e)}let n=$t(t);n.length>0&&l.push({type:`user_input`,content:n});break}case`assistant`:{let t=[],n=()=>{t.length>0&&(l.push({type:`model_output`,content:t}),t=[])};for(let a of e.content)if(a.type===`text`)t.push({type:`text`,text:a.text});else if(a.type===`reasoning`){n();let e=a.providerOptions?.google?.signature;l.push({type:`thought`,...e==null?{}:{signature:e},summary:a.text.length>0?[{type:`text`,text:a.text}]:void 0})}else if(a.type===`file`){let e=Jt({part:a,warnings:i,mediaResolution:r});e!=null&&t.push(e)}else if(a.type===`tool-call`){n();let e=a.providerOptions?.google?.signature,t=typeof a.input==`string`?Xt(a.input):a.input??{};l.push({type:`function_call`,id:a.toolCallId,name:a.toolName,arguments:t,...e==null?{}:{signature:e}})}else i.push({type:`other`,message:`google.interactions: unsupported assistant content part type "${a.type}"; part dropped.`});n();break}case`tool`:{let t=[];for(let n of e.content){if(n.type!==`tool-result`){i.push({type:`other`,message:`google.interactions: unsupported tool message part type "${n.type}"; part dropped.`});continue}let e=Zt({toolCallId:n.toolCallId,toolName:n.toolName,output:n.output,signature:n.providerOptions?.google?.signature,warnings:i});t.push(e)}t.length>0&&l.push({type:`user_input`,content:t});break}}return{input:l,systemInstruction:c.length>0?c.join(`
7
7
 
8
- `):void 0,warnings:i}}function Jt({part:e,warnings:t,mediaResolution:n}){if(e.data.type===`text`)return{type:`text`,text:e.data.text};let r=s(e.mediaType),i;switch(r){case`image`:i=`image`;break;case`audio`:i=`audio`;break;case`video`:i=`video`;break;case`application`:case`text`:i=`document`;break;default:i=void 0}if(i==null){t.push({type:`other`,message:`google.interactions: unsupported file media type "${e.mediaType}"; part dropped.`});return}let o=n!=null&&(i===`image`||i===`video`)?{resolution:n}:{};switch(e.data.type){case`data`:{let t=p({part:e});return{type:i,data:D(e.data.data),mime_type:t,...o}}case`url`:return{type:i,uri:e.data.url.toString(),...a(e.mediaType)?{mime_type:e.mediaType}:{},...o};case`reference`:{let t=C({reference:e.data.reference,provider:`google`});return{type:i,uri:t,...a(e.mediaType)?{mime_type:e.mediaType}:{},...o}}}}function Yt({prompt:e,previousInteractionId:t}){let n=[],r=new Set;for(let i of e){if(i.role===`assistant`){if(i.content.some(e=>e.providerOptions?.google?.interactionId===t)){for(let e of i.content)e.type===`tool-call`&&r.add(e.toolCallId);continue}n.push(i);continue}if(i.role===`tool`){let e=i.content.filter(e=>e.type!==`tool-result`||!r.has(e.toolCallId));if(e.length===0)continue;n.push({...i,content:e});continue}n.push(i)}return n}function Xt(e){try{let t=i(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{value:t}}catch{return{value:e}}}function Zt({toolCallId:e,toolName:t,output:n,signature:r,warnings:i}){let a={type:`function_result`,call_id:e,name:t,...r==null?{}:{signature:r}};switch(n.type){case`text`:return{...a,result:n.value};case`json`:return{...a,result:JSON.stringify(n.value)};case`error-text`:return{...a,is_error:!0,result:n.value};case`error-json`:return{...a,is_error:!0,result:JSON.stringify(n.value)};case`execution-denied`:return{...a,is_error:!0,result:n.reason??`Tool execution denied by user.`};case`content`:{let e=[];for(let t of n.value)if(t.type===`text`)e.push({type:`text`,text:t.text});else if(t.type===`file`){if(s(t.mediaType)!==`image`){i.push({type:`other`,message:`google.interactions: tool-result file with mediaType "${t.mediaType}" is not supported (Interactions \`function_result.result\` accepts only text and image content); part dropped.`});continue}let n=Qt({part:t,warnings:i});n!=null&&e.push(n)}else i.push({type:`other`,message:`google.interactions: tool-result content part type "${t.type}" is not supported; part dropped.`});return{...a,result:e}}}}function Qt({part:e,warnings:t}){switch(e.data.type){case`data`:{let t=a(e.mediaType)?e.mediaType:p({part:{type:`file`,mediaType:e.mediaType,data:e.data}});return{type:`image`,data:D(e.data.data),mime_type:t}}case`url`:return{type:`image`,uri:e.data.url.toString(),...a(e.mediaType)?{mime_type:e.mediaType}:{}};case`reference`:return{type:`image`,uri:C({reference:e.data.reference,provider:`google`}),...a(e.mediaType)?{mime_type:e.mediaType}:{}};case`text`:t.push({type:`other`,message:'google.interactions: tool-result image part with `data.type === "text"` is not representable as an image; part dropped.'});return}}function $t(e){if(e.length<2)return e;let t=[];for(let n of e){let e=t[t.length-1];if(n.type===`text`&&e!=null&&e.type===`text`&&e.annotations==null&&n.annotations==null){let r={type:`text`,text:`${e.text}
8
+ `):void 0,warnings:i}}function Jt({part:e,warnings:n,mediaResolution:r}){if(e.data.type===`text`)return{type:`text`,text:e.data.text};let a=i(e.mediaType),o;switch(a){case`image`:o=`image`;break;case`audio`:o=`audio`;break;case`video`:o=`video`;break;case`application`:case`text`:o=`document`;break;default:o=void 0}if(o==null){n.push({type:`other`,message:`google.interactions: unsupported file media type "${e.mediaType}"; part dropped.`});return}let s=r!=null&&(o===`image`||o===`video`)?{resolution:r}:{};switch(e.data.type){case`data`:{let t=d({part:e});return{type:o,data:E(e.data.data),mime_type:t,...s}}case`url`:return{type:o,uri:e.data.url.toString(),...t(e.mediaType)?{mime_type:e.mediaType}:{},...s};case`reference`:{let n=S({reference:e.data.reference,provider:`google`});return{type:o,uri:n,...t(e.mediaType)?{mime_type:e.mediaType}:{},...s}}}}function Yt({prompt:e,previousInteractionId:t}){let n=[],r=new Set;for(let i of e){if(i.role===`assistant`){if(i.content.some(e=>e.providerOptions?.google?.interactionId===t)){for(let e of i.content)e.type===`tool-call`&&r.add(e.toolCallId);continue}n.push(i);continue}if(i.role===`tool`){let e=i.content.filter(e=>e.type!==`tool-result`||!r.has(e.toolCallId));if(e.length===0)continue;n.push({...i,content:e});continue}n.push(i)}return n}function Xt(t){try{let n=e(t);return typeof n==`object`&&n&&!Array.isArray(n)?n:{value:n}}catch{return{value:t}}}function Zt({toolCallId:e,toolName:t,output:n,signature:r,warnings:a}){let o={type:`function_result`,call_id:e,name:t,...r==null?{}:{signature:r}};switch(n.type){case`text`:return{...o,result:n.value};case`json`:return{...o,result:JSON.stringify(n.value)};case`error-text`:return{...o,is_error:!0,result:n.value};case`error-json`:return{...o,is_error:!0,result:JSON.stringify(n.value)};case`execution-denied`:return{...o,is_error:!0,result:n.reason??`Tool execution denied by user.`};case`content`:{let e=[];for(let t of n.value)if(t.type===`text`)e.push({type:`text`,text:t.text});else if(t.type===`file`){if(i(t.mediaType)!==`image`){a.push({type:`other`,message:`google.interactions: tool-result file with mediaType "${t.mediaType}" is not supported (Interactions \`function_result.result\` accepts only text and image content); part dropped.`});continue}let n=Qt({part:t,warnings:a});n!=null&&e.push(n)}else a.push({type:`other`,message:`google.interactions: tool-result content part type "${t.type}" is not supported; part dropped.`});return{...o,result:e}}}}function Qt({part:e,warnings:n}){switch(e.data.type){case`data`:{let n=t(e.mediaType)?e.mediaType:d({part:{type:`file`,mediaType:e.mediaType,data:e.data}});return{type:`image`,data:E(e.data.data),mime_type:n}}case`url`:return{type:`image`,uri:e.data.url.toString(),...t(e.mediaType)?{mime_type:e.mediaType}:{}};case`reference`:return{type:`image`,uri:S({reference:e.data.reference,provider:`google`}),...t(e.mediaType)?{mime_type:e.mediaType}:{}};case`text`:n.push({type:`other`,message:'google.interactions: tool-result image part with `data.type === "text"` is not representable as an image; part dropped.'});return}}function $t(e){if(e.length<2)return e;let t=[];for(let n of e){let e=t[t.length-1];if(n.type===`text`&&e!=null&&e.type===`text`&&e.annotations==null&&n.annotations==null){let r={type:`text`,text:`${e.text}
9
9
 
10
- ${n.text}`};t[t.length-1]=r;continue}t.push(n)}return t}var Z=()=>o({modality:l().nullish(),tokens:y().nullish()}).loose(),en=()=>o({total_input_tokens:y().nullish(),total_output_tokens:y().nullish(),total_thought_tokens:y().nullish(),total_cached_tokens:y().nullish(),total_tool_use_tokens:y().nullish(),total_tokens:y().nullish(),input_tokens_by_modality:N(Z()).nullish(),output_tokens_by_modality:N(Z()).nullish(),cached_tokens_by_modality:N(Z()).nullish(),tool_use_tokens_by_modality:N(Z()).nullish(),grounding_tool_count:N(o({type:l().nullish(),count:y().nullish()}).loose()).nullish()}).loose(),tn=()=>j([`in_progress`,`requires_action`,`completed`,`failed`,`cancelled`,`incomplete`]),nn=()=>_([o({type:E(`url_citation`),url:l().nullish(),title:l().nullish(),start_index:y().nullish(),end_index:y().nullish()}).loose(),o({type:E(`file_citation`),file_name:l().nullish(),document_uri:l().nullish(),url:l().nullish(),page_number:y().nullish(),media_id:l().nullish(),start_index:y().nullish(),end_index:y().nullish(),custom_metadata:x(l(),F()).nullish()}).loose(),o({type:E(`place_citation`),name:l().nullish(),url:l().nullish(),place_id:l().nullish(),start_index:y().nullish(),end_index:y().nullish()}).loose(),o({type:l()}).loose()]),rn=()=>o({type:l(),text:l().nullish(),data:l().nullish(),mime_type:l().nullish()}).loose(),an=()=>_([o({type:E(`text`),text:l(),annotations:N(nn()).nullish()}).loose(),o({type:E(`image`),data:l().nullish(),mime_type:l().nullish(),resolution:j([`low`,`medium`,`high`,`ultra_high`]).nullish(),uri:l().nullish()}).loose(),o({type:E(`video`),data:l().nullish(),mime_type:l().nullish(),uri:l().nullish()}).loose(),o({type:l()}).loose()]),on=[`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`],sn=[`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`],cn=()=>_([o({type:E(`user_input`),content:N(an()).nullish()}).loose(),o({type:E(`model_output`),content:N(an()).nullish()}).loose(),o({type:E(`function_call`),id:l(),name:l(),arguments:x(l(),F()).nullish(),signature:l().nullish()}).loose(),o({type:E(`thought`),signature:l().nullish(),summary:N(rn()).nullish()}).loose(),o({type:j(on),id:l(),arguments:x(l(),F()).nullish(),name:l().nullish(),server_name:l().nullish(),search_type:l().nullish(),signature:l().nullish()}).loose(),o({type:j(sn),call_id:l(),result:F().nullish(),is_error:T().nullish(),name:l().nullish(),server_name:l().nullish(),signature:l().nullish()}).loose(),o({type:l()}).loose()]),ln=u(()=>I(o({id:l().nullish(),created:l().nullish(),updated:l().nullish(),status:tn(),model:l().nullish(),agent:l().nullish(),steps:N(cn()).nullish(),usage:en().nullish(),service_tier:l().nullish(),previous_interaction_id:l().nullish(),response_modalities:N(l()).nullish()}).loose())),un=u(()=>I((()=>{let e=tn(),t=nn(),n=rn(),r=o({event_type:E(`interaction.created`),event_id:l().nullish(),interaction:o({id:l().nullish(),created:l().nullish(),model:l().nullish(),agent:l().nullish(),status:e.nullish()}).loose()}).loose(),i=o({event_type:E(`step.start`),event_id:l().nullish(),index:y(),step:cn()}).loose(),a=o({type:E(`text`),text:l()}).loose(),s=o({type:E(`thought_summary`),content:n.nullish()}).loose(),c=o({type:E(`thought_signature`),signature:l().nullish()}).loose(),u=o({type:E(`arguments_delta`),arguments:l().nullish(),id:l().nullish(),signature:l().nullish()}).loose(),d=o({type:j([`text_annotation_delta`,`text_annotation`]),annotations:N(t).nullish()}).loose(),f=_([a,o({type:E(`image`),data:l().nullish(),mime_type:l().nullish(),resolution:j([`low`,`medium`,`high`,`ultra_high`]).nullish(),uri:l().nullish()}).loose(),o({type:E(`video`),data:l().nullish(),mime_type:l().nullish(),uri:l().nullish()}).loose(),s,c,u,d,o({type:j(on),id:l().nullish(),arguments:x(l(),F()).nullish(),name:l().nullish(),server_name:l().nullish(),search_type:l().nullish(),signature:l().nullish()}).loose(),o({type:j(sn),call_id:l().nullish(),result:F().nullish(),is_error:T().nullish(),name:l().nullish(),server_name:l().nullish(),signature:l().nullish()}).loose(),o({type:l()}).loose()]);return _([r,i,o({event_type:E(`step.delta`),event_id:l().nullish(),index:y(),delta:f}).loose(),o({event_type:E(`step.stop`),event_id:l().nullish(),index:y()}).loose(),o({event_type:E(`interaction.status_update`),event_id:l().nullish(),interaction_id:l().nullish(),status:e.nullish()}).loose(),o({event_type:E(`interaction.in_progress`),event_id:l().nullish(),interaction_id:l().nullish(),status:e.nullish()}).loose(),o({event_type:E(`interaction.requires_action`),event_id:l().nullish(),interaction_id:l().nullish(),status:e.nullish()}).loose(),o({event_type:E(`interaction.completed`),event_id:l().nullish(),interaction:o({id:l().nullish(),status:e.nullish(),usage:en().nullish(),service_tier:l().nullish()}).loose()}).loose(),o({event_type:E(`error`),event_id:l().nullish(),error:o({code:l().nullish(),message:l().nullish()}).loose().nullish()}).loose(),o({event_type:l()}).loose()])})())),dn=u(()=>I(o({previousInteractionId:l().nullish(),store:T().nullish(),agent:l().nullish(),agentConfig:_([o({type:E(`dynamic`)}).loose(),o({type:E(`deep-research`),thinkingSummaries:j([`auto`,`none`]).nullish(),visualization:j([`off`,`auto`]).nullish(),collaborativePlanning:T().nullish()})]).nullish(),thinkingLevel:j([`minimal`,`low`,`medium`,`high`]).nullish(),thinkingSummaries:j([`auto`,`none`]).nullish(),responseFormat:N(_([o({type:E(`text`),mimeType:l().nullish(),schema:F().nullish()}).loose(),o({type:E(`image`),mimeType:l().nullish(),aspectRatio:j([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).nullish(),imageSize:j([`1K`,`2K`,`4K`,`512`]).nullish()}).loose(),o({type:E(`audio`),mimeType:l().nullish()}).loose()])).nullish(),imageConfig:o({aspectRatio:j([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).nullish(),imageSize:j([`1K`,`2K`,`4K`,`512`]).nullish()}).nullish(),mediaResolution:j([`low`,`medium`,`high`,`ultra_high`]).nullish(),responseModalities:N(j([`text`,`image`,`audio`,`video`,`document`])).nullish(),serviceTier:j([`flex`,`standard`,`priority`]).nullish(),systemInstruction:l().nullish(),signature:l().nullish(),interactionId:l().nullish(),pollingTimeoutMs:y().int().positive().nullish(),background:T().nullish(),environment:_([l(),o({type:E(`remote`),sources:N(_([o({type:E(`gcs`),source:l(),target:l().nullish()}),o({type:E(`repository`),source:l(),target:l().nullish()}),o({type:E(`inline`),content:l(),target:l()})])).nullish(),network:_([E(`disabled`),o({allowlist:N(o({domain:l(),transform:N(x(l(),l())).nullish()}))})]).nullish()})]).nullish()})));function Q({signature:e,interactionId:t}){let n={};return e!=null&&(n.signature=e),t!=null&&(n.interactionId=t),Object.keys(n).length>0?{providerMetadata:{google:n}}:{}}var fn=new Set([`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`]),pn=new Set([`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`]);function mn(e){return e.replace(/_call$/,``)}function hn(e){return e.replace(/_result$/,``)}function gn({steps:e,generateId:t,interactionId:n}){let r=[],i=!1;if(e==null)return{content:r,hasFunctionCall:i};for(let a of e){if(typeof a!=`object`||!a)continue;let e=a.type;if(typeof e==`string`)switch(e){case`user_input`:break;case`model_output`:{let e=a.content??[];for(let i of e){if(typeof i!=`object`||!i)continue;let e=i.type;if(e===`text`){let e=i.text??``,a=i.annotations;r.push({type:`text`,text:e,...Q({interactionId:n})});let o=Bt({annotations:a,generateId:t});for(let e of o)r.push(e)}else if(e===`image`){let e=i;e.data!=null&&e.data.length>0?r.push({type:`file`,mediaType:e.mime_type??`image/png`,data:{type:`data`,data:e.data},...Q({interactionId:n})}):e.uri!=null&&e.uri.length>0&&r.push({type:`file`,mediaType:e.mime_type??`image/png`,data:{type:`url`,url:new URL(e.uri)},...Q({interactionId:n})})}else if(e===`video`){let e=i;e.data!=null&&e.data.length>0?r.push({type:`file`,mediaType:e.mime_type??`video/mp4`,data:{type:`data`,data:e.data},...Q({interactionId:n})}):e.uri!=null&&e.uri.length>0&&r.push({type:`file`,mediaType:e.mime_type??`video/mp4`,data:{type:`url`,url:new URL(e.uri)},...Q({interactionId:n})})}}break}case`thought`:{let e=a,t=(Array.isArray(e.summary)?e.summary:[]).filter(e=>e?.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
11
- `);r.push({type:`reasoning`,text:t,...Q({signature:e.signature,interactionId:n})});break}case`function_call`:{i=!0;let e=a;r.push({type:`tool-call`,toolCallId:e.id,toolName:e.name,input:JSON.stringify(e.arguments??{}),...Q({signature:e.signature,interactionId:n})});break}default:if(fn.has(e)){let n=a,i=e===`mcp_server_tool_call`?n.name??`mcp_server_tool`:mn(e),o=JSON.stringify(n.arguments??{});r.push({type:`tool-call`,toolCallId:n.id??t(),toolName:i,input:o,providerExecuted:!0})}else if(pn.has(e)){let n=a,i=e===`mcp_server_tool_result`?n.name??`mcp_server_tool`:hn(e);r.push({type:`tool-result`,toolCallId:n.call_id??t(),toolName:i,result:n.result??null});let o=zt({block:a,generateId:t});for(let e of o)r.push(e)}break}}return{content:r,hasFunctionCall:i}}var _n=()=>globalThis.fetch;async function vn({baseURL:e,interactionId:t,headers:n,fetch:r=_n()}){if(t==null||t.length===0)return;let i=`${e}/interactions/${encodeURIComponent(t)}/cancel`;try{let e=await r(i,{method:`POST`,headers:ae(z({"Content-Type":`application/json`},n),c()),body:`{}`});try{await e.text()}catch{}}catch{}}var yn=new Set([`completed`,`failed`,`cancelled`,`incomplete`]);function bn(e){return e!=null&&yn.has(e)}var xn=1e3,Sn=1e4,Cn=1800*1e3;async function wn({baseURL:e,interactionId:t,headers:n,fetch:r,abortSignal:i,initialDelayMs:a=xn,maxDelayMs:o=Sn,timeoutMs:s=Cn}){if(t==null||t.length===0)throw Error(`google.interactions: cannot poll a background interaction without an id. The POST response did not include an interaction id.`);let c=Date.now(),l=a,u=`${e}/interactions/${encodeURIComponent(t)}`,d=()=>vn({baseURL:e,interactionId:t,headers:n,fetch:r});try{for(;;){if(i?.aborted)throw await d(),new DOMException(`Polling was aborted`,`AbortError`);if(Date.now()-c>s)throw Error(`google.interactions: timed out polling interaction ${t} after ${s}ms.`);await V(l,{abortSignal:i});let{value:e,rawValue:a,responseHeaders:f}=await b({url:u,validateUrl:!1,headers:n,failedResponseHandler:K,successfulResponseHandler:L(ln),abortSignal:i,fetch:r});if(bn(e.status))return{response:e,rawResponse:a,responseHeaders:f};l=Math.min(l*2,o)}}catch(e){throw g(e)&&await d(),e}}function Tn({tools:e,toolChoice:t}){let n=[],r=e?.length?e:void 0;if(r==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let i=[];for(let e of r){if(e.type===`function`){i.push({type:`function`,name:e.name,description:e.description??``,parameters:e.inputSchema});continue}if(e.type===`provider`){let t=e.args??{};switch(e.id){case`google.google_search`:{let e=t.searchTypes,n;if(typeof e==`object`&&e){let t=[];e.webSearch!=null&&t.push(`web_search`),e.imageSearch!=null&&t.push(`image_search`),t.length>0&&(n=t)}i.push({type:`google_search`,...n==null?{}:{search_types:n}});break}case`google.code_execution`:i.push({type:`code_execution`});break;case`google.url_context`:i.push({type:`url_context`});break;case`google.file_search`:i.push({type:`file_search`,...t.fileSearchStoreNames==null?{}:{file_search_store_names:t.fileSearchStoreNames},...t.topK==null?{}:{top_k:t.topK},...t.metadataFilter==null?{}:{metadata_filter:t.metadataFilter}});break;case`google.google_maps`:i.push({type:`google_maps`,...t.latitude==null?{}:{latitude:t.latitude},...t.longitude==null?{}:{longitude:t.longitude},...t.enableWidget==null?{}:{enable_widget:t.enableWidget}});break;case`google.computer_use`:i.push({type:`computer_use`,environment:t.environment??`browser`,...t.excludedPredefinedFunctions==null?{}:{excludedPredefinedFunctions:t.excludedPredefinedFunctions}});break;case`google.mcp_server`:i.push({type:`mcp_server`,...t.name==null?{}:{name:t.name},...t.url==null?{}:{url:t.url},...t.headers==null?{}:{headers:t.headers},...t.allowedTools==null?{}:{allowed_tools:t.allowedTools}});break;case`google.retrieval`:{let e=t.vertexAiSearchConfig??void 0;i.push({type:`retrieval`,...t.retrievalTypes==null?{retrieval_types:[`vertex_ai_search`]}:{retrieval_types:t.retrievalTypes},...e==null?{}:{vertex_ai_search_config:e}});break}default:n.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`provider-defined tool ${e.id} is not supported by google.interactions; tool dropped.`});break}continue}n.push({type:`unsupported`,feature:`tool of type ${e.type}`,details:`Only function tools and google.* provider-defined tools are supported by google.interactions; tool dropped.`})}let a=i.some(e=>e.type===`function`),o;if(t!=null&&a)switch(t.type){case`auto`:o=`auto`;break;case`required`:o=`any`;break;case`none`:o=`none`;break;case`tool`:o={allowed_tools:{mode:`validated`,tools:[t.toolName]}};break}return{tools:i.length>0?i:void 0,toolChoice:o,toolWarnings:n}}var En=3,Dn=500;function On({baseURL:e,interactionId:t,headers:n,fetch:r,abortSignal:i,maxRetries:a=En,retryDelayMs:o=Dn}){if(t.length===0)throw Error(`google.interactions: cannot stream a background interaction without an id.`);let s={...n,accept:`text/event-stream`},c,l=!1,u=0,d=!1,f,p=new AbortController,m=()=>p.abort();i!=null&&(i.aborted?p.abort():i.addEventListener(`abort`,m,{once:!0}));let h=p.signal;function _(){let n=`${e}/interactions/${encodeURIComponent(t)}`,r=new URLSearchParams({stream:`true`});return c!=null&&r.set(`last_event_id`,c),`${n}?${r.toString()}`}async function v(){let{value:e}=await b({url:_(),validateUrl:!1,headers:s,failedResponseHandler:K,successfulResponseHandler:A(un),abortSignal:h,fetch:r});return e.getReader()}return new ReadableStream({async start(s){try{for(;!l&&!h.aborted;){if(f==null)try{f=await v(),d=!1}catch(e){if(g(e)||h.aborted){s.error(e);return}if(u++,u>=a){s.error(e);return}await V(o*u,{abortSignal:h});continue}try{let{done:e,value:t}=await f.read();if(e){if(f=void 0,l)break;if(d)u=0;else{if(u++,u>=a){s.error(Error(`google.interactions: SSE stream closed without producing any events.`));return}await V(o*u,{abortSignal:h})}continue}if(d=!0,t.success){let e=t.value;typeof e.event_id==`string`&&e.event_id.length>0&&(c=e.event_id),(e.event_type===`interaction.completed`||e.event_type===`error`)&&(l=!0)}s.enqueue(t)}catch(e){if(g(e)||h.aborted){s.error(e);return}if(f=void 0,u++,u>=a){s.error(e);return}await V(o*u,{abortSignal:h})}}s.close()}catch(e){s.error(e)}finally{i?.removeEventListener(`abort`,m),f?.cancel().catch(()=>{}),f=void 0,h.aborted&&!l&&await vn({baseURL:e,interactionId:t,headers:n,fetch:r})}},cancel(){p.abort(),f?.cancel().catch(()=>{}),f=void 0}})}function kn({response:e,warnings:t,generateId:n,includeRawChunks:r,headerServiceTier:i}){return new ReadableStream({start(a){a.enqueue({type:`stream-start`,warnings:t});let o=typeof e.id==`string`&&e.id.length>0?e.id:void 0,s,c=e.created;if(typeof c==`string`){let e=new Date(c);Number.isNaN(e.getTime())||(s=e)}a.enqueue({type:`response-metadata`,...o==null?{}:{id:o},modelId:e.model??void 0,...s?{timestamp:s}:{}}),r&&a.enqueue({type:`raw`,rawValue:e});let{content:l,hasFunctionCall:u}=gn({steps:e.steps??null,generateId:n,interactionId:o}),d=0,f=()=>`${o??`agent`}:${d++}`;for(let e of l)switch(e.type){case`text`:{let t=f(),n=e.providerMetadata;a.enqueue({type:`text-start`,id:t}),e.text.length>0&&a.enqueue({type:`text-delta`,id:t,delta:e.text}),a.enqueue({type:`text-end`,id:t,...n?{providerMetadata:n}:{}});break}case`reasoning`:{let t=f(),n=e.providerMetadata;a.enqueue({type:`reasoning-start`,id:t}),e.text.length>0&&a.enqueue({type:`reasoning-delta`,id:t,delta:e.text}),a.enqueue({type:`reasoning-end`,id:t,...n?{providerMetadata:n}:{}});break}case`tool-call`:{let t=e.providerMetadata;a.enqueue({type:`tool-input-start`,id:e.toolCallId,toolName:e.toolName,...e.providerExecuted?{providerExecuted:e.providerExecuted}:{}}),a.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:e.input}),a.enqueue({type:`tool-input-end`,id:e.toolCallId}),a.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,...e.providerExecuted?{providerExecuted:e.providerExecuted}:{},...t?{providerMetadata:t}:{}});break}case`tool-result`:a.enqueue({type:`tool-result`,toolCallId:e.toolCallId,toolName:e.toolName,result:e.result});break;case`source`:case`file`:a.enqueue(e);break;default:break}let p=e.service_tier??i,m={unified:Vt({status:e.status,hasFunctionCall:u}),raw:e.status},h={google:{...o==null?{}:{interactionId:o},...p==null?{}:{serviceTier:p}}};a.enqueue({type:`finish`,finishReason:m,usage:Nt(e.usage),providerMetadata:h}),a.close()}})}var An=class e{constructor(e,t){this.specificationVersion=`v4`,typeof e==`string`?(this.modelId=e,this.agent=void 0):`managedAgent`in e?(this.modelId=e.managedAgent,this.agent=e.managedAgent):(this.modelId=e.agent,this.agent=e.agent),this.config=t}static[W](e){return{...k({modelId:e.modelId,config:e.config}),agent:e.agent}}static[G](t){return new e(t.agent==null?t.modelId:{agent:t.agent},t.config)}get provider(){return this.config.provider}get supportedUrls(){return this.config.supportedUrls?this.config.supportedUrls():{"image/*":[/^https?:\/\/.+/],"application/pdf":[/^https?:\/\/.+/],"audio/*":[/^https?:\/\/.+/],"video/*":[/^https?:\/\/(www\.)?youtube\.com\/watch\?v=.+/,/^https?:\/\/youtu\.be\/.+/,/^gs:\/\/.+/]}}async getArgs(e){let t=[],n=await S({provider:`google`,providerOptions:e.providerOptions,schema:dn}),r=this.agent!=null;r||(e.frequencyPenalty!=null&&t.push({type:`unsupported`,feature:`frequencyPenalty`}),e.presencePenalty!=null&&t.push({type:`unsupported`,feature:`presencePenalty`}));let i=e.tools!=null&&e.tools.length>0,a,o;if(i){let n=Tn({tools:e.tools,toolChoice:e.toolChoice});a=n.tools,o=n.toolChoice,t.push(...n.toolWarnings)}let s=[];if(e.responseFormat?.type===`json`)if(r)t.push({type:`other`,message:`google.interactions: structured output (responseFormat) is not supported when an agent is set; responseFormat will be ignored.`});else{let t={type:`text`,mime_type:`application/json`,...e.responseFormat.schema==null?{}:{schema:e.responseFormat.schema}};s.push(t)}if(n?.responseFormat!=null)for(let e of n.responseFormat)e.type===`text`?s.push($({type:`text`,mime_type:e.mimeType??void 0,schema:e.schema??void 0})):e.type===`image`?s.push($({type:`image`,mime_type:e.mimeType??void 0,aspect_ratio:e.aspectRatio??void 0,image_size:e.imageSize??void 0})):e.type===`audio`&&s.push($({type:`audio`,mime_type:e.mimeType??void 0}));let{input:c,systemInstruction:l,warnings:u}=qt({prompt:e.prompt,previousInteractionId:n?.previousInteractionId??void 0,store:n?.store??void 0,mediaResolution:n?.mediaResolution??void 0});t.push(...u);let d=l,f=n?.systemInstruction??void 0;d!=null&&f!=null?t.push({type:`other`,message:`google.interactions: both AI SDK system message and providerOptions.google.systemInstruction were set; using the AI SDK system message.`}):d==null&&f!=null&&(d=f);let p;if(r){let r=[];e.temperature!=null&&r.push(`temperature`),e.topP!=null&&r.push(`topP`),e.topK!=null&&r.push(`topK`),e.frequencyPenalty!=null&&r.push(`frequencyPenalty`),e.presencePenalty!=null&&r.push(`presencePenalty`),e.seed!=null&&r.push(`seed`),e.stopSequences!=null&&e.stopSequences.length>0&&r.push(`stopSequences`),e.maxOutputTokens!=null&&r.push(`maxOutputTokens`),n?.thinkingLevel!=null&&r.push(`thinkingLevel`),n?.thinkingSummaries!=null&&r.push(`thinkingSummaries`),n?.imageConfig!=null&&r.push(`imageConfig`),r.length>0&&t.push({type:`other`,message:`google.interactions: ${r.join(`, `)} ${r.length===1?`is`:`are`} not supported when an agent is set; use providerOptions.google.agentConfig instead. Dropped from the request body.`}),p=void 0}else if(p=$({temperature:e.temperature??void 0,top_p:e.topP??void 0,top_k:e.topK??void 0,seed:e.seed??void 0,stop_sequences:e.stopSequences!=null&&e.stopSequences.length>0?e.stopSequences:void 0,max_output_tokens:e.maxOutputTokens??void 0,thinking_level:n?.thinkingLevel??void 0,thinking_summaries:n?.thinkingSummaries??void 0,tool_choice:o}),n?.imageConfig!=null){let e=s.some(e=>e.type===`image`);t.push({type:`other`,message:e?`google.interactions: providerOptions.google.imageConfig is deprecated and was ignored because providerOptions.google.responseFormat already supplies an image entry. Use responseFormat exclusively.`:`google.interactions: providerOptions.google.imageConfig is deprecated. Use providerOptions.google.responseFormat with a { type: "image", ... } entry instead.`}),e||s.push({type:`image`,mime_type:`image/png`,...n.imageConfig.aspectRatio==null?{}:{aspect_ratio:n.imageConfig.aspectRatio},...n.imageConfig.imageSize==null?{}:{image_size:n.imageConfig.imageSize}})}let m;if(r&&n?.agentConfig!=null){let e=n.agentConfig;e.type===`deep-research`?m=$({type:`deep-research`,thinking_summaries:e.thinkingSummaries??void 0,visualization:e.visualization??void 0,collaborative_planning:e.collaborativePlanning??void 0}):e.type===`dynamic`&&(m={type:`dynamic`})}let h;if(n?.environment!=null)if(!r)t.push({type:`other`,message:`google.interactions: environment is only supported when an agent is set; environment will be omitted from the request body.`});else if(typeof n.environment==`string`)h=n.environment;else{let e=n.environment,t=e.sources?.map(e=>e.type===`inline`?{type:`inline`,content:e.content,target:e.target}:$({type:e.type,source:e.source,target:e.target??void 0})),r;e.network===`disabled`?r=`disabled`:e.network!=null&&(r={allowlist:e.network.allowlist.map(e=>$({domain:e.domain,transform:e.transform??void 0}))}),h=$({type:`remote`,sources:t!=null&&t.length>0?t:void 0,network:r})}return{args:$({...r?{agent:this.agent}:{model:this.modelId},input:c,system_instruction:d,tools:a,response_format:s.length>0?s:void 0,response_modalities:n?.responseModalities==null?void 0:n.responseModalities,previous_interaction_id:n?.previousInteractionId??void 0,service_tier:n?.serviceTier??void 0,store:n?.store??void 0,generation_config:p!=null&&Object.keys(p).length>0?p:void 0,agent_config:m,environment:h,background:n?.background??void 0}),warnings:t,isAgent:r,isBackground:n?.background===!0,pollingTimeoutMs:n?.pollingTimeoutMs??void 0}}async doGenerate(e){let{args:t,warnings:n,isAgent:r,pollingTimeoutMs:i}=await this.getArgs(e),a=`${this.config.baseURL}/interactions`,o=z(this.config.headers?await R(this.config.headers):void 0,e.headers),{responseHeaders:s,value:c,rawValue:l}=await d({url:a,headers:o,body:t,failedResponseHandler:K,successfulResponseHandler:L(ln),abortSignal:e.abortSignal,fetch:this.config.fetch});if(r&&!bn(c.status)){let t=await wn({baseURL:this.config.baseURL,interactionId:c.id,headers:o,fetch:this.config.fetch,abortSignal:e.abortSignal,timeoutMs:i});c=t.response,l=t.rawResponse,s=t.responseHeaders??s}let u=typeof c.id==`string`&&c.id.length>0?c.id:void 0,{content:f,hasFunctionCall:p}=gn({steps:c.steps??null,generateId:this.config.generateId??B,interactionId:u}),m={unified:Vt({status:c.status,hasFunctionCall:p}),raw:c.status},h=c.service_tier??s?.[`x-gemini-service-tier`]??void 0,g=Pt(c.usage),_={google:{...u==null?{}:{interactionId:u},...h==null?{}:{serviceTier:h},...g==null?{}:{outputTokensByModality:g}}},v;if(typeof c.created==`string`){let e=new Date(c.created);Number.isNaN(e.getTime())||(v=e)}return{content:f,finishReason:m,usage:Nt(c.usage),warnings:n,providerMetadata:_,request:{body:t},response:{headers:s,body:l,...u==null?{}:{id:u},...v?{timestamp:v}:{},modelId:c.model??void 0}}}async doStream(e){let{args:t,warnings:n,isBackground:r,pollingTimeoutMs:i}=await this.getArgs(e),a=`${this.config.baseURL}/interactions`,o=z(this.config.headers?await R(this.config.headers):void 0,e.headers);if(r)return this.doStreamBackground({args:t,warnings:n,url:a,mergedHeaders:o,options:e,pollingTimeoutMs:i});let s={...t,stream:!0},{responseHeaders:c,value:l}=await d({url:a,headers:o,body:s,failedResponseHandler:K,successfulResponseHandler:A(un),abortSignal:e.abortSignal,fetch:this.config.fetch}),u=c?.[`x-gemini-service-tier`],f=Kt({warnings:n,generateId:this.config.generateId??B,includeRawChunks:e.includeRawChunks,serviceTier:u});return{stream:l.pipeThrough(f),request:{body:s},response:{headers:c}}}async doStreamBackground({args:e,warnings:t,url:n,mergedHeaders:r,options:i,pollingTimeoutMs:a}){let{responseHeaders:o,value:s}=await d({url:n,headers:r,body:e,failedResponseHandler:K,successfulResponseHandler:L(ln),abortSignal:i.abortSignal,fetch:this.config.fetch}),c=s.id;if(c==null||c.length===0)throw Error(`google.interactions: background POST response did not include an interaction id; cannot stream the result.`);let l=o?.[`x-gemini-service-tier`];if(bn(s.status))return{stream:kn({response:s,warnings:t,generateId:this.config.generateId??B,includeRawChunks:i.includeRawChunks,headerServiceTier:l}),request:{body:e},response:{headers:o}};let u=On({baseURL:this.config.baseURL,interactionId:c,headers:r,fetch:this.config.fetch,abortSignal:i.abortSignal}),f=Kt({warnings:t,generateId:this.config.generateId??B,includeRawChunks:i.includeRawChunks,serviceTier:l});return{stream:u.pipeThrough(f),request:{body:e},response:{headers:o}}}};function $(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function jn(e){let t=new URL(e),n=t.pathname.split(`/`),r=n.at(-1);return(r===`v1beta`||r===`v1alpha`)&&(n.pop(),t.pathname=n.join(`/`)||`/`),t}function Mn(e,t){let n=jn(e);return n.protocol=n.protocol===`https:`?`wss:`:`ws:`,n.pathname=`${n.pathname.replace(/\/$/,``)}/ws/${t}`,n}var Nn=class{constructor(){this.turnCounter=0,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,this.turnClosed=!1,this.inputAudioRate=16e3}get responseId(){return`google-resp-${this.turnCounter}`}get itemId(){return`google-item-${this.turnCounter}`}beginTurnIfClosed(){this.turnClosed&&=(this.turnCounter++,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,!1)}parseServerEvent(e){let t=e;return t.setupComplete==null?t.toolCall==null?t.toolCallCancellation==null?t.goAway==null?t.sessionResumptionUpdate==null?t.serverContent==null?t.inputTranscription?.text==null?{type:`custom`,rawType:String(Object.keys(t)[0]),raw:e}:{type:`input-transcription-completed`,itemId:`google-input-${this.turnCounter}`,transcript:t.inputTranscription.text,raw:e}:this.parseServerContent(t.serverContent,e):{type:`custom`,rawType:`sessionResumptionUpdate`,raw:e}:{type:`custom`,rawType:`goAway`,raw:e}:{type:`custom`,rawType:`toolCallCancellation`,raw:e}:(this.beginTurnIfClosed(),(t.toolCall.functionCalls??[]).flatMap(t=>{let n=JSON.stringify(t.args??{});return[{type:`function-call-arguments-delta`,responseId:this.responseId,itemId:this.itemId,callId:t.id,delta:n,raw:e},{type:`function-call-arguments-done`,responseId:this.responseId,itemId:this.itemId,callId:t.id,name:t.name,arguments:n,raw:e}]})):{type:`session-created`,raw:e}}parseServerContent(e,t){let n=[];if(e.interrupted&&n.push({type:`speech-started`,raw:t}),e.modelTurn?.parts){this.beginTurnIfClosed();for(let r of e.modelTurn.parts)r.inlineData?.data&&(this.hasAudio=!0,n.push({type:`audio-delta`,responseId:this.responseId,itemId:this.itemId,delta:r.inlineData.data,raw:t})),r.text&&(this.hasText=!0,n.push({type:`text-delta`,responseId:this.responseId,itemId:this.itemId,delta:r.text,raw:t}))}return e.outputTranscription?.text&&(this.hasTranscript=!0,n.push({type:`audio-transcript-delta`,responseId:this.responseId,itemId:this.itemId,delta:e.outputTranscription.text,raw:t})),e.inputTranscription?.text&&n.push({type:`input-transcription-completed`,itemId:`google-input-${this.turnCounter}`,transcript:e.inputTranscription.text,raw:t}),e.generationComplete&&n.push({type:`custom`,rawType:`generationComplete`,raw:t}),e.turnComplete&&(this.hasAudio&&n.push({type:`audio-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),this.hasText&&n.push({type:`text-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),this.hasTranscript&&n.push({type:`audio-transcript-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),n.push({type:`response-done`,responseId:this.responseId,status:`completed`,raw:t}),this.turnClosed=!0),n.length===0?{type:`custom`,rawType:`serverContent`,raw:t}:n.length===1?n[0]:n}serializeClientEvent(e,t){switch(e.type){case`session-update`:return e.config.inputAudioFormat?.rate!=null&&(this.inputAudioRate=e.config.inputAudioFormat.rate),{setup:Fn(e.config,t)};case`input-audio-append`:return{realtimeInput:{audio:{data:e.audio,mimeType:`audio/pcm;rate=${this.inputAudioRate}`}}};case`input-audio-commit`:return{realtimeInput:{audioStreamEnd:!0}};case`input-audio-clear`:case`response-create`:case`response-cancel`:case`conversation-item-truncate`:return null;case`conversation-item-create`:{let t=e.item;switch(t.type){case`text-message`:return{realtimeInput:{text:t.text}};case`function-call-output`:return Pn(t);case`audio-message`:return null}break}}return null}};async function Pn(e){let t=await w({text:e.output}),n=t.success?t.value:{};return{toolResponse:{functionResponses:[{id:e.callId,name:e.name,response:n}]}}}function Fn(e,t){let n={model:J(t)},r={};if(e?.outputModalities==null?r.responseModalities=[`AUDIO`]:r.responseModalities=e.outputModalities.map(e=>e.toUpperCase()),e?.voice!=null&&(r.speechConfig={voiceConfig:{prebuiltVoiceConfig:{voiceName:e.voice}}}),n.generationConfig=r,e?.instructions!=null&&(n.systemInstruction={parts:[{text:e.instructions}]}),e?.tools!=null&&e.tools.length>0&&(n.tools=[{functionDeclarations:e.tools.map(e=>({name:e.name,description:e.description,parameters:q(e.parameters)}))}]),e?.inputAudioTranscription!=null&&(n.inputAudioTranscription={}),e?.outputAudioTranscription!=null&&(n.outputAudioTranscription={}),e?.providerOptions==null)return n;let{google:i,...a}=e.providerOptions;Object.assign(n,a);let o=m(i)?i:void 0;return o?.translationConfig!=null&&(n.generationConfig={...m(n.generationConfig)?n.generationConfig:r,translationConfig:o.translationConfig}),n}var In=`google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateContentConstrained`;function Ln(e){let t=jn(e);return t.pathname=`${t.pathname.replace(/\/$/,``)}/v1alpha/auth_tokens`,t.toString()}function Rn(e){return Mn(e,In).toString()}var zn=class{constructor(e,t){this.specificationVersion=`v4`,this.mapper=new Nn,this.modelId=e,this.provider=t.provider,this.config=t}async doCreateClientSecret(e){let t=this.config.fetch??fetch,n=this.config.headers()[`x-goog-api-key`];if(!n)throw Error(`Google Generative AI API key is required for realtime token creation.`);let r=Date.now(),i=(e.expiresAfterSeconds??60)*1e3,a=new Date(r+i).toISOString(),o=new Date(r+i+1800*1e3).toISOString(),s=Fn(e.sessionConfig,this.modelId),c=await t(`${Ln(this.config.baseURL)}?key=${encodeURIComponent(n)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({uses:0,expireTime:o,newSessionExpireTime:a,bidiGenerateContentSetup:s})});if(!c.ok){let e=await c.text();throw Error(`Google realtime auth token request failed: ${c.status} ${e}`)}let l=await c.json();return{token:l.name,url:Rn(this.config.baseURL),expiresAt:l.expireTime?Math.floor(new Date(l.expireTime).getTime()/1e3):void 0}}getWebSocketConfig(e){return{url:`${e.url}?access_token=${encodeURIComponent(e.token)}`}}parseServerEvent(e){return this.mapper.parseServerEvent(e)}serializeClientEvent(e){return this.mapper.serializeClientEvent(e,this.modelId)}buildSessionConfig(e){return Fn(e,this.modelId)}},Bn=u(()=>I(o({echoTargetLanguage:T().optional()}))),Vn=`google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent`,Hn=1e3,Un=24e3,Wn=128;function Gn(e,t){let n=Mn(e,Vn);return n.searchParams.set(`key`,t),n}var Kn=class e{constructor(e,t){this.specificationVersion=`v4`,this.modelId=e,this.config=t}static[W](e){return k({modelId:e.modelId,config:e.config})}static[G](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doStream(e){var n;if(e.targetLanguage==null)throw new t({argument:`targetLanguage`,message:`targetLanguage is required for translation model '${this.modelId}'.`});let r=((n=this.config._internal)?.currentDate)?.call(n)??new Date,i=await S({provider:`google`,providerOptions:e.providerOptions,schema:Bn}),a=[];Zn(e.inputAudioFormat),e.sourceLanguage!=null&&a.push({type:`unsupported`,feature:`sourceLanguage`,details:`The Gemini Live translation API auto-detects the source language and does not accept a source language.`}),e.outputAudioFormat!=null&&a.push({type:`unsupported`,feature:`outputAudioFormat`,details:`The Gemini Live API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format.`});let o=z(this.config.headers(),e.headers),s;for(let[e,t]of Object.entries(o))e.toLowerCase()===`x-goog-api-key`&&t!=null&&(s=t);if(s==null)throw Error(`Google Generative AI API key is required for streaming translation.`);let c=Object.fromEntries(Object.entries(o).filter(([e])=>e.toLowerCase()!==`x-goog-api-key`)),l=Xn({modelId:this.modelId,targetLanguage:e.targetLanguage,providerOptions:i});return{request:{body:l},response:{timestamp:r,modelId:this.modelId},stream:qn({webSocket:this.config.webSocket,url:Gn(this.config.baseURL,s),headers:c,setup:l,inputAudioRate:e.inputAudioFormat.rate??16e3,finishGraceMs:this.config._internal?.finishGraceMs??Hn,warnings:a,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function qn({webSocket:e,url:t,headers:n,setup:r,inputAudioRate:i,finishGraceMs:a,warnings:o,audio:s,abortSignal:c,includeRawChunks:l}){let u=!1,d=()=>{};return new ReadableStream({start:f=>{let p,m,h,g=new Promise(e=>{h=e}),_=0,v=``,y=``,b=``,x=``,S=!1,C,T=!1,E=!1,O=0,k,A=()=>`google-item-${_}`,j=()=>{k!=null&&(clearTimeout(k),k=void 0)},M=()=>{u||k!=null||(k=setTimeout(()=>{k=void 0,F()},a))},N=()=>{T=!0,O=0,j()};d=e=>{j(),p==null?s.cancel().catch(()=>{}):p.cancel().catch(()=>{}),m?.close(e)};let P=e=>{u||(u=!0,d(),f.error(e))},F=()=>{u||((y!==``||x!==``)&&I(),u=!0,f.enqueue({type:`finish`,sourceText:v,outputText:b,usage:C}),f.close(),d(1e3))},I=()=>{y!==``&&(f.enqueue({type:`source-transcript-final`,id:A(),text:y}),v+=y,y=``),x!==``&&(f.enqueue({type:`output-text-final`,id:A(),text:x}),b+=x,x=``),_++},L=async e=>{p=s.getReader();try{for(;;){let{done:t,value:n}=await p.read();if(t||u)break;e.send(JSON.stringify({realtimeInput:{audio:{data:D(n),mimeType:`audio/pcm;rate=${i}`}}})),await ne(e)}}finally{p.releaseLock(),p=void 0}u||(e.send(JSON.stringify({realtimeInput:{audioStreamEnd:!0}})),S=!0,E&&!T&&M())};m=ee({url:t,headers:n,webSocket:e,abortSignal:c,onAbort:P,onProcessingError:P,onOpen:e=>{f.enqueue({type:`stream-start`,warnings:o}),e.send(JSON.stringify({setup:r})),g.then(()=>u?void 0:L(e)).catch(P)},onMessageText:async e=>{if(u)return;let t=await w({text:e});if(!t.success)return;let n=t.value;if(l&&f.enqueue({type:`raw`,rawValue:n}),n.setupComplete!=null&&h(),n.usageMetadata!=null&&(C=Jn(C,n.usageMetadata)),n.error!=null){P(Error(n.error.message??`Google Live API error`));return}let r=n.serverContent?.inputTranscription?.text??n.inputTranscription?.text;r&&(N(),y+=r,f.enqueue({type:`source-transcript-delta`,id:A(),delta:r}));let i=n.serverContent;if(i!=null){for(let e of i.modelTurn?.parts??[])if(e.inlineData?.data){f.enqueue({type:`audio`,id:A(),audio:e.inlineData.data});let t=Yn(e.inlineData.data);if(S&&t!=null){if(O+=t,O>=a){F();return}}else N()}i.outputTranscription?.text&&(N(),x+=i.outputTranscription.text,f.enqueue({type:`output-text-delta`,id:A(),delta:i.outputTranscription.text})),i.turnComplete&&(I(),T=!1,E=!0,S&&M())}},onSocketError:()=>{P(Error(`Google Live translation error`))},onClose:({code:e,reason:t})=>{if(!u){if(k!=null){F();return}P(Error(`Google Live translation WebSocket closed unexpectedly before finishing (code ${e??`unknown`}${t?`, reason: ${t}`:``}).`))}}})},cancel:()=>{u||(u=!0,d())}})}function Jn(e,t){let n=e?.inputAudioTokens,r=e?.outputAudioTokens;for(let e of t.promptTokensDetails??[])e.modality===`AUDIO`&&e.tokenCount!=null&&(n=(n??0)+e.tokenCount);for(let e of t.responseTokensDetails??[])e.modality===`AUDIO`&&e.tokenCount!=null&&(r=(r??0)+e.tokenCount);return n==null&&r==null?e:{...e,...n==null?{}:{inputAudioTokens:n},...r==null?{}:{outputAudioTokens:r}}}function Yn(e){let t;try{t=te(e)}catch{return}if(t.byteLength<2)return;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=Math.floor(t.byteLength/2);for(let e=0;e<r;e++)if(Math.abs(n.getInt16(e*2,!0))>Wn)return;return r/Un*1e3}function Xn({modelId:e,targetLanguage:t,providerOptions:n}){return{model:J(e),generationConfig:{responseModalities:[`AUDIO`],translationConfig:{targetLanguageCode:t,...n?.echoTargetLanguage==null?{}:{echoTargetLanguage:n.echoTargetLanguage}}},inputAudioTranscription:{},outputAudioTranscription:{}}}function Zn(e){if(e.type!==`audio/pcm`||e.rate!=null&&e.rate!==16e3)throw new t({argument:`inputAudioFormat`,message:`The Gemini Live translation API only supports 16kHz 16-bit PCM input audio.`})}var Qn=[`text/html`,`text/css`,`text/plain`,`text/xml`,`text/csv`,`text/rtf`,`text/javascript`,`application/json`,`application/pdf`,`image/bmp`,`image/jpeg`,`image/png`,`image/webp`,`video/mp4`,`video/mpeg`,`video/quicktime`,`video/avi`,`video/x-flv`,`video/mpg`,`video/webm`,`video/wmv`,`video/3gpp`],$n=/^https:\/\/.*$/;function er(e){return/(^|\/)gemini-/.test(e)&&!/(^|\/)gemini-2\.0/.test(e)}function tr(e={}){let t=O(e.baseURL)??`https://generativelanguage.googleapis.com/v1beta`,n=e.name??`google.generative-ai`,r=()=>ae({"x-goog-api-key":f({apiKey:e.apiKey,environmentVariableName:`GOOGLE_GENERATIVE_AI_API_KEY`,description:`Google Generative AI`}),...e.headers},`ai-sdk/google/${ce}`),i=i=>new Ve(i,{provider:n,baseURL:t,headers:r,generateId:e.generateId??B,supportedUrls:()=>({"*":[RegExp(`^${t}/files/.*$`),RegExp(`^https://(?:www\\.)?youtube\\.com/watch\\?v=[\\w-]+(?:&[\\w=&.-]*)?$`),RegExp(`^https://youtu\\.be/[\\w-]+(?:\\?[\\w=&.-]*)?$`)],...er(i)?Object.fromEntries(Qn.map(e=>[e,[$n]])):{}}),fetch:e.fetch}),a=i=>new de(i,{provider:n,baseURL:t,headers:r,fetch:e.fetch}),o=(i,a={})=>new lt(i,a,{provider:n,baseURL:t,headers:r,fetch:e.fetch}),s=()=>new ft({provider:n,baseURL:t,headers:r,fetch:e.fetch}),c=i=>new Ct(i,{provider:n,baseURL:t,headers:r,fetch:e.fetch,generateId:e.generateId??B}),l=i=>new zn(i,{provider:`${n}.realtime`,baseURL:t,headers:r,fetch:e.fetch}),u=i=>new Kn(i,{provider:`${n}.speech-translation`,baseURL:t,headers:r,webSocket:e.webSocket}),d=i=>new At(i,{provider:`${n}.speech`,baseURL:t,headers:r,fetch:e.fetch}),p=Object.assign(e=>l(e),{getToken:async e=>{let t=await l(e.model).doCreateClientSecret({sessionConfig:e.sessionConfig,expiresAfterSeconds:e.expiresAfterSeconds});return{token:t.token,url:t.url,expiresAt:t.expiresAt}}}),m=i=>new An(i,{provider:`${n}.interactions`,baseURL:t,headers:r,generateId:e.generateId??B,fetch:e.fetch}),h=function(e){if(new.target)throw Error(`The Google Generative AI model function cannot be called with the new keyword.`);return i(e)};return h.specificationVersion=`v4`,h.languageModel=i,h.chat=i,h.generativeAI=i,h.embedding=a,h.embeddingModel=a,h.textEmbedding=a,h.textEmbeddingModel=a,h.image=o,h.imageModel=o,h.video=c,h.videoModel=c,h.experimental_realtime=p,h.files=s,h.speech=d,h.speechModel=d,h.translation=u,h.speechTranslationModel=u,h.interactions=m,h.tools=st,h}var nr=tr();export{zn as Experimental_GoogleRealtimeModel,Kn as Experimental_GoogleSpeechTranslationModel,Kn as Experimental_GoogleTranslationModel,ce as VERSION,tr as createGoogle,tr as createGoogleGenerativeAI,nr as google};
10
+ ${n.text}`};t[t.length-1]=r;continue}t.push(n)}return t}var Z=()=>r({modality:o().nullish(),tokens:v().nullish()}).loose(),en=()=>r({total_input_tokens:v().nullish(),total_output_tokens:v().nullish(),total_thought_tokens:v().nullish(),total_cached_tokens:v().nullish(),total_tool_use_tokens:v().nullish(),total_tokens:v().nullish(),input_tokens_by_modality:M(Z()).nullish(),output_tokens_by_modality:M(Z()).nullish(),cached_tokens_by_modality:M(Z()).nullish(),tool_use_tokens_by_modality:M(Z()).nullish(),grounding_tool_count:M(r({type:o().nullish(),count:v().nullish()}).loose()).nullish()}).loose(),tn=()=>A([`in_progress`,`requires_action`,`completed`,`failed`,`cancelled`,`incomplete`]),nn=()=>g([r({type:T(`url_citation`),url:o().nullish(),title:o().nullish(),start_index:v().nullish(),end_index:v().nullish()}).loose(),r({type:T(`file_citation`),file_name:o().nullish(),document_uri:o().nullish(),url:o().nullish(),page_number:v().nullish(),media_id:o().nullish(),start_index:v().nullish(),end_index:v().nullish(),custom_metadata:b(o(),P()).nullish()}).loose(),r({type:T(`place_citation`),name:o().nullish(),url:o().nullish(),place_id:o().nullish(),start_index:v().nullish(),end_index:v().nullish()}).loose(),r({type:o()}).loose()]),rn=()=>r({type:o(),text:o().nullish(),data:o().nullish(),mime_type:o().nullish()}).loose(),an=()=>g([r({type:T(`text`),text:o(),annotations:M(nn()).nullish()}).loose(),r({type:T(`image`),data:o().nullish(),mime_type:o().nullish(),resolution:A([`low`,`medium`,`high`,`ultra_high`]).nullish(),uri:o().nullish()}).loose(),r({type:T(`video`),data:o().nullish(),mime_type:o().nullish(),uri:o().nullish()}).loose(),r({type:o()}).loose()]),on=[`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`],sn=[`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`],cn=()=>g([r({type:T(`user_input`),content:M(an()).nullish()}).loose(),r({type:T(`model_output`),content:M(an()).nullish()}).loose(),r({type:T(`function_call`),id:o(),name:o(),arguments:b(o(),P()).nullish(),signature:o().nullish()}).loose(),r({type:T(`thought`),signature:o().nullish(),summary:M(rn()).nullish()}).loose(),r({type:A(on),id:o(),arguments:b(o(),P()).nullish(),name:o().nullish(),server_name:o().nullish(),search_type:o().nullish(),signature:o().nullish()}).loose(),r({type:A(sn),call_id:o(),result:P().nullish(),is_error:w().nullish(),name:o().nullish(),server_name:o().nullish(),signature:o().nullish()}).loose(),r({type:o()}).loose()]),ln=s(()=>F(r({id:o().nullish(),created:o().nullish(),updated:o().nullish(),status:tn(),model:o().nullish(),agent:o().nullish(),steps:M(cn()).nullish(),usage:en().nullish(),service_tier:o().nullish(),previous_interaction_id:o().nullish(),response_modalities:M(o()).nullish()}).loose())),un=s(()=>F((()=>{let e=tn(),t=nn(),n=rn(),i=r({event_type:T(`interaction.created`),event_id:o().nullish(),interaction:r({id:o().nullish(),created:o().nullish(),model:o().nullish(),agent:o().nullish(),status:e.nullish()}).loose()}).loose(),a=r({event_type:T(`step.start`),event_id:o().nullish(),index:v(),step:cn()}).loose(),s=r({type:T(`text`),text:o()}).loose(),c=r({type:T(`thought_summary`),content:n.nullish()}).loose(),l=r({type:T(`thought_signature`),signature:o().nullish()}).loose(),u=r({type:T(`arguments_delta`),arguments:o().nullish(),id:o().nullish(),signature:o().nullish()}).loose(),d=r({type:A([`text_annotation_delta`,`text_annotation`]),annotations:M(t).nullish()}).loose(),f=g([s,r({type:T(`image`),data:o().nullish(),mime_type:o().nullish(),resolution:A([`low`,`medium`,`high`,`ultra_high`]).nullish(),uri:o().nullish()}).loose(),r({type:T(`video`),data:o().nullish(),mime_type:o().nullish(),uri:o().nullish()}).loose(),c,l,u,d,r({type:A(on),id:o().nullish(),arguments:b(o(),P()).nullish(),name:o().nullish(),server_name:o().nullish(),search_type:o().nullish(),signature:o().nullish()}).loose(),r({type:A(sn),call_id:o().nullish(),result:P().nullish(),is_error:w().nullish(),name:o().nullish(),server_name:o().nullish(),signature:o().nullish()}).loose(),r({type:o()}).loose()]);return g([i,a,r({event_type:T(`step.delta`),event_id:o().nullish(),index:v(),delta:f}).loose(),r({event_type:T(`step.stop`),event_id:o().nullish(),index:v()}).loose(),r({event_type:T(`interaction.status_update`),event_id:o().nullish(),interaction_id:o().nullish(),status:e.nullish()}).loose(),r({event_type:T(`interaction.in_progress`),event_id:o().nullish(),interaction_id:o().nullish(),status:e.nullish()}).loose(),r({event_type:T(`interaction.requires_action`),event_id:o().nullish(),interaction_id:o().nullish(),status:e.nullish()}).loose(),r({event_type:T(`interaction.completed`),event_id:o().nullish(),interaction:r({id:o().nullish(),status:e.nullish(),usage:en().nullish(),service_tier:o().nullish()}).loose()}).loose(),r({event_type:T(`error`),event_id:o().nullish(),error:r({code:o().nullish(),message:o().nullish()}).loose().nullish()}).loose(),r({event_type:o()}).loose()])})())),dn=s(()=>F(r({previousInteractionId:o().nullish(),store:w().nullish(),agent:o().nullish(),agentConfig:g([r({type:T(`dynamic`)}).loose(),r({type:T(`deep-research`),thinkingSummaries:A([`auto`,`none`]).nullish(),visualization:A([`off`,`auto`]).nullish(),collaborativePlanning:w().nullish()})]).nullish(),thinkingLevel:A([`minimal`,`low`,`medium`,`high`]).nullish(),thinkingSummaries:A([`auto`,`none`]).nullish(),responseFormat:M(g([r({type:T(`text`),mimeType:o().nullish(),schema:P().nullish()}).loose(),r({type:T(`image`),mimeType:o().nullish(),aspectRatio:A([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).nullish(),imageSize:A([`1K`,`2K`,`4K`,`512`]).nullish()}).loose(),r({type:T(`audio`),mimeType:o().nullish()}).loose()])).nullish(),imageConfig:r({aspectRatio:A([`1:1`,`2:3`,`3:2`,`3:4`,`4:3`,`4:5`,`5:4`,`9:16`,`16:9`,`21:9`,`1:8`,`8:1`,`1:4`,`4:1`]).nullish(),imageSize:A([`1K`,`2K`,`4K`,`512`]).nullish()}).nullish(),mediaResolution:A([`low`,`medium`,`high`,`ultra_high`]).nullish(),responseModalities:M(A([`text`,`image`,`audio`,`video`,`document`])).nullish(),serviceTier:A([`flex`,`standard`,`priority`]).nullish(),systemInstruction:o().nullish(),signature:o().nullish(),interactionId:o().nullish(),pollingTimeoutMs:v().int().positive().nullish(),background:w().nullish(),environment:g([o(),r({type:T(`remote`),sources:M(g([r({type:T(`gcs`),source:o(),target:o().nullish()}),r({type:T(`repository`),source:o(),target:o().nullish()}),r({type:T(`inline`),content:o(),target:o()})])).nullish(),network:g([T(`disabled`),r({allowlist:M(r({domain:o(),transform:M(b(o(),o())).nullish()}))})]).nullish()})]).nullish()})));function Q({signature:e,interactionId:t}){let n={};return e!=null&&(n.signature=e),t!=null&&(n.interactionId=t),Object.keys(n).length>0?{providerMetadata:{google:n}}:{}}var fn=new Set([`google_search_call`,`code_execution_call`,`url_context_call`,`file_search_call`,`google_maps_call`,`mcp_server_tool_call`]),pn=new Set([`google_search_result`,`code_execution_result`,`url_context_result`,`file_search_result`,`google_maps_result`,`mcp_server_tool_result`]);function mn(e){return e.replace(/_call$/,``)}function hn(e){return e.replace(/_result$/,``)}function gn({steps:e,generateId:t,interactionId:n}){let r=[],i=!1;if(e==null)return{content:r,hasFunctionCall:i};for(let a of e){if(typeof a!=`object`||!a)continue;let e=a.type;if(typeof e==`string`)switch(e){case`user_input`:break;case`model_output`:{let e=a.content??[];for(let i of e){if(typeof i!=`object`||!i)continue;let e=i.type;if(e===`text`){let e=i.text??``,a=i.annotations;r.push({type:`text`,text:e,...Q({interactionId:n})});let o=Bt({annotations:a,generateId:t});for(let e of o)r.push(e)}else if(e===`image`){let e=i;e.data!=null&&e.data.length>0?r.push({type:`file`,mediaType:e.mime_type??`image/png`,data:{type:`data`,data:e.data},...Q({interactionId:n})}):e.uri!=null&&e.uri.length>0&&r.push({type:`file`,mediaType:e.mime_type??`image/png`,data:{type:`url`,url:new URL(e.uri)},...Q({interactionId:n})})}else if(e===`video`){let e=i;e.data!=null&&e.data.length>0?r.push({type:`file`,mediaType:e.mime_type??`video/mp4`,data:{type:`data`,data:e.data},...Q({interactionId:n})}):e.uri!=null&&e.uri.length>0&&r.push({type:`file`,mediaType:e.mime_type??`video/mp4`,data:{type:`url`,url:new URL(e.uri)},...Q({interactionId:n})})}}break}case`thought`:{let e=a,t=(Array.isArray(e.summary)?e.summary:[]).filter(e=>e?.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
11
+ `);r.push({type:`reasoning`,text:t,...Q({signature:e.signature,interactionId:n})});break}case`function_call`:{i=!0;let e=a;r.push({type:`tool-call`,toolCallId:e.id,toolName:e.name,input:JSON.stringify(e.arguments??{}),...Q({signature:e.signature,interactionId:n})});break}default:if(fn.has(e)){let n=a,i=e===`mcp_server_tool_call`?n.name??`mcp_server_tool`:mn(e),o=JSON.stringify(n.arguments??{});r.push({type:`tool-call`,toolCallId:n.id??t(),toolName:i,input:o,providerExecuted:!0})}else if(pn.has(e)){let n=a,i=e===`mcp_server_tool_result`?n.name??`mcp_server_tool`:hn(e);r.push({type:`tool-result`,toolCallId:n.call_id??t(),toolName:i,result:n.result??null});let o=zt({block:a,generateId:t});for(let e of o)r.push(e)}break}}return{content:r,hasFunctionCall:i}}var _n=()=>globalThis.fetch;async function vn({baseURL:e,interactionId:t,headers:n,fetch:r=_n()}){if(t==null||t.length===0)return;let i=`${e}/interactions/${encodeURIComponent(t)}/cancel`;try{let e=await r(i,{method:`POST`,headers:ae(R({"Content-Type":`application/json`},n),a()),body:`{}`});try{await e.text()}catch{}}catch{}}var yn=new Set([`completed`,`failed`,`cancelled`,`incomplete`]);function bn(e){return e!=null&&yn.has(e)}var xn=1e3,Sn=1e4,Cn=1800*1e3;async function wn({baseURL:e,interactionId:t,headers:n,fetch:r,abortSignal:i,initialDelayMs:a=xn,maxDelayMs:o=Sn,timeoutMs:s=Cn}){if(t==null||t.length===0)throw Error(`google.interactions: cannot poll a background interaction without an id. The POST response did not include an interaction id.`);let c=Date.now(),l=a,u=`${e}/interactions/${encodeURIComponent(t)}`,d=()=>vn({baseURL:e,interactionId:t,headers:n,fetch:r});try{for(;;){if(i?.aborted)throw await d(),new DOMException(`Polling was aborted`,`AbortError`);if(Date.now()-c>s)throw Error(`google.interactions: timed out polling interaction ${t} after ${s}ms.`);await B(l,{abortSignal:i});let{value:e,rawValue:a,responseHeaders:f}=await y({url:u,validateUrl:!1,headers:n,failedResponseHandler:G,successfulResponseHandler:I(ln),abortSignal:i,fetch:r});if(bn(e.status))return{response:e,rawResponse:a,responseHeaders:f};l=Math.min(l*2,o)}}catch(e){throw h(e)&&await d(),e}}function Tn({tools:e,toolChoice:t}){let n=[],r=e?.length?e:void 0;if(r==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let i=[];for(let e of r){if(e.type===`function`){i.push({type:`function`,name:e.name,description:e.description??``,parameters:e.inputSchema});continue}if(e.type===`provider`){let t=e.args??{};switch(e.id){case`google.google_search`:{let e=t.searchTypes,n;if(typeof e==`object`&&e){let t=[];e.webSearch!=null&&t.push(`web_search`),e.imageSearch!=null&&t.push(`image_search`),t.length>0&&(n=t)}i.push({type:`google_search`,...n==null?{}:{search_types:n}});break}case`google.code_execution`:i.push({type:`code_execution`});break;case`google.url_context`:i.push({type:`url_context`});break;case`google.file_search`:i.push({type:`file_search`,...t.fileSearchStoreNames==null?{}:{file_search_store_names:t.fileSearchStoreNames},...t.topK==null?{}:{top_k:t.topK},...t.metadataFilter==null?{}:{metadata_filter:t.metadataFilter}});break;case`google.google_maps`:i.push({type:`google_maps`,...t.latitude==null?{}:{latitude:t.latitude},...t.longitude==null?{}:{longitude:t.longitude},...t.enableWidget==null?{}:{enable_widget:t.enableWidget}});break;case`google.computer_use`:i.push({type:`computer_use`,environment:t.environment??`browser`,...t.excludedPredefinedFunctions==null?{}:{excludedPredefinedFunctions:t.excludedPredefinedFunctions}});break;case`google.mcp_server`:i.push({type:`mcp_server`,...t.name==null?{}:{name:t.name},...t.url==null?{}:{url:t.url},...t.headers==null?{}:{headers:t.headers},...t.allowedTools==null?{}:{allowed_tools:t.allowedTools}});break;case`google.retrieval`:{let e=t.vertexAiSearchConfig??void 0;i.push({type:`retrieval`,...t.retrievalTypes==null?{retrieval_types:[`vertex_ai_search`]}:{retrieval_types:t.retrievalTypes},...e==null?{}:{vertex_ai_search_config:e}});break}default:n.push({type:`unsupported`,feature:`provider-defined tool ${e.id}`,details:`provider-defined tool ${e.id} is not supported by google.interactions; tool dropped.`});break}continue}n.push({type:`unsupported`,feature:`tool of type ${e.type}`,details:`Only function tools and google.* provider-defined tools are supported by google.interactions; tool dropped.`})}let a=i.some(e=>e.type===`function`),o;if(t!=null&&a)switch(t.type){case`auto`:o=`auto`;break;case`required`:o=`any`;break;case`none`:o=`none`;break;case`tool`:o={allowed_tools:{mode:`validated`,tools:[t.toolName]}};break}return{tools:i.length>0?i:void 0,toolChoice:o,toolWarnings:n}}var En=3,Dn=500;function On({baseURL:e,interactionId:t,headers:n,fetch:r,abortSignal:i,maxRetries:a=En,retryDelayMs:o=Dn}){if(t.length===0)throw Error(`google.interactions: cannot stream a background interaction without an id.`);let s={...n,accept:`text/event-stream`},c,l=!1,u=0,d=!1,f,p=new AbortController,m=()=>p.abort();i!=null&&(i.aborted?p.abort():i.addEventListener(`abort`,m,{once:!0}));let g=p.signal;function _(){let n=`${e}/interactions/${encodeURIComponent(t)}`,r=new URLSearchParams({stream:`true`});return c!=null&&r.set(`last_event_id`,c),`${n}?${r.toString()}`}async function v(){let{value:e}=await y({url:_(),validateUrl:!1,headers:s,failedResponseHandler:G,successfulResponseHandler:k(un),abortSignal:g,fetch:r});return e.getReader()}return new ReadableStream({async start(s){try{for(;!l&&!g.aborted;){if(f==null)try{f=await v(),d=!1}catch(e){if(h(e)||g.aborted){s.error(e);return}if(u++,u>=a){s.error(e);return}await B(o*u,{abortSignal:g});continue}try{let{done:e,value:t}=await f.read();if(e){if(f=void 0,l)break;if(d)u=0;else{if(u++,u>=a){s.error(Error(`google.interactions: SSE stream closed without producing any events.`));return}await B(o*u,{abortSignal:g})}continue}if(d=!0,t.success){let e=t.value;typeof e.event_id==`string`&&e.event_id.length>0&&(c=e.event_id),(e.event_type===`interaction.completed`||e.event_type===`error`)&&(l=!0)}s.enqueue(t)}catch(e){if(h(e)||g.aborted){s.error(e);return}if(f=void 0,u++,u>=a){s.error(e);return}await B(o*u,{abortSignal:g})}}s.close()}catch(e){s.error(e)}finally{i?.removeEventListener(`abort`,m),f?.cancel().catch(()=>{}),f=void 0,g.aborted&&!l&&await vn({baseURL:e,interactionId:t,headers:n,fetch:r})}},cancel(){p.abort(),f?.cancel().catch(()=>{}),f=void 0}})}function kn({response:e,warnings:t,generateId:n,includeRawChunks:r,headerServiceTier:i}){return new ReadableStream({start(a){a.enqueue({type:`stream-start`,warnings:t});let o=typeof e.id==`string`&&e.id.length>0?e.id:void 0,s,c=e.created;if(typeof c==`string`){let e=new Date(c);Number.isNaN(e.getTime())||(s=e)}a.enqueue({type:`response-metadata`,...o==null?{}:{id:o},modelId:e.model??void 0,...s?{timestamp:s}:{}}),r&&a.enqueue({type:`raw`,rawValue:e});let{content:l,hasFunctionCall:u}=gn({steps:e.steps??null,generateId:n,interactionId:o}),d=0,f=()=>`${o??`agent`}:${d++}`;for(let e of l)switch(e.type){case`text`:{let t=f(),n=e.providerMetadata;a.enqueue({type:`text-start`,id:t}),e.text.length>0&&a.enqueue({type:`text-delta`,id:t,delta:e.text}),a.enqueue({type:`text-end`,id:t,...n?{providerMetadata:n}:{}});break}case`reasoning`:{let t=f(),n=e.providerMetadata;a.enqueue({type:`reasoning-start`,id:t}),e.text.length>0&&a.enqueue({type:`reasoning-delta`,id:t,delta:e.text}),a.enqueue({type:`reasoning-end`,id:t,...n?{providerMetadata:n}:{}});break}case`tool-call`:{let t=e.providerMetadata;a.enqueue({type:`tool-input-start`,id:e.toolCallId,toolName:e.toolName,...e.providerExecuted?{providerExecuted:e.providerExecuted}:{}}),a.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:e.input}),a.enqueue({type:`tool-input-end`,id:e.toolCallId}),a.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,...e.providerExecuted?{providerExecuted:e.providerExecuted}:{},...t?{providerMetadata:t}:{}});break}case`tool-result`:a.enqueue({type:`tool-result`,toolCallId:e.toolCallId,toolName:e.toolName,result:e.result});break;case`source`:case`file`:a.enqueue(e);break;default:break}let p=e.service_tier??i,m={unified:Vt({status:e.status,hasFunctionCall:u}),raw:e.status},h={google:{...o==null?{}:{interactionId:o},...p==null?{}:{serviceTier:p}}};a.enqueue({type:`finish`,finishReason:m,usage:Nt(e.usage),providerMetadata:h}),a.close()}})}var An=class e{constructor(e,t){this.specificationVersion=`v4`,typeof e==`string`?(this.modelId=e,this.agent=void 0):`managedAgent`in e?(this.modelId=e.managedAgent,this.agent=e.managedAgent):(this.modelId=e.agent,this.agent=e.agent),this.config=t}static[U](e){return{...O({modelId:e.modelId,config:e.config}),agent:e.agent}}static[W](t){return new e(t.agent==null?t.modelId:{agent:t.agent},t.config)}get provider(){return this.config.provider}get supportedUrls(){return this.config.supportedUrls?this.config.supportedUrls():{"image/*":[/^https?:\/\/.+/],"application/pdf":[/^https?:\/\/.+/],"audio/*":[/^https?:\/\/.+/],"video/*":[/^https?:\/\/(www\.)?youtube\.com\/watch\?v=.+/,/^https?:\/\/youtu\.be\/.+/,/^gs:\/\/.+/]}}async getArgs(e){let t=[],n=await x({provider:`google`,providerOptions:e.providerOptions,schema:dn}),r=this.agent!=null;r||(e.frequencyPenalty!=null&&t.push({type:`unsupported`,feature:`frequencyPenalty`}),e.presencePenalty!=null&&t.push({type:`unsupported`,feature:`presencePenalty`}));let i=e.tools!=null&&e.tools.length>0,a,o;if(i){let n=Tn({tools:e.tools,toolChoice:e.toolChoice});a=n.tools,o=n.toolChoice,t.push(...n.toolWarnings)}let s=[];if(e.responseFormat?.type===`json`)if(r)t.push({type:`other`,message:`google.interactions: structured output (responseFormat) is not supported when an agent is set; responseFormat will be ignored.`});else{let t={type:`text`,mime_type:`application/json`,...e.responseFormat.schema==null?{}:{schema:e.responseFormat.schema}};s.push(t)}if(n?.responseFormat!=null)for(let e of n.responseFormat)e.type===`text`?s.push($({type:`text`,mime_type:e.mimeType??void 0,schema:e.schema??void 0})):e.type===`image`?s.push($({type:`image`,mime_type:e.mimeType??void 0,aspect_ratio:e.aspectRatio??void 0,image_size:e.imageSize??void 0})):e.type===`audio`&&s.push($({type:`audio`,mime_type:e.mimeType??void 0}));let{input:c,systemInstruction:l,warnings:u}=qt({prompt:e.prompt,previousInteractionId:n?.previousInteractionId??void 0,store:n?.store??void 0,mediaResolution:n?.mediaResolution??void 0});t.push(...u);let d=l,f=n?.systemInstruction??void 0;d!=null&&f!=null?t.push({type:`other`,message:`google.interactions: both AI SDK system message and providerOptions.google.systemInstruction were set; using the AI SDK system message.`}):d==null&&f!=null&&(d=f);let p;if(r){let r=[];e.temperature!=null&&r.push(`temperature`),e.topP!=null&&r.push(`topP`),e.topK!=null&&r.push(`topK`),e.frequencyPenalty!=null&&r.push(`frequencyPenalty`),e.presencePenalty!=null&&r.push(`presencePenalty`),e.seed!=null&&r.push(`seed`),e.stopSequences!=null&&e.stopSequences.length>0&&r.push(`stopSequences`),e.maxOutputTokens!=null&&r.push(`maxOutputTokens`),n?.thinkingLevel!=null&&r.push(`thinkingLevel`),n?.thinkingSummaries!=null&&r.push(`thinkingSummaries`),n?.imageConfig!=null&&r.push(`imageConfig`),r.length>0&&t.push({type:`other`,message:`google.interactions: ${r.join(`, `)} ${r.length===1?`is`:`are`} not supported when an agent is set; use providerOptions.google.agentConfig instead. Dropped from the request body.`}),p=void 0}else if(p=$({temperature:e.temperature??void 0,top_p:e.topP??void 0,top_k:e.topK??void 0,seed:e.seed??void 0,stop_sequences:e.stopSequences!=null&&e.stopSequences.length>0?e.stopSequences:void 0,max_output_tokens:e.maxOutputTokens??void 0,thinking_level:n?.thinkingLevel??void 0,thinking_summaries:n?.thinkingSummaries??void 0,tool_choice:o}),n?.imageConfig!=null){let e=s.some(e=>e.type===`image`);t.push({type:`other`,message:e?`google.interactions: providerOptions.google.imageConfig is deprecated and was ignored because providerOptions.google.responseFormat already supplies an image entry. Use responseFormat exclusively.`:`google.interactions: providerOptions.google.imageConfig is deprecated. Use providerOptions.google.responseFormat with a { type: "image", ... } entry instead.`}),e||s.push({type:`image`,mime_type:`image/png`,...n.imageConfig.aspectRatio==null?{}:{aspect_ratio:n.imageConfig.aspectRatio},...n.imageConfig.imageSize==null?{}:{image_size:n.imageConfig.imageSize}})}let m;if(r&&n?.agentConfig!=null){let e=n.agentConfig;e.type===`deep-research`?m=$({type:`deep-research`,thinking_summaries:e.thinkingSummaries??void 0,visualization:e.visualization??void 0,collaborative_planning:e.collaborativePlanning??void 0}):e.type===`dynamic`&&(m={type:`dynamic`})}let h;if(n?.environment!=null)if(!r)t.push({type:`other`,message:`google.interactions: environment is only supported when an agent is set; environment will be omitted from the request body.`});else if(typeof n.environment==`string`)h=n.environment;else{let e=n.environment,t=e.sources?.map(e=>e.type===`inline`?{type:`inline`,content:e.content,target:e.target}:$({type:e.type,source:e.source,target:e.target??void 0})),r;e.network===`disabled`?r=`disabled`:e.network!=null&&(r={allowlist:e.network.allowlist.map(e=>$({domain:e.domain,transform:e.transform??void 0}))}),h=$({type:`remote`,sources:t!=null&&t.length>0?t:void 0,network:r})}return{args:$({...r?{agent:this.agent}:{model:this.modelId},input:c,system_instruction:d,tools:a,response_format:s.length>0?s:void 0,response_modalities:n?.responseModalities==null?void 0:n.responseModalities,previous_interaction_id:n?.previousInteractionId??void 0,service_tier:n?.serviceTier??void 0,store:n?.store??void 0,generation_config:p!=null&&Object.keys(p).length>0?p:void 0,agent_config:m,environment:h,background:n?.background??void 0}),warnings:t,isAgent:r,isBackground:n?.background===!0,pollingTimeoutMs:n?.pollingTimeoutMs??void 0}}async doGenerate(e){let{args:t,warnings:n,isAgent:r,pollingTimeoutMs:i}=await this.getArgs(e),a=`${this.config.baseURL}/interactions`,o=R(this.config.headers?await L(this.config.headers):void 0,e.headers),{responseHeaders:s,value:c,rawValue:u}=await l({url:a,headers:o,body:t,failedResponseHandler:G,successfulResponseHandler:I(ln),abortSignal:e.abortSignal,fetch:this.config.fetch});if(r&&!bn(c.status)){let t=await wn({baseURL:this.config.baseURL,interactionId:c.id,headers:o,fetch:this.config.fetch,abortSignal:e.abortSignal,timeoutMs:i});c=t.response,u=t.rawResponse,s=t.responseHeaders??s}let d=typeof c.id==`string`&&c.id.length>0?c.id:void 0,{content:f,hasFunctionCall:p}=gn({steps:c.steps??null,generateId:this.config.generateId??z,interactionId:d}),m={unified:Vt({status:c.status,hasFunctionCall:p}),raw:c.status},h=c.service_tier??s?.[`x-gemini-service-tier`]??void 0,g=Pt(c.usage),_={google:{...d==null?{}:{interactionId:d},...h==null?{}:{serviceTier:h},...g==null?{}:{outputTokensByModality:g}}},v;if(typeof c.created==`string`){let e=new Date(c.created);Number.isNaN(e.getTime())||(v=e)}return{content:f,finishReason:m,usage:Nt(c.usage),warnings:n,providerMetadata:_,request:{body:t},response:{headers:s,body:u,...d==null?{}:{id:d},...v?{timestamp:v}:{},modelId:c.model??void 0}}}async doStream(e){let{args:t,warnings:n,isBackground:r,pollingTimeoutMs:i}=await this.getArgs(e),a=`${this.config.baseURL}/interactions`,o=R(this.config.headers?await L(this.config.headers):void 0,e.headers);if(r)return this.doStreamBackground({args:t,warnings:n,url:a,mergedHeaders:o,options:e,pollingTimeoutMs:i});let s={...t,stream:!0},{responseHeaders:c,value:u}=await l({url:a,headers:o,body:s,failedResponseHandler:G,successfulResponseHandler:k(un),abortSignal:e.abortSignal,fetch:this.config.fetch}),d=c?.[`x-gemini-service-tier`],f=Kt({warnings:n,generateId:this.config.generateId??z,includeRawChunks:e.includeRawChunks,serviceTier:d});return{stream:u.pipeThrough(f),request:{body:s},response:{headers:c}}}async doStreamBackground({args:e,warnings:t,url:n,mergedHeaders:r,options:i,pollingTimeoutMs:a}){let{responseHeaders:o,value:s}=await l({url:n,headers:r,body:e,failedResponseHandler:G,successfulResponseHandler:I(ln),abortSignal:i.abortSignal,fetch:this.config.fetch}),c=s.id;if(c==null||c.length===0)throw Error(`google.interactions: background POST response did not include an interaction id; cannot stream the result.`);let u=o?.[`x-gemini-service-tier`];if(bn(s.status))return{stream:kn({response:s,warnings:t,generateId:this.config.generateId??z,includeRawChunks:i.includeRawChunks,headerServiceTier:u}),request:{body:e},response:{headers:o}};let d=On({baseURL:this.config.baseURL,interactionId:c,headers:r,fetch:this.config.fetch,abortSignal:i.abortSignal}),f=Kt({warnings:t,generateId:this.config.generateId??z,includeRawChunks:i.includeRawChunks,serviceTier:u});return{stream:d.pipeThrough(f),request:{body:e},response:{headers:o}}}};function $(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function jn(e){let t=new URL(e),n=t.pathname.split(`/`),r=n.at(-1);return(r===`v1beta`||r===`v1alpha`)&&(n.pop(),t.pathname=n.join(`/`)||`/`),t}function Mn(e,t){let n=jn(e);return n.protocol=n.protocol===`https:`?`wss:`:`ws:`,n.pathname=`${n.pathname.replace(/\/$/,``)}/ws/${t}`,n}var Nn=class{constructor(){this.turnCounter=0,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,this.turnClosed=!1,this.inputAudioRate=16e3}get responseId(){return`google-resp-${this.turnCounter}`}get itemId(){return`google-item-${this.turnCounter}`}beginTurnIfClosed(){this.turnClosed&&=(this.turnCounter++,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,!1)}parseServerEvent(e){let t=e;return t.setupComplete==null?t.toolCall==null?t.toolCallCancellation==null?t.goAway==null?t.sessionResumptionUpdate==null?t.serverContent==null?t.inputTranscription?.text==null?{type:`custom`,rawType:String(Object.keys(t)[0]),raw:e}:{type:`input-transcription-completed`,itemId:`google-input-${this.turnCounter}`,transcript:t.inputTranscription.text,raw:e}:this.parseServerContent(t.serverContent,e):{type:`custom`,rawType:`sessionResumptionUpdate`,raw:e}:{type:`custom`,rawType:`goAway`,raw:e}:{type:`custom`,rawType:`toolCallCancellation`,raw:e}:(this.beginTurnIfClosed(),(t.toolCall.functionCalls??[]).flatMap(t=>{let n=JSON.stringify(t.args??{});return[{type:`function-call-arguments-delta`,responseId:this.responseId,itemId:this.itemId,callId:t.id,delta:n,raw:e},{type:`function-call-arguments-done`,responseId:this.responseId,itemId:this.itemId,callId:t.id,name:t.name,arguments:n,raw:e}]})):{type:`session-created`,raw:e}}parseServerContent(e,t){let n=[];if(e.interrupted&&n.push({type:`speech-started`,raw:t}),e.modelTurn?.parts){this.beginTurnIfClosed();for(let r of e.modelTurn.parts)r.inlineData?.data&&(this.hasAudio=!0,n.push({type:`audio-delta`,responseId:this.responseId,itemId:this.itemId,delta:r.inlineData.data,raw:t})),r.text&&(this.hasText=!0,n.push({type:`text-delta`,responseId:this.responseId,itemId:this.itemId,delta:r.text,raw:t}))}return e.outputTranscription?.text&&(this.hasTranscript=!0,n.push({type:`audio-transcript-delta`,responseId:this.responseId,itemId:this.itemId,delta:e.outputTranscription.text,raw:t})),e.inputTranscription?.text&&n.push({type:`input-transcription-completed`,itemId:`google-input-${this.turnCounter}`,transcript:e.inputTranscription.text,raw:t}),e.generationComplete&&n.push({type:`custom`,rawType:`generationComplete`,raw:t}),e.turnComplete&&(this.hasAudio&&n.push({type:`audio-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),this.hasText&&n.push({type:`text-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),this.hasTranscript&&n.push({type:`audio-transcript-done`,responseId:this.responseId,itemId:this.itemId,raw:t}),n.push({type:`response-done`,responseId:this.responseId,status:`completed`,raw:t}),this.turnClosed=!0),n.length===0?{type:`custom`,rawType:`serverContent`,raw:t}:n.length===1?n[0]:n}serializeClientEvent(e,t){switch(e.type){case`session-update`:return e.config.inputAudioFormat?.rate!=null&&(this.inputAudioRate=e.config.inputAudioFormat.rate),{setup:Fn(e.config,t)};case`input-audio-append`:return{realtimeInput:{audio:{data:e.audio,mimeType:`audio/pcm;rate=${this.inputAudioRate}`}}};case`input-audio-commit`:return{realtimeInput:{audioStreamEnd:!0}};case`input-audio-clear`:case`response-create`:case`response-cancel`:case`conversation-item-truncate`:return null;case`conversation-item-create`:{let t=e.item;switch(t.type){case`text-message`:return{realtimeInput:{text:t.text}};case`function-call-output`:return Pn(t);case`audio-message`:return null}break}}return null}};async function Pn(e){let t=await C({text:e.output}),n=t.success?t.value:{};return{toolResponse:{functionResponses:[{id:e.callId,name:e.name,response:n}]}}}function Fn(e,t){let n={model:q(t)},r={};if(e?.outputModalities==null?r.responseModalities=[`AUDIO`]:r.responseModalities=e.outputModalities.map(e=>e.toUpperCase()),e?.voice!=null&&(r.speechConfig={voiceConfig:{prebuiltVoiceConfig:{voiceName:e.voice}}}),n.generationConfig=r,e?.instructions!=null&&(n.systemInstruction={parts:[{text:e.instructions}]}),e?.tools!=null&&e.tools.length>0&&(n.tools=[{functionDeclarations:e.tools.map(e=>({name:e.name,description:e.description,parameters:K(e.parameters)}))}]),e?.inputAudioTranscription!=null&&(n.inputAudioTranscription={}),e?.outputAudioTranscription!=null&&(n.outputAudioTranscription={}),e?.providerOptions==null)return n;let{google:i,...a}=e.providerOptions;Object.assign(n,a);let o=f(i)?i:void 0;return o?.translationConfig!=null&&(n.generationConfig={...f(n.generationConfig)?n.generationConfig:r,translationConfig:o.translationConfig}),n}var In=`google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateContentConstrained`;function Ln(e){let t=jn(e);return t.pathname=`${t.pathname.replace(/\/$/,``)}/v1alpha/auth_tokens`,t.toString()}function Rn(e){return Mn(e,In).toString()}var zn=class{constructor(e,t){this.specificationVersion=`v4`,this.mapper=new Nn,this.modelId=e,this.provider=t.provider,this.config=t}async doCreateClientSecret(e){let t=this.config.fetch??fetch,n=this.config.headers()[`x-goog-api-key`];if(!n)throw Error(`Google Generative AI API key is required for realtime token creation.`);let r=Date.now(),i=(e.expiresAfterSeconds??60)*1e3,a=new Date(r+i).toISOString(),o=new Date(r+i+1800*1e3).toISOString(),s=Fn(e.sessionConfig,this.modelId),c=await t(`${Ln(this.config.baseURL)}?key=${encodeURIComponent(n)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({uses:0,expireTime:o,newSessionExpireTime:a,bidiGenerateContentSetup:s})});if(!c.ok){let e=await c.text();throw Error(`Google realtime auth token request failed: ${c.status} ${e}`)}let l=await c.json();return{token:l.name,url:Rn(this.config.baseURL),expiresAt:l.expireTime?Math.floor(new Date(l.expireTime).getTime()/1e3):void 0}}getWebSocketConfig(e){return{url:`${e.url}?access_token=${encodeURIComponent(e.token)}`}}parseServerEvent(e){return this.mapper.parseServerEvent(e)}serializeClientEvent(e){return this.mapper.serializeClientEvent(e,this.modelId)}buildSessionConfig(e){return Fn(e,this.modelId)}},Bn=s(()=>F(r({echoTargetLanguage:w().optional()}))),Vn=`google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent`,Hn=1e3,Un=24e3,Wn=128;function Gn(e,t){let n=Mn(e,Vn);return n.searchParams.set(`key`,t),n}var Kn=class e{constructor(e,t){this.specificationVersion=`v4`,this.modelId=e,this.config=t}static[U](e){return O({modelId:e.modelId,config:e.config})}static[W](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doStream(e){var t;if(e.targetLanguage==null)throw new c({argument:`targetLanguage`,message:`targetLanguage is required for translation model '${this.modelId}'.`});let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,r=await x({provider:`google`,providerOptions:e.providerOptions,schema:Bn}),i=[];Zn(e.inputAudioFormat),e.sourceLanguage!=null&&i.push({type:`unsupported`,feature:`sourceLanguage`,details:`The Gemini Live translation API auto-detects the source language and does not accept a source language.`}),e.outputAudioFormat!=null&&i.push({type:`unsupported`,feature:`outputAudioFormat`,details:`The Gemini Live API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format.`});let a=R(this.config.headers(),e.headers),o;for(let[e,t]of Object.entries(a))e.toLowerCase()===`x-goog-api-key`&&t!=null&&(o=t);if(o==null)throw Error(`Google Generative AI API key is required for streaming translation.`);let s=Object.fromEntries(Object.entries(a).filter(([e])=>e.toLowerCase()!==`x-goog-api-key`)),l=Xn({modelId:this.modelId,targetLanguage:e.targetLanguage,providerOptions:r});return{request:{body:l},response:{timestamp:n,modelId:this.modelId},stream:qn({webSocket:this.config.webSocket,url:Gn(this.config.baseURL,o),headers:s,setup:l,inputAudioRate:e.inputAudioFormat.rate??16e3,finishGraceMs:this.config._internal?.finishGraceMs??Hn,warnings:i,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function qn({webSocket:e,url:t,headers:n,setup:r,inputAudioRate:i,finishGraceMs:a,warnings:o,audio:s,abortSignal:c,includeRawChunks:l}){let u=!1,d=()=>{};return new ReadableStream({start:f=>{let p,m,h,g=new Promise(e=>{h=e}),_=0,v=``,y=``,b=``,x=``,S=!1,w,T=!1,D=!1,O=0,k,A=()=>`google-item-${_}`,j=()=>{k!=null&&(clearTimeout(k),k=void 0)},M=()=>{u||k!=null||(k=setTimeout(()=>{k=void 0,F()},a))},N=()=>{T=!0,O=0,j()};d=e=>{j(),p==null?s.cancel().catch(()=>{}):p.cancel().catch(()=>{}),m?.close(e)};let P=e=>{u||(u=!0,d(),f.error(e))},F=()=>{u||((y!==``||x!==``)&&I(),u=!0,f.enqueue({type:`finish`,sourceText:v,outputText:b,usage:w}),f.close(),d(1e3))},I=()=>{y!==``&&(f.enqueue({type:`source-transcript-final`,id:A(),text:y}),v+=y,y=``),x!==``&&(f.enqueue({type:`output-text-final`,id:A(),text:x}),b+=x,x=``),_++},te=async e=>{p=s.getReader();try{for(;;){let{done:t,value:n}=await p.read();if(t||u)break;e.send(JSON.stringify({realtimeInput:{audio:{data:E(n),mimeType:`audio/pcm;rate=${i}`}}})),await ne(e)}}finally{p.releaseLock(),p=void 0}u||(e.send(JSON.stringify({realtimeInput:{audioStreamEnd:!0}})),S=!0,D&&!T&&M())};m=ee({url:t,headers:n,webSocket:e,abortSignal:c,onAbort:P,onProcessingError:P,onOpen:e=>{f.enqueue({type:`stream-start`,warnings:o}),e.send(JSON.stringify({setup:r})),g.then(()=>u?void 0:te(e)).catch(P)},onMessageText:async e=>{if(u)return;let t=await C({text:e});if(!t.success)return;let n=t.value;if(l&&f.enqueue({type:`raw`,rawValue:n}),n.setupComplete!=null&&h(),n.usageMetadata!=null&&(w=Jn(w,n.usageMetadata)),n.error!=null){P(Error(n.error.message??`Google Live API error`));return}let r=n.serverContent?.inputTranscription?.text??n.inputTranscription?.text;r&&(N(),y+=r,f.enqueue({type:`source-transcript-delta`,id:A(),delta:r}));let i=n.serverContent;if(i!=null){for(let e of i.modelTurn?.parts??[])if(e.inlineData?.data){f.enqueue({type:`audio`,id:A(),audio:e.inlineData.data});let t=Yn(e.inlineData.data);if(S&&t!=null){if(O+=t,O>=a){F();return}}else N()}i.outputTranscription?.text&&(N(),x+=i.outputTranscription.text,f.enqueue({type:`output-text-delta`,id:A(),delta:i.outputTranscription.text})),i.turnComplete&&(I(),T=!1,D=!0,S&&M())}},onSocketError:()=>{P(Error(`Google Live translation error`))},onClose:({code:e,reason:t})=>{if(!u){if(k!=null){F();return}P(Error(`Google Live translation WebSocket closed unexpectedly before finishing (code ${e??`unknown`}${t?`, reason: ${t}`:``}).`))}}})},cancel:()=>{u||(u=!0,d())}})}function Jn(e,t){let n=e?.inputAudioTokens,r=e?.outputAudioTokens;for(let e of t.promptTokensDetails??[])e.modality===`AUDIO`&&e.tokenCount!=null&&(n=(n??0)+e.tokenCount);for(let e of t.responseTokensDetails??[])e.modality===`AUDIO`&&e.tokenCount!=null&&(r=(r??0)+e.tokenCount);return n==null&&r==null?e:{...e,...n==null?{}:{inputAudioTokens:n},...r==null?{}:{outputAudioTokens:r}}}function Yn(e){let t;try{t=te(e)}catch{return}if(t.byteLength<2)return;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=Math.floor(t.byteLength/2);for(let e=0;e<r;e++)if(Math.abs(n.getInt16(e*2,!0))>Wn)return;return r/Un*1e3}function Xn({modelId:e,targetLanguage:t,providerOptions:n}){return{model:q(e),generationConfig:{responseModalities:[`AUDIO`],translationConfig:{targetLanguageCode:t,...n?.echoTargetLanguage==null?{}:{echoTargetLanguage:n.echoTargetLanguage}}},inputAudioTranscription:{},outputAudioTranscription:{}}}function Zn(e){if(e.type!==`audio/pcm`||e.rate!=null&&e.rate!==16e3)throw new c({argument:`inputAudioFormat`,message:`The Gemini Live translation API only supports 16kHz 16-bit PCM input audio.`})}var Qn=[`text/html`,`text/css`,`text/plain`,`text/xml`,`text/csv`,`text/rtf`,`text/javascript`,`application/json`,`application/pdf`,`image/bmp`,`image/jpeg`,`image/png`,`image/webp`,`video/mp4`,`video/mpeg`,`video/quicktime`,`video/avi`,`video/x-flv`,`video/mpg`,`video/webm`,`video/wmv`,`video/3gpp`],$n=/^https:\/\/.*$/;function er(e){return/(^|\/)gemini-/.test(e)&&!/(^|\/)gemini-2\.0/.test(e)}function tr(e={}){let t=D(e.baseURL)??`https://generativelanguage.googleapis.com/v1beta`,n=e.name??`google.generative-ai`,r=()=>ae({"x-goog-api-key":u({apiKey:e.apiKey,environmentVariableName:`GOOGLE_GENERATIVE_AI_API_KEY`,description:`Google Generative AI`}),...e.headers},`ai-sdk/google/${le}`),i=i=>new Ve(i,{provider:n,baseURL:t,headers:r,generateId:e.generateId??z,supportedUrls:()=>({"*":[RegExp(`^${t}/files/.*$`),RegExp(`^https://(?:www\\.)?youtube\\.com/watch\\?v=[\\w-]+(?:&[\\w=&.-]*)?$`),RegExp(`^https://youtu\\.be/[\\w-]+(?:\\?[\\w=&.-]*)?$`)],...er(i)?Object.fromEntries(Qn.map(e=>[e,[$n]])):{}}),fetch:e.fetch}),a=i=>new fe(i,{provider:n,baseURL:t,headers:r,fetch:e.fetch}),o=(i,a={})=>new lt(i,a,{provider:n,baseURL:t,headers:r,fetch:e.fetch}),s=()=>new ft({provider:n,baseURL:t,headers:r,fetch:e.fetch}),c=i=>new Ct(i,{provider:n,baseURL:t,headers:r,fetch:e.fetch,generateId:e.generateId??z}),l=i=>new zn(i,{provider:`${n}.realtime`,baseURL:t,headers:r,fetch:e.fetch}),d=i=>new Kn(i,{provider:`${n}.speech-translation`,baseURL:t,headers:r,webSocket:e.webSocket}),f=i=>new At(i,{provider:`${n}.speech`,baseURL:t,headers:r,fetch:e.fetch}),p=Object.assign(e=>l(e),{getToken:async e=>{let t=await l(e.model).doCreateClientSecret({sessionConfig:e.sessionConfig,expiresAfterSeconds:e.expiresAfterSeconds});return{token:t.token,url:t.url,expiresAt:t.expiresAt}}}),m=i=>new An(i,{provider:`${n}.interactions`,baseURL:t,headers:r,generateId:e.generateId??z,fetch:e.fetch}),h=function(e){if(new.target)throw Error(`The Google Generative AI model function cannot be called with the new keyword.`);return i(e)};return h.specificationVersion=`v4`,h.languageModel=i,h.chat=i,h.generativeAI=i,h.embedding=a,h.embeddingModel=a,h.textEmbedding=a,h.textEmbeddingModel=a,h.image=o,h.imageModel=o,h.video=c,h.videoModel=c,h.experimental_realtime=p,h.files=s,h.speech=f,h.speechModel=f,h.translation=d,h.speechTranslationModel=d,h.interactions=m,h.tools=st,h}var nr=tr();export{zn as Experimental_GoogleRealtimeModel,Kn as Experimental_GoogleSpeechTranslationModel,Kn as Experimental_GoogleTranslationModel,le as VERSION,tr as createGoogle,tr as createGoogleGenerativeAI,nr as google};