@eum-agent/llm-provider-google 0.0.0-stage → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets/NOTICE ADDED
@@ -0,0 +1 @@
1
+ Gemini logo: official inline footer sparkle SVG from https://gemini.google/about/, retrieved 2026-10-17. Google and Gemini are trademarks of Google LLC.
@@ -0,0 +1 @@
1
+ <svg class="_footerSpark_dppzc_90" width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M57.0667 28.6103C52.1359 26.4878 47.8217 23.576 44.1223 19.8784C40.4247 16.1808 37.5128 11.8649 35.3902 6.9342C34.5754 5.04449 33.9206 3.10204 33.4186 1.11049C33.2549 0.459368 32.6711 0.0010376 32 0.0010376C31.3288 0.0010376 30.745 0.459368 30.5813 1.11049C30.0793 3.10204 29.4246 5.04267 28.6097 6.9342C26.4872 11.8649 23.5753 16.1808 19.8777 19.8784C16.18 23.576 11.864 26.4878 6.93327 28.6103C5.04353 29.4251 3.10105 30.0799 1.10947 30.5819C0.458338 30.7456 0 31.3294 0 32.0005C0 32.6716 0.458338 33.2555 1.10947 33.4191C3.10105 33.9211 5.04172 34.5759 6.93327 35.3907C11.864 37.5132 16.1782 40.4251 19.8777 44.1226C23.5771 47.8202 26.4872 52.1361 28.6097 57.0668C29.4246 58.9565 30.0793 60.899 30.5813 62.8905C30.745 63.5416 31.3288 64 32 64C32.6711 64 33.2549 63.5416 33.4186 62.8905C33.9206 60.899 34.5754 58.9583 35.3902 57.0668C37.5128 52.1361 40.4247 47.822 44.1223 44.1226C47.8199 40.4251 52.1359 37.5132 57.0667 35.3907C58.9564 34.5759 60.8989 33.9211 62.8905 33.4191C63.5416 33.2555 64 32.6716 64 32.0005C64 31.3294 63.5416 30.7456 62.8905 30.5819C60.8989 30.0799 58.9582 29.4251 57.0667 28.6103Z" fill="white"></path><mask id="mask0_10859_4894" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="64" height="64"><path d="M32 0C32.6711 1.144e-05 33.2553 0.458263 33.4189 1.10938C33.9209 3.10093 34.5758 5.04389 35.3906 6.93359C37.5131 11.8639 40.4247 16.1796 44.1221 19.877C47.8215 23.5745 52.1357 26.4869 57.0664 28.6094C58.958 29.4242 60.899 30.0791 62.8906 30.5811C63.5415 30.7448 63.9998 31.3281 64 31.999C64 32.6701 63.5417 33.2542 62.8906 33.418C60.899 33.9199 58.9561 34.5748 57.0664 35.3896C52.1358 37.5121 47.8196 40.4237 44.1221 44.1211C40.4246 47.8204 37.5131 52.1349 35.3906 57.0654C34.5758 58.957 33.9209 60.8981 33.4189 62.8896C33.2552 63.5407 32.6711 63.999 32 63.999C31.3289 63.999 30.7448 63.5407 30.5811 62.8896C30.0791 60.8981 29.4242 58.9551 28.6094 57.0654C26.4869 52.1349 23.5773 47.8186 19.8779 44.1211C16.1786 40.4237 11.8642 37.5121 6.93359 35.3896C5.04204 34.5748 3.10096 33.9199 1.10938 33.418C0.458309 33.2542 0 32.6701 0 31.999C0.000201548 31.3281 0.458463 30.7448 1.10938 30.5811C3.10096 30.0791 5.04386 29.4242 6.93359 28.6094C11.8643 26.4869 16.1804 23.5745 19.8779 19.877C23.5753 16.1796 26.4869 11.8639 28.6094 6.93359C29.4242 5.04207 30.0791 3.10093 30.5811 1.10938C30.7448 0.45826 31.3289 0 32 0Z" fill="black"></path><path d="M32 0C32.6711 1.144e-05 33.2553 0.458263 33.4189 1.10938C33.9209 3.10093 34.5758 5.04389 35.3906 6.93359C37.5131 11.8639 40.4247 16.1796 44.1221 19.877C47.8215 23.5745 52.1357 26.4869 57.0664 28.6094C58.958 29.4242 60.899 30.0791 62.8906 30.5811C63.5415 30.7448 63.9998 31.3281 64 31.999C64 32.6701 63.5417 33.2542 62.8906 33.418C60.899 33.9199 58.9561 34.5748 57.0664 35.3896C52.1358 37.5121 47.8196 40.4237 44.1221 44.1211C40.4246 47.8204 37.5131 52.1349 35.3906 57.0654C34.5758 58.957 33.9209 60.8981 33.4189 62.8896C33.2552 63.5407 32.6711 63.999 32 63.999C31.3289 63.999 30.7448 63.5407 30.5811 62.8896C30.0791 60.8981 29.4242 58.9551 28.6094 57.0654C26.4869 52.1349 23.5773 47.8186 19.8779 44.1211C16.1786 40.4237 11.8642 37.5121 6.93359 35.3896C5.04204 34.5748 3.10096 33.9199 1.10938 33.418C0.458309 33.2542 0 32.6701 0 31.999C0.000201548 31.3281 0.458463 30.7448 1.10938 30.5811C3.10096 30.0791 5.04386 29.4242 6.93359 28.6094C11.8643 26.4869 16.1804 23.5745 19.8779 19.877C23.5753 16.1796 26.4869 11.8639 28.6094 6.93359C29.4242 5.04207 30.0791 3.10093 30.5811 1.10938C30.7448 0.45826 31.3289 0 32 0Z" fill="url(#paint0_linear_10859_4894)"></path></mask><g mask="url(#mask0_10859_4894)"><g filter="url(#filter0_f_10859_4894)"><ellipse cx="14.2084" cy="16.7164" rx="14.2084" ry="16.7164" transform="matrix(0.942343 0.334649 -0.334656 0.94234 -7.979 13.7735)" fill="#FFE432"></ellipse></g><g filter="url(#filter1_f_10859_4894)"><ellipse cx="27.0543" cy="2.55114" rx="18.3944" ry="18.7985" fill="#FC413D"></ellipse></g><g filter="url(#filter2_f_10859_4894)"><ellipse cx="19.2245" cy="24.9042" rx="19.2245" ry="24.9042" transform="matrix(0.998807 -0.0488254 0.0488266 0.998807 -1.72778 32.6573)" fill="#00B95C"></ellipse></g><g filter="url(#filter3_f_10859_4894)"><ellipse cx="19.2245" cy="24.9042" rx="19.2245" ry="24.9042" transform="matrix(0.998807 -0.0488254 0.0488266 0.998807 -1.72778 32.6573)" fill="#00B95C"></ellipse></g><g filter="url(#filter4_f_10859_4894)"><ellipse cx="18.8429" cy="20.7441" rx="18.8429" ry="20.7441" transform="matrix(0.854301 -0.519779 0.51979 0.854294 -7.13574 47.5078)" fill="#00B95C"></ellipse></g><g filter="url(#filter5_f_10859_4894)"><ellipse cx="66.4617" cy="24.977" rx="18.0933" ry="17.4229" fill="#3186FF"></ellipse></g><g filter="url(#filter6_f_10859_4894)"><ellipse cx="20.9292" cy="22.0752" rx="20.9292" ry="22.0752" transform="matrix(0.79599 0.60531 -0.60532 0.795982 -2.81885 -7.43323)" fill="#FBBC04"></ellipse></g><g filter="url(#filter7_f_10859_4894)"><ellipse cx="24.1311" cy="22.2919" rx="24.1311" ry="22.2919" transform="matrix(0.824037 0.566536 -0.566546 0.82403 39.6338 0.310608)" fill="#3186FF"></ellipse></g><g filter="url(#filter8_f_10859_4894)"><path d="M54.2255 -2.30403C57.0195 1.49462 53.4294 8.8804 46.2068 14.1926C38.9842 19.5048 30.8642 20.7318 28.0702 16.9331C25.2762 13.1345 28.8663 5.74867 36.0889 0.436486C43.3115 -4.8757 51.4315 -6.10267 54.2255 -2.30403Z" fill="#749BFF"></path></g><g filter="url(#filter9_f_10859_4894)"><ellipse cx="27.5853" cy="17.1478" rx="27.5853" ry="17.1478" transform="matrix(0.733166 -0.680049 0.680061 0.733155 -12.2583 9.49695)" fill="#FC413D"></ellipse></g><g filter="url(#filter10_f_10859_4894)"><ellipse cx="14.7819" cy="8.59637" rx="14.7819" ry="8.59637" transform="matrix(0.813186 0.582004 -0.582016 0.813177 6.37842 30.511)" fill="#FFEE48"></ellipse></g></g><defs><filter id="filter0_f_10859_4894" x="-19.618" y="12.9027" width="38.8681" height="42.7562" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="2.45965" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter1_f_10859_4894" x="-15.1223" y="-40.0296" width="84.3533" height="85.1615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="11.8911" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter2_f_10859_4894" x="-20.7682" y="11.4835" width="78.9161" height="90.2196" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="10.1086" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter3_f_10859_4894" x="-20.7682" y="11.4835" width="78.9161" height="90.2196" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="10.1086" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter4_f_10859_4894" x="-19.85" y="14.9664" width="79.1886" height="80.9378" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="10.1086" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter5_f_10859_4894" x="29.1561" y="-11.6582" width="74.6111" height="73.2703" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="9.60613" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter6_f_10859_4894" x="-38.291" y="-16.2687" width="77.538" height="78.1513" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="8.70591" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter7_f_10859_4894" x="7.78038" y="-6.0981" width="78.2181" height="76.8982" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="7.77473" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter8_f_10859_4894" x="13.2082" y="-18.425" width="55.8793" height="51.4791" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="6.95694" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter9_f_10859_4894" x="-15.4739" y="-31.0272" width="70.2034" height="68.6735" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="5.87598" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><filter id="filter10_f_10859_4894" x="-14.173" y="20.474" width="55.1373" height="51.261" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="7.27253" result="effect1_foregroundBlur_10859_4894"></feGaussianBlur></filter><linearGradient id="paint0_linear_10859_4894" x1="18.1931" y1="42.821" x2="51.4335" y2="14.7959" gradientUnits="userSpaceOnUse"><stop stop-color="#4893FC"></stop><stop offset="0.27" stop-color="#4893FC"></stop><stop offset="0.776981" stop-color="#969DFF"></stop><stop offset="1" stop-color="#BD99FE"></stop></linearGradient></defs></svg>
package/dist/index.js ADDED
@@ -0,0 +1,490 @@
1
+ //#endregion
2
+ //#region src/catalog.ts
3
+ /** Supplier-owned offline catalogue, supplemented by authenticated Google model listing. */
4
+ const catalog = {
5
+ vendors: [{
6
+ id: "google",
7
+ kind: "vendor",
8
+ name: "Google Gemini",
9
+ logo: "data:image/svg+xml,%3Csvg%20class%3D%22_footerSpark_dppzc_90%22%20width%3D%2264%22%20height%3D%2264%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M57.0667%2028.6103C52.1359%2026.4878%2047.8217%2023.576%2044.1223%2019.8784C40.4247%2016.1808%2037.5128%2011.8649%2035.3902%206.9342C34.5754%205.04449%2033.9206%203.10204%2033.4186%201.11049C33.2549%200.459368%2032.6711%200.0010376%2032%200.0010376C31.3288%200.0010376%2030.745%200.459368%2030.5813%201.11049C30.0793%203.10204%2029.4246%205.04267%2028.6097%206.9342C26.4872%2011.8649%2023.5753%2016.1808%2019.8777%2019.8784C16.18%2023.576%2011.864%2026.4878%206.93327%2028.6103C5.04353%2029.4251%203.10105%2030.0799%201.10947%2030.5819C0.458338%2030.7456%200%2031.3294%200%2032.0005C0%2032.6716%200.458338%2033.2555%201.10947%2033.4191C3.10105%2033.9211%205.04172%2034.5759%206.93327%2035.3907C11.864%2037.5132%2016.1782%2040.4251%2019.8777%2044.1226C23.5771%2047.8202%2026.4872%2052.1361%2028.6097%2057.0668C29.4246%2058.9565%2030.0793%2060.899%2030.5813%2062.8905C30.745%2063.5416%2031.3288%2064%2032%2064C32.6711%2064%2033.2549%2063.5416%2033.4186%2062.8905C33.9206%2060.899%2034.5754%2058.9583%2035.3902%2057.0668C37.5128%2052.1361%2040.4247%2047.822%2044.1223%2044.1226C47.8199%2040.4251%2052.1359%2037.5132%2057.0667%2035.3907C58.9564%2034.5759%2060.8989%2033.9211%2062.8905%2033.4191C63.5416%2033.2555%2064%2032.6716%2064%2032.0005C64%2031.3294%2063.5416%2030.7456%2062.8905%2030.5819C60.8989%2030.0799%2058.9582%2029.4251%2057.0667%2028.6103Z%22%20fill%3D%22white%22%3E%3C%2Fpath%3E%3Cmask%20id%3D%22mask0_10859_4894%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2264%22%20height%3D%2264%22%3E%3Cpath%20d%3D%22M32%200C32.6711%201.144e-05%2033.2553%200.458263%2033.4189%201.10938C33.9209%203.10093%2034.5758%205.04389%2035.3906%206.93359C37.5131%2011.8639%2040.4247%2016.1796%2044.1221%2019.877C47.8215%2023.5745%2052.1357%2026.4869%2057.0664%2028.6094C58.958%2029.4242%2060.899%2030.0791%2062.8906%2030.5811C63.5415%2030.7448%2063.9998%2031.3281%2064%2031.999C64%2032.6701%2063.5417%2033.2542%2062.8906%2033.418C60.899%2033.9199%2058.9561%2034.5748%2057.0664%2035.3896C52.1358%2037.5121%2047.8196%2040.4237%2044.1221%2044.1211C40.4246%2047.8204%2037.5131%2052.1349%2035.3906%2057.0654C34.5758%2058.957%2033.9209%2060.8981%2033.4189%2062.8896C33.2552%2063.5407%2032.6711%2063.999%2032%2063.999C31.3289%2063.999%2030.7448%2063.5407%2030.5811%2062.8896C30.0791%2060.8981%2029.4242%2058.9551%2028.6094%2057.0654C26.4869%2052.1349%2023.5773%2047.8186%2019.8779%2044.1211C16.1786%2040.4237%2011.8642%2037.5121%206.93359%2035.3896C5.04204%2034.5748%203.10096%2033.9199%201.10938%2033.418C0.458309%2033.2542%200%2032.6701%200%2031.999C0.000201548%2031.3281%200.458463%2030.7448%201.10938%2030.5811C3.10096%2030.0791%205.04386%2029.4242%206.93359%2028.6094C11.8643%2026.4869%2016.1804%2023.5745%2019.8779%2019.877C23.5753%2016.1796%2026.4869%2011.8639%2028.6094%206.93359C29.4242%205.04207%2030.0791%203.10093%2030.5811%201.10938C30.7448%200.45826%2031.3289%200%2032%200Z%22%20fill%3D%22black%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M32%200C32.6711%201.144e-05%2033.2553%200.458263%2033.4189%201.10938C33.9209%203.10093%2034.5758%205.04389%2035.3906%206.93359C37.5131%2011.8639%2040.4247%2016.1796%2044.1221%2019.877C47.8215%2023.5745%2052.1357%2026.4869%2057.0664%2028.6094C58.958%2029.4242%2060.899%2030.0791%2062.8906%2030.5811C63.5415%2030.7448%2063.9998%2031.3281%2064%2031.999C64%2032.6701%2063.5417%2033.2542%2062.8906%2033.418C60.899%2033.9199%2058.9561%2034.5748%2057.0664%2035.3896C52.1358%2037.5121%2047.8196%2040.4237%2044.1221%2044.1211C40.4246%2047.8204%2037.5131%2052.1349%2035.3906%2057.0654C34.5758%2058.957%2033.9209%2060.8981%2033.4189%2062.8896C33.2552%2063.5407%2032.6711%2063.999%2032%2063.999C31.3289%2063.999%2030.7448%2063.5407%2030.5811%2062.8896C30.0791%2060.8981%2029.4242%2058.9551%2028.6094%2057.0654C26.4869%2052.1349%2023.5773%2047.8186%2019.8779%2044.1211C16.1786%2040.4237%2011.8642%2037.5121%206.93359%2035.3896C5.04204%2034.5748%203.10096%2033.9199%201.10938%2033.418C0.458309%2033.2542%200%2032.6701%200%2031.999C0.000201548%2031.3281%200.458463%2030.7448%201.10938%2030.5811C3.10096%2030.0791%205.04386%2029.4242%206.93359%2028.6094C11.8643%2026.4869%2016.1804%2023.5745%2019.8779%2019.877C23.5753%2016.1796%2026.4869%2011.8639%2028.6094%206.93359C29.4242%205.04207%2030.0791%203.10093%2030.5811%201.10938C30.7448%200.45826%2031.3289%200%2032%200Z%22%20fill%3D%22url%28%23paint0_linear_10859_4894%29%22%3E%3C%2Fpath%3E%3C%2Fmask%3E%3Cg%20mask%3D%22url%28%23mask0_10859_4894%29%22%3E%3Cg%20filter%3D%22url%28%23filter0_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2214.2084%22%20cy%3D%2216.7164%22%20rx%3D%2214.2084%22%20ry%3D%2216.7164%22%20transform%3D%22matrix%280.942343%200.334649%20-0.334656%200.94234%20-7.979%2013.7735%29%22%20fill%3D%22%23FFE432%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter1_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2227.0543%22%20cy%3D%222.55114%22%20rx%3D%2218.3944%22%20ry%3D%2218.7985%22%20fill%3D%22%23FC413D%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter2_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2219.2245%22%20cy%3D%2224.9042%22%20rx%3D%2219.2245%22%20ry%3D%2224.9042%22%20transform%3D%22matrix%280.998807%20-0.0488254%200.0488266%200.998807%20-1.72778%2032.6573%29%22%20fill%3D%22%2300B95C%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter3_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2219.2245%22%20cy%3D%2224.9042%22%20rx%3D%2219.2245%22%20ry%3D%2224.9042%22%20transform%3D%22matrix%280.998807%20-0.0488254%200.0488266%200.998807%20-1.72778%2032.6573%29%22%20fill%3D%22%2300B95C%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter4_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2218.8429%22%20cy%3D%2220.7441%22%20rx%3D%2218.8429%22%20ry%3D%2220.7441%22%20transform%3D%22matrix%280.854301%20-0.519779%200.51979%200.854294%20-7.13574%2047.5078%29%22%20fill%3D%22%2300B95C%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter5_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2266.4617%22%20cy%3D%2224.977%22%20rx%3D%2218.0933%22%20ry%3D%2217.4229%22%20fill%3D%22%233186FF%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter6_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2220.9292%22%20cy%3D%2222.0752%22%20rx%3D%2220.9292%22%20ry%3D%2222.0752%22%20transform%3D%22matrix%280.79599%200.60531%20-0.60532%200.795982%20-2.81885%20-7.43323%29%22%20fill%3D%22%23FBBC04%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter7_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2224.1311%22%20cy%3D%2222.2919%22%20rx%3D%2224.1311%22%20ry%3D%2222.2919%22%20transform%3D%22matrix%280.824037%200.566536%20-0.566546%200.82403%2039.6338%200.310608%29%22%20fill%3D%22%233186FF%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter8_f_10859_4894%29%22%3E%3Cpath%20d%3D%22M54.2255%20-2.30403C57.0195%201.49462%2053.4294%208.8804%2046.2068%2014.1926C38.9842%2019.5048%2030.8642%2020.7318%2028.0702%2016.9331C25.2762%2013.1345%2028.8663%205.74867%2036.0889%200.436486C43.3115%20-4.8757%2051.4315%20-6.10267%2054.2255%20-2.30403Z%22%20fill%3D%22%23749BFF%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter9_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2227.5853%22%20cy%3D%2217.1478%22%20rx%3D%2227.5853%22%20ry%3D%2217.1478%22%20transform%3D%22matrix%280.733166%20-0.680049%200.680061%200.733155%20-12.2583%209.49695%29%22%20fill%3D%22%23FC413D%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3Cg%20filter%3D%22url%28%23filter10_f_10859_4894%29%22%3E%3Cellipse%20cx%3D%2214.7819%22%20cy%3D%228.59637%22%20rx%3D%2214.7819%22%20ry%3D%228.59637%22%20transform%3D%22matrix%280.813186%200.582004%20-0.582016%200.813177%206.37842%2030.511%29%22%20fill%3D%22%23FFEE48%22%3E%3C%2Fellipse%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%3E%3Cfilter%20id%3D%22filter0_f_10859_4894%22%20x%3D%22-19.618%22%20y%3D%2212.9027%22%20width%3D%2238.8681%22%20height%3D%2242.7562%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%222.45965%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter1_f_10859_4894%22%20x%3D%22-15.1223%22%20y%3D%22-40.0296%22%20width%3D%2284.3533%22%20height%3D%2285.1615%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%2211.8911%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter2_f_10859_4894%22%20x%3D%22-20.7682%22%20y%3D%2211.4835%22%20width%3D%2278.9161%22%20height%3D%2290.2196%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%2210.1086%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter3_f_10859_4894%22%20x%3D%22-20.7682%22%20y%3D%2211.4835%22%20width%3D%2278.9161%22%20height%3D%2290.2196%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%2210.1086%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter4_f_10859_4894%22%20x%3D%22-19.85%22%20y%3D%2214.9664%22%20width%3D%2279.1886%22%20height%3D%2280.9378%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%2210.1086%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter5_f_10859_4894%22%20x%3D%2229.1561%22%20y%3D%22-11.6582%22%20width%3D%2274.6111%22%20height%3D%2273.2703%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%229.60613%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter6_f_10859_4894%22%20x%3D%22-38.291%22%20y%3D%22-16.2687%22%20width%3D%2277.538%22%20height%3D%2278.1513%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%228.70591%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter7_f_10859_4894%22%20x%3D%227.78038%22%20y%3D%22-6.0981%22%20width%3D%2278.2181%22%20height%3D%2276.8982%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%227.77473%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter8_f_10859_4894%22%20x%3D%2213.2082%22%20y%3D%22-18.425%22%20width%3D%2255.8793%22%20height%3D%2251.4791%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%226.95694%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter9_f_10859_4894%22%20x%3D%22-15.4739%22%20y%3D%22-31.0272%22%20width%3D%2270.2034%22%20height%3D%2268.6735%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%225.87598%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter10_f_10859_4894%22%20x%3D%22-14.173%22%20y%3D%2220.474%22%20width%3D%2255.1373%22%20height%3D%2251.261%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%3E%3C%2FfeFlood%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%3E%3C%2FfeBlend%3E%3CfeGaussianBlur%20stdDeviation%3D%227.27253%22%20result%3D%22effect1_foregroundBlur_10859_4894%22%3E%3C%2FfeGaussianBlur%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22paint0_linear_10859_4894%22%20x1%3D%2218.1931%22%20y1%3D%2242.821%22%20x2%3D%2251.4335%22%20y2%3D%2214.7959%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%234893FC%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%220.27%22%20stop-color%3D%22%234893FC%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%220.776981%22%20stop-color%3D%22%23969DFF%22%3E%3C%2Fstop%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23BD99FE%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",
10
+ region: null,
11
+ market: "international",
12
+ catalogKey: "google",
13
+ canListModels: true,
14
+ endpoints: [{
15
+ type: "google",
16
+ endpointId: "google",
17
+ protocolIds: ["gemini-interactions", "openai"],
18
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta"
19
+ }]
20
+ }],
21
+ snapshot: { "google": {
22
+ "gemini-4-argon": {
23
+ "id": "gemini-4-argon",
24
+ "chat": true,
25
+ "reasoning": true,
26
+ "tool_call": true,
27
+ "attachment": true,
28
+ "temperature": false,
29
+ "reasoning_options": [{
30
+ "type": "effort",
31
+ "values": [
32
+ "low",
33
+ "medium",
34
+ "high"
35
+ ]
36
+ }],
37
+ "modalities": {
38
+ "input": ["text", "image"],
39
+ "output": ["text"]
40
+ },
41
+ "limit": {
42
+ "context": 1048576,
43
+ "output": 65536
44
+ }
45
+ },
46
+ "gemini-3.8-flash": {
47
+ "id": "gemini-3.8-flash",
48
+ "chat": true,
49
+ "reasoning": true,
50
+ "tool_call": true,
51
+ "attachment": true,
52
+ "temperature": false,
53
+ "reasoning_options": [{
54
+ "type": "effort",
55
+ "values": [
56
+ "low",
57
+ "medium",
58
+ "high"
59
+ ]
60
+ }],
61
+ "modalities": {
62
+ "input": ["text", "image"],
63
+ "output": ["text"]
64
+ },
65
+ "limit": {
66
+ "input": 1048576,
67
+ "output": 65536
68
+ }
69
+ },
70
+ "gemini-3.7-flash": {
71
+ "id": "gemini-3.7-flash",
72
+ "chat": true,
73
+ "reasoning": true,
74
+ "tool_call": true,
75
+ "attachment": true,
76
+ "temperature": false,
77
+ "reasoning_options": [{
78
+ "type": "effort",
79
+ "values": [
80
+ "low",
81
+ "medium",
82
+ "high"
83
+ ]
84
+ }],
85
+ "modalities": {
86
+ "input": ["text", "image"],
87
+ "output": ["text"]
88
+ },
89
+ "limit": {
90
+ "input": 1048576,
91
+ "output": 65536
92
+ }
93
+ },
94
+ "gemini-3.6-flash": {
95
+ "id": "gemini-3.6-flash",
96
+ "chat": true,
97
+ "reasoning": true,
98
+ "tool_call": true,
99
+ "attachment": true,
100
+ "temperature": false,
101
+ "reasoning_options": [{
102
+ "type": "effort",
103
+ "values": [
104
+ "minimal",
105
+ "low",
106
+ "medium",
107
+ "high"
108
+ ]
109
+ }],
110
+ "modalities": {
111
+ "input": ["text", "image"],
112
+ "output": ["text"]
113
+ },
114
+ "limit": {
115
+ "input": 1048576,
116
+ "output": 65536
117
+ }
118
+ },
119
+ "gemini-3.5-flash": {
120
+ "id": "gemini-3.5-flash",
121
+ "chat": true,
122
+ "reasoning": true,
123
+ "tool_call": true,
124
+ "attachment": true,
125
+ "temperature": false,
126
+ "reasoning_options": [{
127
+ "type": "effort",
128
+ "values": [
129
+ "minimal",
130
+ "low",
131
+ "medium",
132
+ "high"
133
+ ]
134
+ }],
135
+ "modalities": {
136
+ "input": ["text", "image"],
137
+ "output": ["text"]
138
+ },
139
+ "limit": {
140
+ "input": 1048576,
141
+ "output": 65536
142
+ }
143
+ },
144
+ "gemini-3.5-flash-lite": {
145
+ "id": "gemini-3.5-flash-lite",
146
+ "chat": true,
147
+ "reasoning": true,
148
+ "tool_call": true,
149
+ "attachment": true,
150
+ "temperature": false,
151
+ "reasoning_options": [{
152
+ "type": "effort",
153
+ "values": [
154
+ "minimal",
155
+ "low",
156
+ "medium",
157
+ "high"
158
+ ]
159
+ }],
160
+ "modalities": {
161
+ "input": ["text", "image"],
162
+ "output": ["text"]
163
+ },
164
+ "limit": {
165
+ "input": 1048576,
166
+ "output": 65536
167
+ }
168
+ },
169
+ "gemini-3.1-flash-lite": {
170
+ "id": "gemini-3.1-flash-lite",
171
+ "chat": true,
172
+ "reasoning": true,
173
+ "tool_call": true,
174
+ "attachment": true,
175
+ "temperature": false,
176
+ "reasoning_options": [{
177
+ "type": "effort",
178
+ "values": ["high"]
179
+ }],
180
+ "modalities": {
181
+ "input": ["text", "image"],
182
+ "output": ["text"]
183
+ },
184
+ "limit": {
185
+ "input": 1048576,
186
+ "output": 65536
187
+ }
188
+ },
189
+ "gemini-3.1-pro-preview": {
190
+ "id": "gemini-3.1-pro-preview",
191
+ "chat": true,
192
+ "reasoning": true,
193
+ "tool_call": true,
194
+ "attachment": true,
195
+ "temperature": false,
196
+ "reasoning_options": [{
197
+ "type": "effort",
198
+ "values": [
199
+ "low",
200
+ "medium",
201
+ "high"
202
+ ]
203
+ }],
204
+ "modalities": {
205
+ "input": ["text", "image"],
206
+ "output": ["text"]
207
+ },
208
+ "limit": {
209
+ "input": 1048576,
210
+ "output": 65536
211
+ }
212
+ },
213
+ "gemini-3.1-pro-preview-customtools": {
214
+ "id": "gemini-3.1-pro-preview-customtools",
215
+ "chat": true,
216
+ "reasoning": true,
217
+ "tool_call": true,
218
+ "attachment": true,
219
+ "temperature": false,
220
+ "reasoning_options": [{
221
+ "type": "effort",
222
+ "values": [
223
+ "low",
224
+ "medium",
225
+ "high"
226
+ ]
227
+ }],
228
+ "modalities": {
229
+ "input": ["text", "image"],
230
+ "output": ["text"]
231
+ },
232
+ "limit": {
233
+ "input": 1048576,
234
+ "output": 65536
235
+ }
236
+ },
237
+ "gemini-3-flash-preview": {
238
+ "id": "gemini-3-flash-preview",
239
+ "chat": true,
240
+ "reasoning": true,
241
+ "tool_call": true,
242
+ "attachment": true,
243
+ "temperature": false,
244
+ "reasoning_options": [{
245
+ "type": "effort",
246
+ "values": [
247
+ "minimal",
248
+ "low",
249
+ "medium",
250
+ "high"
251
+ ]
252
+ }],
253
+ "modalities": {
254
+ "input": ["text", "image"],
255
+ "output": ["text"]
256
+ },
257
+ "limit": {
258
+ "input": 1048576,
259
+ "output": 65536
260
+ }
261
+ },
262
+ "gemini-2.5-pro": {
263
+ "id": "gemini-2.5-pro",
264
+ "chat": true,
265
+ "reasoning": true,
266
+ "tool_call": true,
267
+ "attachment": true,
268
+ "temperature": false,
269
+ "reasoning_options": [{
270
+ "type": "effort",
271
+ "values": [
272
+ "low",
273
+ "medium",
274
+ "high"
275
+ ]
276
+ }],
277
+ "modalities": {
278
+ "input": ["text", "image"],
279
+ "output": ["text"]
280
+ },
281
+ "limit": {
282
+ "input": 1048576,
283
+ "output": 65536
284
+ }
285
+ },
286
+ "gemini-2.5-flash": {
287
+ "id": "gemini-2.5-flash",
288
+ "chat": true,
289
+ "reasoning": true,
290
+ "tool_call": true,
291
+ "attachment": true,
292
+ "temperature": false,
293
+ "reasoning_options": [{
294
+ "type": "effort",
295
+ "values": [
296
+ "low",
297
+ "medium",
298
+ "high"
299
+ ]
300
+ }],
301
+ "modalities": {
302
+ "input": ["text", "image"],
303
+ "output": ["text"]
304
+ },
305
+ "limit": {
306
+ "input": 1048576,
307
+ "output": 65536
308
+ }
309
+ },
310
+ "gemini-2.5-flash-lite": {
311
+ "id": "gemini-2.5-flash-lite",
312
+ "chat": true,
313
+ "reasoning": true,
314
+ "tool_call": true,
315
+ "attachment": true,
316
+ "temperature": false,
317
+ "reasoning_options": [{ "type": "toggle" }, {
318
+ "type": "effort",
319
+ "values": [
320
+ "low",
321
+ "medium",
322
+ "high"
323
+ ]
324
+ }],
325
+ "modalities": {
326
+ "input": ["text", "image"],
327
+ "output": ["text"]
328
+ },
329
+ "limit": {
330
+ "input": 1048576,
331
+ "output": 65536
332
+ }
333
+ },
334
+ "gemini-nano-banana-2.1": {
335
+ "id": "gemini-nano-banana-2.1",
336
+ "chat": true,
337
+ "reasoning": true,
338
+ "reasoning_options": [{
339
+ "type": "effort",
340
+ "values": [
341
+ "minimal",
342
+ "medium",
343
+ "high"
344
+ ]
345
+ }],
346
+ "limit": {
347
+ "input": 131072,
348
+ "output": 32768
349
+ },
350
+ "tool_call": false,
351
+ "attachment": true,
352
+ "temperature": false,
353
+ "modalities": {
354
+ "input": ["text", "image"],
355
+ "output": ["text", "image"]
356
+ }
357
+ },
358
+ "gemini-3.1-flash-image": {
359
+ "id": "gemini-3.1-flash-image",
360
+ "chat": true,
361
+ "tool_call": false,
362
+ "attachment": true,
363
+ "temperature": false,
364
+ "modalities": {
365
+ "input": ["text", "image"],
366
+ "output": ["text", "image"]
367
+ }
368
+ },
369
+ "gemini-3.1-flash-lite-image": {
370
+ "id": "gemini-3.1-flash-lite-image",
371
+ "chat": true,
372
+ "tool_call": false,
373
+ "attachment": true,
374
+ "temperature": false,
375
+ "modalities": {
376
+ "input": ["text", "image"],
377
+ "output": ["text", "image"]
378
+ }
379
+ },
380
+ "gemini-3-pro-image": {
381
+ "id": "gemini-3-pro-image",
382
+ "chat": true,
383
+ "tool_call": false,
384
+ "attachment": true,
385
+ "temperature": false,
386
+ "modalities": {
387
+ "input": ["text", "image"],
388
+ "output": ["text", "image"]
389
+ }
390
+ },
391
+ "nano-banana-pro-preview": {
392
+ "id": "nano-banana-pro-preview",
393
+ "chat": true,
394
+ "tool_call": false,
395
+ "attachment": true,
396
+ "temperature": false,
397
+ "modalities": {
398
+ "input": ["text", "image"],
399
+ "output": ["text", "image"]
400
+ }
401
+ },
402
+ "gemini-2.5-flash-image": {
403
+ "id": "gemini-2.5-flash-image",
404
+ "chat": true,
405
+ "tool_call": false,
406
+ "attachment": true,
407
+ "temperature": false,
408
+ "modalities": {
409
+ "input": ["text", "image"],
410
+ "output": ["text", "image"]
411
+ }
412
+ }
413
+ } },
414
+ snapshotAt: Date.parse("2026-10-17T00:00:00Z")
415
+ };
416
+ //#endregion
417
+ //#region src/routing.ts
418
+ /** Maps only declared official roots; protocol implementations own the remaining resource URI. */
419
+ function connectionConfig(endpoint, protocolId, config, aliases = []) {
420
+ const defaults = Object.values(endpoint.capabilities).find((one) => one.protocolIds.includes(protocolId))?.protocolDefaults?.[protocolId] ?? {};
421
+ const configured = config.baseUrl;
422
+ const canonical = [
423
+ endpoint.defaults?.baseUrl,
424
+ ...Object.values(endpoint.capabilities).flatMap((one) => Object.values(one.protocolDefaults ?? {}).map((value) => value.baseUrl)),
425
+ ...aliases
426
+ ].filter((value) => typeof value === "string");
427
+ const isOfficial = configured === void 0 || typeof configured === "string" && canonical.some((value) => value.replace(/\/+$/, "") === configured.replace(/\/+$/, ""));
428
+ const selected = defaults.baseUrl ?? endpoint.defaults?.baseUrl;
429
+ return {
430
+ ...endpoint.defaults,
431
+ ...defaults,
432
+ ...config,
433
+ ...isOfficial && selected !== void 0 ? { baseUrl: selected } : {}
434
+ };
435
+ }
436
+ //#endregion
437
+ //#region src/type.ts
438
+ /** Stable official Google supplier identity. */
439
+ const TYPE = "google";
440
+ const endpoints = [{
441
+ id: "google",
442
+ label: "Google AI Studio",
443
+ capabilities: {
444
+ chat: {
445
+ protocolIds: ["gemini-interactions", "openai"],
446
+ defaultProtocolId: "gemini-interactions",
447
+ protocolDefaults: { openai: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai" } }
448
+ },
449
+ image: {
450
+ protocolIds: ["gemini-interactions"],
451
+ defaultProtocolId: "gemini-interactions"
452
+ }
453
+ },
454
+ defaults: { baseUrl: "https://generativelanguage.googleapis.com/v1beta" }
455
+ }];
456
+ /** Declares the API key, native endpoint and supplier-owned model facts without network activity. */
457
+ function googleProviderType() {
458
+ return {
459
+ type: TYPE,
460
+ label: "Google Gemini",
461
+ fields: [{
462
+ key: "apiKey",
463
+ kind: "secret",
464
+ label: "API Key",
465
+ required: true
466
+ }],
467
+ endpoints,
468
+ catalog,
469
+ describeModel({ model }) {
470
+ return catalog.snapshot.google?.[model];
471
+ },
472
+ prepareConnection(input) {
473
+ if (input.endpointId !== "google" || !Object.values(endpoints[0].capabilities).some((one) => one.protocolIds.includes(input.protocolId))) throw new Error("Unsupported Google endpoint or protocol");
474
+ return {
475
+ config: connectionConfig(endpoints[0], input.protocolId, input.config),
476
+ options: {}
477
+ };
478
+ }
479
+ };
480
+ }
481
+ //#endregion
482
+ //#region src/index.ts
483
+ const plugin = {
484
+ name: "@eum-agent/llm-provider-google",
485
+ apply(ctx) {
486
+ ctx.modelProviders.register(googleProviderType());
487
+ }
488
+ };
489
+ //#endregion
490
+ export { plugin as default };
package/package.json CHANGED
@@ -1,6 +1,44 @@
1
1
  {
2
2
  "name": "@eum-agent/llm-provider-google",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "displayName": {
4
+ "en-US": "Google Gemini Models",
5
+ "zh-CN": "模型接入 · Google"
6
+ },
7
+ "version": "1.1.0",
8
+ "type": "module",
9
+ "description": "Native Google Gemini Interactions provider",
10
+ "license": "MIT",
11
+ "exports": {
12
+ ".": {
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "assets"
19
+ ],
20
+ "devDependencies": {
21
+ "@eum-agent/plugin": "1.1.0"
22
+ },
23
+ "dependencies": {
24
+ "zod": "^4.4.3"
25
+ },
26
+ "yaoguang": {
27
+ "description": {
28
+ "en-US": "Native Google Gemini Interactions provider",
29
+ "zh-CN": "模型接入 · Google"
30
+ },
31
+ "dependencies": {
32
+ "@eum-agent/llm-management": "1.1.0"
33
+ },
34
+ "kind": "extension",
35
+ "foundationDependencies": {
36
+ "@eum-agent/infra-local": "1.0.1"
37
+ }
38
+ },
39
+ "scripts": {
40
+ "build": "tsdown",
41
+ "test": "vitest run",
42
+ "typecheck": "tsc --noEmit"
43
+ }
6
44
  }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.