1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,349102,e=>{e.v({AElig:"Ã",AMP:"&",Aacute:"Ã",Acirc:"Ã",Agrave:"Ã",Aring:"Ã
",Atilde:"Ã",Auml:"Ã",COPY:"©",Ccedil:"Ã",ETH:"Ã",Eacute:"Ã",Ecirc:"Ã",Egrave:"Ã",Euml:"Ã",GT:">",Iacute:"Ã",Icirc:"Ã",Igrave:"Ã",Iuml:"Ã",LT:"<",Ntilde:"Ã",Oacute:"Ã",Ocirc:"Ã",Ograve:"Ã",Oslash:"Ã",Otilde:"Ã",Ouml:"Ã",QUOT:'"',REG:"®",THORN:"Ã",Uacute:"Ã",Ucirc:"Ã",Ugrave:"Ã",Uuml:"Ã",Yacute:"Ã",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à ",amp:"&",aring:"Ã¥",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"Ã",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"Â",sup1:"¹",sup2:"²",sup3:"³",szlig:"Ã",thorn:"þ",times:"Ã",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"Â¥",yuml:"ÿ"})},331222,e=>{e.v({0:"�",128:"â¬",130:"â",131:"Æ",132:"â",133:"â¦",134:"â ",135:"â¡",136:"Ë",137:"â°",138:"Å ",139:"â¹",140:"Å",142:"Ž",145:"â",146:"â",147:"â",148:"â",149:"â¢",150:"â",151:"â",152:"Ë",153:"â¢",154:"Å¡",155:"âº",156:"Å",158:"ž",159:"Ÿ"})},508330,344742,94709,257859,e=>{"use strict";var t,n,a,s,r,i,l,o,d=e.i(217333),c=e.i(271645),u=e.i(593909),g=e.i(359306),m=((t=m||{}).Disabled="disabled",t.Enabled="enabled",t.Remote="remote",t),p=((n=p||{}).Chat="Chat",n.Suggestion="Suggestion",n.Task="Task",n.TextareaCompletion="TextareaCompletion",n.TextareaPopover="TextareaPopover",n),h=((a=h||{}).GuardrailsValidationFailed="GUARDRAILS_VALIDATION_FAILED",a.MessageStreamInterrupted="MESSAGE_STREAM_INTERRUPTED",a.UnknownError="UNKNOWN_ERROR",a),x=((s=x||{}).Assistant="assistant",s.Developer="developer",s.System="system",s.Tool="tool",s.User="user",s),f=((r=f||{}).Failed="Failed",r.Pending="Pending",r.Success="Success",r),v=((i=v||{}).CopilotKitLangGraphInterruptEvent="CopilotKitLangGraphInterruptEvent",i.LangGraphInterruptEvent="LangGraphInterruptEvent",i),y=((l=y||{}).Failed="Failed",l.Pending="Pending",l.Success="Success",l);e.s(["MessageRole",()=>x,"MetaEventName",()=>v],344742);var b=e.i(279751),z=e.i(507857),N=({event:e,result:t,render:n,resolve:a})=>n({event:e,result:t,resolve:a}),T=e.i(287727),S=e.i(77316),A=class{constructor(e){e.id??(e.id=(0,b.randomId)()),e.status??(e.status={code:"Success"}),e.createdAt??(e.createdAt=new Date),Object.assign(this,e)}isTextMessage(){return"TextMessage"===this.type}isActionExecutionMessage(){return"ActionExecutionMessage"===this.type}isResultMessage(){return"ResultMessage"===this.type}isAgentStateMessage(){return"AgentStateMessage"===this.type}isImageMessage(){return"ImageMessage"===this.type}},_=class extends A{constructor(e){super(e),this.type="TextMessage",this.type="TextMessage"}},I=class extends A{constructor(e){super(e),this.type="ActionExecutionMessage"}},j=class extends A{constructor(e){super(e),this.type="ResultMessage"}static decodeResult(e){return(0,z.parseJson)(e,e)}static encodeResult(e){return void 0===e?"":"string"==typeof e?e:JSON.stringify(e)}},E=class extends A{constructor(e){super(e),this.type="AgentStateMessage"}},C=class extends A{constructor(e){super(e),this.type="ImageMessage"}};e.s(["ActionExecutionMessage",()=>I,"AgentStateMessage",()=>E,"ImageMessage",()=>C,"Message",()=>A,"ResultMessage",()=>j,"Role",()=>x,"TextMessage",()=>_],94709);var M=["jpeg","png","webp","gif"];function w(e,t,n){let a=[];e=Array.isArray(e)?e:[e];let s=new Map;for(let t of e)t.isResultMessage()&&s.set(t.actionExecutionId,t.result);for(let i of e)if(i.isTextMessage())a.push(function(e){switch(e.role){case x.Developer:return{id:e.id,role:"developer",content:e.content};case x.System:return{id:e.id,role:"system",content:e.content};case x.Assistant:return{id:e.id,role:"assistant",content:e.content};case x.User:return{id:e.id,role:"user",content:e.content};default:throw Error("Unknown message role")}}(i));else if(i.isResultMessage()){var r;a.push({id:(r=i).id,role:"tool",content:r.result,toolCallId:r.actionExecutionId,toolName:r.actionName})}else if(i.isActionExecutionMessage())a.push(function(e,t,n){let a=t&&Object.values(t).some(t=>t.name===e.name),s=t&&Object.values(t).some(e=>"*"===e.name);if(!t||!a&&!s)return{id:e.id,role:"assistant",toolCalls:[k(e)],name:e.name};let r=Object.values(t).find(t=>t.name===e.name)||Object.values(t).find(e=>"*"===e.name);return{id:e.id,role:"assistant",content:"",toolCalls:[k(e)],generativeUI:(t=>{if(t)return a=>{var s;let i=null==n?void 0:n.get(e.id),l="inProgress";if(void 0!==i?l="complete":(null==(s=e.status)?void 0:s.code)!=="Pending"&&(l="executing"),"string"==typeof(null==a?void 0:a.result))try{a.result=JSON.parse(a.result)}catch(e){}if("string"==typeof i)try{i=JSON.parse(i)}catch(e){}let o={status:(null==a?void 0:a.status)||l,args:e.arguments||{},result:(null==a?void 0:a.result)||i||void 0,messageId:e.id};
1if("*"===r.name)return t({...o,...a,name:e.name});{let e=(null==a?void 0:a.respond)??(()=>{});return t({...o,...a,respond:e})}}})(r.render),name:e.name}}(i,t,s));else if(i.isAgentStateMessage())a.push(function(e,t){if(t&&Object.values(t).some(t=>t.name===e.agentName)){let n=Object.values(t).find(t=>t.name===e.agentName);return{id:e.id,role:"assistant",generativeUI:(t=>{if(t)return n=>t({state:e.state})})(n.render),agentName:e.agentName,state:e.state}}return{id:e.id,role:"assistant",agentName:e.agentName,state:e.state}}(i,n));else if(i.isImageMessage())a.push(function(e){var t;if(t=e.format,!M.includes(t))throw Error(`Invalid image format: ${e.format}. Supported formats are: ${M.join(", ")}`);if(!e.bytes||"string"!=typeof e.bytes||""===e.bytes.trim())throw Error("Image bytes must be a non-empty string");let n=e.role===x.Assistant?"assistant":"user";return{id:e.id,role:n,content:"",image:{format:e.format,bytes:e.bytes}}}(i));else throw Error("Unknown message type");return a}function k(e){return{id:e.id,function:{name:e.name,arguments:JSON.stringify(e.arguments)},type:"function"}}e.s(["gqlToAGUI",()=>w],257859);var R=e.i(50270),O=R.z.object({name:R.z.string(),arguments:R.z.string()}),L=R.z.object({id:R.z.string(),type:R.z.literal("function"),function:O}),P=R.z.object({id:R.z.string(),role:R.z.string(),content:R.z.string().optional(),name:R.z.string().optional()}),$=R.z.object({type:R.z.literal("text"),text:R.z.string()}),U=R.z.object({type:R.z.literal("binary"),mimeType:R.z.string(),id:R.z.string().optional(),url:R.z.string().optional(),data:R.z.string().optional(),filename:R.z.string().optional()}),D=(e,t)=>{e.id||e.url||e.data||t.addIssue({code:R.z.ZodIssueCode.custom,message:"BinaryInputContent requires at least one of id, url, or data.",path:["id"]})};U.superRefine((e,t)=>{D(e,t)});var K=R.z.discriminatedUnion("type",[$,U]).superRefine((e,t)=>{"binary"===e.type&&D(e,t)}),G=P.extend({role:R.z.literal("developer"),content:R.z.string()}),H=P.extend({role:R.z.literal("system"),content:R.z.string()}),F=P.extend({role:R.z.literal("assistant"),content:R.z.string().optional(),toolCalls:R.z.array(L).optional()}),X=P.extend({role:R.z.literal("user"),content:R.z.union([R.z.string(),R.z.array(K)])}),q=R.z.object({id:R.z.string(),content:R.z.string(),role:R.z.literal("tool"),toolCallId:R.z.string(),error:R.z.string().optional()}),V=R.z.object({id:R.z.string(),role:R.z.literal("activity"),activityType:R.z.string(),content:R.z.record(R.z.any())}),J=R.z.discriminatedUnion("role",[G,H,F,X,q,V]);R.z.union([R.z.literal("developer"),R.z.literal("system"),R.z.literal("assistant"),R.z.literal("user"),R.z.literal("tool"),R.z.literal("activity")]);var Y=R.z.object({description:R.z.string(),value:R.z.string()}),B=R.z.object({name:R.z.string(),description:R.z.string(),parameters:R.z.any()}),W=R.z.object({threadId:R.z.string(),runId:R.z.string(),parentRunId:R.z.string().optional(),state:R.z.any(),messages:R.z.array(J),tools:R.z.array(B),context:R.z.array(Y),forwardedProps:R.z.any()}),Q=R.z.any(),Z=class extends Error{constructor(e){super(e)}},ee=class extends Z{constructor(){super("Connect not implemented. This method is not supported by the current agent.")}},et=R.z.union([R.z.literal("developer"),R.z.literal("system"),R.z.literal("assistant"),R.z.literal("user")]),en=((o=en||{}).TEXT_MESSAGE_START="TEXT_MESSAGE_START",o.TEXT_MESSAGE_CONTENT="TEXT_MESSAGE_CONTENT",o.TEXT_MESSAGE_END="TEXT_MESSAGE_END",o.TEXT_MESSAGE_CHUNK="TEXT_MESSAGE_CHUNK",o.THINKING_TEXT_MESSAGE_START="THINKING_TEXT_MESSAGE_START",o.THINKING_TEXT_MESSAGE_CONTENT="THINKING_TEXT_MESSAGE_CONTENT",o.THINKING_TEXT_MESSAGE_END="THINKING_TEXT_MESSAGE_END",o.TOOL_CALL_START="TOOL_CALL_START",o.TOOL_CALL_ARGS="TOOL_CALL_ARGS",o.TOOL_CALL_END="TOOL_CALL_END",o.TOOL_CALL_CHUNK="TOOL_CALL_CHUNK",o.TOOL_CALL_RESULT="TOOL_CALL_RESULT",o.THINKING_START="THINKING_START",o.THINKING_END="THINKING_END",o.STATE_SNAPSHOT="STATE_
1SNAPSHOT",o.STATE_DELTA="STATE_DELTA",o.MESSAGES_SNAPSHOT="MESSAGES_SNAPSHOT",o.ACTIVITY_SNAPSHOT="ACTIVITY_SNAPSHOT",o.ACTIVITY_DELTA="ACTIVITY_DELTA",o.RAW="RAW",o.CUSTOM="CUSTOM",o.RUN_STARTED="RUN_STARTED",o.RUN_FINISHED="RUN_FINISHED",o.RUN_ERROR="RUN_ERROR",o.STEP_STARTED="STEP_STARTED",o.STEP_FINISHED="STEP_FINISHED",o),ea=R.z.object({type:R.z.nativeEnum(en),timestamp:R.z.number().optional(),rawEvent:R.z.any().optional()}).passthrough(),es=ea.extend({type:R.z.literal("TEXT_MESSAGE_START"),messageId:R.z.string(),role:et.default("assistant")}),er=ea.extend({type:R.z.literal("TEXT_MESSAGE_CONTENT"),messageId:R.z.string(),delta:R.z.string().refine(e=>e.length>0,"Delta must not be an empty string")}),ei=ea.extend({type:R.z.literal("TEXT_MESSAGE_END"),messageId:R.z.string()}),el=ea.extend({type:R.z.literal("TEXT_MESSAGE_CHUNK"),messageId:R.z.string().optional(),role:et.optional(),delta:R.z.string().optional()}),eo=ea.extend({type:R.z.literal("THINKING_TEXT_MESSAGE_START")}),ed=er.omit({messageId:!0,type:!0}).extend({type:R.z.literal("THINKING_TEXT_MESSAGE_CONTENT")}),ec=ea.extend({type:R.z.literal("THINKING_TEXT_MESSAGE_END")}),eu=ea.extend({type:R.z.literal("TOOL_CALL_START"),toolCallId:R.z.string(),toolCallName:R.z.string(),parentMessageId:R.z.string().optional()}),eg=ea.extend({type:R.z.literal("TOOL_CALL_ARGS"),toolCallId:R.z.string(),delta:R.z.string()}),em=ea.extend({type:R.z.literal("TOOL_CALL_END"),toolCallId:R.z.string()}),ep=ea.extend({messageId:R.z.string(),type:R.z.literal("TOOL_CALL_RESULT"),toolCallId:R.z.string(),content:R.z.string(),role:R.z.literal("tool").optional()}),eh=ea.extend({type:R.z.literal("TOOL_CALL_CHUNK"),toolCallId:R.z.string().optional(),toolCallName:R.z.string().optional(),parentMessageId:R.z.string().optional(),delta:R.z.string().optional()}),ex=ea.extend({type:R.z.literal("THINKING_START"),title:R.z.string().optional()}),ef=ea.extend({type:R.z.literal("THINKING_END")}),ev=ea.extend({type:R.z.literal("STATE_SNAPSHOT"),snapshot:Q}),ey=ea.extend({type:R.z.literal("STATE_DELTA"),delta:R.z.array(R.z.any())}),eb=ea.extend({type:R.z.literal("MESSAGES_SNAPSHOT"),messages:R.z.array(J)}),ez=ea.extend({type:R.z.literal("ACTIVITY_SNAPSHOT"),messageId:R.z.string(),activityType:R.z.string(),content:R.z.record(R.z.any()),replace:R.z.boolean().optional().default(!0)}),eN=ea.extend({type:R.z.literal("ACTIVITY_DELTA"),messageId:R.z.string(),activityType:R.z.string(),patch:R.z.array(R.z.any())}),eT=ea.extend({type:R.z.literal("RAW"),event:R.z.any(),source:R.z.string().optional()}),eS=ea.extend({type:R.z.literal("CUSTOM"),name:R.z.string(),value:R.z.any()}),eA=ea.extend({type:R.z.literal("RUN_STARTED"),threadId:R.z.string(),runId:R.z.string(),parentRunId:R.z.string().optional(),input:W.optional()}),e_=ea.extend({type:R.z.literal("RUN_FINISHED"),threadId:R.z.string(),runId:R.z.string(),result:R.z.any().optional()}),eI=ea.extend({type:R.z.literal("RUN_ERROR"),message:R.z.string(),code:R.z.string().optional()}),ej=ea.extend({type:R.z.literal("STEP_STARTED"),stepName:R.z.string()}),eE=ea.extend({type:R.z.literal("STEP_FINISHED"),stepName:R.z.string()});function eC({suggestions:e,onInProgress:t,onSubmitMessage:n,onStopGeneration:a,onReloadMessages:s}={}){var r,i,l;let o,{copilotkit:m}=(0,d.useCopilotKit)(),{threadId:p,agentSession:h}=(0,u.useCopilotContext)(),x=(0,d.useCopilotChatConfiguration)(),[f,y]=(0,c.useState)(!1),_=null!=(r=null==x?void 0:x.agentId)?r:"default",{agent:I}=(0,d.useAgent)({agentId:_});(0,c.useEffect)(()=>{let e=e=>(0,g.__async)(this,null,function*(){y(!1);try{yield m.connectAgent({agent:e}),y(!0)}catch(e){e instanceof ee||console.error("CopilotChat: connectAgent failed",e)}});return I&&(null==x?void 0:x.threadId)&&I.threadId!==x.threadId&&(I.threadId=x.threadId,e(I)),()=>{}},[null==x?void 0:x.threadId,I,m,_]),(0,c.useEffect)(()=>{null==t||t(!!(null==I?void 0:I.isRunning))},[null==I?void 0:I.isRunning,t]);let j=function(e){var t;let{interruptActions:n,agentSession:a,threadId:s,interruptEventQueue:r,addInterruptEvent:i,resolveInterruptEvent:l}=(0,u.useCopilotContext)(),o=(0,d.useCopilotChatConfiguration)(),m=function(e){let{agent:t}=(0,d.useAgent)({agentId:e}),n=(0,c.useRef)("start");return(0,c.useEffect)(()=>
1{if(!t)return;let e=t.subscribe({onStepStartedEvent:({event:e})=>{n.current=e.stepName},onRunStartedEvent:()=>{n.current="start"},onRunFinishedEvent:()=>{n.current="end"}});return()=>{e.unsubscribe()}},[t]),n.current}(null!=(t=null==o?void 0:o.agentId)?t:"default");(0,c.useEffect)(()=>{if(!e)return;let t=null,{unsubscribe:n}=e.subscribe({onCustomEvent:({event:e})=>{if("on_interrupt"===e.name){let n={name:v.LangGraphInterruptEvent,type:e.type,value:(0,z.parseJson)(e.value,e.value)};t={eventId:(0,b.dataToUUID)(n,"interruptEvents"),threadId:s,event:n}}},onRunStartedEvent:()=>{t=null},onRunFinalized:()=>{t&&(i(t),t=null)}});return()=>{n()}},[e,s]);let p=(0,c.useCallback)((t,n)=>{null==e||e.runAgent({forwardedProps:{command:{resume:n}}}),l(s,t,null!=n?n:"")},[e,s]);return(0,c.useMemo)(()=>{let e=(r[s]||[]).find(e=>!e.event.response);if(!e||!a)return null;let t=Object.values(n).find(t=>!t.enabled||t.enabled({eventValue:e.event.value,agentMetadata:(0,g.__spreadProps)((0,g.__spreadValues)({},a),{nodeName:m})}));if(!t)return null;let{render:i,handler:l}=t,o=t=>{p(e.eventId,t)},d=null;return(l&&(d=l({event:e.event,resolve:o})),i)?c.default.createElement(N,{event:e.event,result:d,render:i,resolve:o}):null},[n,r,s,a,p])}(I),E=eM((0,c.useCallback)(e=>{var t;let n=(null!=(t=null==I?void 0:I.messages)?t:[]).filter(t=>t.id!==e);null==I||I.setMessages(n)},[null==I?void 0:I.setMessages,null==I?void 0:I.messages])),C=(0,c.useCallback)(e=>E.current(e),[E]),M=(0,d.useSuggestions)({agentId:_}),k=(0,T.useAsyncCallback)(e=>(0,g.__async)(this,null,function*(){var t;let n=null!=(t=null==I?void 0:I.messages)?t:[];if(0===n.length)return;let a=n.findIndex(t=>t.id===e);if(-1===a)return void console.warn(`Message with id ${e} not found`);let s=n[a].role;if("assistant"!==s)return void console.warn(`Regenerate cannot be performed on ${s} role`);let r=[n[0]];if(n.length>2&&0!==a){let e=n.slice(0,a).reverse().find(e=>"user"===e.role);if(e){let t=n.findIndex(t=>t.id===e.id);r=n.slice(0,t+1)}else r=[n[0]]}else n.length>2&&0===a&&(r=[n[0],n[1]]);if(null==I||I.setMessages(r),I)try{yield m.runAgent({agent:I})}catch(e){console.error("CopilotChat: runAgent failed during reload",e)}}),[null==I?void 0:I.setMessages,null==m?void 0:m.runAgent]),R=(0,T.useAsyncCallback)((e,t)=>(0,g.__async)(this,null,function*(){var a;if(!I)return;let s=null==(a=null==t?void 0:t.followUp)||a;if((null==t?void 0:t.clearSuggestions)&&m.clearSuggestions(_),n){let t="string"==typeof e.content?e.content:e.content&&"text"in e.content?e.content.text:e.content&&"filename"in e.content?e.content.filename:"";try{yield n(t)}catch(e){console.error("Error in onSubmitMessage:",e)}}if(null==I||I.addMessage(e),s)try{yield m.runAgent({agent:I})}catch(e){console.error("CopilotChat: runAgent failed",e)}}),[I,m,_,n]),O=(0,T.useAsyncCallback)((e,t)=>(0,g.__async)(this,null,function*(){return R(w([e])[0],t)}),[R]),L=(0,c.useCallback)(e=>{var t,n;return e.every(e=>e instanceof A)?null==(t=null==I?void 0:I.setMessages)?void 0:t.call(I,w(e)):null==(n=null==I?void 0:I.setMessages)?void 0:n.call(I,e)},[null==I?void 0:I.setMessages,I]),P=eM(k),$=(0,T.useAsyncCallback)(e=>(0,g.__async)(this,null,function*(){var t;return null==s||s({messageId:e,currentAgentName:null==I?void 0:I.agentId,messages:null!=(t=null==I?void 0:I.messages)?t:[]}),yield P.current(e)}),[P,I,s]),U=(0,c.useCallback)(()=>{var e,t;return null==a||a({currentAgentName:null==I?void 0:I.agentId,messages:null!=(e=null==I?void 0:I.messages)?e:[]}),null==(t=null==I?void 0:I.abortRun)?void 0:t.call(I)},[a,I]),D=eM(()=>{null==I||I.setMessages([]),null==I||I.setState(null)}),K=(0,c.useCallback)(()=>D.current(),[D]),G=(o=(0,d.useRenderToolCall)(),(0,c.useCallback)((e,t)=>{var n;if(!(null==(n=null==e?void 0:e.toolCalls)?void 0:n.length))return null;let a=e.toolCalls[0];if(!a)return null;let s=null==t?void 0:t.find(e=>"tool"===e.role&&e.toolCallId===a.id);return()=>o({toolCall:a,toolMessage:s})},[o])),H=(0,d.useRenderCustomMessages)(),F=function({copilotkit:e,agent:t,agentId:n,threadId:a}){return(0,c.useMemo)(()=>e&&t?({message:s,position:r})=>{var i;let l=null!=(i=null!=a?a:t.threadId)?i:"default",o=s.runId||e.getRunIdForMessage(n,l,s.id)||`pending:${s.id}`,d=Math.max(t.messages.findIndex(e=>e.id===s.id),0),u={message:s,position:r,runId:o,messageIndex:d,messageIndexInRun:0,numberOfMessagesInRun:1,agentId:n,stateSnapshot:s.state};return(0,c.createElement)(S.CoAgentStateRenderBridge,u)}:null,[t,n,e,a])}({copilotkit:m,agent:I,agentId:_,threadId:null!=(i=null==x?void 0:x.threadId)?i:p}),X=null!=(l=null==I?void 0:I.messages)?l:[],q=(0,c.useMemo)(()=>{var e,t;let n=X.map(e=>{if("assistant"!==e.role)return e;let t=G(e,X);if(t){let n=t();if(n)return(0,g.__spreadProps)((0,g.__spreadValues)({},e),{generativeUI:()=>n})}let n=F||H?()=>{var t;if(F)return F({message:e,position:"before"});try{return null!=(t=null==H?void 0:H({message:e,position:"before"}))?t:null}catch(e){return console.warn("[CopilotKit] renderCustomMessages failed, falling back to legacy renderer",e),null}}:null;return n?(0,g.__spreadProps)((0,g.__spreadValues)({},e),{generativeUI:n,generativeUIPosition:"before"}):e}),a=n.some(e=>"assistant"===e.role),s=!!(H&&(null==(e=null==m?void 0:m.getAgent)?void 0:e.call(m,_))),r=F||(s?H:null),i=!!(null==I?void 0:I.isRunning)||!!((null==I?void 0:I.state)&&Object.keys(I.state).length),l=null!=(t=null!=p?p:null==I?void 0:I.threadId)?t:"default",o=-1;for(let e=n.length-1;e>=0;e-=1)if("user"===n[e].role){o=e;break}let d=o>=0?n[o].id:void 0,c=d?m.getRunIdForMessage(_,l,d)||`pending:${d}`:void 0,u=o>=0?n.slice(o+1).some(e=>"assistant"===e.role):a;
1if(r&&i&&!u){let e={id:c?`coagent-state-render-${_}-${c}`:`coagent-state-render-${_}`,role:"assistant",content:"",name:"coagent-state-render",runId:c};n=[...n,(0,g.__spreadProps)((0,g.__spreadValues)({},e),{generativeUIPosition:"before",generativeUI:()=>r({message:e,position:"before"})})]}return n},[null==I?void 0:I.messages,G,X,H,F,_,m,null==I?void 0:I.isRunning,null==I?void 0:I.state]),V=(0,c.useMemo)(()=>Array.isArray(e)?{suggestions:e.map(e=>(0,g.__spreadProps)((0,g.__spreadValues)({},e),{isLoading:!1})),isLoading:!1}:M,[e,M]);return{messages:q,sendMessage:R,appendMessage:O,setMessages:L,reloadMessages:$,stopGeneration:U,reset:K,deleteMessage:C,isAvailable:f,isLoading:!!(null==I?void 0:I.isRunning),suggestions:V.suggestions,setSuggestions:e=>m.addSuggestionsConfig({suggestions:e}),generateSuggestions:()=>(0,g.__async)(this,null,function*(){return m.reloadSuggestions(_)}),resetSuggestions:()=>m.clearSuggestions(_),isLoadingSuggestions:V.isLoading,interrupt:j,agent:I,threadId:p}}function eM(e){let t=(0,c.useRef)(e);return(0,c.useEffect)(()=>{t.current=e},[e]),t}R.z.discriminatedUnion("type",[es,er,ei,el,ex,ef,eo,ed,ec,eu,eg,em,eh,ep,ev,ey,eb,ez,eN,eT,eS,eA,e_,eI,ej,eE]),e.s(["useCopilotChatInternal",()=>eC],508330)},444632,e=>{"use strict";var t=e.i(508330);function n(e={}){let{visibleMessages:a,appendMessage:s,reloadMessages:r,stopGeneration:i,reset:l,isLoading:o,isAvailable:d,runChatCompletion:c,mcpServers:u,setMcpServers:g}=(0,t.useCopilotChatInternal)(e);return{visibleMessages:a,appendMessage:s,reloadMessages:r,stopGeneration:i,reset:l,isLoading:o,isAvailable:d,runChatCompletion:c,mcpServers:u,setMcpServers:g}}e.s(["useCopilotChat",()=>n])},636942,e=>{"use strict";var t=e.i(843476),n=e.i(271645),a=e.i(435933),s=e.i(444632);let r=[{month:"Jan",revenue:184e3,orders:1240,region:"NA"},{month:"Feb",revenue:196500,orders:1310,region:"NA"},{month:"Mar",revenue:212800,orders:1402,region:"EU"},{month:"Apr",revenue:225300,orders:1488,region:"EU"},{month:"May",revenue:241e3,orders:1560,region:"NA"},{month:"Jun",revenue:258400,orders:1622,region:"APAC"},{month:"Jul",revenue:273900,orders:1705,region:"APAC"},{month:"Aug",revenue:289100,orders:1788,region:"NA"},{month:"Sep",revenue:305600,orders:1854,region:"EU"},{month:"Oct",revenue:332200,orders:1973,region:"NA"},{month:"Nov",revenue:358700,orders:2110,region:"APAC"},{month:"Dec",revenue:401450,orders:2342,region:"NA"}],i=(()=>{let e=["organic","ads","referral","partner"],t=[];for(let n=0;n<30;n++){let a=(n+1).toString().padStart(2,"0"),s=80*Math.sin(n/4)+220,r=7*n%13-6;t.push({date:`2026-04-${a}`,signups:Math.round(s+r+4*n),source:e[n%e.length]})}return t})(),l={sales_q4:r,signups_2026:i},o=[{id:"sales_q4",name:"Sales Q4",description:"Monthly revenue, order volume, and region for the year.",fields:["month","revenue","orders","region"],rowCount:r.length},{id:"signups_2026",name:"Signups 2026",description:"Daily signups by acquisition source for April 2026.",fields:["date","signups","source"],rowCount:i.length}],d={violet:{ring:"ring-violet-500/40",glow:"from-violet-500/30",text:"text-violet-300"},emerald:{ring:"ring-emerald-500/40",glow:"from-emerald-500/30",text:"text-emerald-300"},amber:{ring:"ring-amber-500/40",glow:"from-amber-500/30",text:"text-amber-300"},sky:{ring:"ring-sky-500/40",glow:"from-sky-500/30",text:"text-sky-300"},rose:{ring:"ring-rose-500/40",glow:"from-rose-500/30",text:"text-rose-300"}};function c({widget:e,compact:n=!1}){let{label:a,value:s,delta:r,trend:i,accent:l="violet"}=e.config,o=d[l]??d.violet;return(0,t.jsxs)("div",{className:`group relative overflow-hidden rounded-2xl bg-zinc-900/70 p-5 ring-1 ${o.ring} backdrop-blur-sm transition-all duration-500 hover:-translate-y-0.5 hover:bg-zinc-900/90 ${n?"":"min-h-[140px]"}`,children:[(0,t.jsx)("div",{className:`pointer-events-none absolute inset-0 bg-gradient-to-br ${o.glow} via-transparent to-transparent opacity-60`,"aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative flex h-full flex-col justify-between gap-3",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-[0.18em] text-zinc-400",children:a}),(0,t.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:`text-3xl font-semibold tabular-nums text-zinc-50 ${n?"text-2xl":"md:text-4xl"}`,children:s}),"number"==typeof r&&(0,t.jsxs)("span",{className:`text-sm font-medium ${"up"===i?"text-emerald-300":"down"===i?"text-rose-300":"text-zinc-400"}
1`,children:["up"===i?"â²":"down"===i?"â¼":"â¢"," ",Math.abs(r),"%"]})]})]})]})}let u={violet:"#a78bfa",emerald:"#34d399",amber:"#fbbf24",sky:"#38bdf8",rose:"#fb7185",cyan:"#22d3ee"},g=["#a78bfa","#34d399","#fbbf24","#38bdf8","#fb7185","#22d3ee"];function m({widget:e,compact:a=!1}){let{title:s,type:r,datasetId:i,xKey:o,yKeys:d,accent:c}=e.config,g=(0,n.useMemo)(()=>l[i]??[],[i]),m=u[c??"violet"]??u.violet;return(0,t.jsxs)("div",{className:"group relative overflow-hidden rounded-2xl bg-zinc-900/70 p-5 ring-1 ring-zinc-800 backdrop-blur-sm transition-all duration-500 hover:bg-zinc-900/90",children:[(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-br from-zinc-800/40 via-transparent to-transparent","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-zinc-100",children:s}),(0,t.jsxs)("p",{className:"mt-0.5 text-xs text-zinc-500",children:[r," · ",i.replace(/_/g," ")]})]}),(0,t.jsx)("span",{className:"rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wider",style:{backgroundColor:`${m}22`,color:m},children:d.join(" / ")})]}),(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(p,{type:r,data:g,xKey:o,yKeys:d,color:m,width:a?320:560,height:a?140:220})})]})]})}function p({type:e,data:n,xKey:a,yKeys:s,color:r,width:i,height:l}){return n.length&&s.length?"pie"===e?(0,t.jsx)(f,{data:n,xKey:a,yKey:s[0],width:i,height:l}):(0,t.jsx)(x,{type:e,data:n,xKey:a,yKeys:s,color:r,width:i,height:l}):(0,t.jsx)(h,{width:i,height:l})}function h({width:e,height:n}){return(0,t.jsx)("svg",{viewBox:`0 0 ${e} ${n}`,className:"w-full text-zinc-700",children:(0,t.jsx)("text",{x:e/2,y:n/2,textAnchor:"middle",className:"fill-current text-xs",children:"No data"})})}function x({type:e,data:a,xKey:s,yKeys:r,color:i,width:l,height:o}){let d=l-72,c=o-44,u=(0,n.useId)(),m=a.flatMap(e=>r.map(t=>Number(e[t]??0))),p=Math.max(...m,1),h=Math.min(...m,0),x=p-h||1,f=e=>36+(1===a.length?d/2:e/(a.length-1)*d),v=Math.max(1,Math.floor(a.length/6));return(0,t.jsxs)("svg",{viewBox:`0 0 ${l} ${o}`,className:"w-full",role:"img","aria-label":"chart",children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:`${u}-grad`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:i,stopOpacity:"0.5"}),(0,t.jsx)("stop",{offset:"100%",stopColor:i,stopOpacity:"0"})]})}),[0,.25,.5,.75,1].map(e=>(0,t.jsx)("line",{x1:36,x2:l-36,y1:22+c*e,y2:22+c*e,stroke:"#27272a",strokeDasharray:"2 4",strokeWidth:1},e)),r.map((n,s)=>{let l=r.length>1?g[s%g.length]:i,o=a.map((e,t)=>({x:f(t),y:22+c-(Number(e[n]??0)-h)/x*c}));if("bar"===e){let e=d/a.length,i=Math.max(2,.7*e/r.length);return(0,t.jsx)("g",{children:o.map((n,a)=>{let o=36+a*e+(e-i*r.length)/2+s*i,d=22+c-n.y;return(0,t.jsx)("rect",{x:o,y:n.y,width:i,height:Math.max(0,d),rx:2,fill:l,opacity:0,style:{animation:`dashbar 600ms ease-out ${40*a}ms forwards`}},a)})},n)}let m=o.map((e,t)=>`${0===t?"M":"L"} ${e.x.toFixed(2)} ${e.y.toFixed(2)}`).join(" "),p=`${m} L ${f(a.length-1).toFixed(2)} ${(22+c).toFixed(2)} L ${f(0).toFixed(2)} ${(22+c).toFixed(2)} Z`;return(0,t.jsxs)("g",{children:["area"===e&&(0,t.jsx)("path",{d:p,fill:`url(#${u}-grad)`,opacity:0,style:{animation:"dashfade 800ms ease-out forwards"}}),(0,t.jsx)("path",{d:m,fill:"none",stroke:l,strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round",pathLength:1,style:{strokeDasharray:1,strokeDashoffset:1,animation:"dashdraw 900ms ease-out forwards"}}),o.map((e,n)=>(0,t.jsx)("circle",{cx:e.x,cy:e.y,r:2.5,fill:"#0a0a0a",stroke:l,strokeWidth:1.5,opacity:0,style:{animation:`dashfade 400ms ease-out ${300+30*n}ms forwards`}},n))]},n)}),a.map((e,n)=>n%v!=0&&n!==a.length-1?null:(0,t.jsx)("text",{x:f(n),y:o-6,textAnchor:"middle",className:"fill-zinc-500 text-[10px]",children:String(e[s]??"").slice(0,8)},n)),(0,t.jsx)("style",{children:` 2 @keyframes dashdraw { 3 to { stroke-dashoffset: 0; } 4 } 5 @keyframes dashfade { 6 to { opacity: 1; } 7 } 8 @keyframes dashbar { 9 from { opacity: 0; transform: translateY(8px); } 10 to { opacity: 1; transform: translateY(0); } 11 } 12 `})]})}function f({data:e,xKey:n,yKey:a,width:s,height:r}){var i;let l=new Map;for(let t of e){let e=String(t[n]??""),s=Number(t[a]??0);l.set(e,(l.get(e)??0)+s)}let o=[...l.entries()],d=o.reduce((e,[,t])=>e+t,0)||1,c=s/2,u=r/2,m=Math.min(s,r)/2-18,p=.55*m,h=-Math.PI/2,x=o.map(([e,t],n)=>{let a=t/d*Math.PI*2,s=h,r=h+a;h=r;let i=+(a>Math.PI),l=c+Math.cos(s)*m,o=u+Math.sin(s)*m,x=c+Math.cos(r)*m,f=u+Math.sin(r)*m,v=c+Math.cos(r)*p,y=u+Math.sin(r)*p,b=c+Math.cos(s)*p,z=u+Math.sin(s)*p;return{label:e,value:t,path:`M ${l} ${o} A ${m} ${m} 0 ${i} 1 ${x} ${f} L ${v} ${y} A ${p} ${p} 0 ${i} 0 ${b} ${z} Z`,color:g[n%g.length]}});return(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsxs)("svg",{viewBox:`0 0 ${s} ${r}`,className:"w-full max-w-[260px]",role:"img","aria-label":"pie chart",children:[x.map((e,n)=>(0,t.jsx)("path",{d:e.path,fill:e.color,opacity:0,style:{animation:`dashfade 500ms ease-out ${80*n}ms forwards`}},e.label)),(0,t.jsx)("text",{x:c,y:u-4,textAnchor:"middle",className:"fill-zinc-300 text-xs",children:"Total"}),(0,t.jsx)("text",{x:c,y:u+14,textAnchor:"middle",className:"fill-zinc-50 text-base font-semibold",children:(i=d)>=1e6?`${(i/1e6).toFixed(1)}M`:i>=1e3?`${(i/1e3).toFixed(1)}K`:String(i)}),(0,t.jsx)("style",{children:"@keyframes dashfade { to { opacity: 1; } }"})]}),(0,t.jsx)("ul",{className:"flex flex-1 flex-col gap-2 text-xs",children:x.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between gap-2 text-zinc-300",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:e.color}}),e.label]}),(0,t.jsxs)("span",{className:"tabular-nums text-zinc-400",children:[Math.round(e.value/d*100),"%"]})]},e.label))})]})}function v({widget:e,onChange:n}){let{field:a,options:s,selected:r}=e.config,i=t=>n?.(e.id,t);return(0,t.jsxs)("div",{className:"group rounded-2xl bg-zinc-900/70 p-4 ring-1 ring-zinc-800 backdrop-blur-sm transition-all duration-300 hover:bg-zinc-900/90",children:[(0,t.jsxs)("p",{className:"mb-2 text-[10px] font-medium uppercase tracking-[0.18em] text-zinc-500",children:["Filter · ",a]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)("button",{type:"button",onClick:()=>i(""),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${!r?"bg-violet-500/20 text-violet-200 ring-1 ring-violet-400/30":"bg-zinc-800/60 text-zinc-400 hover:bg-zinc-800"}`,children:"All"}),s.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>i(e),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${r===e?"bg-violet-500/20 text-violet-200 ring-1 ring-violet-400/30":"bg-zinc-800/60 text-zinc-400 hover:bg-zinc-800"}`,children:e},e))]})]})}function y({widgets:e,onRemove:n,onFilterChange:a,onClear:s,thinking:r}){if(0===e.length)return(0,t.jsx)(N,{thinking:r});let i=e.filter(e=>"kpi"===e.kind),l=e.filter(e=>"filter"===e.kind),o=e.filter(e=>"chart"===e.kind);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("p",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.2em] text-zinc-500","aria-live":"polite",children:[e.length," widget",1===e.length?"":"s"," on canvas",r&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-violet-500/15 px-2 py-0.5 text-[10px] tracking-wider text-violet-200",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 animate-pulse rounded-full bg-violet-300"}),"streaming"]})]}),s&&(0,t.jsx)("button",{type:"button",onClick:s,className:"rounded-full border border-zinc-800 px-3 py-1 text-xs font-medium text-zinc-400 transition-colors hover:border-zinc-700 hover:text-zinc-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-violet-400/60",children:"Clear canvas"})]}),i.length>0&&(0,t.jsx)("section",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:i.map(e=>(0,t.jsx)(b,{id:e.id,onRemove:n,children:(0,t.jsx)(c,{widget:e})},e.id))}),l.length>0&&(0,t.jsx)("section",{className:"flex flex-wrap gap-3",children:l.map(e=>(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(v,{widget:e,onChange:a}),n&&(0,t.jsx)(z,{onClick:()=>n(e.id)})]},e.id))}),o.length>0&&(0,t.jsx)("section",{className:"grid gap-5 lg:grid-cols-2",children:o.map(e=>(0,t.jsx)(b,{id:e.id,onRemove:n,children:(0,t.jsx)(m,{widget:e})},e.id))})]})}function b({id:e,onRemove:n,children:a}){return(0,t.jsxs)("div",{className:"group relative animate-[dashpop_500ms_ease-out_both]",children:[a,n&&(0,t.jsx)(z,{onClick:()=>n(e)}),(0,t.jsx)("style",{children:`@keyframes dashpop { 13 from { opacity: 0; transform: translateY(8px) scale(0.98); } 14 to { opacity: 1; transform: translateY(0) scale(1); } 15 }`})]})}function z({onClick:e}){return(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":"Remove widget",className:"absolute right-3 top-3 hidden h-7 w-7 items-center justify-center rounded-full bg-zinc-800/80 text-zinc-400 ring-1 ring-zinc-700 transition-colors hover:bg-zinc-700 hover:text-zinc-100 group-hover:flex",children:(0,t.jsx)("span",{className:"text-xs leading-none",children:"Ã"})})}function N({thinking:e}){return(0,t.jsxs)("div",{className:"relative overflow-hidden rounded-3xl border border-dashed border-zinc-800 bg-zinc-950/40 p-10 text-center sm:p-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 -z-10 bg-[radial-gradient(circle_at_30%_20%,rgba(167,139,250,0.18),transparent_50%),radial-gradient(circle_at_70%_80%,rgba(56,189,248,0.14),transparent_55%)]","aria-hidden":!0}),(0,t.jsx)("p",{className:"mb-2 inline-flex items-center gap-2 text-sm font-medium uppercase tracking-[0.2em] text-zinc-500","aria-live":"polite",children:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-violet-400/70"}),(0,t.jsx)("span",{className:"relative h-2 w-2 rounded-full bg-violet-300"})]}),"Reasoningâ¦"]}):"Empty canvas"}),(0,t.jsx)("h2",{className:"mx-auto mb-3 max-w-md text-2xl font-semibold text-zinc-100 md:text-3xl",children:e?"Streaming widgets inâ¦":"Ask the copilot to build you a dashboard."}),(0,t.jsxs)("p",{className:"mx-auto max-w-lg text-sm text-zinc-400",children:["Try"," ",(0,t.jsx)("span",{className:"rounded-md bg-zinc-800/80 px-1.5 py-0.5 font-mono text-xs text-zinc-200",children:"build me a dashboard for Q4 sales"})," ","â KPIs, charts, and filters will stream onto the canvas as the AI calls each tool."]})]})}function T({datasets:e,activeDatasetId:a,data:s,onSelect:r,onPasteCsv:i}
15){let[l,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(""),[u,g]=(0,n.useState)(null),m=(0,n.useMemo)(()=>s.slice(0,5),[s]),p=(0,n.useMemo)(()=>s[0]?Object.keys(s[0]):[],[s]);return(0,t.jsxs)("aside",{className:"flex flex-col gap-4 rounded-2xl bg-zinc-900/60 p-4 ring-1 ring-zinc-800 backdrop-blur-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-[0.2em] text-zinc-500",children:"Dataset"}),(0,t.jsx)("h2",{className:"mt-1 text-sm font-semibold text-zinc-100",children:"Pick a sample"})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[e.map(e=>{let n=e.id===a;return(0,t.jsxs)("button",{type:"button",onClick:()=>r(e.id),className:`flex flex-col items-start gap-1 rounded-xl border px-3 py-2.5 text-left transition-all ${n?"border-violet-400/60 bg-violet-500/10 ring-1 ring-violet-400/30":"border-zinc-800 bg-zinc-950/40 hover:border-zinc-700 hover:bg-zinc-900/60"}`,children:[(0,t.jsxs)("span",{className:"flex w-full items-center justify-between text-sm font-medium text-zinc-100",children:[e.name,(0,t.jsxs)("span",{className:"text-[10px] font-normal text-zinc-500",children:[e.rowCount," rows"]})]}),(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:e.description})]},e.id)}),(0,t.jsx)("button",{type:"button",onClick:()=>o(e=>!e),className:"rounded-xl border border-dashed border-zinc-700 px-3 py-2 text-xs font-medium text-zinc-400 transition-colors hover:border-zinc-500 hover:text-zinc-200",children:l?"Cancel":"Paste your own CSV"})]}),l&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("textarea",{value:d,onChange:e=>c(e.target.value),placeholder:"month,revenue\nJan,1200\nFeb,1500",className:"h-28 w-full resize-none rounded-lg border border-zinc-800 bg-zinc-950/60 p-2 font-mono text-xs text-zinc-200 placeholder:text-zinc-600 focus:border-violet-500 focus:outline-none"}),u&&(0,t.jsx)("p",{className:"text-xs text-rose-300",children:u}),(0,t.jsx)("button",{type:"button",onClick:()=>{g(null);let e=d.trim().split(/\r?\n/).filter(Boolean);if(e.length<2)return void g("CSV needs a header row and at least one data row.");let t=e[0].split(",").map(e=>e.trim());i({name:"Custom CSV",data:e.slice(1).map(e=>{let n=e.split(",").map(e=>e.trim()),a={};return t.forEach((e,t)=>{let s=n[t]??"",r=Number(s);a[e]=""===s||Number.isNaN(r)?s:r}),a})}),o(!1),c("")},className:"w-full rounded-lg bg-violet-500/20 px-3 py-1.5 text-xs font-medium text-violet-200 ring-1 ring-violet-400/30 transition-colors hover:bg-violet-500/30",children:"Use this CSV"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-[10px] font-medium uppercase tracking-[0.2em] text-zinc-500",children:"Preview"}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-zinc-800",children:(0,t.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,t.jsx)("thead",{className:"bg-zinc-950/60 text-zinc-500",children:(0,t.jsx)("tr",{children:p.map(e=>(0,t.jsx)("th",{className:"px-2 py-1.5 font-medium",children:e},e))})}),(0,t.jsx)("tbody",{className:"divide-y divide-zinc-800/60 text-zinc-300",children:m.map((e,n)=>(0,t.jsx)("tr",{className:"hover:bg-zinc-900/60",children:p.map(n=>(0,t.jsx)("td",{className:"px-2 py-1.5 tabular-nums",children:String(e[n]??"")},n))},n))})]})}),s.length>m.length&&(0,t.jsxs)("p",{className:"mt-1 text-[10px] text-zinc-500",children:["⦠",s.length-m.length," more rows"]})]})]})}var S=e.i(450938),A=e.i(920466);let _=["violet","emerald","amber","sky","rose","cyan"];function I(e){return _[e%_.length]}function j(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,7)}`}function E({widgets:e,activeDatasetId:n,addWidget:a,clearWidgets:s}){return(0,A.useCopilotReadable)({description:"The active dashboard state â current widgets on the canvas, the active dataset id, and a small data sample so the AI can pick reasonable axes.",value:{activeDatasetId:n,widgetCount:e.length,widgetSummaries:e.map(e=>({id:e.id,kind:e.kind,title:"chart"===e.kind?e.config.title:"kpi"===e.kind?e.config.label:e.config.field})),datasets:o.map(e=>({id:e.id,name:e.name,fields:e.fields,sampleRow:(l[e.id]??[])[0]??null}))}}),(0,S.useCopilotAction)({name:"addKPICard",description:"Add a KPI card to the dashboard canvas. Use big-picture numbers like total revenue, total signups, average order value, conversion rate, etc.",parameters:[{name:"label",type:"string",description:"Short uppercase label, e.g. 'Total Revenue'.",required:!0},{name:"value",type:"string",description:"Formatted value, e.g. '$3.27M' or '12,480'.",required:!0},{name:"delta",type:"number",description:"Optional percent change, e.g. 12 for +12%."},{name:"trend",type:"string",description:"'up' if delta is positive, 'down' if negative, omit otherwise."},{name:"accent",type:"string",description:"Optional color accent: violet, emerald, amber, sky, rose, cyan."}],handler:async({label:t,value:n,delta:s,trend:r,accent:i})=>{let l={id:j("kpi"),kind:"kpi",config:{label:String(t??"KPI"),value:String(n??"â"),delta:"number"==typeof s?s:void 0,trend:"up"===r||"down"===r?r:null,accent:"string"==typeof i&&_.includes(i)?i:I(e.length)}};return a(l),JSON.stringify(l)},render:({result:e,status:n})=>{if("executing"===n||!e)return(0,t.jsx)(C,{label:"Adding KPIâ¦"});try{let n=JSON.parse(e);return(0,t.jsx)("div",{className:"my-2",children:(0,t.jsx)(c,{widget:n,compact:!0})})}catch{return(0,t.jsx)("span",{className:"text-zinc-500",children:"KPI added."})}}}),(0,S.useCopilotAction)({name:"addChart",description:"Add a chart to the dashboard canvas. Pick the chart type that best fits the data: 'line' or 'area' for time series, 'bar' for categorical comparisons, 'pie' for share-of-total. yKeys may have multiple values for multi-series charts.",parameters:[{name:"type",type:"string",description:"One of: line, bar, pie, area.",required:!0},{name:"title",type:"string",description:"Concise chart title.",required:!0},{name:"datasetId",type:"string",description:"Which dataset to read from. Must be one of the available dataset ids.",required:!0},{name:"xKey",type:"string",description:"Field used for the x-axis or categorical grouping.",required:!0},{name:"yKeys",type:"string[]",description:"One or more numeric fields to plot. Pie charts only use the first.",required:!0},{name:"accent",type:"string",description:"Optional color accent: violet, emerald, amber, sky, rose, cyan."}],handler:async({type:t,title:s,datasetId:r,xKey:i,yKeys:l,accent:o})=>{let d=["line","bar","pie","area"].includes(t)?t:"line",c=Array.isArray(l)?l.filter(e=>"string"==typeof e):[],u={id:j("chart"),kind:"chart",config:{type:d,title:String(s??"Chart"),datasetId:"string"==typeof r?r:n,xKey:String(i??""),yKeys:c.length>0?c:["value"],accent:"string"==typeof o&&_.includes(o)?o:I(e.length+1)}};return a(u),JSON.stringify(u)},render:({result:e,status:n})=>{if("executing"===n||!e)return(0,t.jsx)(C,{label:"Drawing chartâ¦"});try{let n=JSON.parse(e);return(0,t.jsx)("div",{className:"my-2",children:(0,t.jsx)(m,{widget:n,compact:!0})})}catch{return(0,t.jsx)("span",{className:"text-zinc-500",children:"Chart added."})}}}),(0,S.useCopilotAction)({name:"addFilter",description:"Add a filter chip the user can interact with. Pick a categorical field with a small set of distinct values (e.g. 'region' or 'source').",parameters:[{name:"field",type:"string",description:"The dataset field to filter on.",required:!0},{name:"options",type:"string[]",description:"Distinct values for the filter.",required:!0}],handler:async({field:e,options:t})=>{let n=Array.isArray(t)?t.filter(e=>"string"==typeof e):[],s={id:j("filter"),kind:"filter",config:{field:String(e??"field"),options:n}};return a(s),JSON.stringify(s)},render:({result:e,status:n})=>{if("executing"===n||!e)return(0,t.jsx)(C,{label:"Adding filterâ¦"});try{let n=JSON.parse(e);return(0,t.jsx)("div",{className:"my-2",children:(0,t.jsx)(v,{widget:n})})}catch{return(0,t.jsx)("span",{className:"text-zinc-500",children:"Filter added."})}}}),(0,S.useCopilotAction)({name:"clearDashboard",description:"Remove every widget from the dashboard canvas. Use only if the user explicitly asks to start over.",parameters:[],handler:async()=>(s(),"cleared"),render:({status:e})=>(0,t.jsx)("div",{className:"my-2 rounded-xl border border-zinc-800 bg-zinc-900/60 px-3 py-2 text-xs text-zinc-300",children:"executing"===e?"Clearing canvasâ¦":"Canvas cleared."})}),null}function C({label:e}){return(0,t.jsxs)("div",{className:"my-2 flex items-center gap-2 rounded-xl border border-zinc-800 bg-zinc-900/60 px-3 py-2 text-xs text-zinc-300",children:[(0,t.jsx)("span",{className:"h-2 w-2 animate-pulse rounded-full bg-violet-400","aria-hidden":!0}),e]})}let M=`You are a dashboard architect. Your job on this page is to BUILD a dashboard for the user by CALLING TOOLS â never describe what a dashboard might look like, just build it. 16 17Available tools (always call, never describe): 18- addKPICard(label, value, delta?, trend?, accent?) â single big-number tile. 19- addChart(type, title, datasetId, xKey, yKeys, accent?) â line/bar/pie/area chart. 20- addFilter(field, options) â categorical filter chip. 21- clearDashboard() â only when the user explicitly asks to reset. 22 23Rules of thumb: 24- For a "build me a dashboard" prompt, plan to add ~3 KPIs, 2 charts, and 1 filter â call them in sequence, one tool call per widget. 25- Pick chart types that fit the data: line/area for trends over time, bar for category comparison, pie for share-of-total. 26- Use the active datasetId from the readable state unless the user names a different dataset. 27- yKeys is an array â use multiple keys for multi-series charts when it adds insight. 28- KPI values should be pre-formatted strings (e.g. "$3.27M", "12,480"). Compute them from the dataset's values. 29- Use varied accent colors across widgets so the canvas feels visually rich. 30 31Other tools that may exist on the page (saveFullPlan, sleepTips, etc.) belong to a different feature â DO NOT call them here.`,w=[{title:"Build me a Q4 sales dashboard",message:"Build me a dashboard from the Sales Q4 dataset â include 3 KPI cards (total revenue, total orders, average order value with trends), a line chart of revenue by month, a bar chart of orders by region, and a region filter."},{title:"Visualize signups",message:"Build a dashboard from the Signups 2026 dataset â a KPI for total signups, a KPI for daily average, an area chart of signups over the month, a pie chart of share by source, and a source filter."},{title:"Add a top-line KPI",message:"Add a KPI for the total revenue from the active dataset, with a green up-trend."},{title:"Clear the canvas",message:"Clear the dashboard so I can start over."}];
31function k(){let[e,r]=(0,n.useState)(o[0].id),[i,d]=(0,n.useState)({}),[c,u]=(0,n.useState)([]),[g,m]=(0,n.useState)([]),{isLoading:p}=(0,s.useCopilotChat)(),h=(0,n.useMemo)(()=>[...o,...c],[c]),x=(0,n.useMemo)(()=>i[e]?i[e]:l[e]??[],[e,i]),f=()=>m([]);return(0,t.jsxs)("div",{className:"relative min-h-screen overflow-hidden bg-zinc-950 text-zinc-100",children:[(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 -z-10 bg-[radial-gradient(circle_at_15%_-10%,rgba(167,139,250,0.18),transparent_50%),radial-gradient(circle_at_90%_10%,rgba(56,189,248,0.14),transparent_55%),radial-gradient(circle_at_50%_120%,rgba(52,211,153,0.10),transparent_60%)]","aria-hidden":!0}),(0,t.jsx)(E,{widgets:g,activeDatasetId:e,addWidget:e=>m(t=>[...t,e]),clearWidgets:f}),(0,t.jsx)("header",{className:"border-b border-zinc-900 bg-zinc-950/60 backdrop-blur-md",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-7xl items-center justify-between gap-4 px-6 pb-5 pt-16 sm:pt-20",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"inline-flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-br from-violet-500/30 to-sky-500/30 ring-1 ring-violet-400/30",children:(0,t.jsx)("span",{className:"text-sm",children:"â"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-[0.2em] text-zinc-500",children:"CopilotX · Studio"}),(0,t.jsx)("h1",{className:"text-base font-semibold text-zinc-100",children:"Generative Dashboard"})]})]}),(0,t.jsx)("div",{className:"hidden text-right sm:block",children:(0,t.jsx)("p",{className:"text-xs text-zinc-400",children:"Ask the copilot to build a dashboard. Each tool call streams a widget onto the canvas."})})]})}),(0,t.jsx)("main",{className:"mx-auto max-w-7xl px-6 py-8",children:(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-[280px_1fr]",children:[(0,t.jsx)(T,{datasets:h,activeDatasetId:e,data:x,onSelect:r,onPasteCsv:({name:e,data:t})=>{let n=`custom_${Date.now().toString(36)}`,a=t[0]?Object.keys(t[0]):[];d(e=>({...e,[n]:t})),u(s=>[...s,{id:n,name:e,description:"Pasted by user",fields:a,rowCount:t.length}]),r(n)}}),(0,t.jsx)(y,{widgets:g,onRemove:e=>m(t=>t.filter(t=>t.id!==e)),onFilterChange:(e,t)=>
31m(n=>n.map(n=>n.id===e&&"filter"===n.kind?{...n,config:{...n.config,selected:t||void 0}}:n)),onClear:f,thinking:p})]})}),(0,t.jsx)(a.CopilotSidebar,{instructions:M,suggestions:w,labels:{title:"Dashboard Architect",initial:"Hi â pick a sample dataset on the left, then ask me to build you a dashboard. I'll add KPIs, charts, and filters one tool call at a time."},defaultOpen:!0})]})}e.s(["default",()=>k],636942)}]);
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.