(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,479017,(e,t,a)=>{!function(t,a){if("function"==typeof define&&define.amd){let t;void 0!==(t=a())&&e.v(t)}else a()}(e.e,function(){"use strict";function a(e,t,a){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){o(r.response,t,a)},r.onerror=function(){console.error("could not download file")},r.send()}function r(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function n(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(a){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var i="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:e.g.global===e.g?e.g:void 0,s=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),o=i.saveAs||("object"!=typeof window||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(e,t,s){var o=i.URL||i.webkitURL,l=document.createElement("a");l.download=t=t||e.name||"download",l.rel="noopener","string"==typeof e?(l.href=e,l.origin===location.origin?n(l):r(l.href)?a(e,t,s):n(l,l.target="_blank")):(l.href=o.createObjectURL(e),setTimeout(function(){o.revokeObjectURL(l.href)},4e4),setTimeout(function(){n(l)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){if(t=t||e.name||"download","string"!=typeof e){var s;navigator.msSaveOrOpenBlob((void 0===(s=i)?s={autoBom:!1}:"object"!=typeof s&&(console.warn("Deprecated: Expected third argument to be a object"),s={autoBom:!s}),s.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e),t)}else if(r(e))a(e,t,i);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){n(o)})}}:function(e,t,r,n){if((n=n||open("","_blank"))&&(n.document.title=n.document.body.innerText="downloading..."),"string"==typeof e)return a(e,t,r);var o="application/octet-stream"===e.type,l=/constructor/i.test(i.HTMLElement)||i.safari,d=/CriOS\/[\d]+/.test(navigator.userAgent);if((d||o&&l||s)&&"u">typeof FileReader){var c=new FileReader;c.onloadend=function(){var e=c.result;e=d?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),n?n.location.href=e:location=e,n=null},c.readAsDataURL(e)}else{var u=i.URL||i.webkitURL,p=u.createObjectURL(e);n?n.location=p:location.href=p,n=null,setTimeout(function(){u.revokeObjectURL(p)},4e4)}});i.saveAs=o.saveAs=o,t.exports=o})},892652,e=>{"use strict";var t=e.i(29570),a=e.i(210138);function r(e,{kind:t,id:a}){let n=e.parts.find(e=>e.id===a);return void 0!==n&&n.kind===t?n:void 0}function n(e,t){return e.parts.some(e=>e.id===t)}function i(e,t){return{...e,parts:t}}function s(e,t){return i(e,[...e.parts,t])}function o(e,t){return i(e,e.parts.map(e=>e.id===t.id?t:e))}function l(e,t){if(!n(e,t.id))return s(e,t.create());let a=r(e,t);return void 0===a?e:o(e,t.update(a))}function d(e){let t=e.parts.map(e=>("text"===e.kind||"reasoning"===e.kind)&&e.status===a.o.Streaming?{...e,status:a.o.Done}:e);return t.every((t,a)=>t===e.parts[a])?e:i(e,t)}function c(e){return void 0===e.statusLabel&&void 0===e.statusRetry?e:{...e,statusLabel:void 0,statusRetry:void 0}}function u(e){return void 0===e.openQuestions?e:{...e,openQuestions:void 0}}function p(e){return void 0!==e.finishReason||void 0!==e.error}let f=new Set(["usage","snapshot"]),m={"text.delta":(e,t)=>""===t.delta?e:l(e,{kind:"text",id:t.partId,create:()=>({kind:"text",id:t.partId,text:t.delta,status:a.o.Streaming}),update:e=>({...e,text:e.text+t.delta})}),"reasoning.delta":(e,r)=>""===r.delta?e:l(e,{kind:"reasoning",id:r.partId,create:()=>({kind:"reasoning",id:r.partId,summary:r.channel===t.L.Summary?r.delta:"",content:r.channel===t.L.Content?r.delta:"",status:a.o.Streaming}),update:e=>({...e,[r.channel]:e[r.channel]+r.delta})}),"tool.started":(e,t)=>n(e,t.callId)?e:s(e,{kind:"tool",id:t.callId,name:t.name,toolKind:t.kind,inputText:"",status:a._.InputStreaming}),"tool.input.delta":(e,t)=>{let n=r(e,{kind:"tool",id:t.callId});return void 0===n||""===t.delta||n.status!==a._.InputStreaming?e:o(e,{...n,inputText:n.inputText+t.delta})},"tool.input.finished":(e,t)=>{let n=r(e,{kind:"tool",id:t.callId});return void 0===n||n.status!==a._.InputStreaming?e:o(e,{...n,...void 0===t.input?{}:{input:t.input},status:a._.Running})},"tool.finished":(e,t)=>{var n;let i=r(e,{kind:"tool",id:t.callId});return void 0===i||(n=i).status===a._.Done||n.status===a._.Failed?e:o(e,{...i,...void 0===t.output?{}:{output:t.output},...void 0===t.error?{}:{error:t.error},...void 0===t.durationMs?{}:{durationMs:t.durationMs},status:void 0===t.error?a._.Done:a._.Failed})},"media.added":(e,t)=>{let a={kind:"media",id:t.partId,media:t.media};return l(e,{kind:"media",id:t.partId,create:()=>a,update:()=>a})},"annotation.added":(e,t)=>l(e,{kind:"annotations",id:t.partId,create:()=>({kind:"annotations",id:t.partId,items:[t.annotation]}),update:e=>({...e,items:[...e.items,t.annotation]})}),status:(e,t)=>({...e,statusLabel:t.label,statusRetry:t.retry}),"question.opened":(e,t)=>{let a=e.openQuestions??[];return a.some(e=>e.waitToken===t.prompt.waitToken)?e:{...e,openQuestions:[...a,t.prompt]}},"question.closed":(e,t)=>{let a=e.openQuestions??[],r=a.filter(e=>e.waitToken!==t.waitToken);return r.length===a.length?e:{...e,openQuestions:0===r.length?void 0:r}},"question.skipped":(e,t)=>{let a=e.skippedQuestions??[];return a.some(e=>e.waitToken===t.skipped.waitToken)?e:{...e,skippedQuestions:[...a,t.skipped]}},usage:(e,t)=>({...e,usage:{...e.usage,...t.usage}}),"turn.finished":(e,t)=>({...u(c(d(e))),finishReason:t.reason}),"turn.failed":(e,t)=>({...u(c(d(e))),error:t.error}),snapshot:(e,t)=>i(p(e)?c(e):e,t.parts)};function g(e,t){return e.findIndex(e=>e.role===a.K.Assistant&&e.turnId===t)}e.s(["f",0,function(e,{event:t,at:r}){if("turn.started"===t.type)return function(e,{turnId:t,at:r}){return -1!==g(e,t)?e:[...e,{id:t,role:a.K.Assistant,turnId:t,createdAt:r,parts:[]}]}(e,{turnId:t.turnId,at:r});let n=g(e,t.turnId),i=e[n];if(void 0===i||p(i)&&!f.has(t.type))return e;let s=(0,m[t.type])(i,t);return s===i?e:e.map((e,t)=>t===n?s:e)}])},632182,e=>{"use strict";var t=e.i(29570);function a(e){return"sending"===e.status||"streaming"===e.status}function r(e,t){return void 0===t?e:{...e,usage:t}}let n={send:(e,t)=>a(e)?e:{status:"sending",turnId:t.turnId,startedAt:t.at},event:(e,n)=>{if("ready"===e.status)return"usage"!==n.event.type||n.event.turnId!==e.lastTurnId?e:r(e,{...e.usage,...n.event.usage});if(!a(e)||n.event.turnId!==e.turnId)return e;let i="streaming"===e.status?e.usage:void 0;switch(n.event.type){case"turn.finished":return n.event.reason===t.u.Cancelled?{status:"aborted",turnId:e.turnId}:r({status:"ready",lastTurnId:e.turnId},i);case"turn.failed":return{status:"error",turnId:e.turnId,error:n.event.error};case"usage":return{...e,status:"streaming",lastEventAt:n.at,usage:{...i,...n.event.usage}};case"turn.started":case"text.delta":case"reasoning.delta":case"tool.started":case"tool.input.delta":case"tool.input.finished":case"tool.finished":case"media.added":case"annotation.added":case"status":case"question.opened":case"question.closed":case"question.skipped":case"snapshot":return{...e,status:"streaming",lastEventAt:n.at};default:return n.event}},abort:e=>a(e)?{status:"aborted",turnId:e.turnId}:e,fail:(e,t)=>a(e)?{status:"error",turnId:e.turnId,error:t.error}:e};e.s(["$",0,{status:"idle"},"J",0,function(e){return a(e)?e.turnId:void 0},"e",0,function(e,t){return(0,n[t.type])(e,t)}])},506930,290300,72074,e=>{"use strict";var t=e.i(647204),a=e.i(29570),r=e.i(425493),n=e.i(210138),i=e.i(427150);function s(e){return{calls:[],segment:0,turnId:e}}function o(e,t){switch(e.type){case"runtime.event":{let{model:a,sessionId:r}=e.event;return[...void 0!==r&&r!==t.announcedSessionId?[{kind:"session",sessionId:r}]:[],...(0,i.f)(a)&&void 0===t.announcedModel?[{kind:"model",model:a}]:[]]}case"delivery":return[{delivery:e.delivery,kind:"delivery",runId:e.runId}];case"turn":return[{entries:e.entries.map(u),kind:"frame",lastEventId:e.lastEventId}];case"error":case"end":return[];default:return e}}function l(e,{events:t,line:a}){return o(a,e).reduce(p,function(e,t){if("runtime.event"!==t.type||"tool.started"!==t.event.type)return e;let a=t.event.payload.toolCallId,r=e.calls.at(-1);return void 0===a||void 0===r||void 0!==r.wireId?e:{...e,calls:[...e.calls.slice(0,-1),{...r,wireId:a}]}}(t.reduce(f,e),a))}function d(e,t){let a=new Set(e.map(e=>e.callId));if(void 0!==t&&!a.has(t))return t;let r=void 0===t?"call-":`${t}#`,n=e.length;for(;a.has(`${r}${n}`);)n+=1;return`${r}${n}`}function c(e,t){return{error:t,turnId:e,type:"turn.failed"}}function u(e){let{at:t,eventId:a,kind:r}=e;return"user"===e.kind?{at:t,eventId:a,kind:r,text:e.text}:{at:t,eventId:a,kind:r}}function p(e,t){switch(t.kind){case"session":return{...e,announcedSessionId:t.sessionId};case"model":return{...e,announcedModel:t.model};case"delivery":case"frame":return e;default:return t}}function f(e,t){switch(t.type){case"tool.started":return{...e,calls:[...e.calls,{callId:t.callId,isOpen:!0,name:""===t.name?void 0:t.name,wireId:void 0}],segment:e.segment+1};case"tool.finished":return{...e,calls:e.calls.map(e=>e.callId===t.callId?{...e,isOpen:!1}:e)};case"turn.started":case"text.delta":case"reasoning.delta":case"tool.input.delta":case"tool.input.finished":case"media.added":case"annotation.added":case"status":case"question.opened":case"question.closed":case"question.skipped":case"usage":case"turn.finished":case"turn.failed":case"snapshot":return e;default:return t}}e.s(["F",0,s,"j",0,d,"Z",0,l,"R",0,o,"l",0,c],290300);function m(e){switch(e.kind){case"user":return[];case"assistant":return[{id:e.eventId,kind:"text",status:n.o.Done,text:e.text}];case"tool":return[{id:e.eventId,inputText:"",kind:"tool",name:e.name,status:function(e){switch(e){case"running":return n._.Running;case"succeeded":return n._.Done;case"failed":return n._.Failed;default:return e}}(e.outcome),toolKind:a.O.Function,..."failed"===e.outcome?{error:(0,r.S)(r.a.ToolFailed)}:{}}];case"interaction":{let t="permission"===e.interaction?"Permission requested":"Question",a=e.isResolved?" (answered)":"";return[{id:e.eventId,kind:"text",status:n.o.Done,text:`**${t}${a}** ${e.message}`}]}case"outcome":{let t=function(e){if(void 0===e)return null;switch(e.status){case"finished":return null;case"failed":return null===e.message?"The run failed.":`The run failed: ${e.message}`;case"stopped":return null===e.message?"The run was stopped.":`The run was stopped: ${e.message}`;default:return e.status}}(e);return null===t?[]:[{id:e.eventId,kind:"text",status:n.o.Done,text:t}]}default:return e}}var g=e.i(342837),h=e.i(882844),y=e.i(635157);let v=y.z.object({error:y.z.object({message:y.z.string()})}),I={LineTooLong:"ori_line_too_long",Unreadable:"ori_line_unreadable"},b=y.z.object({code:y.z.string().optional(),message:y.z.string().optional(),remediation:y.z.string().optional()}).transform(e=>({code:T(e.code),message:T(e.message),remediation:T(e.remediation)})),w=y.z.unknown().transform(function(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0}),_=y.z.object({event:y.z.object({model:y.z.string().nullish(),payload:y.z.object({attempt:y.z.number().optional(),content:y.z.unknown().optional(),delayMs:y.z.number().optional(),delta:y.z.string().optional(),durationMs:w.optional(),failure:b.optional(),input:y.z.unknown().optional(),maxAttempts:y.z.number().optional(),name:y.z.string().optional(),result:y.z.unknown().optional(),toolCallId:y.z.string().optional()}),sessionId:y.z.string().optional(),type:y.z.string()}),type:y.z.literal("runtime.event")}),A=y.z.enum(["pending","running","blocked","finished","failed","stopped"]),x=y.z.string().max(64e3),S=y.z.discriminatedUnion("kind",[y.z.object({at:y.z.string(),eventId:y.z.string(),kind:y.z.literal("user"),text:x}),y.z.object({at:y.z.string(),eventId:y.z.string(),kind:y.z.literal("assistant"),text:x}),y.z.object({at:y.z.string(),eventId:y.z.string(),kind:y.z.literal("tool"),name:y.z.string().max(128),outcome:y.z.enum(["running","succeeded","failed"])}),y.z.object({at:y.z.string(),eventId:y.z.string(),interaction:y.z.enum(["permission","question"]),isResolved:y.z.boolean(),kind:y.z.literal("interaction"),message:y.z.string().max(2e3)}),y.z.object({at:y.z.string(),eventId:y.z.string(),kind:y.z.literal("outcome"),message:y.z.string().max(500).nullable(),status:y.z.enum(["finished","failed","stopped"])})]),C=y.z.discriminatedUnion("type",[_,y.z.object({delivery:y.z.enum(["started","steered"]),runId:y.z.string().nullable(),type:y.z.literal("delivery")}),y.z.object({entries:y.z.array(S).max(400),lastEventId:y.z.string().nullable(),status:A,type:y.z.literal("turn")}),y.z.object({message:y.z.string().max(500),type:y.z.literal("error")}),y.z.object({type:y.z.literal("end")})]);function M(e){if(e.length>1048576)return(0,t.Y)(z(I.LineTooLong,"An Ori stream line exceeded the maximum length."));let a=e.trim();if(0===a.length)return(0,t.N)(null);let r=(0,t.$)(()=>JSON.parse(a));if((0,t.V)(r))return(0,t.Y)(z(I.Unreadable,"An Ori stream line was not JSON."));let n=(0,h.C)(C,r.data);return(0,t.V)(n)?(0,t.Y)(z(I.Unreadable,"An Ori stream line had an unknown shape.")):(0,t.N)(n.data)}function k(e){let a=(0,h.C)(y.z.enum(g.g),e);return(0,t.V)(a)?null:a.data}function O(e){let a=(0,t.$)(()=>JSON.parse(e));if((0,t.V)(a))return null;let r=(0,h.C)(v,a.data);return(0,t.V)(r)?null:T(r.data.error.message)??null}function j(e,t){return e.metadata?.ori_line_error===t}function z(e,t){return{message:t,metadata:{ori_line_error:e},status:null}}function T(e){if(void 0!==e&&0!==e.trim().length)return e.length>500?`${e.slice(0,500)}…`:e}e.s(["I",0,1048576,"_",0,8192,"T",0,I,"y",0,k,"b",0,j,"r",0,M,"J",0,O],72074);let R={"assistant.text.delta":function(e,t){let a=e.payload.delta;return void 0===a?[]:[{delta:a,partId:`text-${t.segment}`,turnId:t.turnId,type:"text.delta"}]},"reasoning.delta":function(e,t){let r=e.payload.delta;return void 0===r?[]:[{channel:a.L.Content,delta:r,partId:`reasoning-${t.segment}`,turnId:t.turnId,type:"reasoning.delta"}]},"retry.scheduled":function(e,t){var a,r;let n,i=function(e){let{attempt:t,delayMs:a,maxAttempts:r}=e;return void 0===t||void 0===r||void 0===a?void 0:{attempt:t,delayMs:a,maxAttempts:r}}(e.payload);return[{label:(n=void 0===(r=a=e.payload).attempt?"retrying":void 0===r.maxAttempts?`retrying (attempt ${r.attempt})`:`retrying (attempt ${r.attempt} of ${r.maxAttempts})`,void 0===a.delayMs?n:`${n} in ${Math.round(a.delayMs/1e3)}s`),turnId:t.turnId,type:"status",...void 0===i?{}:{retry:i}}]},"runtime.error":F,"session.failed":F,"session.succeeded":V,"tool.failed":E("failed"),"tool.result.failed":E("failed"),"tool.result.succeeded":E("succeeded"),"tool.started":function(e,t){let{payload:r}=e,n=d(t.calls,r.toolCallId),i=P(r.input,64e3);return[{callId:n,kind:a.O.Function,name:r.name??"",turnId:t.turnId,type:"tool.started"},...void 0===i?[]:[{callId:n,delta:i,turnId:t.turnId,type:"tool.input.delta"}],{callId:n,turnId:t.turnId,type:"tool.input.finished"}]},"tool.succeeded":E("succeeded"),"turn.failed":F,"turn.succeeded":V};function F(e,t){let a=e.payload.failure,n=[a?.message,a?.code===void 0?void 0:`(${a.code})`,a?.remediation].filter(e=>void 0!==e),i=0===n.length?void 0:n.join(" ");return[c(t.turnId,{...a?.message===void 0?{code:r.a.TurnFailed}:{},...void 0===i?{}:{message:i},...a?.code===void 0?{}:{metadata:{ori_failure_code:a.code}},status:null})]}function V(e,t){return[{reason:a.u.Stop,turnId:t.turnId,type:"turn.finished"}]}function E(e){return(t,a)=>{var n,i;let{payload:s}=t,o=(n=a.calls,void 0!==(i=s).toolCallId?n.findLast(e=>e.wireId===i.toolCallId):n.findLast(e=>e.isOpen&&void 0!==i.name&&e.name===i.name)??n.findLast(e=>e.isOpen));if(void 0===o)return[];let l=s.durationMs;return[{callId:o.callId,output:P(s.result??s.content,4e3),turnId:a.turnId,type:"tool.finished",...void 0===l?{}:{durationMs:l},..."failed"===e?{error:(0,r.S)(r.a.ToolFailed)}:{}}]}}function P(e,a){var r;let n;if(null==e)return;let i="string"==typeof e?e:(r=e,n=(0,t.$)(()=>JSON.stringify(r)),(0,t.V)(n)||"string"!=typeof n.data?void 0:n.data);if(void 0!==i&&""!==i.trim())return i.length>a?`${i.slice(0,a)}…`:i}async function*D(e,n){var i,d;let u,p=e.getReader(),f=new TextDecoder,g=(u=s((i=n).turnId),e=>{let n=M(e);if((0,t.V)(n))return{events:j(n.error,I.LineTooLong)?[c(u.turnId,(0,r.S)(r.a.LineTooLong))]:[],isEnd:!1};let s=n.data;if(null===s)return{events:[],isEnd:!1};let d=o(s,u),p=function(e,t){var n;switch(e.type){case"runtime.event":let i;return n=e.event,void 0===(i=R[n.type])?[]:i(n,t);case"turn":let s;return[...null===(s=function(e){switch(e){case"pending":return null;case"running":return"working";case"blocked":return"blocked";case"finished":return"finished";case"failed":return"failed";case"stopped":return"stopped";default:return e}}(e.status))?[]:[{label:s,turnId:t.turnId,type:"status"}],{parts:e.entries.flatMap(m),turnId:t.turnId,type:"snapshot"},...function(e,t){switch(e.status){case"pending":case"running":case"blocked":return[];case"finished":return[{reason:a.u.Stop,turnId:t.turnId,type:"turn.finished"}];case"stopped":return[{reason:a.u.Cancelled,turnId:t.turnId,type:"turn.finished"}];case"failed":return[c(t.turnId,function(e){let t=e.findLast(e=>"outcome"===e.kind);if(void 0===t||"finished"===t.status)return(0,r.S)(r.a.RunFailed);switch(t.status){case"failed":return(0,r.S)(r.a.RunFailed,t.message??void 0);case"stopped":return(0,r.S)(r.a.RunStopped,t.message??void 0);default:return t.status}}(e.entries))];default:return e.status}}(e,t)];case"error":return[c(t.turnId,{message:e.message,status:null})];case"delivery":case"end":return[];default:return e}}(s,u);for(let e of(u=l(u,{events:p,line:s}),d))i.onMeta?.(e);return{events:p,isEnd:"end"===s.type}}),h="";try{for(yield{turnId:n.turnId,type:"turn.started"};;){let e=await U(p),t=null===e,a=(h+(t?f.decode():f.decode(e,{stream:!0}))).split("\n");for(let e of(h=t?"":a.pop()??"").length>1048576?[...a,h]:a){let t=g(e);for(let e of t.events){if(yield e,d=e,"turn.finished"===d.type||"turn.failed"===d.type)return}if(t.isEnd)return}if(t)break}yield n.signal?.aborted===!0?{reason:a.u.Cancelled,turnId:n.turnId,type:"turn.finished"}:c(n.turnId,(0,r.S)(r.a.StreamSevered))}finally{await p.cancel().catch(()=>void 0)}}function q(){return(0,r.S)(r.a.SendFailed)}async function $(e){let t=null===e.body?null:await N(e.body);return{message:(null===t?null:O(t))??`Ori refused the turn (HTTP ${e.status}).`,status:k(e.status)}}async function N(e){let t=e.getReader(),a=new TextDecoder,r="",n=0;try{for(;;){let e=await U(t);if(null===e)return r+a.decode();if((n+=e.byteLength)>8192)return null;r+=a.decode(e,{stream:!0})}}finally{await t.cancel().catch(()=>void 0)}}async function L(e){await e.body?.cancel().catch(()=>void 0)}async function U(e){let a=await (0,t.$)(()=>e.read());return(0,t.V)(a)||a.data.done?null:a.data.value}e.s(["r",0,function(e){let a=async a=>{let r=await (0,t.$)(()=>e.fetch(e.endpointFor(a),{body:JSON.stringify(e.requestBodyOf(a)),headers:{"Content-Type":"application/json"},method:"POST",signal:a.signal}));if((0,t.V)(r))return(0,t.Y)(q());let{body:n,ok:i}=r.data;if(!i||null===n)return(0,t.Y)(await $(r.data));let s=e.onTurnMeta;return(0,t.N)(D(n,{signal:a.signal,turnId:a.turnId,...void 0===s?{}:{onMeta:e=>s(a.turnId,e)}}))},r=e.cancelEndpointFor;return void 0===r?{send:a}:{cancel:async({turnId:a})=>{let n=await (0,t.$)(()=>e.fetch(r(a),{keepalive:!0,method:"POST"}));return(0,t.V)(n)?(0,t.Y)(q()):n.data.ok?(await L(n.data),(0,t.N)(void 0)):(0,t.Y)(await $(n.data))},send:a}},"t",0,D,"v",0,$,"g",0,L],506930)},311181,e=>{"use strict";var t=e.i(647204),a=e.i(425493),r=e.i(372953);e.s(["u",0,"image","n",0,function(e){let t=new AbortController;return e.aborted?t.abort():e.addEventListener("abort",()=>t.abort(),{once:!0}),t},"c",0,function(e){return e instanceof DOMException&&"AbortError"===e.name},"M",0,function*(e,{fetchResult:n,location:i}){if(!e.signal.aborted){if((0,t.V)(n)){"toResponseResult:abort"!==n.error.location&&(yield{type:"turn.failed",turnId:e.turnId,error:n.error});return}return n.data.body?n.data.body:void(yield(0,r.m)(e,{code:a.a.EmptyResponseBody,location:i}))}}])},517544,324933,e=>{"use strict";var t=e.i(390177),a=e.i(625025),r=e.i(647204),n=e.i(368174),i=e.i(882844),s=e.i(29510),o=e.i(635157),l=e.i(919161);let d=o.z.object({type:o.z.literal("image_generation.partial_image").openapi({description:"The event type"}),partial_image_index:(0,i.D)().openapi({description:"0-based index indicating which partial image this is in the sequence"}),b64_json:o.z.string().openapi({description:"Base64-encoded partial image data"})}).openapi("ImageGenPartialImageEvent",{description:"Emitted when a partial image becomes available during streaming generation",example:{type:"image_generation.partial_image",partial_image_index:0,b64_json:""}}),c=o.z.object({type:o.z.literal("image_generation.completed").openapi({description:"The event type"}),b64_json:o.z.string().openapi({description:"Base64-encoded final image data"}),media_type:o.z.string().optional().openapi({description:"Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined.",example:"image/png"}),created:(0,i.D)().openapi({description:"Unix timestamp (seconds) when the image was generated"}),usage:l.f}).openapi("ImageGenCompletedEvent",{description:"Emitted when generation completes and the final image is available",example:{type:"image_generation.completed",b64_json:"",created:0x68360bb0,usage:{prompt_tokens:0,completion_tokens:4175,total_tokens:4175,cost:.04}}}),u=o.z.object({type:o.z.literal("image_generation.text_chunk").openapi({description:"The event type"}),text:o.z.string().openapi({description:"A text fragment of the image being generated (e.g. partial SVG markup)"}),phase:o.z.enum(["content","reasoning","draft"]).openapi({description:"The generation phase this chunk belongs to. `content` is the renderable output; `reasoning` and `draft` are intermediate provider phases."})}).openapi("ImageGenTextChunkEvent",{description:"Emitted when a text chunk becomes available during streaming generation of text-based formats (e.g. SVG)",example:{type:"image_generation.text_chunk",text:'',phase:"content"}}),p=o.z.object({type:o.z.literal("error").openapi({description:"The event type"}),error:o.z.object({code:o.z.string().nullish().openapi({description:"Provider error code, when supplied"}),message:o.z.string().openapi({description:"Provider error message"}),param:o.z.string().nullish().openapi({description:"Request parameter associated with the error, when supplied"}),type:o.z.string().nullish().openapi({description:"Provider error type, when supplied"})}).openapi({description:"Provider error details"})}).openapi("ImageGenStreamErrorEvent",{description:"Emitted when streaming generation fails after the SSE response starts",example:{type:"error",error:{code:"upstream_error",message:"The upstream provider returned an error",param:null,type:"provider_error"}}}),f=d.or(u).or(c).or(p),m=s.f.shape;function g(e,t){if(void 0===t)return;let a=(0,i.C)(e,t);return(0,r.C)(a)?a.data:void 0}function h(e){let r=g(m.resolution,e.resolution),n=g(m.aspect_ratio,e.aspectRatio),i=g(m.size,e.size);return(0,a.S)({size:function({size:e,resolution:a,aspectRatio:r}){return void 0===e||void 0!==a?void 0:void 0===r?e:null!==(0,t.f)(e)?void 0:e}({size:i,resolution:r,aspectRatio:n}),resolution:r,aspect_ratio:n,quality:g(m.quality,e.quality),background:g(m.background,e.background),output_format:g(m.output_format,e.outputFormat),output_compression:g(m.output_compression,e.outputCompression),frame_count:g(m.frame_count,e.frameCount),frame_duration_ms:g(m.frame_duration_ms,e.frameDurationMs)})}e.s(["m",0,"/api/v1/images","S",0,h,"F",0,function(e){return(0,n.f)(e)?h({size:e.image_size??e.size,resolution:e.resolution,aspectRatio:e.aspect_ratio,quality:e.quality,background:e.background,outputFormat:e.output_format,outputCompression:e.output_compression}):{}},"Y",0,function(e){if(!e)return;let t=(0,r.$)(()=>JSON.parse(e));if((0,r.V)(t))return e;let a=t.data;if(!(0,n.f)(a))return;let i=((0,n.f)(a.error)?a.error.message:void 0)??a.message;if("string"!=typeof i)return;let s=(0,r.$)(()=>JSON.parse(i));if((0,r.V)(s))return i;let o=s.data;if((0,n.f)(o)){let e=(0,n.f)(o.error)?o.error.message:void 0;if("string"==typeof e)return e}return i},"b",0,function(e){let t=e.trim();if(!t||"[DONE]"===t)return(0,r.N)(null);let a=(0,r.$)(()=>JSON.parse(t));if((0,r.V)(a))return(0,r.Y)("Invalid image generation stream event");let n=(0,i.C)(f,a.data);return(0,r.V)(n)?(0,r.Y)("Invalid image generation stream event"):(0,r.N)(n.data)}],517544);var y=e.i(820223),v=e.i(473028);function I(e){var t,a;if(e.length>=8&&137===e[0]&&80===e[1]&&78===e[2]&&71===e[3]&&13===e[4]&&10===e[5]&&26===e[6]&&10===e[7])return"image/png";if(e.length>=3&&255===e[0]&&216===e[1]&&255===e[2])return"image/jpeg";if(e.length>=12&&82===e[0]&&73===e[1]&&70===e[2]&&70===e[3]&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11])return"image/webp";if(e.length>=6&&71===e[0]&&73===e[1]&&70===e[2]&&56===e[3]&&(55===e[4]||57===e[4])&&97===e[5])return"image/gif";let r=function(e){let t=0;for(e.length>=3&&239===e[0]&&187===e[1]&&191===e[2]&&(t=3);t=e.length?null:t}(e);return null!==r&&(M(t=e,a=r,b)||M(t,a,w)&&function(e,t){let a=t+w.length;for(;a=e.length)return a;if(M(e,a,_)){a=C(e,a+_.length,A);continue}if(M(e,a,x)){a=function(e,t){let a=t;for(;ae.length)return!1;for(let r=0;r)/i;function z(e){var t;let a;return e.startsWith("data:")||e.startsWith("http")?e:(0,v.d)({mimeType:(t=e,(a=(0,y.T)(t))?I(a)??k.v.ImagePNG:t.startsWith("/9j/")?k.v.ImageJPEG:t.startsWith("UklGR")?k.v.ImageWebP:k.v.ImagePNG),base64:e})}function T(e,t){let a;for(let r=t;r"===t)return r}return -1}e.s(["s",0,function(e){let t=/^(\d+)x(\d+)$/.exec(e);if(t)return{width:Number(t[1]),height:Number(t[2])}},"S",0,function({dataUri:e,targetWidth:t,targetHeight:a}){return new Promise((r,n)=>{let i=new Image;i.onload=()=>{let n=document.createElement("canvas");n.width=t,n.height=a;let s=n.getContext("2d");s?(s.drawImage(i,0,0,t,a),r(n.toDataURL("image/jpeg",.9))):r(e)},i.onerror=()=>n(Error("Failed to load image for resize")),i.src=e})},"K",0,z,"O",0,function(e){return e.startsWith("data:")||e.startsWith("http")||e.startsWith("blob:")?e:function(e){if("function"!=typeof URL.createObjectURL||"u""))return e;let a=e.slice(0,t),r=e.slice(t).trimEnd();if(r.startsWith("`:`${i}/>`;return`${a}${s}`}((t=r,(a=/<\/svg\s*>/i.exec(t))?t.slice(0,a.index+a[0].length):t));if(!n)return;let i=function(e){let t=[],a=0;for(;a",r+4);a=-1===t?e.length:t+3;continue}let n=T(e,r);if(-1===n)break;(function(e,t){var a;if(t.startsWith("$/.test(a)||e.push(s)})(t,e.slice(r,n+1)),a=n+1}return`${e}${t.reverse().map(e=>``).join("")}`}(n);return!function(e){if("u"{"use strict";var t=e.i(647204),a=e.i(882844),r=e.i(635157);let n=r.z.object({error:r.z.object({message:r.z.unknown().optional()}).optional().catch(void 0),message:r.z.unknown().optional()}),i=r.z.object({error:r.z.object({message:r.z.string()})});e.s(["f",0,function(e){if(!e)return;let r=(0,a.C)(a.I,e);if((0,t.V)(r))return e;let s=(0,a.C)(n,r.data);if((0,t.V)(s))return;let o=s.data.error?.message??s.data.message;if("string"!=typeof o)return;let l=(0,a.C)(a.I.pipe(i),o);return(0,t.V)(l)?o:l.data.error.message}])},713312,e=>{"use strict";var t=e.i(342837),a=e.i(647204),r=e.i(423491),n=e.i(988590),i=e.i(882844),s=e.i(635157),o=e.i(577980),l=e.i(549692),d=e.i(29570),c=e.i(425493),u=e.i(317102);let p="server_error",f={Message:"message",Reasoning:"reasoning"},m={MaxOutputTokens:"max_output_tokens",ContentFilter:"content_filter"},g=s.z.string().optional().catch(void 0),h=s.z.number().optional().catch(void 0),y=s.z.looseObject({type:s.z.string(),id:g,call_id:g,name:g,status:g,error:s.z.string().nullish().catch(void 0),result:s.z.string().nullish().catch(void 0),execution:g,arguments:s.z.unknown().optional()}),v=s.z.object({code:g,message:g}),I=s.z.object({id:g,model:g,usage:s.z.object({input_tokens:h,output_tokens:h,cost:h}).nullish().catch(void 0),openrouter_metadata:s.z.object({generation_time:h}).optional().catch(void 0),incomplete_details:s.z.object({reason:g}).nullish().catch(void 0),error:v.nullish().catch(void 0),error_type:g}),b=s.z.object({type:s.z.string(),url:g,title:g,filename:g,start_index:h,end_index:h}),w=s.z.object({item_id:s.z.string(),delta:s.z.string()}),_=s.z.object({item_id:s.z.string(),arguments:s.z.string()}),A=s.z.object({item_id:s.z.string(),content_index:s.z.number(),delta:s.z.string()}),x=s.z.object({response:I}),S=s.z.discriminatedUnion("type",[x.extend({type:s.z.literal("response.created")}),s.z.object({type:s.z.literal("response.output_item.added"),output_index:s.z.number(),item:y}),s.z.object({type:s.z.literal("response.output_item.done"),output_index:s.z.number(),item:y}),A.extend({type:s.z.literal("response.output_text.delta")}),A.extend({type:s.z.literal("response.refusal.delta")}),s.z.object({type:s.z.literal("response.reasoning_summary_text.delta"),item_id:s.z.string(),summary_index:s.z.number(),delta:s.z.string()}),w.extend({type:s.z.literal("response.reasoning_text.delta")}),w.extend({type:s.z.literal("response.function_call_arguments.delta")}),w.extend({type:s.z.literal("response.custom_tool_call_input.delta")}),w.extend({type:s.z.literal("response.mcp_call_arguments.delta")}),_.extend({type:s.z.literal("response.function_call_arguments.done")}),_.extend({type:s.z.literal("response.mcp_call_arguments.done")}),s.z.object({type:s.z.literal("response.custom_tool_call_input.done"),item_id:s.z.string(),input:s.z.string()}),s.z.object({type:s.z.literal("response.output_text.annotation.added"),item_id:s.z.string(),content_index:s.z.number(),annotation:b}),s.z.object({type:s.z.literal("response.image_generation_call.partial_image"),item_id:s.z.string().optional(),partial_image_b64:s.z.string().optional()}),x.extend({type:s.z.literal("response.completed")}),x.extend({type:s.z.literal("response.incomplete")}),s.z.object({type:s.z.literal("response.failed"),response:I.optional().catch(void 0)}),s.z.object({type:s.z.literal("error"),code:s.z.string().nullish().catch(void 0),message:s.z.string()})]),C=S.options.map(e=>e.shape.type.value),M=s.z.object({type:s.z.string().refine(e=>!(0,n.q)(e,C))}),k=s.z.union([S,M]),O=new Map([["rate_limit_exceeded",t.g.S429_Too_Many_Requests],["invalid_prompt",t.g.S400_Bad_Request],["invalid_image",t.g.S400_Bad_Request],["invalid_image_format",t.g.S400_Bad_Request],["invalid_base64_image",t.g.S400_Bad_Request],["invalid_image_url",t.g.S400_Bad_Request],["image_too_large",t.g.S413_Payload_Too_Large],["image_too_small",t.g.S400_Bad_Request],["image_parse_error",t.g.S400_Bad_Request],["image_content_policy_violation",t.g.S403_Forbidden],["invalid_image_mode",t.g.S400_Bad_Request],["image_file_too_large",t.g.S413_Payload_Too_Large],["unsupported_image_media_type",t.g.S400_Bad_Request],["empty_image_file",t.g.S400_Bad_Request],["failed_to_download_image",t.g.S400_Bad_Request],["image_file_not_found",t.g.S404_Not_Found]]),j={[m.MaxOutputTokens]:d.u.Length,[m.ContentFilter]:d.u.ContentFilter};s.z.enum(t.g);let z=new Map(Object.entries(o.c));function T(e){return O.get(e)??null}function R(e){var t;return(void 0===(t=e.errorType)?void 0:z.get(t))??T(e.errorCode)}let F="client";function V(e){return"function_call"===e.type||"custom_tool_call"===e.type||e.execution===F}function E(e){return(0,n.q)(e.type,f)?void 0:e.id?e.id:V(e)?e.call_id:void 0}function P(e){return V(e)?d.O.Function:"mcp_call"===e.type?d.O.Mcp:d.O.Server}function D(e){return`${e}:image`}function q(e,t){let{response:a,reason:r}=e,n=a.openrouter_metadata?.generation_time,i=a.usage??void 0;return[...void 0===i&&void 0===n?[]:[{type:"usage",turnId:t.turnId,usage:{inputTokens:i?.input_tokens,outputTokens:i?.output_tokens,costUsd:i?.cost===void 0?void 0:i.cost.toString(),durationMs:n}}],{type:"turn.finished",turnId:t.turnId,reason:r}]}function $(e,t){return[{type:"tool.input.delta",turnId:t.turnId,callId:e.item_id,delta:e.delta}]}function N(e,t){let r=(0,a.$)(()=>JSON.parse(e.arguments));return[{type:"tool.input.finished",turnId:t.turnId,callId:e.item_id,...(0,a.V)(r)?{}:{input:r.data}}]}function L(e,t){var a,r;return[{type:"text.delta",turnId:t.turnId,partId:(a=e.item_id,r=e.content_index,`${a}:${r}`),delta:e.delta}]}function U(e,t){return[{type:"reasoning.delta",turnId:t.turnId,partId:e.itemId,channel:e.channel,delta:e.delta}]}let G={"response.created":(e,t)=>[{type:"turn.started",turnId:t.turnId}],"response.output_item.added":function(e,t){let a=E(e.item);if(void 0===a)return[];let r=P(e.item),n={type:"tool.started",turnId:t.turnId,callId:a,name:e.item.name??e.item.type,kind:r};return r===d.O.Server?[n,{type:"tool.input.finished",turnId:t.turnId,callId:a}]:e.item.execution===F&&void 0!==e.item.arguments?[n,{type:"tool.input.finished",turnId:t.turnId,callId:a,input:e.item.arguments}]:[n]},"response.output_item.done":function(e,a){let r=E(e.item);if(void 0===r)return[];let n=P(e.item);return[..."image_generation_call"===e.item.type&&"string"==typeof e.item.result?[{type:"media.added",turnId:a.turnId,partId:D(r),media:{kind:"image",url:Z(e.item.result)}}]:[],{type:"tool.finished",turnId:a.turnId,callId:r,output:n===d.O.Function?void 0:e.item,error:function(e){if("failed"===e.status)return(0,l.n)({status:t.g.S502_Bad_Gateway,rawError:e.error??"Tool call failed",location:"responsesSse:toolFailed"})}(e.item)}]},"response.output_text.delta":L,"response.refusal.delta":L,"response.reasoning_summary_text.delta":(e,t)=>U({itemId:e.item_id,channel:d.L.Summary,delta:e.delta},t),"response.reasoning_text.delta":(e,t)=>U({itemId:e.item_id,channel:d.L.Content,delta:e.delta},t),"response.function_call_arguments.delta":$,"response.custom_tool_call_input.delta":$,"response.mcp_call_arguments.delta":$,"response.function_call_arguments.done":N,"response.mcp_call_arguments.done":N,"response.custom_tool_call_input.done":(e,t)=>[{type:"tool.input.finished",turnId:t.turnId,callId:e.item_id,input:e.input}],"response.output_text.annotation.added":(e,t)=>{var a,r;let n=function(e){switch(e.type){case"url_citation":return{kind:"url_citation",title:e.title,url:e.url,startIndex:e.start_index,endIndex:e.end_index};case"file_citation":return{kind:"file_citation",title:e.filename};default:return}}(e.annotation);return void 0===n?[]:[{type:"annotation.added",turnId:t.turnId,partId:(a=e.item_id,r=e.content_index,`${a}:${r}:annotations`),annotation:n}]},"response.image_generation_call.partial_image":(e,t)=>void 0===e.item_id||void 0===e.partial_image_b64?[]:[{type:"media.added",turnId:t.turnId,partId:D(e.item_id),media:{kind:"image",url:Z(e.partial_image_b64)}}],"response.completed":(e,t)=>q({response:e.response,reason:d.u.Stop},t),"response.incomplete":(e,t)=>{var a;return q({response:e.response,reason:(a=e.response.incomplete_details?.reason,(0,n.q)(a,m)?j[a]:d.u.Stop)},t)},"response.failed":(e,t)=>{let a,r;return[{type:"turn.failed",turnId:t.turnId,error:(a=e.response?.error??void 0,r=a?.code??p,(0,l.n)({status:R({errorType:e.response?.error_type,errorCode:r}),rawError:a?.message??"Request failed",location:"responsesSse:responseFailed"}))}]},error:(e,t)=>[{type:"turn.failed",turnId:t.turnId,error:(0,l.n)({status:T(e.code??p),rawError:e.message,location:"responsesSse:streaming"})}]};function B(e,t){return(0,n.q)(e.type,C)?(0,G[e.type])(e,t):[]}function Y(e,t){return{type:"turn.failed",turnId:t.turnId,error:e}}function W(e){return"turn.finished"===e.type||"turn.failed"===e.type}function J(e){return{type:"turn.finished",turnId:e.turnId,reason:d.u.Cancelled}}async function*H(e,n){let s=!1;for await(let o of(0,u.f)(e)){if((0,a.V)(o)){if(n.signal?.aborted===!0){s||(yield J(n));return}yield Y((0,l.O)({status:t.g.S502_Bad_Gateway,rawError:o.error,location:"responsesSse:sse"}).error,n);return}if(o.data===r.f)break;let e=function(e){let r=(0,a.$)(()=>JSON.parse(e));if((0,a.V)(r))return(0,l.O)({status:t.g.S502_Bad_Gateway,rawError:r.error,location:"responsesSse:parse"});let n=(0,i.C)(k,r.data);return(0,a.V)(n)?(0,l.O)({status:t.g.S502_Bad_Gateway,rawError:n.error,location:"responsesSse:schema"}):(0,a.N)({event:n.data,raw:r.data})}(o.data);if((0,a.V)(e))return void(yield Y(e.error,n));n.observe?.(e.data.event,e.data.raw);let d=B(e.data.event,n);if(yield*d,s=s||d.some(W),d.some(e=>"turn.failed"===e.type))return}s||(yield n.signal?.aborted===!0?J(n):Y({code:c.a.StreamEndedEarly,location:"responsesSse:eof",status:t.g.S502_Bad_Gateway},n))}function Z(e){return/^(data:|https?:\/\/)/.test(e)?e:`data:image/png;base64,${e}`}e.s(["g",0,H,"$",0,R,"u",0,B])},317102,e=>{"use strict";var t=e.i(647204),a=e.i(34966),r=e.i(579255);async function*n(e){for await(let a of i(e))yield(0,t.V)(a)?a:(0,t.N)(a.data.data)}async function*i(e){let n=new TextDecoder,i=[],s=(0,a.f)({onEvent:e=>{i.push({data:e.data,event:e.event})}});try{for await(let a of(0,r.f)(e))for(let e of(s.feed(n.decode(a,{stream:!0})),i.splice(0)))yield(0,t.N)(e)}catch(e){yield(0,t.Y)(e)}}e.s(["f",0,n])},801014,e=>{"use strict";var t=e.i(425493),a=e.i(988590);e.i(707060);var r=e.i(387086);let n=(0,r.b)("The intern stopped responding before finishing the turn. It may have restarted or lost its connection."),i=(0,r.b)("The intern turn failed."),s=(0,r.b)("Ori could not be reached."),o=(0,r.b)("An Ori stream line exceeded the maximum length."),l=(0,r.b)("The run failed."),d=(0,r.b)("The run was stopped."),c=(0,r.b)("The tool call failed."),u=(0,r.b)("The tool call was stopped.");function p(e,p){let{code:f}=e;if(!(void 0===f||(0,a.q)(f,t.H)))switch(f){case t.a.StreamSevered:return p(n);case t.a.TurnFailed:return void 0===e.message?p(i):`${p(i)} ${e.message}`;case t.a.SendFailed:return p(s);case t.a.LineTooLong:return p(o);case t.a.RunFailed:return p(void 0===e.message?l:(0,r.b)("The run failed: {message}",{message:e.message}));case t.a.RunStopped:return p(void 0===e.message?d:(0,r.b)("The run was stopped: {message}",{message:e.message}));case t.a.ToolFailed:return p(c);case t.a.ToolStopped:return p(u);case t.a.StreamEndedEarly:return"stream ended before response.completed";default:return f}}e.s(["C",0,p,"U",0,function(e,t){return p(e,t)??e.message??t(i)}])},374015,e=>{"use strict";var t=e.i(29570),a=e.i(892652),r=e.i(632182);let n=(e,t)=>{let n=(0,a.f)(e.messages,{event:t.event,at:t.at}),i=(0,r.e)(e.session,{type:"event",event:t.event,at:t.at});return n===e.messages&&i===e.session?e:{messages:n,session:i}},i={append:(e,t)=>({...e,messages:[...e.messages,t.message]}),replace:(e,t)=>({...e,messages:t.messages}),send:(e,t)=>({...e,session:(0,r.e)(e.session,{type:"send",turnId:t.turnId,at:t.at})}),event:n,abort:(e,a)=>{let i=(0,r.J)(e.session);return void 0===i?e:n(e,{type:"event",event:{type:"turn.finished",turnId:i,reason:t.u.Cancelled},at:a.at})},fail:(e,t)=>(0,r.J)(e.session)!==t.turnId?e:n(e,{type:"event",event:{type:"turn.failed",turnId:t.turnId,error:t.error},at:t.at})};e.s(["B",0,function(e=[]){return{messages:e,session:r.$}},"C",0,function(e,t){return(0,i[t.type])(e,t)}])},45999,e=>{"use strict";var t=e.i(923560),a=e.i(236911),r=e.i(988590),n=e.i(99471),i=e.i(557157);let s=[t.s.MP3,t.s.WAV];e.s(["f",0,function(e){switch(e.type){case i.f.Image:return e.url?{type:"input_image",image_url:e.url,detail:"auto"}:null;case i.f.File:if(e.fileId)return{type:"input_file",file_id:e.fileId,filename:e.name};let o=e.content??e.url;return o?{type:"input_file",file_data:o,filename:e.name}:null;case i.f.Text:if(!e.content)return null;let l=e.content.replaceAll("\r\n","\n").replaceAll("\r","\n");if(e.mime===t.v.ApplicationIPYNB)return{type:"input_text",text:l};let d=function(e){let t=e.lastIndexOf(".");if(-1===t)return"";let a=e.slice(t).toLowerCase();return n.f[a]||""}(e.name);return{type:"input_text",text:`\`\`\`${d} ${l} \`\`\``};case i.f.Audio:let c=e.content??e.url;if(!c)return null;let u=t.R[e.mime??""]??t.s.MP3;return(0,r.q)(u,s)?{type:"input_audio",input_audio:{data:c,format:u}}:null;case i.f.Video:let p;return(p=e.url??e.content)?{type:"input_video",video_url:p}:null;default:(0,a.f)(e.type)}}])},34246,857754,e=>{"use strict";var t=e.i(351603),a=e.i(579119),r=e.i(342837),n=e.i(647204),i=e.i(67089),s=e.i(10758),o=e.i(814492),l=e.i(90422);let d=(e="",t=globalThis.window?.location.search)=>l.f.parse(t)[e];e.s(["A",0,(e,{encode:t=!0,skipEmptyString:a=!0,queryString:r=globalThis.window?.location.search}={})=>{if(!globalThis.window)return new URL((0,o.P)());let n=new URL(globalThis.window?.location.href),i=l.f.parse(r);return n.search=l.f.stringify({...i,...e},{encode:t,arrayFormat:"comma",sort:!1,skipEmptyString:a}),n},"_",0,d],857754);var c=e.i(503741),u=e.i(575889);async function p(){let e=window.Clerk?.session;e?await e.getToken({skipCache:!0}):(0,i.L)("fetch-api-response:clerk-session-unavailable")}async function f({params:e,abortController:t=new AbortController,defaultApiVersion:i="v1",title:o="OpenRouter: Chatroom",fetchApi:l=(0,u.f)().fetchApi,refreshSession:d=p}){var g;(0,c.O)({model:e?.model,reasoning:e?.reasoning,plugins:e?.plugins,tools:e?.tools,provider:e?.provider,maxTokens:e?.max_output_tokens,stream:e?.stream,itemsCount:Array.isArray(e.input)?e.input.length:0});let h=null,y=await m({params:e,abortController:t,defaultApiVersion:i,title:o,fetchApi:(e,t)=>l(e,t).then(e=>(h=e.status,e))});return(0,n.V)(y)&&(0,s.Q)(y.error)?(await (0,n.$)(d),m({params:e,abortController:t,defaultApiVersion:i,title:o,fetchApi:l})):(0,n.V)(y)&&!t.signal.aborted&&null!==h&&((g=h)===r.g.S408_Request_Timeout||g>=r.g.S500_Internal_Server_Error)?(await (0,a.W)(750),m({params:e,abortController:t,defaultApiVersion:i,title:o,fetchApi:l})):y}function m({params:e,abortController:a,defaultApiVersion:r,title:n,fetchApi:i}){let s=d("api")??r,o=`${location.origin}${location.pathname}`,l={"Content-Type":"application/json","HTTP-Referer":o,"X-OpenRouter-Title":n,"X-OpenRouter-Metadata":"enabled"};return(0,t.y)(()=>i(`/api/${s}/responses`,{signal:a.signal,referrer:o,method:"POST",headers:l,body:JSON.stringify(e)}),()=>m({params:e,abortController:a,defaultApiVersion:r,title:n,fetchApi:i}))}e.s(["f",0,f],34246)},101564,e=>{"use strict";e.s(["f",0,"X-Generation-Id"])},29510,e=>{"use strict";var t=e.i(882844),a=e.i(635157),r=e.i(683838),n=e.i(51214),i=e.i(793585),s=e.i(774076),o=e.i(282823),l=e.i(478300);let d=a.z.object({model:a.z.string().openapi({description:"The image generation model to use",example:"bytedance-seed/seedream-4.5"}),prompt:a.z.string().trim().min(1).openapi({description:"Text description of the desired image",example:"a red panda astronaut floating in space, studio lighting"}),n:(0,t.D)().min(1).max(10).optional().openapi({description:"Upper bound on the number of images to generate (1-10). Providers may return fewer images, and providers that only support single-image generation reject n > 1.",example:1}),quality:a.z.nativeEnum(r.u).optional().openapi({description:"Rendering quality. Providers without a quality knob ignore this.",example:"high"}),background:a.z.enum(["auto","transparent","opaque"]).optional().openapi({description:"Background treatment. `transparent` requires an output_format that supports alpha (png or webp).",example:"auto"}),output_format:a.z.enum(["png","jpeg","webp"]).optional().openapi({description:"Encoding of the returned image bytes.",example:"png"}),output_compression:(0,t.D)().min(0).max(100).optional().openapi({description:'Compression level (0-100) for jpeg/webp output. Ignored by providers without a compression knob; providers that honor it may reject it with other output formats (e.g. OpenAI requires output_format "jpeg" or "webp").',example:100}),user:a.z.string().max(256).optional().openapi({description:"A stable identifier for your end-users. Used to help detect and prevent abuse. Never sent to providers verbatim: for providers whose data policy requires user IDs, it is folded into a hashed, per-account upstream user identifier.",example:"end-user-abc123"})}),c=i.f.pick({allow_fallbacks:!0,ignore:!0,only:!0,order:!0,sort:!0}).extend({options:s.f.optional().openapi({example:{"black-forest-labs":{steps:40,guidance:3}}})}).openapi("ImageGenerationProviderPreferences",{description:"Provider routing preferences and provider-specific passthrough configuration.",example:{only:["google-ai-studio"],allow_fallbacks:!1}}),u=d.extend({output_format:a.z.nativeEnum(r.g).optional().openapi({description:"Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. GIF produces an animation on models that support it (OpenAI gpt-image-2.6; see `frame_count`).",example:"png"}),frame_count:(0,t.D)().min(2).max(64).optional().openapi({description:"Number of animation frames (2-64) when `output_format` is `gif`. Only honored by models that produce animations; each accepts its own range and rejects values outside it. Ignored otherwise.",example:8}),frame_duration_ms:(0,t.D)().min(20).max(2e3).optional().openapi({description:"Display time of each animation frame in milliseconds (20-2000) when `output_format` is `gif`. Ignored by models that do not produce animations.",example:100}),markup:n.i.extend({}).openapi({description:"A transparent PNG overlay (arrows, circles, annotations) with the same dimensions as the first reference image, as a base64 data URL or HTTP(S) URL, guiding where an edit applies. Image-to-image requests only; honored by models with markup-guided editing (OpenAI gpt-image-2.6) and ignored otherwise."}).optional(),aspect_ratio:a.z.nativeEnum(r.E).optional().openapi({description:"Normalized aspect ratio of the generated image. Providers clamp to their supported subset.",example:"16:9"}),resolution:a.z.nativeEnum(r.r).optional().openapi({description:"Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.",example:"2K"}),size:a.z.string().optional().openapi({description:'Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048"). A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. Explicit pixel sizes are provider-dependent: providers that accept them treat the value as authoritative and reject a mismatched `resolution` or `aspect_ratio` alongside it with a 400. xAI and Sourceful V2/V2.5 reject explicit pixel sizes (use `resolution` and `aspect_ratio` there); Sourceful V2.6 supports them within its dimension limits and does not allow combining them with `resolution` or `aspect_ratio`.',example:"2K"}),seed:(0,t.D)().optional().openapi({description:"If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers."}),stream:a.z.boolean().optional().openapi({description:"If true, partial images are streamed as SSE events as they become available. Only supported by providers with native streaming (currently OpenAI). Non-streaming providers ignore this flag and return a buffered response."}),input_references:a.z.array(n.i).max(16).optional().openapi({description:"Reference images to guide image-to-image generation, as base64 data URLs or HTTP(S) URLs."}),provider:c.optional(),session_id:o.p,trace:l.f}).openapi("ImageGenerationRequest",{description:"Image generation request input",example:{model:"bytedance-seed/seedream-4.5",prompt:"a red panda astronaut floating in space, studio lighting"}});e.s(["f",0,u])},675272,e=>{"use strict";var t=e.i(882844),a=e.i(635157),r=e.i(919161);let n={absolute:[238,124,786,673],normalized:[232,121,768,657]},i=a.z.object({absolute:a.z.tuple([(0,t.D)(),(0,t.D)(),(0,t.D)(),(0,t.D)()]).openapi({description:"Layer box in pixels of the base image, as `[x_min, y_min, x_max, y_max]`"}),normalized:a.z.tuple([(0,t.D)(),(0,t.D)(),(0,t.D)(),(0,t.D)()]).openapi({description:"Layer box scaled to 0-1000 on each axis, as `[x_min, y_min, x_max, y_max]`"})}).openapi("ImageGenerationLayerBoundingBox",{description:"Where a layer sits on the base image",example:n}),s=a.z.object({text:a.z.string(),style:a.z.record(a.z.string(),a.z.union([a.z.string(),a.z.boolean(),(0,t.$)()])).optional().openapi({description:"Font and style the provider recognized for this run, e.g. `similar_font_family`, `foreground_color`, `bold`"})}).openapi("ImageGenerationLayerTextRun",{description:"A run of text that shares one style",example:{text:"SALE",style:{similar_font_family:"Menlo",bold:!0}}}),o=a.z.object({text:a.z.string().openapi({description:"Full text recognized in the layer"}),lines:a.z.array(a.z.object({runs:a.z.array(s),bounding_box:i.optional()})).optional()}).openapi("ImageGenerationLayerTextRecognition",{description:"Text found in the layer, present when the provider ran text recognition",example:{text:"SALE",lines:[{runs:[{text:"SALE"}],bounding_box:n}]}}),l=a.z.object({z_index:(0,t.D)().openapi({description:"Stacking order; 0 is the opaque base image and higher values sit on top"}),name:a.z.string().optional().openapi({description:"Short provider-assigned layer name"}),description:a.z.string().optional().openapi({description:"Provider description of the layer"}),background:a.z.enum(["opaque","transparent"]).optional().openapi({description:"Whether the layer image has a transparent background"}),bounding_box:i.optional(),text_recognition:o.optional()}).openapi("ImageGenerationLayer",{example:{z_index:1,name:"Red circle",description:"A solid red circle",background:"transparent",bounding_box:n},description:"Layer metadata, present when the request asked the provider to split the image into layers (Seedream: `provider.options.seed.layer_decomposition: true` with the required `layer_decomposition_options.max_images`, 2 to 16). Decomposition requires `n` to be 1 or omitted; the response returns up to `max_images` images (the base image plus its layers)."}),d=a.z.object({created:(0,t.D)().openapi({description:"Unix timestamp (seconds) when the image was generated",example:0x68360bb0}),data:a.z.array(a.z.object({b64_json:a.z.string().openapi({description:"Base64-encoded image bytes"}),media_type:a.z.string().optional().openapi({description:"Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined.",example:"image/png"}),layer:l.optional()})).openapi({description:"Generated images"}),usage:r.f}).openapi("ImageGenerationResponse",{description:"Image generation response",example:{created:0x68360bb0,data:[{b64_json:""}],usage:{prompt_tokens:0,completion_tokens:4175,total_tokens:4175,cost:.04}}});e.s(["f",0,d])},919161,e=>{"use strict";let t=e.i(141841).I.optional().openapi("ImageGenerationUsage",{description:"Token and cost usage for the image generation request, when available",example:{prompt_tokens:0,completion_tokens:4175,total_tokens:4175,cost:.04}});e.s(["f",0,t])},733442,e=>{"use strict";var t=e.i(207298);e.i(707060);var a=e.i(387086);let r={"interactive-web-app":(0,a.b)("Web App"),"landing-page":(0,a.b)("Landing"),"2d-game":(0,a.b)("2D Game"),"3d-game":(0,a.b)("3D")},n={"html-css-js":(0,a.b)("HTML/CSS/JS")},i=(0,t.f)("rounded-full",{variants:{status:{idle:"bg-muted-foreground",generating:"bg-warning",success:"bg-positive",failed:"bg-negative"},isAnimated:{true:"",false:""}},compoundVariants:[{status:"generating",isAnimated:!0,class:"animate-pulse"}],defaultVariants:{isAnimated:!1}});e.s(["E",0,"openrouter:playground","Y",0,3,"t",0,"v3","s",0,{idle:"Idle",generating:"Generating",success:"Success",failed:"Failed"},"r",0,function(e,t){return t?e(r[t]):""},"j",0,function(e,t){return t?e(n[t]):""},"I",0,i])},471316,e=>{"use strict";var t=e.i(586906),a=e.i(22022);e.s(["f",0,function(e={}){let r=new Date,n=e.modelInfo??null,i=(0,a.U)(e.model??n?.slug)?(0,a.C)():null;return{id:e.id??(0,t.L)(t.I.Character),name:e.name??i?.name,model:e.model??"auto",modelInfo:n,description:e.description??i?.description??"",includeDefaultSystemPrompt:e.includeDefaultSystemPrompt??i?.includeDefaultSystemPrompt??!0,avatarUrl:e.avatarUrl??void 0,presetSlug:e.presetSlug,presetName:e.presetName,isRoutingPreset:e.isRoutingPreset,isStreaming:e.isStreaming??!0,samplingParameters:function(e,t={}){let a=e?.default_parameters??{},r={};for(let[e,t]of Object.entries(a))"number"==typeof t&&(r[e]=t);return{...r,...t}}(n,Object.fromEntries(Object.entries(e.samplingParameters??{}).filter(([,e])=>"number"==typeof e))),maxTokens:e.maxTokens,provider:e.provider??void 0,providerSort:e.providerSort??void 0,isDisabled:e.isDisabled??!1,isRemoved:e.isRemoved??!1,createdAt:e.createdAt??r,updatedAt:e.updatedAt??r,reasoning:e.reasoning??void 0,zdr:e.zdr??void 0,plugins:e.plugins??[],switchyardAlgorithm:e.switchyardAlgorithm,artifactId:e.artifactId??void 0}}])},286709,e=>{"use strict";e.s(["f",0,function(e){return t=>a=>e.handler({...t,payload:a?.payload,dependencies:a?.dependencies})}])},622817,e=>{"use strict";var t=e.i(667417),a=e.i(209615),r=e.i(744475);let n="intern/",i=/^[A-Za-z0-9_-]+$/u;function s(e){return null!==o(e)}function o(e){if(!e?.startsWith(n))return null;let t=e.slice(n.length);return i.test(t)?t:null}e.s(["i",0,"Interns","J",0,o,"o",0,function(e){var i;let s=(i=e.id,`${n}${i}`);return{slug:s,permaslug:s,hf_slug:null,created_at:e.createdAt,updated_at:e.updatedAt,hf_updated_at:null,name:e.name,short_name:e.name,author:"intern",author_display_name:"Intern",author_icon_uri:function(e){var t;let a,n;if(null!==e.iconSha256)return(0,r.d)(e.id,e.iconSha256);return t=0===(a=e.name.trim()).length||"Your intern"===a?"..":a.slice(0,2).toUpperCase(),n=`${t.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}`,`data:image/svg+xml,${encodeURIComponent(n)}`}(e),description:e.description??"",model_version_group_id:null,context_length:0,input_modalities:[t.D.Text],output_modalities:[t.j.Text],has_text_output:!0,instruct_type:null,group:a.f.Other,default_system:null,default_stops:[],hidden:!1,router:null,warning_message:null,promotion_message:null,routing_error_message:null,required_attestation_types:[],is_private:!0,owner_clerk_user_id:null,supports_reasoning:!1,reasoning_config:null,features:null,default_parameters:null,default_order:[],quick_start_example_type:null,is_trainable_text:null,is_trainable_image:null,knowledge_cutoff:null,limit_rpm:null,limit_rpd:null,supported_tts_voices:null,endpoint:null}},"W",0,function({workspaceId:e,internId:t}){return`/workspaces/${encodeURIComponent(e)}/interns/${encodeURIComponent(t)}/persona`},"n",0,function(e){return s(e.model)||s(e.modelInfo?.slug)},"C",0,s],622817)},463444,170993,e=>{"use strict";var t=e.i(430022),a=e.i(973811),r=e.i(622817);function n(e){return!e.isRemoved&&!e.artifactId}e.s(["f",0,n],170993);var i=e.i(693946);let s=(0,a.l)([i.B,e=>e.pendingCharacters,i.M],(e,t,a)=>{let r=!a&&t?t:e;return r?Object.fromEntries(Object.entries(r).filter(([,e])=>e&&n(e))):{}}),o=(0,a.l)([s],e=>e?Object.values(e).filter(e=>!!e&&!e.isDisabled&&n(e)):[]),l=(0,a.l)([o],e=>{let t=e.filter(e=>(0,r.n)(e)).length;return{hasInterns:t>0,hasOnlyInterns:e.length>0&&t===e.length}}),d=(0,a.l)(s,e=>e?Object.values(e).toSorted((e,a)=>(0,t.P)(e.createdAt,new Date).getTime()-(0,t.P)(a.createdAt,new Date).getTime()).map(e=>e.id):[]);e.s(["F",0,()=>(0,a.l)([i.B,(e,t)=>t],(e,t)=>e?.[t]??null),"S",0,l,"Q",0,o,"T",0,s,"m",0,d],463444)},693946,44299,e=>{"use strict";var t=e.i(369566),a=e.i(340800),r=e.i(973811),n=e.i(295654);function i(e){return e.lastActivityAt??e.createdAt}e.s(["f",0,i],44299);let s=e=>e.rooms,o=e=>e.currentRoomId,l=(0,r.l)([s,o],(e,t)=>t?e[t]??n.R:n.R),d=(0,r.l)([l,e=>e.pendingCharacters,o],(e,t,a)=>a?e.characters:t),c=(0,r.l)([l,e=>e.pendingRoomZdr,o],(e,t,a)=>a?!0===e.zdr:!0===t),u=(0,r.l)([l],e=>e.isProcessing??!1),p=(0,r.l)([l],e=>e.hydrationStatus??"idle"),f=(0,r.l)([l],e=>e.title??n.l),m=(0,r.l)([l],e=>e.messages),g=(0,r.l)([l],e=>e.sortedMessageIds),h=(0,r.l)([l],e=>e.hydrationError),y=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let a=0;aObject.values(e).filter(e=>void 0===e.internId).map(e=>({id:e.id,title:e.title??n.l,isPinned:!!e.isPinned,createdAt:e.createdAt,updatedAt:e.updatedAt??e.createdAt,lastActivityAt:i(e)})),{memoize:r.P,memoizeOptions:{resultEqualityCheck:y}}),I=[(e,t)=>t.trim().toLowerCase(),(e,t,a)=>a,(e,t,a,r)=>r.timeZone,(e,t,a,r)=>r.nowMs];function b(e,r,n,i,s){let o=r?e.filter(e=>e.title.toLowerCase().includes(r)):e,l=o.filter(e=>e.isPinned).sort((e,t)=>(t.lastActivityAt?.getTime()??0)-(e.lastActivityAt?.getTime()??0)),d=o.filter(e=>!e.isPinned).sort((e,t)=>(t.lastActivityAt?.getTime()??0)-(e.lastActivityAt?.getTime()??0)).reduce((e,r)=>{let o=function(e,{locale:r,timeZone:n,nowMs:i}){let s=(0,t.f)(e,{timeZone:n});if(void 0===s)return"Older";let o=(0,t.f)(i,{timeZone:n});if(void 0!==o){let e=(Date.parse(o)-Date.parse(s))/864e5;if(e<0)return"Upcoming";if(0===e)return"Today";if(1===e)return"Yesterday";if(e<=7)return"Previous 7 Days";if(e<=30)return"Previous 30 Days"}return(0,a.C)(e,{locale:r,timeZone:n,preset:"month-year"})??"Older"}(r.lastActivityAt,{locale:n,timeZone:i,nowMs:s});return e[o]||(e[o]=[]),e[o].push(r.id),e},{}),c=Object.keys(d);return{pinned:l.map(e=>e.id),recent:c.map(e=>({groupName:e,roomIds:d[e]??[]}))}}let w=(0,r.l)([v,...I],b),_=(0,r.l)([s,(e,t)=>t],(e,t)=>Object.values(e).filter(e=>e.internId===t).map(e=>({id:e.id,title:e.title??n.l,isPinned:!!e.isPinned,createdAt:e.createdAt,updatedAt:e.updatedAt??e.createdAt,lastActivityAt:i(e)})),{memoize:r.P,memoizeOptions:{resultEqualityCheck:y}}),A=(0,r.l)([(e,t)=>_(e,t),(e,t,a)=>a.trim().toLowerCase(),(e,t,a,r)=>r,(e,t,a,r,n)=>n.timeZone,(e,t,a,r,n)=>n.nowMs],b),x=(0,r.l)([s,(e,t)=>t],(e,t)=>e[t]?.title??n.l),S=(0,r.l)([s,(e,t)=>t],(e,t)=>!!e[t]?.isPinned);e.s(["B",0,d,"O",0,u,"A",0,m,"s",0,h,"y",0,p,"M",0,o,"T",0,f,"e",0,c,"U",0,g,"v",0,A,"J",0,S,"m",0,x,"F",0,w],693946)},390889,104108,630164,347586,44745,923307,63102,590333,585767,325681,44539,2726,709687,561124,740594,847893,e=>{"use strict";e.i(818009);var t=e.i(982432);e.i(707060);var a=e.i(387086),r=e.i(286709),n=e.i(693946),i=e.i(357107);let s=(0,r.f)({name:"fixArtifactVersionError",handler:async({get:e,payload:r})=>{let{artifactId:s,versionId:o}=r,l=(0,n.M)(e()),d=e().artifactVersions[o];if(!l)return void(0,t.c)({title:(0,i.q)((0,a.b)("Action Failed")),description:(0,i.q)((0,a.b)("Could not find the current room.")),variant:"destructive"});if(!d?.error||0===d.error.length)return void(0,t.c)({title:(0,i.q)((0,a.b)("Action Failed")),description:(0,i.q)((0,a.b)("No error was found on the specified version.")),variant:"destructive"});let c=d.characterId??null;c&&e().actions.setActiveCharacterForArtifact({payload:{artifactId:s,characterId:c}}),e().actions.setActiveVersionId({payload:{artifactId:s,versionId:o}});let u=`The previous version produced a runtime or build error. Please analyze the code and the error below, then provide the minimal file changes to fix it. --- Error: ${d.error}`;e().actions.sendGenerationPromptToArtifact({payload:{roomId:l,artifactId:s,prompt:u}})}});e.s(["f",0,s],390889);var o=e.i(647204),l=e.i(447680);let d=(0,r.f)({name:"reportArtifactVersionError",handler:async({set:e,get:r,payload:n})=>{let{versionId:s,error:d}=n;e(e=>{let t=e.artifactVersions[s];t&&(t.error=d)});let c=r().storageInstanceId,u=r().artifactVersions[s];if(!c||!u)return;let p=await (0,o.$)(()=>l.f.saveArtifactVersions(c,[u]));(0,o.V)(p)&&(0,t.c)({title:(0,i.q)((0,a.b)("Error Saving State")),description:(0,i.q)((0,a.b)("Could not persist the artifact error.")),variant:"destructive"})}});e.s(["f",0,d],104108);let c=(0,r.f)({name:"setExpandedFolders",handler:({set:e,payload:t})=>{e(e=>{let a=e.artifactViewerState[t.artifactId];a&&(a.expandedFolders=t.expandedFolders)})}});e.s(["f",0,c],630164);let u={current:new class{controllers=new Set;spawn(){let e=new AbortController;return this.controllers.add(e),e}release(e){this.controllers.delete(e)}async withController(e){let t=this.spawn();try{return await e(t)}finally{this.release(t)}}flush(){for(let e of this.controllers)e.abort();this.controllers.clear()}}};e.s(["f",0,u],347586);var p=e.i(932061);function f(e,t){let a=(e.createdAt?.getTime()??0)-(t.createdAt?.getTime()??0);return 0!==a?a:"user"===e.type&&"assistant"===t.type?-1:"assistant"===e.type&&"user"===t.type?1:(0,p.f)(e.id,t.id)}e.s(["f",0,f],44745);let m=(0,r.f)({name:"stopArtifactVersionGeneration",handler:async({get:e,set:t,payload:{roomId:a,artifactId:r,versionId:n}})=>{u.current.flush();let i=e().storageInstanceId,s=e().rooms[a];if(!s)return;let o=Object.values(s.messages).find(e=>"assistant"===e.type&&!0===e.isGenerating&&"artifact-version"===e.contentType&&e.artifactId===r&&e.versionContextId===n);if(!o)return void t(e=>{let t=e.rooms[a];t&&Object.values(t.messages).forEach(e=>{"assistant"===e.type&&!0===e.isGenerating&&"artifact-version"===e.contentType&&e.artifactId===r&&e.versionContextId===n&&(e.isGenerating=!1)})});let d=o.id,c=o.parentMessageId??null;if(!i)return;let p=!1,m=[];t(e=>{let t=e.rooms[a];if(!t)return;let i=()=>{let e=new Set([d]);c&&e.add(c);let a={};for(let[r,n]of Object.entries(t.messages))e.has(r)||(a[r]=n);t.messages=a,t.sortedMessageIds=Object.values(a).sort(f).map(e=>e.id)},s=e.artifactVersions[n];if(!s)return void i();p=!0;let o=e.artifacts[r];if(!o){delete e.artifactVersions[n],i();return}o.headVersionId===n&&(o.headVersionId=s.parentVersionId??void 0,o.updatedAt=new Date,m.push(o.id));let l=e.artifactViewerState[r];l?.activeVersionId===n&&(l.activeVersionId=s.parentVersionId??null),delete e.artifactVersions[n],i()});let g=m.map(t=>e().artifacts[t]).filter(e=>!!e),h=[l.f.deleteMessages(i,a,c?[d,c]:[d])];p&&h.push(l.f.deleteArtifactVersions(i,[n])),g.length>0&&h.push(l.f.saveArtifacts(i,a,g)),await Promise.all(h)}});e.s(["f",0,m],923307);let g=(0,r.f)({name:"appendItemIdToMessage",handler:async({set:e,get:t,payload:a})=>{let{roomId:r,messageId:n,itemId:i,outputIndex:s,type:o}=a,d=!1;if(e(e=>{let t=e.rooms[r];if(!t)return;let a=t.messages[n];if(a?.type!=="assistant")return;let l={id:i,outputIndex:s,type:o,sequenceIndex:a.items.length};a.items.push(l),d=!0}),!d)return;let c=t().storageInstanceId;if(!c)return;let u=t().rooms[r]?.messages[n];u&&await l.f.saveMessage(c,r,u)}});e.s(["f",0,g],63102);let h=(0,r.f)({name:"clearArtifactViewState",handler:({set:e,payload:t})=>{e(e=>{delete e.artifactViewerState[t.artifactId]})}});e.s(["f",0,h],590333);let y=(0,r.f)({name:"closeArtifactView",handler:({set:e})=>{e({activeArtifactId:null})}});e.s(["f",0,y],585767);var v=e.i(700050);let I=(0,r.f)({name:"deleteArtifact",handler:async({set:e,get:t,payload:a})=>{let{roomId:r,artifactId:n}=a,i=t().storageInstanceId,s=t().rooms[r],o=t().artifacts[n];if(!s||!o||!i)return;let d=Object.values(s.messages??{}).find(e=>"assistant"===e.type&&e.artifactId===n);(0,v.l)({type:o.type,versionCount:0,fileCount:o.fileIds.length}),e(e=>{let t=e.rooms[r];t&&(delete e.artifacts[n],t.artifactIds=t.artifactIds.filter(e=>e!==n),d&&(delete t.messages[d.id],t.sortedMessageIds=Object.values(t.messages).sort(f).map(e=>e.id)),t.updatedAt=new Date)}),t().actions.clearArtifactViewState({payload:{artifactId:n}}),await l.f.deleteArtifact(i,r,n),d&&await l.f.deleteMessage(i,r,d.id)}});e.s(["f",0,I],325681);var b=e.i(295654),w=e.i(586906);function _(e){let t=new Date;return{id:(0,w.L)(w.I.ArtifactVersion),type:"app",artifactId:e.artifactId,parentVersionId:e.parentVersionId,generatingMessageId:e.generatingMessageId,characterId:e.characterId,fileContents:e.fileContents??{},createdAt:e.createdAt??t,generationStatus:e.generationStatus??"idle",versionNumber:e.versionNumber,characterName:e.characterName,prompt:e.prompt,error:e.error}}e.s(["L",0,function(e){let t=new Date;return{id:(0,w.L)(w.I.Artifact),name:e.name,type:"app",fileIds:e.fileIds,stack:e.stack??"html-css-js",archetype:e.archetype??"interactive-web-app",entrypointFileId:e.entrypointFileId,headVersionId:e.headVersionId,createdAt:e.createdAt??t,updatedAt:e.updatedAt??t,characterIds:e.characterIds??[]}},"Y",0,_,"p",0,function(e={}){let t=new Date;return{id:(0,w.L)(w.I.ArtifactFileContent),content:e.content??"",generationStatus:e.generationStatus??"idle",createdAt:e.createdAt??t}},"f",0,function(e){let t=new Date;return{id:(0,w.L)(w.I.ArtifactFile),createdAt:t,updatedAt:t,...e}},"V",0,function(e){let t=new Date;return{id:(0,w.L)(w.I.Artifact),type:"image",name:e.name,prompt:e.prompt,fileIds:e.fileIds,headVersionId:e.headVersionId,createdAt:e.createdAt??t,updatedAt:e.updatedAt??t,characterIds:e.characterIds??[]}}],44539);let A=(0,r.f)({name:"deleteArtifactFile",handler:async({get:e,set:r,payload:s})=>{let{artifactId:o,fileId:d}=s,c=(0,n.M)(e()),u=e().storageInstanceId;if(!c||!u)return;let p=e(),f=p.artifacts[o],m=f?.headVersionId,g=m?p.artifactVersions[m]:void 0;if(!f)return void(0,t.c)({title:(0,i.q)((0,a.b)("Error")),description:(0,i.q)((0,a.b)("Artifact not found."))});if(!g)return void(0,t.c)({title:(0,i.q)((0,a.b)("Error")),description:(0,i.q)((0,a.b)("Cannot delete from an artifact with no versions."))});if((f.fileIds?.length??0)<=1)return void(0,t.c)({title:(0,i.q)((0,a.b)("Delete Failed")),description:(0,i.q)((0,a.b)("Cannot delete the last file in an artifact.")),variant:"destructive"});let h=_({artifactId:o,parentVersionId:m,characterId:b.d.id,fileContents:{...g.fileContents},generationStatus:"success",generatingMessageId:void 0});delete h.fileContents[d];let y={...f,headVersionId:h.id,fileIds:Object.keys(h.fileContents),updatedAt:new Date};r(e=>{e.artifacts[o]=y,e.artifactVersions[h.id]=h;let t=e.artifactViewerState[o];t&&(t.activeVersionId=h.id,t.activeFileId===d&&(t.activeFileId=null))}),await Promise.all([l.f.saveArtifacts(u,c,[y]),l.f.saveArtifactVersions(u,[h])]),(0,t.c)({title:(0,i.q)((0,a.b)("File Deleted")),description:(0,i.q)((0,a.b)("The file has been removed in a new version."))})}});e.s(["f",0,A],2726);var x=e.i(989487),S=e.i(506050),C=e.i(67089),M=e.i(479017),k=e.i(313939),O=e.i(556295);let j=!1,z=[],T=(0,k.f)()((0,O.f)(e=>({artifactContent:{},actions:{setArtifactContent:(t,a)=>{e(e=>{e.artifactContent[t]=a})},appendArtifactContent:(t,a)=>{z.push({id:t,chunk:a}),j||(j=!0,requestAnimationFrame(()=>{e(e=>{for(let{id:t,chunk:a}of z){let r=e.artifactContent[t]||"";e.artifactContent[t]=r+a}}),z.length=0,j=!1}))},deleteArtifactContent(t){e(e=>{delete e.artifactContent[t]})},loadArtifactContent(t){e(e=>{Object.assign(e.artifactContent,t)})}}})));e.s(["f",0,T],709687);var R=e.i(973811);let F=e=>e.artifacts,V=e=>e.artifactFiles,E=e=>e.artifactVersions,P=e=>e.artifactFileContents,D=e=>e.activeArtifactId,q=e=>e.artifactViewerState,$=(0,R.l)([F,D],(e,t)=>t?e[t]:void 0),N=(0,R.l)([D,q],(e,t)=>e?t[e]??null:null),L=(0,R.l)([D,q],(e,t)=>e?t[e]?.activeFileId??null:null),U=(e,t)=>t.versionId,G=(e,t)=>t.fileId,B=(e,t)=>t.versionId,Y=(0,R.l)([N],e=>e?.activeVersionId),W=(0,R.l)([N],e=>e?.view??"editor"),J=(0,R.l)([F,(e,t)=>t.artifactId],(e,t)=>e[t]),H=(0,R.l)([e=>e.rooms[e.currentRoomId??""]?.sortedMessageIds??[],e=>e.rooms[e.currentRoomId??""]?.messages??{},(e,t)=>t],(e,t,a)=>e.filter(e=>{let r=t[e];return!!r&&"artifact-chat"===r.context&&r.artifactId===a})),Z=(0,R.l)([E,B],(e,t)=>t?e[t]:void 0),Q=(0,R.l)([E,U],(e,t)=>t?e[t]:void 0),X=(0,R.l)([Q,G],(e,t)=>e&&t?e.fileContents[t]??null:null),K=(0,R.l)([P,X],(e,t)=>{if(!t)return null;let a=e[t];return a?.content??null}),ee=(0,R.l)([E,U],(e,t)=>{if(!t)return{version:void 0,parentVersion:void 0};let a=e[t],r=a?.parentVersionId?e[a.parentVersionId]:void 0;return{version:a,parentVersion:r}}),et=(0,R.l)([ee,P,G],({version:e,parentVersion:t},a,r)=>{if(!r||!e)return"idle";let n=r in e.fileContents,i=t&&r in t.fileContents;if(n){let n=e.fileContents[r],s=a[n];return s?.generationStatus==="generating"?"generating":i?n!==t.fileContents[r]?"modified":"idle":"new"}return i?"removed":"idle"}),ea=(0,R.l)([Z,V],(e,t)=>e?Object.keys(e.fileContents).map(e=>t[e]).filter(e=>!!e):[]),er=(0,R.l)([Z,V,E],(e,t,a)=>{if(!e)return[];let r=new Set(Object.keys(e.fileContents)),n=e.parentVersionId?a[e.parentVersionId]:void 0;return Array.from(new Set([...r,...n?new Set(Object.keys(n.fileContents)):new Set])).map(e=>t[e]).filter(e=>!!e)}),en=(0,R.l)([E,$],(e,t)=>t?Object.values(e).filter(e=>!!e&&e.artifactId===t.id):[]),ei=(0,R.l)([en,B],(e,t)=>{if(!e.length||!t)return null;let a=[...e].sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime()).findIndex(e=>e.id===t);return -1!==a?a+1:null});e.s(["I",0,$,"z",0,D,"j",0,Y,"L",0,W,"F",0,L,"x",0,E,"G",0,J,"p",0,H,"S",0,K,"m",0,et,"t",0,ea,"n",0,er,"O",0,Z,"Q",0,ei],561124);let es=(0,r.f)({name:"downloadArtifactVersion",handler:async({get:r,payload:n})=>{let{artifactId:s,versionId:l}=n,d=r(),c=d.artifactVersions[l],u=d.artifacts[s];if(!c||!u)return void(0,t.c)({title:(0,i.q)((0,a.b)("Error")),description:(0,i.q)((0,a.b)("Artifact or version not found.")),variant:"destructive"});let p=ea(d,{versionId:l});if(0===p.length)return void(0,t.c)({title:(0,i.q)((0,a.b)("No files to download for this version.")),variant:"destructive"});let f=c.fileContents,m=d.artifactFileContents,g=T.getState().artifactContent,h=[];for(let e of p){let t=f[e.id];if(!t){(0,C.s)("Content ID not found for file in version",{file_id:e.id,version_id:l});continue}h.push({filename:e.filename,content:g[t]??m[t]?.content??""})}(0,t.c)({title:(0,i.q)((0,a.b)("Zipping files...")),description:(0,i.q)((0,a.b)("Your download will begin shortly."))});let y=await (0,o.$)(async()=>{let{default:t}=await e.A(688269),a=new t;for(let e of h)a.file(e.filename,e.content);return a.generateAsync({type:"blob"})});if((0,o.V)(y)){let e=y.error instanceof Error?y.error.message:(0,i.q)((0,a.b)("An unknown error occurred."));(0,t.c)({title:(0,i.q)((0,a.b)("Failed to create ZIP file")),description:e,variant:"destructive"}),(0,C.s)("Failed to generate ZIP for artifact version download",{...(0,S.s)(y.error),version_id:l});return}let v=y.data,I=function(e){let t=e.trim();if(t.length>50){let e=t.lastIndexOf(" ",50);t=-1!==e?t.substring(0,e):t.substring(0,50)}return(0,x.O)(t)}(u.name),b=`${I}-v${c.versionNumber||"1"}.zip`;(0,M.saveAs)(v,b)}});function eo(e){let t=new Date;return{id:e.id,artifactId:e.artifactId,characterId:e.characterId,contentType:e.contentType??"text",context:e.context??"main-chat",parentMessageId:e.parentMessageId,versionContextId:e.versionContextId,createdAt:e.createdAt??t,updatedAt:e.updatedAt??t,isRetrying:e.isRetrying??!1,isEdited:e.isEdited??!1,isCollapsed:e.isCollapsed??!1}}e.s(["f",0,es],740594),e.s(["h",0,function(e){return{...eo(e),type:"assistant",generatedArtifactType:e.generatedArtifactType,isGenerating:e.isGenerating??!0,metadata:e.metadata,items:e.items,requestOverrides:e.requestOverrides,content:void 0,reasoning:void 0,images:void 0,citations:void 0,files:void 0}},"q",0,function(e){return{...eo(e),type:"system",items:e.items}},"O",0,function(e){return{...eo(e),type:"user",items:e.items,content:void 0,attachments:void 0,attachmentMetadata:e.attachmentMetadata,requestOverrides:e.requestOverrides}}],847893)},915309,454785,e=>{"use strict";var t=e.i(647204),a=e.i(295654),r=e.i(463444),n=e.i(700050),i=e.i(971061),s=e.i(911585);function o({get:e},{roomId:t,messageContent:r}){let l=new Set([a.l,(0,s.f)(r)]);(0,i.f)(r).then(a=>{if(!a)return;let i=e().rooms[t]?.title;(!i||l.has(i))&&(e().actions.updateRoom({payload:{roomId:t,partialRoom:{title:a}}}),(0,n.a)({inputLength:r.length,titleLength:a.length}))})}async function l(e,n){let i=(0,r.Q)(e());if(0===i.length)return(0,t.Y)(Error("Please select at least one model to generate."));if(n.roomId){let r=e().rooms[n.roomId];return r?(r.title&&r.title!==a.l||(await e().actions.updateRoom({payload:{roomId:r.id,partialRoom:{title:(0,s.f)(n.prompt)}}}),o({get:e},{roomId:r.id,messageContent:n.prompt})),(0,t.N)({room:r,characters:i})):(0,t.Y)(Error("Room not found"))}let l={};for(let e of i)l[e.id]=e;let d=await (0,t.$)(()=>e().actions.createChatroom({payload:{title:(0,s.f)(n.prompt),characters:l}}));if((0,t.V)(d)){let e=d.error;return(0,t.Y)(e instanceof Error?e:Error("Failed to create a new room."))}let c=d.data;o({get:e},{roomId:c.id,messageContent:n.prompt}),e().actions.setPendingCharacters({payload:{characters:null}});let u=Object.values(c.characters);return(0,t.N)({room:c,characters:u})}e.s(["f",0,o],454785),e.s(["f",0,l],915309)},628879,524391,514703,738237,671877,930339,745732,969793,904849,696622,e=>{"use strict";e.i(818009);var t=e.i(982432),a=e.i(647204),r=e.i(67089),n=e.i(586906);e.i(707060);var i=e.i(387086),s=e.i(700050),o=e.i(295654),l=e.i(44539),d=e.i(826735),c=e.i(847893),u=e.i(286709),p=e.i(447680),f=e.i(915309),m=e.i(44745),g=e.i(735961),h=e.i(357107),y=e.i(407568),v=e.i(773229),I=e.i(17972),b=e.i(466260),w=e.i(45999),_=e.i(559505);function A(e){let t=(0,w.f)(e);return t?{role:_.f.User,type:"message",content:[t]}:{role:_.f.User,type:"message",content:`Attachment: ${e.name} (${e.size} bytes)`}}function x(e){let{generationPrompt:t,archetype:a,initialVirtualFiles:r,attachments:n}=e,{getSystemPrompt:i}=(0,I.f)(a),{baseInstructions:s,finalInstructions:o}=i(!1),l=(0,b.n)(r),d=(0,b.G)(l),c=(0,b.X)({baseInstructions:s,finalInstructions:o,generationPrompt:t,mainContext:d||void 0});return[...(n??[]).map(A),...c]}var S=e.i(176478);async function C(e,{roomId:t,payload:r,namespace:i,generatorCharacters:s,originalTimestampMap:l}){if(r.retryFromMessageId){let n=e().rooms[t]?.messages[r.retryFromMessageId];if(!n)return(0,a.Y)({kind:"retry-source-missing"});let i="user"===n.type?n:e().rooms[t]?.messages[n.parentMessageId??""];if(!i||"user"!==i.type)return(0,a.Y)({kind:"retry-prompt-missing"});let o=Object.values(e().rooms[t]?.messages??{}).filter(e=>e.parentMessageId===i.id&&"artifact"===e.contentType),d=new Set(s.map(e=>e.id));for(let a of o.filter(e=>"assistant"===e.type&&d.has(e.characterId)))a.createdAt&&l.set(a.characterId,new Date(a.createdAt)),a.artifactId&&await e().actions.deleteArtifact({payload:{roomId:t,artifactId:a.artifactId}});return(0,a.N)({userMessage:i,userMessageItem:null})}let u=(0,n.L)(n.I.Message),f={type:"message",role:"user",content:[{type:"input_text",text:r.prompt}]},m=(0,d.f)({id:(0,n.L)(n.I.Item),messageId:u,data:f}),g=(0,c.O)({id:u,characterId:o.d.id,context:"main-chat",contentType:"artifact",items:[{id:m.id,type:"message"}],attachments:r.attachments});return await p.f.saveMessages(i,t,[g]),await p.f.saveItems(i,t,[m]),(0,a.N)({userMessage:g,userMessageItem:m})}let M=(0,u.f)({name:"generateArtifact",handler:async({get:e,set:u,payload:b,dependencies:{router:w,resetComposer:_}})=>{let A=e().storageInstanceId;if(!A)return(0,a.Y)({type:"setup-failure",message:(0,i.b)("Namespace not found")});let M=await (0,f.f)(e,b);if((0,a.V)(M)){let e=M.error instanceof Error?M.error.message:(0,h.q)((0,i.b)("Failed to setup artifact room"));return(0,t.c)({title:(0,h.q)((0,i.b)("Error creating {type}",{type:b.type})),description:e,variant:"destructive"}),(0,a.Y)({type:"setup-failure",message:e,cause:M.error})}w.push(`?room=${M.data.room.id}`);let{room:k,characters:O}=M.data,j=k.id,z=b.characterIds?.length?O.filter(e=>b.characterIds.includes(e.id)):O;if(0===z.length){let e=(0,i.b)("Please select at least one model to generate.");return(0,a.Y)({type:"setup-failure",message:e})}let T=new Map,R=await C(e,{roomId:j,payload:{...b,characterIds:z.map(e=>e.id)},namespace:A,generatorCharacters:z,originalTimestampMap:T});if((0,a.V)(R))return(0,r.s)("Artifact retry setup failed",{error_kind:R.error.kind,room_id:j}),(0,a.Y)({type:"setup-failure",message:function(e){let{kind:t}=e;switch(t){case"retry-source-missing":return"Source message for retry not found.";case"retry-prompt-missing":return"Original user prompt for retry not found.";default:return t}}(R.error)});let{userMessage:F,userMessageItem:V}=R.data,E={};b.retryFromMessageId&&(E=function(e,t){let{roomId:a,rootUserMessageId:r,generatorCharacters:n}=t,i=Object.values(e().rooms[a]?.messages??{}).filter(e=>e.parentMessageId===r&&"artifact"===e.contentType),s=new Set(n.map(e=>e.id)),o=i.find(e=>"assistant"===e.type&&s.has(e.characterId)),l=i[0],d=o??l;if(!d||"assistant"!==d.type)return{};let c=d.artifactId;if(!c)return{};let u=e().artifacts[c];return u?{stack:"app"===u.type?u.stack:"html-css-js",archetype:"app"===u.type?u.archetype??"interactive-web-app":"interactive-web-app"}:{}}(e,{roomId:j,rootUserMessageId:F.id,generatorCharacters:z}));let P=b.archetype??E.archetype??"interactive-web-app",D=b.stack??E.stack??"html-css-js",q=z.map(e=>{let t=function(e){let{payload:t,generatorCharacter:a,userMessage:r}=e,{name:n,archetype:i,stack:s}=t,{getInitialFiles:o}=(0,I.f)(i),d=o(),u=[],p=[],f={};d.forEach(e=>{let t=(0,l.f)({filename:e.path,type:(0,S.f)(e.path)}),a=(0,l.p)({content:e.content});u.push(t),p.push(a),f[t.id]=a.id});let m=u.map(e=>e.id),g=d.find(e=>"index.html"===e.path),h=g?m[d.indexOf(g)]:void 0,y=(0,l.L)({name:n,fileIds:m,stack:s,archetype:i,entrypointFileId:h}),v=new Date(new Date(r.createdAt).getTime()+1),b=(0,c.h)({id:y.id,contentType:"artifact",context:"main-chat",characterId:a.id,artifactId:y.id,parentMessageId:r.id,createdAt:v,updatedAt:v,isGenerating:!1,items:[]});return{artifact:y,initialFiles:u,initialFileContents:p,fileContentsMap:f,artifactMessage:b,virtualFiles:d}}({payload:{name:b.name,type:b.type,archetype:P,stack:D},generatorCharacter:e,userMessage:F}),a={...e,id:(0,n.L)(n.I.Character),artifactId:t.artifact.id,includeDefaultSystemPrompt:!1},r=(0,n.L)(n.I.Message),i={type:"message",role:"user",content:[{type:"input_text",text:b.prompt}]},s=(0,d.f)({id:(0,n.L)(n.I.Item),messageId:r,data:i}),u=(0,c.O)({id:r,artifactId:t.artifact.id,characterId:o.d.id,context:"artifact-chat",contentType:"artifact-version",items:[{id:s.id,type:"message"}],attachments:b.attachments}),p=(0,l.Y)({artifactId:t.artifact.id,characterId:a.id,fileContents:t.fileContentsMap,generatingMessageId:u.id,generationStatus:"generating",versionNumber:1,characterName:e.name||e.presetName||e.model,prompt:b.prompt}),f=(0,c.h)({id:(0,n.L)(n.I.Message),context:"artifact-chat",contentType:"artifact-version",characterId:a.id,artifactId:t.artifact.id,parentMessageId:u.id,versionContextId:p.id,isGenerating:!0,items:[]});return{sourceCharacter:e,genesisData:t,scopedCharacter:a,userMessageForArtifactChat:u,userMessageForArtifactChatItem:s,artifactVersionMessage:f,versionForAI:p}});for(let e of(V&&g.useItemStore.getState().actions.upsertItem(V),q.forEach(e=>{g.useItemStore.getState().actions.upsertItem(e.userMessageForArtifactChatItem)}),u(e=>{let t=e.rooms[j];if(t){for(let a of(t.messages[F.id]||(t.messages[F.id]=F),q)){let{genesisData:r,scopedCharacter:n,userMessageForArtifactChat:i,artifactVersionMessage:s,versionForAI:o}=a,l=r.artifact;l.headVersionId=o.id,l.versionsCount=1,l.activeCharacterId=n.id,l.characterIds.includes(n.id)||l.characterIds.push(n.id),e.artifacts[l.id]=l,t.artifactIds.includes(l.id)||t.artifactIds.push(l.id),r.initialFiles.forEach(t=>{e.artifactFiles[t.id]=t}),r.initialFileContents.forEach(t=>{e.artifactFileContents[t.id]=t}),e.artifactVersions[o.id]=o,t.messages[r.artifactMessage.id]=r.artifactMessage,t.characters[n.id]=n,t.messages[i.id]=i,t.messages[s.id]=s;let d=e.artifactViewerState[l.id];d?d.activeVersionId=o.id:(d={view:"editor",activeFileId:l.entrypointFileId??l.fileIds[0]??null,activeVersionId:o.id,expandedFolders:{}},e.artifactViewerState[l.id]=d)}t.sortedMessageIds=Object.values(t.messages).sort(m.f).map(e=>e.id)}}),await Promise.all(q.flatMap(e=>[p.f.saveArtifacts(A,j,[e.genesisData.artifact]),p.f.saveArtifactFiles(A,e.genesisData.initialFiles),p.f.saveArtifactFileContents(A,e.genesisData.initialFileContents),p.f.saveArtifactVersions(A,[e.versionForAI]),p.f.saveMessages(A,j,[e.genesisData.artifactMessage,e.userMessageForArtifactChat,e.artifactVersionMessage]),p.f.saveCharacters(A,j,[e.scopedCharacter])])),q))(0,s.q)({type:e.genesisData.artifact.type});_?.();let $=q.map(async r=>{let{scopedCharacter:n,artifactVersionMessage:s,versionForAI:o,genesisData:l}=r,{artifact:d,artifactMessage:c}=r.genesisData,f=x({generationPrompt:b.prompt.trim(),archetype:P,initialVirtualFiles:l.virtualFiles,attachments:b.attachments});u(e=>{e.generationAttemptStartMs[o.id]=Date.now()});let m=await (0,y.f)({character:n,inputItems:f,storeState:e(),roomId:j,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(m){let r=await (0,v.f)({set:u,get:e,roomId:j,namespace:A,responseBody:m,artifactId:d.id,assistantMessageId:s.id,versionId:o.id,mainChatMessageId:c.id});if((0,a.V)(r)){let e=(0,a.Y)({type:"generation-failure",message:r.error.message??(0,h.q)((0,i.b)("Unknown streaming error"))});return(0,t.c)({title:(0,h.q)((0,i.b)("Generation Error for {name}",{name:n.name})),description:e.error.message,variant:"destructive"}),e}return(0,a.N)(o)}u(e=>{let t=e.rooms[j]?.messages[s.id];t?.type==="assistant"&&(t.isGenerating=!1);let a=e.rooms[j]?.messages[c.id];a?.type==="assistant"&&(a.isGenerating=!1);let r=e.artifactVersions[o.id];if(r){r.generationStatus="failed",r.error=(0,h.q)((0,i.b)("AI model did not return a response."));let t=e.generationAttemptStartMs[o.id];"number"==typeof t&&t>0&&(r.generationDurationMs=Math.max(0,Date.now()-t))}delete e.generationAttemptStartMs[o.id]});let g=e().artifactVersions[o.id];g&&await p.f.saveArtifactVersions(A,[g]);let I=(0,a.Y)({type:"generation-failure",message:(0,h.q)((0,i.b)("AI model did not return a response."))});return(0,t.c)({title:(0,h.q)((0,i.b)("Generation Error for {name}",{name:n.name})),description:I.error.message,variant:"destructive"}),I}),N=await Promise.all($),L=N.find(a.C);return L||(N[0]??(0,a.Y)({type:"generation-failure",message:(0,i.b)("Artifact generation failed for all models.")}))}});e.s(["f",0,M],628879);var k=e.i(497214),O=e.i(32582),j=e.i(693946),z=e.i(709687);let T=(0,u.f)({name:"loadFullArtifact",handler:async({set:e,get:t,payload:{artifactId:a}})=>{var r,n,i;let s=t().storageInstanceId,o=(0,j.M)(t()),l=o?t().rooms[o]:null;if(!s||!o||!l)return;let d=(await p.f.getArtifacts(s,[a]))[a];if(!d)return;let c=await R(l,d,s),u=await F(s,d,c),f=Object.keys(u.versionsMap).length,m=void 0===d.versionsCount||d.versionsCount{let{artifact:t,versionsMap:a,filesMap:r,contentsMap:s}=i,o=e.artifacts[n],l=o?.headVersionId?e.artifactVersions[o.headVersionId]:null;for(let[i,s]of(l?.generationStatus==="generating"&&o?.type==="app"&&"app"===t.type&&o?e.artifacts[n]={...t,headVersionId:o.headVersionId,fileIds:o.fileIds,entrypointFileId:o.entrypointFileId??t.entrypointFileId}:e.artifacts[n]=t,Object.assign(e.artifactFiles,r),Object.entries(a)))e.artifactVersions[i]?.generationStatus!=="generating"&&(e.artifactVersions[i]=s);for(let[t,a]of Object.entries(s))e.artifactFileContents[t]?.generationStatus!=="generating"&&(e.artifactFileContents[t]=a);let d=e.artifacts[n];if(!d?.headVersionId||d.activeCharacterId)return;let c=e.artifactVersions[d.headVersionId];c?.characterId&&(d.activeCharacterId=c.characterId)}),function(e){let t=z.f.getState(),a={};for(let[r,n]of Object.entries(e))void 0===t.artifactContent[r]&&(a[r]=n.content??"");0!==Object.keys(a).length&&t.actions.loadArtifactContent(a)}(u.contentsMap),await P({set:e,get:t,namespace:s,roomId:o,artifactId:a,versionsMap:u.versionsMap,contentsMap:u.contentsMap,versionsToPersistBackfill:h}),m&&await p.f.saveArtifacts(s,o,[d]),await E({set:e,get:t,namespace:s,roomId:o,artifactId:a,loadedVersionIds:new Set(Object.keys(u.versionsMap))});let y=await p.f.getRoomManifest(s,o);if(!y.itemIds||0===y.itemIds.length)return;let v=await p.f.getItems(s,y.itemIds),I=g.useItemStore.getState().items;g.useItemStore.getState().actions.loadItems({...I,...v})}});async function R(e,t,a){let r=new Set;for(let a of Object.values(e.messages??{})){var n;n=t.id,"assistant"===a.type&&a.artifactId===n&&"string"==typeof a.versionContextId&&r.add(a.versionContextId)}if(t.headVersionId)for(let e of(await (0,O.fullVersionHistoryTraversal)(a,t.headVersionId)))r.add(e);return Array.from(r)}async function F(e,t,a){let r=await p.f.getArtifactVersions(e,a),n=Object.values(r).filter(e=>!!e),i=new Set(n.flatMap(e=>Object.values(e.fileContents??{}))),s=new Set(n.flatMap(e=>Object.keys(e.fileContents??{}))),o=(0,k.H)([...t.fileIds,...Array.from(s)]),[l,d]=await Promise.all([p.f.getArtifactFiles(e,o),p.f.getArtifactFileContents(e,Array.from(i))]);return{versionsMap:r,filesMap:l,contentsMap:d}}async function V(e,t,a){let r=Object.values(e).filter(e=>!!e);if(0===r.length)return[];let n=[...r].sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),i=r.filter(e=>void 0===e.prompt&&"string"==typeof e.generatingMessageId),s=new Map((await Promise.all(i.map(async e=>({versionId:e.id,prompt:await p.f.getContent(a,e.generatingMessageId)})))).map(({versionId:e,prompt:t})=>[e,t??""])),o=[];for(let e of r){let a=!1;if(void 0===e.versionNumber&&(e.versionNumber=n.indexOf(e)+1,a=!0),void 0===e.characterName&&e.characterId){let r=t.characters?.[e.characterId],n=r?.name||r?.presetName||r?.model;n&&(e.characterName=n,a=!0)}if(void 0===e.prompt){let t=s.get(e.id);void 0!==t&&(e.prompt=t,a=!0)}a&&o.push(e)}return o}async function E({set:e,get:t,namespace:a,roomId:r,artifactId:n,loadedVersionIds:i}){let s=t().artifactVersions,o=new Map;for(let e of i){let t=s[e];t&&"string"==typeof t.generatingMessageId&&o.set(t.generatingMessageId,t.id)}if(0===o.size)return;let l=t().rooms[r],d=new Map;for(let e of Object.values(l?.messages??{}))if(e&&"assistant"===e.type&&e.artifactId===n&&!e.versionContextId&&"string"==typeof e.parentMessageId){let t=o.get(e.parentMessageId);t&&d.set(e.id,t)}if(0===d.size)return;e(e=>{let t=e.rooms[r];if(t)for(let[e,a]of d.entries()){let r=t.messages[e];r&&"assistant"===r.type&&(r.versionContextId=a,r.contentType="artifact-version")}});let c=[];for(let e of d.keys()){let a=t().rooms[r]?.messages[e];a&&c.push(a)}0!==c.length&&await p.f.saveMessages(a,r,c)}async function P({set:e,get:t,namespace:a,roomId:r,artifactId:n,versionsMap:i,contentsMap:s,versionsToPersistBackfill:o}){let l=[],d=[],c=[],u=t().rooms[r];for(let e of Object.values(u?.messages??{}))e&&"assistant"===e.type&&e.artifactId===n&&e.isGenerating&&l.push(e.id);for(let e of Object.values(i))e&&"generating"===e.generationStatus&&d.push(e.id);for(let e of Object.values(s))e&&"generating"===e.generationStatus&&c.push(e.id);if(!(l.length>0||d.length>0||c.length>0)){o.length>0&&await p.f.saveArtifactVersions(a,o);return}e(e=>{let t=e.rooms[r];for(let e of l){let a=t?.messages[e];a&&"assistant"===a.type&&(a.isGenerating=!1,a.updatedAt=new Date)}let a=Date.now();for(let t of d){let r=e.artifactVersions[t];if(r){let e=r.createdAt?new Date(r.createdAt).getTime():a;r.generationStatus="failed",r.generationDurationMs=Math.max(0,a-e)}}for(let t of c){let a=e.artifactFileContents[t];a&&(a.generationStatus="failed")}});let f=[];for(let e of l){let a=t().rooms[r]?.messages[e];a&&f.push(a)}let m=[];for(let e of d){let a=t().artifactVersions[e];a&&m.push(a)}let g=[];for(let e of c){let a=t().artifactFileContents[e];a&&g.push(a)}let h=(0,k.H)([...o,...m]),y=[];f.length>0&&y.push(p.f.saveMessages(a,r,f)),h.length>0&&y.push(p.f.saveArtifactVersions(a,h)),g.length>0&&y.push(p.f.saveArtifactFileContents(a,g)),0!==y.length&&await Promise.all(y)}e.s(["f",0,T],524391);let D=(0,u.f)({name:"removeCharacterFromArtifact",handler:async({set:e,get:t,payload:a})=>{let{artifactId:r,characterId:n}=a,i=t().storageInstanceId,s=(0,j.M)(t()),o=t().artifacts[r];if(!i||!s||!o)return;e(e=>{let t=e.artifacts[r];t&&(t.characterIds=t.characterIds?.filter(e=>e!==n)??[],t.activeCharacterId===n&&(t.activeCharacterId=t.characterIds[0]??null))});let l=t().artifacts[r];l&&await p.f.saveArtifacts(i,s,[l])}});e.s(["f",0,D],514703);var q=e.i(952384);let $=(0,u.f)({name:"renameArtifactFile",handler:async({get:e,set:a,payload:r})=>{let{artifactId:n,fileId:s}=r,o=(0,q.y)(r.newName),d=(0,j.M)(e()),c=e().storageInstanceId;if(!d||!c)return;if(!(0,q.A)(o))return void(0,t.c)({title:(0,h.q)((0,i.b)("Rename Failed")),description:(0,h.q)((0,i.b)('Invalid path: "{path}". Paths must be project-relative and cannot use ".." or start with "/".',{path:r.newName})),variant:"destructive"});let u=e(),f=u.artifacts[n],m=f?.headVersionId??null,g=m?u.artifactVersions[m]:void 0,y=u.artifactFiles[s];if(!f||!g||!y)return void(0,t.c)({title:(0,h.q)((0,i.b)("Rename Failed")),description:(0,h.q)((0,i.b)("Could not find the artifact, current version, or file to rename.")),variant:"destructive"});if(!g.fileContents[s])return void(0,t.c)({title:(0,h.q)((0,i.b)("Rename Failed")),description:(0,h.q)((0,i.b)("This file is not present in the current version. Switch to a version where it exists or generate a new version first.")),variant:"destructive"});if(Object.values(u.artifactFiles).some(e=>e.filename===o))return void(0,t.c)({title:(0,h.q)((0,i.b)("Rename Failed")),description:(0,h.q)((0,i.b)('A file named "{name}" already exists.',{name:o})),variant:"destructive"});let v=(0,l.f)({filename:o,type:(0,S.f)(o)});a(e=>{let t=e.artifacts[n],a=m?e.artifactVersions[m]:void 0;if(!t||!a)return;e.artifactFiles[v.id]=v,t.fileIds.includes(v.id)||t.fileIds.push(v.id);let r=a.fileContents[s];r&&(a.fileContents[v.id]=r,delete a.fileContents[s]);let i=e.artifactViewerState[n];i?.activeFileId===s&&(i.activeFileId=v.id),t.updatedAt=new Date});let I=e().artifactFiles[v.id],b=m?e().artifactVersions[m]:void 0,w=e().artifacts[n];try{let e=[];I&&e.push(p.f.saveArtifactFiles(c,[I])),b&&e.push(p.f.saveArtifactVersions(c,[b])),w&&e.push(p.f.saveArtifacts(c,d,[w])),await Promise.all(e),(0,t.c)({title:(0,h.q)((0,i.b)("File Renamed")),description:(0,h.q)((0,i.b)('Renamed to "{name}" for the current version.',{name:o}))})}catch{(0,t.c)({title:(0,h.q)((0,i.b)("Rename Failed")),description:(0,h.q)((0,i.b)("An error occurred while saving changes.")),variant:"destructive"})}}});e.s(["f",0,$],738237);var N=e.i(549692);function L(e,t){let a=t[e];return a&&"message"===a.data.type?"string"==typeof a.data.content?a.data.content:Array.isArray(a.data.content)?a.data.content.map(e=>"text"in e?e.text:"").filter(Boolean).join(""):"":""}function U(e){let{get:t,roomId:a,artifactId:r,generationPrompt:n,baseVersionId:i,attachments:s}=e,o=t(),l=o.artifacts[r];if(!l)return[];let d=function(e,t,a){let r=e.artifacts[t];if(!r)return null;let n=e.artifactVersions,i=e.artifactViewerState[t];return function e(t,a){if(!t)return null;let r=a[t];return r&&"app"===r.type?void 0!==r&&("idle"===r.generationStatus||"success"===r.generationStatus)?r:"generating"===r.generationStatus&&r.parentVersionId?e(r.parentVersionId,a):null:null}(a??i?.activeVersionId??r.headVersionId??null,n)}(o,r,i);if(!d)return[];let c=o.rooms[a],u=g.useItemStore.getState().items,p=function({baseVersion:e,versions:t}){let a=(function(e,t){let a=[],r=new Set,n=e;for(;n&&!r.has(n.id);){a.unshift(n),r.add(n.id);let e=n.parentVersionId;if(!e)break;let i=t[e];n=i&&"app"===i.type?i:void 0}return a})(e,t).map((e,t)=>{let a=e.prompt?.trim();if(a)return`**v${t+1} request:** ${a}`}).filter(e=>!!e);if(0!==a.length)return["---","### **Version Request History**","Each entry below is a user prompt that produced one version of the current files, oldest first. The newest entry is the prompt that produced the current files; the new user request follows.",...a,"---"].join("\n\n")}({baseVersion:d,versions:o.artifactVersions}),f=[function({room:e,itemsMap:t,artifactId:a,versionId:r}){if(!e)return;let n=Object.values(e.messages).filter(e=>"artifact-chat"===e.context&&"text"===e.contentType&&e.versionContextId===r&&("assistant"!==e.type||e.artifactId===a)).sort(m.f);if(0===n.length)return;let i=n.map(e=>{let a=e.items.map(e=>L(e.id,t)).filter(Boolean).join("\n");if(!a.trim())return;let r="user"===e.type?"User":"Assistant";return`**${r}:** ${a}`}).filter(e=>!!e);if(0!==i.length)return["---","### **Brainstorming Conversation Context**","The following is a conversation that led to the current request. Use it as additional context to inform your changes.",...i,"---"].join("\n\n")}({room:c,itemsMap:u,artifactId:r,versionId:d.id}),n].filter(e=>!!e).join("\n\n"),h="app"===l.type?l.archetype??"interactive-web-app":"interactive-web-app",{getSystemPrompt:y}=(0,I.f)(h),{baseInstructions:v,finalInstructions:w}=y(!0),_=Object.keys(d.fileContents).map(e=>o.artifactFiles[e]?.filename).filter(e=>!!e),x=(0,q.H)(_),S=[p,(0,b.p)({parentVersion:d,allFiles:o.artifactFiles,allContents:o.artifactFileContents,directoryTree:x})].filter(e=>!!e).join("\n\n")||void 0,C=(0,b.X)({baseInstructions:v,finalInstructions:w,generationPrompt:f,mainContext:S});return s?.length?[...C,...s.map(A)]:C}e.s(["f",0,L],671877),e.s(["f",0,U],930339);let G=(0,u.f)({name:"retryArtifactVersion",handler:async({set:e,get:r,payload:n})=>{let s=function(e,t){let{roomId:r,artifactId:n,versionId:i}=t,s=e(),o=s.storageInstanceId,l=s.rooms[r],d=s.artifacts[n],c=s.artifactVersions[i];if(!o||!l||!d||!c)return(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Required context for retry is missing.")});if("app"!==d.type)return(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Only App artifacts can be retried.")});if("app"!==c.type)return(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Only App artifact versions can be retried.")});if("generating"===c.generationStatus)return(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Cannot retry while this version is generating.")});let u=l.characters[c.characterId];if(!u)return(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Original model for this version not found.")});let p=c.prompt;return p?(0,a.N)({namespace:o,roomId:r,artifactId:n,versionId:i,artifact:d,versionToRetry:c,generatorCharacter:u,prompt:p}):(0,N.O)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Original prompt for this version not found.")})}(r,n);if((0,a.V)(s))return(0,t.c)({title:(0,h.q)((0,i.b)("Retry Failed")),description:s.error.message,variant:"destructive"}),s;let o=s.data,{versionId:l,namespace:d,generatorCharacter:c}=o;e(e=>{let t=e.artifactVersions[l];t&&(t.generationStatus="generating",t.error=void 0,t.generationDurationMs=void 0),e.generationAttemptStartMs[l]=Date.now()});let u=function(e,t){let{artifact:a,versionToRetry:r,prompt:n,artifactId:i}=t;if(r.parentVersionId)return U({get:e,roomId:t.roomId,artifactId:i,generationPrompt:n,baseVersionId:r.parentVersionId});let s=a.archetype??"interactive-web-app",{getInitialFiles:o}=(0,I.f)(s);return x({generationPrompt:n,archetype:s,initialVirtualFiles:o()})}(r,o);if(0===u.length)return(0,N.O)({location:"retryArtifactVersionAction:buildMessages",rawError:Error("Failed to build generation context for retry.")});let f=await (0,y.f)({character:c,inputItems:u,storeState:r(),roomId:o.roomId,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(!f)return e(e=>{let t=e.artifactVersions[l];t&&(t.generationStatus="failed")}),(0,N.O)({location:"retryArtifactVersionAction:fetchStream",rawError:Error("AI model did not return a response.")});let m=await (0,v.f)({set:e,get:r,...o,responseBody:f,assistantMessageId:o.versionToRetry.generatingMessageId});if((0,a.V)(m))return(0,t.c)({title:(0,h.q)((0,i.b)("Retry Failed")),description:m.error.message??(0,h.q)((0,i.b)("An unknown streaming error occurred.")),variant:"destructive"}),(0,a.Y)((0,N.n)({location:"retryArtifactVersionAction:finalize",rawError:m.error}));let g=r().artifactVersions[l];return g&&"app"===g.type?(await p.f.saveArtifactVersions(d,[g]),(0,a.N)(g)):(0,N.O)({location:"retryArtifactVersionAction:finish",rawError:Error("Could not find the final version in store.")})}});function B({roomId:e,messageId:t,getStoreState:a}){let r=a().rooms[e]?.messages[t];return r?.type==="assistant"?r:void 0}function Y(e){let t=e.data;if("message"===t.type&&"assistant"===t.role&&"status"in t&&"in_progress"===t.status)return{id:e.id,messageId:e.messageId,data:{...t,status:"incomplete"}}}e.s(["f",0,G],745732),e.s(["f",0,B],969793),e.s(["Y",0,Y,"K",0,function({roomId:e,messageId:t,itemStore:a,getStoreState:r}){let n=B({roomId:e,messageId:t,getStoreState:r});if(n)for(let e of n.items){let t=a.items[e.id],r=void 0===t?void 0:Y(t);void 0!==r&&a.actions.upsertItem(r)}}],904849);let W={"upsert-item":(e,t)=>e.itemStore.actions.upsertItem(t.item),"append-item-ref":(e,t)=>e.roomActions.appendItemIdToMessage({payload:{roomId:e.roomId,messageId:e.messageId,itemId:t.itemId,outputIndex:t.outputIndex,type:t.itemType}}),"append-text":(e,t)=>e.itemStore.actions.appendMessageText(t.itemId,t.delta,t.contentIndex),"append-reasoning-summary":(e,t)=>e.itemStore.actions.appendReasoningSummaryText(t.itemId,t.delta,0),"append-reasoning-content":(e,t)=>e.itemStore.actions.appendReasoningContentText(t.itemId,t.delta,0),"append-function-arguments":(e,t)=>e.itemStore.actions.appendFunctionArguments(t.itemId,t.delta),"append-annotation":(e,t)=>e.itemStore.actions.appendAnnotation(t.itemId,t.contentIndex,t.annotation),"update-metadata":(e,t)=>e.roomActions.updateMessage({payload:{roomId:e.roomId,messageId:e.messageId,partialMessage:{metadata:t.metadata}}}),finish:async(e,t)=>{await e.roomActions.updateMessage({payload:{roomId:e.roomId,messageId:e.messageId,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:t.metadata}}});let a=J(e);null!==e.namespace&&void 0!==a&&await p.f.saveMessage(e.namespace,e.roomId,a)}};function J(e){let t=e.getStoreState().rooms[e.roomId]?.messages[e.messageId];return t?.type==="assistant"?t:void 0}async function H(e,t){for(let a of t)await (0,W[a.type])(e,a)}e.s(["m",0,H,"p",0,J],696622)},999342,212595,957531,558668,849758,892341,970303,931581,521064,e=>{"use strict";e.i(818009);var t=e.i(982432);e.i(707060);var a=e.i(387086),r=e.i(286709),n=e.i(447680),i=e.i(647204),s=e.i(735961),o=e.i(969793),l=e.i(904849),d=e.i(696622),c=e.i(792966),u=e.i(311181),p=e.i(713312),f=e.i(34246),m=e.i(549692),g=e.i(342837);e.i(423491),e.i(711359);var h=e.i(882844),y=e.i(635157),v=e.i(577980);let I=y.z.nativeEnum(v.O).openapi("ApiErrorType",{description:"Canonical OpenRouter error type, stable across all API formats",example:v.O.RateLimitExceeded});var b=e.i(443567),w=e.i(767021),_=e.i(442617),A=e.i(127120),x=e.i(919157);let S=y.z.discriminatedUnion("type",[y.z.object({type:y.z.literal("evaluated"),outcome:y.z.enum(["flagged","not_flagged"]),explanation:y.z.string().optional()}),y.z.object({type:y.z.literal("skipped")}),y.z.object({type:y.z.literal("unavailable"),reason:y.z.string()})]),C=y.z.object({type:y.z.literal(x.p),status:y.z.object({type:y.z.literal("available"),tool_uses:y.z.record(y.z.string(),S)})}).openapi("ArmorSafeguardResult",{description:"The outcome of OpenRouter Armor for each client tool call of the response, keyed by tool-call id, in the same shape Anthropic reports its server-side safeguards.",example:{type:"dangerous_tool_use",status:{type:"available",tool_uses:{call_abc:{type:"evaluated",outcome:"flagged",explanation:"[Data Exfiltration]"},call_def:{type:"evaluated",outcome:"not_flagged"}}}}}),M=y.z.array(C).optional().openapi({description:"OpenRouter Armor's verdict for each client tool call of this response, present whenever Armor evaluated the response (even when nothing was flagged). Independent of the `openrouter_metadata` opt-in."});var k=e.i(868709);let O=y.z.enum({Direct:"direct",Auto:"auto",Free:"free",Latest:"latest",Alias:"alias",Fallback:"fallback",Pareto:"pareto",BodyBuilder:"bodybuilder",Fusion:"fusion"}).openapi("RoutingStrategy",{example:"direct"}),j=y.z.object({provider:y.z.string(),model:y.z.string(),selected:y.z.boolean()}).openapi("EndpointInfo",{example:{provider:"OpenAI",model:"openai/gpt-4o",selected:!0}}),z=y.z.object({total:y.z.number().int(),available:y.z.array(j)}).openapi("EndpointsMetadata",{example:{total:3,available:[{provider:"OpenAI",model:"openai/gpt-4o",selected:!0}]}}),T=y.z.object({provider:y.z.string(),model:y.z.string(),status:y.z.number().int()}).openapi("RouterAttempt",{example:{provider:"OpenAI",model:"openai/gpt-4o",status:200}}),R=y.z.enum({Guardrail:"guardrail",Plugin:"plugin",ServerTools:"server_tools",ResponseHealing:"response_healing",ContextCompression:"context_compression"}).openapi("PipelineStageType",{description:"Categorical kind of a pipeline stage. Multiple plugins can share a type (e.g. all guardrail-level plugins emit `guardrail`); the `name` field disambiguates which plugin emitted it.",example:"guardrail"}),F=y.z.object({type:R,name:y.z.string(),summary:y.z.string().optional(),cost_usd:(0,h.$)().nullable().optional(),data:y.z.record(y.z.string(),y.z.unknown()).optional(),guardrail_scope:y.z.string().optional(),guardrail_id:y.z.string().optional()}).openapi("PipelineStage",{example:{type:"guardrail",name:"content-filter",summary:"PII redacted via Presidio (EMAIL, PHONE)",data:{flagged:!0,action:"redacted",engines:["presidio"],matched_entity_types:["EMAIL","PHONE"]}}}),V=y.z.object({quality_floor:(0,h.$)().optional(),throughput_floor:(0,h.$)().optional(),version_group:y.z.string().optional()}).passthrough().openapi("RouterParams",{example:{version_group:"anthropic/claude-sonnet-4"}}),E=y.z.object({preset:y.z.string(),target_preset:y.z.string().optional(),target_models:y.z.array(y.z.string()).optional(),classifier_id:y.z.string(),dimension:y.z.string(),value:y.z.string().optional(),skip_reason:y.z.string().optional(),did_fall_back:y.z.boolean()}),P=y.z.object({requested:y.z.string(),strategy:O,region:y.z.string().nullable(),summary:y.z.string(),attempt:y.z.number().int(),is_byok:y.z.boolean(),endpoints:z,generation_time:(0,h.D)().optional().openapi({description:"Milliseconds measured for the generation, from dispatching the upstream request until its response body ended. Divide the completion token count by this for throughput. Absent when no upstream request was dispatched.",example:2016}),params:V.optional(),attempts:y.z.array(T).optional(),pipeline:y.z.array(F).optional(),preset_routing:E.optional().openapi({"x-hidden":!0})}).openapi("OpenRouterMetadata",{example:{requested:"openai/gpt-4o",strategy:"direct",region:"iad",summary:"available=1, selected=OpenAI",attempt:1,is_byok:!1,generation_time:2016,endpoints:{total:1,available:[{provider:"OpenAI",model:"openai/gpt-4o",selected:!0}]}}});var D=e.i(141841),q=e.i(96225);let $=y.z.string().max(64,"Metadata keys must be ≤ 64 characters.").regex(/^[^[\]]*$/,"Metadata keys cannot contain '[' or ']'."),N=y.z.string().max(512,"Metadata values must be ≤ 512 characters."),L=y.z.record($,N).superRefine((e,t)=>{Object.keys(e).length>16&&t.addIssue({code:y.z.ZodIssueCode.custom,message:"Metadata can have at most 16 key-value pairs."})}).openapi("RequestMetadata",{description:"Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must be ≤512 characters. Maximum 16 pairs allowed.",example:{user_id:"123",session_id:"abc-def-ghi"}});var U=e.i(431956);y.z.enum(["file_search_call.results","message.input_image.image_url","computer_call_output.output.image_url","reasoning.encrypted_content","output.encrypted_content","code_interpreter_call.outputs","web_search_call.results","web_search_call.action.sources"]).openapi("ResponseIncludesEnum",{example:"file_search_call.results"});let G=y.z.object({id:y.z.string(),variables:y.z.record(y.z.string(),y.z.union([y.z.string(),U.c,U.M,U._])).nullish()}).openapi("StoredPromptTemplate",{example:{id:"prompt-abc123",variables:{name:"John"}}});var B=e.i(593615);let Y=y.z.object({type:y.z.literal("text")}).openapi("FormatTextConfig",{description:"Plain text response format",example:{type:"text"}}),W=y.z.object({type:y.z.literal("json_object")}).openapi("FormatJsonObjectConfig",{description:"JSON object response format",example:{type:"json_object"}}),J=y.z.object({type:y.z.literal("json_schema"),name:y.z.string(),description:y.z.string().optional(),strict:y.z.boolean().nullish(),schema:y.z.record(y.z.string(),y.z.unknown())}).openapi("FormatJsonSchemaConfig",{description:"JSON schema constrained response format",example:{type:"json_schema",name:"user_info",description:"User information schema",schema:{type:"object",properties:{name:{type:"string"},age:{type:"number"}},required:["name"]}}}),H=y.z.union([Y,W,J]).openapi("Formats",{description:"Text response format configuration",example:{type:"text"}}),Z=y.z.object({format:H.optional(),verbosity:y.z.enum(["high","low","medium"]).nullish().openapi({enum:["high","low","medium",null]})}).openapi("TextConfig",{description:"Text output configuration including format and verbosity",example:{format:{type:"text"},verbosity:"medium"}}),Q=Z.extend({verbosity:y.z.enum(["low","medium","high","xhigh","max"]).nullish().openapi({enum:["low","medium","high","xhigh","max",null]})}).openapi("TextExtendedConfig",{example:{format:{type:"text"}}});var X=e.i(837888),K=e.i(862468);let ee=e.i(381932).f.extend({}).openapi("DeferredToolsDetails",{description:"Totals across every upstream model call of a deferred-tools run. The native usage fields report only the final call; cost covers every call.",example:{turns:2,prompt_tokens:2400,completion_tokens:180,total_tokens:2580}}),et=D.e.extend({}).openapi("ServerToolUseDetails",{description:"Usage for server-side tool execution (e.g., web search)",example:{web_search_requests:2,tool_calls_requested:2,tool_calls_executed:2}});var ea=e.i(888427);let er=_.m.extend(D.b.partial({cost:!0,cost_details:!0}).shape).extend(y.z.object({cost_details:y.z.object({upstream_inference_cost:(0,h.$)().nullish(),upstream_inference_input_cost:(0,h.$)(),upstream_inference_output_cost:(0,h.$)(),server_tool_cost:(0,h.$)().nullish().openapi({description:"Metered server-tool execution cost (for example, shell sandbox time) billed for this request, in USD. Matches the billed checkpoint and settlement amounts exactly. 0 when a metered server tool ran but settled at zero dollars; absent when no metered server tool ran."})}).optional(),server_tool_use_details:et.nullish(),deferred_tools_details:ee.optional()}).shape).openapi("Usage",{description:"Token usage information for the response",example:{input_tokens:10,output_tokens:25,total_tokens:35,input_tokens_details:{cached_tokens:0},output_tokens_details:{reasoning_tokens:0},cost:.0012,cost_details:{upstream_inference_cost:null,upstream_inference_input_cost:8e-4,upstream_inference_output_cost:4e-4}}}),en=y.z.object({reason:y.z.enum(b.z).optional()}).openapi("IncompleteDetails",{example:{reason:"max_output_tokens"}}),ei=y.z.object({id:y.z.string(),object:y.z.literal("response"),created_at:(0,h.D)(),model:y.z.string(),status:_.V,completed_at:(0,h.D)().nullable(),output:y.z.array(_.U),user:y.z.string().nullish(),output_text:y.z.string().optional(),prompt_cache_key:y.z.string().nullish(),prompt_cache_options:w.m.nullish(),safety_identifier:y.z.string().nullish(),error:_.B.nullable(),incomplete_details:en.nullable(),usage:_.m.optional(),max_tool_calls:(0,h.D)().nullish(),top_logprobs:(0,h.D)().optional(),max_output_tokens:(0,h.D)().nullish(),temperature:(0,h.$)().nullable(),top_p:(0,h.$)().nullable(),presence_penalty:(0,h.$)().nullable(),frequency_penalty:(0,h.$)().nullable(),instructions:ea.R.nullable(),metadata:L.nullable(),tools:y.z.array(X.x),tool_choice:_.w,parallel_tool_calls:y.z.boolean(),prompt:G.nullish(),background:y.z.boolean().nullish(),previous_response_id:y.z.string().nullish(),reasoning:B.h.nullish(),service_tier:q.p.nullish(),store:y.z.boolean().optional(),truncation:q.C.nullish(),text:Z.optional()}).openapi("BaseResponsesResult",{example:{id:"resp-abc123",object:"response",created_at:0x65920080,model:"gpt-4",status:"completed",completed_at:0x6592008a,output:[],tools:[],tool_choice:"auto",parallel_tool_calls:!0,error:null,incomplete_details:null,metadata:null,instructions:null,temperature:null,top_p:null,presence_penalty:null,frequency_penalty:null,max_output_tokens:null}}),es=y.z.object({alignment:A.a.extend({rejected:A.w.optional()}).optional()}).openapi("OpenResponsesErrorMetadata",{description:"OpenRouter-specific details of a failed response, such as the alignment object of an alignment error.",example:{alignment:{calls:[{call:1,outcome:"unavailable",reason:"evaluator_error"}]}}}),eo=y.z.object({..._.B.shape,metadata:es.optional()}).openapi("OpenResponsesErrorField",{description:"Error of a failed response; `metadata` carries OpenRouter-specific details.",example:{code:"server_error",message:"Alignment plugin: the reply could not be evaluated: evaluator_error",metadata:{alignment:{calls:[{call:1,outcome:"unavailable",reason:"evaluator_error"}]}}}}),el=ei.extend({output:y.z.array(K.f),usage:er.nullish(),service_tier:y.z.string().nullish(),access_programs:k.f.nullable().default(null).openapi({description:"Access program the upstream provider reported for this response (OpenAI `access_programs`). `null` when the provider reported none, including OpenAI's implicit Standard program.",example:{cyber:"standard"}}),text:Q.optional(),error:eo.nullable(),error_type:I.optional(),openrouter_metadata:P.optional(),safeguard_results:M,alignment:A.a.optional()}).openapi("OpenResponsesResult",{description:"Complete non-streaming response from the Responses API",example:{id:"resp-abc123",object:"response",created_at:0x65920080,model:"gpt-4",status:"completed",output:[{type:"message",id:"msg-abc123",status:"completed",role:"assistant",content:[{type:"output_text",text:"Hello! How can I help you today?",annotations:[]}]}],usage:{input_tokens:10,output_tokens:25,total_tokens:35,input_tokens_details:{cached_tokens:0},output_tokens_details:{reasoning_tokens:0}},tools:[],tool_choice:"auto",parallel_tool_calls:!0,error:null,incomplete_details:null,temperature:null,top_p:null,presence_penalty:null,frequency_penalty:null,max_output_tokens:null,metadata:null,instructions:null,completed_at:0x6592008a}});var ed=e.i(357107);async function*ec(e){let t=await (0,i.$)(()=>e.json());if((0,i.V)(t))return void(yield(0,m.O)({status:g.g.S502_Bad_Gateway,rawError:t.error,location:"processResponseJson:read"}));let r=(0,h.C)(el,t.data);if((0,i.V)(r))return void(yield(0,m.O)({status:g.g.S502_Bad_Gateway,rawError:r.error,location:"processResponseJson:parse"}));let n=r.data;if("failed"===n.status){let e=n.error?.code??"server_error",t=n.error?.message??(0,ed.q)((0,a.b)("Request failed"));yield(0,m.O)({status:(0,p.$)({errorType:n.error_type,errorCode:e}),rawError:t,location:"processResponseJson:responseFailed"});return}let s=0;for(let[e,t]of(yield(0,i.N)({type:"response.created",response:n,sequence_number:s++}),n.output.entries()))yield(0,i.N)({type:"response.output_item.added",output_index:e,item:t,sequence_number:s++}),yield(0,i.N)({type:"response.output_item.done",output_index:e,item:t,sequence_number:s++});yield(0,i.N)({type:"incomplete"===n.status?"response.incomplete":"response.completed",response:n,sequence_number:s})}async function*eu(e,t){for await(let a of ec(e)){if((0,i.V)(a))return void(yield{type:"turn.failed",turnId:t.turnId,error:a.error});t.observe?.(a.data,a.data),yield*(0,p.u)(a.data,t)}}async function*ep(e,t){let a=!1;for await(let r of e)a||"turn.started"===r.type||(yield{type:"turn.started",turnId:t.turnId}),a=!0,yield r}var ef=e.i(29570),em=e.i(210138),eg=e.i(625025),eh=e.i(861907);let ey="done",ev={created:void 0,completed:void 0,items:new Map,annotations:new Map},eI=y.z.custom(eh.d),eb=y.z.custom(e=>(0,eh.d)(e)&&"string"==typeof e.type),ew=y.z.object({response:y.z.object({id:y.z.string().optional().catch(void 0),model:y.z.string().optional().catch(void 0),openrouter_metadata:eI.optional().catch(void 0)}).optional().catch(void 0)}),e_=y.z.object({item_id:y.z.string(),content_index:y.z.number(),annotation:_.r}),eA=y.z.object({output_index:y.z.number(),item:eb}),ex=y.z.object({type:y.z.string(),id:y.z.string().optional().catch(void 0),call_id:y.z.string().optional().catch(void 0)});function eS(e){let t=(0,h.C)(ew,e);return(0,i.V)(t)?void 0:t.data.response}function eC(e,t){let a=(0,h.C)(eA,t.raw);if((0,i.V)(a))return e;let r=function(e){let t=(0,h.C)(ex,e);if(!(0,i.V)(t))return t.data.id?t.data.id:"function_call"===t.data.type?t.data.call_id:void 0}(a.data.item);if(void 0===r)return e;let n=new Map(e.items);return n.set(r,{data:a.data.item,outputIndex:a.data.output_index,phase:t.phase}),{...e,items:n}}let eM=/^(?.+):(?\d+)$/;function ek(e,t){var a;let r=e.state.message?.parts.find(e=>e.id===t.id);return void 0!==r&&(a=t.kind,r.kind===a)?r:void 0}function eO(e,{itemId:t,part:a}){if(e.knownItemIds.includes(t))return;let r=e.capture.items.get(t),n=r?.data??(void 0===a?void 0:function(e,t){switch(t.kind){case"text":return{type:"message",id:e,role:"assistant",status:"in_progress",content:[]};case"reasoning":return{type:"reasoning",id:e,summary:[]};case"tool":return t.toolKind===ef.O.Function?{type:"function_call",id:e,call_id:e,name:t.name,arguments:""}:void 0;case"media":case"file":case"annotations":return;default:return t}}(t,a));void 0!==n&&(e.knownItemIds.push(t),e.commands.push({type:"upsert-item",item:{id:t,messageId:e.state.messageId,data:n}},{type:"append-item-ref",itemId:t,outputIndex:r?.outputIndex??e.knownItemIds.length-1,itemType:n.type}),r?.phase===ey&&e.doneItemIds.push(t))}function ej(e,t){""!==t.delta&&e.commands.push(t)}async function ez(e){var t;let a,{roomId:r,botMessage:n,request:s,signal:o,getStoreState:l,itemStore:g,now:y}=e,v=l(),I={roomId:r,messageId:n.id,itemStore:g,roomActions:v.actions,getStoreState:l,namespace:v.storageInstanceId},b=ev,w=function(e={}){let{fetchResponse:t=f.f,observe:a}=e;return{send:async({turnId:e,request:r,signal:n})=>{var s;let o=(0,u.n)(n),l=await t({params:r,abortController:o});if((0,i.V)(l))return(0,i.Y)(l.error);let d=l.data.body;if(null===d)return(0,m.O)({location:"chatroomResponsesTransport:body",rawError:"Invalid fetch body"});let c={turnId:e,observe:a,signal:o.signal},f=(s=l.data,s.headers.get("content-type")?.toLowerCase().includes("text/event-stream"))?(0,p.g)(d,c):eu(l.data,c);return(0,i.N)(ep(f,c))}}}({fetchResponse:e.fetchResponse,observe:(e,t)=>{b=function(e,{ev:t,raw:a}){switch(t.type){case"response.created":let r;return void 0===(r=eS(a))?e:{...e,created:(0,eg.S)({id:r.id,model:r.model})};case"response.completed":case"response.incomplete":let n;return void 0===(n=eS(a))?e:{...e,completed:(0,eg.S)({model:n.model,openrouterMetadata:n.openrouter_metadata})};case"response.output_item.added":return eC(e,{raw:a,phase:"added"});case"response.output_item.done":return eC(e,{raw:a,phase:ey});case"response.output_text.annotation.added":return function(e,t){var a,r;let n=(0,h.C)(e_,t);if((0,i.V)(n))return e;let s=(a=n.data.item_id,r=n.data.content_index,`${a}:${r}`),o=new Map(e.annotations);return o.set(s,[...e.annotations.get(s)??[],n.data.annotation]),{...e,annotations:o}}(e,a);default:return e}}(b,{ev:e,raw:t})}}),_={messageId:(t={messageId:n.id,metadata:(a=e.getStoreState().rooms[e.roomId]?.messages[e.botMessage.id],{...(a?.type==="assistant"?a.metadata:void 0)??e.botMessage.metadata})}).messageId,message:void 0,metadata:t.metadata,knownItemIds:[],appendedAnnotations:{},doneItemIds:[],didFinish:!1},A=Promise.resolve(),x=await (0,c.f)({transport:w,request:s,turnId:n.id,signal:o,onChange:e=>{let t=function(e,t){let{next:a,capture:r}=t;if(void 0===a||a===e.message)return{state:e,commands:[]};let n={state:e,next:a,capture:r,commands:[],knownItemIds:[...e.knownItemIds],doneItemIds:[...e.doneItemIds],appendedAnnotations:{...e.appendedAnnotations}},i=e.metadata;if(void 0===e.message&&void 0!==r.created){var s,o;s=i,o=r.created,i=(0,eg.S)({...s,variantSlug:o.model,generationId:o.id}),n.commands.push({type:"update-metadata",metadata:i})}for(let[e]of[...n.capture.items.entries()].sort(([,e],[,t])=>e.outputIndex-t.outputIndex))eO(n,{itemId:e,part:void 0});for(let e of a.parts)!function(e,t){switch(t.kind){case"media":case"file":case"annotations":default:return;case"text":return function(e,t){let a=function(e){let t=eM.exec(e),a=t?.groups?.itemId,r=t?.groups?.contentIndex;if(void 0!==a&&void 0!==r)return{itemId:a,contentIndex:Number(r)}}(t.id);if(void 0===a)return;eO(e,{itemId:a.itemId,part:t});let r=ek(e,t);ej(e,{type:"append-text",itemId:a.itemId,contentIndex:a.contentIndex,delta:t.text.slice(r?.text.length??0)})}(e,t);case"reasoning":let a;return eO(e,{itemId:t.id,part:t}),a=ek(e,t),ej(e,{type:"append-reasoning-summary",itemId:t.id,delta:t.summary.slice(a?.summary.length??0)}),ej(e,{type:"append-reasoning-content",itemId:t.id,delta:t.content.slice(a?.content.length??0)});case"tool":let r;return eO(e,{itemId:t.id,part:t}),r=ek(e,t),t.status===em._.InputStreaming&&ej(e,{type:"append-function-arguments",itemId:t.id,delta:t.inputText.slice(r?.inputText.length??0)})}}(n,e);for(let[e,t]of n.capture.annotations){let a=function(e){let t=e.lastIndexOf(":");if(-1===t)return;let a=e.slice(t+1);if(/^\d+$/.test(a))return{itemId:e.slice(0,t),contentIndex:Number(a)}}(e),r=n.appendedAnnotations[e]??0;if(void 0!==a&&n.knownItemIds.includes(a.itemId)){for(let e of t.slice(r))n.commands.push({type:"append-annotation",itemId:a.itemId,contentIndex:a.contentIndex,annotation:e});n.appendedAnnotations[e]=t.length}}for(let e of n.knownItemIds){let t=n.capture.items.get(e);t?.phase!==ey||n.doneItemIds.includes(e)||(n.doneItemIds.push(e),n.commands.push({type:"upsert-item",item:{id:e,messageId:n.state.messageId,data:t.data}}))}let l=e.didFinish;return l||void 0===a.finishReason||(l=!0,i=function(e){let{prior:t,completed:a,usage:r}=e,n=a?.openrouterMetadata?.generation_time,i=r?.outputTokens,s=void 0!==n&&n>0&&void 0!==i&&i>0?1e3*i/n:void 0;return{...t,...a?.model===void 0?{}:{variantSlug:a.model},...a?.openrouterMetadata===void 0?{}:{routerMetadata:a.openrouterMetadata},duration:n,...void 0===i?{}:{tokensCount:i,tokensPerSecond:s,...r?.costUsd===void 0?{}:{cost:r.costUsd}}}}({prior:i,completed:r.completed,usage:a.usage}),n.commands.push({type:"finish",metadata:i})),{state:{...e,message:a,metadata:i,knownItemIds:n.knownItemIds,doneItemIds:n.doneItemIds,appendedAnnotations:n.appendedAnnotations,didFinish:l},commands:n.commands}}(_,{next:e.messages.find(e=>e.turnId===n.id),capture:b});if(_=t.state,t.commands.length>0){let e=t.commands;A=A.then(()=>(0,d.m)(I,e))}},now:y});return await A,eT(x,I)}async function eT(e,t){let{session:a}=e;switch(a.status){case"ready":case"idle":case"sending":case"streaming":return{status:"finished",message:(0,d.p)(t)};case"aborted":return{status:"aborted",persistence:await eR(t)};case"error":return{status:"failed",error:a.error,persistence:await eR(t)};default:return a}}function eR(e){let t=(0,o.f)({roomId:e.roomId,messageId:e.messageId,getStoreState:e.getStoreState});return e.itemStore.actions.persistItemsNow({namespace:e.namespace,roomId:e.roomId,itemIds:(t?.items??[]).map(e=>e.id),settle:l.Y})}e.s(["f",0,ez],212595);let eF={"content-type":"text/event-stream"};async function eV(e){let{get:t,set:a,roomId:r,message:n,responseBody:o}=e,l=await ez({roomId:r,botMessage:n,request:{model:n.metadata?.requestedModel??"",input:[],stream:!0},signal:new AbortController().signal,getStoreState:t,itemStore:s.useItemStore.getState(),fetchResponse:async()=>(0,i.N)(new Response(o,{status:200,headers:eF}))});return"finished"!==l.status?(a(e=>{let t=e.rooms[r]?.messages[n.id];t?.type==="assistant"&&(t.isGenerating=!1)}),null):l.message??null}var eE=e.i(407568),eP=e.i(236911),eD=e.i(559505),eq=e.i(17972),e$=e.i(466260),eN=e.i(671877),eL=e.i(44745),eU=e.i(586906),eG=e.i(295654),eB=e.i(826735),eY=e.i(847893);let eW=(0,r.f)({name:"sendConversationPromptToArtifact",handler:async({set:e,get:r,payload:i})=>{let{roomId:o,artifactId:l,content:d,attachments:c=[]}=i,u=r(),p=u.storageInstanceId,f=u.rooms[o],m=u.artifacts[l];if(!p||!f||!m)return;let{activeCharacterId:g}=m,h=u.artifactViewerState[l]?.activeVersionId??void 0;if(h){let e=u.artifactVersions[h];if(e?.generationStatus==="failed")return void(0,t.c)({title:(0,ed.q)((0,a.b)("Version Unavailable")),description:(0,ed.q)((0,a.b)("The selected version failed during generation. Please retry generation or select another version before chatting.")),variant:"destructive"})}let y=g?f.characters[g]:void 0;if(!y)return void(0,t.c)({title:(0,ed.q)((0,a.b)("No Model Selected")),description:(0,ed.q)((0,a.b)("Please select a model to chat with.")),variant:"destructive"});let{userMessage:v,aiMessage:I,userMessageItem:b}=function(e){let{roomMessages:t,artifactId:a,activeVersionId:r,aiCharacter:n,content:i,attachments:s=[]}=e,o=t.filter(e=>"artifact-chat"===e.context&&("assistant"!==e.type||e.artifactId===a)).sort(eL.f).at(-1),l=(0,eU.L)(eU.I.Message),d=(0,eB.f)({id:(0,eU.L)(eU.I.Item),messageId:l,data:{type:"message",role:"user",content:[{type:"input_text",text:i}]}}),c=(0,eY.O)({id:l,characterId:eG.d.id,artifactId:a,context:"artifact-chat",parentMessageId:o?.id,versionContextId:r,attachments:s.length>0?s:void 0,contentType:"text",items:[{id:d.id,type:"message"}]}),u=(0,eY.h)({id:(0,eU.L)(eU.I.Message),context:"artifact-chat",characterId:n.id,artifactId:a,parentMessageId:c.id,versionContextId:r,isGenerating:!0,items:[]});return{userMessage:c,aiMessage:u,userMessageItem:d}}({roomMessages:Object.values(f.messages),artifactId:l,activeVersionId:h,aiCharacter:y,content:d,attachments:c});!function(e){let{set:t,roomId:a,userMessage:r,aiMessage:n}=e;t(e=>{let t=e.rooms[a];t&&(t.messages[r.id]=r,t.messages[n.id]=n,t.sortedMessageIds=Object.values(t.messages).sort(eL.f).map(e=>e.id))})}({set:e,roomId:o,userMessage:v,aiMessage:I}),s.useItemStore.getState().actions.upsertItem(b),await n.f.saveMessage(p,o,v);let w=function(e){let{get:t,roomId:a,artifactId:r,activeVersionId:n}=e,i=t(),o=s.useItemStore.getState().items,l=i.rooms[a],d=i.artifacts[r];if(!l||!n||!d)return[];let c=i.artifactVersions[n];if(!c||"app"!==c.type)return[];let u="app"===d.type?d.archetype??"interactive-web-app":"interactive-web-app",{getConversationSystemPrompt:p}=(0,eq.f)(u),f=p(d.name),m=(0,e$.n)({version:c,allFiles:i.artifactFiles,allContents:i.artifactFileContents}),g=Object.values(l.messages).filter(e=>{if("artifact-chat"!==e.context||"artifact-version"===e.contentType&&"user"!==e.type)return!1;let t=e.type;switch(t){case"assistant":return e.artifactId===r;case"user":{if(e.versionContextId){let t=i.artifactVersions[e.versionContextId];return t?.artifactId===r}let t=Object.values(l.messages).find(t=>t.parentMessageId===e.id);if(t?.type==="assistant")return t.artifactId===r;return!1}case"system":return!1;default:return(0,eP.f)(t),!1}}).sort(eL.f).map(e=>{let t=e.items.map(e=>(0,eN.f)(e.id,o)).filter(Boolean).join("\n");return t.trim()?{type:"message",role:"user"===e.type?eD.f.User:eD.f.Assistant,content:t}:null}).filter(e=>null!==e).slice(-8);return[{type:"message",role:eD.f.System,content:(0,e$.W)(f,m)},...g]}({get:r,roomId:o,artifactId:l,activeVersionId:h,userMessage:v}),_=await (0,eE.f)({character:y,inputItems:w,storeState:r(),roomId:o,options:{includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(!_)return void e(e=>{let t=e.rooms[o],a=t?.messages[I.id];a&&"assistant"===a.type&&(a.isGenerating=!1)});let A=r().rooms[o]?.messages[I.id];if(!A||"assistant"!==A.type||!await eV({get:r,set:e,roomId:o,message:A,responseBody:_}))return;let x=r().rooms[o]?.messages[A.id];x&&await n.f.saveMessage(p,o,x)}});e.s(["f",0,eW],999342);var eJ=e.i(700050),eH=e.i(44539),eZ=e.i(773229),eQ=e.i(930339);async function eX(e){let{set:t,get:a,namespace:r,roomId:s,artifactId:o,artifactVersionMessage:l}=e;t(e=>{let t=e.rooms[s]?.messages[l.id];t&&"assistant"===t.type&&(t.isGenerating=!1);let a=e.artifacts[o]?.headVersionId;if(!a)return;let r=e.generationAttemptStartMs[a];delete e.generationAttemptStartMs[a];let n=e.artifactVersions[a];n&&(n.generationStatus="failed",n.error="AI model did not return a response.","number"==typeof r&&r>0&&(n.generationDurationMs=Math.max(0,Date.now()-r)))});let d=a().artifacts[o]?.headVersionId,c=d?a().artifactVersions[d]:void 0;return c&&await n.f.saveArtifactVersions(r,[c]),(0,i.Y)(Error("AI model did not return a response."))}async function eK(e){let{responseBody:t,newVersion:a,...r}=e;if(!t)return eX(r);let n=await (0,eZ.f)({...r,responseBody:t,versionId:a.id,assistantMessageId:r.artifactVersionMessage.id});return(0,i.V)(n)?(0,i.Y)(Error(n.error.message)):(0,i.N)(a)}let e0=(0,r.f)({name:"sendGenerationPromptToArtifact",handler:async({get:e,set:r,payload:o})=>{let{roomId:l,artifactId:d,prompt:c,attachments:u,parentVersionId:p}=o,f=e(),m=f.storageInstanceId,g=f.rooms[l],h=f.artifacts[d];if(!m||!g||!h)return(0,i.Y)(Error("Cannot generate version: Missing context."));let y=p??f.artifactViewerState[d]?.activeVersionId;if(!y)return(0,i.Y)(Error("Cannot generate version: No active version selected."));let v=f.artifactVersions[y];if(!v)return(0,i.Y)(Error(`Parent version ${y} not found.`));let{activeCharacterId:I}=h,b=I?g.characters[I]:void 0;if(!b)return(0,i.Y)(Error("No valid AI generator was found for this artifact."));let{userMessage:w,artifactVersionMessage:_,userMessageItem:A}=function(e){let{artifactId:t,generatorCharacter:a,parentVersionId:r,prompt:n,attachments:i}=e,s=new Date,o=(0,eU.L)(eU.I.Message),l=(0,eB.f)({id:(0,eU.L)(eU.I.Item),messageId:o,data:{type:"message",role:"user",content:[{type:"input_text",text:n}]}}),d=(0,eY.O)({id:o,characterId:eG.d.id,artifactId:t,context:"artifact-chat",contentType:"artifact-version",items:[{id:l.id,type:"message"}],attachments:i,createdAt:s,versionContextId:r}),c=(0,eY.h)({id:(0,eU.L)(eU.I.Message),context:"artifact-chat",contentType:"artifact-version",characterId:a.id,artifactId:t,parentMessageId:d.id,isGenerating:!0,createdAt:new Date(s.getTime()+1),items:[]});return{userMessage:d,artifactVersionMessage:c,userMessageItem:l}}({artifactId:d,generatorCharacter:b,parentVersionId:y,prompt:c,attachments:u}),x=(0,eH.Y)({artifactId:d,parentVersionId:y??void 0,characterId:b.id,fileContents:{...v.fileContents},generatingMessageId:w.id,generationStatus:"generating",versionNumber:(h.versionsCount??0)+1,characterName:b.name||b.presetName||b.model,prompt:c});_.versionContextId=x.id;let S={...h,headVersionId:x.id,versionsCount:(h.versionsCount??0)+1,updatedAt:new Date};!function(e){let{set:t,roomId:a,artifactId:r,userMessage:n,artifactVersionMessage:i,updatedArtifact:s,newVersion:o}=e;t(e=>{let t=e.rooms[a];if(!t)return;t.messages[n.id]=n,t.messages[i.id]=i,t.sortedMessageIds=Object.values(t.messages).sort(eL.f).map(e=>e.id),e.artifacts[r]=s,e.artifactVersions[o.id]=o;let l="app"===s.type?s.entrypointFileId:s.fileIds[0];e.artifactViewerState[r]?e.artifactViewerState[r].activeVersionId=o.id:e.artifactViewerState[r]={view:"editor",activeFileId:l??null,activeVersionId:o.id,expandedFolders:{}}})}({set:r,roomId:l,artifactId:d,userMessage:w,artifactVersionMessage:_,updatedArtifact:S,newVersion:x}),s.useItemStore.getState().actions.upsertItem(A),await Promise.all([n.f.saveMessages(m,l,[w,_]),n.f.saveArtifacts(m,l,[S]),n.f.saveArtifactVersions(m,[x])]);let C=(0,eQ.f)({get:e,roomId:l,artifactId:d,generationPrompt:c.trim(),baseVersionId:y,attachments:o.attachments});r(e=>{e.generationAttemptStartMs[x.id]=Date.now()});let M=await (0,eE.f)({character:b,inputItems:C,storeState:e(),roomId:l,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}}),k=await eK({responseBody:M,set:r,get:e,namespace:m,roomId:l,artifactId:d,newVersion:x,artifactVersionMessage:_});return(0,i.V)(k)?(0,t.c)({title:(0,ed.q)((0,a.b)("Generation Error")),description:k.error.message,variant:"destructive"}):(0,eJ.J)({artifactId:d}),k}});e.s(["f",0,e0],957531);let e1=(0,r.f)({name:"setActiveArtifactId",handler:({set:e,get:t,payload:{artifactId:a}})=>{e(e=>{e.activeArtifactId=a,a&&function(e,t){var a;let r=e.artifactViewerState[t];if(r){r.expandedFolders||(r.expandedFolders={});let a=e.artifacts[t];!r.activeVersionId&&a?.headVersionId&&(r.activeVersionId=a.headVersionId);return}let n=e.artifacts[t];if(!n){e.artifactViewerState[t]={view:"editor",activeFileId:null,activeVersionId:null,expandedFolders:{}};return}let i=(a=n).fileIds&&0!==a.fileIds.length?"app"===a.type&&a.entrypointFileId?a.entrypointFileId:a.fileIds[0]??null:null;e.artifactViewerState[t]={view:"editor",activeFileId:i,activeVersionId:n.headVersionId??null,expandedFolders:{}}}(e,a)}),a&&t().actions.loadFullArtifact({payload:{artifactId:a}})}});e.s(["f",0,e1],558668);let e4=(0,r.f)({name:"setActiveArtifactView",handler:({set:e,payload:t})=>{e(e=>{e.artifactViewerState[t.artifactId]&&(e.artifactViewerState[t.artifactId].view=t.view)})}});e.s(["f",0,e4],849758);var e2=e.i(693946);let e5=(0,r.f)({name:"setActiveCharacterForArtifact",handler:async({set:e,get:t,payload:a})=>{let{artifactId:r,characterId:i}=a;e(e=>{let t=e.artifacts[r];t&&(t.activeCharacterId=i??null,i&&(Array.isArray(t.characterIds)||(t.characterIds=[]),t.characterIds.includes(i)||t.characterIds.push(i)),t.updatedAt=new Date)});let s=t().storageInstanceId,o=(0,e2.M)(t()),l=t().artifacts[r];s&&o&&l&&await n.f.saveArtifacts(s,o,[l])}});e.s(["f",0,e5],892341);let e6=(0,r.f)({name:"setActiveFileId",handler:({set:e,payload:t})=>{e(e=>{e.artifactViewerState[t.artifactId]&&(e.artifactViewerState[t.artifactId].activeFileId=t.fileId)})}});e.s(["f",0,e6],970303);let e7=(0,r.f)({name:"setActiveVersionId",handler:({set:e,payload:t})=>{e(e=>{let a=e.artifactViewerState[t.artifactId];a&&(a.activeVersionId=t.versionId)})}});e.s(["f",0,e7],931581);let e3=(0,r.f)({name:"updateArtifact",handler:async({set:e,get:r,payload:i})=>{let s,{roomId:o,artifactId:l,partialArtifact:d}=i;e(e=>{let r=e.rooms[o],n=e.artifacts[l];n?(Object.assign(n,d),n.updatedAt=new Date,r&&(r.updatedAt=new Date),s={...n}):(0,t.c)({title:(0,ed.q)((0,a.b)("Update Failed")),description:(0,ed.q)((0,a.b)("Could not find the artifact to update. It might have been deleted.")),variant:"destructive"})});let c=r().storageInstanceId;c&&s&&await n.f.saveArtifacts(c,o,[s])}});e.s(["f",0,e3],521064)},407568,176478,559802,773229,466260,17972,e=>{"use strict";var t=e.i(447835),a=e.i(10758);e.i(818009);var r=e.i(982432),n=e.i(34246),i=e.i(422973),s=e.i(647204);e.i(707060);var o=e.i(387086),l=e.i(347586),d=e.i(250464),c=e.i(357107);async function u(e){let{character:u,inputItems:p,storeState:f,roomId:m,options:g}=e,h=(0,d.a)({character:u,inputItems:p,storeState:f,roomId:m,options:{includeDefaultSystemPrompt:g.includeDefaultSystemPrompt,includeEnforcedSystemPrompt:g.includeEnforcedSystemPrompt}});return h?(g.forceStream&&(h.stream=!0),l.f.current.withController(async e=>{let l=await (0,n.f)({params:h,abortController:e});return(0,s.V)(l)?("toResponseResult:abort"===l.error.location?(0,r.c)({title:(0,c.q)((0,o.b)("Request cancelled"))}):((0,i.P)(Error(l.error.message),{source:"fetchResponsesStreamForCharacter",filename:"fetch-completion-stream-for-character.ts",context:{errorResult:l.error}}),(0,r.c)((0,t.f)({message:(0,a.o)(l.error),status:l.error.status}))),null):l.data.body?l.data.body:((0,r.c)((0,t.f)({message:(0,c.q)((0,o.b)("The AI model returned an empty response."))})),null)})):null}e.s(["f",0,u],407568);var p=e.i(700050),f=e.i(826735),m=e.i(735961),g=e.i(236911),h=e.i(709687),y=e.i(44539);function v(e){switch(e.split(".").pop()?.toLowerCase()){case"ts":case"tsx":return"typescript";case"js":case"javascript":return"javascript";case"jsx":return"jsx";case"html":return"html";case"css":return"css";case"json":return"json";case"md":return"markdown";default:return"text"}}e.s(["f",0,v],176478);var I=e.i(952384);function b(e,t){let a=(0,I.y)(t),r=new Set;for(;e.pathRedirects.has(a)&&!r.has(a);){r.add(a);let t=e.pathRedirects.get(a);if(!t)break;a=t}return a}let w="BEGIN FILE RECIPE",_="END FILE RECIPE",A="<\u2192]+/;function C(e,t,a){let r=e.currentCommand;switch(r){case"UPSERT FILE":!function(e,t,a){let r=b(e,a);if(!(0,I.A)(r))return;let n=e.stagedFilesByName.get(r),i=!!n;if(n&&e.fileIdsToDelete.has(n.id)&&e.fileIdsToDelete.delete(n.id),!n){let t=(0,y.f)({filename:r,type:v(r)});e.newlyCreatedFiles.set(r,t),n=t}let s=n,o=(0,y.p)({content:"",generationStatus:"generating"});e.stagedFilesByName.set(r,s),e.stagedFileContents[s.id]=o.id,e.newlyCreatedContents.set(o.id,o),e.currentStreamingContentId=o.id,t.set(e=>{e.artifactFiles[s.id]=s,e.artifactFileContents[o.id]=o;let a=e.artifactVersions[t.versionId];a&&(a.fileContents[s.id]=o.id);let r=e.artifacts[t.artifactId];!r||i||r.fileIds.includes(s.id)||r.fileIds.push(s.id)})}(e,t,a);break;case"REMOVE FILE":!function(e,t){let a=b(e,t);if(!(0,I.A)(a))return;let r=e.stagedFilesByName.get(a);r&&e.fileIdsToDelete.add(r.id)}(e,a);break;case"RENAME FILE":{let r=function(e){let t=e.split(S);if(t.length<2)return null;let a=(0,I.y)(t[0].trim()),r=(0,I.y)(t.slice(1).join(">").trim());return a&&r?{from:a,to:r}:null}(a);r&&function({state:e,ctx:t,fromPath:a,toPath:r}){let n=b(e,a),i=b(e,r);if(!(0,I.A)(n)||!(0,I.A)(i))return;let s=e.stagedFilesByName.get(n);if(!s)return;let o=t.get().artifactVersions[t.versionId],l=o?.fileContents[s.id];if(!l)return;e.pathRedirects.set(n,i);let d=function(e,t,a){let r=t.stagedFilesByName.get(e);if(r)return r;let n=(0,y.f)({filename:e,type:v(e)});return t.stagedFilesByName.set(e,n),t.newlyCreatedFiles.set(e,n),a.set(e=>{e.artifactFiles[n.id]||(e.artifactFiles[n.id]=n);let t=e.artifacts[a.artifactId];t&&!t.fileIds.includes(n.id)&&t.fileIds.push(n.id)}),n}(i,e,t);e.stagedFileContents[d.id]=l,delete e.stagedFileContents[s.id],e.stagedFilesByName.delete(n),e.fileIdsToDelete.add(s.id),t.set(a=>{let r=a.artifactVersions[t.versionId];r&&(r.fileContents={...e.stagedFileContents})})}({state:e,ctx:t,fromPath:r.from,toPath:r.to});break}case null:break;default:(0,g.f)(r)}}function M(e){e.currentCommand=null,e.currentStreamingContentId=null,e.heredocEndToken=null,e.status="seeking-command"}function k(e,t,a){e.streamedContentBuffer[t]||(e.streamedContentBuffer[t]=""),e.streamedContentBuffer[t]+=a,h.f.getState().actions.appendArtifactContent(t,a)}function O({state:e,ctx:t,chunk:a,isFlush:r=!1}){let n=a.replaceAll("\r\n","\n").replaceAll("\r","\n");for(e.buffer+=n;;){let a=!1;switch(e.status){case"seeking-command":a=function(e,t){let a=e.buffer.indexOf(w),r=e.buffer.indexOf(_);if(!e.inRecipe){if(-1!==a){let r=e.buffer.slice(0,a);return r.trim()&&t.streamReasoning(r),e.seenWrapper=!0,e.buffer=e.buffer.slice(a+w.length),e.inRecipe=!0,!0}if(e.seenWrapper)return e.buffer=e.buffer.slice(Math.max(0,e.buffer.length-1024)),!1;let r=e.buffer.slice(0,Math.max(0,e.buffer.length-w.length));return r&&t.streamReasoning(r),e.buffer=e.buffer.slice(r.length),!1}if("streaming-content"!==e.status&&-1!==r)return e.buffer=e.buffer.slice(r+_.length),e.inRecipe=!1,!0;let n=function(e,t){let a=null;for(let r of t){let t=e.indexOf(r);-1!==t&&(!a||t0){let t=e.buffer.indexOf("\n",n.index);return e.buffer=-1===t?"":e.buffer.slice(t+1),!0}return e.buffer=e.buffer.slice(n.index+n.match.length),e.currentCommand=n.match,e.status="parsing-path",!0}(e,t);break;case"parsing-path":a=function(e,t){let a=e.buffer.indexOf("\n");if(-1===a)return e.buffer.length>1024&&(M(e),e.buffer=""),!1;let r=e.buffer.substring(0,a),n=r.indexOf(":");if(-1===n)return e.buffer=e.buffer.substring(a+1),M(e),!0;let i=r.substring(n+1).trim();if("REMOVE FILE"===e.currentCommand||"RENAME FILE"===e.currentCommand)return C(e,t,i),e.buffer=e.buffer.substring(a+1),M(e),!0;let s=e.buffer.substring(a+1),o=s.indexOf(A);return -1!==o&&(C(e,t,i),e.buffer=s.substring(o+A.length),e.heredocEndToken="END_OF_FILE",e.status="streaming-content",!0)}(e,t);break;case"streaming-content":a=function(e,t){if(!e.heredocEndToken)return!1;let a=function(e,t){let a=0,r=RegExp(`^${t}[\\s]*[;:,.!?-]*$`);for(;;){let n=e.indexOf("\n",a);if(-1===n)return null;let i=a,s=e.slice(i,n).trim();if(s===t||r.test(s))return{content:e.slice(0,i),rest:e.slice(n+1)};a=n+1}}(e.buffer,e.heredocEndToken);if(a){if(e.currentStreamingContentId){k(e,e.currentStreamingContentId,a.content);let r=e.currentStreamingContentId;t.set(t=>{let a=t.artifactFileContents[r];a&&(a.content=e.streamedContentBuffer[r]??"",a.generationStatus="success")})}return e.buffer=a.rest,M(e),!0}let r=Math.max((e.heredocEndToken?.length??0)+2,_.length+2),n=e.buffer.slice(0,Math.max(0,e.buffer.length-r));return n&&e.currentStreamingContentId&&k(e,e.currentStreamingContentId,n),e.buffer=e.buffer.slice(n.length),!1}(e,t);break;default:(0,g.f)(e.status)}if(!a)break}r&&"streaming-content"===e.status&&e.buffer.length>0&&(e.currentStreamingContentId&&k(e,e.currentStreamingContentId,e.buffer),e.buffer="")}function j(e){return"id"in e&&"string"==typeof e.id&&e.id?e.id:"function_call"===e.type&&"call_id"in e&&"string"==typeof e.call_id?e.call_id:null}let z={"response.output_item.added":async(e,{ctx:t})=>{if("response.output_item.added"!==e.type)return;let a=e.item,r=j(a);if(!r)return;let n=(0,f.f)({id:r,messageId:t.assistantMessageId,data:a});m.useItemStore.getState().actions.upsertItem(n),await t.get().actions.appendItemIdToMessage({payload:{roomId:t.roomId,messageId:t.assistantMessageId,itemId:n.id,outputIndex:e.output_index,type:a.type}})},"response.output_item.done":async(e,{ctx:t})=>{if("response.output_item.done"!==e.type)return;let a=e.item,r=j(a);if(!r)return;let{items:n,actions:i}=m.useItemStore.getState(),s=n[r],o={id:r,messageId:s?.messageId??t.assistantMessageId,data:a};i.upsertItem(o)},"response.content_part.added":async()=>{},"response.content_part.done":async()=>{},"response.reasoning_summary_part.added":async()=>{},"response.reasoning_summary_part.done":async()=>{},"response.reasoning_summary_text.delta":async e=>{"response.reasoning_summary_text.delta"===e.type&&m.useItemStore.getState().actions.appendReasoningSummaryText(e.item_id,e.delta,e.summary_index)},"response.reasoning_summary_text.done":async()=>{},"response.reasoning_text.delta":async e=>{"response.reasoning_text.delta"===e.type&&m.useItemStore.getState().actions.appendReasoningContentText(e.item_id,e.delta,e.content_index)},"response.reasoning_text.done":async()=>{},"response.output_text.delta":async(e,{handlerCtx:t,parserState:a})=>{"response.output_text.delta"===e.type&&O({state:a,ctx:t,chunk:e.delta})}};var T=e.i(549692),R=e.i(447680),F=e.i(721057);let V=` (function() { if (window.persistentStorage) { return; } const requests = new Map(); let idCounter = 0; window.addEventListener('message', (e) => { const isStorageResponse = e.data?.type === 'storage-response'; if (e.source !== window.parent || !isStorageResponse) { return; } const { requestId, value, error } = e.data; const req = requests.get(requestId); if (!req) { return; } if (error) { req.reject(new Error(error)); } else { req.resolve(value); } requests.delete(requestId); }); function post(message) { window.parent.postMessage(message, '*'); } window.persistentStorage = { getItem: (key) => new Promise((resolve, reject) => { const requestId = idCounter++; requests.set(requestId, { resolve, reject }); post({ type: 'storage-get-item', key: String(key), requestId }); }), setItem: (key, value) => new Promise((resolve) => { post({ type: 'storage-set-item', key: String(key), value: String(value) }); resolve(); }), removeItem: (key) => new Promise((resolve) => { post({ type: 'storage-remove-item', key: String(key) }); resolve(); }), clear: () => new Promise((resolve) => { post({ type: 'storage-clear' }); resolve(); }), }; function formatError(error) { if (error instanceof Error) { return \`Error: $\{error.message}\\nStack:\\n$\{error.stack}\`; } if (typeof error === 'string') { return error; } try { return JSON.stringify(error, Object.getOwnPropertyNames(error)); } catch { return 'An unknown error occurred inside the sandboxed preview.'; } } window.onerror = function(message, source, lineno, colno, error) { const fullError = error ? formatError(error) : \`Error: $\{message} at $\{source}:$\{lineno}:$\{colno}\`; post({ type: 'runtime-error', error: \`Uncaught Exception:\\n$\{fullError}\` }); }; window.addEventListener('unhandledrejection', function(event) { const formattedError = \`Unhandled Promise Rejection:\\n$\{formatError(event.reason)}\`; post({ type: 'runtime-error', error: formattedError }); }); })(); `;function E(e,t,a){return e.includes(t)?e.replace(t,`${a}${t}`):`${e}${a}`}async function P(t){let a=t.find(e=>(0,I.y)(e.path)===F.q)?.content??F.e,r=await (0,s.$)(()=>e.A(966344));if((0,s.V)(r))return(0,s.Y)(r.error);let n=await r.data.runBundler(t);if((0,s.V)(n))return(0,s.Y)(n.error);let{js:i,css:o}=n.data,l=function(e,t,a){let r=function(e,t){if(!t)return e;let a=``;return E(e,F.d,a)}(e.replace(F.T,"").replace(F.C,""),a),n=` `;return E(r,F.A,n)}(a,i,o);return(0,s.N)({srcDoc:l,key:Date.now().toString()+Math.random().toString()})}async function D(e,t){let{get:a}=e,n=a().artifacts[e.artifactId];if(n?.type!=="app")return null;let i=Array.from(t.stagedFilesByName.values()).map(e=>{let a=t.stagedFileContents[e.id],r=t.streamedContentBuffer[a]??"";return{path:e.filename,content:r}});if(0===i.length)return null;let l=await (0,s.$)(()=>P(i));if((0,s.V)(l)){let e=l.error;return(0,r.c)({title:(0,c.q)((0,o.b)("Build Failed")),description:(0,c.q)((0,o.b)("The generated code has errors. Check the version card for details.")),variant:"destructive"}),e.message}return null}async function q(e,t){let{get:a,namespace:n,roomId:i,versionId:l}=e,d=a(),u=d.artifacts[e.artifactId],p=d.artifactVersions[l],f=Array.from(t.newlyCreatedFiles.values()),m=Object.keys(t.streamedContentBuffer).map(e=>d.artifactFileContents[e]),g=await (0,s.$)(()=>Promise.all([u&&R.f.saveArtifacts(n,i,[u]),p&&R.f.saveArtifactVersions(n,[p]),f.length>0&&R.f.saveArtifactFiles(n,f),m.length>0&&R.f.saveArtifactFileContents(n,m)]));return(0,s.V)(g)?((0,r.c)({title:(0,c.q)((0,o.b)("Save Error")),description:(0,c.q)((0,o.b)("Failed to save artifact changes.")),variant:"destructive"}),(0,s.Y)((0,T.n)({location:"finalizer:persist",rawError:g.error}))):(0,s.N)(!0)}function $(e){let{set:t,roomId:a,assistantMessageId:r,mainChatMessageId:n}=e;t(e=>{let t=e.rooms[a];if(!t)return;let i=t.messages[r];if(i&&"assistant"===i.type&&(i.isGenerating=!1),n){let e=t.messages[n];e&&"assistant"===e.type&&(e.isGenerating=!1)}})}async function N(e,t){let a=await D(e,t);return!function(e,t,a){let{set:r,artifactId:n,versionId:i}=e;r(e=>{for(let e of t.fileIdsToDelete)delete t.stagedFileContents[e];t.fileIdsToDelete.clear();let r=e.artifacts[n],s=e.artifactVersions[i]??null;if(!r||!s)return;s.fileContents={...t.stagedFileContents};let o=Array.from(t.stagedFilesByName.values()).map(e=>e.id);for(let n in r.fileIds=[...new Set([...r.fileIds,...o])],r.updatedAt=new Date,"app"===s.type&&(s.generationStatus="success",s.error=a??void 0),s.createdAt&&(s.generationDurationMs=Math.max(0,Date.now()-new Date(s.createdAt).getTime())),t.streamedContentBuffer){if(!Object.hasOwn(t.streamedContentBuffer,n))continue;let a=e.artifactFileContents[n];a&&(a.content=t.streamedContentBuffer[n],a.generationStatus="success")}})}(e,t,a),$(e),await q(e,t)}async function L(e,t,a){let r=Array.from(t.newlyCreatedContents.keys());r.length>0&&await R.f.deleteArtifactFileContents(e.namespace,r),e.set(t=>{let r=t.artifacts[e.artifactId]?.headVersionId;if(!r)return;let n=t.artifactVersions[r];n&&"app"===n.type&&(n.generationStatus="failed",n.error=a??"An error occurred during generation.",n.createdAt&&(n.generationDurationMs=Math.max(0,Date.now()-new Date(n.createdAt).getTime())))});let n=e.get().artifacts[e.artifactId]?.headVersionId;if(!n)return void $(e);let i=e.get().artifactVersions[n];i&&await R.f.saveArtifactVersions(e.namespace,[i]),$(e)}e.s(["f",0,P],559802);var U=e.i(423491),G=e.i(711359);async function*B(e){for await(let t of(0,G.f)(e))yield function(e){if((0,s.V)(e))return{type:"error",error:(0,T.n)({location:"stream-processor:processSSE",rawError:e.error})};if(e.data===U.f)return{type:"done"};let t=(0,s.$)(()=>JSON.parse(e.data));if((0,s.V)(t))return{type:"error",error:(0,T.n)({location:"stream-processor:parseSseChunk",rawError:t.error})};let a=t.data;return"error"===a.type?{type:"error",error:(0,T.n)({location:"stream-processor:responseDataError",rawError:a.message})}:{type:"data",event:a}}(t)}async function Y(e){var t,a;let r,n,i,o=(t=e.get,a=e.versionId,r=t().artifactVersions[a],n=t().artifactFiles,i=r?.type==="app"?Object.keys(r.fileContents).map(e=>n[e]).filter(e=>!!e):[],{status:"seeking-command",buffer:"",stagedFileContents:r?.type==="app"?{...r.fileContents}:{},stagedFilesByName:new Map(i.map(e=>[(0,I.y)(e.filename),e])),newlyCreatedFiles:new Map,newlyCreatedContents:new Map,fileIdsToDelete:new Set,currentCommand:null,currentStreamingContentId:null,heredocEndToken:null,inRecipe:!1,seenWrapper:!1,streamedContentBuffer:{},pathRedirects:new Map}),l={set:e.set,get:e.get,artifactId:e.artifactId,versionId:e.versionId,streamReasoning:e=>{}},d={ctx:e,parserState:o,handlerCtx:l};for await(let t of B(e.responseBody)){if("error"===t.type)return await L(e,o,t.error.message),(0,s.Y)(t.error);if("done"===t.type)break;let{event:a}=t,r=z[a.type];r&&await r(a,d)}O({state:o,ctx:l,chunk:"",isFlush:!0});let c=await N(e,o);return(0,s.V)(c)||(0,p.J)({artifactId:e.artifactId}),c}e.s(["f",0,Y],773229);let W=`type Persistence = { setItem(key: string, value: string): Promise; getItem(key: string): Promise; removeItem(key: string): Promise; clear(): Promise; }; export const persistence: Persistence = { setItem(key, value) { return window.persistentStorage.setItem(key, value); }, getItem(key) { return window.persistentStorage.getItem(key); }, removeItem(key) { return window.persistentStorage.removeItem(key); }, clear() { return window.persistentStorage.clear(); }, };`,J="function main(): void {}";var H=e.i(559505);function Z(){return'// --- REACT PROJECT RULES --- //\n- Create small, reusable components.\n- Organize files into feature-specific directories (e.g., `src/features/[feature-name]/`).\n- Each component must import its own co-located CSS file (e.g., `Component.tsx` imports `./Component.css`).\n- Place generic, shared components in `src/components/`.\n- The project starts with only `react` and `react-dom/client`. Avoid adding new libraries unless absolutely necessary.\n- If you must add a library, update `index.html`\'s `importmap` using the exact format: `"library-name": "https://esm.sh/library-name@version?deps=react@18.2.0"`.'}function Q(){return'- The project does not start with any external dependencies. Avoid adding new libraries unless absolutely necessary as it increases the chance of errors and user dissatisfaction.\n- If you must add a library, update `index.html`\'s `importmap` using the exact format: `"library-name": "https://esm.sh/library-name"`.'}function X(e){if(!Array.isArray(e)){let{version:t,allFiles:a,allContents:r}=e;return Object.keys(t.fileContents).map(e=>{let n=a[e];if(!n)return"";let i=t.fileContents[e],s=i?r[i]?.content:"";return`#### File: \`${n.filename}\` \`\`\` ${s||""} \`\`\``}).filter(Boolean).join("\n\n")}return e.map(e=>`#### File: \`${e.path}\` \`\`\` ${e.content} \`\`\``).filter(Boolean).join("\n\n")}function K({isIncremental:e,structureRules:t,taskDescription:a}){let r='// --- FILE COMMAND PALETTE --- //\n- **Crucial**: Your response must start with `BEGIN FILE RECIPE` and end with `END FILE RECIPE`.\n- You cannot include any text before, after, or outside the file recipe block.\n\n- **Example**:\nBEGIN FILE RECIPE\n...commands here...\nEND FILE RECIPE\n\n- Commands (use these exact forms):\n - UPSERT FILE: path/to/file.ext\n < new/path.ext\n\n- Notes:\n - Paths are project-relative (e.g., src/main.ts).\n - For local TypeScript imports, use relative, extensionless paths (e.g., import { X } from "./Y").',n=["Your ultimate goal is to impress the user by collaborating with them to build an exceptional product according to their request.",'// --- SANDBOX ENVIRONMENT CONSTRAINTS --- //\n- Do not add additional third-party libraries unless specifically requested.\n- Additional packages cannot be installed within this sandbox environment.\n- Do not add image files or base64 encoded images to the project.\n- **External Fonts**: To use external fonts (e.g., Google Fonts), use CSS `@import` in your stylesheet instead of `` tags in HTML. Example: `@import url("https://fonts.googleapis.com/css2?family=Inter&display=swap");`\n- **No Local Storage**\n- The `window.persistentStorage` API is asynchronous and all methods return a Promise. You MUST use `await`.\n - `await window.persistentStorage.setItem(key: string, value: string): Promise`\n - `await window.persistentStorage.getItem(key: string): Promise`\n - `await window.persistentStorage.removeItem(key: string): Promise`\n - `await window.persistentStorage.clear(): Promise`'];return void 0!==t&&n.push(t),n.push(e?r:r.split("\n").filter(e=>!e.includes("REMOVE FILE")&&!e.includes("obsolete files")).join("\n")),{baseInstructions:n.join("\n\n"),finalInstructions:["Your ultimate goal is to **impress the user**. The output must be of **world-class quality**—highly polished, fully-realized, and demonstrating exceptional skill. It should feel like a complete, professional product, not a basic template. Make sure that you generate a fully complete product according to the user's request.",a].join("\n\n")}}e.s(["W",0,function(e,t){return`${e} --- ### **Project Files Context** For your reference, here is the current state of all files in the project. ${t} --- `},"X",0,function({baseInstructions:e,finalInstructions:t,generationPrompt:a,mainContext:r}){let n=[e];r&&n.push(r),n.push("---",t);let i=n.join("\n\n");return[{role:H.f.System,content:i},{role:H.f.User,content:a}]},"F",0,K,"n",0,X,"p",0,function({parentVersion:e,allFiles:t,allContents:a,directoryTree:r}){var n;let i=[],s=e.error?["---\n### **Previous Error**\nThe previous version produced the following error. Your primary task is to fix this.\n```",e.error,"```"].join("\n"):null,o=(n=X({version:e,allFiles:t,allContents:a}),n?["---\n### **Current Project Files**\nThis is the full content of the project files. Use this as context to inform your changes.",n,"---\n### **Current Project Structure**\nThis is an overview of the current file and directory structure.\n```",r,"```\n"].join("\n"):null);return s&&i.push(s),o&&i.push(o),i.join("\n\n")},"G",0,function(e){return e?["---","### **Project Files**","This is the current state of the project files.",e].join("\n\n"):""},"M",0,Q,"C",0,Z],466260);let ee=`import React from 'react'; import { createRoot } from 'react-dom/client'; import App from './App'; const container = document.getElementById('app'); if (container) { const root = createRoot(container); root.render( ); }`,et=`import React from 'react'; import './App.css'; function App() { return <>; } export default App; `;function ea(){return[{path:"index.html",content:` React App
`},{path:"src/index.tsx",content:ee},{path:"src/App.tsx",content:et},{path:"src/App.css",content:""},{path:"src/utils/persistence.ts",content:W}]}let er={"interactive-web-app":{getInitialFiles:ea,getSystemPrompt:function(e){return K({isIncremental:e,structureRules:Z(),taskDescription:"Based on the user's request, produce a fully functional interactive web application that is intuitive, responsive, and powerful."})},getConversationSystemPrompt:function(e){return`You are a creative partner in a brainstorming and planning session about a web application named "${e}". Your role is to discuss ideas, suggest features, and help plan the structure for the next version iteration. You are NOT writing the code itself. Your responses should be concise, direct, and to the point. IMPORTANT: Do NOT generate code, file recipes, or anything other than a normal chat message. Focus only on the high-level discussion, planning, and brainstorming for the next version of the web app.`}},"landing-page":{getInitialFiles:ea,getSystemPrompt:function(e){return K({isIncremental:e,structureRules:Z(),taskDescription:"Based on the user's request, produce a visually stunning and persuasive landing page that is flawless on any device."})},getConversationSystemPrompt:function(e){return`You are a creative partner in a brainstorming and planning session about a landing page named "${e}". Your role is to discuss ideas, suggest marketing copy, and help plan the structure for the next version iteration. You are NOT writing the code itself. Your responses should be concise, direct, and to the point. IMPORTANT: Do NOT generate code, file recipes, or anything other than a normal chat message. Focus only on the high-level discussion, planning, and brainstorming for the page.`}},"2d-game":{getInitialFiles:()=>[{path:"index.html",content:` 2D Game `},{path:"src/main.ts",content:J},{path:"src/styles/index.css",content:`body { margin: 0; background-color: #000; overflow: hidden; } `},{path:"src/libs/persistence.ts",content:W},{path:"src/definitions.ts",content:"// Add game definitions here"},{path:"src/utils.ts",content:"// Add game utils here"},{path:"src/entities.ts",content:"// Add game entities here"},{path:"src/ui.ts",content:"// Add UI logic here"},{path:"src/game.ts",content:"// Add core game logic here"}],getSystemPrompt:function(e){return K({isIncremental:e,taskDescription:"Based on the user's request, produce an impressive 2D game."})},getConversationSystemPrompt:function(e){return`You are a creative partner in a brainstorming and planning session about a 2D game named "${e}". Your role is to discuss ideas, suggest gameplay mechanics, and help plan the structure for the next version. You are NOT writing the code itself. Your responses should be concise, direct, and focused on game design. IMPORTANT: Do NOT generate code, file recipes, or anything other than a normal chat message. Focus only on the high-level discussion, planning, and brainstorming for the game.`}},"3d-game":{getInitialFiles:()=>[{path:"index.html",content:` 3D Game `},{path:"src/main.ts",content:J},{path:"src/styles/index.css",content:`/* Add game's global styles here */ `},{path:"src/libs/persistence.ts",content:W},{path:"src/definitions.ts",content:"// Add game definitions here"},{path:"src/utils.ts",content:"// Add game utils here"},{path:"src/entities.ts",content:"// Add game entities here"},{path:"src/ui.ts",content:"// Add UI logic here"},{path:"src/game.ts",content:"// Add core game logic here"}],getSystemPrompt:function(e){return K({isIncremental:e,structureRules:Q(),taskDescription:"Based on the user's request, produce a deeply immersive and graphically impressive 3D experience."})},getConversationSystemPrompt:function(e){return`You are a creative partner in a brainstorming and planning session about a 3D experience named "${e}". Your role is to discuss ideas, suggest visual effects, and help plan the structure for the next version. You are NOT writing the code itself. Your responses should be concise, direct, and focused on 3D design and user experience. IMPORTANT: Do NOT generate code, file recipes, or anything other than a normal chat message. Focus only on the high-level discussion, planning, and brainstorming for the experience.`}}};e.s(["f",0,function(e){return er[e]}],17972)},856885,779234,142056,362591,723098,450531,939303,535192,508191,25551,429394,370039,853048,161273,907971,438838,142422,2251,78154,735162,241859,10700,889854,599227,57461,250468,e=>{"use strict";var t=e.i(286709),a=e.i(447680),r=e.i(471316);function n({get:e,roomId:t,characters:a,mintFreshIds:i}){let s=Array.isArray(a)?a:[a],o=t?e().rooms[t]?.zdr:e().pendingRoomZdr,l=s.map(e=>(0,r.f)({...e,id:i?void 0:e.id,zdr:e.zdr??o??void 0}));return{newCharacters:l,newCharacterIds:l.map(e=>e.id)}}let i=(0,t.f)({name:"addCharacter",handler:async({set:e,get:t,payload:{roomId:r,characters:i}})=>{let{newCharacters:s,newCharacterIds:o}=n({get:t,roomId:r,characters:i,mintFreshIds:!1});if(!r)return e(e=>{for(let t of(e.pendingCharacters||(e.pendingCharacters={}),s))e.pendingCharacters[t.id]=t}),{characterIds:o};e(e=>{let t=e.rooms[r];if(t)for(let e of s)t.characters[e.id]=e});let l=t().storageInstanceId;return l&&await a.f.saveCharacters(l,r,s),{characterIds:o}}});e.s(["f",0,i],856885);var s=e.i(393182),o=e.i(295654),l=e.i(622817);let d=(e,t)=>t?e.rooms[t]?.characters:e.pendingCharacters,c=(0,t.f)({name:"applyToAllCharacters",handler:async({set:e,get:t,payload:{roomId:r,sourceCharacter:n}})=>{let i=d(t(),r);if(!i)return;let c=[],u=Object.entries(i).reduce((e,[t,a])=>{if(!a)return e;if((0,l.n)(a))return e[t]=a,e;let r={...a.samplingParameters,...n.samplingParameters},i=n.plugins?[...n.plugins]:a.plugins,d=n.reasoning?{...n.reasoning}:a.reasoning,u=function({modelInfo:e,sourceMaxTokens:t,fallbackMaxTokens:a}){return e&&void 0!==t?Math.min(t,e.context_length??o.Q):a}({modelInfo:a.modelInfo,sourceMaxTokens:n.maxTokens,fallbackMaxTokens:a.maxTokens}),p={...a,samplingParameters:r,plugins:i,reasoning:d,zdr:n.zdr??a.zdr,maxTokens:u,description:n.description??a.description,includeDefaultSystemPrompt:n.includeDefaultSystemPrompt??a.includeDefaultSystemPrompt,switchyardAlgorithm:n.modelInfo?.permaslug===s.f.Switchyard&&a.modelInfo?.permaslug===s.f.Switchyard?n.switchyardAlgorithm:a.switchyardAlgorithm,updatedAt:new Date};return c.push(p),e[t]=p,e},{});e(e=>{let t=d(e,r);t&&Object.assign(t,u)});let p=t().storageInstanceId;return p&&r&&await a.f.saveCharacters(p,r,c),{characters:u}}});e.s(["f",0,c],779234);var u=e.i(828342),p=e.i(700050);let f=(0,t.f)({name:"clearCharacters",handler:async({set:e,get:t,payload:{roomId:r}})=>{if(!globalThis.confirm(u.f`This will clear all models for the current room. This action is irreversible.`))return;if(!r)return void e(e=>{e.pendingCharacters={}});let n=d(t(),r);if(!n||0===Object.keys(n).length)return;e(e=>{e.rooms[r]&&(e.rooms[r].characters={})});let i=t().storageInstanceId;i&&await a.f.clearCharactersFromRoom(i,r),(0,p.r)()}});e.s(["f",0,f],142056);let m=(0,t.f)({name:"duplicateCharacter",handler:async({set:e,get:t,payload:{roomId:n,sourceCharacterId:i}})=>{let s=d(t(),n)?.[i];if(!s||(0,l.n)(s))return;let o=(0,r.f)({...s,id:void 0,name:s.name?`${s.name} (Copy)`:void 0,createdAt:void 0,updatedAt:void 0});e(e=>{let t=d(e,n);t&&(t[o.id]=o)});let c=t().storageInstanceId;c&&n&&await a.f.saveCharacter(c,n,o),(0,p.X)({slug:s.model})}});e.s(["f",0,m],362591);var g=e.i(115247);let h=(0,t.f)({name:"initializeCharacters",handler:async({set:e,get:t,payload:{roomId:r,characters:n}})=>{let i={},s=[];for(let e in n){if(!Object.hasOwn(n,e))continue;let t=n[e];if(!t||!t.modelInfo||!t.id)continue;let a=t.createdAt?new Date(t.createdAt):new Date,r=t.updatedAt?new Date(t.updatedAt):a,o={...t,createdAt:a,updatedAt:r,samplingParameters:t.samplingParameters??{},isStreaming:t.isStreaming??!0,description:(0,g.f)(t.modelInfo)||t.description||""};i[e]=o,s.push(o)}e(e=>{r&&e.rooms[r]?e.rooms[r].characters=i:e.pendingCharacters=i});let o=t().storageInstanceId;o&&r&&s.length>0&&await a.f.saveCharacters(o,r,s)}});e.s(["f",0,h],723098);let y=(0,t.f)({name:"removeCharacter",handler:async({set:e,get:t,payload:{characterId:r,roomId:n}})=>{if(!n)return void e(e=>{e.pendingCharacters?.[r]&&delete e.pendingCharacters[r]});let i=d(t(),n)?.[r];if(!i)return;let s={...i,isRemoved:!0,updatedAt:new Date};e(e=>{let t=d(e,n);t?.[r]&&(t[r]=s)});let o=t().storageInstanceId;o&&await a.f.saveCharacter(o,n,s),(0,p.D)({slug:i.model})}});e.s(["f",0,y],450531);var v=e.i(170993);let I=(0,t.f)({name:"replaceCharacters",handler:async({set:e,get:t,payload:{roomId:r,characters:i}})=>{if(Array.isArray(i)&&0===i.length)return{characterIds:[]};let{newCharacters:s,newCharacterIds:o}=n({get:t,roomId:r,characters:i,mintFreshIds:!0}),l=Object.fromEntries(s.map(e=>[e.id,e]));if(!r)return e(e=>{e.pendingCharacters=l}),{characterIds:o};let d=t().rooms[r];if(!d)return{characterIds:[]};let c=Object.entries(d.characters),u=c.filter(([,e])=>(0,v.f)(e)).map(([e])=>e),p=Object.fromEntries(c.filter(([,e])=>!(0,v.f)(e)));e(e=>{let t=e.rooms[r];t&&(t.characters={...p,...l})});let f=t().storageInstanceId;return f&&await a.f.replaceCharactersInRoom(f,r,{replacedCharacterIds:u,newCharacters:s}),{characterIds:o}}});e.s(["f",0,I],939303);var b=e.i(855155);let w=(0,t.f)({name:"resetCharacter",handler:async({set:e,get:t,payload:{characterId:r,roomId:n}})=>{if(!n)return;let i=d(t(),n)?.[r];if(!i)return;let s={...o.M,reasoning:void 0,samplingParameters:{}};for(let e of b.e)null!==e.metadata.defaultValue&&(s.samplingParameters||(s.samplingParameters={}),s.samplingParameters[e.name]=e.metadata.defaultValue);let l={...i,...s,updatedAt:new Date};e(e=>{let t=d(e,n);t?.[r]&&(t[r]=l)});let c=t().storageInstanceId;c&&await a.f.saveCharacter(c,n,l)}});e.s(["f",0,w],535192);let _=(0,t.f)({name:"restoreCharacter",handler:async({set:e,get:t,payload:{characterId:r,roomId:n}})=>{let i=d(t(),n)?.[r];if(!i)return;let s={...i,isRemoved:!1,isDisabled:!1,updatedAt:new Date};e(e=>{let t=d(e,n);t?.[r]&&(t[r]=s)});let o=t().storageInstanceId;o&&await a.f.saveCharacter(o,n,s),(0,p.E)({slug:i.model})}});function A(e){return{id:e.id,title:e.title,createdAt:e.createdAt,updatedAt:e.updatedAt,lastActivityAt:e.lastActivityAt,version:e.version,isPinned:e.isPinned,zdr:e.zdr,internId:e.internId}}e.s(["f",0,_],508191),e.s(["f",0,A],25551);let x=(0,t.f)({name:"setRoomZdr",handler:async({set:e,get:t,payload:{roomId:r,zdr:n}})=>{let i=Object.values(d(t(),r)??{}).map(e=>({...e,zdr:n,updatedAt:new Date}));e(e=>{if(r){let t=e.rooms[r];t&&(t.zdr=n)}else e.pendingRoomZdr=n;let t=d(e,r);if(t)for(let e of i)t[e.id]=e});let s=t().storageInstanceId;if(!s||!r)return;let o=t().rooms[r];await Promise.all([o?a.f.saveRoom(s,A(o)):Promise.resolve(),a.f.saveCharacters(s,r,i)])}});e.s(["f",0,x],429394);var S=e.i(647204),C=e.i(882844),M=e.i(397400);let k=(0,t.f)({name:"togglePluginForCharacter",handler:async({set:e,get:t,payload:{characterId:r,pluginId:n,forceState:i,roomId:s}})=>{let o=d(t(),s)?.[r];if(!o)return;let l=new Set(o.plugins?.map(e=>e.id)??[]);("boolean"==typeof i?i:!l.has(n))?l.add(n):l.delete(n);let c=(0,C.C)(M.f,Array.from(l).map(e=>({id:e}))),u={...o,plugins:(0,S.C)(c)?c.data:[],updatedAt:new Date};e(e=>{let t=d(e,s);t?.[r]&&(t[r]=u)});let p=t().storageInstanceId;p&&s&&await a.f.saveCharacter(p,s,u)}});e.s(["f",0,k],370039);let O=(0,t.f)({name:"updateCharacter",handler:async({set:e,get:t,payload:{characterId:r,partialCharacter:n,roomId:i}})=>{var s,o;let l=d(t(),i)?.[r];if(!l)return;let c=void 0===n.provider?n.providerSort??l.providerSort:void 0,u={...l,...n,internSessionId:(s=l,"internSessionId"in(o=n)?o.internSessionId:void 0!==o.model&&o.model!==s.model?void 0:s.internSessionId),providerSort:c,updatedAt:new Date};e(e=>{let t=d(e,i);t?.[r]&&(t[r]=u)});let p=t().storageInstanceId;p&&i&&await a.f.saveCharacter(p,i,u)}});e.s(["f",0,O],853048);var j=e.i(586906),z=e.i(847893);function T(e){if(e.isRoutingPreset&&e.presetSlug)return e.presetName??e.presetSlug}e.s(["f",0,T],161273);var R=e.i(44745);let F=(0,t.f)({name:"createBotPlaceholder",handler:({set:e,payload:{character:t,parentMessageId:a,roomId:r,createdAt:n,requestOverrides:i}})=>{let s=(0,z.h)({id:(0,j.L)(j.I.Message),characterId:t.id,context:"main-chat",parentMessageId:a,createdAt:n??new Date,metadata:{plugins:t.plugins,variantSlug:t.model,requestedModel:t.model,routingPresetName:T(t)},items:[],requestOverrides:i});return e(e=>{let t=e.rooms[r];t&&(t.messages[s.id]=s,t.sortedMessageIds=Object.values(t.messages).sort(R.f).map(e=>e.id))}),s}});e.s(["f",0,F],907971);var V=e.i(735961),E=e.i(32582);async function P(e,t,a){let r=new Set;for(let a of Object.values(e))"assistant"===a.type&&a.artifactId&&t[a.artifactId]&&a.versionContextId&&("artifact-version"===a.contentType||"text"===a.contentType)&&r.add(a.versionContextId);for(let e of Object.values(t))if(e.headVersionId)for(let t of(await (0,E.fullVersionHistoryTraversal)(a,e.headVersionId)))r.add(t);return r}async function D({storageInstanceId:e,messages:t,artifacts:a,persistence:r}){let n,i,s=await P(t,a,e),o=(n=new Set,Object.values(a).forEach(e=>{e.fileIds.forEach(e=>{n.add(e)})}),n),[l,d]=await Promise.all([r.getArtifactFiles(e,Array.from(o)),r.getArtifactVersions(e,Array.from(s))]),c=(i=new Set,Object.values(d).forEach(e=>{Object.values(e.fileContents).forEach(e=>{"string"==typeof e&&i.add(e)})}),i);return{artifactFiles:l,artifactVersions:d,artifactFileContents:await r.getArtifactFileContents(e,Array.from(c))}}e.s(["f",0,D],438838);var q=e.i(625025);async function $(e){let{roomData:t,allItems:r,artifacts:n,artifactVersions:i,artifactFiles:s,artifactFileContents:o,storageInstanceId:l}=e,d=new Set,c=new Set;for(let e of Object.values(t.messages))(e.items??[]).forEach(e=>{d.add(e.id)}),e.versionContextId&&c.add(e.versionContextId);let u=(0,q.O)(r,Array.from(d)),p=(0,q.O)(n,t.artifactIds),f=Array.from(new Set([...c,...(await Promise.all(Object.values(p).map(e=>e?.headVersionId&&l?a.f.fullVersionHistoryTraversal(l,e.headVersionId):new Set))).flatMap(e=>Array.from(e))])),m=(0,q.O)(i,f),g=Array.from(new Set(Object.values(p).filter(Boolean).flatMap(e=>e.fileIds))),h=(0,q.O)(s,g),y=Array.from(new Set(Object.values(m).filter(e=>!!e).flatMap(e=>Object.values(e.fileContents)))),v=(0,q.O)(o,y);return{title:t.title,characters:t.characters,messages:t.messages,items:u,artifacts:p,artifactFiles:h,artifactVersions:m,artifactFileContents:v}}e.i(818009);var N=e.i(982432);e.i(707060);var L=e.i(387086),U=e.i(357107);function G({value:e,serialize:t,date:a=new Date().toDateString(),name:r,ext:n,mimeType:i,maxFilenameLength:s}){let o=`${r} ${a}${n}`.trim(),l=s&&o.length>s?`${o.slice(0,s-n.length)}${n}`:o,d=new Blob([t(e)],{type:i}),c=URL.createObjectURL(d),u=document.createElement("a");u.setAttribute("href",c),u.setAttribute("download",l),u.style.visibility="hidden",document.body.appendChild(u),u.click(),document.body.removeChild(u),setTimeout(()=>URL.revokeObjectURL(c),4e4)}function B({value:e,name:t}){G({value:e,serialize:e=>JSON.stringify(e,null,2),name:t,ext:".json",mimeType:"application/json"})}function Y(e){(0,N.c)({title:(0,U.q)((0,L.b)("Export Failed")),description:e instanceof Error?e.message:(0,U.q)((0,L.b)("An unexpected error occurred.")),variant:"destructive"})}async function W(e,t){let{roomData:r}=t;if("success"===r.hydrationStatus)return t;let{storageInstanceId:n}=t;if(!n)return t;let{characters:i,messages:s,items:o,artifacts:l}=await a.f.getRoom(n,e),{artifactFiles:d,artifactVersions:c,artifactFileContents:u}=await D({storageInstanceId:n,messages:s,artifacts:l,persistence:a.f});return{roomData:{...r,characters:i,messages:s,artifactIds:Object.keys(l)},allItems:{...t.allItems,...o},artifacts:{...t.artifacts,...l},artifactVersions:{...t.artifactVersions,...c},artifactFiles:{...t.artifactFiles,...d},artifactFileContents:{...t.artifactFileContents,...u},storageInstanceId:n}}async function J({fullState:e,roomIds:t,getName:a},{download:r=B,showError:n=Y}={}){if(0===t.length)return;let{items:i}=V.useItemStore.getState(),s=[];for(let a of t){let t=e.rooms[a];if(!t)continue;let r={roomData:t,allItems:i,artifacts:e.artifacts,artifactVersions:e.artifactVersions,artifactFiles:e.artifactFiles,artifactFileContents:e.artifactFileContents,storageInstanceId:e.storageInstanceId},o=await (0,S.$)(async()=>$(await W(a,r)));if((0,S.V)(o))return void n(o.error);s.push(o.data)}r({value:{version:"orpg.3.0",rooms:s},name:a(s.length)})}let H=(0,t.f)({name:"exportAllData",handler:async({get:e})=>{let t=e();await J({fullState:t,roomIds:Object.keys(t.rooms),getName:()=>"OpenRouter All Chats"})}});e.s(["f",0,H],142422);let Z=(0,t.f)({name:"exportData",handler:async({get:e,payload:{roomId:t}})=>{let a=e(),r=a.rooms[t];if(!r)return;let{items:n}=V.useItemStore.getState();B({value:{version:"orpg.3.0",...await $({roomData:r,allItems:n,artifacts:a.artifacts,artifactVersions:a.artifactVersions,artifactFiles:a.artifactFiles,artifactFileContents:a.artifactFileContents,storageInstanceId:a.storageInstanceId})},name:"OpenRouter Chat"}),(0,p.e)()}});e.s(["f",0,Z],2251);let Q=(0,t.f)({name:"exportManyData",handler:async({get:e,payload:t})=>{let a=e();await J({fullState:a,roomIds:t.roomIds.filter(e=>!!a.rooms[e]),getName:e=>`OpenRouter Chats (${e})`})}});e.s(["f",0,Q],78154);var X=e.i(402020),K=e.i(236911),ee=e.i(427150),et=e.i(948913);function ea(e){return e.startsWith("/9j/")?`data:image/jpeg;base64,${e}`:e.startsWith("UklGR")&&"RUJQ"===e.slice(12,16)?`data:image/webp;base64,${e}`:`data:image/png;base64,${e}`}e.s(["s",0,{Datetime:"openrouter:datetime",WebSearch:"openrouter:web_search",WebFetch:"openrouter:web_fetch",ImageGeneration:"openrouter:image_generation",SearchModels:"openrouter:experimental__search_models",Fusion:"openrouter:fusion",Advisor:"openrouter:advisor",Subagent:"openrouter:subagent",Bash:"openrouter:bash",Shell:"openrouter:shell"},"T",0,function(e){return e.startsWith(et.m)},"F",0,ea],735162);let er=(0,t.f)({name:"exportMarkdown",handler:({get:e,payload:{roomId:t},dependencies:{getEndpointDisplayName:a,gt:r}})=>{let n=e().rooms[t],{items:i}=V.useItemStore.getState();if(!n)return;let s=Object.values(n.messages).sort(R.f),o={};for(let[e,t]of Object.entries(i))(0,X.U)(t.data)&&(o[e]=t.data);G({value:es({gt:r,room:n,messageList:s,characters:n.characters,items:o,getEndpointDisplayName:a}),serialize:e=>e,name:"OpenRouter Chat",ext:".md",mimeType:"text/markdown;charset=utf-8;",maxFilenameLength:100}),(0,p.V)()}}),en=e=>e.flatMap(e=>{let t=V.useItemStore.getState().items[e.id];if(t?.data.type==="message"){if("string"==typeof t.data.content)return[t.data.content];if(Array.isArray(t.data.content))return t.data.content.map(e=>"input_text"===e.type?e.text:"")}return[]}).filter(Boolean).join("\n"),ei=e=>{let t=e.type;switch(t){case"reasoning":return{type:"reasoning",content:e.summary.map(e=>e.text).join("\n\n")};case"message":return{type:"message",content:e.content.filter(e=>"output_text"===e.type).map(e=>e.text).join("\n\n")};case"image_generation_call":return e.result?{type:"other",content:`![Generated Image](${e.result})`}:null;case"function_call":return{type:"other",content:`\`\`\` Tool Call: ${e.name}(${e.arguments??""}) \`\`\``};case"file_search_call":case"web_search_call":return null;default:if("string"==typeof t&&t.startsWith("openrouter:")){let t="openrouter:image_generation"!==e.type?null:"string"==typeof e.imageUrl?e.imageUrl:"string"==typeof e.result&&e.result.length>0?e.result.includes("://")?e.result:ea(e.result):"string"==typeof e.imageB64&&e.imageB64.length>0?ea(e.imageB64):null;if(t)return{type:"message",content:`![Generated Image](${t})`}}return null}},es=({gt:e,room:t,messageList:a,characters:r,getEndpointDisplayName:n,items:i})=>{let s=a.map(t=>{let a,s,o,l,d,c=((e,t,a,r)=>{let n=t.type;switch(n){case"user":return e("**User - {name}**",{name:a[t.characterId]?.name??r({slug:a[t.characterId]?.model,providerName:a[t.characterId]?.provider})});case"assistant":return e("**Assistant - {name}**",{name:a[t.characterId]?.name??r({slug:a[t.characterId]?.model,providerName:a[t.characterId]?.provider})});case"system":return e("**System - System**");default:(0,K.f)(n)}})(e,t,r,n);if("system"===t.type){let e=en(t.items??[]);return e?[c,e].join("\n\n"):c}return[c,..."user"===t.type?(e=>{let t=[],a=en(e.items??[]);if(a&&t.push(a),e.attachments?.length){let a=e.attachments.map(e=>e.url??e.content).filter(ee.f).join("\n\n");t.push(`### Attachments ${a}`)}return t})(t):(s=(a=(t.items??[]).map(e=>i[e.id]).filter(ee.f).map(ei).filter(ee.f)).filter(e=>"reasoning"===e.type).map(e=>e.content).join("\n\n").trim(),o=a.filter(e=>"message"===e.type).map(e=>e.content).join("\n\n").trim(),l=a.filter(e=>"other"===e.type).map(e=>e.content).join("\n\n"),d=[],s&&d.push(`### Reasoning ${s}`),o&&d.push(o),l&&d.push(l),d)].join("\n\n")});return[`# ${t?.title||e("Chat {timestamp}",{timestamp:new Date().toISOString()})}`,...s].join("\n\n")};e.s(["f",0,er],241859),e.i(798823);var eo=e.i(154820),el=e.i(55569),ed=e.i(454785),ec=e.i(911585),eu=e.i(44539);function ep(e,t){let a=new Map,n={};for(let i of Object.values(e)){let e=(0,r.f)({...i,id:void 0,createdAt:t,updatedAt:t});a.set(i.id,e.id),n[e.id]=e}return{newCharacters:n,charIdMap:a}}function ef(e,t,a){let{sourceArtifacts:r,sourceArtifactFiles:n,sourceArtifactVersions:i,sourceArtifactFileContents:s}=e,o=new Map,l=new Map,d=new Map,c=new Map,u={},p={},f={},m={};for(let e of Object.values(n).filter(e=>!!e)){let{id:t,createdAt:a,updatedAt:r,...n}=e,i=(0,eu.f)(n);l.set(t,i.id),u[i.id]=i}for(let e of Object.values(s).filter(e=>!!e)){let{id:t,createdAt:a,...r}=e,n=(0,eu.p)(r);c.set(t,n.id),p[n.id]=n}let g=Object.values(r).filter(e=>!!e);for(let e of g){let t,a=e.fileIds.map(e=>l.get(e)).filter(e=>!!e),{id:r,createdAt:n,updatedAt:i,...s}=e;t="app"===s.type?(0,eu.L)({...s,fileIds:a,entrypointFileId:s.entrypointFileId?l.get(s.entrypointFileId):void 0}):(0,eu.V)({...s,fileIds:a}),o.set(r,t.id),f[t.id]=t}let h=new Map;for(let e of g){let t=[e.headVersionId],a=new Set;for(;t.length>0;){let r=t.pop();if(!r||a.has(r))continue;a.add(r);let n=i[r];n&&(h.set(r,e.id),n.parentVersionId&&t.push(n.parentVersionId))}}for(let e of Object.values(i).filter(e=>!!e).sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime())){let{id:r,createdAt:n,...i}=e,s=i.artifactId??h.get(r);if(!s||!o.get(s))continue;let u={};for(let[e,t]of Object.entries(i.fileContents)){let a=l.get(e),r=c.get(t);a&&r&&(u[a]=r)}let p=(0,eu.Y)({...i,artifactId:i.artifactId,characterId:t.get(i.characterId),parentVersionId:i.parentVersionId?d.get(i.parentVersionId):void 0,generatingMessageId:i.generatingMessageId?a.get(i.generatingMessageId):void 0,fileContents:u});d.set(r,p.id);let y=g.find(e=>e.headVersionId===r);if(y){let e=o.get(y.id);e&&f[e]&&(f[e].headVersionId=p.id)}m[p.id]=p}return{newArtifacts:f,newArtifactFiles:u,newArtifactVersions:m,newArtifactFileContents:p,artifactIdMap:o,versionIdMap:d}}async function em(e,t,r){let n=(0,C.C)(eo.j,t);if((0,S.V)(n))return(0,S.Y)("Could not validate room data before saving.");let i=await (0,S.$)(()=>Promise.all([a.f.saveRoom(e,n.data),a.f.saveCharacters(e,t.id,Object.values(t.characters)),a.f.saveMessages(e,t.id,Object.values(t.messages)),a.f.saveArtifacts(e,t.id,Object.values(r.artifacts)),a.f.saveArtifactFiles(e,Object.values(r.artifactFiles)),a.f.saveArtifactVersions(e,Object.values(r.artifactVersions)),a.f.saveArtifactFileContents(e,Object.values(r.artifactFileContents))]));return(0,S.V)(i)?(0,S.Y)(`Persistence failed: ${i.error instanceof Error?i.error.message:"Unknown error"}`):(0,S.N)(void 0)}async function eg({set:e,namespace:t,newRoomData:a,newArtifactData:r}){let n=await em(t,a,r);return(0,S.V)(n)?n:(e(e=>{e.rooms[a.id]=a,Object.assign(e.artifacts,r.artifacts),Object.assign(e.artifactFiles,r.artifactFiles),Object.assign(e.artifactVersions,r.artifactVersions),Object.assign(e.artifactFileContents,r.artifactFileContents)}),(0,S.N)(void 0))}e.s(["L",0,ef,"s",0,ep,"T",0,function({sourceMessages:e,charIdMap:t,artifactIdMap:a,versionIdMap:r,now:n,msgIdMap:i,itemIdMap:s}){let l={};for(let d of Object.values(e).sort(R.f)){let e=i.get(d.id)??(0,j.L)(j.I.Message),c=function({oldCharacterId:e,userCharacterId:t,systemCharacterId:a,deletedCharacterId:r,charIdMap:n}){return(0,o.P)(e)?t:(0,o.p)(e)?a:n.get(e)??r}({oldCharacterId:d.characterId,userCharacterId:o.d.id,systemCharacterId:o.m.id,deletedCharacterId:o.s.id,charIdMap:t}),u=(d.items??[]).map(e=>({...e,id:s.get(e.id)})).filter(e=>!!e.id);if("user"===d.type){let t=d.artifactId?a.get(d.artifactId):void 0,s=d.versionContextId?r.get(d.versionContextId):void 0,o=(0,z.O)({id:e,artifactId:t,characterId:c,context:d.context,contentType:d.contentType,parentMessageId:d.parentMessageId?i.get(d.parentMessageId):void 0,createdAt:d.createdAt?new Date(d.createdAt):n,updatedAt:d.updatedAt?new Date(d.updatedAt):n,versionContextId:s,items:u,requestOverrides:d.requestOverrides});l[e]=o;continue}if("system"===d.type){let t=(0,z.q)({id:e,characterId:c,items:u,context:d.context,contentType:d.contentType,parentMessageId:d.parentMessageId?i.get(d.parentMessageId):void 0,createdAt:d.createdAt?new Date(d.createdAt):n,updatedAt:d.updatedAt?new Date(d.updatedAt):n});l[e]=t;continue}let p=d.artifactId?a.get(d.artifactId):void 0,f=d.versionContextId?r.get(d.versionContextId):void 0,m=(0,z.h)({id:e,characterId:c,context:d.context,contentType:d.contentType,parentMessageId:d.parentMessageId?i.get(d.parentMessageId):void 0,versionContextId:f,artifactId:p,isGenerating:!1,items:u,createdAt:d.createdAt?new Date(d.createdAt):n,updatedAt:d.updatedAt?new Date(d.updatedAt):n,metadata:d.metadata??null,requestOverrides:d.requestOverrides});l[e]=m}return{newMessages:l,msgIdMap:i}},"Z",0,eg,"v",0,function(e,t){let a=(0,q.O)(e.artifacts,t),r=Object.values(a).filter(e=>!!e).flatMap(e=>e.fileIds),n=(0,q.O)(e.artifactFiles,r),i=new Set,s=[...Object.values(a).filter(e=>!!e).map(e=>e.headVersionId).filter(e=>!!e)],o=new Set;for(;s.length>0;){let t=s.pop();if(!t||o.has(t))continue;o.add(t),i.add(t);let a=e.artifactVersions[t];a?.parentVersionId&&s.push(a.parentVersionId)}let l=(0,q.O)(e.artifactVersions,Array.from(i)),d=Object.values(l).filter(e=>!!e).flatMap(e=>Object.values(e.fileContents));return{sourceArtifacts:a,sourceArtifactFiles:n,sourceArtifactVersions:l,sourceArtifactFileContents:(0,q.O)(e.artifactFileContents,d)}}],10700);let eh=(0,t.f)({name:"importData",handler:async({get:e,set:t,payload:{roomId:r}})=>{let n=await new Promise(e=>{let t=document.createElement("input");t.type="file",t.multiple=!1,t.accept="application/json,text/json",t.addEventListener("change",async t=>{let a=t.target,r=a.files?.item(0);if(!r)return void e(null);let n=await r.text(),i=(0,el.N)(n);"string"==typeof i?e(null):e(i)}),t.click()});if(!n)return;if(Array.isArray(n.rooms))return void(0,N.c)({title:(0,U.q)((0,L.b)("Import Failed")),description:(0,U.q)((0,L.b)("This file contains multiple chats and cannot be imported into a single room. Please import individual chat exports instead.")),variant:"destructive"});let i=(0,C.C)(eo.d,n);if((0,S.V)(i))return void(0,N.c)({title:(0,U.q)((0,L.b)("Import Failed")),description:(0,U.q)((0,L.b)("The file could not be repaired.")),variant:"destructive"});let s=i.data,{createdItems:l,messagesToPersist:d}=a.f.migrateMessagesToItemFormat(s.messages,{},{}),c={...s.items,...l};d.forEach(e=>{s.messages[e.id]=e});let u=new Date,{newCharacters:f,charIdMap:m}=ep(s.characters,u),g=new Map;for(let e in s.messages)Object.hasOwn(s.messages,e)&&g.set(e,(0,j.L)(j.I.Message));let{newArtifacts:h,newArtifactFiles:y,newArtifactVersions:v,newArtifactFileContents:I,artifactIdMap:b,versionIdMap:w}=ef({sourceArtifacts:s.artifacts,sourceArtifactFiles:s.artifactFiles,sourceArtifactVersions:s.artifactVersions,sourceArtifactFileContents:s.artifactFileContents},m,g),{newMessages:_,newItems:A}=function({sourceMessages:e,sourceItems:t,charIdMap:a,artifactIdMap:r,versionIdMap:n,now:i,msgIdMap:s}){let l={},d=Object.values(e).sort(R.f),{itemIdMap:c,newItems:u}=function(e){let t=new Map,a={};for(let a in e)Object.hasOwn(e,a)&&t.set(a,(0,j.L)(j.I.AssistantMessageItem));for(let r in e){if(!Object.hasOwn(e,r))continue;let n=e[r];if(!n)continue;let i=t.get(r);a[i]={...n,id:i}}return{itemIdMap:t,newItems:a}}(t);for(let e of d){let t=function({oldMsg:e,msgIdMap:t,charIdMap:a,now:r}){var n;let i=t.get(e.id),s=(n=e.characterId,(0,o.P)(n)?o.d.id:(0,o.p)(n)?o.m.id:a.get(n)??o.s.id),l=e.parentMessageId?t.get(e.parentMessageId):void 0;return{newMsgId:i,newCharacterId:s,parentMessageId:l,createdAt:e.createdAt?new Date(e.createdAt):r,updatedAt:e.updatedAt?new Date(e.updatedAt):r}}({oldMsg:e,msgIdMap:s,charIdMap:a,now:i});if("user"===e.type){let a=function({oldMsg:e,commonData:t,artifactIdMap:a,versionIdMap:r,itemIdMap:n}){let i=e.artifactId?a.get(e.artifactId):void 0,s=e.versionContextId?r.get(e.versionContextId):void 0,o=(e.items??[]).map(e=>({...e,id:n.get(e.id)})).filter(e=>!!e.id);return{...(0,z.O)({...e,id:t.newMsgId,artifactId:i,characterId:t.newCharacterId,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt,versionContextId:s,content:e.content}),items:o}}({oldMsg:e,commonData:t,artifactIdMap:r,versionIdMap:n,itemIdMap:c});l[t.newMsgId]=a;continue}if("system"===e.type){let a=(e.items??[]).map(e=>({...e,id:c.get(e.id)})).filter(e=>!!e.id),r=(0,z.q)({id:t.newMsgId,characterId:t.newCharacterId,items:a,context:e.context,contentType:e.contentType,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt});l[t.newMsgId]=r;continue}let d=function({assistantMsg:e,commonData:t,artifactIdMap:a,versionIdMap:r,itemIdMap:n}){let i=e.artifactId?a.get(e.artifactId):void 0;return(0,z.h)({...e,id:t.newMsgId,characterId:t.newCharacterId,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt,artifactId:i,versionContextId:e.versionContextId?r.get(e.versionContextId):void 0,items:(e.items??[]).map(e=>({...e,id:n.get(e.id)})).filter(e=>!!e.id)})}({assistantMsg:e,commonData:t,artifactIdMap:r,versionIdMap:n,itemIdMap:c});l[t.newMsgId]=d}return{newMessages:l,newItems:u,msgIdMap:s}}({sourceMessages:s.messages,sourceItems:c,charIdMap:m,artifactIdMap:b,versionIdMap:w,now:u,msgIdMap:g}),x=e().rooms[r];if(!x)return void(0,N.c)({title:(0,U.q)((0,L.b)("Import Error")),description:(0,U.q)((0,L.b)("Could not find the target room to import into.")),variant:"destructive"});let M=Object.values(_).sort(R.f).find(e=>"user"===e.type),k=(M&&"content"in M?M.content:void 0)??"",O=!!(s.title||x.title&&x.title!==o.l),T=s.title||x.title||(0,ec.f)(k)||o.l,F={id:x.id,title:T,createdAt:x.createdAt,updatedAt:new Date,lastActivityAt:new Date,version:x.version,isPinned:x.isPinned,characters:f,messages:_,isProcessing:!1,sortedMessageIds:Object.values(_).sort(R.f).map(e=>e.id),hydrationStatus:"success",hydrationError:null,artifactIds:Object.keys(h)},E=e().storageInstanceId;if(!E)return void(0,N.c)({title:(0,U.q)((0,L.b)("Import Error")),description:(0,U.q)((0,L.b)("Namespace not found."))});await a.f.clearRoomContents(E,r);let P=await eg({set:t,namespace:E,newRoomData:F,newArtifactData:{artifacts:h,artifactFiles:y,artifactVersions:v,artifactFileContents:I}});if((0,S.V)(P))return void(0,N.c)({title:(0,U.q)((0,L.b)("Import Error")),description:P.error,variant:"destructive"});await a.f.saveItems(E,F.id,Object.values(A)),!O&&k&&(0,ed.f)({get:e},{roomId:F.id,messageContent:k}),t(e=>{e.artifacts={...e.artifacts,...h},e.artifactFiles={...e.artifactFiles,...y},e.artifactVersions={...e.artifactVersions,...v},e.artifactFileContents={...e.artifactFileContents,...I}});let{items:D,actions:q}=V.useItemStore.getState();q.loadItems({...D,...A}),(0,N.c)({title:(0,U.q)((0,L.b)("Import Successful")),description:(0,U.q)((0,L.b)('The room "{title}" has been updated.',{title:F.title}))}),(0,p.x)()}});e.s(["f",0,eh],889854);let ey=(0,t.f)({name:"markToolAsUserConfigured",handler:({set:e,payload:t})=>{e(e=>{e.userConfiguredToolIds.includes(t.toolId)||e.userConfiguredToolIds.push(t.toolId)})}});e.s(["f",0,ey],599227);var ev=e.i(473028),eI=e.i(559505),eb=e.i(888427);let ew=(0,C.j)(eb.c);function e_(e,t){return e.filter(e=>e.context===t).sort(R.f)}function eA(e,t){return!!e.createdAt&&!!t.createdAt&&e.createdAt=o.D)return e;let a=e.flatMap((e,t)=>"user"===e.message.type?[t]:[]);if(a.length<=t)return e;let r=a[a.length-t];return void 0===r?e:r>0&&e[r-1]?.message.type==="assistant"?e.slice(r-1):e.slice(r)}(a.filter(e=>"system"===e.type||"user"===e.type||e.characterId===s.id).filter(e=>"artifact"!==e.contentType).flatMap(t=>{if("system"===t.type){let e=function(e,t){for(let a of e.items??[]){let e=t[a.id];if(e?.data.type!=="message"||"system"!==e.data.role)continue;let r=e.data.content;if(!Array.isArray(r))continue;let n=r[0];if(n?.type==="input_text"&&n.text.trim())return{role:eI.f.System,type:"message",content:n.text}}return null}(t,r);return e?[{payload:e,message:t}]:[]}if("user"===t.type)return[{payload:function(e,t){let a=[];for(let r of e.items??[]){let e=t[r.id];if(e?.data.type!=="message"||"user"!==e.data.role)continue;let n=e.data.content;if(Array.isArray(n))for(let e of n)switch(e.type){case"input_text":a.push({type:"input_text",text:e.text});break;case"input_image":if(!e.image_url)break;a.push({type:"input_image",image_url:e.image_url,detail:e.detail??"auto"});break;case"input_audio":{let t=e.input_audio.data,r=t;if((0,ev.i)(t)){let e=(0,ev.k)(t);(0,S.C)(e)&&(r=e.data.base64)}a.push({type:"input_audio",input_audio:{data:r,format:e.input_audio.format}});break}case"input_file":a.push({type:"input_file",file_id:e.file_id,file_data:e.file_data,filename:e.filename});break;case"input_video":if(!e.video_url)break;a.push({type:"input_video",video_url:e.video_url})}}return{role:eI.f.User,type:"message",content:a}}(t,r),message:t}];let a=e[t.characterId];return(function(e,t,a){let r,n,i,s=[],o=a?.name?(r=a.name,n=a.modelInfo?.permaslug,n?.split("/")[0]==="openai"?((i=r.replaceAll(/[^a-zA-Z0-9_]/g," ").split(" ").filter(Boolean).join("_")).length>64&&(i=i.substring(0,64)),i):r):void 0;for(let a of e.items??[]){let e=t[a.id];if(!e)continue;let r=e.data;switch(r.type){case"message":{let e="";if(Array.isArray(r.content)){let t=r.content[0];t?.type==="output_text"&&(e=t.text)}else"string"==typeof r.content&&(e=r.content);let t=o?`${o}: ${e}`:e;t.trim()&&s.push({role:eI.f.Assistant,type:"message",content:t});break}case"reasoning":s.push(r);break;default:ew(r)&&s.push(r)}}return s})(t,r,a).map(e=>({payload:e,message:t}))}),n);i[s.id]=t}return i})({charactersDict:e.charactersDict,charactersList:[e.character],messagesList:e.messagesList,memoryCount:e.memoryCount,itemsMap:e.itemsMap})[e.character.id]??[]).map(e=>e.payload)},"r",0,e_,"p",0,function(e,t){let a=e_(e,t.context),r=void 0===t.parentMessageId?-1:a.findIndex(e=>e.id===t.parentMessageId);return -1!==r?a.slice(0,r+1):a.filter(e=>eA(e,t))},"Q",0,function(e,t){return[...e_(e,t.context).filter(e=>eA(e,t)),t]}],57461),e.s(["f",0,function(e){return(0,ee.f)(e.modelInfo)&&e.modelInfo.output_modalities.includes("image")&&1===e.modelInfo.output_modalities.length}],250468)},585131,508372,479775,882026,9558,231242,937643,619045,676516,166862,964076,60065,104660,177752,341049,652061,447293,684095,658043,474331,631797,853649,142083,87903,825706,555750,856861,282207,529528,210213,142423,197832,430497,432197,9782,10031,816870,202351,631760,607701,e=>{"use strict";e.i(818009);var t=e.i(982432),a=e.i(497214);e.i(707060);var r=e.i(387086),n=e.i(447680),i=e.i(735961),s=e.i(357107),o=e.i(286709),l=e.i(622817),d=e.i(463444),c=e.i(44745),u=e.i(25551),p=e.i(347586),f=e.i(57461),m=e.i(579841),g=e.i(134611),h=e.i(367765),y=e.i(422973),v=e.i(944946),I=e.i(647204),b=e.i(427150),w=e.i(506050),_=e.i(67089),A=e.i(549692),x=e.i(250468),S=e.i(161273),C=e.i(624621),M=e.i(624665),k=e.i(250464),O=e.i(212595),j=e.i(310977),z=e.i(100176),T=e.i(713437),R=e.i(346798),F=e.i(402020),V=e.i(625025),E=e.i(586906),P=e.i(826735),D=e.i(528783),q=e.i(19222),$=e.i(241782);let N={Completed:"completed",Failed:"failed",Unavailable:"unavailable",Aborted:"aborted",Unfinished:"unfinished"};async function L({pollingUrl:e,referrer:t,abortController:a,onStatus:n,sleep:i=J}){let o=0,l=!1;for(let d=0;d<$.L;d++){if(d>0&&await i($.H),a.signal.aborted)return{kind:N.Aborted};let c=await Y({pollingUrl:e,referrer:t,abortController:a});if(a.signal.aborted)return{kind:N.Aborted};if(c.kind!==G.Job){if(o++,l||=c.kind===G.Absent,o>=$.T)return{kind:l?N.Unavailable:N.Unfinished};continue}o=0,l=!1;let u=c.job;switch(u.status){case"completed":return{kind:N.Completed,cost:W(u.usage?.cost),generationId:u.generation_id,expiresAt:u.expires_at};case"failed":case"cancelled":case"expired":return{kind:N.Failed,errorMessage:u.error??(0,s.q)((0,r.b)("Video generation {status}",{status:u.status}))};case"in_progress":n("processing");break;case"pending":n("queued");break;default:u.status}}return{kind:N.Unfinished}}async function U({pollingUrl:e,referrer:t,abortController:a,sleep:r=J}){for(let n=0;n<$.e&&(await r($.G),!a.signal.aborted);n++){let r=await Y({pollingUrl:e,referrer:t,abortController:a}),n=W(r.kind===G.Job?r.job.usage?.cost:void 0);if(void 0!==n)return n}}let G={Job:"job",Absent:"absent",Unreadable:"unreadable"},B=new Set([404]);async function Y({pollingUrl:e,referrer:t,abortController:a}){let r=await fetch(e,{signal:a.signal,referrer:t,headers:{"HTTP-Referer":t,"X-OpenRouter-Title":"OpenRouter: Chatroom"}}).catch(()=>null);if(!r)return{kind:G.Unreadable};if(!r.ok)return await r.body?.cancel().catch(()=>null),{kind:B.has(r.status)?G.Absent:G.Unreadable};let n=await r.json().catch(()=>void 0);return n?{kind:G.Job,job:n}:{kind:G.Unreadable}}function W(e){return"number"==typeof e?e:void 0}function J(e){return new Promise(t=>{setTimeout(t,e)})}async function H({itemId:e,messageId:t,jobId:a,referrer:r,itemActions:n,abortController:i,sleep:s}){if(!(0,q.a)(e,i))return null;let o=null,l=(r,s)=>{r===o||i.signal.aborted||(o=r,n.upsertItem({id:e,messageId:t,data:{type:F.G,id:e,status:r,jobId:a,...void 0!==s?{expiresAt:s}:{}}}))};try{let e=await L({pollingUrl:(0,D.Y)(a),referrer:r,abortController:i,sleep:s,onStatus:l}),t=function(e){switch(e.kind){case N.Completed:return"completed";case N.Failed:case N.Unavailable:return"failed";case N.Unfinished:case N.Aborted:default:return null}}(e);return t&&l(t,e.kind===N.Completed?e.expiresAt:void 0),e}finally{(0,q.W)(e,i)}}function Z({roomId:e,messageId:t,jobId:a,referrer:r,getStoreState:n,abortController:i}){U({pollingUrl:(0,D.Y)(a),referrer:r,abortController:i}).then(a=>(function({roomId:e,messageId:t,cost:a,getStoreState:r}){if(void 0===a)return;let n=Q({roomId:e,messageId:t,getStoreState:r});n&&r().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{metadata:{...n.metadata,cost:a.toString()}}}})})({roomId:e,messageId:t,cost:a,getStoreState:n}))}function Q({roomId:e,messageId:t,getStoreState:a}){let r=a().rooms[e]?.messages[t];return r?.type==="assistant"?r:null}e.s(["i",0,N,"q",0,U,"a",0,L],508372),e.s(["f",0,H],479775),e.s(["S",0,Z,"v",0,function({roomId:e,messageId:t,generationId:a,cost:r,getStoreState:n}){let i=Q({roomId:e,messageId:t,getStoreState:n});i&&n().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:{...i.metadata,...(0,V.S)({generationId:a,cost:void 0===r?void 0:r.toString()})}}}})}],882026);var X=e.i(59137),K=e.i(104913);async function ee({roomId:e,botMessage:t,character:a,inputItems:r,storeState:n,getStoreState:i,abortController:s,deps:o}){let l=t.id,d=a.modelInfo?(0,g.i)(a.modelInfo):a.model,c=(0,K.g)({name:"sendVideoGen",roomId:e,botMessage:t,storeActions:n.actions,getStoreState:i}),u=(0,X.W)(r);if(!u.trim())return c.fail("Enter a prompt to generate a video");let p=(0,X.$)(r),f=`${location.origin}${location.pathname}`,m=Date.now(),h=await fetch("/api/v1/videos",{signal:s.signal,referrer:f,method:"POST",headers:{"Content-Type":"application/json","HTTP-Referer":f,"X-OpenRouter-Title":"OpenRouter: Chatroom"},body:JSON.stringify((0,V.S)({model:d,prompt:u,input_references:p.length>0?p:void 0}))}).catch(()=>null);if(s.signal.aborted)return await h?.body?.cancel().catch(()=>null),c.abort();if(!h)return c.fail("Failed to submit video generation request");if(!h.ok){let e=await h.text().catch(()=>"");return c.fail((0,R.f)(e)??"Video generation failed",h.status)}let y=await h.json().catch(()=>void 0);if(s.signal.aborted)return c.abort();if(!y)return c.fail("Invalid video generation response");let v=y.id,b=(0,E.L)(E.I.Item),w=await o.getItemStore();w.actions.upsertItem((0,P.f)({id:b,messageId:l,data:{type:F.G,id:b,status:"queued",jobId:v}})),await n.actions.appendItemIdToMessage({payload:{roomId:e,messageId:l,itemId:b,outputIndex:0,type:F.G}});let _=c.withPlaceholder({itemId:b,itemActions:w.actions}),A=await H({itemId:b,messageId:l,jobId:v,referrer:f,itemActions:w.actions,abortController:s});if(null===A||A.kind===N.Unfinished)return function({roomId:e,messageId:t,botMessage:a,getStoreState:r}){return r().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1}}}),Promise.resolve((0,I.N)((0,K.U)({roomId:e,botMessage:a,getStoreState:r})))}({roomId:e,messageId:l,botMessage:t,getStoreState:i});switch(A.kind){case N.Aborted:return _.abort();case N.Failed:return _.fail(A.errorMessage);case N.Unavailable:return _.fail("Video generation job is no longer available");case N.Completed:{let t=_.settle({variantSlug:d,generationId:A.generationId,cost:A.cost,startedAt:m});return void 0===A.cost&&Z({roomId:e,messageId:l,jobId:v,referrer:f,getStoreState:i,abortController:s}),t}default:return _.abort()}}var et=e.i(801014),ea=e.i(10758),er=e.i(456962),en=e.i(31752),ei=e.i(904849),es=e.i(425493),eo=e.i(342837);async function el(e){let{roomId:a,messageId:n,error:i,wasCancelled:o,storeActions:l,getStoreState:d,getItemStore:c,trackError:u}=e;if(l.updateMessage({payload:{roomId:a,messageId:n,partialMessage:{isGenerating:!1,isRetrying:!1}}}),(0,ei.K)({roomId:a,messageId:n,itemStore:await c(),getStoreState:d}),o)return void(0,t.c)({title:(0,s.q)((0,r.b)("Request cancelled"))});if((0,er.f)(i))return void l.setShowInsufficientCreditsModal({payload:{show:!0}});let p=(0,et.C)(i,s.q)??(0,ea.o)(i);(function({error:e,failureText:t,trackError:a}){let r;(void 0===(r=(0,es.y)(e))||r===eo.g.S502_Bad_Gateway)&&a(Error(t),{source:"sendToCharacter",filename:"send-to-character.ts",context:{errorResult:e}})})({error:i,failureText:p,trackError:u}),await (0,en.f)({roomId:a,messageId:n,errorMessage:p,storeActions:l,getStoreState:d})}let ed={getItemStore:async function(){let{useItemStore:t}=await e.A(266595);return t.getState()},prepareApiRequest:k.a,streamLanguageModelResponse:h.m,trackError:y.P},ec=async({payload:{roomId:e,character:t,inputItems:a,targetBotMessage:r,parentMessageId:n,createdAt:i,requestOverrides:s},dependencies:{get:o,abortController:d},deps:c=ed})=>{var u;let p=o(),f=s?.image_config||s?.modalities?{image_config:s.image_config,modalities:s.modalities}:void 0,h=r??p.actions.createBotPlaceholder({payload:{roomId:e,character:t,parentMessageId:n??"",createdAt:i,requestOverrides:f}});if((0,l.n)(t))return(0,z.f)({roomId:e,botMessage:h,character:t,inputItems:a,storeState:p,getStoreState:o,abortController:d,deps:c,isRetry:void 0!==r});let y=p.tools,w=y?.webSearch.enabled===!0,_=y?.webFetch.enabled===!0,R=y?.fusion.enabled===!0,F=y?.advisor.enabled===!0,V=t.modelInfo?(0,g.i)(t.modelInfo):t.model,E=(0,b.f)(V)&&(0,v.f)(V)||R&&(0,k.j)(p,t).some(e=>"openrouter:fusion"===e.type),P=w||_||R||F||E,D=()=>({...w&&{webSearchEngine:y?.webSearch.parameters.engine},..._&&{webFetchEngine:y?.webFetch.parameters.engine},...F&&{advisor:{advisors:y?.advisor.parameters.advisors?.map(e=>({name:e.name,model:e.model}))}}});r?p.actions.updateMessage({payload:{roomId:e,messageId:h.id,partialMessage:{isRetrying:!0,metadata:{...h.metadata,serverTools:D(),routerMetadata:void 0,requestedModel:V,routingPresetName:(0,S.f)(t),isFusionResponse:E||void 0}}}}):P&&p.actions.updateMessage({payload:{roomId:e,messageId:h.id,partialMessage:{metadata:{...h.metadata,serverTools:D(),...E&&{isFusionResponse:!0}}}}});let q=(0,x.f)(t),$=(u=t,(0,b.f)(u.modelInfo)&&(0,m.W)(u.modelInfo.output_modalities));if((0,T.r)(t))return(0,T.J)({roomId:e,botMessage:h,character:t,inputItems:a,requestOverrides:s,storeState:p,get:o,abortController:d,deps:c,isWebSearchEnabled:w,isWebFetchEnabled:_,isFusionEnabled:R,isAdvisorEnabled:F});if(q)return(0,j.f)({roomId:e,botMessage:h,character:t,inputItems:a,storeState:p,getStoreState:o,abortController:d,deps:c});if($)return ee({roomId:e,botMessage:h,character:t,inputItems:a,storeState:p,getStoreState:o,abortController:d,deps:c});let N=c.prepareApiRequest({character:t,inputItems:a,storeState:p,roomId:e,options:{includeDefaultSystemPrompt:!0,includeEnforcedSystemPrompt:!0},requestOverrides:s});if(!N)return(0,A.O)({location:"sendToCharacter",rawError:"Failed to prepare API request. Model info may be missing."});let L=await (0,O.f)({roomId:e,botMessage:h,request:N,signal:d.signal,getStoreState:o,itemStore:await c.getItemStore()});switch(L.status){case"aborted":return ep(L.persistence),await el({roomId:e,messageId:h.id,error:eu(),wasCancelled:!0,storeActions:p.actions,getStoreState:o,getItemStore:c.getItemStore,trackError:c.trackError}),(0,I.Y)(eu());case"failed":return ep(L.persistence),await el({roomId:e,messageId:h.id,error:L.error,wasCancelled:!1,storeActions:p.actions,getStoreState:o,getItemStore:c.getItemStore,trackError:c.trackError}),(0,I.Y)(L.error);case"finished":{let{isChatNotificationsEnabled:e}=C.f.getState();return e&&(0,M.i)(t.modelInfo?.name),(0,I.N)({response:null,outputMessage:L.message})}default:return L}};function eu(){return(0,A.n)({location:"sendToCharacter:abort",rawError:"Request cancelled"})}function ep(e){(0,I.V)(e)&&(0,_.L)("chatroom_turn_items_not_persisted",{item_count:e.error.itemIds.length,...(0,w.s)(e.error.error)})}let ef=(0,o.f)({name:"retryMessage",handler:async({get:e,set:o,payload:{roomId:m,messageId:g}})=>{let h,y=e().rooms[m];if(!y)return;let v=y.messages[g];if(!v||"system"===v.type)return;o(e=>{let t=e.rooms[m];t&&(t.updatedAt=new Date,h=(0,u.f)(t))});let I=e().storageInstanceId;I&&h&&await n.f.saveRoom(I,h);let b="user"===v.type;o(e=>{let t=e.rooms[m];t&&(t.messages[g]&&(t.messages[g].isRetrying=!0),b&&(t.isProcessing=!0))});try{if("user"===v.type){let n=v.requestOverrides,o={...e(),currentRoomId:m},l=(0,d.Q)(o),u=n?.modalities?.includes("image"),g=u?l.filter(e=>e.modelInfo?.output_modalities?.includes("image")):l;if(u&&0===g.length)return void(0,t.c)({title:(0,s.q)((0,r.b)("No image-capable models available")),description:(0,s.q)((0,r.b)("Please add a model that supports image generation to retry this request.")),variant:"destructive"});let{messagesToUpdate:h,charactersNeedingNewMessage:I}=function(e){let t=[...e.allMessages].sort(c.f),r=t.findIndex(t=>t.id===e.retryingUserMessage.id);if(-1===r)return{messagesToUpdate:[],charactersNeedingNewMessage:e.activeCharacters};let n=(0,a.C)(t.slice(r+1),e=>"user"!==e.type),i=[...n],s=new Set(n.map(e=>"assistant"===e.type?e.characterId:null).filter(Boolean));return{messagesToUpdate:i,charactersNeedingNewMessage:e.activeCharacters.filter(e=>!s.has(e.id))}}({allMessages:Object.values(y.messages),retryingUserMessage:v,activeCharacters:g}),b=h.map(t=>e().actions.retryMessage({payload:{roomId:m,messageId:t.id}})),w=I.map(async t=>{let a=(0,f.m)({charactersDict:y.characters,character:t,messagesList:(0,f.Q)(Object.values(e().rooms[m]?.messages??{}),v),memoryCount:e().chatMemoryCount,itemsMap:i.useItemStore.getState().items}),r=n??{};await p.f.current.withController(n=>ec({payload:{roomId:m,character:t,inputItems:a,parentMessageId:v.id,requestOverrides:r},dependencies:{get:e,abortController:n}}))});await Promise.all([...b,...w])}else{let a=y.characters[v.characterId];if(a&&(0,l.n)(a))return void(0,t.c)({title:(0,s.q)((0,r.b)("Retry isn't available for interns yet")),description:(0,s.q)((0,r.b)("Send the message again to get a new reply.")),variant:"destructive"});if(a&&!a.isRemoved&&!a.isDisabled){let t=(v.items??[]).map(e=>e.id);t.length>0&&(i.useItemStore.getState().actions.deleteItems(t),I&&await n.f.deleteItems(I,t));let r=function(e,t){if("system"!==e.type){if(e.requestOverrides)return e.requestOverrides;if("assistant"===e.type&&e.parentMessageId){let a=t[e.parentMessageId];if(a?.type==="user")return a.requestOverrides}}}(v,y.messages);await e().actions.updateMessage({payload:{roomId:m,messageId:v.id,partialMessage:{isGenerating:!0,items:[],requestOverrides:r}}});let s=(0,f.m)({charactersDict:y.characters,character:a,messagesList:(0,f.p)(Object.values(y.messages),v),memoryCount:e().chatMemoryCount,itemsMap:i.useItemStore.getState().items}),o=r??{};await p.f.current.withController(t=>ec({payload:{roomId:m,character:a,inputItems:s,targetBotMessage:v,requestOverrides:o},dependencies:{get:e,abortController:t}}))}}}finally{o(e=>{let t=e.rooms[m];t&&(t.messages[g]&&(t.messages[g].isRetrying=!1),b&&(t.isProcessing=!1))})}}});e.s(["f",0,ef],585131);var em=e.i(674896),eg=e.i(45999),eh=e.i(559505),ey=e.i(700050),ev=e.i(295654),eI=e.i(847893),eb=e.i(170993),ew=e.i(454785),e_=e.i(911585);let eA=(0,o.f)({name:"sendMessage",handler:async({get:e,set:t,payload:{roomId:a,isSignedIn:r,content:s,attachments:o,defaultModelSlug:l},dependencies:{router:d,getModelInfoByVariantSlug:p,resetComposer:f}})=>{(0,ey.L)({roomId:a,isSignedIn:r,attachmentCount:o.length}),e().actions.setShouldStickToBottom({payload:{stick:!0}});let m=a,h=s.trim(),y=o.length>0;if(!h&&!y)return;if(!r){e().actions.setPendingMessage({payload:{message:s,source:"user-input",queuedAtMs:Date.now()}}),e().currentRoomId&&e().actions.setPendingRoomId({payload:{roomId:e().currentRoomId}}),e().actions.setShowSignUpModal({payload:{show:!0}});return}let v=e().pendingCharacters,I=(0,em.P)(window.location.pathname,em.L.Chat);if(!m&&v){let t=await e().actions.createChatroom({payload:{title:(0,e_.f)(s),characters:v}});(0,ew.f)({get:e},{roomId:t.id,messageContent:s}),e().actions.setPendingCharacters({payload:{characters:null}}),e().actions.setPendingMessage({payload:{message:null,source:null}}),d.push(`${I}?room=${t.id}`),m=t.id}else if(!m){let t=await e().actions.createChatroom({payload:{title:(0,e_.f)(s)}});(0,ew.f)({get:e},{roomId:t.id,messageContent:s}),d.push(`${I}?room=${t.id}`),m=t.id}let b=e().rooms[m];if(b&&(!b.title||b.title===ev.l)&&(await e().actions.updateRoom({payload:{roomId:m,partialRoom:{title:(0,e_.f)(s)}}}),(0,ew.f)({get:e},{roomId:m,messageContent:s})),0===Object.values(b?.characters??{}).filter(e=>e&&!e.isDisabled&&(0,eb.f)(e)).length){let t=p(l||ev.I);if(t){let a=(0,g.i)(t);await e().actions.addCharacters({payload:{roomId:m,characters:{model:a,modelInfo:t,samplingParameters:{}}}})}}await e().actions.updateRoom({payload:{roomId:m,partialRoom:{isProcessing:!0,lastActivityAt:new Date}}});try{let a,r=(0,E.L)(E.I.Message),l=[];s.trim()&&l.push({type:"input_text",text:s});let d=[];for(let e of o){let t=(0,eg.f)(e);t&&(l.push(t),"input_text"!==t.type&&d.push({type:e.type,name:e.name,size:e.size}))}let p=(0,P.f)({messageId:r,data:{type:"message",role:eh.f.User,content:l}}),g=(0,eI.O)({id:r,characterId:ev.d.id,context:"main-chat",type:"user",items:[{id:p.id,type:p.data.type}],attachmentMetadata:d.length>0?d:void 0,createdAt:function(e,t){let a=e().rooms[t]?.messages[""];if(a?.createdAt){let r=Object.values(e().rooms[t].messages).filter(e=>null===e.parentMessageId).length+1;return new Date(a.createdAt.getTime()+r)}return new Date}(e,m)});i.useItemStore.getState().actions.upsertItem(p),t(e=>{let t=e.rooms[m];t&&(t.messages[g.id]=g,t.sortedMessageIds=Object.values(t.messages).sort(c.f).map(e=>e.id),t.updatedAt=new Date,a=(0,u.f)(t))});let h=e().storageInstanceId;h&&a&&await Promise.all([n.f.saveMessage(h,m,g),n.f.saveRoom(h,a)]),f?.(),await e().actions.sendUserMessage({payload:{messageId:g.id,roomId:m,content:s}})}finally{await e().actions.updateRoom({payload:{roomId:m,partialRoom:{isProcessing:!1}}})}}});e.s(["f",0,eA],9558);let ex=(0,o.f)({name:"sendUserMessage",handler:async({get:e,payload:{messageId:t,roomId:a}})=>{let r=e().rooms[a];if(!r)return;let n=r.messages[t];if(!n||"user"!==n.type)return;let s=(0,f.r)(Object.values(r.messages),"main-chat"),o={...e(),currentRoomId:a},l=(0,d.Q)(o);if(0===l.length)return;let c=n.createdAt.getTime()??Date.now();await Promise.all(l.map(async(t,o)=>{let l=(0,f.m)({charactersDict:r.characters,character:t,messagesList:s,memoryCount:e().chatMemoryCount,itemsMap:i.useItemStore.getState().items});await p.f.current.withController(r=>ec({payload:{roomId:a,character:t,inputItems:l,parentMessageId:n.id,createdAt:new Date(c+o+1)},dependencies:{get:e,abortController:r}}))}))}});function eS(e){return(0,o.f)({handler:({set:t,payload:a})=>{t(t=>{Object.assign(t.tools[e].parameters,a)})}})}function eC(e){return(0,o.f)({handler:({set:t,payload:a})=>{t(t=>{t.tools[e].enabled=a.enabled})}})}e.s(["f",0,ex],231242);let eM=eS("advisor");e.s(["f",0,eM],937643);let ek=eS("datetime");e.s(["f",0,ek],619045);let eO=eS("fusion");e.s(["f",0,eO],676516);let ej=(0,o.f)({name:"setImageGenerationAspectRatio",handler:({set:e,payload:t})=>{e(e=>{e.tools.imageGeneration.parameters.aspect_ratio=t.aspectRatio??void 0})}});e.s(["f",0,ej],166862);let ez=eS("imageGeneration");e.s(["f",0,ez],964076);let eT=(0,o.f)({name:"setIsAdvisorEnabled",handler:({set:e,get:t,payload:a})=>{let r=t().tools.advisor.parameters.advisors,n=a.enabled&&(!r||0===r.length)?[{name:""}]:r;e(e=>{e.tools.advisor.enabled=a.enabled,e.tools.advisor.parameters.advisors=n})}});e.s(["f",0,eT],60065);let eR=(0,o.f)({name:"setIsChatNotificationsEnabled",handler:({set:e,payload:t})=>{e({isChatNotificationsEnabled:t.enabled})}});e.s(["f",0,eR],104660);let eF=eC("datetime");e.s(["f",0,eF],177752);let eV=eC("fusion");e.s(["f",0,eV],341049);let eE=eC("imageGeneration");e.s(["f",0,eE],652061);let eP=eC("shell");e.s(["f",0,eP],447293);let eD=(0,o.f)({name:"setIsSubagentEnabled",handler:({set:e,get:t,payload:a})=>{let r=t().tools.subagent.parameters.subagents,n=a.enabled&&(!r||0===r.length)?[{name:""}]:r;e(e=>{e.tools.subagent.enabled=a.enabled,e.tools.subagent.parameters.subagents=n})}});e.s(["f",0,eD],684095);let eq=eC("webFetch");e.s(["f",0,eq],658043);let e$=eC("webSearch");e.s(["f",0,e$],474331);let eN=(0,o.f)({name:"setPendingCharacters",handler:({set:e,payload:t})=>{e({pendingCharacters:t.characters})}});e.s(["f",0,eN],631797);let eL=(0,o.f)({name:"setPendingMessage",handler:({set:e,payload:t})=>{e({pendingMessage:t.message,pendingMessageSource:t.source,pendingMessageQueuedAt:null===t.message?null:t.queuedAtMs})}});e.s(["f",0,eL],853649);let eU=(0,o.f)({name:"setPendingRoomId",handler:({set:e,payload:t})=>{e({pendingRoomId:t.roomId})}});e.s(["f",0,eU],142083);let eG=eS("shell");e.s(["f",0,eG],87903);let eB=(0,o.f)({name:"setShouldStickToBottom",handler:({set:e,payload:t})=>{e({shouldStickToBottom:t.stick})}});e.s(["f",0,eB],825706);let eY=(0,o.f)({name:"setShowInsufficientCreditsModal",handler:({set:e,get:t,payload:a})=>{t().showInsufficientCreditsModal!==a.show&&e({showInsufficientCreditsModal:a.show})}});e.s(["f",0,eY],555750);let eW=(0,o.f)({name:"setShowSignUpModal",handler:({set:e,payload:t})=>{e({showSignUpModal:t.show})}});e.s(["f",0,eW],856861);let eJ=eS("subagent");e.s(["f",0,eJ],282207);let eH=eS("webFetch");e.s(["f",0,eH],529528);let eZ=eS("webSearch");e.s(["f",0,eZ],210213);let eQ=(0,o.f)({name:"stopGeneration",handler:({get:e,set:t})=>{p.f.current.flush();let a=e().currentRoomId;a&&t(e=>{let t=e.rooms[a];t&&(t.isProcessing=!1,Object.values(t.messages).forEach(e=>{"assistant"===e.type&&(e.isGenerating||e.isRetrying)&&(e.isGenerating=!1,e.isRetrying=!1)}))})}});e.s(["f",0,eQ],142423);let eX=e=>{let t=i.useItemStore.getState().items[e];return t?.data.type==="message"&&Array.isArray(t.data.content)?t.data.content.map(e=>"input_text"===e.type||"output_text"===e.type?e.text:"").filter(Boolean).join("").trim():""};e.s(["f",0,eX],197832);let eK=(0,o.f)({name:"editItem",handler:async({set:e,get:t,payload:{roomId:a,messageId:r,itemId:s,newContent:o,opts:l}})=>{let d=t().rooms[a]?.messages[r];if(!d)return;let c=i.useItemStore.getState(),u=eX(s),p={...d,isEdited:u!==o,updatedAt:new Date};e(e=>{let t=e.rooms[a];t?.messages[r]&&(t.messages[r]=p)}),c.actions.editItemContent(s,o);let f=t().storageInstanceId;f&&await n.f.saveMessage(f,a,p),l?.retry&&await t().actions.retryMessage({payload:{messageId:r,roomId:a}})}});e.s(["f",0,eK],430497);let e0=(0,o.f)({name:"addMessagesToRoom",handler:async({set:e,get:t,payload:{roomId:a,messages:r}})=>{e(e=>{let t=e.rooms[a];t&&(Object.assign(t.messages,r),t.sortedMessageIds=Object.values(t.messages).sort(c.f).map(e=>e.id))});let i=t().storageInstanceId;i&&await n.f.saveMessages(i,a,Object.values(r))}});e.s(["f",0,e0],432197);var e1=e.i(828342);let e4=(0,o.f)({name:"clearAllMessages",handler:async({set:e,get:t,payload:{roomId:a}})=>{if(!globalThis.confirm(e1.f`This will clean up your chat history for the current room. This action is irreversible.`))return;let r=Object.values(t().rooms[a]?.messages??{}).flatMap(e=>e.items.map(e=>e.id));r.length>0&&i.useItemStore.getState().actions.deleteItems(r),e(e=>{let t=e.rooms[a];t&&(t.messages={},t.sortedMessageIds=[],t.updatedAt=new Date)});let s=t().storageInstanceId,o=t().rooms[a];s&&o&&(await n.f.clearMessagesFromRoom(s,a),await n.f.saveRoom(s,(0,u.f)(o))),(0,ey.i)()}});e.s(["f",0,e4],9782);let e2=(0,o.f)({name:"removeMessage",handler:async({set:e,get:t,payload:{messageId:a,roomId:r}})=>{let s=t().rooms[r];if(!s||!s.messages[a])return;let o=s.messages[a],l=Object.values(s.messages),d=function(e,t){if("assistant"===e.type)return e.parentMessageId??void 0;let a=[...t].sort(c.f),r=a.findIndex(t=>t.id===e.id),n=a.slice(0,r).reverse().find(e=>"user"===e.type);return n?.id}(o,l),u={},p=[];for(let e of l)if(e.id!==a)if(e.parentMessageId===a&&"assistant"===e.type){let t={...e,parentMessageId:d};u[e.id]=t,p.push(t)}else u[e.id]=e;e(e=>{let t=e.rooms[r];t&&(t.messages=u,t.sortedMessageIds=Object.values(u).sort(c.f).map(e=>e.id))});let f=o.items.map(e=>e.id);f.length>0&&i.useItemStore.getState().actions.deleteItems(f);let m=t().storageInstanceId;m&&await Promise.all([n.f.deleteMessage(m,r,a),n.f.saveMessages(m,r,p)]),"assistant"===o.type?(0,ey.p)({variantSlug:o.metadata?.variantSlug,type:o.type}):(0,ey.p)({type:o.type})}});e.s(["f",0,e2],10031);let e5=(0,o.f)({name:"setAllMessagesCollapsed",handler:async({set:e,get:t,payload:{roomId:a,isCollapsed:r}})=>{let i=t().rooms[a];if(!i||0===Object.keys(i.messages).length)return;let s=[],o=Object.entries(i.messages).reduce((e,[t,a])=>{if(a){let n={...a,isCollapsed:r};e[t]=n,s.push(n)}return e},{});e(e=>{let t=e.rooms[a];t&&(t.messages=o)});let l=t().storageInstanceId;l&&await n.f.saveMessages(l,a,s)}});e.s(["f",0,e5],816870);let e6=(0,o.f)({name:"toggleMessageCollapsed",handler:async({set:e,get:t,payload:{roomId:a,messageId:r}})=>{let i=t().rooms[a]?.messages[r];if(!i)return;let s={...i,isCollapsed:!i.isCollapsed,updatedAt:new Date};e(e=>{let t=e.rooms[a]?.messages;t?.[r]&&(t[r]=s)});let o=t().storageInstanceId;o&&await n.f.saveMessage(o,a,s)}});e.s(["f",0,e6],202351);let e7=(0,o.f)({name:"updateMessage",handler:async({set:e,get:t,payload:{roomId:a,messageId:r,partialMessage:i}})=>{let s=t().rooms[a]?.messages[r];if(!s)return;let{type:o,...l}=i,d={...s,...l,updatedAt:new Date};e(e=>{let t=e.rooms[a]?.messages;t?.[r]&&(t[r]=d)});let c=t().storageInstanceId;c&&await n.f.saveMessage(c,a,d)}});e.s(["f",0,e7],631760);let e3=(0,o.f)({name:"setChatMemoryCount",handler:({payload:e,set:t})=>{t({chatMemoryCount:e.chatMemoryCount})}});e.s(["f",0,e3],607701)},971061,e=>{"use strict";var t=e.i(367765),a=e.i(647204);async function r(e){let r=e.trim();if(r.length<10)return null;let n=await (0,a.$)(()=>(0,t._)(r,{sharedContext:"This is a chat message sent to an AI assistant. Generate a concise title."}));return(0,a.V)(n)?null:n.data}e.s(["f",0,r])},911585,e=>{"use strict";e.s(["f",0,function(e,t=40){return e.slice(0,t).split("\n").map(e=>e.trim()).filter(e=>!!e).join(" ")}])},250464,978581,249191,115247,632521,e=>{"use strict";var t=e.i(733476);let a={[t.o.Stub]:[],[t.o.OpenAIBatchAdapter]:[t.n.OpenAIAdapter,t.n.OpenAIResponsesAdapter,t.R.OpenAIEmbeddingsAdapter],[t.o.AnthropicBatchAdapter]:[t.n.AnthropicMessageAdapter],[t.o.GoogleAIStudioGeminiBatchAdapter]:[t.n.GoogleAIStudioGeminiAdapter],[t.o.VertexGeminiBatchAdapter]:[t.n.GoogleVertexGeminiAdapter],[t.o.VertexDeferredInteractionsBatchAdapter]:[t.n.InternalStreamGoogleVertexInteractionsAdapter],[t.o.TogetherBatchAdapter]:[t.n.TogetherAdapter],[t.o.ParasailBatchAdapter]:[t.n.ParasailAdapter],[t.o.DeepInfraBatchAdapter]:[t.n.DeepInfraAdapter],[t.o.AlibabaBatchAdapter]:[t.n.AlibabaAdapter],[t.o.FireworksBatchAdapter]:[t.n.FireworksAdapter],[t.o.MistralBatchAdapter]:[t.n.MistralAdapter],[t.o.XAIBatchAdapter]:[t.n.XAIResponsesAdapter,t.n.InternalStreamXAIResponsesAdapter],[t.o.SailResearchBatchAdapter]:[t.n.SailResearchAdapter],[t.o.MorphBatchAdapter]:[t.n.MorphAdapter]};function r(e){return!!e.model.reasoning_config?.is_mandatory_reasoning}let n=new Set([t.n.AI21Adapter,t.n.AionLabsAdapter,t.n.AmazonBedrockRuntimeChatCompletionsAdapter,t.n.ArceeAdapter,t.n.AzureOpenAIAdapter,t.n.AzureOpenAIResponsesAdapter,t.n.AzureOSSAdapter,t.n.ClarifaiAdapter,t.n.CohereCompatAdapter,t.n.CosineAdapter,t.n.CrucibleResponsesAdapter,t.n.DatabricksOpenResponsesAdapter,t.n.EncodedImageOpenAIAdapter,t.n.InfermaticAdapter,t.n.InflectionAdapter,t.n.InternalStreamAmazonBedrockOpenAIResponsesAdapter,t.n.InternalStreamAmazonBedrockRuntimeOpenAIResponsesAdapter,t.n.InternalStreamAzureOpenAIResponsesAdapter,t.n.InternalStreamMetaResponsesAdapter,t.n.InternalStreamOpenAIResponsesAdapter,t.n.InternalStreamXAIResponsesAdapter,t.n.MakoraAdapter,t.n.MistralAdapter,t.n.NexAGIAdapter,t.n.OllamaAdapter,t.n.OpenAIAdapter,t.n.OpenAIResponsesAdapter,t.n.PerplexityAdapter,t.n.PrimeIntellectAdapter,t.n.RelaceAdapter,t.n.SailResearchAdapter,t.n.SakanaAIAdapter,t.n.StealthAdapter,t.n.StepFunAdapter,t.n.ThinkingMachinesAdapter,t.n.TogetherAdapter,t.n.UnbiasedAdapter,t.n.UpstageAdapter,t.n.XAIResponsesAdapter]);[...n,...Object.values(t.o).filter(e=>a[e].some(e=>n.has(e)))],e.s(["f",0,r],978581);var i=e.i(134611),s=e.i(219643),o=e.i(944946),l=e.i(625025),d=e.i(988590),c=e.i(67089),u=e.i(559505),p=e.i(667417),f=e.i(393182),m=e.i(449964),g=e.i(72916),h=e.i(756247),y=e.i(703846),v=e.i(295654),I=e.i(434648),b=e.i(264678),w=e.i(391927);function _(e){let t=e.modelInfo?.endpoint;return{providerName:e.provider??t?.provider_name,supportsNativeWebSearch:t?.features?.supports_native_web_search===!0}}e.s(["f",0,_],249191);var A=e.i(604638);let x=["cognitivecomputations/dolphin"],S=e=>e&&x.find(t=>e.permaslug.startsWith(t))?e.default_system:null;e.s(["f",0,S],115247);var C=e.i(195759),M=e.i(572201);function k(e){return!!e.model&&((0,C.z)(e.model)===M.e.Free||e.model===f.f.Free)}e.s(["f",0,k],632521);var O=e.i(434273);function j(e,t){let a;if(!((a=t.modelInfo)&&(a.endpoint?a.endpoint.supported_parameters.includes(h.f.Tools):(0,d.q)(a.permaslug,f.f)&&a.permaslug!==f.f.BodyBuilder)))return[];let r=e.tools??A._,n=k(t),i=_(t);return A.r.flatMap(e=>{if(!e.isVisibleInChatroom)return[];let a=r[e.id];if(!a.enabled||n&&!e.isAvailableForFreeModels||"imageGeneration"===e.id&&z(t))return[];if("advisor"===e.id)return(0,w.D)(r.advisor.parameters.advisors);if("subagent"===e.id)return(0,w.r)(r.subagent.parameters.subagents);let s="imageGeneration"===e.id?function(e){let{model:t,...a}=R(e);return{...void 0!==t&&{model:t},...a}}(r.imageGeneration.parameters):function({toolId:e,parameters:t,defaults:a,capabilityContext:r}){let n=Object.fromEntries(Object.entries(t)),i=Object.fromEntries(Object.entries(a));return Object.fromEntries(Object.entries(n).filter(([t,a])=>{var s,o,l;return!!(0,A.f)({toolId:e,fieldKey:t,parameters:n,capabilityContext:r})&&void 0!==a&&""!==a&&(Array.isArray(a)?a.length>0:!(null!==(s=a)&&"object"==typeof s&&!Array.isArray(s)&&0===Object.keys(s).length)&&(o=a,l=i[t],Array.isArray(o)&&Array.isArray(l)?0!==o.length||0!==l.length:o!==l))}))}({toolId:e.id,parameters:a.parameters,defaults:{...e.defaultParameters,..."serializationBaseline"in e?e.serializationBaseline:{}},capabilityContext:i});return[{type:e.apiType,...Object.keys(s).length>0&&{parameters:s}}]})}function z(e){return(e.modelInfo?.output_modalities?.includes(p.j.Image)??!1)&&!e.modelInfo?.output_modalities?.includes(p.j.Text)}function T(e,t){if(!z(t))return{};let a=e.tools??A._,r=a.imageGeneration.parameters;if(!a.imageGeneration.enabled)return{modalities:[p.j.Image]};let n=r.model??function(e){if(e.modelInfo)return(0,i.i)(e.modelInfo)}(t),{model:s,...o}=R(r,n);return{modalities:[p.j.Image],...Object.keys(o).length>0&&{image_config:o}}}function R(e,t=e.model){return Object.fromEntries(Object.entries(e).filter(e=>{let[a,r]=e;return!!(0,I.H)(a)&&!!(0,I.t)(a,r,t)&&("string"==typeof r||"number"==typeof r||Array.isArray(r))}))}e.s(["X",0,T,"j",0,j,"a",0,function({character:e,inputItems:t,storeState:a,roomId:n,options:d={},requestOverrides:p}){var h,I,w;let _,x,C,{includeDefaultSystemPrompt:M=!0,includeEnforcedSystemPrompt:z=!0}=d,{modelInfo:R}=e;if(!R)return(0,c.L)(`Model information not found for character: ${e.id}`),null;let F=!!(e.presetSlug&&e.isRoutingPreset),V=function(e,t){if(!e.presetSlug)return t;let a=(0,O.f)(e.presetSlug);return e.isRoutingPreset?a:`${t}${a}`}(e,(0,i.i)(R));F?C=void 0:e.provider?C={order:[e.provider],allow_fallbacks:!1}:e.providerSort&&(C={sort:e.providerSort}),e.zdr&&(C={...C,zdr:!0});let E=(h=e,I=t,w=a,_=(h.plugins??[]).filter(e=>e.id!==g.f.WebSearch),(x=(0,y.y)(_,e=>{var t,a;let r=(t=function(e,t,a){if(!t.modelInfo||!(0,o.f)(t.modelInfo.permaslug)||e.some(e=>e.id===g.f.Fusion))return e;let r=(a.tools??A._).fusion,n=(0,l.S)((0,b.a)(r.parameters));return Object.keys(n).length>0?[...e,{id:g.f.Fusion,...n}]:e}(e,h,w),a=h,a.modelInfo?.permaslug===f.f.Switchyard&&a.switchyardAlgorithm?[...t.filter(e=>e.id!==g.f.SwitchyardRouter),{id:g.f.SwitchyardRouter,algorithm:a.switchyardAlgorithm}]:t);if(!k(h))return r;let n=r.filter(e=>e.id!==g.f.FileParser);return!function(e){for(let t of e)if("type"in t&&"message"===t.type&&"content"in t&&Array.isArray(t.content)){for(let e of t.content)if("input_image"===e.type||"input_file"===e.type)return!0}return!1}(I)?n:[...n,{id:g.f.FileParser,pdf:{engine:m.f.CloudflareAI}}]})).length>0?x:void 0),P=function(e){if(e.modelInfo?.endpoint?.supports_reasoning&&(e.modelInfo?.endpoint&&r(e.modelInfo.endpoint)||e.reasoning?.enabled===!0))return(0,y.y)({enabled:!0},t=>{let a=e.reasoning;return a?.maxTokens!==void 0&&a.maxTokens>0&&(t.max_tokens=a.maxTokens),t},t=>{let a=e.reasoning;if(!t.max_tokens&&a?.effort!==void 0){let r=(0,s.$)(a.effort,(0,s.w)(e.modelInfo?.endpoint?.model.reasoning_config??null));void 0!==r&&(t.effort=r)}return t})}(e),D=j(a,e),q=(function(e,t,a){if(!t)return"";let r=S(e.modelInfo);return r&&a?r:e.includeDefaultSystemPrompt?(0,v.A)(e.modelInfo)||"":e.description?e.description:""})(e,M,z).trim(),$=Array.isArray(t)?[...t]:t;if(q&&Array.isArray($)){let e=$[0];e&&"role"in e&&e.role===u.f.System&&"content"in e&&"string"==typeof e.content&&e.content.trim()===q.trim()||$.unshift({role:u.f.System,content:q})}let{input:N,...L}=p??{},U=T(a,e);return{model:V,input:$,plugins:E,stream:e.isStreaming??!0,reasoning:P,provider:C,session_id:n,...D.length>0?{tools:D}:{},...void 0!==e.maxTokens&&e.maxTokens>0?{max_output_tokens:e.maxTokens}:{},...e.samplingParameters,...U,...L}}],250464)},792966,e=>{"use strict";var t=e.i(374015),a=e.i(342837),r=e.i(647204),n=e.i(549692);async function i(e){let{transport:a,request:n,turnId:i,signal:o,onChange:l,now:d=Date.now}=e,c=(0,t.B)(),u=e=>{let a=(0,t.C)(c,e);a!==c&&l(c=a)};u({type:"send",turnId:i,at:d()});let p=await a.send({turnId:i,messages:c.messages,request:n,signal:o});if(o.aborted)return u({type:"abort",at:d()}),c;if((0,r.V)(p))return u({type:"fail",turnId:i,error:p.error,at:d()}),c;let f=await s({events:p.data,turnId:i,signal:o,now:d,dispatch:u});switch(f.kind){case"ended":return c;case"aborted":return u({type:"abort",at:d()}),c;case"failed":return u({type:"fail",turnId:i,error:f.error,at:d()}),c;default:return f}}async function s(e){let{events:t,turnId:a,signal:r,now:n,dispatch:i}=e,s=!1;try{for await(let e of t){var l,d;if(r.aborted)return{kind:"aborted"};i({type:"event",event:e,at:n()}),s||=(l=e,d=a,l.turnId===d&&("turn.finished"===l.type||"turn.failed"===l.type))}}catch(e){if(r.aborted)return{kind:"aborted"};return{kind:"failed",error:o(e instanceof Error?e.message:"The response stream ended unexpectedly.","chatTurn:stream")}}return r.aborted?{kind:"aborted"}:s?{kind:"ended"}:{kind:"failed",error:o("The response stream closed before the turn finished.","chatTurn:stream-closed")}}function o(e,t){return(0,n.n)({rawError:e,status:a.g.S502_Bad_Gateway,location:t})}e.s(["f",0,i])},310977,59137,456962,31752,104913,969820,692420,e=>{"use strict";var t=e.i(517544),a=e.i(324933),r=e.i(134611),n=e.i(625025),i=e.i(647204),s=e.i(882844),o=e.i(711359),l=e.i(586906),d=e.i(101564),c=e.i(675272),u=e.i(826735);function p(e){for(let t=e.length-1;t>=0;t--){let a=e[t];if(!a||"message"!==a.type||"user"!==a.role)continue;let{content:r}=a;if("string"==typeof r)return r;if(!Array.isArray(r))continue;let n=r.filter(e=>"input_text"===e.type).map(e=>e.text);if(n.length>0)return n.join("\n")}return""}function f(e){for(let t=e.length-1;t>=0;t--){let a=e[t];if(!a||"message"!==a.type||"user"!==a.role)continue;let{content:r}=a;if(!Array.isArray(r))continue;let n=[];for(let e of r)"input_image"===e.type&&"image_url"in e&&"string"==typeof e.image_url&&n.push({type:"image_url",image_url:{url:e.image_url}});if(n.length>0)return n}return[]}e.s(["$",0,f,"W",0,p],59137);var m=e.i(549692),g=e.i(342837);function h(e){return e.status===g.g.S402_Payment_Required||"string"==typeof e.message&&e.message.includes("Insufficient credits")}e.s(["f",0,h],456962);var y=e.i(969793);let v="The provider returned an unexpected response. Please try again.";async function I(t){let{roomId:a,messageId:r,errorMessage:n,storeActions:i,getStoreState:s}=t,o=(0,l.L)(l.I.AssistantMessageItem),d=function(e){let t=e.trim();if(0===t.length||function(e){let t=e.toLowerCase().trimStart().slice(0,20);if(t.startsWith("/g);return(a?.length??0)>=3}(t))return v;let a=t.replaceAll(/<[^>]+>/g," ").replaceAll(/\s+/g," ").trim();return 0===a.length?v:a.length>500?`${a.slice(0,500)}…`:a}(n),{useItemStore:c}=await e.A(266595);c.getState().actions.upsertItem({id:o,messageId:r,data:{type:"message",role:"assistant",status:"completed",content:[{type:"refusal",refusal:d}]}}),await i.appendItemIdToMessage({payload:{roomId:a,messageId:r,itemId:o,outputIndex:function({roomId:e,messageId:t,getStoreState:a}){let r=(0,y.f)({roomId:e,messageId:t,getStoreState:a});return r?r.items.reduce((e,t)=>Math.max(e,(t.outputIndex??t.sequenceIndex??0)+1),0):0}({roomId:a,messageId:r,getStoreState:s}),type:"message"}})}function b({name:e,roomId:t,botMessage:a,storeActions:r,getStoreState:s,placeholder:o}){let l={roomId:t,messageId:a.id,storeActions:r,getStoreState:s,itemId:o?.itemId,itemActions:o?.itemActions};return{fail:(t,a)=>_({location:`${e}:error`,errorMessage:t,status:a,...l}),abort:()=>(function({location:e,roomId:t,messageId:a,storeActions:r,getStoreState:n,itemId:i,itemActions:s}){return w({roomId:t,messageId:a,itemId:i,itemActions:s,storeActions:r,getStoreState:n}),(0,m.O)({location:e,rawError:"Request cancelled"})})({location:`${e}:abort`,...l}),settle:e=>(function({roomId:e,botMessage:t,getStoreState:a,variantSlug:r,generationId:s,cost:o,startedAt:l}){let d=a(),c=d.rooms[e]?.messages[t.id],u=(c?.type==="assistant"?c.metadata:void 0)??t.metadata??{};return d.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:{...u,variantSlug:r,...(0,n.S)({generationId:s,cost:"number"==typeof o?o.toString():void 0,duration:Date.now()-l})}}}}),(0,i.N)(A({roomId:e,botMessage:t,getStoreState:a}))})({roomId:t,botMessage:a,getStoreState:s,...e}),withPlaceholder:n=>b({name:e,roomId:t,botMessage:a,storeActions:r,getStoreState:s,placeholder:n})}}function w({roomId:e,messageId:t,itemId:a,itemActions:r,storeActions:n,getStoreState:i}){let s={isGenerating:!1,isRetrying:!1};if(a&&r){r.deleteItems([a]);let n=i().rooms[e]?.messages[t]?.items;n&&(s.items=n.filter(e=>e.id!==a))}n.updateMessage({payload:{roomId:e,messageId:t,partialMessage:s}})}async function _({location:e,roomId:t,messageId:a,errorMessage:r,status:n,storeActions:i,getStoreState:s,itemId:o,itemActions:l}){return(w({roomId:t,messageId:a,itemId:o,itemActions:l,storeActions:i,getStoreState:s}),h({status:n,message:r}))?s().actions.setShowInsufficientCreditsModal({payload:{show:!0}}):await I({roomId:t,messageId:a,errorMessage:r,storeActions:i,getStoreState:s}),(0,m.O)({location:e,rawError:r})}function A({roomId:e,botMessage:t,getStoreState:a}){let r=a().rooms[e]?.messages[t.id];return{response:null,outputMessage:r?.type==="assistant"?r:t}}e.s(["f",0,I],31752),e.s(["g",0,b,"U",0,A],104913);let x={kind:"streaming"};function S(e,t){switch(e.kind){case"streaming":var a=t;switch(a.type){case"exit_early":return{kind:"exited_early",errorMessage:a.errorMessage};case"stream_ended":return{kind:"ended"};default:return a}case"exited_early":case"ended":return null;default:return e}}var C=e.i(519004);function M(e){let t=e?.input_references;return(0,C.f)(t)&&t.min>=1}function k(e,t){return M(e.modelInfo?.endpoint?.supported_image_parameters)&&0===f(t).length}e.s(["f",0,M],969820),e.s(["f",0,k],692420);var O=e.i(250464);function j(e){e&&URL.revokeObjectURL(e)}async function z({roomId:e,botMessage:a,character:i,inputItems:s,storeState:o,getStoreState:c,abortController:m,deps:g}){let h=i.modelInfo?(0,r.i)(i.modelInfo):i.model,y=b({name:"sendImageGen",roomId:e,botMessage:a,storeActions:o.actions,getStoreState:c}),v=p(s);if(!v.trim())return y.fail("Enter a prompt to generate an image");let I=f(s);if(k(i,s)){let e=i.modelInfo?.name??h;return y.fail(`${e} needs a reference image`)}let w=(0,O.X)(o,i),_="image_config"in w?w.image_config:void 0,A=0===I.length,x=(0,n.S)({model:h,prompt:v,stream:!!A||void 0,input_references:I.length>0?I:void 0,...(0,t.F)(_)}),S=(0,l.L)(l.I.Item),C=(await g.getItemStore()).actions;C.upsertItem((0,u.f)({id:S,messageId:a.id,data:{type:"image_generation_call",id:S,status:"in_progress",result:null}})),await o.actions.appendItemIdToMessage({payload:{roomId:e,messageId:a.id,itemId:S,outputIndex:0,type:"image_generation_call"}});let M=y.withPlaceholder({itemId:S,itemActions:C}),j=`${location.origin}${location.pathname}`,F=Date.now(),V=await fetch(t.m,{signal:m.signal,referrer:j,method:"POST",headers:{"Content-Type":"application/json","HTTP-Referer":j,"X-OpenRouter-Title":"OpenRouter: Chatroom"},body:JSON.stringify(x)}).catch(()=>null);if(m.signal.aborted)return await V?.body?.cancel(),M.abort();if(!V)return M.fail("Failed to submit image generation request");if(!V.ok){let e=await V.text().catch(()=>"");return M.fail((0,t.Y)(e)??"Image generation failed",V.status)}let E=V.headers.get(d.f)??void 0;return V.headers.get("content-type")?.toLowerCase().includes("text/event-stream")?T({response:V,itemId:S,itemActions:C,messageId:a.id,turn:M,variantSlug:h,abortController:m,generationId:E,startedAt:F}):R({response:V,itemId:S,itemActions:C,messageId:a.id,turn:M,variantSlug:h,generationId:E,startedAt:F})}async function T({response:e,itemId:r,itemActions:n,messageId:s,turn:l,variantSlug:d,abortController:c,generationId:u,startedAt:p}){let f,m,g;if(!e.body)return l.fail("Empty image generation response body");let h=x;try{for await(let l of(0,o.f)(e.body)){if(c.signal.aborted||(0,i.V)(l)){h=S(h,{type:"exit_early",errorMessage:void 0})??h;break}let e=(0,t.b)(l.data);if((0,i.V)(e)){h=S(h,{type:"exit_early",errorMessage:e.error})??h;break}let o=e.data;if(o){switch(o.type){case"image_generation.partial_image":{let e=(0,a.O)(o.b64_json);j(m),m=e,F({itemActions:n,itemId:r,messageId:s,imageUrl:e,status:"generating"});break}case"image_generation.completed":{f=(0,a.K)(o.b64_json);let{usage:e}=o;g=e,j(m),m=void 0,F({itemActions:n,itemId:r,messageId:s,imageUrl:f,status:"completed"});break}case"image_generation.text_chunk":break;case"error":h=S(h,{type:"exit_early",errorMessage:o.error.message})??h}if("exited_early"===h.kind)break}}h=S(h,{type:"stream_ended"})??h}finally{j(m),"exited_early"===h.kind&&await e.body.cancel().catch(()=>null)}return"exited_early"===h.kind?c.signal.aborted?l.abort():l.fail(h.errorMessage??"Image generation stream failed"):c.signal.aborted?(await e.body.cancel().catch(()=>null),l.abort()):f?l.settle({variantSlug:d,generationId:u,cost:g?.cost??void 0,startedAt:p}):l.fail("Image generation completed but no image was returned")}async function R({response:e,itemId:t,itemActions:r,messageId:n,turn:o,variantSlug:l,generationId:d,startedAt:u}){let p=await (0,i.$)(()=>e.json());if((0,i.V)(p))return o.fail("Failed to parse image generation response");let f=(0,s.C)(c.f,p.data);if((0,i.V)(f))return o.fail("Invalid image generation response");let m=f.data.data[0]?.b64_json;return m?(F({itemActions:r,itemId:t,messageId:n,imageUrl:(0,a.K)(m),status:"completed"}),o.settle({variantSlug:l,generationId:d,cost:f.data.usage?.cost??void 0,startedAt:u})):o.fail("Image generation completed but no image was returned")}function F({itemActions:e,itemId:t,messageId:a,imageUrl:r,status:n}){e.upsertItem({id:t,messageId:a,data:{type:"image_generation_call",id:t,status:n,result:r}})}e.s(["f",0,z],310977)},100176,713437,e=>{"use strict";var t=e.i(425493),a=e.i(506930),r=e.i(801014),n=e.i(625025),i=e.i(647204),s=e.i(882844),o=e.i(635157),l=e.i(67089),d=e.i(586906),c=e.i(700050),u=e.i(826735),p=e.i(622817),f=e.i(357107),m=e.i(59137),g=e.i(104913);async function h(e,t){let a=await t(),r=a.items[e];if(!r)return;let n=r.data;"message"===n.type&&"assistant"===n.role&&"status"in n&&a.actions.upsertItem({id:r.id,messageId:r.messageId,data:{...n,status:"completed"}})}function y(e){return`/api/frontend/v1/private/interns/${encodeURIComponent(e)}/chat`}let v=o.z.object({error:o.z.object({message:o.z.string().trim().min(1)})});async function I({roomId:e,botMessage:t,character:a,inputItems:r,storeState:n,getStoreState:i,abortController:s,deps:o,isRetry:l}){let f=(0,g.g)({name:"sendToIntern",roomId:e,botMessage:t,storeActions:n.actions,getStoreState:i}),y=(0,p.J)(a.model)??(0,p.J)(a.modelInfo?.slug);if(null===y)return(0,c.t)({outcome:"failure",reason:"unknown_intern"}),f.fail("This character is not linked to an intern.");if(l)return(0,c.t)({outcome:"failure",reason:"retry"}),f.fail("Retry isn't available for interns yet: the intern's conversation has already moved past this message. Send it again as a new message.");let v=(0,m.W)(r).trim();if(0===v.length)return(0,c.t)({outcome:"failure",reason:"empty_prompt"}),f.fail("Interns need a text message to respond to.");if(s.signal.aborted)return(0,c.t)({outcome:"failure",reason:"aborted"}),f.abort();let w=(0,d.L)(d.I.AssistantMessageItem),_=(await o.getItemStore()).actions;_.upsertItem((0,u.f)({id:w,messageId:t.id,data:{type:"message",role:"assistant",status:"in_progress",content:[{type:"output_text",text:"",annotations:[]}]}})),await n.actions.appendItemIdToMessage({payload:{roomId:e,messageId:t.id,itemId:w,outputIndex:0,type:"message"}});let A=f.withPlaceholder({itemId:w,itemActions:_}),x=Date.now(),S=t=>{let r=i().rooms[e]?.characters[a.id];return void 0===r||r.model!==a.model?Promise.resolve():n.actions.updateCharacter({payload:{roomId:e,characterId:a.id,partialCharacter:{internSessionId:t}}})},C={internId:y,prompt:v,itemId:w,itemActions:_,signal:s.signal},M=await b({...C,sessionId:a.internSessionId});switch(void 0!==a.internSessionId&&"ended"===M.kind&&!M.didStreamText&&"failed"===M.end.kind&&"ORI_SESSION_NOT_FOUND"===M.end.code&&(await S(void 0),M=await b({...C,sessionId:void 0})),await _.flushAllPending(),M.kind){case"aborted":return(0,c.t)({outcome:"failure",reason:"aborted"}),A.abort();case"unreachable":return(0,c.t)({outcome:"failure",reason:"unreachable"}),A.fail("The intern could not be reached.");case"rejected":return(0,c.t)({outcome:"failure",reason:"rejected"}),A.fail(M.reason??`The intern daemon rejected the request (HTTP ${M.status}).`,M.status);case"ended":break;default:return M}if(void 0!==M.sessionId&&M.sessionId!==a.internSessionId&&await S(M.sessionId),void 0!==M.model){let a=i().rooms[e]?.messages[t.id],r=a?.type==="assistant"?a.metadata:t.metadata;n.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{metadata:{...r,internModel:M.model}}}})}let k=M.didStreamText?f:A;return((M.didStreamText||"succeeded"===M.end.kind)&&await h(w,o.getItemStore),s.signal.aborted)?((0,c.t)({outcome:"failure",reason:"aborted"}),k.abort()):"failed"===M.end.kind?((0,c.t)({outcome:"failure",reason:"turn_failed"}),k.fail(M.end.text)):((0,c.t)({outcome:"success"}),A.settle({variantSlug:a.model,generationId:void 0,cost:void 0,startedAt:x}))}async function b({internId:e,prompt:t,sessionId:a,itemId:r,itemActions:s,signal:o}){let l=crypto.randomUUID(),d=null,c=()=>{d=fetch(`${y(e)}/${encodeURIComponent(l)}/cancel`,{keepalive:!0,method:"POST",signal:AbortSignal.timeout(5e3)}).then(e=>e.body?.cancel()).catch(()=>void 0)};o.addEventListener("abort",c,{once:!0});try{let d=await (0,i.$)(()=>fetch(y(e),{body:JSON.stringify((0,n.S)({commandId:l,prompt:t,sessionId:a})),headers:{"Content-Type":"application/json"},method:"POST",signal:o}));if((0,i.V)(d))return o.aborted?{kind:"aborted"}:{kind:"unreachable"};let c=d.data;if(!c.ok||null===c.body)return{kind:"rejected",status:c.status,reason:await w(c)};return await _({body:c.body,commandId:l,itemId:r,itemActions:s})}finally{o.removeEventListener("abort",c),await d}}async function w(e){let t=await (0,i.$)(()=>e.text());if((0,i.V)(t))return void(0,l.L)("intern_chat_rejection_unreadable",{status:e.status});let a=(0,i.$)(()=>JSON.parse(t.data)),r=(0,i.V)(a)?a:(0,s.C)(v,a.data);return(0,i.V)(r)?void(0,l.L)("intern_chat_rejection_unparseable",{body_length:t.data.length,status:e.status}):r.data.error.message}async function _({body:e,commandId:n,itemId:i,itemActions:s}){let o,l,d=!1,c=e=>({kind:"ended",end:e,sessionId:o,model:l,didStreamText:d});for await(let t of(0,a.t)(e,{onMeta:e=>{switch(e.kind){case"session":o=e.sessionId;break;case"model":l=e.model}},turnId:n}))switch(t.type){case"text.delta":if(0===t.delta.length)break;d=!0,s.appendMessageText(i,t.delta,0);break;case"turn.failed":{let e=function(e){let t=e.metadata?.ori_failure_code;return"string"==typeof t?t:void 0}(t.error);return c({kind:"failed",text:(0,r.U)(t.error,f.q),...void 0===e?{}:{code:e}})}case"turn.finished":return c({kind:"succeeded"});case"turn.started":case"reasoning.delta":case"tool.started":case"tool.input.delta":case"tool.input.finished":case"tool.finished":case"media.added":case"annotation.added":case"status":case"question.opened":case"question.closed":case"question.skipped":case"usage":case"snapshot":break;default:return t}return c({kind:"failed",text:(0,r.U)((0,t.S)(t.a.StreamSevered),f.q)})}e.s(["f",0,I],100176),e.i(818009);var A=e.i(982432),x=e.i(549692);e.i(707060);var S=e.i(387086),C=e.i(22022),M=e.i(31752);async function k({roomId:e,botMessage:t,character:a,inputItems:r,requestOverrides:n,storeState:s,get:o,abortController:l,deps:c,isWebSearchEnabled:p,isWebFetchEnabled:m,isFusionEnabled:g,isAdvisorEnabled:y}){let v=function({character:e,requestOverrides:t,isWebSearchEnabled:a,isWebFetchEnabled:r,isFusionEnabled:n,isAdvisorEnabled:i}){if(a||r||n||i)return(0,S.b)("Chrome Gemini Nano runs locally in the browser and does not support server tools. Disable tools or choose an OpenRouter model.");if(e.reasoning?.enabled)return(0,S.b)("Chrome Gemini Nano does not support reasoning settings in the chatroom yet.");if(e.plugins&&Object.keys(e.plugins).length>0)return(0,S.b)("Chrome Gemini Nano runs locally in the browser and does not support plugins yet.");if(t?.image_config)return(0,S.b)("Chrome Gemini Nano supports image and audio input locally, but not image generation output. Disable image generation or choose an OpenRouter image model.");let s=t?.modalities;return s&&s.some(e=>"text"!==e)?(0,S.b)("Chrome Gemini Nano only supports text output in the browser chatroom for now."):null}({character:a,requestOverrides:n,isWebSearchEnabled:p,isWebFetchEnabled:m,isFusionEnabled:g,isAdvisorEnabled:y});if(v)return F({roomId:e,messageId:t.id,errorMessage:(0,f.q)(v),storeActions:s.actions,getStoreState:o});let I=await O(r);if((0,i.V)(I))return F({roomId:e,messageId:t.id,errorMessage:I.error,storeActions:s.actions,getStoreState:o});let b=(0,d.L)(d.I.AssistantMessageItem),w=(await c.getItemStore()).actions;w.upsertItem((0,u.f)({id:b,messageId:t.id,data:{type:"message",role:"assistant",status:"in_progress",content:[{type:"output_text",text:"",annotations:[]}]}})),await s.actions.appendItemIdToMessage({payload:{roomId:e,messageId:t.id,itemId:b,outputIndex:0,type:"message"}});let _=Date.now();try{for await(let e of c.streamLanguageModelResponse({input:I.data,signal:l.signal,options:C.Z}))w.appendMessageText(b,e,0);await w.flushAllPending(),await h(b,c.getItemStore);let r=Date.now()-_,n={...t.metadata,variantSlug:a.model,duration:r};s.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:n}}});let d=o().rooms[e]?.messages[t.id];return(0,i.N)({response:null,outputMessage:d??t})}catch(r){if(s.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1}}}),r instanceof DOMException&&"AbortError"===r.name)return(0,A.c)({title:(0,f.q)((0,S.b)("Request cancelled"))}),(0,x.O)({location:"sendToCharacter:chrome-ai:abort",rawError:"Request cancelled"});c.trackError(r instanceof Error?r:Error("Chrome AI stream failed"),{source:"sendToCharacter",filename:"send-to-character.ts",context:{error:r}});let a=r instanceof Error?r.message:(0,f.q)((0,S.b)("Chrome AI stream failed"));return await (0,M.f)({roomId:e,messageId:t.id,errorMessage:a,storeActions:s.actions,getStoreState:o}),(0,x.O)({location:"sendToCharacter:chrome-ai",rawError:a})}}async function O(e){let t=[];for(let r of e){var a;let e=await j(r);if((0,i.V)(e))return e;("string"==typeof(a=e.data.content)?a.trim().length>0:a.some(e=>"text"!==e.type||e.value.trim().length>0))&&t.push(e.data)}return 0===t.length?(0,i.Y)("Chrome Gemini Nano needs a text, image, or audio message to respond to."):(0,i.N)(t)}async function j(e){if("message"!==e.type)return(0,i.Y)("Chrome Gemini Nano only supports chat messages for now.");let t=function(e){switch(e){case"assistant":case"user":case"system":return e;case"developer":return"system";default:return null}}(e.role);if(!t)return(0,i.Y)("Chrome Gemini Nano only supports user, assistant, system, and developer messages.");let{content:a}=e;if("string"==typeof a)return(0,i.N)({role:t,content:a});if(!Array.isArray(a))return(0,i.N)({role:t,content:""});let r=[];for(let e of a)switch(e.type){case"input_text":case"output_text":r.push({type:"text",value:e.text});break;case"refusal":r.push({type:"text",value:e.refusal});break;case"input_image":{if(!e.image_url)return(0,i.Y)("Chrome Gemini Nano needs image attachments to include image data.");let t=await z(e.image_url,"image");if((0,i.V)(t))return t;r.push({type:"image",value:t.data});break}case"input_audio":{var n,s;let t=e.input_audio.data;if(!t)return(0,i.Y)("Chrome Gemini Nano needs audio attachments to include audio data.");let a=await z((n=t,s=e.input_audio.format,n.startsWith("data:")?n:`data:${function(e){switch(e){case"mp3":default:return"audio/mpeg";case"wav":return"audio/wav"}}(s)};base64,${n}`),"audio");if((0,i.V)(a))return a;r.push({type:"audio",value:a.data});break}default:return(0,i.Y)("Chrome Gemini Nano supports text, image, and audio input in the browser chatroom. Files, video, and tool calls still need an OpenRouter model.")}return(0,i.N)({role:t,content:r})}async function z(e,t){if(e.startsWith("data:")){let a=function(e){var t,a;let r,n,s=e.indexOf(",");if(-1===s)return(0,i.Y)("invalid data URL");let o=e.slice(0,s),l=e.slice(s+1),d=o.slice(5).split(";",1)[0]||"application/octet-stream",c=o.slice(5).split(";").some(e=>"base64"===e.toLowerCase())?(t=l,r=(0,i.$)(()=>atob(t)),(0,i.V)(r)?(0,i.Y)("invalid base64 data URL"):(0,i.N)(Uint8Array.from(r.data,e=>e.codePointAt(0)??0))):(a=l,n=(0,i.$)(()=>decodeURIComponent(a)),(0,i.V)(n)?(0,i.Y)("invalid data URL payload"):(0,i.N)(new TextEncoder().encode(n.data)));return(0,i.V)(c)?(0,i.Y)(c.error):(0,i.N)(new Blob([c.data],{type:d}))}(e);return(0,i.V)(a)?(0,i.Y)(`Chrome Gemini Nano could not read ${t} input: ${a.error}`):a}let a=await T(e);if((0,i.V)(a))return(0,i.Y)(`Chrome Gemini Nano could not read ${t} input: ${a.error}`);let r=a.data;if(!r.ok)return r.body?.cancel(),(0,i.Y)(`Chrome Gemini Nano could not read ${t} input: request failed with ${r.status}`);let n=await R(r);return(0,i.V)(n)?(0,i.Y)(`Chrome Gemini Nano could not read ${t} input: ${n.error}`):(0,i.N)(n.data)}async function T(e){let t=await (0,i.$)(()=>fetch(e));return(0,i.V)(t)?(0,i.Y)(t.error instanceof Error?t.error.message:"fetch failed"):t}async function R(e){let t=await (0,i.$)(()=>e.blob());return(0,i.V)(t)?(0,i.Y)(t.error instanceof Error?t.error.message:"blob conversion failed"):t}async function F({roomId:e,messageId:t,errorMessage:a,storeActions:r,getStoreState:n}){return r.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1}}}),await (0,M.f)({roomId:e,messageId:t,errorMessage:a,storeActions:r,getStoreState:n}),(0,x.O)({location:"sendToCharacter:chrome-ai:unsupported",rawError:a})}e.s(["r",0,function(e){return(0,C.U)(e.model)||(0,C.U)(e.modelInfo?.slug)},"J",0,k],713437)},22422,e=>{"use strict";var t,a,r=e.i(390889),n=e.i(104108),i=e.i(630164),s=e.i(923307),o=e.i(63102),l=e.i(590333),d=e.i(585767),c=e.i(325681),u=e.i(2726),p=e.i(740594),f=e.i(628879),m=e.i(524391),g=e.i(514703),h=e.i(738237),y=e.i(745732),v=e.i(999342),I=e.i(957531),b=e.i(558668),w=e.i(849758),_=e.i(892341),A=e.i(970303),x=e.i(931581),S=e.i(521064),C=e.i(856885),M=e.i(779234),k=e.i(142056),O=e.i(362591),j=e.i(723098),z=e.i(450531),T=e.i(939303),R=e.i(535192),F=e.i(508191),V=e.i(429394),E=e.i(370039),P=e.i(853048),D=e.i(907971),q=e.i(142422),$=e.i(2251),N=e.i(78154),L=e.i(241859),U=e.i(889854),G=e.i(599227),B=e.i(585131),Y=e.i(9558),W=e.i(231242),J=e.i(937643),H=e.i(619045),Z=e.i(676516),Q=e.i(166862),X=e.i(964076),K=e.i(60065),ee=e.i(104660),et=e.i(177752),ea=e.i(341049),er=e.i(652061),en=e.i(447293),ei=e.i(684095),es=e.i(658043),eo=e.i(474331),el=e.i(631797),ed=e.i(853649),ec=e.i(142083),eu=e.i(87903),ep=e.i(825706),ef=e.i(555750),em=e.i(856861),eg=e.i(282207),eh=e.i(529528),ey=e.i(210213),ev=e.i(142423),eI=e.i(430497),eb=e.i(432197),ew=e.i(9782),e_=e.i(10031),eA=e.i(816870),ex=e.i(202351),eS=e.i(631760),eC=e.i(607701),eM=e.i(586906),ek=e.i(700050),eO=e.i(471316),ej=e.i(447680),ez=e.i(733442),eT=e.i(295654);function eR(e={}){let t=new Date;return{version:ez.Y,id:e.id??(0,eM.L)(eM.I.Chat),title:e.title??eT.l,isPinned:e.isPinned??!1,zdr:e.zdr??void 0,characters:e.characters??{},messages:e.messages??{},isProcessing:e.isProcessing??!1,sortedMessageIds:e.sortedMessageIds??[],hydrationStatus:e.hydrationStatus??"idle",hydrationError:e.hydrationError??null,createdAt:t,updatedAt:t,lastActivityAt:e.lastActivityAt??t,artifactIds:e.artifactIds??[],internId:e.internId}}var eF=e.i(286709),eV=e.i(25551);let eE=(0,eF.f)({name:"createChatroom",handler:async({set:e,get:t,payload:a})=>{let r=a.characters??t().pendingCharacters,n=t().pendingRoomZdr;e(e=>{e.pendingCharacters=null,e.pendingRoomZdr=null});let i=Object.values(r||{}).reduce((e,t)=>{if(!t||t.isRemoved)return e;let a=structuredClone(t),r=(0,eM.L)(eM.I.Character),n=(0,eO.f)({...a,id:r,createdAt:new Date,updatedAt:new Date});return e[n.id]=n,e},{}),s=eR({title:a.title,characters:i,hydrationStatus:"success",internId:a.internId,zdr:n??void 0});e(e=>{e.rooms[s.id]=s,e.currentRoomId=s.id,e.activeArtifactId=null});let o=t().storageInstanceId;return o&&await Promise.all([ej.f.saveRoom(o,(0,eV.f)(s)),ej.f.saveCharacters(o,s.id,Object.values(i))]),(0,ek.w)({source:void 0===a.internId?"new":"intern",characterCount:Object.keys(i).length}),s}});var eP=e.i(674896),eD=e.i(647204),eq=e.i(735961);e.i(634160);var e$=e.i(696384);let eN=(0,eF.f)({name:"deleteAllChatrooms",handler:async({set:e,get:t,dependencies:{router:a}})=>{let r=Object.keys(t().rooms);if(0===r.length)return;(0,ek.U)({roomCount:r.length}),e(e=>{e.rooms={},e.currentRoomId=null,e.artifacts={},e.artifactFiles={},e.artifactVersions={},e.artifactFileContents={},e.activeArtifactId=null,e.artifactViewerState={},e.generationAttemptStartMs={}}),eq.useItemStore.getState().actions.clearAllItems();let n=t().storageInstanceId;n&&(await (0,eD.$)(()=>(0,e$.T)(n,r,[])),await Promise.all(r.map(e=>ej.f.deleteRoom(n,e)))),a.push((0,eP.P)(window.location.pathname,eP.L.Chat))}}),eL=(0,eF.f)({name:"deleteChatroom",handler:async({set:e,get:t,payload:{roomId:a},dependencies:{router:r,deletedRoomHref:n="/chat"}})=>{let i=t().rooms[a];if(!i)return;(0,ek.b)({messageCount:Object.keys(i.messages??{}).length,characterCount:Object.keys(i.characters??{}).length});let s=t().currentRoomId===a,o=Object.values(i.messages??{}).flatMap(e=>(e.items??[]).map(e=>e.id)),l=t().storageInstanceId;o.length>0&&eq.useItemStore.getState().actions.deleteItems(o),e(e=>{delete e.rooms[a],e.currentRoomId===a&&(e.currentRoomId=null)}),l&&(await (0,eD.$)(()=>(0,e$.T)(l,[a],Object.keys(t().rooms))),await ej.f.deleteRoom(l,a)),s&&null!==n&&r.push(n)}});e.i(818009);var eU=e.i(982432),eG=e.i(625025),eB=e.i(506050),eY=e.i(67089);e.i(707060);var eW=e.i(387086),eJ=e.i(357107),eH=e.i(44745),eZ=e.i(10700);let eQ=(0,eF.f)({name:"duplicateRoom",handler:async({set:e,get:t,payload:{sourceRoomId:a},dependencies:{router:r}})=>{let n=await (0,eD.$)(()=>eX({set:e,get:t,sourceRoomId:a,router:r}));(0,eD.V)(n)&&((0,eY.L)("duplicate-room-failed",(0,eB.s)(n.error)),(0,eU.c)({title:(0,eJ.q)((0,eW.b)("Could not duplicate room")),description:(0,eJ.q)((0,eW.b)("An unexpected error occurred.")),variant:"destructive"}))}});async function eX({set:e,get:t,sourceRoomId:a,router:r}){let n=t(),i=n.rooms[a],s=n.storageInstanceId;if(!i||!s)return void(0,eU.c)({title:(0,eJ.q)((0,eW.b)("Could not duplicate room")),description:(0,eJ.q)((0,eW.b)("Source room or namespace not found.")),variant:"destructive"});if("idle"===i.hydrationStatus){let e=await t().actions.loadFullRoom({payload:{roomId:a}});if((0,eD.V)(e))return void(0,eU.c)({title:(0,eJ.q)((0,eW.b)("Could not duplicate room")),description:(0,eJ.q)((0,eW.b)("Failed to load source room data.")),variant:"destructive"});if(!(i=(n=t()).rooms[a]))return}let o=(0,eZ.v)(n,i.artifactIds),l=new Date,{newCharacters:d,charIdMap:c}=(0,eZ.s)(i.characters,l),u=new Map;for(let e of Object.keys(i.messages))u.set(e,(0,eM.L)(eM.I.Message));let{items:p}=eq.useItemStore.getState(),f=new Set(Object.values(i.messages).flatMap(e=>e.items??[]).map(e=>e.id)),m=(0,eG.O)(p,Array.from(f)),g=new Map,h={};for(let e in m){if(!Object.hasOwn(m,e))continue;let t=m[e];if(!t)continue;let a=(0,eM.L)(eM.I.Item);g.set(e,a),h[a]={...t,id:a}}for(let e of Object.values(h)){let t=u.get(e.messageId);t&&(e.messageId=t)}let{newArtifacts:y,newArtifactFiles:v,newArtifactVersions:I,newArtifactFileContents:b,artifactIdMap:w,versionIdMap:_}=(0,eZ.L)(o,c,u);for(let e of Object.values(I))if(e){if(e.generatingMessageId){let t=u.get(e.generatingMessageId);t&&(e.generatingMessageId=t)}if(e.artifactId){let t=w.get(e.artifactId);t&&(e.artifactId=t)}}let{newMessages:A}=(0,eZ.T)({sourceMessages:i.messages,charIdMap:c,artifactIdMap:w,versionIdMap:_,now:l,msgIdMap:u,itemIdMap:g}),x={...A};for(let e of Object.values(x))if(e){if(e.artifactId){let t=w.get(e.artifactId);t&&(e.artifactId=t)}if(e.parentMessageId){let t=u.get(e.parentMessageId);t&&(e.parentMessageId=t)}e.items&&Array.isArray(e.items)&&(e.items=e.items.map(e=>{let t=g.get(e.id);return{...e,id:t??e.id}}))}let S=new Map;for(let e of Object.values(I)){if(!e||!e.generatingMessageId||!e.artifactId)continue;let t=`${e.generatingMessageId}|${e.artifactId}|${e.characterId??""}`;S.set(t,e.id)}for(let e of Object.values(x)){if(!e||"assistant"!==e.type||!e.parentMessageId||!e.artifactId)continue;let t=`${e.parentMessageId}|${e.artifactId}|${e.characterId??""}`,a=S.get(t);a&&("artifact-version"!==e.contentType||e.versionContextId!==a)&&(e.contentType="artifact-version",e.versionContextId=a)}let C=eR({...i,id:void 0,internId:void 0,title:(0,eJ.q)((0,eW.b)("{title} (Copy)",{title:i.title})),characters:d,messages:x,sortedMessageIds:Object.values(x).sort(eH.f).map(e=>e.id),artifactIds:Object.keys(y),createdAt:l,updatedAt:l}),M=await (0,eZ.Z)({set:e,namespace:s,newRoomData:C,newArtifactData:{artifacts:y,artifactFiles:v,artifactVersions:I,artifactFileContents:b}});if((0,eD.V)(M))return void(0,eU.c)({title:(0,eJ.q)((0,eW.b)("Could not duplicate room")),description:(0,eJ.q)((0,eW.b)("The room could not be saved. {error}",{error:M.error})),variant:"destructive"});await ej.f.saveItems(s,C.id,Object.values(h));let{items:k,actions:O}=eq.useItemStore.getState();O.loadItems({...k,...h}),(0,ek.j)({sourceMessageCount:Object.keys(i.messages).length,sourceCharacterCount:Object.keys(i.characters).length});let j=(0,eP.P)(window.location.pathname,eP.L.Chat);r.push(`${j}?room=${C.id}`)}var eK=e.i(430022),e0=e.i(347586);let e1=null,e4=(0,eF.f)({name:"initStore",handler:async({set:e,get:t,payload:a})=>{let{storageInstanceId:r}=a;if(t().storageInstanceId===r)return;e1=r,null!==t().storageInstanceId&&e0.f.current.flush(),eq.useItemStore.getState().actions.clearAllItems(),e(e=>{e.initializationStatus="pending"});let n=await (0,eD.$)(async()=>{let t=await ej.f.getAllRooms(r),a={};for(let e in t){if(!Object.hasOwn(t,e))continue;let r=t[e];if(r){let t=(0,eK.P)(r.createdAt,new Date);a[e]={id:r.id,title:r.title,createdAt:t,updatedAt:(0,eK.P)(r.updatedAt,t),lastActivityAt:r.lastActivityAt?(0,eK.P)(r.lastActivityAt,t):void 0,version:r.version,characters:{},messages:{},sortedMessageIds:[],isProcessing:!1,hydrationStatus:"idle",hydrationError:null,artifactIds:[],isPinned:r.isPinned,zdr:r.zdr,internId:r.internId}}}e1===r&&e(e=>{e.rooms=a;let t=e.currentRoomId;t&&!Object.hasOwn(a,t)&&(e.currentRoomId=null),e.storageInstanceId=r,e.initializationStatus="success"})});e1===r&&(0,eD.V)(n)&&(e(e=>{e.rooms={},e.currentRoomId=null,e.storageInstanceId=null,e.initializationStatus="failed"}),(0,eU.c)({title:(0,eJ.q)((0,eW.b)("Error Loading Chats")),description:(0,eJ.q)((0,eW.b)("There was a critical issue initializing your chat history. Refreshing may help.")),variant:"destructive"}))}});var e2=e.i(622561),e5=e.i(438838);let e6=(0,eF.f)({name:"loadFullRoom",handler:async({set:e,get:t,payload:{roomId:a}})=>{let{storageInstanceId:r}=t();if(!r)return(0,eD.Y)("Storage instance ID not found");(0,ek.C)({roomId:a,storageInstanceId:r,roomsLength:Object.keys(t().rooms).length,hydrationStatus:"pending"}),e(e=>{e.rooms[a]&&(e.rooms[a].hydrationStatus="pending")});let n=await (0,eD.$)(async()=>{let{characters:n,messages:i,items:s,artifacts:o}=await ej.f.getRoom(r,a),{artifactFiles:l,artifactVersions:d,artifactFileContents:c}=await (0,e5.f)({storageInstanceId:r,messages:i,artifacts:o,persistence:ej.f}),u={...t().rooms[a],characters:n,messages:i,sortedMessageIds:Object.values(i).sort(eH.f).map(e=>e.id),artifactIds:Object.keys(o),hydrationStatus:"success"};eq.useItemStore.getState().actions.loadItems(s),e(e=>{e.rooms[a]=u,e.artifacts={...e.artifacts,...o},e.artifactFiles={...e.artifactFiles,...l},e.artifactVersions={...e.artifactVersions,...d},e.artifactFileContents={...e.artifactFileContents,...c}}),(0,ek.Z)({roomId:a,messagesLoaded:Object.keys(i).length,charactersLoaded:Object.keys(n).length,itemsLoaded:Object.keys(s).length,migratedFromVersion:void 0})});if((0,eD.V)(n)){let t=(0,e2.A)(n.error);return(0,ek.F)({roomId:a,errorMessage:t}),e(e=>{e.rooms[a]&&(e.rooms[a].hydrationStatus="failed",e.rooms[a].hydrationError=t)}),(0,eD.Y)(t)}return(0,eD.N)(!0)}}),e7=(0,eF.f)({name:"setCurrentRoom",handler:async({set:e,get:t,payload:{roomId:a}})=>{if(t().currentRoomId!==a&&e(e=>{e.currentRoomId=a,e.activeArtifactId=null}),!a)return;let r=t().rooms[a];r&&"idle"===r.hydrationStatus&&t().actions.loadFullRoom({payload:{roomId:a}})}}),e3=(0,eF.f)({name:"toggleInternConversationsCollapsed",handler:({set:e})=>{e(e=>({isInternConversationsCollapsed:!e.isInternConversationsCollapsed}))}}),e9=(0,eF.f)({name:"togglePromptHistoryCollapsed",handler:({set:e})=>{e(e=>({isPromptHistoryCollapsed:!e.isPromptHistoryCollapsed}))}}),e8=(0,eF.f)({name:"toggleRoomManagerCollapsed",handler:({set:e})=>{e(e=>({isRoomManagerCollapsed:!e.isRoomManagerCollapsed}))}}),te=(0,eF.f)({name:"updateRoom",handler:async({set:e,get:t,payload:{roomId:a,partialRoom:r}})=>{let n;e(e=>{let t=e.rooms[a];t&&(Object.assign(t,r),t.updatedAt=new Date,n=(0,eV.f)(t))});let i=t().storageInstanceId;i&&n&&await ej.f.saveRoom(i,n)}});var tt=e.i(624621);let ta=(t={addCharacters:C.f,replaceCharacters:T.f,duplicateCharacter:O.f,applyToAllCharacters:M.f,clearCharacters:k.f,initializeCharacters:j.f,removeCharacter:z.f,resetCharacter:R.f,restoreCharacter:F.f,setRoomZdr:V.f,togglePluginForCharacter:E.f,updateCharacter:P.f,clearAllMessages:ew.f,createBotPlaceholder:D.f,exportAllData:q.f,exportData:$.f,exportManyData:N.f,exportMarkdown:L.f,importData:U.f,retryMessage:B.f,sendMessage:Y.f,sendUserMessage:W.f,stopGeneration:ev.f,addMessages:eb.f,appendItemIdToMessage:o.f,editItem:eI.f,removeMessage:e_.f,setAllMessagesCollapsed:eA.f,updateMessage:eS.f,toggleMessageCollapsed:ex.f,createChatroom:eE,deleteAllChatrooms:eN,deleteChatroom:eL,loadFullArtifact:m.f,initStore:e4,loadFullRoom:e6,setCurrentRoom:e7,updateRoom:te,duplicateRoom:eQ,sendConversationPromptToArtifact:v.f,sendGenerationPromptToArtifact:I.f,updateArtifact:S.f,generateArtifact:f.f,deleteArtifact:c.f,clearArtifactViewState:l.f,closeArtifactView:d.f,setActiveArtifactId:b.f,setActiveArtifactView:w.f,setActiveFileId:A.f,setActiveVersionId:x.f,setActiveCharacterForArtifact:_.f,deleteArtifactFile:u.f,renameArtifactFile:h.f,downloadArtifactVersion:p.f,setPendingCharacters:el.f,setPendingMessage:ed.f,setPendingRoomId:ec.f,setShowSignUpModal:em.f,setShowInsufficientCreditsModal:ef.f,setIsDatetimeEnabled:et.f,setIsWebFetchEnabled:es.f,setIsWebSearchEnabled:eo.f,setIsImageGenerationEnabled:er.f,setIsFusionEnabled:ea.f,setIsAdvisorEnabled:K.f,setIsSubagentEnabled:ei.f,setIsShellEnabled:en.f,markToolAsUserConfigured:G.f,setImageGenerationAspectRatio:Q.f,setImageGenerationConfig:X.f,setDatetimeConfig:H.f,setFusionConfig:Z.f,setAdvisorConfig:J.f,setSubagentConfig:eg.f,setShellConfig:eu.f,setWebFetchConfig:eh.f,setWebSearchConfig:ey.f,setIsChatNotificationsEnabled:ee.f,setShouldStickToBottom:ep.f,togglePromptHistoryCollapsed:e9,toggleRoomManagerCollapsed:e8,toggleInternConversationsCollapsed:e3,stopArtifactVersionGeneration:s.f,setExpandedFolders:i.f,reportArtifactVersionError:n.f,fixArtifactVersionError:r.f,retryArtifactVersion:y.f,removeCharacterFromArtifact:g.f,setChatMemoryCount:eC.f},a={set:tt.f.setState,get:tr},Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t(a)])));function tr(){return{...tt.f.getState(),actions:ta}}e.s(["z",0,ta,"t",0,tr],22422)}]); //# sourceMappingURL=0vyy4hqt5atu5.js.map