1import{r as e,v as je,b as Le,j as x}from"./context-DgzmvlGY.js";import{b2 as Ve,a as xe,U as Qe,aU as $e,K as we}from"./localStorage-CKVD-vxv.js";import{h as Oe,u as L,i as Ge,$ as Fe}from"./rootRouter-CgRnhq_1.js";import{a0 as Ye}from"./Toaster-Ds8HB-FV.js";import{S as qe}from"./SkuUpsellModal-J1ZjPVfu.js";import{u as Je,c as Ke}from"./index-fJ6D3SeM.js";import{e as ze,d as We}from"./api-CTJPZXWD.js";import{u as Xe}from"./useTranslation-CeWYOoBb.js";import{u as Ze}from"./useIsAIStaff-CVpZJDeS.js";import{b as et,A as tt}from"./useAssistantUIRuntime-CDKUaY79.js";import{r as rt}from"./index-Dc5ATiVd.js";import{b as nt}from"./rootStore-CdbQp9Aa.js";import{a as st,u as ot,c as it,C as at,b as ct}from"./ChatContext-CEN5mrdk.js";import{u as ut}from"./index-5B-oXknQ.js";import{c as Ie,h as lt,I as pt}from"./index-C2SC-8Lc.js";import{u as V}from"./useAuiState-Cre5DF23.js";import"./lazyWithPreload-BOpUWxXI.js";import"./index-DznIGqOw.js";import"./styles-DhXG5ubm.js";import"./featuredPacksSnapshot-Dk1754E5.js";import"./date-fns-GIIpmwYI.js";import"./date-fns-locales-mMrgue2w.js";import"./index-SfzjO6KW.js";import"./index-BjXvxcyq.js";import"./module-CcmrFtJT.js";import"./types-TbSHmNnz.js";import"./FiLock-CHo-PouF.js";import"./FiMap-DxsmNRpj.js";import"./index-BSIN8x_7.js";import"./index-ClyJkHh0.js";import"./index-BR9tP0jQ.js";import"./style-BDbS1nmg.js";import"./index-4Z61DtRa.js";import"./api-bkiRSSpB.js";import"./i18n-SwdAmOzt.js";import"./index-D3dBnQ9F.js";import"./useRefCode-BIfm_2QG.js";import"./sessionStorage-BdPkC2T_.js";import"./useCreateServer-DUV5WdrZ.js";import"./api-4NTBhAn_.js";import"./index-c2Q21VOz.js";import"./yup-7tEE-QHv.js";import"./index.esm-DRMUCrOe.js";import"./useVoucherCheck-Cg9TDsSF.js";import"./IoGift-B8bj0QPq.js";import"./FiArrowUp-HDXEnyv8.js";import"./useAxisDescriptors-DH2DS2GL.js";import"./FiMinus-Ck2_1HLU.js";import"./FiPlus-Y3OZx4Na.js";import"./errors-Cel1iGLk.js";import"./internal-DRGqbKPQ.js";import"./index-x0sUUeL9.js";import"./index-kzUsJTA2.js";import"./syntax-aOFPmIad.js";import"./index-CHDaba4r.js";import"./useCountdown-B6t01gBA.js";import"./index-BJUCQs9f.js";import"./MdWarning-AdBHUAY3.js";import"./AiOutlineLoading3Quarters-CJGkDH2C.js";import"./index-CRCJdzEp.js";import"./FiArrowUpRight-Dk5weO5Z.js";import"./IoIosCheckmarkCircleOutline-CQ0zrFhO.js";import"./bytes-BH6c30tR.js";import"./index-BxbCXzx7.js";import"./style-C5ddl-LX.js";import"./style-B4qyGtdc.js";import"./style-CUVnZJhP.js";import"./index-DLUuyFG5.js";import"./api-Cj9R-huW.js";import"./redux-C5BbtNhO.js";import"./marketplaceSlice-DQHEUYy1.js";import"./fileTreeSlice-w5Js-q2A.js";import"./serverEventsSlice-DDdgN0wj.js";import"./scrollPositionsSlice-ChRtHr9e.js";import"./index-D6PponyS.js";import"./IoCopyOutline-4SSGXSz6.js";import"./IoMdArrowDropdown-0y2haMQ3.js";import"./MdHelpOutline-Cg9F-0x4.js";import"./getProductStrategy-c2jk340B.js";import"./dataSize-DMPPRRei.js";import"./index-WaEJEewA.js";import"./index-DSKuN8TB.js";import"./CsrvFS-DDJ2-7tq.js";import"./index-BdztxnbT.js";import"./http-CdEcQWoX.js";import"./StatsStore-B28ly8M5.js";import"./SidebarContext-DwBUkEy3.js";import"./index-D41GsoIb.js";import"./useWindowSize-OVQg89wt.js";import"./VscChromeClose-CnjzMGRL.js";import"./VscHistory-D7x4jMuE.js";import"./conversationLink-BZ0BsWxU.js";import"./FiSend-DOQ4wbKs.js";import"./style-DADxd8Xc.js";import"./IoLockClosed-4RU2_q4s.js";import"./useCurrentEngine-CVAyWY-u.js";import"./types-DEfRWUmG.js";import"./usePackages-DvoKQ_hU.js";import"./index-B1ukNEQM.js";import"./index-ByC8Fmms.js";import"./style-CfG0Cc2p.js";import"./index-B8-_oKPd.js";import"./index-CuSfpTXE.js";import"./usePlanGateUpsell-BjZGxeDK.js";import"./planGate-Wvd1Yopn.js";import"./useEventDetails-C-52uvwA.js";import"./index-BjHEBXgH.js";import"./index-DkSjHmY2.js";import"./useEntitlementAwareQuota-Cyw3_n4f.js";import"./index-CdntiFSf.js";import"./FaCheck-CrraSyVr.js";import"./FaTrash-D15GHxCQ.js";import"./VscFile-Bm-bYoge.js";import"./index-Cm5stjUr.js";import"./index-DJSKswQH.js";import"./useReleases-DMbZdwYL.js";import"./useInstalledAppsAndPackages-C9H-vxAl.js";import"./FaArrowRight-DOzocIty.js";import"./extractPackageNameFromSelector-tCpCKxdd.js";
1import"./FaExternalLinkAlt-Bg6XMB73.js";import"./IoChevronDown-CnNSRbsz.js";import"./index-DzgmlPWf.js";import"./useRenewFreeService-BDywygHX.js";import"./useExpiryState-BgwejIme.js";import"./useFreeRenewAvailableFrom-CZ1_sM64.js";import"./freeRenewal-tw4jD3RI.js";import"./index-C19lhDJw.js";import"./CgDebug-Bi29tRko.js";import"./index-BBcBY6vO.js";import"./zendesk_avatar-Cvfia01h.js";import"./getServerIdentificator-BYz4GsTe.js";import"./index-BcGEIFCu.js";import"./index-e3mC8zWk.js";import"./index-DQz7yJjy.js";import"./FaMap-aUcFhDxU.js";import"./MdInfoOutline-DUDSFddP.js";import"./index-BEp5-6su.js";import"./index-Cvntg64-.js";import"./formatEventLogCode-Cjpl0nvq.js";import"./MdErrorOutline-C5QNQmBX.js";import"./style-DnC7eYRh.js";import"./FaLock-DgvHzYuz.js";import"./GoPackage-CFR9UIt9.js";import"./index-C_W9319J.js";import"./IoPlayOutline-BXXRgQKY.js";import"./index-p0OTKVIY.js";import"./index-BAJwSm50.js";import"./style-kNObpfJq.js";import"./useServerProcesses-D4Z2goEY.js";import"./PanelRouteMetaContext-DDUjwYPv.js";import"./index-DV1ufKYF.js";import"./MdModeEdit-CuVZ5W5j.js";import"./IoIosNotifications-CNqbU8-r.js";import"./index-Cm6i_vez.js";import"./useNotificationContent-CyM393nT.js";import"./FiExternalLink-DtIgDyuR.js";import"./index-DT11pClQ.js";import"./useZendeskRedirect-BP5TGxdf.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"craftserve-frontend@e8b9dd1"};var r=new t.Error().stack;r&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="81bf4f21-9016-4188-a43e-53535d2727cd",t._sentryDebugIdIdentifier="sentry-dbid-81bf4f21-9016-4188-a43e-53535d2727cd")}catch{}})();function dt(t){const{data:r,isLoading:i,error:c}=ze(t??"",{skip:!t,refetchOnMountOrArgChange:!0}),[a,u]=e.useState(null);e.useEffect(()=>{u(null)},[t]);const n=r?{...r,...a}:void 0,p=e.useMemo(()=>(n==null?void 0:n.available_scopes)??[],[n==null?void 0:n.available_scopes]),g=(n==null?void 0:n.max_model_scope)??"assistant:basic",m=e.useCallback(l=>{l.daily_remaining_usd===void 0&&l.period_remaining_usd===void 0||u(h=>({...h,...l.daily_remaining_usd!==void 0&&{daily_remaining_usd:l.daily_remaining_usd},...l.period_remaining_usd!==void 0&&{period_remaining_usd:l.period_remaining_usd}}))},[]);return{budget:n,availableScopes:p,maxScope:g,isLoading:i,error:!!c,updateFromUsageEvent:m}}const mt=()=>{const t=je("/s/:serverIdentity/*");return(t==null?void 0:t.params.serverIdentity)??null},W="ai-chat:session-restore";function z(){try{localStorage.removeItem(W)}catch{}}function Ue(t){try{localStorage.setItem(W,JSON.stringify(t))}catch{}}function X(){let t;try{t=localStorage.getItem(W)}catch{return null}if(!t)return null;try{const r=JSON.parse(t);return typeof(r==null?void 0:r.accountId)!="string"||typeof r.closedByUser!="boolean"||!(r.conversationId===null||typeof r.conversationId=="string")?(z(),null):{accountId:r.accountId,closedByUser:r.closedByUser,conversationId:r.conversationId}}catch{return z(),null}}function ft(t){if(!t)return null;const r=X();return r?r.accountId!==t?(z(),null):r:null}function Ee(t,r){if(!t)return;const i=X();Ue({accountId:t,closedByUser:r,conversationId:(i==null?void 0:i.accountId)===t?i.conversationId:null})}function Te(t,r){if(!t)return;const i=X();Ue({accountId:t,closedByUser:(i==null?void 0:i.accountId)===t?i.closedByUser:!1,conversationId:r})}function gt({accountId:t,resolvedServerId:r,isPanelReady:i,restoreAttemptedRef:c,openSidebar:a,switchConversation:u}){const[n,p]=Le(),g=Oe(),{t:m}=Xe(),l=n.get("conversation"),h=e.useRef(null),f=e.useCallback(()=>{p(C=>{const _=new URLSearchParams(C);return _.delete("conversation"),_},{replace:!0,preventScrollReset:!0})},[p]);return e.useEffect(()=>{if(!l||!t||!r||!i||h.current===l)return;h.current=l;let C=!1;return(async()=>{let v=!1;try{const I=await g(We.endpoints.getConversation.initiate({serverId:r,conversationId:l},{forceRefetch:!0,subscribe:!1})).unwrap();v=Array.isArray(I)&&I.length>0}catch{v=!1}if(!C){if(f(),!v){Ve.error(m("ai.deep_link_not_found"));return}c.current=!0,a(),Te(t,l),await u(l)}})().catch(()=>{}),()=>{C=!0}},[l,t,r,i,g,c,a,u,f,m]),{pending:!!l}}function vt(t,r,i){const[c,a]=e.useState(()=>{if(t){const n=localStorage.getItem(`ai-chat:scope:${t}`);if(n&&i.includes(n))return n}return r});e.useEffect(()=>{if(!t)return;const n=localStorage.getItem(`ai-chat:scope:${t}`);
1n&&i.includes(n)?a(n):a(r)},[t,r,i]),e.useEffect(()=>{!t||i.length===0||(c===r?localStorage.removeItem(`ai-chat:scope:${t}`):localStorage.setItem(`ai-chat:scope:${t}`,c))},[c,t,r,i]);const u=e.useCallback(n=>{a(n)},[]);return{selectedScope:c,setSelectedScope:u}}rt([{id:"assistant:basic",label:t=>t("ai.scope_basic")},{id:"assistant:pro",label:t=>t("ai.scope_pro")},{id:"assistant:ultra",label:t=>t("ai.scope_ultra")}]);function Me(t){const{isOpen:r,isRunning:i,pendingCount:c,tokens:a,substanceMin:u,enabled:n,hasHint:p,fired:g,dismissed:m}=t;return!n||p||g||m||a==null||a<u?"noop":!r||i||c>0?"pause":"arm"}const ht=({children:t})=>{const{trackEvent:r}=xe(),{isOpen:i}=st(),{currentConversationId:c,contextInputTokens:a}=ot(),u=ut(),n=V(s=>s.thread.isRunning),p=V(s=>s.composer.isEmpty),g=V(s=>Ie(s.thread.messages,"confirm")+Ie(s.thread.messages,"questions")),m=V(s=>lt(s.thread.messages)),[l,h]=e.useState(!1),f=e.useRef(null),C=e.useRef(!1),_=e.useRef(!1),v=e.useRef(n),I=e.useRef(p),k=e.useRef({isOpen:i,isRunning:n,pendingCount:g,tokens:a,substanceMin:u.compact_growth_min_tokens,enabled:u.idle_nudge_enabled,hasHint:m,conversationId:c,timeoutMs:u.idle_nudge_timeout_ms});k.current={isOpen:i,isRunning:n,pendingCount:g,tokens:a,substanceMin:u.compact_growth_min_tokens,enabled:u.idle_nudge_enabled,hasHint:m,conversationId:c,timeoutMs:u.idle_nudge_timeout_ms};const d=e.useCallback(()=>{f.current!==null&&(window.clearTimeout(f.current),f.current=null)},[]),T=e.useCallback(()=>{f.current=null;const s=k.current;Me({isOpen:s.isOpen,isRunning:s.isRunning,pendingCount:s.pendingCount,tokens:s.tokens,substanceMin:s.substanceMin,enabled:s.enabled,hasHint:s.hasHint,fired:C.current,dismissed:_.current})==="arm"&&(C.current=!0,h(!0),r("ai_assistant","idle_nudge","view",{conversation_id:s.conversationId,context_input_tokens:s.tokens,timeout_ms:s.timeoutMs}))},[r]),S=e.useCallback(()=>{C.current=!1,_.current=!1,h(!1),d()},[d]),b=e.useCallback(()=>{const s=k.current;if(Me({isOpen:s.isOpen,isRunning:s.isRunning,pendingCount:s.pendingCount,tokens:s.tokens,substanceMin:s.substanceMin,enabled:s.enabled,hasHint:s.hasHint,fired:C.current,dismissed:_.current})==="arm"){f.current===null&&(f.current=window.setTimeout(T,s.timeoutMs));return}d()},[d,T]);e.useEffect(()=>{const s=!v.current&&n,E=I.current&&!p;v.current=n,I.current=p,(s||E)&&S(),b()},[n,p,S,b]),e.useEffect(()=>{S(),b()},[c,S,b]),e.useEffect(()=>{b()},[i,g,m,a,u,b]),Je("thread.runEnd",()=>{S(),b()}),e.useEffect(()=>d,[d]);const B=e.useCallback(()=>{const s=k.current;r("ai_assistant","idle_nudge","click",{conversation_id:s.conversationId}),d()},[d,r]),O=e.useCallback(()=>{const s=k.current;r("ai_assistant","idle_nudge","close",{conversation_id:s.conversationId}),_.current=!0,h(!1),d()},[d,r]),Q=e.useMemo(()=>({showNudge:l,acceptNudge:B,dismissNudge:O}),[l,B,O]);return x.jsx(pt.Provider,{value:Q,children:t})},gs=({children:t})=>{var Se,ke,ye,Re;const{user:r}=e.useContext(Qe),i=Oe(),c=mt(),a=(r==null?void 0:r.id)??null,u=Ze(),n=L(o=>o.serverIdentity.serverId)??null,p=$e(n??we),g=Ye(n??we),m=p.isSuccess&&g.isSuccess,l=Ge((Se=p.data)==null?void 0:Se.engine)||null,{budget:h,availableScopes:f,maxScope:C,updateFromUsageEvent:_}=dt(n),v=((Re=(ye=(ke=p.data)==null?void 0:ke.entitlements)==null?void 0:ye.ai)==null?void 0:Re.allowed)===!1,[I,k]=e.useState(!1),d=e.useCallback(()=>k(!0),[]),{upgrade:T}=Fe(v?n??void 0:void 0,"ai"),{selectedScope:S,setSelectedScope:b}=vt(a,C,f),[B,O]=e.useState(null),Q=e.useCallback(o=>{_(o),typeof o.context_input_tokens=="number"&&O(o.context_input_tokens)},[_]),s=e.useCallback(o=>{O(o)},[]),E=L(o=>o.aiConfig.devMode),[P,$]=e.useState(null),Z=E&&P!=null?P:B,G=L(o=>o.aiConfig.modelOverride),Ae=L(o=>o.aiConfig.userSelfDescription),ee=e.useCallback(o=>{i(nt(o))},[i]),[y,A]=e.useState(!1),[N,te]=e.useState("chat"),H=e.useRef(y);H.current=y;const F=e.useRef(N);F.current=N;const Y=e.useRef(a);Y.current=a;const[re]=e.useState(Ke),{trackEvent:U}=xe(),ne=e.useCallback(()=>{H.current=!1,Ee(Y.current,!0),A(!1),U("ai_assistant","sidebar","toggle",{next_state:"closed",view:F.current})},[U]),se=e.useCallback(()=>{const o=!H.current;H.current=o,Ee(Y.current,!o),A(o),U("ai_assistant","sidebar","toggle",{next_state:o?"open":"closed",view:F.current})},[U]),{runtime:D,toolsRegistry:Be,currentConversationId:R,createNewConversation:oe,switchConversation:j,deleteConversation:ie,reloadConversations:ae,sendMessage:ce,resumeTurn:ue,stopGeneration:le,decisionDispatch:pe,openAiTools:de,toolMeta:me,deniedToolCallIds:fe}=et({accountId:a,serverIdentity:c,serverId:n,serverEngine:l,selectedScope:S,modelOverride:G,userSelfDescription:Ae,onUsageEvent:Q,onHistoryLoaded:s}),[ge,Pe]=e.useState(!1);e.useEffect(()=>{const o=()=>Pe(D.thread.composer.getState().attachments.length>0);return o(),D.thread.composer.subscribe(o)},[D]);const w=e.useRef(null),ve=e.useRef(null),he=e.useCallback(()=>{const o=Symbol("user-new-conversation");
1w.current=o,oe()},[oe]),q=e.useCallback(async o=>{w.current=null,await j(o)},[j]),Ce=e.useCallback(async o=>{w.current=null,await ie(o)},[ie]);e.useEffect(()=>{O(null),$(null)},[R]),e.useEffect(()=>{E||$(null)},[E]),e.useEffect(()=>{R&&w.current!==null&&ve.current!==w.current&&(ve.current=w.current,w.current=null,U("ai_assistant","conversation","new",{conversation_id:R}))},[R,U]),e.useEffect(()=>{c||A(!1)},[c]),e.useEffect(()=>{y&&te("chat")},[y]);const J=e.useRef(!1),K=e.useCallback(()=>A(!0),[]),{pending:_e}=gt({accountId:a,resolvedServerId:n,isPanelReady:m,restoreAttemptedRef:J,openSidebar:K,switchConversation:q});e.useEffect(()=>{if(J.current||_e||!a||!m||(J.current=!0,typeof window<"u"&&window.matchMedia("(max-width: 992px)").matches))return;const M=ft(a);M!=null&&M.closedByUser||(A(!0),M!=null&&M.conversationId&&w.current===null&&j(M.conversationId))},[a,m,_e,j]),e.useEffect(()=>{!y||!a||Te(a,R)},[y,a,R]);const Ne=e.useMemo(()=>({isOpen:y,openSidebar:K,closeSidebar:ne,toggleSidebar:se,view:N,setView:te}),[y,K,ne,se,N]),be=e.useCallback(async o=>{if(v){d();return}await ce(o)},[v,d,ce]),He=e.useMemo(()=>({currentConversationId:R,createNewConversation:he,switchConversation:q,deleteConversation:Ce,reloadConversations:ae,openAiTools:de,contextInputTokens:Z,devContextOverride:P,setDevContextOverride:$,serverIdentity:c,resolvedServerId:n,isStaff:u,sendMessage:be,resumeTurn:ue,aiBlocked:v,requestAiUpgrade:d,hasComposerAttachments:ge,selectedScope:S,setSelectedScope:b,availableScopes:f,budget:h,modelOverride:G,setModelOverride:ee,autoRetryBudget:re}),[R,he,q,Ce,ae,de,Z,P,c,n,u,be,ue,v,d,ge,S,b,f,h,G,ee,re]),De=e.useMemo(()=>({stopGeneration:le,dispatch:pe,toolMeta:me,deniedToolCallIds:fe}),[le,pe,me,fe]);return x.jsx(tt,{runtime:D,tools:Be,children:x.jsx(it.Provider,{value:Ne,children:x.jsx(at.Provider,{value:He,children:x.jsx(ct.Provider,{value:De,children:x.jsxs(ht,{children:[t,n&&x.jsx(qe,{isOpen:I,onClose:()=>k(!1),serviceId:n,intent:T?{kind:"sku",sku:T.targetSku,topic:"ai"}:{kind:"plan",plan:"AMETHYST",topic:"ai"}})]})})})})})};export{gs as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.