@flexkit/studio 0.2.4 → 0.2.5
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/astro.js +1 -1
- package/dist/{chat-page-S2YGOKO5.js → chat-page-EXKQ2EYM.js} +3 -3
- package/dist/{chat-page-S2YGOKO5.js.map → chat-page-EXKQ2EYM.js.map} +1 -1
- package/dist/{chunk-6RDPFMLK.js → chunk-26UJ2WUB.js} +2 -2
- package/dist/{chunk-6RDPFMLK.js.map → chunk-26UJ2WUB.js.map} +1 -1
- package/dist/{chunk-TXK4OFAG.js → chunk-2AVINVYN.js} +4 -0
- package/dist/{chunk-LN55VJ35.js → chunk-EUGE3XWF.js} +3 -3
- package/dist/{chunk-LN55VJ35.js.map → chunk-EUGE3XWF.js.map} +1 -1
- package/dist/chunk-LP2JI25S.js +2 -0
- package/dist/chunk-LP2JI25S.js.map +1 -0
- package/dist/{chunk-NYKATVPZ.js → chunk-NDM2RAQE.js} +3 -3
- package/dist/{chunk-NYKATVPZ.js.map → chunk-NDM2RAQE.js.map} +1 -1
- package/dist/{chunk-SVZY7ZZD.js → chunk-NGO6CTAU.js} +3 -3
- package/dist/{chunk-SVZY7ZZD.js.map → chunk-NGO6CTAU.js.map} +1 -1
- package/dist/chunk-TYDYAOQ7.js +3 -0
- package/dist/chunk-TYDYAOQ7.js.map +1 -0
- package/dist/{chunk-2AHDTE5T.js → chunk-UM74MG43.js} +2 -2
- package/dist/{chunk-2AHDTE5T.js.map → chunk-UM74MG43.js.map} +1 -1
- package/dist/{chunk-NOFQHWES.js → chunk-UULO2DWJ.js} +2 -2
- package/dist/{chunk-NOFQHWES.js.map → chunk-UULO2DWJ.js.map} +1 -1
- package/dist/{chunk-7SK5YPHT.js → chunk-V64P56OA.js} +2 -2
- package/dist/{chunk-7SK5YPHT.js.map → chunk-V64P56OA.js.map} +1 -1
- package/dist/{chunk-J2G4C6I5.js → chunk-XWC47CBM.js} +2 -2
- package/dist/{chunk-J2G4C6I5.js.map → chunk-XWC47CBM.js.map} +1 -1
- package/dist/{chunk-KWS3NAYS.js → chunk-Y7ZSQPKF.js} +3 -3
- package/dist/{chunk-KWS3NAYS.js.map → chunk-Y7ZSQPKF.js.map} +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/{list-PNKQAYUK.js → list-WETJWRMH.js} +2 -2
- package/dist/{list-PNKQAYUK.js.map → list-WETJWRMH.js.map} +1 -1
- package/dist/nextjs.js +1 -1
- package/dist/pages-PIZB3YDN.js +3 -0
- package/dist/pages-PIZB3YDN.js.map +1 -0
- package/dist/{plugin-pages-SE52XFFW.js → plugin-pages-QLMZNHSK.js} +2 -2
- package/dist/{plugin-pages-SE52XFFW.js.map → plugin-pages-QLMZNHSK.js.map} +1 -1
- package/dist/{root-X5NDURAN.js → root-L4SMLNEV.js} +3 -3
- package/dist/{root-X5NDURAN.js.map → root-L4SMLNEV.js.map} +1 -1
- package/dist/{root-BH3PQS2H.js → root-N6PIMO2T.js} +3 -3
- package/dist/{root-BH3PQS2H.js.map → root-N6PIMO2T.js.map} +1 -1
- package/dist/{root-LFQA2VSE.js → root-QN7KVPCD.js} +2 -2
- package/dist/{root-LFQA2VSE.js.map → root-QN7KVPCD.js.map} +1 -1
- package/dist/{root-44ZJLA4E.js → root-R7URTGY7.js} +2 -2
- package/dist/{root-44ZJLA4E.js.map → root-R7URTGY7.js.map} +1 -1
- package/dist/{search-Q65IC67C.js → search-3LHBSNDF.js} +2 -2
- package/dist/{search-Q65IC67C.js.map → search-3LHBSNDF.js.map} +1 -1
- package/dist/{skills-pages-TWOIIU5J.js → skills-pages-ZN4LII2R.js} +2 -2
- package/dist/{skills-pages-TWOIIU5J.js.map → skills-pages-ZN4LII2R.js.map} +1 -1
- package/dist/tanstack-start.js +1 -1
- package/dist/{user-nav-QZTYBG45.js → user-nav-DCAHVWN7.js} +2 -2
- package/dist/{user-nav-QZTYBG45.js.map → user-nav-DCAHVWN7.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunk-3TGCCDOR.js +0 -2
- package/dist/chunk-3TGCCDOR.js.map +0 -1
- package/dist/chunk-NNA4MLFC.js +0 -3
- package/dist/chunk-NNA4MLFC.js.map +0 -1
- package/dist/pages-KHFSZ3PH.js +0 -3
- package/dist/pages-KHFSZ3PH.js.map +0 -1
package/dist/astro.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'./index.css';import {a}from'./chunk-
|
|
1
|
+
import'./index.css';import {a}from'./chunk-UM74MG43.js';import {f as f$2,b,c,g as g$1,a as a$1,e as e$1,d}from'./chunk-CSUHZFEP.js';import {q,t,A,m,k,j,l,n,r,o,e as e$2,z,w,u,g as g$2,h,f as f$3,s,y,B,x,p}from'./chunk-NGO6CTAU.js';import {g,f as f$1,a as a$3}from'./chunk-CKNFYN3O.js';import {f}from'./chunk-EUGE3XWF.js';import'./chunk-TYDYAOQ7.js';import {Pb,N,Nb,_a,$a,bb,Vb,Yb,Wb,Xb,Zb,_b,ac,bc,cc,Tb,fc,gc,jc,hc,ic,Ic,ec}from'./chunk-YCCFUGWJ.js';import {v}from'./chunk-32ZU4MLE.js';import'./chunk-HDOIOXMP.js';import'./chunk-SZEGGBOC.js';import'./chunk-U45E5X3H.js';import {b as b$1,c as c$1,e}from'./chunk-USNXQOMJ.js';import {b as b$2}from'./chunk-6NRQMG26.js';import {a as a$2}from'./chunk-O2QMYUPS.js';import {useRef,useMemo,useState,useEffect,useLayoutEffect}from'react';import {LoaderCircle,CornerDownRightIcon,CheckIcon,CopyIcon,PencilIcon}from'lucide-react';import {useParams,useNavigate}from'react-router-dom';import ie,{useSWRConfig}from'swr';import {jsx,jsxs}from'react/jsx-runtime';function wt(e,t){let r=Date.parse(e.createdAt)-Date.parse(t.createdAt);return Number.isFinite(r)&&r!==0?r:e.createdAt!==t.createdAt?e.createdAt<t.createdAt?-1:1:e.id===t.id?0:e.id<t.id?-1:1}function re(e){return [...new Map(e.map(r=>[r.id,r])).values()].sort(wt)}function Ae(e,t){if(!t)return e;if(!e)return t;let r=new Set(t.messages.map(d=>d.id)),a=t.messages[t.messages.length-1],s=e.messages.filter(d=>!r.has(d.id)&&(!a||wt(d,a)>0));return s.length===0?t:{...t,messages:re([...t.messages,...s])}}var Jt="flexkit:agent:draft:";function xt(){return typeof localStorage>"u"?null:localStorage}function Pt(e,t){return `${Jt}${e}:${t??"new"}`}function bt(e,t=xt()){try{return t?.getItem(e)??""}catch{return ""}}function Dt(e,t,r=xt()){try{t.trim().length===0?r?.removeItem(e):r?.setItem(e,t);}catch{}}function qt(e){return e==="pending"||e==="streaming"||e==="awaiting_approval"}function Et(e){return e==="queued"||e==="steering"}function ke(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(r.role==="assistant"){if(!qt(r.status))break;return {after:e.slice(t+1),before:e.slice(0,t),live:r}}}return {after:[],before:e,live:null}}function Rt(e){return e==="steering"?"Picked up at the next step":e==="queued"?"Sends when this turn ends":null}function Nt(e){let t=new Set;for(let r of e)if(!(r.role!=="assistant"||!Array.isArray(r.parts)))for(let a of r.parts){let s=a.type==="data-mid-turn-message"?a.data?.messageId:null;typeof s=="string"&&t.add(s);}return t}function Ce(e){return e.find(t=>t.role==="user"&&t.status==="queued")??null}function _t(e){return e.streaming&&!e.hasDraft?"stop":"send"}var rn=6e4;function sn(e){if(!e)return 0;if(ke(e.messages).live||Ce(e.messages))return r;if(!e.messages.some(a=>a.role==="assistant"&&a.status==="complete"))return 0;let r$1=new Date(e.chat.lastMessageAt??e.chat.updatedAt).getTime();return Date.now()-r$1<rn?r:0}function an(e,t,r){return {chat:{createdAt:r,id:e,lastMessageAt:r,modelId:t,title:null,updatedAt:r},messages:[],pendingApproval:null}}function Ut(e,t,r,a,s,d){return e||(t?{chat:t,messages:[],pendingApproval:null}:r||an(a,s,d))}function Lt(e,t){let r=new Set([t.userMessage.id,t.assistantMessage.id]);return {...e,messages:re([...e.messages.filter(a=>!r.has(a.id)),t.userMessage,t.assistantMessage])}}function on(e,t){return {...e,messages:re([...e.messages.filter(r=>r.id!==t.id),t])}}function ln(e,t,r){return t?Ae(e[t],r):r}function un(e){return e==="awaiting_approval"?"awaiting_approval":e==="complete"?"success":e==="failed"?"failed":"running"}function Ne({attachments:e$1=[],label:t,text:r}){let{textInput:a}=Nb(),[s,d]=useState(false),c=r.trim().length>0;async function v(){await navigator.clipboard.writeText(r),d(true),setTimeout(()=>d(false),1500);}return jsxs("div",{className:"fk:group fk:ml-auto fk:flex fk:w-fit fk:max-w-[70%] fk:flex-col fk:items-end fk:gap-1",children:[jsx(p,{attachments:e$1}),c?jsx("div",{className:"fk:whitespace-pre-wrap fk:rounded-xl fk:bg-muted fk:dark:bg-white/20 fk:px-3.5 fk:py-2 fk:text-base fk:corner-squircle",children:r}):null,t?jsxs("span",{className:"fk:inline-flex fk:items-center fk:gap-1 fk:text-xs fk:text-muted-foreground",children:[jsx(CornerDownRightIcon,{className:"fk:size-3 fk:shrink-0"}),t]}):null,jsxs("div",{className:c?"fk:flex fk:gap-0.5 fk:opacity-0 fk:transition-opacity fk:group-hover:opacity-100":"fk:hidden",children:[jsxs(b$1,{children:[jsx(c$1,{asChild:true,children:jsx(b$2,{"aria-label":"Copy prompt",className:"fk:size-6 fk:text-muted-foreground",size:"icon",variant:"ghost",onClick:()=>{v();},children:s?jsx(CheckIcon,{className:"fk:size-3.5"}):jsx(CopyIcon,{className:"fk:size-3.5"})})}),jsx(e,{children:"Copy"})]}),jsxs(b$1,{children:[jsx(c$1,{asChild:true,children:jsx(b$2,{"aria-label":"Edit prompt",className:"fk:size-6 fk:text-muted-foreground",size:"icon",variant:"ghost",onClick:()=>a.setInput(r),children:jsx(PencilIcon,{className:"fk:size-3.5"})})}),jsx(e,{children:"Edit"})]})]})]})}function Bt(e){let r=e.find(a=>a.type==="data-suggested-prompt")?.data?.prompt;return typeof r=="string"&&r.trim()?r:null}function Ot({prompt:e}){let{textInput:t}=Nb();return jsx("div",{className:"fk:flex fk:justify-start",children:jsxs("button",{className:"fk:inline-flex fk:max-w-full fk:items-center fk:gap-1.5 fk:rounded-full fk:border fk:border-border/70 fk:bg-muted/40 fk:px-3 fk:py-1.5 fk:text-left fk:text-sm fk:text-muted-foreground fk:transition-colors fk:hover:border-border fk:hover:bg-muted fk:hover:ext-foreground fk:corner-squircle",title:"Use as your next message",type:"button",onClick:()=>t.setInput(e),children:[jsx(CornerDownRightIcon,{className:"fk:size-3 fk:shrink-0"}),jsx("span",{className:"fk:truncate",children:e})]})})}function dn({api:e,part:t,partIndex:r,parts:a}){return t.type.startsWith("tool-")?t.state==="output-error"?jsx(z,{message:t.errorText??"The tool call failed."}):null:jsx(y,{api:e,part:t,partIndex:r,parts:a})}function Ft({api:e,message:t,showSuggestion:r=false}){if(t.role==="user")return jsx(Ne,{attachments:o(t.parts),label:Rt(t.status),text:t.textContent});let a=(Array.isArray(t.parts)?t.parts:[]).filter(c=>!e$2(c)&&!(c.type.startsWith("tool-")&&c.state!=="output-error")),s=a.some(c=>c.type==="data-turn-error"),d=r&&!t.error?Bt(a):null;return a.length===0&&!t.error?null:jsxs("div",{className:"fk:w-full fk:min-w-0 fk:space-y-8",children:[a.map((c,v)=>jsx(dn,{api:e,part:c,partIndex:v,parts:a},c.toolCallId??`${t.id}-${v.toString()}`)),t.error&&!s?jsx(z,{message:t.error}):null,d?jsx(Ot,{prompt:d}):null]})}function fn({api:e,chatId:t,detail:r,message:a,onMidTurnDelivered:s$1,onStatusChange:d,onTurnUpdated:c}){let v=un(a.status),S=a.workflowRunId?e.getAgentChatStreamUrl(t,a.workflowRunId):"",[O,U]=useState(0),[p,M]=useState(false),[h$1,I]=useState({}),x$1=useRef(null),{message:A,status:m}=w(S,{decidedApprovals:h$1,recordStatus:v,resumeToken:O,suppressApprovalPause:p}),L=useMemo(()=>A?[{...A,parts:A.parts.filter(g=>!e$2(g))}]:[],[A]),b=u(L),j=useRef(c);j.current=c;let X=useRef(d);X.current=d;let F=useMemo(()=>({onApprovalDecided:(g,z)=>{g&&z&&z!=="pending"&&I(B=>({...B,[g]:z})),!(g&&x$1.current===g)&&(g&&(x$1.current=g),M(true),U(B=>B+1),j.current());}}),[]);useEffect(()=>{U(0),M(false),x$1.current=null,I({});},[a.id]),useEffect(()=>{p&&a.status==="streaming"&&M(false);},[a.status,p]),useEffect(()=>{(m==="finished"||m==="paused")&&j.current();},[m]);let u$1=(A?.parts??[]).filter(g=>g.type==="data-mid-turn-message").map(g=>String(g.data?.messageId??"")).join(`
|
|
2
2
|
`),i=useRef(s$1);i.current=s$1,useEffect(()=>{u$1&&i.current(u$1.split(`
|
|
3
|
-
`));},[u$1]);let D=!p&&a.status!=="streaming"&&(a.status==="awaiting_approval"||m==="paused"||g$2(A)),N=useMemo(()=>new Set(h(A)),[A]),_=r.pendingApproval&&!N.has(r.pendingApproval.id)?r.pendingApproval:null,Q=A?.parts[A.parts.length-1],ue=Q?.type==="text"&&Q.state==="streaming",K=D?"Awaiting approval":f$3(A)??"Thinking",H=D?m!=="finished"&&m!=="error":m==="streaming"&&!ue;useEffect(()=>{X.current({label:K,visible:H});},[K,H]);let E=!!_&&D,G=m==="finished"?Bt(b.flatMap(g=>g.parts)):null;return b.length===0&&!E?jsx(s.Provider,{value:F,children:null}):jsx(s.Provider,{value:F,children:jsxs("div",{className:"fk:w-full fk:min-w-0 fk:space-y-8",children:[b.map(g=>jsx("div",{className:"fk:space-y-8 fk:min-w-0",children:g.parts.map((z,B)=>jsx(y,{api:e,part:z,partIndex:B,parts:g.parts},B))},g.id)),_&&E?jsx(B,{api:e,message:x(_)}):null,G?jsx(Ot,{prompt:G}):null]})})}function cn({draftKey:e}){let{textInput:t}=Nb(),{setInput:r,value:a}=t,s=useRef(null);return useLayoutEffect(()=>{if(s.current===e){Dt(e,a);return}s.current=e;let d=bt(e);d!==a&&r(d);},[e,r,a]),null}function gn({api:e,effort:t,modelKey:r,modelPending:a,models:s,onEffortChange:d$1,onError:c$1,onModelChange:v,onSend:S,onStop:O,placeholder:U,sending:p,streaming:M}){let{attachments:h,textInput:I}=Nb(),x=m(e,c$1),A=useRef(false),m$1=s.filter(i=>!i.deprecated||b(i)===r),L=c(s,r),b$1=e$1(L),j$1=d(L,t),X=I.value.trim().length>0||h.files.length>0,F=_t({hasDraft:X,streaming:M}),u=X&&!x.isUploading&&!p&&!a;return jsxs(Vb,{accept:l,className:"fk:mx-auto fk:max-w-4xl",maxFileSize:j,maxFiles:k,multiple:true,onError:i=>c$1(i.message),onSubmit:({text:i})=>{let D=i?.trim()??"",N=x.getUploaded(h.files.map(_=>_.id));return !D&&N.length===0||x.isUploading||p||A.current||a?Promise.reject(new Error("The message cannot be sent right now.")):(A.current=true,I.clear(),S(D,N).catch(_=>{throw I.setInput(i),_}).finally(()=>{A.current=false;}))},children:[h.files.length>0?jsx(Yb,{children:jsx(n,{uploads:x})}):null,jsx(Wb,{children:jsx(Xb,{disabled:p,placeholder:U})}),jsxs(Zb,{children:[jsxs(_b,{children:[jsxs(ac,{children:[jsx(bc,{"aria-label":"Add attachments",className:"fk:border-0 fk:bg-border fk:corner-round",disabled:p,tooltip:"Add photos or files"}),jsx(cc,{children:jsx(Tb,{})})]}),m$1.length>0?jsxs(fc,{value:r??void 0,onValueChange:v,children:[jsx(gc,{"aria-label":"Model",className:"fk:min-w-44",children:jsx(jc,{placeholder:"Model"})}),jsx(hc,{children:m$1.map(i=>jsx(ic,{value:b(i),children:i.name},b(i)))})]}):null,b$1.length>1&&j$1?jsxs(fc,{value:j$1,onValueChange:d$1,children:[jsx(gc,{"aria-label":"Reasoning effort",className:"fk:min-w-28",children:jsx(jc,{placeholder:"Effort"})}),jsx(hc,{children:b$1.map(i=>jsx(ic,{value:i.value,children:i.label},i.value))})]}):null]}),jsxs("div",{className:"fk:flex fk:items-center fk:gap-3",children:[jsx(Ic,{disabled:p,onAudioRecorded:async(i,D)=>{let{text:N}=await e.transcribeAgentAudio(i,D);return N},onError:i=>c$1(i.message),onTranscriptionChange:i=>{c$1(null),I.setInput(a$3(I.value,i));}}),jsx(ec,{className:"fk:corner-round",disabled:F==="stop"?false:!u,status:F==="stop"?"streaming":void 0,onStop:()=>{O();}})]})]})]})}var Re={chatId:null,error:null,loading:false,older:[],page:null},pn=3e3;function mn({api:e,chatId:t,projectId:r,pendingFollowUp:a,pendingMessage:s,resolveDetail:d}){let{data:c,mutate:v}=ie(t?g(r).agentChat(t):null,f$1,{refreshInterval:0}),S=d(c),[O,U]=useState(Re),p=O.chatId===t?O:Re,M=useRef(t);M.current=t;let h=(o,C)=>U(y=>{if(y.chatId!==o&&M.current!==o)return y;let k=y.chatId===o?y:{...Re,chatId:o};return {...k,...C(k)}}),I=useRef({chatId:null,messages:[]}),x=S?.messages;useEffect(()=>{let o=I.current,C=x??[];if(I.current={chatId:t,messages:C},!t||o.chatId!==t)return;let y=new Set(C.map(T=>T.id)),k=o.messages.filter(T=>!y.has(T.id));k.length>0&&h(t,T=>({older:re([...T.older,...k])}));},[t,x]);let A$1=new Set(S?.messages.map(o=>o.id)??[]),m=[...p.older.filter(o=>!A$1.has(o.id)),...S?.messages??[]],L=useRef(S);L.current=S;let b=useRef(void 0);ie(t?`${g(r).agentChat(t)}?view=status`:null,f$1,{refreshInterval:()=>sn(L.current),onSuccess:o=>{let C=JSON.stringify(o),y=b.current;b.current=C;let{current:k}=L,T=k?[...k.messages].reverse().find(ve=>ve.role==="assistant"):void 0;(y&&y!==C||T&&o.latestMessage&&(T.id!==o.latestMessage.id||T.status!==o.latestMessage.status||T.workflowRunId!==o.latestMessage.workflowRunId||k?.chat.updatedAt!==o.chat.updatedAt))&&v();}});let j=async()=>{let o=p.page?.cursor??S?.nextCursor;if(!t||!o||p.loading)return;let C=t;h(C,()=>({error:null,loading:true}));try{let y=await f$1(`${g(r).agentChat(C)}?before=${encodeURIComponent(o)}`);h(C,k=>({loading:!1,older:re([...y.messages,...k.older]),page:{cursor:y.nextCursor??null,hasMore:y.hasMore??!1}}));}catch{h(C,()=>({error:"Could not load earlier messages. Try again.",loading:false}));}},{after:X,before:F,live:u}=ke(m),[i,D]=useState({ids:[],messageId:""}),N=Nt(m);for(let o of u&&i.messageId===u.id?i.ids:[])N.add(o);let _=X.filter(o=>Et(o.status)&&!N.has(o.id)),Q=F.filter(o=>!N.has(o.id)),K=(!u&&!s?Ce(m):null)?.id??null,[H,E]=useState(0),G=useRef(null);useEffect(()=>{if(!t||!K||G.current===K)return;G.current=K;let o=false,C=null;return e.startQueuedAgentChatMessage(t,K).then(()=>{},()=>{C=setTimeout(()=>{o||E(y=>y+1);},pn);}).finally(()=>{G.current=null,v();}),()=>{o=true,C&&clearTimeout(C);}},[e,t,v,K,H]);let[g$1,z]=useState(null),B=u&&g$1?.messageId===u.id?g$1.status:null;if(t&&!S&&!s)return jsxs("div",{className:"fk:flex fk:flex-1 fk:items-center fk:justify-center fk:gap-2 fk:text-sm fk:text-muted-foreground",children:[jsx(LoaderCircle,{className:"fk:size-4 fk:animate-spin"}),"Loading chat..."]});let se=!!s||!!u,Y=[...Q].reverse().find(o=>o.role==="assistant")?.id??null,V=u?B?.label??"Thinking":"Sending",de=u?B?.visible??true:true;return jsxs(_a,{className:"fk:h-0 fk:min-h-0 fk:flex-1",children:[jsx($a,{className:"fk:gap-0 fk:p-0",children:jsxs("div",{className:"fk:mx-auto fk:w-full fk:max-w-4xl fk:space-y-5 fk:pb-6 fk:pr-4",children:[p.page?.hasMore??S?.hasMore?jsx(b$2,{variant:"ghost",disabled:p.loading,onClick:()=>{j();},children:p.loading?"Loading\u2026":"Load earlier messages"}):null,p.error?jsx("p",{role:"alert",children:p.error}):null,Q.map(o=>jsx(Ft,{api:e,message:o,showSuggestion:!se&&o.id===Y},o.id)),u&&t&&S?jsx(fn,{api:e,chatId:t,detail:S,message:u,onMidTurnDelivered:o=>D({ids:o,messageId:u.id}),onStatusChange:o=>z({messageId:u.id,status:o}),onTurnUpdated:()=>{v();}}):null,s&&!u?jsx(Ne,{attachments:s.attachments,text:s.text}):null,se?jsx(A,{label:V,visible:de}):null,_.map(o=>jsx(Ft,{api:e,message:o},o.id)),a&&u?jsx(Ne,{attachments:a.attachments,text:a.text}):null]})}),jsx(bb,{})]})}var Kt=["Where should we begin?","Ready when you are","What\u2019s on the agenda today?","What\u2019s on your mind today?"];function hn(e){return [`How can I help, ${e}?`,`Good to see you, ${e}.`,`Hey, ${e}. Ready to dive in?`]}function An(e){let t=e?[...Kt,...hn(e)]:Kt;return t[Math.floor(Math.random()*t.length)]??"How can I help?"}var jt="flexkit-ai:lastModelId",_e="flexkit-ai:lastEffort";function kn(){if(typeof localStorage>"u")return null;try{let e=localStorage.getItem(jt);return e?{effort:localStorage.getItem(_e),modelKey:e}:null}catch{return null}}function Cn(e){return e.selectedModelKey?{effort:e.selectedEffort,modelKey:e.selectedModelKey}:e.awaitingChatModel?{effort:null,modelKey:null}:e.chatSelection?{effort:e.selectedEffort??e.chatSelection.effort,modelKey:e.chatSelection.modelKey}:e.lastUsed?{effort:e.selectedEffort??e.lastUsed.effort,modelKey:e.lastUsed.modelKey}:{effort:e.selectedEffort,modelKey:e.defaultModelKey}}function vn(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(jt,e.modelKey),e.effort?localStorage.setItem(_e,e.effort):localStorage.removeItem(_e);}catch{}}function Sn({projectId:e}){let{data:t,isLoading:r}=ie(g(e).agentProfile(),f$1),a=useMemo(()=>r?null:An(t?.preferredName??null),[t,r]);return jsx("div",{className:"fk:flex fk:flex-col fk:items-center fk:pb-2 fk:text-center",children:jsx("h2",{className:"fk:text-2xl fk:font-semibold",children:a??"\xA0"})})}function On(){let{api:e$1,projectId:t$1}=q(),{currentProject:r,projectSummaries:a$3}=f(),{chatId:s}=useParams(),d=useNavigate(),c$2=a(),{mutate:v$1}=useSWRConfig(),{data:S}=ie(t$1?g(t$1).tools():null,f$1),{data:O}=ie(t$1&&s?g(t$1).agentChat(s):null,f$1),U=useRef({});function p(l){return ln(U.current,s,l)}let M=p(O),h=useMemo(()=>S?.tools.models??[],[S]),[I,x]=useState(null),[A,m]=useState(null),L=useRef(null),[b$2,j]=useState(kn),[X,F]=useState(false),u=useRef(false),[i,D]=useState(null),N$1=i&&i.chatId===s?i:void 0,[_,Q]=useState(null),ue=_&&_.chatId===s?_:void 0,[K,H]=useState(null),E=M?.chat.modelId??null,G=!!s&&M===void 0,g$2=useMemo(()=>f$2(E,h)??(E?{effort:null,modelKey:E}:null),[E,h]),z=useMemo(()=>{let l=h.find(J=>!J.deprecated);return l?b(l):null},[h]),B=useMemo(()=>{let l=c(h,b$2?.modelKey??null);return b$2&&l&&!l.deprecated?b$2:null},[h,b$2]),{effort:se,modelKey:Y}=Cn({awaitingChatModel:G,chatSelection:g$2,defaultModelKey:z,lastUsed:B,selectedEffort:A,selectedModelKey:I}),V=Y?g$1({effort:se,modelKey:Y},h):null,de=G&&!I;useEffect(()=>{L.current=null,x(null),m(null),H(null);},[s]),useEffect(()=>{I===a$1&&E&&E!==a$1&&E!==L.current&&(x(null),m(null));},[E,I]);function o(l){j(l),vn(l);}function C(l){L.current=l===a$1?E:null,x(l),m(null),o({effort:null,modelKey:l});}function y(l){m(l),Y&&o({effort:l,modelKey:Y});}if(!t$1||!e$1)return jsx("div",{className:"fk:flex fk:h-full fk:items-center fk:justify-center fk:text-sm fk:text-muted-foreground",children:"Select a project to chat with the agent."});let k=e$1,T=t$1,ve=r?.title??a$3.find(l=>l.id===t$1)?.name??"your project",Ue=!s&&!N$1,fe=!!(M&&ke(M.messages).live);async function $t(l,J,te){Q({attachments:te,chatId:l,text:J});try{let w=await k.sendAgentChatFollowUp(l,{attachments:te,content:J,modelId:V});await v$1(g(T).agentChat(l),ne=>{let ae=Ut(Ae(U.current[l],ne),null,O,l,V,"turn"in w?w.turn.userMessage.createdAt:w.followUp.message.createdAt),Z="turn"in w?Lt(ae,w.turn):on(ae,w.followUp.message);return U.current[l]=Z,Z},{revalidate:!1});}finally{Q(null);}}async function Xt(l,J){if(u.current)throw new Error("A message is already being sent.");if(de)throw new Error("This chat is still loading.");u.current=true,F(true),H(null);let te=M?Ce(M.messages):null;if(s&&(fe||te)){try{!fe&&te&&await k.startQueuedAgentChatMessage(s,te.id).catch(()=>{}),await $t(s,l,J);}catch(w){throw H(w instanceof Error?w.message:"Failed to send the message."),w}finally{u.current=false,F(false);}return}D({attachments:J,chatId:s,text:l});try{let w=s?{chat:null,turn:await k.sendAgentChatMessage(s,{attachments:J,content:l,modelId:V})}:await k.startAgentChat({attachments:J,content:l,modelId:V}),{chat:ne,turn:ae}=w,Z=s??ne.id;await v$1(g(T).agentChat(Z),zt=>{let Le=Lt(Ut(Ae(U.current[Z],zt),ne,O,Z,V,ae.userMessage.createdAt),ae);return U.current[Z]=Le,Le},{revalidate:!1}),ne&&d(`${c$2}/chats/${ne.id}`),D(null);}catch(w){throw D(null),H(w instanceof Error?w.message:"Failed to send the message."),w}finally{u.current=false,F(false);}}async function Gt(){if(s)try{await k.stopAgentChat(s);}catch(l){H(l instanceof Error?l.message:"Failed to stop the turn.");}finally{await v$1(g(T).agentChat(s));}}return jsxs(Pb,{children:[jsx(cn,{draftKey:Pt(T,s)}),jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:flex-col fk:gap-2",children:[jsxs("div",{className:"fk:mb-2 fk:flex fk:shrink-0 fk:items-start fk:gap-2",children:[jsxs(b$1,{children:[jsx(c$1,{asChild:true,children:jsx(N,{className:"fk:-ml-1 fk:h-4 fk:w-4"})}),jsx(e,{children:"Toggle Sidebar"})]}),jsx(v,{orientation:"vertical",className:"fk:mt-1 fk:h-4"}),jsx("div",{className:"fk:flex fk:flex-1 fk:items-center fk:gap-2",children:jsx("h1",{className:"fk:truncate fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:s?M?.chat.title?.trim()??"Chat":"Agent"})})]}),jsx("div",{className:"fk:flex fk:min-h-0 fk:flex-1 fk:gap-4",children:jsxs("div",{className:a$2("fk:flex fk:min-h-0 fk:min-w-0 fk:flex-1 fk:flex-col fk:gap-3",Ue&&"fk:justify-center fk:pb-[12vh]"),children:[Ue?jsx(Sn,{projectId:T}):jsx(t.Provider,{value:true,children:jsx(mn,{api:k,chatId:s??null,pendingFollowUp:ue,pendingMessage:N$1,projectId:t$1,resolveDetail:p})}),jsxs("div",{className:"fk:shrink-0 fk:pb-3",children:[K?jsx("p",{className:"fk:mx-auto fk:mb-2 fk:max-w-4xl fk:text-xs fk:text-destructive",children:K}):null,jsx(gn,{api:k,effort:se,modelKey:Y,modelPending:de,models:h,sending:X,streaming:fe,onEffortChange:y,onError:H,onModelChange:C,onSend:Xt,onStop:Gt,placeholder:fe?"Add context or steer the agent...":`Ask Flexkit anything about ${ve}...`})]})]})})]})]})}export{On as AgentChatPage};//# sourceMappingURL=chat-page-S2YGOKO5.js.map
|
|
4
|
-
//# sourceMappingURL=chat-page-
|
|
3
|
+
`));},[u$1]);let D=!p&&a.status!=="streaming"&&(a.status==="awaiting_approval"||m==="paused"||g$2(A)),N=useMemo(()=>new Set(h(A)),[A]),_=r.pendingApproval&&!N.has(r.pendingApproval.id)?r.pendingApproval:null,Q=A?.parts[A.parts.length-1],ue=Q?.type==="text"&&Q.state==="streaming",K=D?"Awaiting approval":f$3(A)??"Thinking",H=D?m!=="finished"&&m!=="error":m==="streaming"&&!ue;useEffect(()=>{X.current({label:K,visible:H});},[K,H]);let E=!!_&&D,G=m==="finished"?Bt(b.flatMap(g=>g.parts)):null;return b.length===0&&!E?jsx(s.Provider,{value:F,children:null}):jsx(s.Provider,{value:F,children:jsxs("div",{className:"fk:w-full fk:min-w-0 fk:space-y-8",children:[b.map(g=>jsx("div",{className:"fk:space-y-8 fk:min-w-0",children:g.parts.map((z,B)=>jsx(y,{api:e,part:z,partIndex:B,parts:g.parts},B))},g.id)),_&&E?jsx(B,{api:e,message:x(_)}):null,G?jsx(Ot,{prompt:G}):null]})})}function cn({draftKey:e}){let{textInput:t}=Nb(),{setInput:r,value:a}=t,s=useRef(null);return useLayoutEffect(()=>{if(s.current===e){Dt(e,a);return}s.current=e;let d=bt(e);d!==a&&r(d);},[e,r,a]),null}function gn({api:e,effort:t,modelKey:r,modelPending:a,models:s,onEffortChange:d$1,onError:c$1,onModelChange:v,onSend:S,onStop:O,placeholder:U,sending:p,streaming:M}){let{attachments:h,textInput:I}=Nb(),x=m(e,c$1),A=useRef(false),m$1=s.filter(i=>!i.deprecated||b(i)===r),L=c(s,r),b$1=e$1(L),j$1=d(L,t),X=I.value.trim().length>0||h.files.length>0,F=_t({hasDraft:X,streaming:M}),u=X&&!x.isUploading&&!p&&!a;return jsxs(Vb,{accept:l,className:"fk:mx-auto fk:max-w-4xl",maxFileSize:j,maxFiles:k,multiple:true,onError:i=>c$1(i.message),onSubmit:({text:i})=>{let D=i?.trim()??"",N=x.getUploaded(h.files.map(_=>_.id));return !D&&N.length===0||x.isUploading||p||A.current||a?Promise.reject(new Error("The message cannot be sent right now.")):(A.current=true,I.clear(),S(D,N).catch(_=>{throw I.setInput(i),_}).finally(()=>{A.current=false;}))},children:[h.files.length>0?jsx(Yb,{children:jsx(n,{uploads:x})}):null,jsx(Wb,{children:jsx(Xb,{disabled:p,placeholder:U})}),jsxs(Zb,{children:[jsxs(_b,{children:[jsxs(ac,{children:[jsx(bc,{"aria-label":"Add attachments",className:"fk:border-0 fk:bg-border fk:corner-round",disabled:p,tooltip:"Add photos or files"}),jsx(cc,{children:jsx(Tb,{})})]}),m$1.length>0?jsxs(fc,{value:r??void 0,onValueChange:v,children:[jsx(gc,{"aria-label":"Model",className:"fk:min-w-44",children:jsx(jc,{placeholder:"Model"})}),jsx(hc,{children:m$1.map(i=>jsx(ic,{value:b(i),children:i.name},b(i)))})]}):null,b$1.length>1&&j$1?jsxs(fc,{value:j$1,onValueChange:d$1,children:[jsx(gc,{"aria-label":"Reasoning effort",className:"fk:min-w-28",children:jsx(jc,{placeholder:"Effort"})}),jsx(hc,{children:b$1.map(i=>jsx(ic,{value:i.value,children:i.label},i.value))})]}):null]}),jsxs("div",{className:"fk:flex fk:items-center fk:gap-3",children:[jsx(Ic,{disabled:p,onAudioRecorded:async(i,D)=>{let{text:N}=await e.transcribeAgentAudio(i,D);return N},onError:i=>c$1(i.message),onTranscriptionChange:i=>{c$1(null),I.setInput(a$3(I.value,i));}}),jsx(ec,{className:"fk:corner-round",disabled:F==="stop"?false:!u,status:F==="stop"?"streaming":void 0,onStop:()=>{O();}})]})]})]})}var Re={chatId:null,error:null,loading:false,older:[],page:null},pn=3e3;function mn({api:e,chatId:t,projectId:r,pendingFollowUp:a,pendingMessage:s,resolveDetail:d}){let{data:c,mutate:v}=ie(t?g(r).agentChat(t):null,f$1,{refreshInterval:0}),S=d(c),[O,U]=useState(Re),p=O.chatId===t?O:Re,M=useRef(t);M.current=t;let h=(o,C)=>U(y=>{if(y.chatId!==o&&M.current!==o)return y;let k=y.chatId===o?y:{...Re,chatId:o};return {...k,...C(k)}}),I=useRef({chatId:null,messages:[]}),x=S?.messages;useEffect(()=>{let o=I.current,C=x??[];if(I.current={chatId:t,messages:C},!t||o.chatId!==t)return;let y=new Set(C.map(T=>T.id)),k=o.messages.filter(T=>!y.has(T.id));k.length>0&&h(t,T=>({older:re([...T.older,...k])}));},[t,x]);let A$1=new Set(S?.messages.map(o=>o.id)??[]),m=[...p.older.filter(o=>!A$1.has(o.id)),...S?.messages??[]],L=useRef(S);L.current=S;let b=useRef(void 0);ie(t?`${g(r).agentChat(t)}?view=status`:null,f$1,{refreshInterval:()=>sn(L.current),onSuccess:o=>{let C=JSON.stringify(o),y=b.current;b.current=C;let{current:k}=L,T=k?[...k.messages].reverse().find(ve=>ve.role==="assistant"):void 0;(y&&y!==C||T&&o.latestMessage&&(T.id!==o.latestMessage.id||T.status!==o.latestMessage.status||T.workflowRunId!==o.latestMessage.workflowRunId||k?.chat.updatedAt!==o.chat.updatedAt))&&v();}});let j=async()=>{let o=p.page?.cursor??S?.nextCursor;if(!t||!o||p.loading)return;let C=t;h(C,()=>({error:null,loading:true}));try{let y=await f$1(`${g(r).agentChat(C)}?before=${encodeURIComponent(o)}`);h(C,k=>({loading:!1,older:re([...y.messages,...k.older]),page:{cursor:y.nextCursor??null,hasMore:y.hasMore??!1}}));}catch{h(C,()=>({error:"Could not load earlier messages. Try again.",loading:false}));}},{after:X,before:F,live:u}=ke(m),[i,D]=useState({ids:[],messageId:""}),N=Nt(m);for(let o of u&&i.messageId===u.id?i.ids:[])N.add(o);let _=X.filter(o=>Et(o.status)&&!N.has(o.id)),Q=F.filter(o=>!N.has(o.id)),K=(!u&&!s?Ce(m):null)?.id??null,[H,E]=useState(0),G=useRef(null);useEffect(()=>{if(!t||!K||G.current===K)return;G.current=K;let o=false,C=null;return e.startQueuedAgentChatMessage(t,K).then(()=>{},()=>{C=setTimeout(()=>{o||E(y=>y+1);},pn);}).finally(()=>{G.current=null,v();}),()=>{o=true,C&&clearTimeout(C);}},[e,t,v,K,H]);let[g$1,z]=useState(null),B=u&&g$1?.messageId===u.id?g$1.status:null;if(t&&!S&&!s)return jsxs("div",{className:"fk:flex fk:flex-1 fk:items-center fk:justify-center fk:gap-2 fk:text-sm fk:text-muted-foreground",children:[jsx(LoaderCircle,{className:"fk:size-4 fk:animate-spin"}),"Loading chat..."]});let se=!!s||!!u,Y=[...Q].reverse().find(o=>o.role==="assistant")?.id??null,V=u?B?.label??"Thinking":"Sending",de=u?B?.visible??true:true;return jsxs(_a,{className:"fk:h-0 fk:min-h-0 fk:flex-1",children:[jsx($a,{className:"fk:gap-0 fk:p-0",children:jsxs("div",{className:"fk:mx-auto fk:w-full fk:max-w-4xl fk:space-y-5 fk:pb-6 fk:pr-4",children:[p.page?.hasMore??S?.hasMore?jsx(b$2,{variant:"ghost",disabled:p.loading,onClick:()=>{j();},children:p.loading?"Loading\u2026":"Load earlier messages"}):null,p.error?jsx("p",{role:"alert",children:p.error}):null,Q.map(o=>jsx(Ft,{api:e,message:o,showSuggestion:!se&&o.id===Y},o.id)),u&&t&&S?jsx(fn,{api:e,chatId:t,detail:S,message:u,onMidTurnDelivered:o=>D({ids:o,messageId:u.id}),onStatusChange:o=>z({messageId:u.id,status:o}),onTurnUpdated:()=>{v();}}):null,s&&!u?jsx(Ne,{attachments:s.attachments,text:s.text}):null,se?jsx(A,{label:V,visible:de}):null,_.map(o=>jsx(Ft,{api:e,message:o},o.id)),a&&u?jsx(Ne,{attachments:a.attachments,text:a.text}):null]})}),jsx(bb,{})]})}var Kt=["Where should we begin?","Ready when you are","What\u2019s on the agenda today?","What\u2019s on your mind today?"];function hn(e){return [`How can I help, ${e}?`,`Good to see you, ${e}.`,`Hey, ${e}. Ready to dive in?`]}function An(e){let t=e?[...Kt,...hn(e)]:Kt;return t[Math.floor(Math.random()*t.length)]??"How can I help?"}var jt="flexkit-ai:lastModelId",_e="flexkit-ai:lastEffort";function kn(){if(typeof localStorage>"u")return null;try{let e=localStorage.getItem(jt);return e?{effort:localStorage.getItem(_e),modelKey:e}:null}catch{return null}}function Cn(e){return e.selectedModelKey?{effort:e.selectedEffort,modelKey:e.selectedModelKey}:e.awaitingChatModel?{effort:null,modelKey:null}:e.chatSelection?{effort:e.selectedEffort??e.chatSelection.effort,modelKey:e.chatSelection.modelKey}:e.lastUsed?{effort:e.selectedEffort??e.lastUsed.effort,modelKey:e.lastUsed.modelKey}:{effort:e.selectedEffort,modelKey:e.defaultModelKey}}function vn(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(jt,e.modelKey),e.effort?localStorage.setItem(_e,e.effort):localStorage.removeItem(_e);}catch{}}function Sn({projectId:e}){let{data:t,isLoading:r}=ie(g(e).agentProfile(),f$1),a=useMemo(()=>r?null:An(t?.preferredName??null),[t,r]);return jsx("div",{className:"fk:flex fk:flex-col fk:items-center fk:pb-2 fk:text-center",children:jsx("h2",{className:"fk:text-2xl fk:font-semibold",children:a??"\xA0"})})}function On(){let{api:e$1,projectId:t$1}=q(),{currentProject:r,projectSummaries:a$3}=f(),{chatId:s}=useParams(),d=useNavigate(),c$2=a(),{mutate:v$1}=useSWRConfig(),{data:S}=ie(t$1?g(t$1).tools():null,f$1),{data:O}=ie(t$1&&s?g(t$1).agentChat(s):null,f$1),U=useRef({});function p(l){return ln(U.current,s,l)}let M=p(O),h=useMemo(()=>S?.tools.models??[],[S]),[I,x]=useState(null),[A,m]=useState(null),L=useRef(null),[b$2,j]=useState(kn),[X,F]=useState(false),u=useRef(false),[i,D]=useState(null),N$1=i&&i.chatId===s?i:void 0,[_,Q]=useState(null),ue=_&&_.chatId===s?_:void 0,[K,H]=useState(null),E=M?.chat.modelId??null,G=!!s&&M===void 0,g$2=useMemo(()=>f$2(E,h)??(E?{effort:null,modelKey:E}:null),[E,h]),z=useMemo(()=>{let l=h.find(J=>!J.deprecated);return l?b(l):null},[h]),B=useMemo(()=>{let l=c(h,b$2?.modelKey??null);return b$2&&l&&!l.deprecated?b$2:null},[h,b$2]),{effort:se,modelKey:Y}=Cn({awaitingChatModel:G,chatSelection:g$2,defaultModelKey:z,lastUsed:B,selectedEffort:A,selectedModelKey:I}),V=Y?g$1({effort:se,modelKey:Y},h):null,de=G&&!I;useEffect(()=>{L.current=null,x(null),m(null),H(null);},[s]),useEffect(()=>{I===a$1&&E&&E!==a$1&&E!==L.current&&(x(null),m(null));},[E,I]);function o(l){j(l),vn(l);}function C(l){L.current=l===a$1?E:null,x(l),m(null),o({effort:null,modelKey:l});}function y(l){m(l),Y&&o({effort:l,modelKey:Y});}if(!t$1||!e$1)return jsx("div",{className:"fk:flex fk:h-full fk:items-center fk:justify-center fk:text-sm fk:text-muted-foreground",children:"Select a project to chat with the agent."});let k=e$1,T=t$1,ve=r?.title??a$3.find(l=>l.id===t$1)?.name??"your project",Ue=!s&&!N$1,fe=!!(M&&ke(M.messages).live);async function $t(l,J,te){Q({attachments:te,chatId:l,text:J});try{let w=await k.sendAgentChatFollowUp(l,{attachments:te,content:J,modelId:V});await v$1(g(T).agentChat(l),ne=>{let ae=Ut(Ae(U.current[l],ne),null,O,l,V,"turn"in w?w.turn.userMessage.createdAt:w.followUp.message.createdAt),Z="turn"in w?Lt(ae,w.turn):on(ae,w.followUp.message);return U.current[l]=Z,Z},{revalidate:!1});}finally{Q(null);}}async function Xt(l,J){if(u.current)throw new Error("A message is already being sent.");if(de)throw new Error("This chat is still loading.");u.current=true,F(true),H(null);let te=M?Ce(M.messages):null;if(s&&(fe||te)){try{!fe&&te&&await k.startQueuedAgentChatMessage(s,te.id).catch(()=>{}),await $t(s,l,J);}catch(w){throw H(w instanceof Error?w.message:"Failed to send the message."),w}finally{u.current=false,F(false);}return}D({attachments:J,chatId:s,text:l});try{let w=s?{chat:null,turn:await k.sendAgentChatMessage(s,{attachments:J,content:l,modelId:V})}:await k.startAgentChat({attachments:J,content:l,modelId:V}),{chat:ne,turn:ae}=w,Z=s??ne.id;await v$1(g(T).agentChat(Z),zt=>{let Le=Lt(Ut(Ae(U.current[Z],zt),ne,O,Z,V,ae.userMessage.createdAt),ae);return U.current[Z]=Le,Le},{revalidate:!1}),ne&&d(`${c$2}/chats/${ne.id}`),D(null);}catch(w){throw D(null),H(w instanceof Error?w.message:"Failed to send the message."),w}finally{u.current=false,F(false);}}async function Gt(){if(s)try{await k.stopAgentChat(s);}catch(l){H(l instanceof Error?l.message:"Failed to stop the turn.");}finally{await v$1(g(T).agentChat(s));}}return jsxs(Pb,{children:[jsx(cn,{draftKey:Pt(T,s)}),jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:flex-col fk:gap-2",children:[jsxs("div",{className:"fk:mb-2 fk:flex fk:shrink-0 fk:items-start fk:gap-2",children:[jsxs(b$1,{children:[jsx(c$1,{asChild:true,children:jsx(N,{className:"fk:-ml-1 fk:h-4 fk:w-4"})}),jsx(e,{children:"Toggle Sidebar"})]}),jsx(v,{orientation:"vertical",className:"fk:mt-1 fk:h-4"}),jsx("div",{className:"fk:flex fk:flex-1 fk:items-center fk:gap-2",children:jsx("h1",{className:"fk:truncate fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:s?M?.chat.title?.trim()??"Chat":"Agent"})})]}),jsx("div",{className:"fk:flex fk:min-h-0 fk:flex-1 fk:gap-4",children:jsxs("div",{className:a$2("fk:flex fk:min-h-0 fk:min-w-0 fk:flex-1 fk:flex-col fk:gap-3",Ue&&"fk:justify-center fk:pb-[12vh]"),children:[Ue?jsx(Sn,{projectId:T}):jsx(t.Provider,{value:true,children:jsx(mn,{api:k,chatId:s??null,pendingFollowUp:ue,pendingMessage:N$1,projectId:t$1,resolveDetail:p})}),jsxs("div",{className:"fk:shrink-0 fk:pb-3",children:[K?jsx("p",{className:"fk:mx-auto fk:mb-2 fk:max-w-4xl fk:text-xs fk:text-destructive",children:K}):null,jsx(gn,{api:k,effort:se,modelKey:Y,modelPending:de,models:h,sending:X,streaming:fe,onEffortChange:y,onError:H,onModelChange:C,onSend:Xt,onStop:Gt,placeholder:fe?"Add context or steer the agent...":`Ask Flexkit anything about ${ve}...`})]})]})})]})]})}export{On as AgentChatPage};//# sourceMappingURL=chat-page-EXKQ2EYM.js.map
|
|
4
|
+
//# sourceMappingURL=chat-page-EXKQ2EYM.js.map
|