1import{r as s,e as Mt,u as At,j as x}from"./react-router-vendor-C1eXCCJq.js";import{ft as It,fu as vt,fv as Et,fw as dt,ay as Y,fx as Tt,fy as Nt,fz as gt,fA as ft,fB as ht,a as st,fC as Ot,fD as Pt,cu as K,bN as H,fE as Z,eY as b,fF as o,y as jt,fG as kt,bg as rt,fH as Rt,fI as xt,e as qt,by as Ft,bY as Dt,fJ as nt,N as Ut,d as Lt}from"./index-DGeutESm.js";import{C as Yt}from"./upgrade-plan-alert-zVi5xTAs.js";import{C as Bt,a as Wt,b as Kt}from"./chat-prompt-input-BUaPwD7Z.js";import{b as J,f as Ht,u as y,s as $t,T as Q,m as zt,p as Jt,a as Qt,c as Gt,d as at,e as ct,g as mt,h as Vt}from"./conversation-D6IMi32i.js";import"./mermaid-GHXKKRXX-DZ3z3F1n.js";import"./use-copy-CTsKryN4.js";import"./use-integrations-BvhUiJz2.js";import{u as Zt}from"./use-project-CdzGlcW_.js";import"./types-BhR1gl41.js";import"./member-list-section-B2Tzj_SY.js";import{C as Xt}from"./route-mCe4uIlr.js";import{u as te,O as ee}from"./use-simulate-typing-1MupG1_Y.js";import{u as oe}from"./use-create-onboarding-entities-Cuzay_5H.js";import{i as lt,r as X,a as tt,g as se,y as ut,Y as ie,e as re,d as ne,_ as ae,p as ce,Z as me}from"./effect-vendor-Bu2WJVca.js";import{u as le,P as ue}from"./pricing-modal-CeAAbnwS.js";import{u as pe,C as de}from"./use-credit-warning-state-CICkR8jf.js";import"./graphql-vendor-C7dkimgf.js";import"./alert-DxHsS0ik.js";import"./enable-on-demand-dialog-B4cvzpC9.js";import"./dialog-BBz3j44a.js";import"./index-BDZbAJ4b.js";import"./index-DnB4reBa.js";import"./index-BGxYwIjB.js";import"./index-Ccz-94Ln.js";import"./index-zdegFVI4.js";import"./index-ykBNMfdz.js";import"./errors-DKXDhs1n.js";import"./use-effect-action-BFwstJni.js";import"./use-billing-portal-session-d2mbsqIE.js";import"./billing-service-BQRO6WUu.js";import"./use-upgrade-subscription-plan-CFmFn9Kv.js";import"./confirm-dialog-B2ASTQEd.js";import"./triangle-alert-CW19wSCa.js";import"./prompt-input-BHc8NkQE.js";import"./send-BDcahqA5.js";import"./index-6jp0qIn8.js";import"./use-connected-apps-CxJlXTmU.js";import"./popover-CqoVd5gX.js";import"./index-CuBUOxlK.js";import"./index-uWWQsitp.js";import"./use-permissions-f_UTcO4p.js";import"./skill-picker-list-DBJ-MH9g.js";import"./use-skills-C66pluRD.js";import"./dropdown-menu-F6vyAfR_.js";import"./index-C9rtdgo3.js";import"./index-DKi6hC25.js";import"./index-Cs35k95E.js";import"./chevron-right-Bg8ISQ4l.js";import"./circle-DZdWLoh_.js";import"./use-mentions-data-CVdfaNZa.js";import"./mention-pill-CyD7Cb_4.js";import"./use-composition-guard-Ik5Lrf9M.js";import"./file-kind-D4O6dbM8.js";import"./mention-dropdown-Bym0SNTu.js";import"./agent-icon-DKCPYh5q.js";import"./image-dot-display-canvas-BaHslVVB.js";import"./tooltip-BcVjjbUq.js";import"./index-Hnxb5FzS.js";import"./user-avatar-CoQ7Eqda.js";import"./avvvatars-react.esm-CSGGS0mw.js";import"./avatar-BPocB0PB.js";import"./file-text-CFIwj8jT.js";import"./loading-BzbPtzBZ.js";import"./feature-restricted-banner-DNRmBbdT.js";import"./feature-restricted-context-5gsbfUNN.js";import"./lock-AIgqAP0m.js";import"./skill-wand-icon-B6j2BO68.js";import"./mentions-document-service-BHMugTNk.js";import"./use-feature-access-state-DFct94Dn.js";import"./use-feature-restricted-B4drtNLL.js";import"./badge-_8vqx0uK.js";import"./add-app-modal-BxPrIUNV.js";import"./tabs-ByWELhVO.js";import"./index-C2Xt_Me1.js";import"./spinner-BVZ1ZVBW.js";import"./index-G1ZKUv16.js";import"./input-DWz_ASGw.js";import"./settings-card-Csje9cDB.js";import"./search-j2n75f1Z.js";import"./plus-wvQlIbwJ.js";import"./custom-app-form-UeqKXyMJ.js";import"./index.esm-eW0W5_6z.js";import"./upload-avatar-buJoTl1J.js";import"./pencil-BPA4Dipn.js";import"./url-utils-CEuNt_Zj.js";import"./zod-BJEWpDir.js";import"./trash-2-Ctw6w5aj.js";import"./errors-B0ttkalA.js";import"./use-debounce-DCHsjRUc.js";import"./use-infinite-scroll-Twfh4W9A.js";import"./use-chat-input-submit-shortcut-CJrLjqe8.js";import"./agent-transformers-59x3fAhs.js";import"./use-mobile-NDHtROKS.js";import"./use-update-agent-model-Bmzc3Bw4.js";import"./chat-agent-model-selector-CWj8gs0B.js";import"./index-Cdt1cVbS.js";import"./check-B2PX-AQh.js";import"./use-model-selector-DkEDyB8L.js";import"./book-open-DvbBTkGQ.js";import"./use-file-upload-CU6ADPlx.js";import"./horizontal-scroll-fade-CzN8R0od.js";import"./skeleton-DlbQ77Lz.js";import"./circle-x-BxzOQZ-S.js";import"./index-B-KZ7Tf2.js";import"./chevron-down-GjjPgeYz.js";import"./folder-tree-wjP30-I6.js";import"./platform-utils-DoXu1QMp.js";import"./hand-BVrGg-4M.js";import"./arrow-up-DkXVaj58.js";import"./collapsible-ywZZ8Ofo.js";import"./index-DdhiNGB1.js";import"./format-date-DflxVPtL.js";import"./toDate-BppGN7d9.js";import"./getRoundingMethod-BFP_rcKC.js";import"./isSameYear-CBbEB29H.js";import"./normalizeDates-D3UyVSGi.js";import"./format-Cu3UzExL.js";import"./formatDistanceStrict-BdfLW_yy.js";import"./mermaid-GT01k7vJ.js";import"./index-B2PjrNfA.js";import"./remark-mentions-W1_tzdd3.js";import"./mention-zLAuBaae.js";import"./url-utils-D34MjiZf.js";import"./node-style-aTxfknIN.js";import"./cursor-registry-Rl7iaPYf.js";import"./code-block-CjZP0a0N.js";import"./index-BgLrS_2D.js";import"./index-DewcDTmo.js";import"./index-BFUGmLre.js";import"./index-c2V3InAJ.js";import"./copy-CXOtIjED.js";import"./file-types-Bicu8xiy.js";import"./textarea-CzKbmegt.js";import"./index-Ln7o9-_2.js";import"./mention-text-lco8l1JX.js";import"./notification-scope-utils-BIDDxUYn.js";import"./mail-CCjXq0rU.js";import"./provider-icon-size-WgbQ-HUn.js";import"./separator-DC1tT8HX.js";import"./docs-history-commit-icon-DAt_rs-R.js";import"./arrow-down-to-line-BzUMGDiW.js";import"./index-hPgmgH2P.js";import"./index-BsMSDt2q.js";import"./sortBy-CNhnprUu.js";import"./external-link-BTip_L6D.js";import"./ellipsis-vPsPIKov.js";import"./code-sources-store-DtQuvfK8.js";import"./oauth-DobYhL8n.js";import"./admin-error-B_-ctgPp.js";import"./lodash-AVHpdyns.js";import"./label-DXCtnOjP.js";import"./use-virtual-scroll-BAoKq4Tt.js";import"./index-BqimcfsF.js";import"./search-select-zKYP1ATO.js";import"./use-debounced-callback-D5_bKwZW.js";import"./checkbox-TWbFGGtc.js";import"./select-B4Prv2D9.js";import"./index-D17hSi50.js";import"./format-symbol-errors-BGfL510N.js";import"./circle-check-QDLXYDNH.js";import"./email-chip-input-BnJoqFn_.js";import"./chip-BnQLYwUR.js";import"./chip-input-DuTb5H4j.js";import"./chip-input-container-D0Ke8MXF.js";import"./use-max-member-check-BRiAi2qj.js";
1import"./team-settings-service-E2G0Bcv9.js";import"./project-name-validation-CSqaOKsE.js";import"./use-invite-members-to-company-D9xvAxwZ.js";import"./use-manage-organization-cache-Byn-BOBx.js";import"./chat-CBQDtMTA.js";import"./mcp-reauth-poll-gBsy_RnG.js";import"./shield-alert-Dxt4vBHc.js";import"./context-module-entity-cache-DmcDFitW.js";import"./Trans-D7qwdzYI.js";import"./scroll-area-948Q4jmW.js";import"./arrow-down-a2qOrtTr.js";import"./index-ncdOyAiJ.js";import"./katex-HP8lGamR.js";import"./mermaid.core-DByVCkTT.js";import"./purify.es-P3vI1IgJ.js";import"./transform-nxXZnYt1.js";import"./select-3pf6Nfkl.js";import"./linear-CXDEMIoZ.js";import"./index-5OHa8Nma.js";import"./browser-D_G3_rhx.js";import"./index-1kccEYs5.js";import"./utils-D8y34t8H.js";import"./errors-BhG5TGe3.js";import"./index-DlGqh3YX.js";import"./app-skeleton-BD8W36UP.js";import"./sidebar-Cao6Fnxb.js";import"./use-boost-workflow-agents-CDcdcBkQ.js";import"./announcement-popover-uolDC52i.js";import"./info-XQyqrcLB.js";import"./megaphone-BAw5QMAs.js";import"./index-6o7i40Ej.js";import"./welcome-mode-store-DnT4VM5c.js";import"./use-update-chat-title-0H9Diuvy.js";import"./truncated-tooltip-Ae2SS0Mi.js";import"./briefcase-business-CH7qYJoE.js";import"./utils-DDFvoDiS.js";import"./use-intersection-observer-BOaXcW86.js";import"./command-C4aWxDFv.js";import"./team-avatar-D2tk22tR.js";import"./use-recent-user-projects-CgnoqdJ6.js";import"./use-recent-agents-CVmUhHMI.js";import"./get-team-slug-or-id-Dz_pps9P.js";import"./notification-collapse-utils-eWrHohH7.js";import"./notification-type-utils-qjpqGVTa.js";import"./use-onboarding-guard-BRL_OVHx.js";import"./context-menu-CC_ZO88a.js";import"./use-agent-form-DWmI5EFH.js";import"./use-boost-workflows-Bc_Mt6Ih.js";import"./refresh-cw-BiMwno8v.js";import"./use-delay-l4lcn996.js";import"./code-uTlvk1_A.js";import"./clock-Ce2hufQ6.js";import"./list-filter-0jg8d4eJ.js";import"./pin-J7j3ppMk.js";import"./square-pen-DhZ5sNe-.js";import"./message-square-CkrxDAtJ.js";import"./code-source-status-WDhzQRTY.js";import"./formatDistanceToNow-DqcrGyWD.js";import"./differenceInCalendarMonths-DQT5ld-F.js";import"./endOfDay-B2EumRof.js";import"./endOfMonth-C2wDvNAY.js";import"./sidebar-footer-actions-K9IirmR2.js";import"./role-dropdown-D7TxoOqe.js";import"./organization-api-service-B0Sxe4zn.js";import"./nav-user-C6Sj4qrb.js";import"./copyable-field-BYG1u2nj.js";import"./index-CNdnEdQ5.js";import"./index-8vdCAysB.js";import"./index-Vcq4gwWv.js";import"./secret-key-modal-B9bj8fQE.js";import"./table-BYNJHh_o.js";import"./revoke-modal-CYiRePoH.js";import"./radio-group-DqvMvPW7.js";import"./index-CHIm_poy.js";import"./overview-list-item-B6FO6Oq5.js";import"./use-can-manage-api-keys-Bgo-pxZG.js";import"./rotate-cw-q3J3__Q9.js";import"./switch-B9kDy39N.js";import"./form-field-input-control-NgH8UKJ_.js";import"./form-field-D7l5gLsn.js";import"./password-requirements-tlJI2uP0.js";import"./password-utils-CP258PRn.js";import"./use-logout-jgrT1OU2.js";import"./credit-progress-BZUz5eDl.js";import"./use-reactivate-subscription-FvH8pHmO.js";import"./format-number-DraKHdk-.js";import"./use-credit-balance-D94iTmPE.js";import"./help-link-D9vlwWmX.js";import"./user-B8RQSwV9.js";import"./log-out-CKk0jGK2.js";import"./use-can-view-project-settings-D6s-gM2z.js";import"./contextual-link-DxHbKbyz.js";import"./notification-count-badge-D2O3jkse.js";import"./chevron-left-xgZhoxTQ.js";import"./use-project-access-mIevcAkg.js";import"./logo-CT25sy3u.js";import"./use-permission-requests-BL-8_0k7.js";function ge(){const i=s.useRef(""),[e]=It({fetchPolicy:"network-only"}),[a]=vt(),[r]=Et(),[d]=dt(),I=s.useCallback(async(l,n)=>{const{project:p}=Y.getState(),S=p?.id??"";try{const{data:C}=await e({variables:{chat:{projectUuid:S,per:1,page:null,order:null,boostWorkflowIds:null,createdFrom:null,createdFroms:null,id:null,projectSlug:null,q:null,slug:null,sourceId:null,sourceType:null,unreadMention:null,userId:null}}}),h=C?.chats?.chats?.[0];if(h?.encryptedId)try{await a({variables:{id:h.encryptedId}})}catch{}const w=l[0]?.content??"",N=w.length<=32?w:w.slice(0,32).trimEnd()+"â¦",u={createdFrom:Nt(),metadata:{agentId:n},messagesAttributes:l.map(Tt),title:N,status:null,projectImportPageId:null},{data:_}=await r({variables:{projectUuid:S,chat:u}}),v=_?.createChat?.chat?.uuid??"";return i.current=v,v}catch{return""}},[e,a,r]),T=s.useCallback(async({content:l,uuid:n})=>{const p=i.current;if(p)try{await d({variables:{chatUuid:p,message:{content:l,from:ht.Human,assistant:ft.Assistant,status:gt.Success,uuid:n,metadata:{f
1ileAttachments:[],mentions:[]},assets:null,referencesAttributes:[],resourcesAttributes:[]}}})}catch{}},[d]);return{get chatUuid(){return i.current},ensureChat:I,insertMessage:T}}const fe=["onboarding.welcome_chat.feedback_card.title_0","onboarding.welcome_chat.feedback_card.title_1","onboarding.welcome_chat.feedback_card.title_2"],he=["onboarding.welcome_chat.feedback_card.body_0","onboarding.welcome_chat.feedback_card.body_1","onboarding.welcome_chat.feedback_card.body_2"],_e=["onboarding.welcome_chat.human_feedback.intro_0","onboarding.welcome_chat.human_feedback.intro_1","onboarding.welcome_chat.human_feedback.intro_2","onboarding.welcome_chat.human_feedback.intro_3","onboarding.welcome_chat.human_feedback.intro_4"],pt=["Engineering","Product","Design","Business","Other"];function et(i){return i[Math.floor(Math.random()*i.length)]}function ye({simulateTyping:i}){const{t:e}=st(),[a,r]=s.useState(!1),[d]=dt(),[I]=Ot(),[T]=Pt();return{sendAll:s.useCallback(async({chatUuid:n,users:p})=>{if(p.length===0)return;const S=e(et(fe)),C=e(et(he)),h=e(et(_e)),{project:w}=Y.getState(),N=w?.uuid??w?.id??"",u=K.getState().getSelectedAgent()?.id??"",_=p.map(({uuid:g,name:m})=>{const f=H(),A={title:S,body:C,options:pt,recipient:{name:m,uuid:g,owner:!1}},E=J(Z,A,f),q={id:f,type:"function",function:{name:Z,arguments:JSON.stringify(A)}};return{userUuid:g,toolCallId:f,toolCallArgs:A,toolCallContent:E,toolCallEntry:q}}),v=h+` 2 3`+_.map(g=>g.toolCallContent).join(` 4 5`),O={tool_calls:_.map(g=>g.toolCallEntry)};r(!0);try{const g=H(),[,m]=await Promise.allSettled([i(h),(async()=>{await d({variables:{chatUuid:n,message:{content:v,from:ht.Ai,assistant:ft.Assistant,status:gt.Success,uuid:g,metadata:O,assets:null,referencesAttributes:[],resourcesAttributes:[]}}}),await Promise.allSettled(_.flatMap(({userUuid:E,toolCallId:q,toolCallArgs:W})=>[I({variables:{notification:{recipientType:"User",recipientId:E,actorType:"BoostWorkflow",actorId:u,notifiableType:"Message",notifiableId:g,notificationType:"feedback_card",projectUuid:N,title:S,body:C,notificationKey:q,data:{options:pt,tool_call:{id:q,type:"function",function:{name:Z,arguments:JSON.stringify(W)}}},order:null,page:null,per:null}}}),T({variables:{chatUuid:n,userUuids:[E]}})]))})()]),f=b.getState().getSession(o),A=f.messages[f.messages.length-1];m.status==="rejected"&&A&&b.getState().updateSessionState(o,{messages:f.messages.slice(0,-1)}),A&&b.getState().updateSessionState(o,{messages:[...f.messages.slice(0,-1),{...A,content:v,metadata:O}]}),Ht(_.map(E=>E.toolCallId))}finally{r(!1)}},[e,d,I,T,i]),isSending:a}}const be="jitera/base";function ot(i){return i[Math.floor(Math.random()*i.length)]}const Se=["onboarding.welcome_chat.industry_greeting.greeting_0","onboarding.welcome_chat.industry_greeting.greeting_1","onboarding.welcome_chat.industry_greeting.greeting_2","onboarding.welcome_chat.industry_greeting.greeting_3","onboarding.welcome_chat.industry_greeting.greeting_4","onboarding.welcome_chat.industry_greeting.greeting_5","onboarding.welcome_chat.industry_greeting.greeting_6","onboarding.welcome_chat.industry_greeting.greeting_7","onboarding.welcome_chat.industry_greeting.greeting_8","onboarding.welcome_chat.industry_greeting.greeting_9"],Ce=["onboarding.welcome_chat.role_question.question_0","onboarding.welcome_chat.role_question.question_1","onboarding.welcome_chat.role_question.question_2","onboarding.welcome_chat.role_question.question_3","onboarding.welcome_chat.role_question.question_4","onboarding.welcome_chat.role_question.question_5","onboarding.welcome_chat.role_question.question_6","onboarding.welcome_chat.role_question.question_7","onboarding.welcome_chat.role_question.question_8","onboarding.welcome_chat.role_question.question_9"],we=["onboarding.welcome_chat.fill_team_question.question_0","onboarding.welcome_chat.fill_team_question.question_1","onboarding.welcome_chat.fill_team_question.question_2"];function z(i){return{id:H(),role:"assistant",content:i,timestamp:Date.now()}}function Me(i,e){const a=[i&&`Industry: ${i}`,e&&`Role: ${e}`].filter(Boolean).join(", ");return`You are Jitera, a friendly AI onboarding assistant.${a?` Collected so far â ${a}.`:""} 6 7## Your goal 8Learn the user's industry and role so Jitera can suggest relevant AI agents. 9 10## Tool usage rules 11You have one tool: \`onboarding__update\`. Use it to record any combination of industry, role, and emails. 12 13**ALWAYS call the tool immediately in these cases:** 14- User explicitly states industry: "I work in finance", "SaaS startup", "healthcare company" â call with \`industry\` 15- User implicitly implies industry: "we build LLMs" â AI/Technology, "I run an online store" â E-commerce â call with \`industry\` 16- You asked a yes/no question naming a specific industry and the user says "yes", "yeah", "correct" â call with that \`industry\` immediately 17- User states role: "I'm an engineer", "product manager", "designer" â call with \`role\` 18- You asked a yes/no question naming a specific role and user confirms â call with that \`role\` immediately 19- If both industry and role are clear â call once with both \`industry\` and \`role\` 20- User mentions one or more email addresses AND both industry and role are known â call with \`emails\` list 21 22**Do NOT call the tool** only when you truly have no information. Do not ask for confirmation â infer and call immediately. 23**Do NOT include a field** if that information is already in "Collected so far". 24**Do NOT include \`emails\`** until both industry and role are collected AND the user has provided at least one email address. 25 26## Conversation style 27- Keep every reply under 20 words. 28- Ask exactly one question at a time. 29- Sound natural and friendly, never robotic.
30- IMPORTTANT: Always respond in language of user's message.`}const Ae=[{type:"function",function:{name:Q,description:"Record the user's industry, role, and/or team emails. Pass only the fields you know.",parameters:{type:"object",properties:{industry:{type:"string",description:"The user's industry (e.g. Finance, E-commerce, SaaS)."},role:{type:"string",description:"The user's role (e.g. Engineering, Product, Design)."},emails:{type:"array",items:{type:"string"},description:"Team email addresses to invite. Only include when the user has provided them."}}}}}],Ie=[];function ve(){const{t:i}=st(),{user:e}=jt(),[a,r]=s.useState("idle"),[d,I]=s.useState(!1),T=b(t=>t.getSession(o).messages??Ie),l=b(t=>t.getSession(o).inProgressMessage),{updateSessionState:n,setStreamFiber:p,getStreamFiber:S}=b(),C=y(t=>t.selectedIndustry),h=y(t=>t.selectedRole),w=y(t=>t.teamFilled),{upsertIndustry:N,upsertRole:u}=oe(),{simulateTyping:_,cancelTyping:v,isTyping:O}=te(o),{sendAll:g}=ye({simulateTyping:_}),m=ge(),f=s.useRef(m);f.current=m;const A=s.useRef(!1),E=s.useRef(""),q=s.useRef(""),W=s.useRef("");E.current||(E.current=i(ot(Se))),q.current||(q.current=i(ot(Ce))),W.current||(W.current=i(ot(we))),s.useEffect(()=>{n(o,{messages:[],inProgressMessage:void 0,isMessageInitialized:!0})},[]),s.useEffect(()=>{if(!A.current)return A.current=!0,y.getState().reset(),r("typing_greeting"),_(E.current).then(()=>{const t=y.getState().selectedIndustry,c=b.getState().getSession(o),P=c.messages[c.messages.length-1];P&&n(o,{messages:[...c.messages.slice(0,-1),z(P.content+` 31 32`+J(at,t?{industry:t}:void 0))]}),r("industry_selection")}),()=>{v(),A.current=!1}},[]),s.useEffect(()=>{if(!(!C||a!=="industry_selection")){if(y.getState().selectedRole){r("role_selection");return}r("typing_role"),_(q.current).then(()=>{const t=y.getState().selectedRole,c=b.getState().getSession(o),P=c.messages[c.messages.length-1];P&&n(o,{messages:[...c.messages.slice(0,-1),z(P.content+` 33 34`+J(ct,t?{role:t}:void 0))]}),r("role_selection")})}},[C,a]),s.useEffect(()=>{if(!(!h||a!=="role_selection")){if(y.getState().inviteEmails!==null){r("fill_your_team");return}r("typing_fill_team"),_(W.current).then(()=>{const t=b.getState().getSession(o),c=t.messages[t.messages.length-1];c&&n(o,{messages:[...t.messages.slice(0,-1),z(c.content+` 35 36`+J(mt,void 0))]}),r("fill_your_team")})}},[h,a]),s.useEffect(()=>{if(!w)return;const t=y.getState().invitedUsers;t&&t.length>0?r("send_human_feedback"):r("done")},[w]),s.useEffect(()=>{if(a!=="send_human_feedback")return;const t=y.getState().invitedUsers??[];if(t.length===0){r("done");return}let c=!0;return(async()=>{let B=f.current.chatUuid;if(!B){const G=K.getState().getSelectedAgent()?.id??"jitera-chat",V=b.getState().getSession(o).messages.map(F=>({...F,content:F.content})).filter(F=>F.content.length>0);B=await f.current.ensureChat(V,G)}if(!B||!c){c&&r("done");return}try{await g({chatUuid:B,users:t})}catch{}c&&r("done")})(),()=>{c=!1}},[a,g]),s.useEffect(()=>()=>{v();const t=S(o);t&&(lt(t).pipe(X),p(o,void 0))},[]);const _t=s.useCallback(()=>{const t=S(o);t&&(lt(t).pipe(X),p(o,void 0)),n(o,{inProgressMessage:void 0}),I(!1)},[S,p,n]),yt=s.useCallback(t=>tt(()=>{const c=t.prompt.trim();if(!c||d||O)return null;const P=b.getState().getSession(o).messages,B=$t(P.filter(M=>M.role==="user"||M.role==="assistant"),[at,ct,mt,Q]),G=[{role:"system",content:Me(C,h)},...B,{role:"user",content:c}],$={id:H(),role:"user",content:c,timestamp:Date.now(),isOwner:!0,sender:e?{uuid:e.uuid??"",name:e.fullName??"",avatar:e.profilePhoto?.uri?{uri:e.profilePhoto.uri}:void 0}:void 0};n(o,{messages:[...P,$]});const{project:V}=Y.getState(),F=K.getState().getSelectedAgent(),bt=e?.id?parseInt(String(e.id)):0,it=be,St=H(),D={value:""},Ct=se(function*(){m.chatUuid?yield*ut(()=>m.insertMessage({content:c,uuid:$.id})):yield*ut(()=>m.ensureChat([$],F?.id??"jitera-chat"));const M={stream:!0,messages:G,model:it,tools:Ae,"com.jitera.boost":{workflow:{values:{model:it}},session:{environment:"jitera-studio",user:{id:bt,uuid:e?.uuid||void 0},agent:{id:F?.id||"jitera-chat"},project:{uuid:V?.id||""},project_source:{uuid:""},autostop:!1,mentions:[],base_url:window.location.origin,project_url:Rt.PROJECT_URL,usage_tags:kt()}}},U=yield*(yield*rt).streamChatCompletion(M),L=xt(U);
36I(!0),n(o,{inProgressMessage:{id:St,role:"assistant",content:"",timestamp:Date.now()}}),yield*ie(L,k=>tt(()=>{if(k.type==="content"&&k.content){D.value+=k.content;const R=b.getState().getSession(o).inProgressMessage;R&&n(o,{inProgressMessage:{...R,content:D.value}})}}))}).pipe(re(tt(()=>{I(!1),p(o,void 0),D.value=zt(D.value,Q);const M=Jt(D.value,Q);if(M?.industry){const{industry:j}=M;y.getState().selectIndustry(j);const U=K.getState().getSelectedAgent()?.id,L=Y.getState().project?.numericId,k=Y.getState().project?.uuid,R=e?.company?.name;U&&L&&k&&R&&(Qt(j),N({agentId:U,projectNumericId:L,projectUuid:k,industry:j,companyName:R,userFullName:e?.fullName??void 0,userFirstName:e?.firstName}).catch(()=>{}))}if(Array.isArray(M?.emails)&&M?.emails?.length&&y.getState().setInviteEmails(M.emails),M?.role){const{role:j}=M;y.getState().selectRole(j);const U=K.getState().getSelectedAgent()?.id,L=Y.getState().project?.numericId,k=Y.getState().project?.uuid,R=e?.fullName;U&&L&&k&&R&&(Gt(R),u({agentId:U,projectNumericId:L,projectUuid:k,userFullName:R,userFirstName:e?.firstName,role:j,companyName:e?.company?.name}).catch(()=>{}))}if(D.value){const j=b.getState().getSession(o);n(o,{messages:[...j.messages,z(D.value)],inProgressMessage:void 0})}else n(o,{inProgressMessage:void 0})})),ne(()=>ae),ce(rt.Live({baseURL:qt.VITE_BOOST_BASE_URL}))),wt=X(Ct);return p(o,wt),null}),[e,d,O,C,h,n,p,N,u,m]);return{chatId:o,messages:T,inProgressMessage:l??void 0,isTyping:O,isDone:a==="done",isStreaming:d,isMessagesInitialized:!0,loading:!1,isReady:!d&&!O,abortCurrentStream:_t,sendMessage:yt,loadMore:()=>{},submitApproval:()=>{},createMessage:()=>me("not implemented")}}function wn(i){const{projectSlug:e=""}=Mt({strict:!1}),a=At(),{t:r}=st(),{selectedAgentId:d,getSelectedAgent:I}=Ft(),T=!!d&&!!I(),{data:l}=Zt({projectSlug:e}),n=l?.team?.company?.uuid??null,S=pe(n).type!==de.None,{currentPlanRaw:C}=le(),h=C===Dt.FreePlan||C===null,w=nt(m=>m.softReset),N=nt(m=>m.setPreCreatedProject),u=ve(),[_,v]=s.useState(!1);s.useEffect(()=>()=>{Vt()},[]);const O=s.useCallback(async()=>{if(!l?.uuid)return;v(!0),h&&Ut.show(ue,{noRedirect:!0});const m=500;w(),N({slug:l.slug,uuid:l.uuid,encryptedId:l.encryptedId,numericId:l.numericId,teamUuid:l.team.uuid}),await new Promise(f=>setTimeout(f,m)),a({to:"/p/$projectSlug/agent",params:{projectSlug:e}})},[l,w,N,a,e,h]),g=s.useCallback(m=>{a({to:"/p/$projectSlug/chat",params:{projectSlug:e},search:{c:m}})},[a,e]);return x.jsx("div",{id:"chat-panel","data-testid":"chat-page",className:"flex flex-row flex-1 h-full overflow-hidden bg-background relative @container",children:x.jsxs("div",{className:Lt("flex flex-col flex-1 min-h-0 min-w-[200px] relative overflow-y-auto overflow-x-hidden hidden-scrollbar"),children:[x.jsx(Xt,{messages:u.messages,onLoadMore:()=>{},loadingMessages:!1,inProgressMessage:u.inProgressMessage,isStreaming:u.isStreaming||u.isTyping,loading:!1,chatId:u.chatId,isMessagesInitialized:u.isMessagesInitialized,hideNewChatButton:!0,compactTopAnchor:!0,afterMessages:u.isDone?x.jsx("div",{className:"flex justify-start pt-2 -mt-16",children:x.jsx(ee,{onClick:O,label:r("onboarding.chat.create_first_agent"),loading:_})}):void 0}),x.jsxs("div",{className:"flex-none w-3xl max-w-full mx-auto p-4 pt-0 bg-muted",children:[x.jsx(Bt,{tucked:T,children:S&&x.jsx(Yt,{asRow:!0,className:Wt})}),T&&x.jsx(Kt,{chatSlug:void 0,selectedAgentId:d,isStreaming:u.isStreaming,boostChat:u,onChatCreated:g,disabled:S,hideAddMenu:!0,hideMentions:!0,hideSkills:!0},d)]})]})})}export{wn as OnboardingChatPanel};
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.