@vellumai/web 0.11.2-staging.1 → 0.11.2-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{access-DRXEXX07.js → access-CVnesk0m.js} +1 -1
- package/dist/assets/{account-page-CX6hJQwg.js → account-page-mMG1nL1O.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CiQqwf32.js → acp-run-detail-panel-SN6NIuW5.js} +1 -1
- package/dist/assets/activity-steps-panel-bduSS8_d.js +1 -0
- package/dist/assets/{ai-page-DMad1ZuI.js → ai-page-BMqECtJX.js} +1 -1
- package/dist/assets/{app-card-CiARsZNb.js → app-card-BJigGog3.js} +1 -1
- package/dist/assets/{assistant-status-panel-BcO4L1Ot.js → assistant-status-panel-DyjhJvK6.js} +1 -1
- package/dist/assets/auth-store-C9aYqB9U.js +2 -0
- package/dist/assets/background-task-actions-DmocXKSr.js +1 -0
- package/dist/assets/{background-task-detail-panel-Cwy0aX1X.js → background-task-detail-panel-DCtBOnvF.js} +1 -1
- package/dist/assets/{billing-page-DtY1C_1i.js → billing-page-TF_LgX6K.js} +1 -1
- package/dist/assets/{bookmarks-page-CR6qlXH4.js → bookmarks-page-Brvj5Jf6.js} +1 -1
- package/dist/assets/{build-state-dDRg651i.js → build-state-9uUe0jN5.js} +1 -1
- package/dist/assets/{channels-page-route-BkAp7hp5.js → channels-page-route-8vJJE2LN.js} +1 -1
- package/dist/assets/{chat-markdown-message-Da34digC.js → chat-markdown-message-B7qvlO44.js} +1 -1
- package/dist/assets/{checkout-page-ChHhRSW7.js → checkout-page-MpIPAAgf.js} +1 -1
- package/dist/assets/{command-palette-window-page-BYRKvEj-.js → command-palette-window-page-CoweYsZl.js} +1 -1
- package/dist/assets/{contacts-page-route-6Pnu98io.js → contacts-page-route-BOpVOsYK.js} +1 -1
- package/dist/assets/{conversation-navigation-BqoIExAQ.js → conversation-navigation-Bf3cDRKh.js} +1 -1
- package/dist/assets/{conversation-queries-Dcm9S7mz.js → conversation-queries-BBj4FfQn.js} +1 -1
- package/dist/assets/{credentials-page-BnxIymyf.js → credentials-page-DBLT8nUI.js} +1 -1
- package/dist/assets/{debug-page-Bjdmoc6_.js → debug-page-DfPZPo6D.js} +1 -1
- package/dist/assets/{developer-page-CiJvs_Lu.js → developer-page-DwBmhm09.js} +1 -1
- package/dist/assets/{document-viewer-page-CsLTrhRq.js → document-viewer-page-CA1ParJ6.js} +1 -1
- package/dist/assets/{emails-page-DPdeEAZJ.js → emails-page-Bo0Bwem2.js} +1 -1
- package/dist/assets/{first-run-scope-CXWfJKeP.js → first-run-scope-CPJpXaWU.js} +1 -1
- package/dist/assets/{general-page-DYnUkwRE.js → general-page-BXeIQDGi.js} +1 -1
- package/dist/assets/{hatching-screen-CxSp0qa2.js → hatching-screen-BUpSlvBy.js} +1 -1
- package/dist/assets/{home-page-route-dqvJQwjW.js → home-page-route-BPht0PNp.js} +1 -1
- package/dist/assets/{hosting-screen-kj-kAK7Q.js → hosting-screen-DxtyBx0I.js} +1 -1
- package/dist/assets/index-C7_04HXM.css +2 -0
- package/dist/assets/index-CPeIfypI.js +11 -0
- package/dist/assets/{inspect-page-BlY6O00x.js → inspect-page-C8aLJOd6.js} +1 -1
- package/dist/assets/{integrations-page-49zuLodO.js → integrations-page-Bp2Q81Qt.js} +1 -1
- package/dist/assets/{library-detail-page-fsYlOanf.js → library-detail-page-gC4yIWnV.js} +1 -1
- package/dist/assets/{library-page-CjJhvK-9.js → library-page-B10gnbXU.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-BvHY1msh.js → local-runtime-upgrade-CnY-6TiF.js} +1 -1
- package/dist/assets/{login-flow-DmQTk-x9.js → login-flow-CQhvCbQQ.js} +1 -1
- package/dist/assets/{login-page-BvisuxEP.js → login-page-CbWRbJDE.js} +1 -1
- package/dist/assets/{logout-page-BMKKBE_F.js → logout-page-DCyzi0V6.js} +1 -1
- package/dist/assets/{logs-layout-BJe9y8po.js → logs-layout-CYkqau4S.js} +1 -1
- package/dist/assets/{memory-page-route-BcZNNNO7.js → memory-page-route-j_3602nh.js} +1 -1
- package/dist/assets/{memory-router-playground-page-DTR4Mrw4.js → memory-router-playground-page-x5X662qi.js} +1 -1
- package/dist/assets/message-content-B6_GZQl9.js +1 -0
- package/dist/assets/{message-files-panel-CKeLnC4N.js → message-files-panel-C8JokH6e.js} +1 -1
- package/dist/assets/{messages-QgGSiklY.js → messages-Dyp1xUqz.js} +1 -1
- package/dist/assets/{notifications-rSx7pNPi.js → notifications-BTG4cTbF.js} +1 -1
- package/dist/assets/{notifications-page-Cu8hoFGy.js → notifications-page-BA2BW5y6.js} +1 -1
- package/dist/assets/{open-workspace-file-B_Rft7dd.js → open-workspace-file-CivxJWcw.js} +2 -2
- package/dist/assets/{plans-page-BDMR-ZtU.js → plans-page-BfyCgy38.js} +1 -1
- package/dist/assets/{platform-login-notice-q7ZuGeuo.js → platform-login-notice-DFmjUE9q.js} +1 -1
- package/dist/assets/{platform-loopback-page-e9XVrvYR.js → platform-loopback-page-BGF_H8f_.js} +1 -1
- package/dist/assets/{privacy-page-BZSbEQ1K.js → privacy-page-BhEGh78C.js} +1 -1
- package/dist/assets/{privacy-screen-BnQiOWl7.js → privacy-screen-CWVCI_KU.js} +1 -1
- package/dist/assets/{provider-callback-page-z2Cgryjl.js → provider-callback-page-DP5cKqPE.js} +1 -1
- package/dist/assets/{provider-signup-page-B-Li8WKA.js → provider-signup-page-BjiiJWS_.js} +1 -1
- package/dist/assets/{research-onboarding-route-C7jtWVgW.js → research-onboarding-route-DZF-B2Rk.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-CgvcI85l.js → retire-confirm-dialog-8xlq4bkx.js} +1 -1
- package/dist/assets/{review-terms-screen-Bwu6-idm.js → review-terms-screen-C5BAI3Rx.js} +1 -1
- package/dist/assets/routes-uGHUgv4F.js +23 -0
- package/dist/assets/{runtime-upgrade-banner-BhPmj3_g.js → runtime-upgrade-banner-DjFuJawk.js} +1 -1
- package/dist/assets/{schedules-page-CT6myKlW.js → schedules-page-3ZE1nR6I.js} +1 -1
- package/dist/assets/{select-assistant-screen-DbeX0PLD.js → select-assistant-screen-D4WHHv61.js} +1 -1
- package/dist/assets/{settings-layout-ChyYdGV8.js → settings-layout-BmOglXDq.js} +1 -1
- package/dist/assets/{settings-navigation-DNl4C8Cc.js → settings-navigation-CyH-twYD.js} +1 -1
- package/dist/assets/{share-feedback-modal-7O61hwO1.js → share-feedback-modal-Rwuho_1S.js} +1 -1
- package/dist/assets/{sidebar-tree-CsfghEZ-.js → sidebar-tree-Dxx5qLMQ.js} +1 -1
- package/dist/assets/{signup-page-DDuZGMBS.js → signup-page-BAEo45pt.js} +1 -1
- package/dist/assets/site-favicon-CDH0mg6Q.js +1 -0
- package/dist/assets/{skill-detail-page-u1LBXWn1.js → skill-detail-page-DswXTTyb.js} +1 -1
- package/dist/assets/{subagent-detail-panel-8-Z5ZMUL.js → subagent-detail-panel-CidisBCf.js} +1 -1
- package/dist/assets/{system-events-page-DLvxCVqo.js → system-events-page-BrvTNeiN.js} +1 -1
- package/dist/assets/{tool-detail-panel-BmohMKch.js → tool-detail-panel-B2CIRZkB.js} +2 -2
- package/dist/assets/transcript-message-body-shared-BfKwS5qD.js +1 -0
- package/dist/assets/{upgrade-cancel-page-DcWOus4Y.js → upgrade-cancel-page-DjeqfvTa.js} +1 -1
- package/dist/assets/{upgrade-success-page-BSzX2vWY.js → upgrade-success-page-B4TCn340.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-BcEeQKyP.js → use-checkout-dismiss-refresh-CV_H4uEB.js} +1 -1
- package/dist/assets/{use-command-palette-sections-DvMBAWZC.js → use-command-palette-sections-BshFMe0w.js} +1 -1
- package/dist/assets/{use-edit-app-DOmv9zsZ.js → use-edit-app-Bd1eXXFq.js} +1 -1
- package/dist/assets/{use-is-org-ready-Df3qfx4p.js → use-is-org-ready-3vHDbj4G.js} +1 -1
- package/dist/assets/{use-onboarding-login-V-vR-6Zd.js → use-onboarding-login-CiQyxJLM.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-y2pWr9on.js → use-platform-assistant-id-DgrNmSy2.js} +1 -1
- package/dist/assets/{use-platform-gate-B_3hHMqw.js → use-platform-gate-C5bNA5Pn.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-DzCxe5P0.js → use-return-to-short-circuit-g88hMnN8.js} +1 -1
- package/dist/assets/{use-sticky-profiles-DamFnjb1.js → use-sticky-profiles-D5TVHOgw.js} +1 -1
- package/dist/assets/use-subagent-card-data-bjGydvhR.js +1 -0
- package/dist/assets/{use-transcript-message-by-id-BxaY6TIY.js → use-transcript-message-by-id-BgyP3Ki5.js} +1 -1
- package/dist/assets/{use-transcript-messages-CgESPWZ3.js → use-transcript-messages-C2uwkjKL.js} +1 -1
- package/dist/assets/{viewer-store-Cp5tMX-G.js → viewer-store-DbIS4l8d.js} +1 -1
- package/dist/assets/{voice-list-yvKUrPIf.js → voice-list-D26Lzbpv.js} +1 -1
- package/dist/assets/{voice-page-C8EoRpvD.js → voice-page-CQ2Vp8p4.js} +1 -1
- package/dist/assets/{welcome-screen-DzQAH74J.js → welcome-screen-CdsjDVfi.js} +1 -1
- package/dist/index.html +34 -34
- package/package.json +1 -1
- package/dist/assets/activity-steps-panel-Ds6C3Jf0.js +0 -1
- package/dist/assets/auth-store-CWJoXmMk.js +0 -2
- package/dist/assets/background-task-actions-762wxVkT.js +0 -1
- package/dist/assets/index-DQqBZlYO.js +0 -11
- package/dist/assets/index-OYTmjL3q.css +0 -2
- package/dist/assets/risk-Bnj8QXuk.js +0 -1
- package/dist/assets/routes-SchRo2Ae.js +0 -23
- package/dist/assets/site-favicon-FokoB0J2.js +0 -1
- package/dist/assets/transcript-message-body-shared-DkwwIkg0.js +0 -1
- package/dist/assets/use-subagent-card-data-B31LofB3.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-CJf7MmLX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./check-Dt2rQhdg.js";import{t as u}from"./chevron-down-BNidRDh1.js";import{t as d}from"./chevron-right-CANAtgGn.js";import{M as f,P as p}from"./src-Da9g8qsW.js";import{t as m}from"./loader-circle-DWWXcfTQ.js";import{t as h}from"./search-DL-2uX3K.js";import{n as g,t as _}from"./input-tXUFa7Eo.js";import{t as v}from"./toggle-BEPV0rQM.js";import{t as y}from"./modal-xr_vw1ZO.js";import{n as b}from"./toast-BtFgiPe3.js";import{t as x}from"./dropdown-B3FHWc_n.js";import{t as S}from"./is-electron-DIlIrdJX.js";import{t as C}from"./assistant-identity-store-B51BX78j.js";import{i as w,n as T,o as E}from"./utils-DtVy-_pB.js";import{Ht as D,Jt as O,Ut as k,cr as ee,qt as A,sr as te}from"./sdk.gen-CjtCuSlS.js";import{n as j}from"./use-platform-gate-B_3hHMqw.js";import{r as M}from"./use-is-org-ready-Df3qfx4p.js";import{It as N,W as ne,c as re,vt as P,yt as ie}from"./react-query.gen-C7om930f.js";import{o as ae}from"./voice-list-yvKUrPIf.js";var F=e(n(),1),I={anthropic:[{id:`claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-5-20250929`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-opus-4-5-20251101`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-haiku-4-5-20251001`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0}],openai:[{id:`gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.4`,displayName:`GPT-5.4`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.2`,displayName:`GPT-5.2`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-mini`,displayName:`GPT-5.4 Mini`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-nano`,displayName:`GPT-5.4 Nano`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0}],gemini:[{id:`gemini-3.6-flash`,displayName:`Gemini 3.6 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash`,displayName:`Gemini 3.5 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash-lite`,displayName:`Gemini 3.5 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-pro-preview`,displayName:`Gemini 3.1 Pro Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3.1-pro-preview-customtools`,displayName:`Gemini 3.1 Pro Preview (Custom Tools)`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3-flash-preview`,displayName:`Gemini 3 Flash Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite-preview`,displayName:`Gemini 3.1 Flash-Lite Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite`,displayName:`Gemini 3.1 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash`,displayName:`Gemini 2.5 Flash`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash-lite`,displayName:`Gemini 2.5 Flash Lite`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536},{id:`gemini-2.5-pro`,displayName:`Gemini 2.5 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5}],ollama:[{id:`llama3.2`,displayName:`Llama 3.2`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:4096},{id:`mistral`,displayName:`Mistral`,contextWindowTokens:32768,defaultContextWindowTokens:32768,maxOutputTokens:4096}],fireworks:[{id:`accounts/fireworks/models/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`accounts/fireworks/models/kimi-k2p6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`accounts/fireworks/models/glm-5p2`,displayName:`GLM 5.2`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m2p7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0}],together:[{id:`MiniMaxAI/MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0}],openrouter:[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.5`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-opus-4.5`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-sol-pro`,displayName:`GPT-5.6 Sol Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra-pro`,displayName:`GPT-5.6 Terra Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna-pro`,displayName:`GPT-5.6 Luna Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`x-ai/grok-4.5`,displayName:`Grok 4.5`,contextWindowTokens:5e5,defaultContextWindowTokens:2e5,maxOutputTokens:3e4,supportsThinking:!0},{id:`x-ai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`x-ai/grok-4.20`,displayName:`Grok 4.20`,contextWindowTokens:2e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`deepseek/deepseek-r1-0528`,displayName:`DeepSeek R1`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3,supportsThinking:!0},{id:`deepseek/deepseek-chat-v3-0324`,displayName:`DeepSeek V3`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3},{id:`deepseek/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v3.2-speciale`,displayName:`DeepSeek V3.2 Speciale`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:163840,supportsThinking:!0},{id:`qwen/qwen3.5-plus-02-15`,displayName:`Qwen 3.5 Plus`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-397b-a17b`,displayName:`Qwen 3.5 397B`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-flash-02-23`,displayName:`Qwen 3.5 Flash`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`qwen/qwen3-coder-next`,displayName:`Qwen 3 Coder`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`moonshotai/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`moonshotai/kimi-k2.5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`minimax/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`minimax/minimax-m2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:131072,supportsThinking:!0},{id:`minimax/minimax-m2.5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2.1`,displayName:`MiniMax M2.1`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2`,displayName:`MiniMax M2`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2-her`,displayName:`MiniMax M2-her`,contextWindowTokens:65536,defaultContextWindowTokens:65536,maxOutputTokens:2048},{id:`minimax/minimax-m1`,displayName:`MiniMax M1`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:4e4,supportsThinking:!0},{id:`minimax/minimax-01`,displayName:`MiniMax-01`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:1e6},{id:`z-ai/glm-5.2`,displayName:`GLM-5.2`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`mistralai/mistral-medium-3`,displayName:`Mistral Medium 3`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/mistral-small-2603`,displayName:`Mistral Small 4`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/devstral-2512`,displayName:`Devstral 2`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`meta-llama/llama-4-maverick`,displayName:`Llama 4 Maverick`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`meta-llama/llama-4-scout`,displayName:`Llama 4 Scout`,contextWindowTokens:327680,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`amazon/nova-pro-v1`,displayName:`Amazon Nova Pro`,contextWindowTokens:3e5,defaultContextWindowTokens:2e5,maxOutputTokens:5e3},{id:`openrouter/owl-alpha`,displayName:`Owl Alpha`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:262144}],"vercel-ai-gateway":[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`xai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0}],minimax:[{id:`MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`MiniMax-M2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:16384,supportsThinking:!0}],atlascloud:[{id:`deepseek-ai/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:8192,supportsThinking:!0}],litellm:[],baseten:[{id:`thinkingmachines/inkling`,displayName:`Inkling`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],poolside:[{id:`poolside/laguna-s-2.1`,displayName:`Laguna S 2.1`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`poolside/laguna-xs-2.1`,displayName:`Laguna XS 2.1`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],"openai-compatible":[]},L={anthropic:`claude-opus-4-8`,openai:`gpt-5.5`,gemini:`gemini-2.5-flash`,ollama:`llama3.2`,fireworks:`accounts/fireworks/models/deepseek-v4-flash`,together:`MiniMaxAI/MiniMax-M3`,openrouter:`x-ai/grok-4.20`,"vercel-ai-gateway":`anthropic/claude-sonnet-4.6`,minimax:`MiniMax-M2.7`,atlascloud:`deepseek-ai/deepseek-v4-pro`,litellm:``,baseten:`thinkingmachines/inkling`,poolside:`poolside/laguna-s-2.1`,"openai-compatible":``},R={vellum:`Vellum`,chatgpt:`ChatGPT Subscription`,anthropic:`Anthropic`,openai:`OpenAI`,gemini:`Google Gemini`,ollama:`Ollama`,fireworks:`Fireworks`,together:`Together AI`,openrouter:`OpenRouter`,"vercel-ai-gateway":`Vercel AI Gateway`,"openai-compatible":`OpenAI-compatible`,minimax:`MiniMax`,atlascloud:`Atlas Cloud`,litellm:`LiteLLM`,baseten:`Baseten`,poolside:`Poolside`};I.anthropic;var z=[`anthropic`,`openai`,`gemini`,`fireworks`,`together`],oe=(()=>{let e=new Set,t=new Set,n=[];for(let r of z)for(let i of I[r])e.has(i.id)||t.has(i.displayName)||(e.add(i.id),t.add(i.displayName),n.push(i));return n})();function se(e){let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=z.find(e=>e===n),i=e.slice(t+1);return r&&i?{provider:r,model:i}:null}function ce(e){let t=se(e);return t?t.provider:z.find(t=>I[t].some(t=>t.id===e))}function B(e){return e===`vellum`?oe:I[e]??[]}function le(e){return L[e]}var V=`openai-compatible`,H=[`anthropic`,`openai`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`gemini`,`ollama`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`],U=`vellum`,ue=new Set(z),W=1e3,de=1e3,fe=[`default`,`firecrawl`],G={default:`Vellum`,firecrawl:`Firecrawl`},pe={firecrawl:`fc-...`},me={firecrawl:`vellum:ai:firecrawlKey`},he=new Set([`firecrawl`]),ge=[`vellum`,`inference-provider-native`,`perplexity`,`brave`,`tavily`,`firecrawl`],_e={vellum:`Vellum`,"inference-provider-native":`Provider Native`,perplexity:`Perplexity`,brave:`Brave`,tavily:`Tavily`,firecrawl:`Firecrawl`},K={perplexity:`pplx-...`,brave:`BSA...`,tavily:`tvly-...`,firecrawl:`fc-...`},ve={perplexity:`vellum:ai:perplexityKey`,brave:`vellum:ai:braveKey`,tavily:`vellum:ai:tavilyKey`,firecrawl:`vellum:ai:firecrawlKey`},q=new Set([`perplexity`,`brave`,`tavily`,`firecrawl`]),J=new Set([`managed`,`your-own`]);function ye(e,t){return J.has(e)?e:t}function be(e,t){let n=t.filter(t=>t in e).map(t=>({name:t,...e[t]})),r=new Set(t),i=Object.entries(e).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,...t}));return[...n,...i]}function xe(e){if(e&&typeof e==`object`&&`success`in e&&e.success===!1)throw Error(`Failed to provision API key: server returned success=false`)}function Se(e,t,n=W){return Math.min(Number.isFinite(e)?Math.max(Math.round(e),n):n,t)}function Y(e,t){return e.toLocaleString(`en-US`,{maximumFractionDigits:t,minimumFractionDigits:0})}function Ce(e){let t=Array.isArray(e)?e[0]??0:e,n=Math.round(t);return Math.abs(n)>=1e6?`${Y(n/1e6,2)}M`:Math.abs(n)>=1e3?`${Y(n/1e3,1)}K`:n.toLocaleString(`en-US`)}function X(e){return ve[e]??``}function we(e){return me[e]??``}var Te={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function Ee(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function Z(e){return e.startsWith(`anthropic/`)}function De(e,t){let n=t.toLowerCase();return B(e).find(e=>e.id.toLowerCase()===n)}function Oe(e,t){return De(e,t)?.adaptiveThinkingOnly===!0}function ke(e){return Z(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var Ae=[`minimal`,`low`,`medium`,`high`],je=[`low`,`medium`,`high`];function Me(e){return/^gemini-3.*pro/.test(e)}var Ne=new Set(Ae);function Pe(e){return typeof e==`string`&&Ne.has(e)}function Fe(e){return Me(e.toLowerCase())?je:Ae}function Ie(e,t){let n=De(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?ke(t):e===`vercel-ai-gateway`?Z(t):!1:n.supportsThinking}function Le(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?Ee(t):e===`openrouter`||e===`vercel-ai-gateway`?Z(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Q=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Re(e,t){return t||Q.has(e)}function ze(e,t){if(!e||!t)return Te;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&Z(r),a=Ie(n,r);return{maxTokens:!0,contextWindow:!0,effort:Le(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&Ee(r),temperature:i,topP:Re(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&Z(r))&&a&&!Oe(n,r),thinkingLevel:n===`gemini`&&a}}var Be=`0.10.8`;function Ve(){return w(Be)}var $=o(),He=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ue=[`standard`,`fast`],We=[`low`,`medium`,`high`],Ge=`default`,Ke=64e3;function qe({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,F.useState)(s?``:String(t)),[d,p]=(0,F.useState)(t);t!==d&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function h(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=Se(i,a);u(String(o)),n(o)}return(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,$.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,Ce(i)]}):null]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:W,max:a,step:de,disabled:o,"aria-label":e})}),(0,$.jsx)(_,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h(e.currentTarget.value)},min:W,max:a,step:de,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function Je({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:d,speed:m,onSpeedChange:h,verbosity:g,onVerbosityChange:_,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:ee,thinkingLevel:A,onThinkingLevelChange:te}){let j=Ve(),M=r?.maxOutputTokens??Ke,N=r?.contextWindowTokens??2e5,ne=Math.min(i??Ke,M),re=Math.min(a??2e5,N);return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[!t&&j&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,$.jsx)(qe,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:ne,max:M,disabled:t}),e.contextWindow&&(0,$.jsx)(qe,{label:`Context Window`,value:c,onChange:l,defaultValue:re,max:N,disabled:t||!r}),e.effort&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,$.jsx)(p,{items:He.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>d(e),ariaLabel:`Effort`})]}),e.speed&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,$.jsx)(p,{items:Ue.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,$.jsx)(p,{items:We.map(e=>({value:e,label:e,disabled:t})),value:g,onChange:e=>_(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(v,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,$.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(v,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,$.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsx)(v,{checked:D,onChange:e=>{O(e),e||ee(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,$.jsx)(`div`,{className:`pl-4`,children:(0,$.jsx)(v,{checked:k,onChange:e=>ee(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,$.jsx)(p,{items:[`default`,...Fe(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:A,onChange:te,ariaLabel:`Thinking level`})]})]})}var Ye=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function Xe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Ze(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Qe(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function $e(e){return e.label?e.label:e.auth.type===`oauth_subscription`?R.chatgpt:R[e.provider]??e.provider}var et=new Set([`ollama`]);function tt(e,t){return!et.has(e)||t}function nt(e){return H.filter(t=>tt(t,e))}function rt(e){return Ye.filter(t=>tt(t,e))}function it(e){return Object.keys(I).filter(t=>tt(t,e))}function at(){return nt(j())}function ot(){return rt(j())}function st(){return it(j())}function ct(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>tt(e,t)),r=[];return n.includes(`vellum`)&&r.push(U),r.push(...Ye.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Ye.includes(e))),r}var lt=`${V}::`;function ut(e){return`${lt}${e}`}function dt(e){return e.startsWith(lt)?e.slice(lt.length):null}function ft(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:ut(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var pt=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function mt(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function ht(e,t,n){return!e||B(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var gt={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},_t=`__custom-model-id__`;function vt({text:e}){return(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function yt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1}){let p=e.length>0&&t.length===0,[m,h]=(0,F.useState)(!1),g=ht(e,n,u),v=e!==``&&!g;(0,F.useEffect)(()=>{v||h(!1)},[e,v]);function y(e){if(e===_t){h(!0),a(``);return}a(e)}let b=st(),S=j(),C=(0,F.useMemo)(()=>{let t=ct(s??[],S);return e&&!t.includes(e)?[...t,e]:t},[s,e,S]),w=s===void 0?b:C,T=(0,F.useMemo)(()=>{if(!e)return[];let t=B(e);if(t.length>0)return ht(e,n,u)?t.filter(e=>pt.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?mt(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),E=(0,F.useMemo)(()=>{if(!t||T.some(e=>e.id===t))return T;let n=B(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...T,{id:t,displayName:i}]},[t,T,e,u]),D=e?T.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,O=D?gt[D]:null;return(0,F.useEffect)(()=>{if(!e||m)return;let n=B(e);n.length>0&&!n.some(e=>e.id===t)||t&&T.length>0&&!T.some(e=>e.id===t)&&a(``)},[t,T,a,e,m]),(0,$.jsxs)($.Fragment,{children:[!f&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{value:e===`openai-compatible`&&n?ut(n):e,onChange:e=>{let t=dt(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:[...ft(w,s??[],e=>R[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,$.jsx)(vt,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:ut(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:R[`openai-compatible`]??`openai-compatible`}]:[]]}),w.length===0&&!l?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`No provider connections. Open Providers to add one.`}):null]}),d&&!l&&(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,$.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>h(!1),children:`Choose from list`})]}):(0,$.jsx)(x,{value:t,onChange:y,disabled:l||!e,options:[{value:``,label:O?.placeholder??`Select a model`},...E.map(e=>({value:e.id,label:e.displayName})),...v?[{value:_t,label:`Enter a custom model ID…`}]:[]]}),m?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):p&&!l?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:O?.hint??`Select a model.`}):null]})]})}function bt(e,t,n){return[`credentialPresence`,e,t,n]}function xt({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=M(),s=a({queryKey:bt(e??``,n,r),queryFn:async()=>{let{data:t}=await ee({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function St({assistantId:e,onConnected:t}){let[n,i]=(0,F.useState)(`idle`),[a,o]=(0,F.useState)(``),[s,l]=(0,F.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await k({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await D({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await A({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,$.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,$.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,$.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var Ct=new Set(Object.entries(R).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),wt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function Tt(e,t,n){let r=e.trim().toLowerCase();return r?Ct.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function Et(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function Dt(e){return Et(e)}function Ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function kt(e,t){return{name:R[e]??e,key:Ot(`${Dt(e)}-personal`,t)}}function At(e,t){return{name:e,key:Ot(Dt(e),t)}}function jt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:u,onError:f}){let[p,h]=(0,F.useState)(!1),[g,v]=(0,F.useState)(!1),[y,b]=(0,F.useState)(``);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,$.jsx)(_,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),u&&(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":p,onClick:()=>h(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${p?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`}),(0,$.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),p&&(0,$.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,$.jsx)(x,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),g&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(_,{value:y,onChange:e=>b(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!y.trim(),onClick:()=>{let e=y.trim();e&&(i(`credential/${s}/${e}`),v(!1),b(``))},children:`Use`})]})]}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{g?(v(!1),b(``)):v(!0)},children:g?`Cancel`:`+ New Credential`})})]})]})]})}var Mt=`•`.repeat(8);function Nt(e,t){return t?Mt:e}function Pt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function Ft({assistantId:e,enabled:n=!0}){let r=M(),i=a({...P({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>Pt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function It({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,onCreated:o,onCancel:s,variant:l=`modal`}){let u=ot(),f=a&&u.includes(a)?a:u[0]??`anthropic`,p=kt(f,t),[m,h]=(0,F.useState)(f===`openai-compatible`?``:p.name),[g,v]=(0,F.useState)(p.key),[S,C]=(0,F.useState)(f),w=S===`chatgpt`,T=w?`openai`:S,E=w?`oauth_subscription`:T===`ollama`?`none`:`api_key`,[D,k]=(0,F.useState)(()=>f===`ollama`?``:f===`openai-compatible`?`credential/${p.key}/api_key`:`credential/${f}/api_key`),[ee,A]=(0,F.useState)(``),[j,M]=(0,F.useState)(``),[N,ne]=(0,F.useState)(!1),[re,P]=(0,F.useState)(null),[ae,I]=(0,F.useState)(!1),L=T===`openai-compatible`,z=(0,F.useMemo)(()=>{let e=!w&&!u.includes(T)?[...u,T]:[...u],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[w,T,u]),oe=(0,F.useRef)(!1);function se(e){oe.current=!0,h(e)}let[ce,B]=(0,F.useState)(``),[le,V]=(0,F.useState)(!1),H=i(),U=(0,F.useMemo)(()=>Xe(D),[D]),ue=E===`api_key`&&U!==null,{hasStoredCredential:W,isLoading:de}=xt({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:ue}),{credentials:fe}=Ft({assistantId:e,enabled:!0}),G=L?Tt(m,n):null,pe=g.trim().length>0&&(!L||m.trim().length>0)&&G===null;async function me(){if(pe){ne(!0),P(null);try{let t;if(E===`api_key`){let n=D.trim()||`credential/${L?g:T}/api_key`,r=ce.trim();if(r){V(!0);try{let t=Xe(n);await te({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:T,value:r},throwOnError:!0});let i=bt(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:ie({path:{assistant_id:e}})})}catch{P(`Failed to save API key. Please try again.`);return}finally{V(!1)}t={type:`api_key`,credential:n}}else if(W)t={type:`api_key`,credential:n};else if(L)t={type:`none`};else{P(`Enter an API key or select an existing credential.`);return}}else if(E===`oauth_subscription`){P(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=m.trim()||null,r={name:g.trim(),provider:T,auth:t,...n!==null&&{label:n},...L&&{base_url:ee.trim()||null,models:j.trim()?j.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:s}=await O({path:{assistant_id:e},body:r});if(!s?.ok){P(Qe(s?.status,a)??Ze(s?.status));return}if(!i){P(`Server returned an empty response. Please try again.`);return}b.success(`Provider connected`),o(i)}catch{P(`Failed to save provider. Please try again.`)}finally{ne(!1)}}}let he=fe.filter(e=>e.service===T),ge=he.length>0,_e=Nt(`Enter your API key`,W),K=ae,ve=(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":K,onClick:()=>I(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${K?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`})]}),K&&(0,$.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,$.jsx)(_,{value:m,onChange:e=>se(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),q=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{"aria-label":`Provider`,value:S,onChange:e=>{if(C(e),P(null),e===`chatgpt`)return;let{name:n,key:r}=kt(e,t);oe.current||h(e===`openai-compatible`?``:n),v(r),k(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...z.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:R[e]})),...z.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),L?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),L&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,$.jsx)(_,{value:m,onChange:e=>se(e.target.value),placeholder:`xAI`,fullWidth:!0}),G?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:wt[G]}):null]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,$.jsx)(_,{value:ee,onChange:e=>A(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,$.jsx)(_,{value:j,onChange:e=>M(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),E===`api_key`&&(0,$.jsx)(jt,{apiKeyValue:ce,onApiKeyChange:B,credential:D,onCredentialChange:k,isLoadingCredential:de,apiKeyPlaceholder:_e,provider:T,providerCredentials:he,showAdvancedSection:ge,onError:P}),L&&E===`api_key`?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,E===`oauth_subscription`&&(0,$.jsx)(St,{assistantId:e,onConnected:o}),!w&&!L&&ve,re&&(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:re})]}),J=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:s,children:`Cancel`}),!w&&(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!pe||N||le,onClick:()=>void me(),children:N?`Saving…`:L&&m.trim()?`Add ${m.trim()}`:`Add`})]});return l===`inline`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[q,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:J})]}):(0,$.jsxs)(y.Content,{size:`md`,children:[(0,$.jsxs)(y.Header,{children:[(0,$.jsx)(y.Title,{children:`Add Provider`}),(0,$.jsx)(y.Description,{children:`Choose a provider and paste its API key.`})]}),(0,$.jsx)(y.Body,{children:q}),(0,$.jsx)(y.Footer,{children:J})]})}var Lt=`__create_new_provider__`;function Rt({editor:e,assistantId:t,connections:n,variant:r}){let i=j(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,F.useState)(!1),u=s||!!e.keyError&&e.getDirty(),f=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,$.jsx)(_,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,$.jsx)(g,{label:(0,$.jsxs)($.Fragment,{children:[`Description`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),m=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,$.jsx)(_,{type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,fullWidth:!0}),e.keyError&&!e.isReadOnly?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.keyError}):null]}),h=!o&&(!e.isReadOnly||e.status!==`active`)?(0,$.jsx)(v,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,y=(0,$.jsx)(Je,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),b=e.saveError?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,S=(0,F.useMemo)(()=>{let t=ft(ct(e.effectiveConnections,i),e.effectiveConnections,e=>R[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,$.jsx)(vt,{text:n}):void 0}));return t.push({value:Lt,label:`+ Create new provider`}),t},[i,e.effectiveConnections]),C=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{value:e.creatingProvider?Lt:e.provider===`openai-compatible`&&e.providerConnection?ut(e.providerConnection):e.provider,onChange:t=>{if(t===Lt){e.setCreatingProvider(!0),e.setNewProviderNote(!1);return}if(!t)return;e.setCreatingProvider(!1);let n=dt(t);if(n){e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(V),e.setProviderConnection(n);return}e.handleProviderChange(t)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:S}),e.newProviderNote?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,$.jsx)(It,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:e.provider||void 0,onCreated:e.handleProviderCreated,onCancel:()=>e.setCreatingProvider(!1)}):(0,$.jsx)(yt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f,C,p,h,o?t&&(0,$.jsxs)(`div`,{className:`space-y-4`,children:[m,y]}):t&&(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":u,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${u?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`})]}),u?(0,$.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[m,y]}):null]}),b]})}return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f,p,m,h,(0,$.jsx)(yt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound}),y,b]})}function zt(e,t,n){if(e){let n=B(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function Bt(e,t,n){let r=(0,F.useRef)(!1),i=(0,F.useRef)(!1);return{handleLabelChange:(0,F.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(Et(a))},[e,t,n]),handleKeyChange:(0,F.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,F.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,F.useCallback)(()=>i.current,[])}}var Vt=`0.10.12`;async function Ht(e,t){await E(t);let n=C.getState().assistantId;return e!=null&&n!==e?!1:T(Vt)}function Ut(e,t){return e===t?!0:e===`vellum`&&ue.has(t)}function Wt({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,F.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,F.useState)(n?.label??``),[g,_]=(0,F.useState)(n?.description??``),[v,y]=(0,F.useState)(e===`create`?``:t??``),[b,x]=(0,F.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[S,C]=(0,F.useState)(n?.model??``),[w,T]=(0,F.useState)(n?.provider_connection??``),[E,D]=(0,F.useState)(n?.status??`active`),[O,k]=(0,F.useState)([]),[ee,A]=(0,F.useState)(!1),[te,j]=(0,F.useState)(null),[M,N]=(0,F.useState)(n?.maxTokens??null),[P,ie]=(0,F.useState)(n?.contextWindow?.maxInputTokens??null),[ae,I]=(0,F.useState)(n?.effort??`inherit`),[L,R]=(0,F.useState)(n?.speed??`standard`),[z,oe]=(0,F.useState)(n?.verbosity??`medium`),[le,V]=(0,F.useState)(typeof n?.temperature==`number`),[H,ue]=(0,F.useState)(typeof n?.temperature==`number`?n.temperature:.7),[W,de]=(0,F.useState)(typeof n?.topP==`number`),[fe,G]=(0,F.useState)(typeof n?.topP==`number`?n.topP:.95),pe=f&&E!==p,[me,he]=(0,F.useState)(n?.thinking?.enabled??!1),[ge,_e]=(0,F.useState)(n?.thinking?.streamThinking??!1),[K,ve]=(0,F.useState)(Pe(n?.thinking?.level)?n.thinking.level:Ge),q=(0,F.useMemo)(()=>b===`vellum`?se(S):null,[b,S]),J=q?.model??S,ye=(0,F.useMemo)(()=>b?B(b).find(e=>e.id===J)??null:null,[b,J]),{data:be}=a({...re({path:{assistant_id:s}}),staleTime:3e4}),xe=be?.llm?.default?.maxTokens,Se=be?.llm?.default?.contextWindow?.maxInputTokens,Y=(0,F.useMemo)(()=>ze(b===`vellum`?q?.provider??ce(S)??n?.provider??``:b,J),[b,S,J,q,n?.provider]),Ce=(0,F.useMemo)(()=>{let e=o??[];if(O.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...O.filter(e=>!t.has(e.name))]},[o,O]),X=(0,F.useMemo)(()=>b?Ce.filter(e=>Ut(e.provider,b)):[],[b,Ce]),we=w!==``&&!X.some(e=>e.name===w),{handleLabelChange:Te,handleKeyChange:Ee,resetDirty:Z,getDirty:De}=Bt(l,h,y),Oe=i(),[ke,Ae]=(0,F.useState)(!1),[je,Me]=(0,F.useState)(!1);(0,F.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&x(U)},[o,b,n]),(0,F.useEffect)(()=>{Z(),Ae(!1),Me(!1),k([])},[t,e,Z]);function Ne(e){if(e===b)return;x(e),C(``);let t=Ce.filter(t=>Ut(t.provider,e));T(t.length===1?t[0].name:``),N(null),ie(null),I(`inherit`),R(`standard`),oe(`medium`),V(!1),ue(.7),de(!1),G(.95),he(!1),_e(!1),ve(Ge)}function Fe(e){if(T(e),b&&B(b).length===0&&S)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(S)||C(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(S)||C(``)}}function Ie(e){if(e!==S&&(C(e),N(null),ie(null),l===`create`&&e&&!De())){let{name:t,key:n}=At(zt(b||void 0,e,X),r);h(t),y(n)}}function Le(e){let t=e.provider;t!==`vellum`&&(k(t=>t.some(t=>t.name===e.name)?t:[...t,e]),x(t),T(e.name),C(``),Ae(!1),Me(!0),Oe.invalidateQueries({queryKey:ne({path:{assistant_id:s}})}))}let Q=v.trim(),Re=Q.length===0,Be=/\s/.test(v),Ve=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),$=b.length===0,He=b.length>0&&S.length===0,Ue=Re||Be||Ve||$||He,We=Re?`Key is required`:Be?`Key cannot contain whitespace`:Ve?`A profile with this key already exists`:null;async function Ke(){if(!(Ue&&!f)){if(f){if(!pe)return;A(!0),j(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch{j(`Failed to save profile. Please try again.`)}finally{A(!1)}return}A(!0),j(null);try{let e={},t=w===``&&X.length===1?X[0].name:w,r=we?``:t,i=b===`vellum`&&await Ht(s),a=b===`vellum`?i?U:q?.provider??ce(S)??n?.provider??``:b,o=J,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),Y.maxTokens&&M!==null&&(e.maxTokens=M),Y.contextWindow&&P!==null&&(e.contextWindow={maxInputTokens:P}),Y.effort&&ae!==`inherit`&&(e.effort=ae),Y.speed&&L!==`standard`&&(e.speed=L),Y.verbosity&&(e.verbosity=z),Y.temperature&&(le?e.temperature=H:l===`edit`&&(e.temperature=null)),Y.topP&&(W?e.topP=fe:l===`edit`&&(e.topP=null)),Y.thinking&&(e.thinking={enabled:me,...me?{streamThinking:ge}:{}}),Y.thinkingLevel&&K!==`default`&&(e.thinking={enabled:!0,level:K}),(l===`edit`||E!==`active`)&&(e.status=E),await c(Q,e)}catch{j(`Failed to save profile. Please try again.`)}finally{A(!1)}}}function qe(){u(`create`),y(``),Z()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:pe,label:m,description:g,key:v,provider:b,model:S,providerConnection:w,status:E,saving:ee,saveError:te,keyError:We,isInvalid:Ue,maxTokens:M,contextWindowMaxInputTokens:P,effort:ae,speed:L,verbosity:z,temperatureEnabled:le,temperature:H,topPEnabled:W,topP:fe,thinkingEnabled:me,thinkingStreamThinking:ge,thinkingLevel:K,visibility:Y,selectedModel:ye,defaultMaxOutputTokens:xe,defaultContextWindowMaxInputTokens:Se,effectiveConnections:Ce,availableConnectionsForProvider:X,connectionNotFound:we,creatingProvider:ke,newProviderNote:je,setDescription:_,setStatus:D,setMaxTokens:N,setContextWindowMaxInputTokens:ie,setEffort:I,setSpeed:R,setVerbosity:oe,setTemperatureEnabled:V,setTemperature:ue,setTopPEnabled:de,setTopP:G,setThinkingEnabled:he,setThinkingStreamThinking:_e,setThinkingLevel:ve,setCreatingProvider:Ae,setNewProviderNote:Me,handleLabelChange:Te,handleKeyChange:Ee,getDirty:De,handleProviderChange:Ne,handleConnectionChange:Fe,handleModelChange:Ie,handleProviderCreated:Le,setProviderConnection:T,setModel:C,handleSave:Ke,switchToSaveAsNew:qe}}var Gt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Kt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function qt(e){let t=Kt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Jt=`pcm-downsample`,Yt=1600,Xt=16e3;function Zt(){return S()?window.vellum?.helper?.dictation:void 0}function Qt(){let e=Zt();return!!e?.transcribe&&!!e.onTranscribed}var $t=null,en=null;async function tn(){return $t||($t=qt(),en=$t.audioWorklet.addModule(Gt)),$t.state!==`running`&&await $t.resume(),await en,$t}async function nn(e,t){try{let n=await tn(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Jt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Yt))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var rn=8e3;async function an(e){let t=Zt();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await on(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),rn)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function on(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Xt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var sn=4e3;async function cn(e,t){let n=Zt();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await nn(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),sn)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var ln=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],un=`macos-native`,dn=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:un,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],fn=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],pn=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],mn={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},hn=[`vellum`,`gemini`,`openai`],gn={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function _n(e){return e===`vellum`?[...pn]:pn.filter(t=>vn(t)===e)}function vn(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var yn=`vellum:ai:imageGenProvider`,bn=`vellum:ai:imageGenModel`,xn=`vellum:ai:webSearchProvider`,Sn=`vellum:ai:webFetchProvider`,Cn=`vellum:ai:emailMode`,wn=`vellum:ai:emailByoProvider`,Tn=`vellum:voice:ttsProvider`,En=`vellum:voice:ttsApiKey:`,Dn=`vellum:voice:ttsVoiceId:`,On=`vellum:voice:sttProvider`,kn=`vellum:voice:sttApiKey:`;function An({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,$.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,$.jsx)(u,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}function jn(e){return e.nativeLabel?`${e.label} (${e.nativeLabel})`:e.label}var Mn=`multi`,Nn=[{code:``,label:`English (default)`,description:`Speech recognition defaults to English.`},{code:Mn,label:`Multilingual`,description:`Follows you between languages mid-sentence: English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, and Dutch.`},{code:`ar`,label:`Arabic`,nativeLabel:`العربية`,extended:!0},{code:`be`,label:`Belarusian`,nativeLabel:`Беларуская`,extended:!0},{code:`bn`,label:`Bengali`,nativeLabel:`বাংলা`,extended:!0},{code:`bs`,label:`Bosnian`,nativeLabel:`Bosanski`,extended:!0},{code:`bg`,label:`Bulgarian`,nativeLabel:`Български`,extended:!0},{code:`ca`,label:`Catalan`,nativeLabel:`Català`,extended:!0},{code:`zh`,label:`Chinese`,nativeLabel:`中文`,extended:!0},{code:`hr`,label:`Croatian`,nativeLabel:`Hrvatski`,extended:!0},{code:`cs`,label:`Czech`,nativeLabel:`Čeština`,extended:!0},{code:`da`,label:`Danish`,nativeLabel:`Dansk`,extended:!0},{code:`nl`,label:`Dutch`,nativeLabel:`Nederlands`},{code:`et`,label:`Estonian`,nativeLabel:`Eesti`,extended:!0},{code:`fi`,label:`Finnish`,nativeLabel:`Suomi`,extended:!0},{code:`fr`,label:`French`,nativeLabel:`Français`},{code:`de`,label:`German`,nativeLabel:`Deutsch`},{code:`el`,label:`Greek`,nativeLabel:`Ελληνικά`,extended:!0},{code:`gu`,label:`Gujarati`,nativeLabel:`ગુજરાતી`,extended:!0},{code:`he`,label:`Hebrew`,nativeLabel:`עברית`,extended:!0},{code:`hi`,label:`Hindi`,nativeLabel:`हिन्दी`},{code:`hu`,label:`Hungarian`,nativeLabel:`Magyar`,extended:!0},{code:`id`,label:`Indonesian`,nativeLabel:`Bahasa Indonesia`,extended:!0},{code:`it`,label:`Italian`,nativeLabel:`Italiano`},{code:`ja`,label:`Japanese`,nativeLabel:`日本語`},{code:`kn`,label:`Kannada`,nativeLabel:`ಕನ್ನಡ`,extended:!0},{code:`ko`,label:`Korean`,nativeLabel:`한국어`,extended:!0},{code:`lv`,label:`Latvian`,nativeLabel:`Latviešu`,extended:!0},{code:`lt`,label:`Lithuanian`,nativeLabel:`Lietuvių`,extended:!0},{code:`mk`,label:`Macedonian`,nativeLabel:`Македонски`,extended:!0},{code:`ms`,label:`Malay`,nativeLabel:`Bahasa Melayu`,extended:!0},{code:`mr`,label:`Marathi`,nativeLabel:`मराठी`,extended:!0},{code:`no`,label:`Norwegian`,nativeLabel:`Norsk`,extended:!0},{code:`fa`,label:`Persian`,nativeLabel:`فارسی`,extended:!0},{code:`pl`,label:`Polish`,nativeLabel:`Polski`,extended:!0},{code:`pt`,label:`Portuguese`,nativeLabel:`Português`},{code:`ro`,label:`Romanian`,nativeLabel:`Română`,extended:!0},{code:`ru`,label:`Russian`,nativeLabel:`Русский`},{code:`sr`,label:`Serbian`,nativeLabel:`Српски`,extended:!0},{code:`sk`,label:`Slovak`,nativeLabel:`Slovenčina`,extended:!0},{code:`sl`,label:`Slovenian`,nativeLabel:`Slovenščina`,extended:!0},{code:`es`,label:`Spanish`,nativeLabel:`Español`},{code:`sv`,label:`Swedish`,nativeLabel:`Svenska`,extended:!0},{code:`tl`,label:`Tagalog`,extended:!0},{code:`ta`,label:`Tamil`,nativeLabel:`தமிழ்`,extended:!0},{code:`te`,label:`Telugu`,nativeLabel:`తెలుగు`,extended:!0},{code:`th`,label:`Thai`,nativeLabel:`ไทย`,extended:!0},{code:`tr`,label:`Turkish`,nativeLabel:`Türkçe`,extended:!0},{code:`uk`,label:`Ukrainian`,nativeLabel:`Українська`,extended:!0},{code:`vi`,label:`Vietnamese`,nativeLabel:`Tiếng Việt`,extended:!0}],Pn=new Set([`deepgram`,`vellum`]),Fn=new Set([`deepgram`,`vellum`]),In=new Set([`xai`]),Ln={code:``,label:`Auto-detect (default)`,description:`xAI identifies the spoken language natively. Picking a specific language pins it; returning to auto-detect requires clearing services.stt.language outside this picker.`},Rn={code:`en`,label:`English`};function zn(e,t){let n=Fn.has(t)?Nn:Nn.filter(e=>!e.extended),r=Pn.has(t)?n:n.filter(e=>e.code!==Mn),i=In.has(t)?r.flatMap(e=>e.code===``?[Ln,Rn]:[e]):r;return i.some(t=>t.code===e)?i:[...i,{code:e,label:`${e} (custom)`}]}function Bn(e,t,n){let r=zn(e,t),i=[],a=e=>{!i.includes(e)&&r.some(t=>t.code===e)&&i.push(e)};return a(e),a(``),a(Mn),n!=null&&a(n),{featured:i.map(e=>r.find(t=>t.code===e)),rest:r.filter(e=>!i.includes(e.code)).sort((e,t)=>e.label.localeCompare(t.label))}}function Vn(e,t){let n=t.trim().toLowerCase();return n.length===0||e.label.toLowerCase().includes(n)||e.nativeLabel&&e.nativeLabel.toLowerCase().includes(n)?!0:e.code.toLowerCase().startsWith(n)}function Hn(e,t){let n=zn(e,t).find(t=>t.code===e);return n?jn(n):e}function Un(e){if(!e)return null;let t=e.toLowerCase().split(`-`)[0];return t===`en`?null:Nn.find(e=>e.code===t)??null}function Wn(e,t){let n=Un(e);return n?n.extended?Fn.has(t)?n.code:null:Pn.has(t)?Mn:n.code:null}function Gn(e,t){return`${e}-option-${t.code===``?`default`:t.code}`}function Kn({currentCode:e,configuredProviderId:t,suggestedCode:n,selectLanguage:r,selecting:i,onDone:a}){let o=(0,F.useId)(),c=`${o}-listbox`,u=(0,F.useRef)(null),d=(0,F.useRef)(null),[f,p]=(0,F.useState)(``),[m,g]=(0,F.useState)(-1),v=(0,F.useMemo)(()=>Bn(e,t,n),[e,t,n]),y=f.trim().length>0,b=(0,F.useMemo)(()=>{let e=[...v.featured,...v.rest];return y?e.filter(e=>Vn(e,f)):e},[v,y,f]);(0,F.useEffect)(()=>{u.current?.focus()},[]),(0,F.useEffect)(()=>{d.current?.querySelector(`[role="option"][aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[]),(0,F.useEffect)(()=>{if(m<0)return;let e=b[m];e&&document.getElementById(Gn(o,e))?.scrollIntoView({block:`nearest`})},[m,b,o]);let x=e=>{r(e),a()},S=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),b.length===0)return;g(t=>e.key===`ArrowDown`?Math.min(t+1,b.length-1):Math.max(t-1,0));return}if(e.key===`Enter`){let t=b[m]??(y?b[0]:void 0);t&&(e.preventDefault(),x(t.code))}},C=m>=0?b[m]:null,w=t=>{let r=t.code===e,i=t===C,a=n!=null&&t.code===n&&t.code!==e;return(0,$.jsxs)(`button`,{id:Gn(o,t),type:`button`,role:`option`,"aria-selected":r,tabIndex:-1,"data-active":i||void 0,onClick:()=>x(t.code),className:s(`flex w-full cursor-pointer items-center gap-2 rounded-md px-3 py-2.5 text-left transition-colors`,r?`bg-[var(--surface-active)]`:i?`bg-[var(--surface-hover)]`:`hover:bg-[var(--surface-hover)]`),children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:[jn(t),t.description&&(0,$.jsx)(`span`,{className:`block truncate text-label-small-default text-[var(--content-tertiary)]`,children:t.description})]}),a&&(0,$.jsx)(`span`,{className:`shrink-0 text-label-small-default text-[var(--content-tertiary)]`,children:`Suggested`}),r&&(0,$.jsx)(l,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`})]},t.code)},T=(e,t)=>(0,$.jsx)(`div`,{id:e,role:`presentation`,className:`px-3 pt-2 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:t});return(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,$.jsx)(_,{ref:u,role:`combobox`,"aria-expanded":!0,"aria-controls":c,"aria-activedescendant":C?Gn(o,C):void 0,"aria-autocomplete":`list`,"aria-label":`Search languages`,placeholder:`Search languages`,leftIcon:(0,$.jsx)(h,{className:`size-4`}),value:f,onChange:e=>{p(e.target.value),g(e.target.value.trim().length>0?0:-1)},onKeyDown:S,fullWidth:!0}),(0,$.jsx)(`div`,{ref:d,id:c,role:`listbox`,"aria-label":`Languages`,"aria-busy":i,className:s(`flex max-h-[50vh] flex-col overflow-y-auto`,i&&`opacity-70`),children:y?b.length>0?b.map(w):(0,$.jsx)(`p`,{className:`px-3 py-2.5 text-body-medium-default text-[var(--content-tertiary)]`,children:`No languages match.`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{role:`group`,"aria-labelledby":`${o}-featured`,children:[T(`${o}-featured`,`Featured`),v.featured.map(w)]}),(0,$.jsxs)(`div`,{role:`group`,"aria-labelledby":`${o}-all`,children:[T(`${o}-all`,`All languages`),v.rest.map(w)]})]})})]})}var qn=`en`,Jn=e=>({services:{stt:{language:e===``?qn:e}}});function Yn(e){let t=M()&&!!e,{data:n}=a({...N({path:{assistant_id:e??``}}),enabled:t,staleTime:1/0,retry:!1}),{data:r}=a({...re({path:{assistant_id:e??``}}),enabled:t,staleTime:3e4}),i=r?.services?.stt,o=i?.mode===`managed`?`vellum`:i?.provider??`deepgram`,s=n?.providers?.find(e=>e.id===o)?.languageSelection===`manual`,c=t&&!!r&&s,l=i?.language,u=!In.has(o),{currentValue:d,selecting:f,select:p}=ae({assistantId:e,configuredValue:!l||u&&l===qn?``:l,buildPatchBody:Jn,failureMessage:`Couldn't change the language just now. Try again.`});return{available:c,currentCode:d,configuredProviderId:o,selectLanguage:p,selecting:f}}function Xn(e,t){let n=e.filter(e=>e.status!==`disabled`);return t&&n.some(e=>e.name===t)?t:n[0]?.name}function Zn(e,t){let n=new Set;for(let e of t)e&&n.add(e);return e.filter(e=>e.status!==`disabled`||n.has(e.name))}function Qn(e){let t=e.label??e.name;return e.status===`disabled`?`${t} (Disabled)`:t}var $n={profiles:{},profileOrder:[]};function er(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,F.useState)($n),[s,c]=(0,F.useState)(t);return t!==s&&(c(t),o($n)),(0,F.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:$n}export{Qe as $,vn as A,It as B,mn as C,dn as D,un as E,Kt as F,Tt as G,Nt as H,Gt as I,xt as J,St as K,Wt as L,cn as M,an as N,ln as O,qt as P,$e as Q,zt as R,fn as S,gn as T,jt as U,Ft as V,wt as W,Ze as X,at as Y,Xe as Z,En as _,B as _t,Yn as a,q as at,Sn as b,Hn as c,K as ct,wn as d,fe as dt,xe as et,Cn as f,pe as ft,On as g,le as gt,kn as h,R as ht,Zn as i,ye as it,Qt as j,_n as k,Wn as l,he as lt,yn as m,U as mt,Qn as n,we as nt,Kn as o,_e as ot,bn as p,H as pt,bt as q,Xn as r,X as rt,Un as s,ge as st,er as t,be as tt,An as u,G as ut,Tn as v,hn as w,xn as x,Dn as y,Rt as z};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-CJf7MmLX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./check-Dt2rQhdg.js";import{t as u}from"./chevron-down-BNidRDh1.js";import{t as d}from"./chevron-right-CANAtgGn.js";import{M as f,P as p}from"./src-Da9g8qsW.js";import{t as m}from"./loader-circle-DWWXcfTQ.js";import{t as h}from"./search-DL-2uX3K.js";import{n as g,t as _}from"./input-tXUFa7Eo.js";import{t as v}from"./toggle-BEPV0rQM.js";import{t as y}from"./modal-xr_vw1ZO.js";import{n as b}from"./toast-BtFgiPe3.js";import{t as x}from"./dropdown-B3FHWc_n.js";import{t as S}from"./is-electron-DIlIrdJX.js";import{t as C}from"./assistant-identity-store-B51BX78j.js";import{i as w,n as T,o as E}from"./utils-DtVy-_pB.js";import{Ht as D,Jt as O,Ut as k,cr as ee,qt as A,sr as te}from"./sdk.gen-CjtCuSlS.js";import{n as j}from"./use-platform-gate-C5bNA5Pn.js";import{r as M}from"./use-is-org-ready-3vHDbj4G.js";import{It as N,W as ne,c as re,vt as P,yt as ie}from"./react-query.gen-C7om930f.js";import{o as ae}from"./voice-list-D26Lzbpv.js";var F=e(n(),1),I={anthropic:[{id:`claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-5-20250929`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-opus-4-5-20251101`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-haiku-4-5-20251001`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0}],openai:[{id:`gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.4`,displayName:`GPT-5.4`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.2`,displayName:`GPT-5.2`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-mini`,displayName:`GPT-5.4 Mini`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-nano`,displayName:`GPT-5.4 Nano`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0}],gemini:[{id:`gemini-3.6-flash`,displayName:`Gemini 3.6 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash`,displayName:`Gemini 3.5 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash-lite`,displayName:`Gemini 3.5 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-pro-preview`,displayName:`Gemini 3.1 Pro Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3.1-pro-preview-customtools`,displayName:`Gemini 3.1 Pro Preview (Custom Tools)`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3-flash-preview`,displayName:`Gemini 3 Flash Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite-preview`,displayName:`Gemini 3.1 Flash-Lite Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite`,displayName:`Gemini 3.1 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash`,displayName:`Gemini 2.5 Flash`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash-lite`,displayName:`Gemini 2.5 Flash Lite`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536},{id:`gemini-2.5-pro`,displayName:`Gemini 2.5 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5}],ollama:[{id:`llama3.2`,displayName:`Llama 3.2`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:4096},{id:`mistral`,displayName:`Mistral`,contextWindowTokens:32768,defaultContextWindowTokens:32768,maxOutputTokens:4096}],fireworks:[{id:`accounts/fireworks/models/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`accounts/fireworks/models/kimi-k2p6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`accounts/fireworks/models/glm-5p2`,displayName:`GLM 5.2`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m2p7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0}],together:[{id:`MiniMaxAI/MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0}],openrouter:[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.5`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-opus-4.5`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-sol-pro`,displayName:`GPT-5.6 Sol Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra-pro`,displayName:`GPT-5.6 Terra Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna-pro`,displayName:`GPT-5.6 Luna Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`x-ai/grok-4.5`,displayName:`Grok 4.5`,contextWindowTokens:5e5,defaultContextWindowTokens:2e5,maxOutputTokens:3e4,supportsThinking:!0},{id:`x-ai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`x-ai/grok-4.20`,displayName:`Grok 4.20`,contextWindowTokens:2e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`deepseek/deepseek-r1-0528`,displayName:`DeepSeek R1`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3,supportsThinking:!0},{id:`deepseek/deepseek-chat-v3-0324`,displayName:`DeepSeek V3`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3},{id:`deepseek/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v3.2-speciale`,displayName:`DeepSeek V3.2 Speciale`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:163840,supportsThinking:!0},{id:`qwen/qwen3.5-plus-02-15`,displayName:`Qwen 3.5 Plus`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-397b-a17b`,displayName:`Qwen 3.5 397B`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-flash-02-23`,displayName:`Qwen 3.5 Flash`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`qwen/qwen3-coder-next`,displayName:`Qwen 3 Coder`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`moonshotai/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`moonshotai/kimi-k2.5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`minimax/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`minimax/minimax-m2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:131072,supportsThinking:!0},{id:`minimax/minimax-m2.5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2.1`,displayName:`MiniMax M2.1`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2`,displayName:`MiniMax M2`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2-her`,displayName:`MiniMax M2-her`,contextWindowTokens:65536,defaultContextWindowTokens:65536,maxOutputTokens:2048},{id:`minimax/minimax-m1`,displayName:`MiniMax M1`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:4e4,supportsThinking:!0},{id:`minimax/minimax-01`,displayName:`MiniMax-01`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:1e6},{id:`z-ai/glm-5.2`,displayName:`GLM-5.2`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`mistralai/mistral-medium-3`,displayName:`Mistral Medium 3`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/mistral-small-2603`,displayName:`Mistral Small 4`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/devstral-2512`,displayName:`Devstral 2`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`meta-llama/llama-4-maverick`,displayName:`Llama 4 Maverick`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`meta-llama/llama-4-scout`,displayName:`Llama 4 Scout`,contextWindowTokens:327680,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`amazon/nova-pro-v1`,displayName:`Amazon Nova Pro`,contextWindowTokens:3e5,defaultContextWindowTokens:2e5,maxOutputTokens:5e3},{id:`openrouter/owl-alpha`,displayName:`Owl Alpha`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:262144}],"vercel-ai-gateway":[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`xai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0}],minimax:[{id:`MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`MiniMax-M2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:16384,supportsThinking:!0}],atlascloud:[{id:`deepseek-ai/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:8192,supportsThinking:!0}],litellm:[],baseten:[{id:`thinkingmachines/inkling`,displayName:`Inkling`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],poolside:[{id:`poolside/laguna-s-2.1`,displayName:`Laguna S 2.1`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`poolside/laguna-xs-2.1`,displayName:`Laguna XS 2.1`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],"openai-compatible":[]},L={anthropic:`claude-opus-4-8`,openai:`gpt-5.5`,gemini:`gemini-2.5-flash`,ollama:`llama3.2`,fireworks:`accounts/fireworks/models/deepseek-v4-flash`,together:`MiniMaxAI/MiniMax-M3`,openrouter:`x-ai/grok-4.20`,"vercel-ai-gateway":`anthropic/claude-sonnet-4.6`,minimax:`MiniMax-M2.7`,atlascloud:`deepseek-ai/deepseek-v4-pro`,litellm:``,baseten:`thinkingmachines/inkling`,poolside:`poolside/laguna-s-2.1`,"openai-compatible":``},R={vellum:`Vellum`,chatgpt:`ChatGPT Subscription`,anthropic:`Anthropic`,openai:`OpenAI`,gemini:`Google Gemini`,ollama:`Ollama`,fireworks:`Fireworks`,together:`Together AI`,openrouter:`OpenRouter`,"vercel-ai-gateway":`Vercel AI Gateway`,"openai-compatible":`OpenAI-compatible`,minimax:`MiniMax`,atlascloud:`Atlas Cloud`,litellm:`LiteLLM`,baseten:`Baseten`,poolside:`Poolside`};I.anthropic;var z=[`anthropic`,`openai`,`gemini`,`fireworks`,`together`],oe=(()=>{let e=new Set,t=new Set,n=[];for(let r of z)for(let i of I[r])e.has(i.id)||t.has(i.displayName)||(e.add(i.id),t.add(i.displayName),n.push(i));return n})();function se(e){let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=z.find(e=>e===n),i=e.slice(t+1);return r&&i?{provider:r,model:i}:null}function ce(e){let t=se(e);return t?t.provider:z.find(t=>I[t].some(t=>t.id===e))}function B(e){return e===`vellum`?oe:I[e]??[]}function le(e){return L[e]}var V=`openai-compatible`,H=[`anthropic`,`openai`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`gemini`,`ollama`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`],U=`vellum`,ue=new Set(z),W=1e3,de=1e3,fe=[`default`,`firecrawl`],G={default:`Vellum`,firecrawl:`Firecrawl`},pe={firecrawl:`fc-...`},me={firecrawl:`vellum:ai:firecrawlKey`},he=new Set([`firecrawl`]),ge=[`vellum`,`inference-provider-native`,`perplexity`,`brave`,`tavily`,`firecrawl`],_e={vellum:`Vellum`,"inference-provider-native":`Provider Native`,perplexity:`Perplexity`,brave:`Brave`,tavily:`Tavily`,firecrawl:`Firecrawl`},K={perplexity:`pplx-...`,brave:`BSA...`,tavily:`tvly-...`,firecrawl:`fc-...`},ve={perplexity:`vellum:ai:perplexityKey`,brave:`vellum:ai:braveKey`,tavily:`vellum:ai:tavilyKey`,firecrawl:`vellum:ai:firecrawlKey`},q=new Set([`perplexity`,`brave`,`tavily`,`firecrawl`]),J=new Set([`managed`,`your-own`]);function ye(e,t){return J.has(e)?e:t}function be(e,t){let n=t.filter(t=>t in e).map(t=>({name:t,...e[t]})),r=new Set(t),i=Object.entries(e).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,...t}));return[...n,...i]}function xe(e){if(e&&typeof e==`object`&&`success`in e&&e.success===!1)throw Error(`Failed to provision API key: server returned success=false`)}function Se(e,t,n=W){return Math.min(Number.isFinite(e)?Math.max(Math.round(e),n):n,t)}function Y(e,t){return e.toLocaleString(`en-US`,{maximumFractionDigits:t,minimumFractionDigits:0})}function Ce(e){let t=Array.isArray(e)?e[0]??0:e,n=Math.round(t);return Math.abs(n)>=1e6?`${Y(n/1e6,2)}M`:Math.abs(n)>=1e3?`${Y(n/1e3,1)}K`:n.toLocaleString(`en-US`)}function X(e){return ve[e]??``}function we(e){return me[e]??``}var Te={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function Ee(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function Z(e){return e.startsWith(`anthropic/`)}function De(e,t){let n=t.toLowerCase();return B(e).find(e=>e.id.toLowerCase()===n)}function Oe(e,t){return De(e,t)?.adaptiveThinkingOnly===!0}function ke(e){return Z(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var Ae=[`minimal`,`low`,`medium`,`high`],je=[`low`,`medium`,`high`];function Me(e){return/^gemini-3.*pro/.test(e)}var Ne=new Set(Ae);function Pe(e){return typeof e==`string`&&Ne.has(e)}function Fe(e){return Me(e.toLowerCase())?je:Ae}function Ie(e,t){let n=De(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?ke(t):e===`vercel-ai-gateway`?Z(t):!1:n.supportsThinking}function Le(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?Ee(t):e===`openrouter`||e===`vercel-ai-gateway`?Z(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Q=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Re(e,t){return t||Q.has(e)}function ze(e,t){if(!e||!t)return Te;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&Z(r),a=Ie(n,r);return{maxTokens:!0,contextWindow:!0,effort:Le(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&Ee(r),temperature:i,topP:Re(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&Z(r))&&a&&!Oe(n,r),thinkingLevel:n===`gemini`&&a}}var Be=`0.10.8`;function Ve(){return w(Be)}var $=o(),He=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ue=[`standard`,`fast`],We=[`low`,`medium`,`high`],Ge=`default`,Ke=64e3;function qe({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,F.useState)(s?``:String(t)),[d,p]=(0,F.useState)(t);t!==d&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function h(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=Se(i,a);u(String(o)),n(o)}return(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,$.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,Ce(i)]}):null]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:W,max:a,step:de,disabled:o,"aria-label":e})}),(0,$.jsx)(_,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h(e.currentTarget.value)},min:W,max:a,step:de,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function Je({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:d,speed:m,onSpeedChange:h,verbosity:g,onVerbosityChange:_,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:ee,thinkingLevel:A,onThinkingLevelChange:te}){let j=Ve(),M=r?.maxOutputTokens??Ke,N=r?.contextWindowTokens??2e5,ne=Math.min(i??Ke,M),re=Math.min(a??2e5,N);return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[!t&&j&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,$.jsx)(qe,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:ne,max:M,disabled:t}),e.contextWindow&&(0,$.jsx)(qe,{label:`Context Window`,value:c,onChange:l,defaultValue:re,max:N,disabled:t||!r}),e.effort&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,$.jsx)(p,{items:He.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>d(e),ariaLabel:`Effort`})]}),e.speed&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,$.jsx)(p,{items:Ue.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,$.jsx)(p,{items:We.map(e=>({value:e,label:e,disabled:t})),value:g,onChange:e=>_(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(v,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,$.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(v,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,$.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,$.jsx)(`div`,{className:`flex-1`,children:(0,$.jsx)(f,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsx)(v,{checked:D,onChange:e=>{O(e),e||ee(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,$.jsx)(`div`,{className:`pl-4`,children:(0,$.jsx)(v,{checked:k,onChange:e=>ee(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,$.jsx)(p,{items:[`default`,...Fe(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:A,onChange:te,ariaLabel:`Thinking level`})]})]})}var Ye=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function Xe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Ze(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Qe(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function $e(e){return e.label?e.label:e.auth.type===`oauth_subscription`?R.chatgpt:R[e.provider]??e.provider}var et=new Set([`ollama`]);function tt(e,t){return!et.has(e)||t}function nt(e){return H.filter(t=>tt(t,e))}function rt(e){return Ye.filter(t=>tt(t,e))}function it(e){return Object.keys(I).filter(t=>tt(t,e))}function at(){return nt(j())}function ot(){return rt(j())}function st(){return it(j())}function ct(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>tt(e,t)),r=[];return n.includes(`vellum`)&&r.push(U),r.push(...Ye.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Ye.includes(e))),r}var lt=`${V}::`;function ut(e){return`${lt}${e}`}function dt(e){return e.startsWith(lt)?e.slice(lt.length):null}function ft(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:ut(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var pt=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function mt(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function ht(e,t,n){return!e||B(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var gt={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},_t=`__custom-model-id__`;function vt({text:e}){return(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function yt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1}){let p=e.length>0&&t.length===0,[m,h]=(0,F.useState)(!1),g=ht(e,n,u),v=e!==``&&!g;(0,F.useEffect)(()=>{v||h(!1)},[e,v]);function y(e){if(e===_t){h(!0),a(``);return}a(e)}let b=st(),S=j(),C=(0,F.useMemo)(()=>{let t=ct(s??[],S);return e&&!t.includes(e)?[...t,e]:t},[s,e,S]),w=s===void 0?b:C,T=(0,F.useMemo)(()=>{if(!e)return[];let t=B(e);if(t.length>0)return ht(e,n,u)?t.filter(e=>pt.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?mt(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),E=(0,F.useMemo)(()=>{if(!t||T.some(e=>e.id===t))return T;let n=B(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...T,{id:t,displayName:i}]},[t,T,e,u]),D=e?T.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,O=D?gt[D]:null;return(0,F.useEffect)(()=>{if(!e||m)return;let n=B(e);n.length>0&&!n.some(e=>e.id===t)||t&&T.length>0&&!T.some(e=>e.id===t)&&a(``)},[t,T,a,e,m]),(0,$.jsxs)($.Fragment,{children:[!f&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{value:e===`openai-compatible`&&n?ut(n):e,onChange:e=>{let t=dt(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:[...ft(w,s??[],e=>R[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,$.jsx)(vt,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:ut(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:R[`openai-compatible`]??`openai-compatible`}]:[]]}),w.length===0&&!l?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`No provider connections. Open Providers to add one.`}):null]}),d&&!l&&(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,$.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>h(!1),children:`Choose from list`})]}):(0,$.jsx)(x,{value:t,onChange:y,disabled:l||!e,options:[{value:``,label:O?.placeholder??`Select a model`},...E.map(e=>({value:e.id,label:e.displayName})),...v?[{value:_t,label:`Enter a custom model ID…`}]:[]]}),m?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):p&&!l?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:O?.hint??`Select a model.`}):null]})]})}function bt(e,t,n){return[`credentialPresence`,e,t,n]}function xt({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=M(),s=a({queryKey:bt(e??``,n,r),queryFn:async()=>{let{data:t}=await ee({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function St({assistantId:e,onConnected:t}){let[n,i]=(0,F.useState)(`idle`),[a,o]=(0,F.useState)(``),[s,l]=(0,F.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await k({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await D({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await A({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,$.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,$.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,$.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var Ct=new Set(Object.entries(R).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),wt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function Tt(e,t,n){let r=e.trim().toLowerCase();return r?Ct.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function Et(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function Dt(e){return Et(e)}function Ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function kt(e,t){return{name:R[e]??e,key:Ot(`${Dt(e)}-personal`,t)}}function At(e,t){return{name:e,key:Ot(Dt(e),t)}}function jt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:u,onError:f}){let[p,h]=(0,F.useState)(!1),[g,v]=(0,F.useState)(!1),[y,b]=(0,F.useState)(``);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,$.jsx)(m,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,$.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,$.jsx)(_,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),u&&(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":p,onClick:()=>h(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${p?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`}),(0,$.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),p&&(0,$.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,$.jsx)(x,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),g&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(_,{value:y,onChange:e=>b(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!y.trim(),onClick:()=>{let e=y.trim();e&&(i(`credential/${s}/${e}`),v(!1),b(``))},children:`Use`})]})]}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{g?(v(!1),b(``)):v(!0)},children:g?`Cancel`:`+ New Credential`})})]})]})]})}var Mt=`•`.repeat(8);function Nt(e,t){return t?Mt:e}function Pt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function Ft({assistantId:e,enabled:n=!0}){let r=M(),i=a({...P({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>Pt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function It({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,onCreated:o,onCancel:s,variant:l=`modal`}){let u=ot(),f=a&&u.includes(a)?a:u[0]??`anthropic`,p=kt(f,t),[m,h]=(0,F.useState)(f===`openai-compatible`?``:p.name),[g,v]=(0,F.useState)(p.key),[S,C]=(0,F.useState)(f),w=S===`chatgpt`,T=w?`openai`:S,E=w?`oauth_subscription`:T===`ollama`?`none`:`api_key`,[D,k]=(0,F.useState)(()=>f===`ollama`?``:f===`openai-compatible`?`credential/${p.key}/api_key`:`credential/${f}/api_key`),[ee,A]=(0,F.useState)(``),[j,M]=(0,F.useState)(``),[N,ne]=(0,F.useState)(!1),[re,P]=(0,F.useState)(null),[ae,I]=(0,F.useState)(!1),L=T===`openai-compatible`,z=(0,F.useMemo)(()=>{let e=!w&&!u.includes(T)?[...u,T]:[...u],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[w,T,u]),oe=(0,F.useRef)(!1);function se(e){oe.current=!0,h(e)}let[ce,B]=(0,F.useState)(``),[le,V]=(0,F.useState)(!1),H=i(),U=(0,F.useMemo)(()=>Xe(D),[D]),ue=E===`api_key`&&U!==null,{hasStoredCredential:W,isLoading:de}=xt({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:ue}),{credentials:fe}=Ft({assistantId:e,enabled:!0}),G=L?Tt(m,n):null,pe=g.trim().length>0&&(!L||m.trim().length>0)&&G===null;async function me(){if(pe){ne(!0),P(null);try{let t;if(E===`api_key`){let n=D.trim()||`credential/${L?g:T}/api_key`,r=ce.trim();if(r){V(!0);try{let t=Xe(n);await te({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:T,value:r},throwOnError:!0});let i=bt(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:ie({path:{assistant_id:e}})})}catch{P(`Failed to save API key. Please try again.`);return}finally{V(!1)}t={type:`api_key`,credential:n}}else if(W)t={type:`api_key`,credential:n};else if(L)t={type:`none`};else{P(`Enter an API key or select an existing credential.`);return}}else if(E===`oauth_subscription`){P(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=m.trim()||null,r={name:g.trim(),provider:T,auth:t,...n!==null&&{label:n},...L&&{base_url:ee.trim()||null,models:j.trim()?j.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:s}=await O({path:{assistant_id:e},body:r});if(!s?.ok){P(Qe(s?.status,a)??Ze(s?.status));return}if(!i){P(`Server returned an empty response. Please try again.`);return}b.success(`Provider connected`),o(i)}catch{P(`Failed to save provider. Please try again.`)}finally{ne(!1)}}}let he=fe.filter(e=>e.service===T),ge=he.length>0,_e=Nt(`Enter your API key`,W),K=ae,ve=(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":K,onClick:()=>I(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${K?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`})]}),K&&(0,$.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,$.jsx)(_,{value:m,onChange:e=>se(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),q=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{"aria-label":`Provider`,value:S,onChange:e=>{if(C(e),P(null),e===`chatgpt`)return;let{name:n,key:r}=kt(e,t);oe.current||h(e===`openai-compatible`?``:n),v(r),k(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...z.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:R[e]})),...z.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),L?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),L&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,$.jsx)(_,{value:m,onChange:e=>se(e.target.value),placeholder:`xAI`,fullWidth:!0}),G?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:wt[G]}):null]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,$.jsx)(_,{value:ee,onChange:e=>A(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,$.jsx)(_,{value:j,onChange:e=>M(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),E===`api_key`&&(0,$.jsx)(jt,{apiKeyValue:ce,onApiKeyChange:B,credential:D,onCredentialChange:k,isLoadingCredential:de,apiKeyPlaceholder:_e,provider:T,providerCredentials:he,showAdvancedSection:ge,onError:P}),L&&E===`api_key`?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,E===`oauth_subscription`&&(0,$.jsx)(St,{assistantId:e,onConnected:o}),!w&&!L&&ve,re&&(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:re})]}),J=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(r,{variant:`ghost`,size:`compact`,onClick:s,children:`Cancel`}),!w&&(0,$.jsx)(r,{variant:`primary`,size:`compact`,disabled:!pe||N||le,onClick:()=>void me(),children:N?`Saving…`:L&&m.trim()?`Add ${m.trim()}`:`Add`})]});return l===`inline`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[q,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:J})]}):(0,$.jsxs)(y.Content,{size:`md`,children:[(0,$.jsxs)(y.Header,{children:[(0,$.jsx)(y.Title,{children:`Add Provider`}),(0,$.jsx)(y.Description,{children:`Choose a provider and paste its API key.`})]}),(0,$.jsx)(y.Body,{children:q}),(0,$.jsx)(y.Footer,{children:J})]})}var Lt=`__create_new_provider__`;function Rt({editor:e,assistantId:t,connections:n,variant:r}){let i=j(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,F.useState)(!1),u=s||!!e.keyError&&e.getDirty(),f=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,$.jsx)(_,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,$.jsx)(g,{label:(0,$.jsxs)($.Fragment,{children:[`Description`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),m=(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,$.jsx)(_,{type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,fullWidth:!0}),e.keyError&&!e.isReadOnly?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.keyError}):null]}),h=!o&&(!e.isReadOnly||e.status!==`active`)?(0,$.jsx)(v,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,y=(0,$.jsx)(Je,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),b=e.saveError?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,S=(0,F.useMemo)(()=>{let t=ft(ct(e.effectiveConnections,i),e.effectiveConnections,e=>R[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,$.jsx)(vt,{text:n}):void 0}));return t.push({value:Lt,label:`+ Create new provider`}),t},[i,e.effectiveConnections]),C=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(x,{value:e.creatingProvider?Lt:e.provider===`openai-compatible`&&e.providerConnection?ut(e.providerConnection):e.provider,onChange:t=>{if(t===Lt){e.setCreatingProvider(!0),e.setNewProviderNote(!1);return}if(!t)return;e.setCreatingProvider(!1);let n=dt(t);if(n){e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(V),e.setProviderConnection(n);return}e.handleProviderChange(t)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:S}),e.newProviderNote?(0,$.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,$.jsx)(It,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:e.provider||void 0,onCreated:e.handleProviderCreated,onCancel:()=>e.setCreatingProvider(!1)}):(0,$.jsx)(yt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f,C,p,h,o?t&&(0,$.jsxs)(`div`,{className:`space-y-4`,children:[m,y]}):t&&(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":u,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,$.jsx)(d,{className:`h-4 w-4 transition-transform ${u?`rotate-90`:``}`}),(0,$.jsx)(`span`,{children:`Advanced`})]}),u?(0,$.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[m,y]}):null]}),b]})}return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f,p,m,h,(0,$.jsx)(yt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound}),y,b]})}function zt(e,t,n){if(e){let n=B(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function Bt(e,t,n){let r=(0,F.useRef)(!1),i=(0,F.useRef)(!1);return{handleLabelChange:(0,F.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(Et(a))},[e,t,n]),handleKeyChange:(0,F.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,F.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,F.useCallback)(()=>i.current,[])}}var Vt=`0.10.12`;async function Ht(e,t){await E(t);let n=C.getState().assistantId;return e!=null&&n!==e?!1:T(Vt)}function Ut(e,t){return e===t?!0:e===`vellum`&&ue.has(t)}function Wt({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,F.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,F.useState)(n?.label??``),[g,_]=(0,F.useState)(n?.description??``),[v,y]=(0,F.useState)(e===`create`?``:t??``),[b,x]=(0,F.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[S,C]=(0,F.useState)(n?.model??``),[w,T]=(0,F.useState)(n?.provider_connection??``),[E,D]=(0,F.useState)(n?.status??`active`),[O,k]=(0,F.useState)([]),[ee,A]=(0,F.useState)(!1),[te,j]=(0,F.useState)(null),[M,N]=(0,F.useState)(n?.maxTokens??null),[P,ie]=(0,F.useState)(n?.contextWindow?.maxInputTokens??null),[ae,I]=(0,F.useState)(n?.effort??`inherit`),[L,R]=(0,F.useState)(n?.speed??`standard`),[z,oe]=(0,F.useState)(n?.verbosity??`medium`),[le,V]=(0,F.useState)(typeof n?.temperature==`number`),[H,ue]=(0,F.useState)(typeof n?.temperature==`number`?n.temperature:.7),[W,de]=(0,F.useState)(typeof n?.topP==`number`),[fe,G]=(0,F.useState)(typeof n?.topP==`number`?n.topP:.95),pe=f&&E!==p,[me,he]=(0,F.useState)(n?.thinking?.enabled??!1),[ge,_e]=(0,F.useState)(n?.thinking?.streamThinking??!1),[K,ve]=(0,F.useState)(Pe(n?.thinking?.level)?n.thinking.level:Ge),q=(0,F.useMemo)(()=>b===`vellum`?se(S):null,[b,S]),J=q?.model??S,ye=(0,F.useMemo)(()=>b?B(b).find(e=>e.id===J)??null:null,[b,J]),{data:be}=a({...re({path:{assistant_id:s}}),staleTime:3e4}),xe=be?.llm?.default?.maxTokens,Se=be?.llm?.default?.contextWindow?.maxInputTokens,Y=(0,F.useMemo)(()=>ze(b===`vellum`?q?.provider??ce(S)??n?.provider??``:b,J),[b,S,J,q,n?.provider]),Ce=(0,F.useMemo)(()=>{let e=o??[];if(O.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...O.filter(e=>!t.has(e.name))]},[o,O]),X=(0,F.useMemo)(()=>b?Ce.filter(e=>Ut(e.provider,b)):[],[b,Ce]),we=w!==``&&!X.some(e=>e.name===w),{handleLabelChange:Te,handleKeyChange:Ee,resetDirty:Z,getDirty:De}=Bt(l,h,y),Oe=i(),[ke,Ae]=(0,F.useState)(!1),[je,Me]=(0,F.useState)(!1);(0,F.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&x(U)},[o,b,n]),(0,F.useEffect)(()=>{Z(),Ae(!1),Me(!1),k([])},[t,e,Z]);function Ne(e){if(e===b)return;x(e),C(``);let t=Ce.filter(t=>Ut(t.provider,e));T(t.length===1?t[0].name:``),N(null),ie(null),I(`inherit`),R(`standard`),oe(`medium`),V(!1),ue(.7),de(!1),G(.95),he(!1),_e(!1),ve(Ge)}function Fe(e){if(T(e),b&&B(b).length===0&&S)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(S)||C(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(S)||C(``)}}function Ie(e){if(e!==S&&(C(e),N(null),ie(null),l===`create`&&e&&!De())){let{name:t,key:n}=At(zt(b||void 0,e,X),r);h(t),y(n)}}function Le(e){let t=e.provider;t!==`vellum`&&(k(t=>t.some(t=>t.name===e.name)?t:[...t,e]),x(t),T(e.name),C(``),Ae(!1),Me(!0),Oe.invalidateQueries({queryKey:ne({path:{assistant_id:s}})}))}let Q=v.trim(),Re=Q.length===0,Be=/\s/.test(v),Ve=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),$=b.length===0,He=b.length>0&&S.length===0,Ue=Re||Be||Ve||$||He,We=Re?`Key is required`:Be?`Key cannot contain whitespace`:Ve?`A profile with this key already exists`:null;async function Ke(){if(!(Ue&&!f)){if(f){if(!pe)return;A(!0),j(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch{j(`Failed to save profile. Please try again.`)}finally{A(!1)}return}A(!0),j(null);try{let e={},t=w===``&&X.length===1?X[0].name:w,r=we?``:t,i=b===`vellum`&&await Ht(s),a=b===`vellum`?i?U:q?.provider??ce(S)??n?.provider??``:b,o=J,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),Y.maxTokens&&M!==null&&(e.maxTokens=M),Y.contextWindow&&P!==null&&(e.contextWindow={maxInputTokens:P}),Y.effort&&ae!==`inherit`&&(e.effort=ae),Y.speed&&L!==`standard`&&(e.speed=L),Y.verbosity&&(e.verbosity=z),Y.temperature&&(le?e.temperature=H:l===`edit`&&(e.temperature=null)),Y.topP&&(W?e.topP=fe:l===`edit`&&(e.topP=null)),Y.thinking&&(e.thinking={enabled:me,...me?{streamThinking:ge}:{}}),Y.thinkingLevel&&K!==`default`&&(e.thinking={enabled:!0,level:K}),(l===`edit`||E!==`active`)&&(e.status=E),await c(Q,e)}catch{j(`Failed to save profile. Please try again.`)}finally{A(!1)}}}function qe(){u(`create`),y(``),Z()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:pe,label:m,description:g,key:v,provider:b,model:S,providerConnection:w,status:E,saving:ee,saveError:te,keyError:We,isInvalid:Ue,maxTokens:M,contextWindowMaxInputTokens:P,effort:ae,speed:L,verbosity:z,temperatureEnabled:le,temperature:H,topPEnabled:W,topP:fe,thinkingEnabled:me,thinkingStreamThinking:ge,thinkingLevel:K,visibility:Y,selectedModel:ye,defaultMaxOutputTokens:xe,defaultContextWindowMaxInputTokens:Se,effectiveConnections:Ce,availableConnectionsForProvider:X,connectionNotFound:we,creatingProvider:ke,newProviderNote:je,setDescription:_,setStatus:D,setMaxTokens:N,setContextWindowMaxInputTokens:ie,setEffort:I,setSpeed:R,setVerbosity:oe,setTemperatureEnabled:V,setTemperature:ue,setTopPEnabled:de,setTopP:G,setThinkingEnabled:he,setThinkingStreamThinking:_e,setThinkingLevel:ve,setCreatingProvider:Ae,setNewProviderNote:Me,handleLabelChange:Te,handleKeyChange:Ee,getDirty:De,handleProviderChange:Ne,handleConnectionChange:Fe,handleModelChange:Ie,handleProviderCreated:Le,setProviderConnection:T,setModel:C,handleSave:Ke,switchToSaveAsNew:qe}}var Gt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Kt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function qt(e){let t=Kt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Jt=`pcm-downsample`,Yt=1600,Xt=16e3;function Zt(){return S()?window.vellum?.helper?.dictation:void 0}function Qt(){let e=Zt();return!!e?.transcribe&&!!e.onTranscribed}var $t=null,en=null;async function tn(){return $t||($t=qt(),en=$t.audioWorklet.addModule(Gt)),$t.state!==`running`&&await $t.resume(),await en,$t}async function nn(e,t){try{let n=await tn(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Jt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Yt))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var rn=8e3;async function an(e){let t=Zt();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await on(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),rn)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function on(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Xt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var sn=4e3;async function cn(e,t){let n=Zt();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await nn(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),sn)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var ln=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],un=`macos-native`,dn=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:un,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],fn=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],pn=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],mn={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},hn=[`vellum`,`gemini`,`openai`],gn={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function _n(e){return e===`vellum`?[...pn]:pn.filter(t=>vn(t)===e)}function vn(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var yn=`vellum:ai:imageGenProvider`,bn=`vellum:ai:imageGenModel`,xn=`vellum:ai:webSearchProvider`,Sn=`vellum:ai:webFetchProvider`,Cn=`vellum:ai:emailMode`,wn=`vellum:ai:emailByoProvider`,Tn=`vellum:voice:ttsProvider`,En=`vellum:voice:ttsApiKey:`,Dn=`vellum:voice:ttsVoiceId:`,On=`vellum:voice:sttProvider`,kn=`vellum:voice:sttApiKey:`;function An({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,$.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,$.jsx)(u,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}function jn(e){return e.nativeLabel?`${e.label} (${e.nativeLabel})`:e.label}var Mn=`multi`,Nn=[{code:``,label:`English (default)`,description:`Speech recognition defaults to English.`},{code:Mn,label:`Multilingual`,description:`Follows you between languages mid-sentence: English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, and Dutch.`},{code:`ar`,label:`Arabic`,nativeLabel:`العربية`,extended:!0},{code:`be`,label:`Belarusian`,nativeLabel:`Беларуская`,extended:!0},{code:`bn`,label:`Bengali`,nativeLabel:`বাংলা`,extended:!0},{code:`bs`,label:`Bosnian`,nativeLabel:`Bosanski`,extended:!0},{code:`bg`,label:`Bulgarian`,nativeLabel:`Български`,extended:!0},{code:`ca`,label:`Catalan`,nativeLabel:`Català`,extended:!0},{code:`zh`,label:`Chinese`,nativeLabel:`中文`,extended:!0},{code:`hr`,label:`Croatian`,nativeLabel:`Hrvatski`,extended:!0},{code:`cs`,label:`Czech`,nativeLabel:`Čeština`,extended:!0},{code:`da`,label:`Danish`,nativeLabel:`Dansk`,extended:!0},{code:`nl`,label:`Dutch`,nativeLabel:`Nederlands`},{code:`et`,label:`Estonian`,nativeLabel:`Eesti`,extended:!0},{code:`fi`,label:`Finnish`,nativeLabel:`Suomi`,extended:!0},{code:`fr`,label:`French`,nativeLabel:`Français`},{code:`de`,label:`German`,nativeLabel:`Deutsch`},{code:`el`,label:`Greek`,nativeLabel:`Ελληνικά`,extended:!0},{code:`gu`,label:`Gujarati`,nativeLabel:`ગુજરાતી`,extended:!0},{code:`he`,label:`Hebrew`,nativeLabel:`עברית`,extended:!0},{code:`hi`,label:`Hindi`,nativeLabel:`हिन्दी`},{code:`hu`,label:`Hungarian`,nativeLabel:`Magyar`,extended:!0},{code:`id`,label:`Indonesian`,nativeLabel:`Bahasa Indonesia`,extended:!0},{code:`it`,label:`Italian`,nativeLabel:`Italiano`},{code:`ja`,label:`Japanese`,nativeLabel:`日本語`},{code:`kn`,label:`Kannada`,nativeLabel:`ಕನ್ನಡ`,extended:!0},{code:`ko`,label:`Korean`,nativeLabel:`한국어`,extended:!0},{code:`lv`,label:`Latvian`,nativeLabel:`Latviešu`,extended:!0},{code:`lt`,label:`Lithuanian`,nativeLabel:`Lietuvių`,extended:!0},{code:`mk`,label:`Macedonian`,nativeLabel:`Македонски`,extended:!0},{code:`ms`,label:`Malay`,nativeLabel:`Bahasa Melayu`,extended:!0},{code:`mr`,label:`Marathi`,nativeLabel:`मराठी`,extended:!0},{code:`no`,label:`Norwegian`,nativeLabel:`Norsk`,extended:!0},{code:`fa`,label:`Persian`,nativeLabel:`فارسی`,extended:!0},{code:`pl`,label:`Polish`,nativeLabel:`Polski`,extended:!0},{code:`pt`,label:`Portuguese`,nativeLabel:`Português`},{code:`ro`,label:`Romanian`,nativeLabel:`Română`,extended:!0},{code:`ru`,label:`Russian`,nativeLabel:`Русский`},{code:`sr`,label:`Serbian`,nativeLabel:`Српски`,extended:!0},{code:`sk`,label:`Slovak`,nativeLabel:`Slovenčina`,extended:!0},{code:`sl`,label:`Slovenian`,nativeLabel:`Slovenščina`,extended:!0},{code:`es`,label:`Spanish`,nativeLabel:`Español`},{code:`sv`,label:`Swedish`,nativeLabel:`Svenska`,extended:!0},{code:`tl`,label:`Tagalog`,extended:!0},{code:`ta`,label:`Tamil`,nativeLabel:`தமிழ்`,extended:!0},{code:`te`,label:`Telugu`,nativeLabel:`తెలుగు`,extended:!0},{code:`th`,label:`Thai`,nativeLabel:`ไทย`,extended:!0},{code:`tr`,label:`Turkish`,nativeLabel:`Türkçe`,extended:!0},{code:`uk`,label:`Ukrainian`,nativeLabel:`Українська`,extended:!0},{code:`vi`,label:`Vietnamese`,nativeLabel:`Tiếng Việt`,extended:!0}],Pn=new Set([`deepgram`,`vellum`]),Fn=new Set([`deepgram`,`vellum`]),In=new Set([`xai`]),Ln={code:``,label:`Auto-detect (default)`,description:`xAI identifies the spoken language natively. Picking a specific language pins it; returning to auto-detect requires clearing services.stt.language outside this picker.`},Rn={code:`en`,label:`English`};function zn(e,t){let n=Fn.has(t)?Nn:Nn.filter(e=>!e.extended),r=Pn.has(t)?n:n.filter(e=>e.code!==Mn),i=In.has(t)?r.flatMap(e=>e.code===``?[Ln,Rn]:[e]):r;return i.some(t=>t.code===e)?i:[...i,{code:e,label:`${e} (custom)`}]}function Bn(e,t,n){let r=zn(e,t),i=[],a=e=>{!i.includes(e)&&r.some(t=>t.code===e)&&i.push(e)};return a(e),a(``),a(Mn),n!=null&&a(n),{featured:i.map(e=>r.find(t=>t.code===e)),rest:r.filter(e=>!i.includes(e.code)).sort((e,t)=>e.label.localeCompare(t.label))}}function Vn(e,t){let n=t.trim().toLowerCase();return n.length===0||e.label.toLowerCase().includes(n)||e.nativeLabel&&e.nativeLabel.toLowerCase().includes(n)?!0:e.code.toLowerCase().startsWith(n)}function Hn(e,t){let n=zn(e,t).find(t=>t.code===e);return n?jn(n):e}function Un(e){if(!e)return null;let t=e.toLowerCase().split(`-`)[0];return t===`en`?null:Nn.find(e=>e.code===t)??null}function Wn(e,t){let n=Un(e);return n?n.extended?Fn.has(t)?n.code:null:Pn.has(t)?Mn:n.code:null}function Gn(e,t){return`${e}-option-${t.code===``?`default`:t.code}`}function Kn({currentCode:e,configuredProviderId:t,suggestedCode:n,selectLanguage:r,selecting:i,onDone:a}){let o=(0,F.useId)(),c=`${o}-listbox`,u=(0,F.useRef)(null),d=(0,F.useRef)(null),[f,p]=(0,F.useState)(``),[m,g]=(0,F.useState)(-1),v=(0,F.useMemo)(()=>Bn(e,t,n),[e,t,n]),y=f.trim().length>0,b=(0,F.useMemo)(()=>{let e=[...v.featured,...v.rest];return y?e.filter(e=>Vn(e,f)):e},[v,y,f]);(0,F.useEffect)(()=>{u.current?.focus()},[]),(0,F.useEffect)(()=>{d.current?.querySelector(`[role="option"][aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[]),(0,F.useEffect)(()=>{if(m<0)return;let e=b[m];e&&document.getElementById(Gn(o,e))?.scrollIntoView({block:`nearest`})},[m,b,o]);let x=e=>{r(e),a()},S=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),b.length===0)return;g(t=>e.key===`ArrowDown`?Math.min(t+1,b.length-1):Math.max(t-1,0));return}if(e.key===`Enter`){let t=b[m]??(y?b[0]:void 0);t&&(e.preventDefault(),x(t.code))}},C=m>=0?b[m]:null,w=t=>{let r=t.code===e,i=t===C,a=n!=null&&t.code===n&&t.code!==e;return(0,$.jsxs)(`button`,{id:Gn(o,t),type:`button`,role:`option`,"aria-selected":r,tabIndex:-1,"data-active":i||void 0,onClick:()=>x(t.code),className:s(`flex w-full cursor-pointer items-center gap-2 rounded-md px-3 py-2.5 text-left transition-colors`,r?`bg-[var(--surface-active)]`:i?`bg-[var(--surface-hover)]`:`hover:bg-[var(--surface-hover)]`),children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:[jn(t),t.description&&(0,$.jsx)(`span`,{className:`block truncate text-label-small-default text-[var(--content-tertiary)]`,children:t.description})]}),a&&(0,$.jsx)(`span`,{className:`shrink-0 text-label-small-default text-[var(--content-tertiary)]`,children:`Suggested`}),r&&(0,$.jsx)(l,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`})]},t.code)},T=(e,t)=>(0,$.jsx)(`div`,{id:e,role:`presentation`,className:`px-3 pt-2 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:t});return(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,$.jsx)(_,{ref:u,role:`combobox`,"aria-expanded":!0,"aria-controls":c,"aria-activedescendant":C?Gn(o,C):void 0,"aria-autocomplete":`list`,"aria-label":`Search languages`,placeholder:`Search languages`,leftIcon:(0,$.jsx)(h,{className:`size-4`}),value:f,onChange:e=>{p(e.target.value),g(e.target.value.trim().length>0?0:-1)},onKeyDown:S,fullWidth:!0}),(0,$.jsx)(`div`,{ref:d,id:c,role:`listbox`,"aria-label":`Languages`,"aria-busy":i,className:s(`flex max-h-[50vh] flex-col overflow-y-auto`,i&&`opacity-70`),children:y?b.length>0?b.map(w):(0,$.jsx)(`p`,{className:`px-3 py-2.5 text-body-medium-default text-[var(--content-tertiary)]`,children:`No languages match.`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{role:`group`,"aria-labelledby":`${o}-featured`,children:[T(`${o}-featured`,`Featured`),v.featured.map(w)]}),(0,$.jsxs)(`div`,{role:`group`,"aria-labelledby":`${o}-all`,children:[T(`${o}-all`,`All languages`),v.rest.map(w)]})]})})]})}var qn=`en`,Jn=e=>({services:{stt:{language:e===``?qn:e}}});function Yn(e){let t=M()&&!!e,{data:n}=a({...N({path:{assistant_id:e??``}}),enabled:t,staleTime:1/0,retry:!1}),{data:r}=a({...re({path:{assistant_id:e??``}}),enabled:t,staleTime:3e4}),i=r?.services?.stt,o=i?.mode===`managed`?`vellum`:i?.provider??`deepgram`,s=n?.providers?.find(e=>e.id===o)?.languageSelection===`manual`,c=t&&!!r&&s,l=i?.language,u=!In.has(o),{currentValue:d,selecting:f,select:p}=ae({assistantId:e,configuredValue:!l||u&&l===qn?``:l,buildPatchBody:Jn,failureMessage:`Couldn't change the language just now. Try again.`});return{available:c,currentCode:d,configuredProviderId:o,selectLanguage:p,selecting:f}}function Xn(e,t){let n=e.filter(e=>e.status!==`disabled`);return t&&n.some(e=>e.name===t)?t:n[0]?.name}function Zn(e,t){let n=new Set;for(let e of t)e&&n.add(e);return e.filter(e=>e.status!==`disabled`||n.has(e.name))}function Qn(e){let t=e.label??e.name;return e.status===`disabled`?`${t} (Disabled)`:t}var $n={profiles:{},profileOrder:[]};function er(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,F.useState)($n),[s,c]=(0,F.useState)(t);return t!==s&&(c(t),o($n)),(0,F.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:$n}export{Qe as $,vn as A,It as B,mn as C,dn as D,un as E,Kt as F,Tt as G,Nt as H,Gt as I,xt as J,St as K,Wt as L,cn as M,an as N,ln as O,qt as P,$e as Q,zt as R,fn as S,gn as T,jt as U,Ft as V,wt as W,Ze as X,at as Y,Xe as Z,En as _,B as _t,Yn as a,q as at,Sn as b,Hn as c,K as ct,wn as d,fe as dt,xe as et,Cn as f,pe as ft,On as g,le as gt,kn as h,R as ht,Zn as i,ye as it,Qt as j,_n as k,Wn as l,he as lt,yn as m,U as mt,Qn as n,we as nt,Kn as o,_e as ot,bn as p,H as pt,bt as q,Xn as r,X as rt,Un as s,ge as st,er as t,be as tt,An as u,G as ut,Tn as v,hn as w,xn as x,Dn as y,Rt as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,m as r,p as i}from"./message-content-B6_GZQl9.js";import{i as a,o,r as s}from"./subagent-store-DibRR9Ij.js";import{C as c,S as l,_ as u,w as d,y as f}from"./site-favicon-CDH0mg6Q.js";function p(e,t){if(t===e)return{kind:`identity`};if(e==null)return{kind:`first`};let n=e.length,r=t.length;return r>n&&(n===0||t[0]===e[0]&&t[n-1]===e[n-1])?{kind:`append`,from:n}:r===n&&r>=1&&t[r-1]!==e[r-1]&&t[r-1].id===e[r-1].id&&e[r-1].type===`text`&&t[r-1].type===`text`&&t[r-1].content.length>=e[r-1].content.length&&t[r-1].content.startsWith(e[r-1].content)&&(r===1||t[r-2]===e[r-2])?{kind:`mutate-last`}:{kind:`fallback`}}var m=e(t(),1);function h(e,t){return JSON.stringify(e)===JSON.stringify(t)}function g(e=k){let t=null,n=[],r=[];function i(e){let i=A(e);return t=e,n=i.steps,r=i.toolMeta,{steps:n,toolMeta:r}}function a(a){let o=p(t,a);switch(o.kind){case`identity`:return{steps:n,toolMeta:r};case`first`:return i(a);case`append`:{let i=a.length,s=n.slice(),c=r.slice();for(let t=o.from;t<i;t++)e(s,c,a[t]);return t=a,n=s,r=c,{steps:n,toolMeta:r}}case`mutate-last`:{let i=a.length,o=n.slice(),s=r.slice(),c=o[o.length-1],l;c&&c.kind===`thinking`&&c.detailKey===a[i-1].id&&(l=c,o.pop(),s.pop()),e(o,s,a[i-1]),t=a;let u=o[o.length-1];return l&&u&&h(l,u)?{steps:n,toolMeta:r}:(n=o,r=s,{steps:n,toolMeta:r})}case`fallback`:return i(a)}}return{project:a}}function _(e){let t=(0,m.useRef)(null),n=(0,m.useRef)(null);t.current??=g();let r=t.current.project(e),i=n.current;return i!=null&&i.steps===r.steps&&i.toolMeta===r.toolMeta?i:(n.current=r,r)}var v=160,y=[];function b(e){return r(e.replace(/\s+/g,` `).trim(),v)}function x(e){let t=((e.input&&typeof e.input.url==`string`?e.input.url:``)||e.content||``).trim(),n=t?l(t):``;return n?`Reading ${n}`:`Reading…`}function S(e,t){let n=typeof e==`number`&&Number.isFinite(e)?t-e:0;return n>0?f(n):``}function C(e,t){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:e,errorMessage:b(t.result??t.content)||`Web search failed`,detailKey:t.toolUseId}}function w(e,t){let n=e.toLowerCase();if(!t)return{};switch(n){case`bash`:case`host_bash`:return{command:t};case`str_replace_editor`:case`text_editor`:return{path:t};case`computer`:return{action:t};case`skill`:case`skill_execute`:case`skill_invoke`:case`skill_load`:return{skill:t};case`subagent_spawn`:return{label:t};default:return{}}}function T(e){let t=e.toolName??``,r=e.content??``,i=n(t,e.input??w(t,r));return{kind:`tool`,durationLabel:``,toolCallId:e.toolUseId??``,iconName:i.iconName,title:i.title,info:i.info||r,activity:i.activity,status:`running`}}function E(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.running){if(t.toolUseId){if(r.toolCallId===t.toolUseId)return n;continue}if(!t.toolName||r.toolName===t.toolName)return n}}return-1}function D(e,t,n){return E(e.map((e,n)=>{let r=t[n];return e.kind===`tool`?{toolCallId:e.toolCallId,toolName:r?.toolName??``,running:e.status===`running`}:e.kind===`web_search`?{toolCallId:r?.toolUseId??``,toolName:r?.toolName??``,running:e.title===`Searching the web`}:{toolCallId:``,toolName:r?.toolName??``,running:!1}}),n)}function O(e){switch(e){case`running`:case`pending`:case`awaiting_input`:return`loading`;case`completed`:return`complete`;case`failed`:case`aborted`:case`interrupted`:return`error`;default:return`loading`}}function k(e,t,n){if(n.type===`text`){let r=b(n.content);if(r.length===0)return;e.push({kind:`thinking`,durationLabel:``,text:r,detailKey:n.id}),t.push(void 0);return}if(n.type===`tool_call`){let r=n.toolName??``;if(u.has(r)){if(r===`web_fetch`)e.push({kind:`thinking`,durationLabel:``,text:x(n),detailKey:n.toolUseId}),t.push(void 0);else{let i=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({kind:`web_search`,query:i,title:`Searching the web`,durationLabel:``,linkCount:0,results:[],detailKey:n.toolUseId}),t.push({startTs:n.timestamp,toolName:r,toolUseId:n.toolUseId})}return}e.push(T(n)),t.push({startTs:n.timestamp,toolName:r});return}if(n.type===`tool_result`){let r=D(e,t,n);if(r===-1)return;let i=e[r],a=t[r]?.startTs,o=S(a,n.timestamp);if(i.kind===`web_search`){if(n.isError){e[r]=C(o,n);return}let t=c(n.result??n.content);e[r]={...i,title:`Searched the web`,query:i.query||n.searchQuery,durationLabel:o,linkCount:t.length,results:t};return}if(i.kind!==`tool`)return;e[r]={...i,status:n.isError?`error`:`completed`,durationLabel:o};return}if(n.type===`error`){let r=D(e,t,n);if(r!==-1){let i=e[r];i.kind===`tool`?e[r]={...i,status:`error`}:i.kind===`web_search`&&(e[r]=C(S(t[r]?.startTs,n.timestamp),n))}let i=b(n.content)||`Subagent error`;e.push({kind:`tool_error`,message:i}),t.push(void 0);return}}function A(e){let t=[],n=[];for(let r of e)k(t,n,r);return{steps:t,toolMeta:n}}function j(e,{steps:t,toolMeta:n}){if(!o(e.status)&&a(e)&&e.events.length===0&&!e.detailSettled)return{state:`loading`,currentStepTitle:`Loading`,currentStepInfo:e.label,stepCount:``,steps:t,carouselItems:[]};let r=O(e.status),{currentStepTitle:i,currentStepInfo:s}=M(e,t,n);return{state:r,currentStepTitle:i,currentStepInfo:s,stepCount:`${t.length} step${t.length===1?``:`s`}`,steps:t,carouselItems:[]}}function M(e,t,n){let r=e.status===`completed`||e.status===`failed`||e.status===`aborted`||e.status===`interrupted`;if(t.length===0){let t;return t=e.status===`failed`?`Failed`:e.status===`aborted`?`Aborted`:e.status===`interrupted`?`Interrupted`:e.status===`completed`?`Finished`:`Working`,{currentStepTitle:t,currentStepInfo:e.error||e.label}}let a=t[t.length-1];if(a.kind===`thinking`)return{currentStepTitle:r?`Thought`:`Thinking`,currentStepInfo:d(a.text)};if(a.kind===`tool`){if(a.status===`running`)return{currentStepTitle:`Working`,currentStepInfo:a.info};if(!r)return{currentStepTitle:`Finalizing`,currentStepInfo:a.info};let e=n[t.length-1]?.toolName??``;return{currentStepTitle:e?`Used ${i(e)}`:`Done`,currentStepInfo:a.info}}return a.kind===`tool_error`?{currentStepTitle:`Errored`,currentStepInfo:a.message}:a.kind===`web_search`?{currentStepTitle:a.title,currentStepInfo:``}:a.kind===`web_search_error`?{currentStepTitle:a.title,currentStepInfo:a.errorMessage}:{currentStepTitle:``,currentStepInfo:``}}function N(e){let t=s(t=>t.byId[e]),n=_(t?.events??y),r=(0,m.useRef)(null);if(!t)return r.current=null,null;let i=j(t,n),a=r.current;return a!=null&&a.steps===i.steps&&a.state===i.state&&a.currentStepTitle===i.currentStepTitle&&a.currentStepInfo===i.currentStepInfo&&a.stepCount===i.stepCount?a:(r.current=i,i)}function P(e,t,r){if(r.type===`text`){if((r.content??``).trim().length===0)return;e.push({toolCallId:r.id,toolName:``,title:`Thought`,activity:``,input:{},status:`completed`,durationLabel:``,kind:`thinking`,thinkingText:r.content}),t.push({startTs:r.timestamp,running:!1});return}if(r.type===`tool_call`){let i=r.toolUseId??``;if(!i)return;let a=r.toolName??``;if(a===`web_search`){let n=r.input&&typeof r.input.query==`string`?r.input.query:r.content||void 0;e.push({toolCallId:i,toolName:a,title:`Searched the web`,activity:``,input:r.input??{},status:`running`,durationLabel:``,kind:`web_search`,searchQuery:n,searchResults:[]}),t.push({startTs:r.timestamp,running:!0});return}let o=n(a,r.input??w(a,r.content??``));e.push({toolCallId:i,toolName:a,title:o.title,activity:o.activity,input:r.input??{},status:`running`,durationLabel:``,kind:`tool`}),t.push({startTs:r.timestamp,running:!0});return}if(r.type===`tool_result`||r.type===`error`){let n=E(e.map((e,n)=>({toolCallId:e.toolCallId,toolName:e.toolName,running:t[n].running})),r);if(n===-1)return;let i=e[n],a=t[n].startTs,o=S(a,r.timestamp);e[n]=i.kind===`web_search`?{...i,status:r.isError?`error`:`completed`,durationLabel:o,searchQuery:i.searchQuery||r.searchQuery,searchResults:r.isError?[]:c(r.result??r.content),result:r.isError?r.result??r.content:void 0}:{...i,result:r.result??r.content,status:r.isError?`error`:`completed`,durationLabel:o},t[n].running=!1}}export{p as i,N as n,_ as r,P as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n,x as r}from"./use-transcript-messages-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n,x as r}from"./use-transcript-messages-C2uwkjKL.js";var i=e(t(),1);function a(e){let t=n();return(0,i.useMemo)(()=>{if(e)return t.find(t=>r(t).includes(e))},[t,e])}export{a as t};
|
package/dist/assets/{use-transcript-messages-CgESPWZ3.js → use-transcript-messages-C2uwkjKL.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n}from"./local-settings-Bx7FsNo5.js";import{t as r}from"./react-BFJW0bSv.js";import{i}from"./use-attachment-preview-CQjpDfsc.js";import{n as a,t as o}from"./create-selectors-BfxF8Sx_.js";import{r as s}from"./typed-storage-OO7emDaU.js";import{a as c}from"./diagnostics-DykDXmF3.js";import{t as l}from"./conversation-store-CTMy9QPV.js";import{s as u,u as d}from"./messages-QgGSiklY.js";import{C as ee,D as f,n as p,t as te,w as ne,x as re}from"./chat-Dy2BC2i1.js";var ie=e(r(),1),m=1e3,ae=15,oe=0,h=new Map,g=[];function se(e){let t=`sse-${++oe}`,n={id:t,abortSignal:e,initiatedAt:Date.now(),establishedAt:null,lastTrafficAt:null,lastDataAt:null,dataFrames:0,keepalives:0,endedAt:null,endReason:null};h.set(t,n),_e();let r=()=>{ge(t,`aborted`)};return e.aborted?r():e.addEventListener(`abort`,r,{once:!0}),t}function ce(e){let t=h.get(e);t&&t.establishedAt===null&&(t.establishedAt=Date.now())}function le(e,t){let n=h.get(e);if(!n)return;let r=Date.now();n.lastTrafficAt=r,t?(n.lastDataAt=r,n.dataFrames++):n.keepalives++}function ue(e,t){g.push({clientId:e,receivedAt:new Date().toISOString(),...t}),g.length>m&&g.shift()}var de=`events-tail`;function fe(e){if(e.length===0)return;let t=new Set;for(let e of g)typeof e.seq==`number`&&t.add(e.seq);for(let n of e)typeof n.seq==`number`&&t.has(n.seq)||g.push({clientId:de,receivedAt:new Date().toISOString(),...n});for(;g.length>m;)g.shift()}function pe(){return Array.from(h.values())}function me(e=m){let t=Math.max(0,g.length-e);return g.slice(t)}function he(e,t){if(t===null)return null;let n=1/0;for(let e of g)typeof e.seq==`number`&&(n=Math.min(n,e.seq));return n!==1/0&&n>t+1?null:g.filter(n=>n.conversationId===e&&typeof n.seq==`number`&&n.seq>t).sort((e,t)=>e.seq-t.seq)}function ge(e,t){let n=h.get(e);n&&(n.endedAt===null?(n.endedAt=Date.now(),n.endReason=t):n.endReason===`aborted`&&t!==`aborted`&&(n.endReason=t),_e())}function _e(){let e=0;for(let t of h.values())t.endedAt!==null&&e++;if(!(e<=ae))for(let[t,n]of h){if(e<=ae)break;n.endedAt!==null&&(h.delete(t),e--)}}var _={phase:`idle`,pendingQueuedCount:0,activeToolCallCount:0,activeTurnId:null,lastTerminalReason:null,statusText:null,liveWebActivity:{}};function v(e){return e===`queued`||e===`thinking`||e===`streaming`||e===`awaiting_user_input`}function ve(e){return e===`thinking`}function y(e){return(e.phase===`idle`||e.phase===`errored`)&&!e.activeTurnId}var ye=o(a()((e,t)=>({..._,requestSend:t=>e(e=>({phase:`thinking`,activeTurnId:t??e.activeTurnId,lastTerminalReason:null,activeToolCallCount:0,statusText:null})),acceptSend:t=>e(e=>({activeTurnId:t,...e.phase===`idle`||e.phase===`errored`?{phase:`thinking`,lastTerminalReason:null}:null})),onTextDelta:()=>{let n=t();if(n.phase===`idle`||n.phase===`errored`){if(!n.activeTurnId)return;e({phase:`streaming`});return}(n.phase===`thinking`||n.phase===`queued`)&&e({phase:`streaming`})},onToolUseStart:()=>{let n=t();y(n)||e({phase:n.phase===`idle`||n.phase===`errored`||n.phase===`queued`?`thinking`:n.phase,activeToolCallCount:n.activeToolCallCount+1})},onToolResult:()=>e(e=>({activeToolCallCount:Math.max(0,e.activeToolCallCount-1)})),onToolActivityMetadata:(n,r)=>{let i=t();y(i)||e({liveWebActivity:{...i.liveWebActivity,[n]:r}})},onActivityThinking:(n,r)=>{let i=t();if(y(i)){if(!r?.canStartFromIdle)return;e({phase:`thinking`,statusText:n??null,lastTerminalReason:null});return}i.phase!==`awaiting_user_input`&&e({phase:`thinking`,statusText:n??null})},recoverFromAwaitingUserInput:()=>{t().phase===`awaiting_user_input`&&e({phase:`thinking`})},showSurface:n=>{y(t())||n&&e({phase:`awaiting_user_input`})},updateSurface:()=>{},dismissSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},completeSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},onSecretRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onConfirmationRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onQuestionRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onContactRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},completeTurn:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},handoffGeneration:()=>{y(t())||e({phase:`thinking`,activeToolCallCount:0,statusText:null})},cancelGeneration:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`cancelled`,statusText:null,liveWebActivity:{}})},onStreamError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`error`,statusText:null,liveWebActivity:{}}),onSessionError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`session_error`,statusText:null,liveWebActivity:{}}),onTurnTimeout:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`timeout`,statusText:null,liveWebActivity:{}}),onPollReconciled:n=>{let r=t();n&&n!==r.activeTurnId||v(r.phase)&&e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},resetTurn:()=>e({..._}),clearStaleTurn:()=>{let n=t();n.activeTurnId&&v(n.phase)||e({..._})},enqueueMessage:()=>e(e=>({pendingQueuedCount:e.pendingQueuedCount+1})),dequeueMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(y(n)){e({pendingQueuedCount:r});return}e({phase:`thinking`,pendingQueuedCount:r})},deleteQueuedMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(r===0&&n.phase===`queued`){e({phase:`idle`,pendingQueuedCount:0,activeTurnId:null,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}});return}e({pendingQueuedCount:r})}}))),be=3670016,xe=[.85,.75,.65,.5],Se=2e7,Ce=new Set([`image/jpeg`,`image/jpg`,`image/png`,`image/webp`,`image/heic`,`image/heif`,`image/bmp`,`image/tiff`]),we=new Set([`jpg`,`jpeg`,`png`,`webp`,`heic`,`heif`,`bmp`,`tif`,`tiff`]);function b(e){let t=e.type.trim().toLowerCase();if(Ce.has(t))return!0;let n=e.name.split(`.`).pop()?.trim().toLowerCase();return n?we.has(n):!1}function Te(e){return b(e)&&e.size>3670016}function Ee(e){let t=e.type.trim().toLowerCase();if(t===`image/heic`||t===`image/heif`)return!0;let n=e.name.split(`.`).pop()?.trim().toLowerCase();return n===`heic`||n===`heif`}function De(e){return Te(e)||Ee(e)}function Oe(e){if(/^image\/jpe?g$/i.test(e))return`jpg`;let t=e.slice(6).toLowerCase();return/^[a-z0-9]+$/.test(t)?t:`jpg`}function ke(e,t=`image/jpeg`){let n=`attachment`,r=e.trim()||n,i=Oe(t),a=r.match(/\.([^./\\]+)$/)?.[1]?.toLowerCase();return a===i||i===`jpg`&&a===`jpeg`?r:`${r.replace(/\.[^./\\]+$/,``)||n}.${i}`}async function Ae(e){if(!De(e)||await Me(e))return{status:`unchanged`,file:e};if(e.size>104857600)return{status:`failed`,error:`This image is too large to process safely. Please choose a smaller image.`};let t;try{t=await je(e)}catch{return{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`}}try{let n;try{n=await Pe(t,e.size)}catch{n=null}if(!n||!Ee(e)&&n.size>=e.size)return{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`};let r=n.type.startsWith(`image/`)?n.type:`image/jpeg`;return{status:`resized`,file:new File([n],ke(e.name,r),{type:r,lastModified:e.lastModified})}}finally{t.close()}}async function je(e){if(typeof createImageBitmap==`function`)try{let t=await createImageBitmap(e,{imageOrientation:`from-image`});return{source:t,width:t.width,height:t.height,close:()=>t.close()}}catch{}if(typeof Image>`u`)throw Error(`No browser image decoder is available.`);let t=URL.createObjectURL(e);return await new Promise((e,n)=>{let r=new Image;r.onload=()=>{e({source:r,width:r.naturalWidth||r.width,height:r.naturalHeight||r.height,close:()=>URL.revokeObjectURL(t)})},r.onerror=()=>{URL.revokeObjectURL(t),n(Error(`Image decode failed.`))},r.src=t})}async function Me(e){if(!Ne(e))return!1;let t;try{t=new Uint8Array(await e.slice(0,Math.min(e.size,1024*1024)).arrayBuffer())}catch{return!0}if(!S(t,0,`RIFF`)||!S(t,8,`WEBP`))return!1;let n=x(t,`VP8X`);return n>=0&&(t[n+8]??0)&2?!0:x(t,`ANIM`)>=0||x(t,`ANMF`)>=0}function Ne(e){return e.type.trim().toLowerCase()===`image/webp`||/\.webp$/i.test(e.name)}function x(e,t){for(let n=0;n<=e.length-t.length;n+=1)if(S(e,n,t))return n;return-1}function S(e,t,n){if(t+n.length>e.length)return!1;for(let r=0;r<n.length;r+=1)if(e[t+r]!==n.charCodeAt(r))return!1;return!0}async function Pe(e,t){let n=e.width*e.height,r=null;if(n<=Se)for(let t of xe){let n=await w(e.source,e.width,e.height,t);if(r=C(r,n),n&&n.size<=3670016)return n}let i=r?.size??t,a=Math.min(Math.sqrt(be/i*.9),.95);for(let t=0;t<4;t+=1){let t=Math.max(Math.floor(e.width*a),1),n=Math.max(Math.floor(e.height*a),1),o=null;for(let i of xe){let a=await w(e.source,t,n,i);if(r=C(r,a),o=C(o,a),a&&a.size<=3670016)return a}i=o?.size??i,a*=Math.min(Math.sqrt(be/i*.9),.9)}return null}function C(e,t){return t&&(!e||t.size<e.size)?t:e}async function w(e,t,n,r){if(typeof document>`u`)return null;let i=document.createElement(`canvas`);i.width=t,i.height=n;let a=i.getContext(`2d`);if(!a||typeof i.toBlob!=`function`)return null;a.fillStyle=`#fff`,a.fillRect(0,0,t,n),a.drawImage(e,0,0,t,n);try{return await new Promise(e=>{i.toBlob(t=>e(t),`image/jpeg`,r)})}finally{i.width=0,i.height=0}}var Fe=`vellum:chatDrafts:`;function Ie(e){return`${Fe}${e}`}function Le(e){let n=t(Ie(e),``);if(!n)return new Map;try{let e=JSON.parse(n);return typeof e!=`object`||!e||Array.isArray(e)?new Map:new Map(Object.entries(e).filter(e=>typeof e[1]==`string`))}catch{return new Map}}function T(e,t){n(Ie(e),JSON.stringify(Object.fromEntries(t)))}function Re(){return`att-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function ze(e){return b(e)?`100 MB`:`50 MB`}function Be(e){return e.size<=52428800?!0:b(e)&&e.size<=104857600}function Ve(e){let t=e.replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n===-1?t:t.slice(n+1)}var E=new Map,D=null,O=new Map,k=new Set,He=a()((e,t)=>({input:``,restoredDraftConversationId:null,attachments:[],attachmentLastError:null,setInput:t=>{e(e=>({input:typeof t==`function`?t(e.input):t}))},saveDraft:(e,t)=>{t.trim()?E.set(e,t):E.delete(e),D&&T(D,E)},clearDraft:e=>{E.delete(e),D&&T(D,E)},handleConversationSwitch:({previousKey:n,nextKey:r})=>{if(!(n!==null&&n!==r)||!n)return;let i=t().input;i.trim()?E.set(n,i):E.delete(n);let a=(r&&E.get(r))??``;e({input:a,restoredDraftConversationId:a.length>0&&r?r:null}),D&&T(D,E)},loadAssistantDrafts:(n,r)=>{if(D&&D!==n){let n=t().input;r&&(n.trim()?E.set(r,n):E.delete(r)),T(D,E),e({input:``,restoredDraftConversationId:null})}E=Le(n),D=n},clearRestoredDraftNotice:()=>{e({restoredDraftConversationId:null})},restoreDraftIfEmpty:n=>{let r=E.get(n);r&&r.trim()&&!t().input.trim()&&e({input:r,restoredDraftConversationId:n})},addFiles:(t,n)=>{let r=Array.from(t);if(r.length===0)return;if(!n){e({attachmentLastError:`No active assistant. Please try again.`});return}let a=[],o=[];for(let e of r)Be(e)?o.push(e):a.push(e);let s=a[0];if(e(s?{attachmentLastError:a.length===1?`${s.name} is larger than ${ze(s)} and can't be attached.`:`${a.length} files are too large and can't be attached.`}:{attachmentLastError:null}),o.length===0)return;let c=o.map(e=>({pending:{kind:`uploading`,localId:Re(),filename:e.name||`attachment`,mimeType:e.type||`application/octet-stream`,sizeBytes:e.size},file:e}));e(e=>({attachments:[...e.attachments,...c.map(e=>e.pending)]}));for(let{pending:t,file:r}of c)(async()=>{try{let a=await Ae(r);if(k.has(t.localId)){k.delete(t.localId);return}if(a.status===`failed`&&r.size>52428800){A(e,t.localId,a.error);return}let o=a.status===`failed`?r:a.file;if(o.size>52428800){A(e,t.localId,`This attachment is still larger than 50 MB after resizing. Try a smaller image.`);return}a.status===`resized`&&e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId&&e.kind===`uploading`?{...e,filename:o.name||`attachment`,mimeType:o.type||`application/octet-stream`,sizeBytes:o.size}:e)}));let s=await u(n,o);if(k.has(t.localId)){k.delete(t.localId);return}if(!s.ok){A(e,t.localId,s.error.detail??`Upload failed`);return}let c=o.type||`application/octet-stream`,l=s.filename??(o.name||`attachment`),d=s.mimeType??c,ee=s.sizeBytes??o.size,f=o;if(d.startsWith(`image/`)&&d!==c){let e=await i(n,s.id);if(k.has(t.localId)){k.delete(t.localId);return}e&&(f=e)}let p=null;try{p=URL.createObjectURL(f),O.set(t.localId,p)}catch{p=null}e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId?{kind:`uploaded`,localId:t.localId,id:s.id,filename:l,mimeType:d,sizeBytes:ee,previewUrl:p,thumbnailUrl:null}:e)}))}catch{if(k.has(t.localId)){k.delete(t.localId);return}A(e,t.localId,`Upload failed`)}})()},addPathReferences:t=>{let n=[];for(let e of t){let t=e.trim();t&&n.push({kind:`path-reference`,localId:Re(),path:t,filename:Ve(t)||t})}n.length!==0&&e(e=>({attachments:[...e.attachments,...n],attachmentLastError:null}))},removeAttachment:t=>{e(e=>{let n=e.attachments.find(e=>e.localId===t);return n&&n.kind===`uploading`&&k.add(t),{attachments:e.attachments.filter(e=>e.localId!==t)}}),Ue(t)},resetAttachments:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}})},fullReset:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}}),O.forEach(e=>URL.revokeObjectURL(e)),O.clear()},dismissAttachmentError:()=>{e({attachmentLastError:null})}}));function A(e,t,n){e(e=>({attachments:e.attachments.map(e=>e.localId!==t||e.kind!==`uploading`?e:{kind:`failed`,localId:t,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes,error:n})}))}function Ue(e){let t=O.get(e);t&&(URL.revokeObjectURL(t),O.delete(e))}function We(e){return e.reduce((e,t)=>t.kind===`uploading`?e+1:e,0)}function Ge(e){return e.filter(e=>e.kind===`uploaded`).map(e=>e.id)}function Ke(e){return e.filter(e=>e.kind===`path-reference`).map(e=>e.path)}var j=o(He);function qe(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function Je(e){let t=JSON.parse(e);return qe(t)?t:null}function M(e,t){let n=[...e??[]],r=n.findIndex(e=>e.type===`surface`&&e.surface.surfaceId===t.surfaceId);return r===-1?n.push({type:`surface`,surface:t}):n[r]={type:`surface`,surface:t},n}function Ye(e,t){return e?.filter(e=>!(e.type===`surface`&&e.surface.surfaceId===t))}function Xe(e,t){if(!e.surfaces?.length)return e;let n=!1,r=e.contentBlocks,i=e.surfaces.map(e=>{let i=t(e);return i!==e&&(n=!0,r=M(r,i)),i});return n?{...e,surfaces:i,contentBlocks:r}:e}function Ze(e,t){if(!e.surfaces?.length)return e;let n=e.surfaces.filter(t);if(n.length===e.surfaces.length)return e;let r=new Set(e.surfaces.filter(e=>!t(e)).map(e=>e.surfaceId));return{...e,surfaces:n,contentOrder:e.contentOrder?.filter(e=>!(e.type===`surface`&&r.has(e.id))),contentBlocks:e.contentBlocks?.filter(e=>!(e.type===`surface`&&r.has(e.surface.surfaceId)))}}var Qe=500,$e=s({keyFn:e=>`vellum:dismissed-surfaces:${e}`,scope:`user`,parseValue:e=>qe(e)?e:null,fallback:{},maxEntries:200});function et(e,t){let n=$e.get(e,t);return n?new Set(n):new Set}function tt(e,t,n){let r=Array.from(n);r.length>Qe&&(r=r.slice(r.length-Qe)),$e.set(e,t,r)}var nt=[];function rt(e,t){if(!e)return nt;if(t.size===0)return e;let n=!1,r=e.map(e=>{let r=Ze(e,e=>!t.has(e.surfaceId));return r!==e&&(n=!0),r});return n?r:e}function it(e){if(!e||typeof e!=`object`)return!1;let t=e;return!(typeof t.tokens!=`number`||!Number.isFinite(t.tokens)||t.maxTokens!==null&&(typeof t.maxTokens!=`number`||!Number.isFinite(t.maxTokens))||t.fillRatio!==null&&(typeof t.fillRatio!=`number`||!Number.isFinite(t.fillRatio)))}var at=s({keyFn:e=>`vellum:ctxwindow:${e}`,scope:`user`,parseValue:e=>it(e)?e:null,fallback:{},maxEntries:200});function ot(e){return new Map(Object.entries(at.load(e)))}function st(e,t,n){at.set(e,t,n)}var ct=`PROVIDER_BILLING`,lt=`PROVIDER_NOT_CONFIGURED`,ut=`MANAGED_KEY_INVALID`,dt=`credits_exhausted`,ft=`provider_billing`,pt=`daily_limit_reached`;function mt(e){return e?e.category?e.category.endsWith(dt):e.code===ct:!1}function ht(e){return e?mt({code:e.code,category:e.errorCategory}):!1}function gt(e){return e?.errorCategory?e.errorCategory.endsWith(ft):!1}function _t(e){return e?.errorCategory?e.errorCategory.endsWith(pt):!1}function vt(e){return _t(e)?`daily_limit`:ht(e)?`managed_credits`:gt(e)?`provider_billing`:null}function yt(e){return e.billingBannerDecision===`daily_limit`?`daily_limit`:e.billingBannerDecision===`provider_billing`?`provider_billing`:e.billingBannerDecision===`managed_credits`?null:e.isLowBalance&&!e.dismissed?`low_balance`:null}function N(e){return vt(e)!==null||e?.code===lt||e?.displayAs===`modal`}function bt(e){return!!e&&!N(e)}function xt(e){return e?.code===ut}var P={pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,pendingContactRequest:null,isSubmittingContactRequest:!1,contactRequestAccepted:!1,pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1,inlineConfirmationToolCallId:null,pendingAcpConnect:null,dismissedAcpConnectToolUseIds:new Set,pendingAcpContinue:!1,unknownNudgeToolCallIds:new Set},F=o(a()((e,t)=>({...P,showSecret:n=>{let{pendingSecret:r}=t();if(r&&r.requestId===n.requestId){let t={};for(let e of Object.keys(n))n[e]!==void 0&&(t[e]=n[e]);e({pendingSecret:{...r,...t}});return}e({pendingSecret:n,isSubmittingSecret:!1,secretSaved:!1})},submitSecretStart:()=>e({isSubmittingSecret:!0}),submitSecretEnd:t=>e({isSubmittingSecret:!1,secretSaved:t??!1}),dismissSecret:()=>e({pendingSecret:null,isSubmittingSecret:!1}),updateSecret:(n,r)=>{let{pendingSecret:i}=t();!i||i.requestId!==n||e({pendingSecret:{...i,...r}})},showConfirmation:t=>e({pendingConfirmation:t,isSubmittingConfirmation:!1}),submitConfirmationStart:()=>e({isSubmittingConfirmation:!0}),submitConfirmationEnd:()=>e({isSubmittingConfirmation:!1}),dismissConfirmation:()=>e({pendingConfirmation:null,isSubmittingConfirmation:!1}),dismissConfirmationIfMatches:n=>{let{pendingConfirmation:r}=t();!r||r.requestId!==n||e({pendingConfirmation:null,isSubmittingConfirmation:!1})},updateConfirmation:(n,r)=>{let{pendingConfirmation:i}=t();!i||i.requestId!==n||e({pendingConfirmation:{...i,...r}})},setInlineConfirmationToolCallId:t=>e({inlineConfirmationToolCallId:t}),showContactRequest:t=>e({pendingContactRequest:t,isSubmittingContactRequest:!1,contactRequestAccepted:!1}),submitContactRequestStart:()=>e({isSubmittingContactRequest:!0}),submitContactRequestEnd:()=>e({isSubmittingContactRequest:!1}),dismissContactRequest:()=>e({pendingContactRequest:null,isSubmittingContactRequest:!1}),acceptContactRequest:()=>e({contactRequestAccepted:!0}),showQuestion:t=>e({pendingQuestion:t,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),submitQuestionStart:()=>e({isSubmittingQuestion:!0}),submitQuestionEnd:()=>e({isSubmittingQuestion:!1}),dismissQuestion:()=>e({pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),dismissQuestionCard:()=>e({isQuestionCardDismissed:!0}),resetSecretAndConfirmation:()=>e({pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,inlineConfirmationToolCallId:null}),showAcpConnect:t=>e(e=>e.dismissedAcpConnectToolUseIds.has(t.toolUseId)?{}:{pendingAcpConnect:t}),dismissAcpConnect:()=>e(e=>({pendingAcpConnect:null,dismissedAcpConnectToolUseIds:e.pendingAcpConnect?new Set(e.dismissedAcpConnectToolUseIds).add(e.pendingAcpConnect.toolUseId):e.dismissedAcpConnectToolUseIds})),requestAcpContinue:()=>e({pendingAcpContinue:!0}),clearAcpContinue:()=>e({pendingAcpContinue:!1}),addUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;r.has(n)||e({unknownNudgeToolCallIds:new Set([...r,n])})},removeUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;if(!r.has(n))return;let i=new Set(r);i.delete(n),e({unknownNudgeToolCallIds:i})},resetAll:()=>e(P)})));function St(e){if(e.length===0)return``;let t=e[0]??``;for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n][0];r&&i&&r!==` `&&r!==`
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n}from"./local-settings-Bx7FsNo5.js";import{t as r}from"./react-BFJW0bSv.js";import{i}from"./use-attachment-preview-CQjpDfsc.js";import{n as a,t as o}from"./create-selectors-BfxF8Sx_.js";import{r as s}from"./typed-storage-OO7emDaU.js";import{a as c}from"./diagnostics-DykDXmF3.js";import{t as l}from"./conversation-store-CTMy9QPV.js";import{s as u,u as d}from"./messages-Dyp1xUqz.js";import{C as ee,D as f,n as p,t as te,w as ne,x as re}from"./chat-Dy2BC2i1.js";var ie=e(r(),1),m=1e3,ae=15,oe=0,h=new Map,g=[];function se(e){let t=`sse-${++oe}`,n={id:t,abortSignal:e,initiatedAt:Date.now(),establishedAt:null,lastTrafficAt:null,lastDataAt:null,dataFrames:0,keepalives:0,endedAt:null,endReason:null};h.set(t,n),_e();let r=()=>{ge(t,`aborted`)};return e.aborted?r():e.addEventListener(`abort`,r,{once:!0}),t}function ce(e){let t=h.get(e);t&&t.establishedAt===null&&(t.establishedAt=Date.now())}function le(e,t){let n=h.get(e);if(!n)return;let r=Date.now();n.lastTrafficAt=r,t?(n.lastDataAt=r,n.dataFrames++):n.keepalives++}function ue(e,t){g.push({clientId:e,receivedAt:new Date().toISOString(),...t}),g.length>m&&g.shift()}var de=`events-tail`;function fe(e){if(e.length===0)return;let t=new Set;for(let e of g)typeof e.seq==`number`&&t.add(e.seq);for(let n of e)typeof n.seq==`number`&&t.has(n.seq)||g.push({clientId:de,receivedAt:new Date().toISOString(),...n});for(;g.length>m;)g.shift()}function pe(){return Array.from(h.values())}function me(e=m){let t=Math.max(0,g.length-e);return g.slice(t)}function he(e,t){if(t===null)return null;let n=1/0;for(let e of g)typeof e.seq==`number`&&(n=Math.min(n,e.seq));return n!==1/0&&n>t+1?null:g.filter(n=>n.conversationId===e&&typeof n.seq==`number`&&n.seq>t).sort((e,t)=>e.seq-t.seq)}function ge(e,t){let n=h.get(e);n&&(n.endedAt===null?(n.endedAt=Date.now(),n.endReason=t):n.endReason===`aborted`&&t!==`aborted`&&(n.endReason=t),_e())}function _e(){let e=0;for(let t of h.values())t.endedAt!==null&&e++;if(!(e<=ae))for(let[t,n]of h){if(e<=ae)break;n.endedAt!==null&&(h.delete(t),e--)}}var _={phase:`idle`,pendingQueuedCount:0,activeToolCallCount:0,activeTurnId:null,lastTerminalReason:null,statusText:null,liveWebActivity:{}};function v(e){return e===`queued`||e===`thinking`||e===`streaming`||e===`awaiting_user_input`}function ve(e){return e===`thinking`}function y(e){return(e.phase===`idle`||e.phase===`errored`)&&!e.activeTurnId}var ye=o(a()((e,t)=>({..._,requestSend:t=>e(e=>({phase:`thinking`,activeTurnId:t??e.activeTurnId,lastTerminalReason:null,activeToolCallCount:0,statusText:null})),acceptSend:t=>e(e=>({activeTurnId:t,...e.phase===`idle`||e.phase===`errored`?{phase:`thinking`,lastTerminalReason:null}:null})),onTextDelta:()=>{let n=t();if(n.phase===`idle`||n.phase===`errored`){if(!n.activeTurnId)return;e({phase:`streaming`});return}(n.phase===`thinking`||n.phase===`queued`)&&e({phase:`streaming`})},onToolUseStart:()=>{let n=t();y(n)||e({phase:n.phase===`idle`||n.phase===`errored`||n.phase===`queued`?`thinking`:n.phase,activeToolCallCount:n.activeToolCallCount+1})},onToolResult:()=>e(e=>({activeToolCallCount:Math.max(0,e.activeToolCallCount-1)})),onToolActivityMetadata:(n,r)=>{let i=t();y(i)||e({liveWebActivity:{...i.liveWebActivity,[n]:r}})},onActivityThinking:(n,r)=>{let i=t();if(y(i)){if(!r?.canStartFromIdle)return;e({phase:`thinking`,statusText:n??null,lastTerminalReason:null});return}i.phase!==`awaiting_user_input`&&e({phase:`thinking`,statusText:n??null})},recoverFromAwaitingUserInput:()=>{t().phase===`awaiting_user_input`&&e({phase:`thinking`})},showSurface:n=>{y(t())||n&&e({phase:`awaiting_user_input`})},updateSurface:()=>{},dismissSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},completeSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},onSecretRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onConfirmationRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onQuestionRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},onContactRequest:()=>{y(t())||e({phase:`awaiting_user_input`})},completeTurn:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},handoffGeneration:()=>{y(t())||e({phase:`thinking`,activeToolCallCount:0,statusText:null})},cancelGeneration:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`cancelled`,statusText:null,liveWebActivity:{}})},onStreamError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`error`,statusText:null,liveWebActivity:{}}),onSessionError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`session_error`,statusText:null,liveWebActivity:{}}),onTurnTimeout:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`timeout`,statusText:null,liveWebActivity:{}}),onPollReconciled:n=>{let r=t();n&&n!==r.activeTurnId||v(r.phase)&&e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},resetTurn:()=>e({..._}),clearStaleTurn:()=>{let n=t();n.activeTurnId&&v(n.phase)||e({..._})},enqueueMessage:()=>e(e=>({pendingQueuedCount:e.pendingQueuedCount+1})),dequeueMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(y(n)){e({pendingQueuedCount:r});return}e({phase:`thinking`,pendingQueuedCount:r})},deleteQueuedMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(r===0&&n.phase===`queued`){e({phase:`idle`,pendingQueuedCount:0,activeTurnId:null,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}});return}e({pendingQueuedCount:r})}}))),be=3670016,xe=[.85,.75,.65,.5],Se=2e7,Ce=new Set([`image/jpeg`,`image/jpg`,`image/png`,`image/webp`,`image/heic`,`image/heif`,`image/bmp`,`image/tiff`]),we=new Set([`jpg`,`jpeg`,`png`,`webp`,`heic`,`heif`,`bmp`,`tif`,`tiff`]);function b(e){let t=e.type.trim().toLowerCase();if(Ce.has(t))return!0;let n=e.name.split(`.`).pop()?.trim().toLowerCase();return n?we.has(n):!1}function Te(e){return b(e)&&e.size>3670016}function Ee(e){let t=e.type.trim().toLowerCase();if(t===`image/heic`||t===`image/heif`)return!0;let n=e.name.split(`.`).pop()?.trim().toLowerCase();return n===`heic`||n===`heif`}function De(e){return Te(e)||Ee(e)}function Oe(e){if(/^image\/jpe?g$/i.test(e))return`jpg`;let t=e.slice(6).toLowerCase();return/^[a-z0-9]+$/.test(t)?t:`jpg`}function ke(e,t=`image/jpeg`){let n=`attachment`,r=e.trim()||n,i=Oe(t),a=r.match(/\.([^./\\]+)$/)?.[1]?.toLowerCase();return a===i||i===`jpg`&&a===`jpeg`?r:`${r.replace(/\.[^./\\]+$/,``)||n}.${i}`}async function Ae(e){if(!De(e)||await Me(e))return{status:`unchanged`,file:e};if(e.size>104857600)return{status:`failed`,error:`This image is too large to process safely. Please choose a smaller image.`};let t;try{t=await je(e)}catch{return{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`}}try{let n;try{n=await Pe(t,e.size)}catch{n=null}if(!n||!Ee(e)&&n.size>=e.size)return{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`};let r=n.type.startsWith(`image/`)?n.type:`image/jpeg`;return{status:`resized`,file:new File([n],ke(e.name,r),{type:r,lastModified:e.lastModified})}}finally{t.close()}}async function je(e){if(typeof createImageBitmap==`function`)try{let t=await createImageBitmap(e,{imageOrientation:`from-image`});return{source:t,width:t.width,height:t.height,close:()=>t.close()}}catch{}if(typeof Image>`u`)throw Error(`No browser image decoder is available.`);let t=URL.createObjectURL(e);return await new Promise((e,n)=>{let r=new Image;r.onload=()=>{e({source:r,width:r.naturalWidth||r.width,height:r.naturalHeight||r.height,close:()=>URL.revokeObjectURL(t)})},r.onerror=()=>{URL.revokeObjectURL(t),n(Error(`Image decode failed.`))},r.src=t})}async function Me(e){if(!Ne(e))return!1;let t;try{t=new Uint8Array(await e.slice(0,Math.min(e.size,1024*1024)).arrayBuffer())}catch{return!0}if(!S(t,0,`RIFF`)||!S(t,8,`WEBP`))return!1;let n=x(t,`VP8X`);return n>=0&&(t[n+8]??0)&2?!0:x(t,`ANIM`)>=0||x(t,`ANMF`)>=0}function Ne(e){return e.type.trim().toLowerCase()===`image/webp`||/\.webp$/i.test(e.name)}function x(e,t){for(let n=0;n<=e.length-t.length;n+=1)if(S(e,n,t))return n;return-1}function S(e,t,n){if(t+n.length>e.length)return!1;for(let r=0;r<n.length;r+=1)if(e[t+r]!==n.charCodeAt(r))return!1;return!0}async function Pe(e,t){let n=e.width*e.height,r=null;if(n<=Se)for(let t of xe){let n=await w(e.source,e.width,e.height,t);if(r=C(r,n),n&&n.size<=3670016)return n}let i=r?.size??t,a=Math.min(Math.sqrt(be/i*.9),.95);for(let t=0;t<4;t+=1){let t=Math.max(Math.floor(e.width*a),1),n=Math.max(Math.floor(e.height*a),1),o=null;for(let i of xe){let a=await w(e.source,t,n,i);if(r=C(r,a),o=C(o,a),a&&a.size<=3670016)return a}i=o?.size??i,a*=Math.min(Math.sqrt(be/i*.9),.9)}return null}function C(e,t){return t&&(!e||t.size<e.size)?t:e}async function w(e,t,n,r){if(typeof document>`u`)return null;let i=document.createElement(`canvas`);i.width=t,i.height=n;let a=i.getContext(`2d`);if(!a||typeof i.toBlob!=`function`)return null;a.fillStyle=`#fff`,a.fillRect(0,0,t,n),a.drawImage(e,0,0,t,n);try{return await new Promise(e=>{i.toBlob(t=>e(t),`image/jpeg`,r)})}finally{i.width=0,i.height=0}}var Fe=`vellum:chatDrafts:`;function Ie(e){return`${Fe}${e}`}function Le(e){let n=t(Ie(e),``);if(!n)return new Map;try{let e=JSON.parse(n);return typeof e!=`object`||!e||Array.isArray(e)?new Map:new Map(Object.entries(e).filter(e=>typeof e[1]==`string`))}catch{return new Map}}function T(e,t){n(Ie(e),JSON.stringify(Object.fromEntries(t)))}function Re(){return`att-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function ze(e){return b(e)?`100 MB`:`50 MB`}function Be(e){return e.size<=52428800?!0:b(e)&&e.size<=104857600}function Ve(e){let t=e.replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n===-1?t:t.slice(n+1)}var E=new Map,D=null,O=new Map,k=new Set,He=a()((e,t)=>({input:``,restoredDraftConversationId:null,attachments:[],attachmentLastError:null,setInput:t=>{e(e=>({input:typeof t==`function`?t(e.input):t}))},saveDraft:(e,t)=>{t.trim()?E.set(e,t):E.delete(e),D&&T(D,E)},clearDraft:e=>{E.delete(e),D&&T(D,E)},handleConversationSwitch:({previousKey:n,nextKey:r})=>{if(!(n!==null&&n!==r)||!n)return;let i=t().input;i.trim()?E.set(n,i):E.delete(n);let a=(r&&E.get(r))??``;e({input:a,restoredDraftConversationId:a.length>0&&r?r:null}),D&&T(D,E)},loadAssistantDrafts:(n,r)=>{if(D&&D!==n){let n=t().input;r&&(n.trim()?E.set(r,n):E.delete(r)),T(D,E),e({input:``,restoredDraftConversationId:null})}E=Le(n),D=n},clearRestoredDraftNotice:()=>{e({restoredDraftConversationId:null})},restoreDraftIfEmpty:n=>{let r=E.get(n);r&&r.trim()&&!t().input.trim()&&e({input:r,restoredDraftConversationId:n})},addFiles:(t,n)=>{let r=Array.from(t);if(r.length===0)return;if(!n){e({attachmentLastError:`No active assistant. Please try again.`});return}let a=[],o=[];for(let e of r)Be(e)?o.push(e):a.push(e);let s=a[0];if(e(s?{attachmentLastError:a.length===1?`${s.name} is larger than ${ze(s)} and can't be attached.`:`${a.length} files are too large and can't be attached.`}:{attachmentLastError:null}),o.length===0)return;let c=o.map(e=>({pending:{kind:`uploading`,localId:Re(),filename:e.name||`attachment`,mimeType:e.type||`application/octet-stream`,sizeBytes:e.size},file:e}));e(e=>({attachments:[...e.attachments,...c.map(e=>e.pending)]}));for(let{pending:t,file:r}of c)(async()=>{try{let a=await Ae(r);if(k.has(t.localId)){k.delete(t.localId);return}if(a.status===`failed`&&r.size>52428800){A(e,t.localId,a.error);return}let o=a.status===`failed`?r:a.file;if(o.size>52428800){A(e,t.localId,`This attachment is still larger than 50 MB after resizing. Try a smaller image.`);return}a.status===`resized`&&e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId&&e.kind===`uploading`?{...e,filename:o.name||`attachment`,mimeType:o.type||`application/octet-stream`,sizeBytes:o.size}:e)}));let s=await u(n,o);if(k.has(t.localId)){k.delete(t.localId);return}if(!s.ok){A(e,t.localId,s.error.detail??`Upload failed`);return}let c=o.type||`application/octet-stream`,l=s.filename??(o.name||`attachment`),d=s.mimeType??c,ee=s.sizeBytes??o.size,f=o;if(d.startsWith(`image/`)&&d!==c){let e=await i(n,s.id);if(k.has(t.localId)){k.delete(t.localId);return}e&&(f=e)}let p=null;try{p=URL.createObjectURL(f),O.set(t.localId,p)}catch{p=null}e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId?{kind:`uploaded`,localId:t.localId,id:s.id,filename:l,mimeType:d,sizeBytes:ee,previewUrl:p,thumbnailUrl:null}:e)}))}catch{if(k.has(t.localId)){k.delete(t.localId);return}A(e,t.localId,`Upload failed`)}})()},addPathReferences:t=>{let n=[];for(let e of t){let t=e.trim();t&&n.push({kind:`path-reference`,localId:Re(),path:t,filename:Ve(t)||t})}n.length!==0&&e(e=>({attachments:[...e.attachments,...n],attachmentLastError:null}))},removeAttachment:t=>{e(e=>{let n=e.attachments.find(e=>e.localId===t);return n&&n.kind===`uploading`&&k.add(t),{attachments:e.attachments.filter(e=>e.localId!==t)}}),Ue(t)},resetAttachments:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}})},fullReset:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}}),O.forEach(e=>URL.revokeObjectURL(e)),O.clear()},dismissAttachmentError:()=>{e({attachmentLastError:null})}}));function A(e,t,n){e(e=>({attachments:e.attachments.map(e=>e.localId!==t||e.kind!==`uploading`?e:{kind:`failed`,localId:t,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes,error:n})}))}function Ue(e){let t=O.get(e);t&&(URL.revokeObjectURL(t),O.delete(e))}function We(e){return e.reduce((e,t)=>t.kind===`uploading`?e+1:e,0)}function Ge(e){return e.filter(e=>e.kind===`uploaded`).map(e=>e.id)}function Ke(e){return e.filter(e=>e.kind===`path-reference`).map(e=>e.path)}var j=o(He);function qe(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function Je(e){let t=JSON.parse(e);return qe(t)?t:null}function M(e,t){let n=[...e??[]],r=n.findIndex(e=>e.type===`surface`&&e.surface.surfaceId===t.surfaceId);return r===-1?n.push({type:`surface`,surface:t}):n[r]={type:`surface`,surface:t},n}function Ye(e,t){return e?.filter(e=>!(e.type===`surface`&&e.surface.surfaceId===t))}function Xe(e,t){if(!e.surfaces?.length)return e;let n=!1,r=e.contentBlocks,i=e.surfaces.map(e=>{let i=t(e);return i!==e&&(n=!0,r=M(r,i)),i});return n?{...e,surfaces:i,contentBlocks:r}:e}function Ze(e,t){if(!e.surfaces?.length)return e;let n=e.surfaces.filter(t);if(n.length===e.surfaces.length)return e;let r=new Set(e.surfaces.filter(e=>!t(e)).map(e=>e.surfaceId));return{...e,surfaces:n,contentOrder:e.contentOrder?.filter(e=>!(e.type===`surface`&&r.has(e.id))),contentBlocks:e.contentBlocks?.filter(e=>!(e.type===`surface`&&r.has(e.surface.surfaceId)))}}var Qe=500,$e=s({keyFn:e=>`vellum:dismissed-surfaces:${e}`,scope:`user`,parseValue:e=>qe(e)?e:null,fallback:{},maxEntries:200});function et(e,t){let n=$e.get(e,t);return n?new Set(n):new Set}function tt(e,t,n){let r=Array.from(n);r.length>Qe&&(r=r.slice(r.length-Qe)),$e.set(e,t,r)}var nt=[];function rt(e,t){if(!e)return nt;if(t.size===0)return e;let n=!1,r=e.map(e=>{let r=Ze(e,e=>!t.has(e.surfaceId));return r!==e&&(n=!0),r});return n?r:e}function it(e){if(!e||typeof e!=`object`)return!1;let t=e;return!(typeof t.tokens!=`number`||!Number.isFinite(t.tokens)||t.maxTokens!==null&&(typeof t.maxTokens!=`number`||!Number.isFinite(t.maxTokens))||t.fillRatio!==null&&(typeof t.fillRatio!=`number`||!Number.isFinite(t.fillRatio)))}var at=s({keyFn:e=>`vellum:ctxwindow:${e}`,scope:`user`,parseValue:e=>it(e)?e:null,fallback:{},maxEntries:200});function ot(e){return new Map(Object.entries(at.load(e)))}function st(e,t,n){at.set(e,t,n)}var ct=`PROVIDER_BILLING`,lt=`PROVIDER_NOT_CONFIGURED`,ut=`MANAGED_KEY_INVALID`,dt=`credits_exhausted`,ft=`provider_billing`,pt=`daily_limit_reached`;function mt(e){return e?e.category?e.category.endsWith(dt):e.code===ct:!1}function ht(e){return e?mt({code:e.code,category:e.errorCategory}):!1}function gt(e){return e?.errorCategory?e.errorCategory.endsWith(ft):!1}function _t(e){return e?.errorCategory?e.errorCategory.endsWith(pt):!1}function vt(e){return _t(e)?`daily_limit`:ht(e)?`managed_credits`:gt(e)?`provider_billing`:null}function yt(e){return e.billingBannerDecision===`daily_limit`?`daily_limit`:e.billingBannerDecision===`provider_billing`?`provider_billing`:e.billingBannerDecision===`managed_credits`?null:e.isLowBalance&&!e.dismissed?`low_balance`:null}function N(e){return vt(e)!==null||e?.code===lt||e?.displayAs===`modal`}function bt(e){return!!e&&!N(e)}function xt(e){return e?.code===ut}var P={pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,pendingContactRequest:null,isSubmittingContactRequest:!1,contactRequestAccepted:!1,pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1,inlineConfirmationToolCallId:null,pendingAcpConnect:null,dismissedAcpConnectToolUseIds:new Set,pendingAcpContinue:!1,unknownNudgeToolCallIds:new Set},F=o(a()((e,t)=>({...P,showSecret:n=>{let{pendingSecret:r}=t();if(r&&r.requestId===n.requestId){let t={};for(let e of Object.keys(n))n[e]!==void 0&&(t[e]=n[e]);e({pendingSecret:{...r,...t}});return}e({pendingSecret:n,isSubmittingSecret:!1,secretSaved:!1})},submitSecretStart:()=>e({isSubmittingSecret:!0}),submitSecretEnd:t=>e({isSubmittingSecret:!1,secretSaved:t??!1}),dismissSecret:()=>e({pendingSecret:null,isSubmittingSecret:!1}),updateSecret:(n,r)=>{let{pendingSecret:i}=t();!i||i.requestId!==n||e({pendingSecret:{...i,...r}})},showConfirmation:t=>e({pendingConfirmation:t,isSubmittingConfirmation:!1}),submitConfirmationStart:()=>e({isSubmittingConfirmation:!0}),submitConfirmationEnd:()=>e({isSubmittingConfirmation:!1}),dismissConfirmation:()=>e({pendingConfirmation:null,isSubmittingConfirmation:!1}),dismissConfirmationIfMatches:n=>{let{pendingConfirmation:r}=t();!r||r.requestId!==n||e({pendingConfirmation:null,isSubmittingConfirmation:!1})},updateConfirmation:(n,r)=>{let{pendingConfirmation:i}=t();!i||i.requestId!==n||e({pendingConfirmation:{...i,...r}})},setInlineConfirmationToolCallId:t=>e({inlineConfirmationToolCallId:t}),showContactRequest:t=>e({pendingContactRequest:t,isSubmittingContactRequest:!1,contactRequestAccepted:!1}),submitContactRequestStart:()=>e({isSubmittingContactRequest:!0}),submitContactRequestEnd:()=>e({isSubmittingContactRequest:!1}),dismissContactRequest:()=>e({pendingContactRequest:null,isSubmittingContactRequest:!1}),acceptContactRequest:()=>e({contactRequestAccepted:!0}),showQuestion:t=>e({pendingQuestion:t,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),submitQuestionStart:()=>e({isSubmittingQuestion:!0}),submitQuestionEnd:()=>e({isSubmittingQuestion:!1}),dismissQuestion:()=>e({pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),dismissQuestionCard:()=>e({isQuestionCardDismissed:!0}),resetSecretAndConfirmation:()=>e({pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,inlineConfirmationToolCallId:null}),showAcpConnect:t=>e(e=>e.dismissedAcpConnectToolUseIds.has(t.toolUseId)?{}:{pendingAcpConnect:t}),dismissAcpConnect:()=>e(e=>({pendingAcpConnect:null,dismissedAcpConnectToolUseIds:e.pendingAcpConnect?new Set(e.dismissedAcpConnectToolUseIds).add(e.pendingAcpConnect.toolUseId):e.dismissedAcpConnectToolUseIds})),requestAcpContinue:()=>e({pendingAcpContinue:!0}),clearAcpContinue:()=>e({pendingAcpContinue:!1}),addUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;r.has(n)||e({unknownNudgeToolCallIds:new Set([...r,n])})},removeUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;if(!r.has(n))return;let i=new Set(r);i.delete(n),e({unknownNudgeToolCallIds:i})},resetAll:()=>e(P)})));function St(e){if(e.length===0)return``;let t=e[0]??``;for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n][0];r&&i&&r!==` `&&r!==`
|
|
2
2
|
`&&r!==` `&&i!==` `&&i!==`
|
|
3
3
|
`&&i!==` `&&(t+=` `),t+=e[n]}return t}function I(e){let t=[];for(let n of e?.contentBlocks??[])n.type===`text`&&t.push(n.text);return St(t)}function Ct(e){if(!(!e||e.length===0))return e.map(e=>{let{previewUrl:t,thumbnailUrl:n}=d(e.mimeType,e.data,e.thumbnailData,e.id!=null);return{id:e.id??e.filename,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes??(e.data?Math.floor(e.data.length*3/4):0),previewUrl:t,thumbnailUrl:n}})}function wt(e){return[...new Set([e.id,...e.mergedMessageIds??[]].filter(e=>typeof e==`string`&&e.length>0))]}function L(e){let t=wt(e);return e.clientMessageId&&!t.includes(e.clientMessageId)?[...t,e.clientMessageId]:t}function R(e,t){return e.id===t||e.clientMessageId===t||(e.mergedMessageIds?.includes(t)??!1)}function z(e){let t=e[e.length-1];return!!t&&t.role===`assistant`}function Tt(e,t){if(!t)return null;let n=e.length-1;for(;n>=0&&e[n].role===`user`&&e[n].queueStatus===`queued`;)n--;let r=e[n];return!r||r.role!==`assistant`?null:r.id}function B(e,t){return e.findIndex(e=>e.role===`assistant`&&(e.id===t||!!e.mergedMessageIds?.includes(t)))}function V(e,t){if(t){let n=B(e,t);if(n!==-1)return n}let n=e.findLastIndex(e=>e.role===`user`&&e.queueStatus!==`queued`)+1;for(let t=e.length-1;t>=n;t--)if(e[t]?.role===`assistant`)return t;return-1}function H(e,t){if(!t||e.id===t)return e;let n=e.mergedMessageIds??[];return n.includes(t)?e:{...e,mergedMessageIds:[...n,t]}}function U(e,t=Date.now()){if(!e.toolCalls?.some(e=>f(e)))return null;let n=t;return{toolCalls:e.toolCalls.map(e=>f(e)?{...e,completedAt:n}:e),contentBlocks:e.contentBlocks?.map(e=>e.type===`tool_use`&&f(e.toolCall)?{type:`tool_use`,toolCall:{...e.toolCall,completedAt:n}}:e)}}function Et(e,t,n){return e.map(e=>e.id===t?{...e,queuePosition:n}:e)}function Dt(e,t){return e.map(e=>R(e,t)?{...e,queueStatus:void 0,queuePosition:void 0}:e)}function Ot(e,t){return e.map(e=>R(e,t)?{...e,...e.clientMessageId?{}:{isOptimistic:!0},queueStatus:void 0,queuePosition:void 0}:e)}function kt(e,t,n){return e.map(e=>R(e,t)?{...e,queueStatus:`queued`,queuePosition:n}:e)}function At(e,t){return e.filter(e=>!R(e,t))}function jt(e,t,n,r=Date.now()){return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,textSegments:[t],contentOrder:[{type:`text`,id:`0`}],contentBlocks:[{type:`text`,text:t}],timestamp:r}]}function Mt(e,t,n){n&&e[e.length-1]?.type===t.type?e[e.length-1]=t:e.push(t)}function W(e,t,n,r){let i=H(e[t],r),a=[...i.textSegments??[]],o=[...i.contentOrder??[]],s=[...i.contentBlocks??[]],c=o[o.length-1]?.type===`text`&&a.length>0;c?a[a.length-1]=a[a.length-1]+n:(o.push({type:`text`,id:String(a.length)}),a.push(n)),Mt(s,{type:`text`,text:a[a.length-1]},c);let l=[...e];return l[t]={...i,textSegments:a,contentOrder:o,contentBlocks:s},l}function G(e,t,n,r){let i=H(e[t],r),a=[...i.thinkingSegments??[]],o=[...i.contentOrder??[]],s=[...i.contentBlocks??[]],c=o[o.length-1]?.type===`thinking`&&a.length>0;c?a[a.length-1]=a[a.length-1]+n:(o.push({type:`thinking`,id:String(a.length)}),a.push(n)),Mt(s,{type:`thinking`,thinking:a[a.length-1]},c);let l=[...e];return l[t]={...i,thinkingSegments:a,contentOrder:o,contentBlocks:s},l}function Nt(e,t,n,r,i=Date.now()){if(n){let a=B(e,n);if(a>=0)return W(e,a,t,n);if(z(e))return W(e,e.length-1,t,n);let o=r?.();return o?W([...e,o],e.length,t,n):jt(e,t,n,i)}return z(e)?W(e,e.length-1,t,void 0):jt(e,t,n,i)}function Pt(e,t,n,r=Date.now()){return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,thinkingSegments:[t],contentOrder:[{type:`thinking`,id:`0`}],contentBlocks:[{type:`thinking`,thinking:t}],timestamp:r}]}function Ft(e,t,n,r,i=Date.now()){if(n){let a=B(e,n);if(a>=0)return G(e,a,t,n);if(z(e))return G(e,e.length-1,t,n);let o=r?.();return o?G([...e,o],e.length,t,n):Pt(e,t,n,i)}return z(e)?G(e,e.length-1,t,void 0):Pt(e,t,n,i)}function It(e,t=Date.now()){let n=!1,r=e.map(e=>{if(e.role!==`assistant`)return e;let r=U(e,t);return r?(n=!0,{...e,...r}):e});return n?r:e}function Lt(e,t,n=Date.now()){let r=e[e.length-1],i=Ct(t.attachments);if(r?.role!==`assistant`)return i?[...e,{id:t.messageId??crypto.randomUUID(),...t.messageId?{}:{isOptimistic:!0},role:`assistant`,timestamp:n,attachments:i}]:e;let a=U(r,n),o=r.isOptimistic===!0&&!!t.messageId;return[...e.slice(0,-1),{...r,...o?{id:t.messageId,isOptimistic:!1}:{},...i?{attachments:i}:{},...a??{}}]}function Rt(e,t){if(t!==void 0)return e.findIndex(e=>e.role===`user`&&e.clientMessageId===t);let n=-1;for(let t=e.length-1;t>=0;t--){let r=e[t];if(r&&r.role===`user`&&r.isOptimistic===!0){if(!r.clientMessageId)return t;n===-1&&(n=t)}}return n}function zt(e,t,n=Date.now()){let r=t.messageId;if(r!==void 0&&e.some(e=>e.role===`user`&&(e.id===r||e.mergedMessageIds?.includes(r))))return e;let i=Rt(e,t.clientMessageId);if(i!==-1){if(r===void 0)return e;let t=[...e];return t[i]={...t[i],id:r,isOptimistic:!1,queueStatus:void 0,queuePosition:void 0},t}return[...e,{id:r??crypto.randomUUID(),...r===void 0?{isOptimistic:!0}:{},...t.clientMessageId?{clientMessageId:t.clientMessageId}:{},role:`user`,textSegments:[t.text],contentOrder:[{type:`text`,id:`0`}],contentBlocks:[{type:`text`,text:t.text}],timestamp:n}]}function Bt(e,t=Date.now()){let n=e.length-1,r=e[n];if(!r||r.role!==`assistant`)return e;let i=U(r,t);if(!(I(r).trim().length>0||r.thinkingSegments!=null&&r.thinkingSegments.length>0||r.toolCalls!=null&&r.toolCalls.length>0||r.surfaces!=null&&r.surfaces.length>0))return e.slice(0,-1);let a=[...e];return a[n]={...r,...i??{}},a}function K(e,t){let n=[...e??[]],r=n.findIndex(e=>e.type===`tool_use`&&e.toolCall.id===t.id);return r===-1?n.push({type:`tool_use`,toolCall:t}):n[r]={type:`tool_use`,toolCall:t},n}function q(e,t,n,r){let i=H(e[t],r),a=i.toolCalls?.findIndex(e=>e.id===n.id)??-1,o=[...e];if(a!==-1){let e=[...i.toolCalls??[]],r={...e[a],...n};return e[a]=r,o[t]={...i,toolCalls:e,contentBlocks:K(i.contentBlocks,r)},o}return o[t]={...i,toolCalls:[...i.toolCalls??[],n],contentOrder:[...i.contentOrder??[],{type:`toolCall`,id:n.id}],contentBlocks:K(i.contentBlocks,n)},o}function Vt(e,t,n,r=Date.now()){if(n){let r=B(e,n);if(r>=0)return q(e,r,t,n);if(z(e))return q(e,e.length-1,t,n)}else if(z(e))return q(e,e.length-1,t);return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,toolCalls:[t],contentOrder:[{type:`toolCall`,id:t.id}],contentBlocks:[{type:`tool_use`,toolCall:t}],timestamp:r}]}function Ht(e,t){let n=-1,r=-1;if(t.toolUseId)for(let i=e.length-1;i>=0;i--){let a=e[i];if(a?.role!==`assistant`||!a.toolCalls?.length)continue;let o=a.toolCalls.findIndex(e=>e.id===t.toolUseId);if(o!==-1){n=i,r=o;break}}if(n===-1){if(n=e.findLastIndex(e=>e.role===`assistant`&&e.toolCalls&&e.toolCalls.length>0),n===-1)return e;let t=e[n];if(!t?.toolCalls)return e;r=t.toolCalls.findLastIndex(e=>f(e))}if(r===-1)return e;let i=e[n],a=i.toolCalls[r];if(!a)return e;let o=t.imageDataList===void 0?t.imageData===void 0?void 0:[t.imageData]:t.imageDataList,s=t.imageData===void 0?o?.[0]:t.imageData,c=[...i.toolCalls],l={...a,result:t.result,isError:t.isError,riskLevel:t.riskLevel,riskReason:t.riskReason,matchedTrustRuleId:t.matchedTrustRuleId,approvalMode:t.approvalMode,approvalReason:t.approvalReason,riskThreshold:t.riskThreshold,riskAllowlistOptions:t.riskAllowlistOptions,riskScopeOptions:t.riskScopeOptions,riskDirectoryScopeOptions:t.riskDirectoryScopeOptions,...s===void 0?{}:{imageData:s},...o===void 0?{}:{imageDataList:o},...t.activityMetadata===void 0?{}:{activityMetadata:t.activityMetadata},...t.errorCode===void 0?{}:{errorCode:t.errorCode},completedAt:t.completedAt??Date.now(),streamedOutput:void 0};c[r]=l;let u=[...e];return u[n]={...i,toolCalls:c,contentBlocks:K(i.contentBlocks,l)},u}var Ut=16384;function Wt(e){return e.length<=16384?e:e.slice(e.length-Ut)}function Gt(e,t){if(!t.chunk)return e;let n=-1,r=-1;if(t.toolUseId){if(t.messageId){let i=B(e,t.messageId);if(i>=0){let a=e[i].toolCalls?.findIndex(e=>e.id===t.toolUseId)??-1;a!==-1&&(n=i,r=a)}}if(n===-1)for(let i=e.length-1;i>=0;i--){let a=e[i];if(a?.role!==`assistant`||!a.toolCalls?.length)continue;let o=a.toolCalls.findIndex(e=>e.id===t.toolUseId);if(o!==-1){n=i,r=o;break}}}else{if(n=e.findLastIndex(e=>e.role===`assistant`&&e.toolCalls&&e.toolCalls.length>0),n===-1)return e;let t=e[n];if(!t?.toolCalls)return e;r=t.toolCalls.findLastIndex(e=>f(e))}if(n===-1||r===-1)return e;let i=e[n],a=i.toolCalls[r];if(!a)return e;let o={...a,streamedOutput:Wt((a.streamedOutput??``)+t.chunk)},s=[...i.toolCalls];s[r]=o;let c=[...e];return c[n]={...i,toolCalls:s,contentBlocks:K(i.contentBlocks,o)},c}function Kt(e,t,n,r=Date.now()){let i=V(e,n),a=[...e];if(i===-1)a.push({id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,surfaces:[t],contentOrder:[{type:`surface`,id:t.surfaceId}],contentBlocks:[{type:`surface`,surface:t}],timestamp:r});else{let r=H(e[i],n);if(r.contentOrder?.some(e=>e.type===`surface`&&e.id===t.surfaceId)||r.surfaces?.some(e=>e.surfaceId===t.surfaceId))return e;a[i]={...r,surfaces:[...r.surfaces??[],t],contentOrder:[...r.contentOrder??[],{type:`surface`,id:t.surfaceId}],contentBlocks:M(r.contentBlocks,t)}}return a}function qt(e,t,n){let r=V(e,n);if(r===-1)return e;let i=e[r];if(i.pendingVisualToolUseIds?.includes(t))return e;let a=[...e];return a[r]={...H(i,n),pendingVisualToolUseIds:[...i.pendingVisualToolUseIds??[],t]},a}function J(e,t={}){let n=t.toolUseId===void 0&&t.messageId!==void 0?V(e,t.messageId):void 0,r=!1,i=e.map((e,i)=>{let a=e.pendingVisualToolUseIds;if(!a||a.length===0||n!==void 0&&i!==n)return e;let o=t.toolUseId===void 0?[]:a.filter(e=>e!==t.toolUseId);if(o.length===a.length)return e;r=!0;let s={...e};return o.length===0?delete s.pendingVisualToolUseIds:s.pendingVisualToolUseIds=o,s});return r?i:e}function Jt(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r],a=i.surfaces?.findIndex(e=>e.surfaceId===t)??-1;if(a===-1)continue;let o=i.surfaces[a],s={...o.data,...n};o.data.templateData&&n.templateData&&typeof o.data.templateData==`object`&&typeof n.templateData==`object`&&(s.templateData={...o.data.templateData,...n.templateData});let c={...o,data:s},l=[...e],u=[...i.surfaces];return u[a]=c,l[r]={...i,surfaces:u,contentBlocks:M(i.contentBlocks,c)},l}return e}function Yt(e,t){for(let n=e.length-1;n>=0;n--){if(!e[n].surfaces?.some(e=>e.surfaceId===t))continue;let r=[...e];return r[n]={...e[n],surfaces:e[n].surfaces?.filter(e=>e.surfaceId!==t),contentOrder:e[n].contentOrder?.filter(e=>!(e.type===`surface`&&e.id===t)),contentBlocks:Ye(e[n].contentBlocks,t)},r}return e}function Xt(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r].surfaces?.find(e=>e.surfaceId===t);if(!i)continue;let a={...i,completed:!0,completionSummary:n},o=[...e];return o[r]={...e[r],surfaces:e[r].surfaces?.map(e=>e.surfaceId===t?a:e),contentBlocks:M(e[r].contentBlocks,a)},o}return e}var Zt=[`choice`,`oauth_connect`,`form`,`confirmation`,`file_upload`,`card`,`list`,`table`,`browser_view`,`task_preferences`];function Qt(e){return e==null||e.hasPendingConfirmation||e.hasUncompletedVisibleSurface}function $t(e,t){let n=!1,r=e.map(e=>{let r=re(e,e=>e.pendingConfirmation?.requestId===t?{...e,pendingConfirmation:void 0}:e);return r!==e&&(n=!0),r});return n?r:e}function en(e){let t=!1,n=e.map(e=>{let n=re(e,e=>e.pendingConfirmation?{...e,pendingConfirmation:void 0}:e);return n!==e&&(t=!0),n});return t?n:e}function tn(e,t){let n=new Set;for(let e of t)if(e.surfaces)for(let t of e.surfaces)ne(t)&&n.add(t.surfaceId);return n.size===0?{updatedMessages:e,dismissedIds:n}:{updatedMessages:e.map(e=>Ze(e,e=>!n.has(e.surfaceId))),dismissedIds:n}}function nn(e,t,n,r,i){for(let a=e.length-1;a>=0;a--){let o=e[a].surfaces?.find(e=>e.surfaceId===t);if(!o)continue;if(!Zt.includes(o.surfaceType)||o.completed)return e;let s=o.actions?.find(e=>e.id===n),c=n===`cancel`||n===`dismiss`,l=[...e];return l[a]=Xe(e[a],e=>e.surfaceId===t?{...e,completed:!0,completionSummary:c?`Cancelled`:r??s?.label??void 0,...i?.tone?{completionTone:i.tone}:{}}:e),l}return e}function rn(e,t,n){return e&&te[e]||t||n}function Y(e){return typeof e==`string`?e:void 0}function X(e){return typeof e==`boolean`?e:void 0}function an(e){return Array.isArray(e)?e:void 0}function on(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function sn(e){return{requestId:typeof e.requestId==`string`?e.requestId:``,label:Y(e.label),service:Y(e.service),field:Y(e.field),description:Y(e.description),placeholder:Y(e.placeholder),allowOneTimeSend:X(e.allowOneTimeSend),allowedTools:an(e.allowedTools),allowedDomains:an(e.allowedDomains),purpose:Y(e.purpose)}}function cn(e){let t={requestId:typeof e.requestId==`string`?e.requestId:``,title:Y(e.title),description:Y(e.description),toolName:Y(e.toolName),riskLevel:Y(e.riskLevel),riskReason:Y(e.riskReason),allowlistOptions:Z(e.allowlistOptions),scopeOptions:Z(e.scopeOptions),directoryScopeOptions:Z(e.directoryScopeOptions),persistentDecisionsAllowed:X(e.persistentDecisionsAllowed),input:on(e.input),toolUseId:Y(e.toolUseId)};return{confData:t,state:{...t,confirmLabel:Y(e.confirmLabel),denyLabel:Y(e.denyLabel)}}}function ln(){return`turn-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function un(e,t){let n=Date.parse(e);return Number.isFinite(n)?n:typeof t==`number`?t:0}function dn(e,t,n){switch(t.type){case`assistant_text_delta`:return Nt(e,t.text,t.messageId,void 0,n);case`assistant_thinking_delta`:return Ft(e,t.thinking,t.messageId,void 0,n);case`message_complete`:return J(Lt(e,t,n));case`user_message_echo`:return zt(e,{text:t.text,messageId:t.messageId,clientMessageId:t.clientMessageId},n);case`message_dequeued`:return Ot(e,t.requestId);case`message_requeued`:return kt(e,t.requestId,t.position);case`message_queued_deleted`:return At(e,t.requestId);case`assistant_activity_state`:return t.phase===`idle`?J(It(e,n)):e;case`conversation_error`:return J(Bt(e,n));case`tool_use_preview_start`:return Vt(e,{id:t.toolUseId,name:t.toolName,input:{},previewStartedAt:typeof t.previewStartedAt==`number`?t.previewStartedAt:n},t.messageId,n);case`tool_use_start`:return Vt(e,{id:t.toolUseId??`tool-${n}`,name:t.toolName,input:t.input,startedAt:`startedAt`in t&&typeof t.startedAt==`number`?t.startedAt:n,...`previewStartedAt`in t&&typeof t.previewStartedAt==`number`?{previewStartedAt:t.previewStartedAt}:{}},t.messageId,n);case`tool_result`:return Ht(J(e,{toolUseId:t.toolUseId}),{toolUseId:t.toolUseId,result:t.result,isError:t.isError,riskLevel:t.riskLevel,riskReason:t.riskReason,matchedTrustRuleId:t.matchedTrustRuleId,approvalMode:t.approvalMode,approvalReason:t.approvalReason,riskThreshold:t.riskThreshold,riskAllowlistOptions:t.riskAllowlistOptions,riskScopeOptions:t.riskScopeOptions,riskDirectoryScopeOptions:t.riskDirectoryScopeOptions,imageData:t.imageData,imageDataList:t.imageDataList,activityMetadata:t.activityMetadata,errorCode:t.errorCode,completedAt:`completedAt`in t&&typeof t.completedAt==`number`?t.completedAt:n});case`tool_output_chunk`:return t.chunk?Gt(e,{chunk:t.chunk,toolUseId:t.toolUseId,messageId:t.messageId}):e;case`ui_surface_pending`:return qt(e,t.toolUseId,t.messageId);case`ui_surface_show`:{let r={surfaceId:t.surfaceId,surfaceType:t.surfaceType,title:t.title,data:t.data,actions:t.actions,display:t.display};return r.display=ee(r),Kt(r.surfaceType===`visual`?J(e,t.toolCallId?{toolUseId:t.toolCallId}:{messageId:t.messageId}):e,r,t.messageId,n)}case`ui_surface_update`:return Jt(e,t.surfaceId,t.data);case`ui_surface_dismiss`:return Yt(e,t.surfaceId);case`ui_surface_complete`:return Xt(e,t.surfaceId,t.summary);case`confirmation_request`:return p(e,{requestId:t.requestId,toolName:t.toolName,riskLevel:t.riskLevel,riskReason:t.riskReason,allowlistOptions:t.allowlistOptions,scopeOptions:t.scopeOptions,directoryScopeOptions:t.directoryScopeOptions,persistentDecisionsAllowed:t.persistentDecisionsAllowed,input:t.input,toolUseId:t.toolUseId}).updatedMessages;case`interaction_resolved`:return t.kind===`confirmation`||t.kind===`acp_confirmation`?$t(e,t.requestId):e;default:return e}}function fn(e,t,n){if(e!==void 0){if(typeof n!=`number`)return e;switch(t.type){case`assistant_turn_start`:case`assistant_text_delta`:case`assistant_thinking_delta`:return!0;case`assistant_activity_state`:return t.phase!==`idle`;case`message_complete`:return!1;default:return e}}}function pn(e,t){let{seq:n}=t;if(typeof n==`number`&&typeof e.seq==`number`&&n<=e.seq)return e;let r=un(t.emittedAt,n),i=dn(e.messages,t.message,r),a=typeof n==`number`?Math.max(e.seq??-1,n):e.seq??null,o=fn(e.processing,t.message,n);return{...e,messages:i,seq:a,processing:o}}function mn(e,t){return t.reduce(pn,e)}function hn(e,t){return t===null?e:mn(e,t)}var gn={hasMore:!1,oldestTimestamp:null,isLoadingOlder:!1};function _n(){return{snapshot:null,optimisticSends:[],error:null,notice:null,isLoadingHistory:!0,transcriptPagination:{...gn},contextWindowUsage:null,ephemeralMetaResults:[],compactionCircuitOpenUntil:null,dismissedSurfaceIds:new Set,streamingMessageIds:new Set,pendingQueuedMessageIds:[],requestIdToMessageId:new Map,pendingLocalDeletions:new Set,confirmationToolCallMap:new Map,expandedToolCallIds:new Set,expandedCardIds:new Map,contextWindowUsageByConversation:new Map,previousConversationId:null,previousAssistantId:null,draftConversationIdResolution:!1}}function Q(e,t){return typeof t==`function`?t(e):t}function vn(e,t){if(e.length===0)return e;let n=new Map;for(let e of t)for(let t of L(e))n.has(t)||n.set(t,e);let r=e.filter(e=>{let t;for(let r of L(e))if(t=n.get(r),t)break;return t?!!e.attachments?.length&&!t.attachments?.length:!0});return r.length===e.length?e:r}var $=o(a()((e,t)=>({..._n(),seedSnapshot:(n,r)=>{let i=t().snapshot;if(r.seq==null&&i!==null&&typeof i.seq==`number`){c(`history_seed_skipped_anchorless`,{conversationId:n,liveSeq:i.seq});return}let a=he(n,r.seq??null);if(a===null&&i!==null&&typeof i.seq==`number`&&typeof r.seq==`number`&&r.seq<i.seq){c(`history_seed_skipped_stale_anchor`,{conversationId:n,liveSeq:i.seq,fetchedSeq:r.seq});return}let o=hn(r,a);e(e=>({snapshot:o,optimisticSends:vn(e.optimisticSends,o.messages)}))},applyEnvelopeToSnapshot:t=>e(e=>e.snapshot?{snapshot:pn(e.snapshot,t)}:{}),addOptimisticSend:t=>e(e=>({optimisticSends:[...e.optimisticSends,t]})),setOptimisticSends:t=>e(e=>({optimisticSends:Q(e.optimisticSends,t)})),patchSnapshotMessages:t=>e(e=>e.snapshot?{snapshot:{...e.snapshot,messages:t(e.snapshot.messages)}}:{}),setError:t=>e(e=>({error:Q(e.error,t)})),setNotice:t=>e(e=>({notice:Q(e.notice,t)})),setIsLoadingHistory:t=>e({isLoadingHistory:t}),setTranscriptPagination:t=>e(e=>({transcriptPagination:Q(e.transcriptPagination,t)})),setContextWindowUsage:t=>e(e=>({contextWindowUsage:Q(e.contextWindowUsage,t)})),setCompactionCircuitOpenUntil:t=>e(e=>({compactionCircuitOpenUntil:Q(e.compactionCircuitOpenUntil,t)})),switchToConversation:({assistantId:n,activeConversationId:r})=>{let i=t();if(i.draftConversationIdResolution){e({draftConversationIdResolution:!1});return}let a=i.previousConversationId;if(a&&a!==r&&a){let e=F.getState();(e.pendingSecret||e.pendingConfirmation)&&l.getState().addAttentionConversationId(a)}let o=i.previousAssistantId!==null&&i.previousAssistantId!==n,s=o||i.previousAssistantId===null;c(`conversation_switch_reset`,{assistantId:n,conversationId:r,outgoingConversationId:a??null}),j.getState().handleConversationSwitch({previousKey:a??null,nextKey:r}),ye.getState().resetTurn(),F.getState().resetAll(),o?j.getState().fullReset():j.getState().resetAttachments();let u=s?ot(n):i.contextWindowUsageByConversation;e({snapshot:null,optimisticSends:[],ephemeralMetaResults:[],error:N(i.error)?i.error:null,notice:null,isLoadingHistory:!0,transcriptPagination:{...gn},contextWindowUsage:u.get(r)??null,compactionCircuitOpenUntil:null,dismissedSurfaceIds:et(n,r),streamingMessageIds:new Set,pendingQueuedMessageIds:[],requestIdToMessageId:new Map,pendingLocalDeletions:new Set,confirmationToolCallMap:new Map,expandedToolCallIds:new Set,expandedCardIds:new Map,contextWindowUsageByConversation:u,previousConversationId:r,previousAssistantId:n,draftConversationIdResolution:!1})},markDraftResolution:()=>e({draftConversationIdResolution:!0}),setConfirmationToolCall:(t,n)=>e(e=>{let r=new Map(e.confirmationToolCallMap);return r.set(t,n),{confirmationToolCallMap:r}}),deleteConfirmationToolCall:t=>e(e=>{let n=new Map(e.confirmationToolCallMap);return n.delete(t),{confirmationToolCallMap:n}}),clearConfirmationToolCallMap:()=>e({confirmationToolCallMap:new Map}),addDismissedSurfaceId:t=>e(e=>{let n=new Set(e.dismissedSurfaceIds);return n.add(t),{dismissedSurfaceIds:n}}),addDismissedSurfaceIds:t=>e(e=>{let n=new Set(e.dismissedSurfaceIds);for(let e of t)n.add(e);return{dismissedSurfaceIds:n}}),batchUpdateStreamingMessageIds:(t,n)=>e(e=>{let r=new Set(e.streamingMessageIds);for(let e of t)r.add(e);for(let e of n)r.delete(e);return{streamingMessageIds:r}}),pushPendingQueuedMessageId:t=>e(e=>({pendingQueuedMessageIds:[...e.pendingQueuedMessageIds,t]})),shiftPendingQueuedMessageId:()=>{let n=t().pendingQueuedMessageIds;if(n.length===0)return;let[r,...i]=n;return e({pendingQueuedMessageIds:i}),r},takePendingQueuedMessageId:n=>{let r=t().pendingQueuedMessageIds;if(r.includes(n))return e({pendingQueuedMessageIds:r.filter(e=>e!==n)}),n},setRequestIdMapping:(t,n)=>e(e=>{let r=new Map(e.requestIdToMessageId);return r.set(t,n),{requestIdToMessageId:r}}),popRequestIdMapping:n=>{let r=t().requestIdToMessageId,i=r.get(n);if(i!==void 0){let t=new Map(r);t.delete(n),e({requestIdToMessageId:t})}return i},addPendingLocalDeletion:t=>e(e=>{let n=new Set(e.pendingLocalDeletions);return n.add(t),{pendingLocalDeletions:n}}),consumePendingLocalDeletion:n=>{let r=t().pendingLocalDeletions;if(!r.has(n))return!1;let i=new Set(r);return i.delete(n),e({pendingLocalDeletions:i}),!0},setExpandedToolCallId:(t,n)=>e(e=>{let r=new Set(e.expandedToolCallIds);return n?r.add(t):r.delete(t),{expandedToolCallIds:r}}),setExpandedCardId:(t,n)=>e(e=>{let r=new Map(e.expandedCardIds);return r.set(t,n),{expandedCardIds:r}}),setContextWindowUsageForConversation:(t,n)=>e(e=>{let r=new Map(e.contextWindowUsageByConversation);return r.set(t,n),{contextWindowUsageByConversation:r}}),addEphemeralMetaResult:t=>e(e=>({ephemeralMetaResults:[...e.ephemeralMetaResults,t]})),clearEphemeralMetaResults:()=>e(e=>e.ephemeralMetaResults.length===0?e:{ephemeralMetaResults:[]})})));function yn(e,t){if(t.length===0)return e;let n=new Map;for(let e of t)for(let t of L(e))n.has(t)||n.set(t,e);let r=[],i=new Set;for(let t of e){let e;for(let r of L(t)){let t=n.get(r);if(t){e=t;break}}if(e){i.has(e)||(r.push(e),i.add(e));continue}r.push(t)}for(let e of t)i.has(e)||r.push(e);return r}function bn(){let e=$.use.snapshot()?.messages,t=$.use.optimisticSends(),n=$.use.dismissedSurfaceIds();return(0,ie.useMemo)(()=>yn(rt(e,n),t),[e,t,n])}export{N as A,ve as B,I as C,xt as D,mt as E,Ke as F,fe as G,ge as H,Ge as I,le as J,ce as K,We as L,tt as M,Xe as N,yt as O,Je as P,j as R,R as S,vt as T,pe as U,ye as V,me as W,se as Y,At as _,en as a,wt as b,ln as c,rn as d,Qt as f,kt as g,Tt as h,$t as i,st as j,bt as k,cn as l,Dt as m,yn as n,nn as o,Ot as p,ue as q,$ as r,tn as s,bn as t,sn as u,Et as v,F as w,L as x,z as y,v as z};
|