!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a09e5b-4b37-7f30-86cc-b5ed48b09e3a")}catch(e){}}();(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,458037,(e,t,r)=>{var a=e.i(51053);(e=>{"use strict";var t,r,n,s,i,o,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,p=(e,t,r)=>new Promise((a,n)=>{var s=e=>{try{o(r.next(e))}catch(e){n(e)}},i=e=>{try{o(r.throw(e))}catch(e){n(e)}},o=e=>e.done?a(e.value):Promise.resolve(e.value).then(s,i);o((r=r.apply(e,t)).next())}),m={},f={analyzeMetafile:()=>ed,analyzeMetafileSync:()=>ef,build:()=>ei,buildSync:()=>eu,context:()=>eo,default:()=>eI,formatMessages:()=>ec,formatMessagesSync:()=>em,initialize:()=>ey,stop:()=>eg,transform:()=>el,transformSync:()=>ep,version:()=>es};for(var g in f)l(m,g,{get:f[g],enumerable:!0});function h(e){let r=e=>{if(null===e)a.write8(0);else if("boolean"==typeof e)a.write8(1),a.write8(+e);else if("number"==typeof e)a.write8(2),a.write32(0|e);else if("string"==typeof e)a.write8(3),a.write(t(e));else if(e instanceof Uint8Array)a.write8(4),a.write(e);else if(e instanceof Array)for(let t of(a.write8(5),a.write32(e.length),e))r(t);else{let n=Object.keys(e);for(let s of(a.write8(6),a.write32(n.length),n))a.write(t(s)),r(e[s])}},a=new y;return a.write32(0),a.write32(e.id<<1|!e.isRequest),r(e.value),I(a.buf,a.len-4,0),a.buf.subarray(0,a.len)}e.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of d(t))u.call(e,a)||void 0===a||l(e,a,{get:()=>t[a],enumerable:!(r=c(t,a))||r.enumerable});return e})(l({},"__esModule",{value:!0}),m);var y=class{constructor(e=new Uint8Array(1024)){this.buf=e,this.len=0,this.ptr=0}_write(e){if(this.len+e>this.buf.length){let t=new Uint8Array((this.len+e)*2);t.set(this.buf),this.buf=t}return this.len+=e,this.len-e}write8(e){let t=this._write(1);this.buf[t]=e}write32(e){let t=this._write(4);I(this.buf,e,t)}write(e){let t=this._write(4+e.length);I(this.buf,e.length,t),this.buf.set(e,t+4)}_read(e){if(this.ptr+e>this.buf.length)throw Error("Invalid packet");return this.ptr+=e,this.ptr-e}read8(){return this.buf[this._read(1)]}read32(){return v(this.buf,this._read(4))}read(){let e=this.read32(),t=new Uint8Array(e),r=this._read(t.length);return t.set(this.buf.subarray(r,r+e)),t}};if("u">typeof TextEncoder&&"u">typeof TextDecoder){let e=new TextEncoder,a=new TextDecoder;t=t=>e.encode(t),r=e=>a.decode(e),n='new TextEncoder().encode("")'}else if(void 0!==a.Buffer)t=e=>a.Buffer.from(e),r=e=>{let{buffer:t,byteOffset:r,byteLength:n}=e;return a.Buffer.from(t,r,n).toString()},n='Buffer.from("")';else throw Error("No UTF-8 codec found");if(!(t("")instanceof Uint8Array))throw Error(`Invariant violation: "${n} instanceof Uint8Array" is incorrectly false This indicates that your JavaScript environment is broken. You cannot use esbuild in this environment because esbuild relies on this invariant. This is not a problem with esbuild. You need to fix your environment instead. `);function v(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function I(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var b=JSON.stringify,A="warning",w="silent";function S(e,t){let r=[];for(let a of e){if(W(a,t),a.indexOf(",")>=0)throw Error(`Invalid ${t}: ${a}`);r.push(a)}return r.join(",")}var T=()=>null,C=e=>"boolean"==typeof e?null:"a boolean",_=e=>"string"==typeof e?null:"a string",x=e=>e instanceof RegExp?null:"a RegExp object",M=e=>"number"==typeof e&&e===(0|e)?null:"an integer",E=e=>"number"==typeof e&&e===(0|e)&&e>=0&&e<=65535?null:"a valid port number",k=e=>"function"==typeof e?null:"a function",R=e=>Array.isArray(e)?null:"an array",O=e=>Array.isArray(e)&&e.every(e=>"string"==typeof e)?null:"an array of strings",F=e=>"object"!=typeof e||null===e||Array.isArray(e)?"an object":null,P=e=>"object"==typeof e&&null!==e?null:"an array or an object",j=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",D=e=>"object"!=typeof e||Array.isArray(e)?"an object or null":null,V=e=>"string"==typeof e||"boolean"==typeof e?null:"a string or a boolean",z=e=>"string"!=typeof e&&("object"!=typeof e||null===e||Array.isArray(e))?"a string or an object":null,$=e=>"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?null:"a string or an array of strings",U=e=>"string"==typeof e||e instanceof Uint8Array?null:"a string or a Uint8Array",N=e=>"string"==typeof e||e instanceof URL?null:"a string or a URL";function L(e,t,r,a){let n=e[r];if(t[r+""]=!0,void 0===n)return;let s=a(n);if(null!==s)throw Error(`${b(r)} must be ${s}`);return n}function G(e,t,r){for(let a in e)if(!(a in t))throw Error(`Invalid option ${r}: ${b(a)}`)}function B(e){let t;if(void 0!==e)for(let r in t=Object.create(null),e){let a=e[r];if("string"==typeof a||!1===a)t[r]=a;else throw Error(`Expected ${b(r)} in mangle cache to map to either a string or false`)}return t}function q(e,t,r,a,n){let s=L(t,r,"color",C),i=L(t,r,"logLevel",_),o=L(t,r,"logLimit",M);void 0!==s?e.push(`--color=${s}`):a&&e.push("--color=true"),e.push(`--log-level=${i||n}`),e.push(`--log-limit=${o||0}`)}function W(e,t,r){if("string"!=typeof e)throw Error(`Expected value for ${t}${void 0!==r?" "+b(r):""} to be a string, got ${typeof e} instead`);return e}function H(e,t,r){let a=L(t,r,"legalComments",_),n=L(t,r,"sourceRoot",_),s=L(t,r,"sourcesContent",C),i=L(t,r,"target",$),o=L(t,r,"format",_),l=L(t,r,"globalName",_),c=L(t,r,"mangleProps",x),d=L(t,r,"reserveProps",x),u=L(t,r,"mangleQuoted",C),p=L(t,r,"minify",C),m=L(t,r,"minifySyntax",C),f=L(t,r,"minifyWhitespace",C),g=L(t,r,"minifyIdentifiers",C),h=L(t,r,"lineLimit",M),y=L(t,r,"drop",O),v=L(t,r,"dropLabels",O),I=L(t,r,"charset",_),A=L(t,r,"treeShaking",C),w=L(t,r,"ignoreAnnotations",C),T=L(t,r,"jsx",_),E=L(t,r,"jsxFactory",_),k=L(t,r,"jsxFragment",_),R=L(t,r,"jsxImportSource",_),P=L(t,r,"jsxDev",C),j=L(t,r,"jsxSideEffects",C),D=L(t,r,"define",F),V=L(t,r,"logOverride",F),U=L(t,r,"supported",F),N=L(t,r,"pure",O),G=L(t,r,"keepNames",C),B=L(t,r,"platform",_),q=L(t,r,"tsconfigRaw",z),H=L(t,r,"absPaths",O);if(a&&e.push(`--legal-comments=${a}`),void 0!==n&&e.push(`--source-root=${n}`),void 0!==s&&e.push(`--sources-content=${s}`),i&&e.push(`--target=${S(Array.isArray(i)?i:[i],"target")}`),o&&e.push(`--format=${o}`),l&&e.push(`--global-name=${l}`),B&&e.push(`--platform=${B}`),q&&e.push(`--tsconfig-raw=${"string"==typeof q?q:JSON.stringify(q)}`),p&&e.push("--minify"),m&&e.push("--minify-syntax"),f&&e.push("--minify-whitespace"),g&&e.push("--minify-identifiers"),h&&e.push(`--line-limit=${h}`),I&&e.push(`--charset=${I}`),void 0!==A&&e.push(`--tree-shaking=${A}`),w&&e.push("--ignore-annotations"),y)for(let t of y)e.push(`--drop:${W(t,"drop")}`);if(v&&e.push(`--drop-labels=${S(v,"drop label")}`),H&&e.push(`--abs-paths=${S(H,"abs paths")}`),c&&e.push(`--mangle-props=${en(c)}`),d&&e.push(`--reserve-props=${en(d)}`),void 0!==u&&e.push(`--mangle-quoted=${u}`),T&&e.push(`--jsx=${T}`),E&&e.push(`--jsx-factory=${E}`),k&&e.push(`--jsx-fragment=${k}`),R&&e.push(`--jsx-import-source=${R}`),P&&e.push("--jsx-dev"),j&&e.push("--jsx-side-effects"),D)for(let t in D){if(t.indexOf("=")>=0)throw Error(`Invalid define: ${t}`);e.push(`--define:${t}=${W(D[t],"define",t)}`)}if(V)for(let t in V){if(t.indexOf("=")>=0)throw Error(`Invalid log override: ${t}`);e.push(`--log-override:${t}=${W(V[t],"log override",t)}`)}if(U)for(let t in U){if(t.indexOf("=")>=0)throw Error(`Invalid supported: ${t}`);let r=U[t];if("boolean"!=typeof r)throw Error(`Expected value for supported ${b(t)} to be a boolean, got ${typeof r} instead`);e.push(`--supported:${t}=${r}`)}if(N)for(let t of N)e.push(`--pure:${W(t,"pure")}`);G&&e.push("--keep-names")}function J(){let e=new Map,t=0;return{clear(){e.clear()},load:t=>e.get(t),store(r){if(void 0===r)return -1;let a=t++;return e.set(a,r),a}}}function Y(e,t,r){let a,n=!1;return()=>{if(n)return a;n=!0;try{let n=(e.stack+"").split("\n");n.splice(1,1);let s=X(t,n,r);if(s)return a={text:e.message,location:s}}catch(e){}}}function Z(e,t,r,a,n){let s="Internal error",i=null;try{s=(e&&e.message||e)+""}catch(e){}try{i=X(t,(e.stack+"").split("\n"),"")}catch(e){}return{id:"",pluginName:n,text:s,location:i,notes:a?[a]:[],detail:r?r.store(e):-1}}function X(e,r,a){let n=" at ";if(e.readFileSync&&!r[0].startsWith(n)&&r[1].startsWith(n))for(let s=1;s{if(5===t)return"\n...";if(!e.location)return` error: ${e.text}`;let{file:r,line:a,column:n}=e.location,s=e.pluginName?`[plugin: ${e.pluginName}] `:"";return` ${r}:${a}:${n}: ERROR: ${s}${e.text}`}).join(""));for(let[e,n]of[["errors",t],["warnings",r]])Object.defineProperty(a,e,{configurable:!0,enumerable:!0,get:()=>n,set:t=>Object.defineProperty(a,e,{configurable:!0,enumerable:!0,value:t})});return a}function Q(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function ee(e,t,r){if(null==e)return null;let a={},n=L(e,a,"file",_),s=L(e,a,"namespace",_),i=L(e,a,"line",M),o=L(e,a,"column",M),l=L(e,a,"length",M),c=L(e,a,"lineText",_),d=L(e,a,"suggestion",_);if(G(e,a,t),c){let e=c.slice(0,(o&&o>0?o:0)+(l&&l>0?l:0)+(r&&r>0?r:80));/[\x7F-\uFFFF]/.test(e)||/\n/.test(c)||(c=e)}return{file:n||"",namespace:s||"",line:i||0,column:o||0,length:l||0,lineText:c||"",suggestion:d||""}}function et(e,t,r,a,n){let s=[],i=0;for(let o of e){let e={},l=L(o,e,"id",_),c=L(o,e,"pluginName",_),d=L(o,e,"text",_),u=L(o,e,"location",D),p=L(o,e,"notes",R),m=L(o,e,"detail",T),f=`in element ${i} of "${t}"`;G(o,e,f);let g=[];if(p)for(let e of p){let t={},r=L(e,t,"text",_),a=L(e,t,"location",D);G(e,t,f),g.push({text:r||"",location:ee(a,f,n)})}s.push({id:l||"",pluginName:c||a,text:d||"",location:ee(u,f,n),notes:g,detail:r?r.store(m):-1}),i++}return s}function er(e,t){let r=[];for(let a of e){if("string"!=typeof a)throw Error(`${b(t)} must be an array of strings`);r.push(a)}return r}function ea({path:e,contents:t,hash:a}){let n=null;return{path:e,contents:t,hash:a,get text(){let e=this.contents;return(null===n||e!==t)&&(t=e,n=r(e)),n}}}function en(e){let t=e.source;return e.flags&&(t=`(?${e.flags})${t}`),t}var es="0.25.8",ei=e=>eh().build(e),eo=e=>eh().context(e),el=(e,t)=>eh().transform(e,t),ec=(e,t)=>eh().formatMessages(e,t),ed=(e,t)=>eh().analyzeMetafile(e,t),eu=()=>{throw Error('The "buildSync" API only works in node')},ep=()=>{throw Error('The "transformSync" API only works in node')},em=()=>{throw Error('The "formatMessagesSync" API only works in node')},ef=()=>{throw Error('The "analyzeMetafileSync" API only works in node')},eg=()=>(i&&i(),Promise.resolve()),eh=()=>{if(o)return o;if(s)throw Error('You need to wait for the promise returned from "initialize" to be resolved before calling this');throw Error('You need to call "initialize" before calling this')},ey=e=>{var t;let r,a,n,i;a=L(t=e||{},r=Object.create(null),"wasmURL",N),n=L(t,r,"wasmModule",j),i=L(t,r,"worker",C),G(t,r,"in initialize() call");let o=(e={wasmURL:a,wasmModule:n,worker:i}).wasmURL,l=e.wasmModule,c=!1!==e.worker;if(!o&&!l)throw Error('Must provide either the "wasmURL" option or the "wasmModule" option');if(s)throw Error('Cannot call "initialize" more than once');return(s=ev(o||"",l,c)).catch(()=>{s=void 0}),s},ev=(e,a,n)=>p(null,null,function*(){var l;let c,d,u,f,g,I,j,D,z,N,X,ee,es,ei,eo,el=new Promise(e=>d=e);if(n){let e=new Blob([`onmessage=((postMessage) => { // Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; let onmessage; let globalThis = {}; for (let o = self; o; o = Object.getPrototypeOf(o)) for (let k of Object.getOwnPropertyNames(o)) if (!(k in globalThis)) Object.defineProperty(globalThis, k, { get: () => self[k] }); "use strict"; (() => { const enosys = () => { const err = new Error("not implemented"); err.code = "ENOSYS"; return err; }; if (!globalThis.fs) { let outputBuf = ""; globalThis.fs = { constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused writeSync(fd, buf) { outputBuf += decoder.decode(buf); const nl = outputBuf.lastIndexOf("\\n"); if (nl != -1) { console.log(outputBuf.substring(0, nl)); outputBuf = outputBuf.substring(nl + 1); } return buf.length; }, write(fd, buf, offset, length, position, callback) { if (offset !== 0 || length !== buf.length || position !== null) { callback(enosys()); return; } const n = this.writeSync(fd, buf); callback(null, n); }, chmod(path, mode, callback) { callback(enosys()); }, chown(path, uid, gid, callback) { callback(enosys()); }, close(fd, callback) { callback(enosys()); }, fchmod(fd, mode, callback) { callback(enosys()); }, fchown(fd, uid, gid, callback) { callback(enosys()); }, fstat(fd, callback) { callback(enosys()); }, fsync(fd, callback) { callback(null); }, ftruncate(fd, length, callback) { callback(enosys()); }, lchown(path, uid, gid, callback) { callback(enosys()); }, link(path, link, callback) { callback(enosys()); }, lstat(path, callback) { callback(enosys()); }, mkdir(path, perm, callback) { callback(enosys()); }, open(path, flags, mode, callback) { callback(enosys()); }, read(fd, buffer, offset, length, position, callback) { callback(enosys()); }, readdir(path, callback) { callback(enosys()); }, readlink(path, callback) { callback(enosys()); }, rename(from, to, callback) { callback(enosys()); }, rmdir(path, callback) { callback(enosys()); }, stat(path, callback) { callback(enosys()); }, symlink(path, link, callback) { callback(enosys()); }, truncate(path, length, callback) { callback(enosys()); }, unlink(path, callback) { callback(enosys()); }, utimes(path, atime, mtime, callback) { callback(enosys()); } }; } if (!globalThis.process) { globalThis.process = { getuid() { return -1; }, getgid() { return -1; }, geteuid() { return -1; }, getegid() { return -1; }, getgroups() { throw enosys(); }, pid: -1, ppid: -1, umask() { throw enosys(); }, cwd() { throw enosys(); }, chdir() { throw enosys(); } }; } if (!globalThis.crypto) { throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)"); } if (!globalThis.performance) { throw new Error("globalThis.performance is not available, polyfill required (performance.now only)"); } if (!globalThis.TextEncoder) { throw new Error("globalThis.TextEncoder is not available, polyfill required"); } if (!globalThis.TextDecoder) { throw new Error("globalThis.TextDecoder is not available, polyfill required"); } const encoder = new TextEncoder("utf-8"); const decoder = new TextDecoder("utf-8"); globalThis.Go = class { constructor() { this.argv = ["js"]; this.env = {}; this.exit = (code) => { if (code !== 0) { console.warn("exit code:", code); } }; this._exitPromise = new Promise((resolve) => { this._resolveExitPromise = resolve; }); this._pendingEvent = null; this._scheduledTimeouts = /* @__PURE__ */ new Map(); this._nextCallbackTimeoutID = 1; const setInt64 = (addr, v) => { this.mem.setUint32(addr + 0, v, true); this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true); }; const setInt32 = (addr, v) => { this.mem.setUint32(addr + 0, v, true); }; const getInt64 = (addr) => { const low = this.mem.getUint32(addr + 0, true); const high = this.mem.getInt32(addr + 4, true); return low + high * 4294967296; }; const loadValue = (addr) => { const f = this.mem.getFloat64(addr, true); if (f === 0) { return void 0; } if (!isNaN(f)) { return f; } const id = this.mem.getUint32(addr, true); return this._values[id]; }; const storeValue = (addr, v) => { const nanHead = 2146959360; if (typeof v === "number" && v !== 0) { if (isNaN(v)) { this.mem.setUint32(addr + 4, nanHead, true); this.mem.setUint32(addr, 0, true); return; } this.mem.setFloat64(addr, v, true); return; } if (v === void 0) { this.mem.setFloat64(addr, 0, true); return; } let id = this._ids.get(v); if (id === void 0) { id = this._idPool.pop(); if (id === void 0) { id = this._values.length; } this._values[id] = v; this._goRefCounts[id] = 0; this._ids.set(v, id); } this._goRefCounts[id]++; let typeFlag = 0; switch (typeof v) { case "object": if (v !== null) { typeFlag = 1; } break; case "string": typeFlag = 2; break; case "symbol": typeFlag = 3; break; case "function": typeFlag = 4; break; } this.mem.setUint32(addr + 4, nanHead | typeFlag, true); this.mem.setUint32(addr, id, true); }; const loadSlice = (addr) => { const array = getInt64(addr + 0); const len = getInt64(addr + 8); return new Uint8Array(this._inst.exports.mem.buffer, array, len); }; const loadSliceOfValues = (addr) => { const array = getInt64(addr + 0); const len = getInt64(addr + 8); const a = new Array(len); for (let i = 0; i < len; i++) { a[i] = loadValue(array + i * 8); } return a; }; const loadString = (addr) => { const saddr = getInt64(addr + 0); const len = getInt64(addr + 8); return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len)); }; const timeOrigin = Date.now() - performance.now(); this.importObject = { _gotest: { add: (a, b) => a + b }, gojs: { // Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters) // may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported // function. A goroutine can switch to a new stack if the current stack is too small (see morestack function). // This changes the SP, thus we have to update the SP used by the imported function. // func wasmExit(code int32) "runtime.wasmExit": (sp) => { sp >>>= 0; const code = this.mem.getInt32(sp + 8, true); this.exited = true; delete this._inst; delete this._values; delete this._goRefCounts; delete this._ids; delete this._idPool; this.exit(code); }, // func wasmWrite(fd uintptr, p unsafe.Pointer, n int32) "runtime.wasmWrite": (sp) => { sp >>>= 0; const fd = getInt64(sp + 8); const p = getInt64(sp + 16); const n = this.mem.getInt32(sp + 24, true); globalThis.fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n)); }, // func resetMemoryDataView() "runtime.resetMemoryDataView": (sp) => { sp >>>= 0; this.mem = new DataView(this._inst.exports.mem.buffer); }, // func nanotime1() int64 "runtime.nanotime1": (sp) => { sp >>>= 0; setInt64(sp + 8, (timeOrigin + performance.now()) * 1e6); }, // func walltime() (sec int64, nsec int32) "runtime.walltime": (sp) => { sp >>>= 0; const msec = (/* @__PURE__ */ new Date()).getTime(); setInt64(sp + 8, msec / 1e3); this.mem.setInt32(sp + 16, msec % 1e3 * 1e6, true); }, // func scheduleTimeoutEvent(delay int64) int32 "runtime.scheduleTimeoutEvent": (sp) => { sp >>>= 0; const id = this._nextCallbackTimeoutID; this._nextCallbackTimeoutID++; this._scheduledTimeouts.set(id, setTimeout( () => { this._resume(); while (this._scheduledTimeouts.has(id)) { console.warn("scheduleTimeoutEvent: missed timeout event"); this._resume(); } }, getInt64(sp + 8) )); this.mem.setInt32(sp + 16, id, true); }, // func clearTimeoutEvent(id int32) "runtime.clearTimeoutEvent": (sp) => { sp >>>= 0; const id = this.mem.getInt32(sp + 8, true); clearTimeout(this._scheduledTimeouts.get(id)); this._scheduledTimeouts.delete(id); }, // func getRandomData(r []byte) "runtime.getRandomData": (sp) => { sp >>>= 0; crypto.getRandomValues(loadSlice(sp + 8)); }, // func finalizeRef(v ref) "syscall/js.finalizeRef": (sp) => { sp >>>= 0; const id = this.mem.getUint32(sp + 8, true); this._goRefCounts[id]--; if (this._goRefCounts[id] === 0) { const v = this._values[id]; this._values[id] = null; this._ids.delete(v); this._idPool.push(id); } }, // func stringVal(value string) ref "syscall/js.stringVal": (sp) => { sp >>>= 0; storeValue(sp + 24, loadString(sp + 8)); }, // func valueGet(v ref, p string) ref "syscall/js.valueGet": (sp) => { sp >>>= 0; const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16)); sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 32, result); }, // func valueSet(v ref, p string, x ref) "syscall/js.valueSet": (sp) => { sp >>>= 0; Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32)); }, // func valueDelete(v ref, p string) "syscall/js.valueDelete": (sp) => { sp >>>= 0; Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16)); }, // func valueIndex(v ref, i int) ref "syscall/js.valueIndex": (sp) => { sp >>>= 0; storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16))); }, // valueSetIndex(v ref, i int, x ref) "syscall/js.valueSetIndex": (sp) => { sp >>>= 0; Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24)); }, // func valueCall(v ref, m string, args []ref) (ref, bool) "syscall/js.valueCall": (sp) => { sp >>>= 0; try { const v = loadValue(sp + 8); const m = Reflect.get(v, loadString(sp + 16)); const args = loadSliceOfValues(sp + 32); const result = Reflect.apply(m, v, args); sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 56, result); this.mem.setUint8(sp + 64, 1); } catch (err) { sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 56, err); this.mem.setUint8(sp + 64, 0); } }, // func valueInvoke(v ref, args []ref) (ref, bool) "syscall/js.valueInvoke": (sp) => { sp >>>= 0; try { const v = loadValue(sp + 8); const args = loadSliceOfValues(sp + 16); const result = Reflect.apply(v, void 0, args); sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 40, result); this.mem.setUint8(sp + 48, 1); } catch (err) { sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 40, err); this.mem.setUint8(sp + 48, 0); } }, // func valueNew(v ref, args []ref) (ref, bool) "syscall/js.valueNew": (sp) => { sp >>>= 0; try { const v = loadValue(sp + 8); const args = loadSliceOfValues(sp + 16); const result = Reflect.construct(v, args); sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 40, result); this.mem.setUint8(sp + 48, 1); } catch (err) { sp = this._inst.exports.getsp() >>> 0; storeValue(sp + 40, err); this.mem.setUint8(sp + 48, 0); } }, // func valueLength(v ref) int "syscall/js.valueLength": (sp) => { sp >>>= 0; setInt64(sp + 16, parseInt(loadValue(sp + 8).length)); }, // valuePrepareString(v ref) (ref, int) "syscall/js.valuePrepareString": (sp) => { sp >>>= 0; const str = encoder.encode(String(loadValue(sp + 8))); storeValue(sp + 16, str); setInt64(sp + 24, str.length); }, // valueLoadString(v ref, b []byte) "syscall/js.valueLoadString": (sp) => { sp >>>= 0; const str = loadValue(sp + 8); loadSlice(sp + 16).set(str); }, // func valueInstanceOf(v ref, t ref) bool "syscall/js.valueInstanceOf": (sp) => { sp >>>= 0; this.mem.setUint8(sp + 24, loadValue(sp + 8) instanceof loadValue(sp + 16) ? 1 : 0); }, // func copyBytesToGo(dst []byte, src ref) (int, bool) "syscall/js.copyBytesToGo": (sp) => { sp >>>= 0; const dst = loadSlice(sp + 8); const src = loadValue(sp + 32); if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) { this.mem.setUint8(sp + 48, 0); return; } const toCopy = src.subarray(0, dst.length); dst.set(toCopy); setInt64(sp + 40, toCopy.length); this.mem.setUint8(sp + 48, 1); }, // func copyBytesToJS(dst ref, src []byte) (int, bool) "syscall/js.copyBytesToJS": (sp) => { sp >>>= 0; const dst = loadValue(sp + 8); const src = loadSlice(sp + 16); if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) { this.mem.setUint8(sp + 48, 0); return; } const toCopy = src.subarray(0, dst.length); dst.set(toCopy); setInt64(sp + 40, toCopy.length); this.mem.setUint8(sp + 48, 1); }, "debug": (value) => { console.log(value); } } }; } run(instance) { return __async(this, null, function* () { if (!(instance instanceof WebAssembly.Instance)) { throw new Error("Go.run: WebAssembly.Instance expected"); } this._inst = instance; this.mem = new DataView(this._inst.exports.mem.buffer); this._values = [ // JS values that Go currently has references to, indexed by reference id NaN, 0, null, true, false, globalThis, this ]; this._goRefCounts = new Array(this._values.length).fill(Infinity); this._ids = /* @__PURE__ */ new Map([ // mapping from JS values to reference ids [0, 1], [null, 2], [true, 3], [false, 4], [globalThis, 5], [this, 6] ]); this._idPool = []; this.exited = false; let offset = 4096; const strPtr = (str) => { const ptr = offset; const bytes = encoder.encode(str + "\\0"); new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes); offset += bytes.length; if (offset % 8 !== 0) { offset += 8 - offset % 8; } return ptr; }; const argc = this.argv.length; const argvPtrs = []; this.argv.forEach((arg) => { argvPtrs.push(strPtr(arg)); }); argvPtrs.push(0); const keys = Object.keys(this.env).sort(); keys.forEach((key) => { argvPtrs.push(strPtr(\`\${key}=\${this.env[key]}\`)); }); argvPtrs.push(0); const argv = offset; argvPtrs.forEach((ptr) => { this.mem.setUint32(offset, ptr, true); this.mem.setUint32(offset + 4, 0, true); offset += 8; }); const wasmMinDataAddr = 4096 + 8192; if (offset >= wasmMinDataAddr) { throw new Error("total length of command line and environment variables exceeds limit"); } this._inst.exports.run(argc, argv); if (this.exited) { this._resolveExitPromise(); } yield this._exitPromise; }); } _resume() { if (this.exited) { throw new Error("Go program has already exited"); } this._inst.exports.resume(); if (this.exited) { this._resolveExitPromise(); } } _makeFuncWrapper(id) { const go = this; return function() { const event = { id, this: this, args: arguments }; go._pendingEvent = event; go._resume(); return event.result; }; } }; })(); onmessage = ({ data: wasm }) => { let decoder = new TextDecoder(); let fs = globalThis.fs; let stderr = ""; fs.writeSync = (fd, buffer) => { if (fd === 1) { postMessage(buffer); } else if (fd === 2) { stderr += decoder.decode(buffer); let parts = stderr.split("\\n"); if (parts.length > 1) console.log(parts.slice(0, -1).join("\\n")); stderr = parts[parts.length - 1]; } else { throw new Error("Bad write"); } return buffer.length; }; let stdin = []; let resumeStdin; let stdinPos = 0; onmessage = ({ data }) => { if (data.length > 0) { stdin.push(data); if (resumeStdin) resumeStdin(); } return go; }; fs.read = (fd, buffer, offset, length, position, callback) => { if (fd !== 0 || offset !== 0 || length !== buffer.length || position !== null) { throw new Error("Bad read"); } if (stdin.length === 0) { resumeStdin = () => fs.read(fd, buffer, offset, length, position, callback); return; } let first = stdin[0]; let count = Math.max(0, Math.min(length, first.length - stdinPos)); buffer.set(first.subarray(stdinPos, stdinPos + count), offset); stdinPos += count; if (stdinPos === first.length) { stdin.shift(); stdinPos = 0; } callback(null, count); }; let go = new globalThis.Go(); go.argv = ["", \`--service=\${"0.25.8"}\`]; tryToInstantiateModule(wasm, go).then( (instance) => { postMessage(null); go.run(instance); }, (error) => { postMessage(error); } ); return go; }; function tryToInstantiateModule(wasm, go) { return __async(this, null, function* () { if (wasm instanceof WebAssembly.Module) { return WebAssembly.instantiate(wasm, go.importObject); } const res = yield fetch(wasm); if (!res.ok) throw new Error(\`Failed to download \${JSON.stringify(wasm)}\`); if ("instantiateStreaming" in WebAssembly && /^application\\/wasm($|;)/i.test(res.headers.get("Content-Type") || "")) { const result2 = yield WebAssembly.instantiateStreaming(res, go.importObject); return result2.instance; } const bytes = yield res.arrayBuffer(); const result = yield WebAssembly.instantiate(bytes, go.importObject); return result.instance; }); } return (m) => onmessage(m); })(postMessage)`],{type:"text/javascript"});c=new Worker(URL.createObjectURL(e))}else{let e,t=(e=>{let t;var r=(e,t,r)=>new Promise((a,n)=>{var s=e=>{try{o(r.next(e))}catch(e){n(e)}},i=e=>{try{o(r.throw(e))}catch(e){n(e)}},o=e=>e.done?a(e.value):Promise.resolve(e.value).then(s,i);o((r=r.apply(e,t)).next())});let a={};for(let e=self;e;e=Object.getPrototypeOf(e))for(let t of Object.getOwnPropertyNames(e))t in a||Object.defineProperty(a,t,{get:()=>self[t]});let n=()=>{let e=Error("not implemented");return e.code="ENOSYS",e};if(!a.fs){let e="";a.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync(t,r){let a=(e+=i.decode(r)).lastIndexOf("\n");return -1!=a&&(console.log(e.substring(0,a)),e=e.substring(a+1)),r.length},write(e,t,r,a,s,i){0!==r||a!==t.length||null!==s?i(n()):i(null,this.writeSync(e,t))},chmod(e,t,r){r(n())},chown(e,t,r,a){a(n())},close(e,t){t(n())},fchmod(e,t,r){r(n())},fchown(e,t,r,a){a(n())},fstat(e,t){t(n())},fsync(e,t){t(null)},ftruncate(e,t,r){r(n())},lchown(e,t,r,a){a(n())},link(e,t,r){r(n())},lstat(e,t){t(n())},mkdir(e,t,r){r(n())},open(e,t,r,a){a(n())},read(e,t,r,a,s,i){i(n())},readdir(e,t){t(n())},readlink(e,t){t(n())},rename(e,t,r){r(n())},rmdir(e,t){t(n())},stat(e,t){t(n())},symlink(e,t,r){r(n())},truncate(e,t,r){r(n())},unlink(e,t){t(n())},utimes(e,t,r,a){a(n())}}}if(a.process||(a.process={getuid:()=>-1,getgid:()=>-1,geteuid:()=>-1,getegid:()=>-1,getgroups(){throw n()},pid:-1,ppid:-1,umask(){throw n()},cwd(){throw n()},chdir(){throw n()}}),!a.crypto)throw Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");if(!a.performance)throw Error("globalThis.performance is not available, polyfill required (performance.now only)");if(!a.TextEncoder)throw Error("globalThis.TextEncoder is not available, polyfill required");if(!a.TextDecoder)throw Error("globalThis.TextDecoder is not available, polyfill required");let s=new TextEncoder("utf-8"),i=new TextDecoder("utf-8");return a.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{0!==e&&console.warn("exit code:",e)},this._exitPromise=new Promise(e=>{this._resolveExitPromise=e}),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const e=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/0x100000000),!0)},t=e=>this.mem.getUint32(e+0,!0)+0x100000000*this.mem.getInt32(e+4,!0),r=e=>{let t=this.mem.getFloat64(e,!0);if(0===t)return;if(!isNaN(t))return t;let r=this.mem.getUint32(e,!0);return this._values[r]},n=(e,t)=>{if("number"==typeof t&&0!==t){if(isNaN(t)){this.mem.setUint32(e+4,0x7ff80000,!0),this.mem.setUint32(e,0,!0);return}this.mem.setFloat64(e,t,!0);return}if(void 0===t)return void this.mem.setFloat64(e,0,!0);let r=this._ids.get(t);void 0===r&&(void 0===(r=this._idPool.pop())&&(r=this._values.length),this._values[r]=t,this._goRefCounts[r]=0,this._ids.set(t,r)),this._goRefCounts[r]++;let a=0;switch(typeof t){case"object":null!==t&&(a=1);break;case"string":a=2;break;case"symbol":a=3;break;case"function":a=4}this.mem.setUint32(e+4,0x7ff80000|a,!0),this.mem.setUint32(e,r,!0)},o=e=>{let r=t(e+0),a=t(e+8);return new Uint8Array(this._inst.exports.mem.buffer,r,a)},l=e=>{let a=t(e+0),n=t(e+8),s=Array(n);for(let e=0;e{let r=t(e+0),a=t(e+8);return i.decode(new DataView(this._inst.exports.mem.buffer,r,a))},d=Date.now()-performance.now();this.importObject={_gotest:{add:(e,t)=>e+t},gojs:{"runtime.wasmExit":e=>{e>>>=0;let t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{let r=t((e>>>=0)+8),n=t(e+16),s=this.mem.getInt32(e+24,!0);a.fs.writeSync(r,new Uint8Array(this._inst.exports.mem.buffer,n,s))},"runtime.resetMemoryDataView":e=>{this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":t=>{e((t>>>=0)+8,(d+performance.now())*1e6)},"runtime.walltime":t=>{t>>>=0;let r=new Date().getTime();e(t+8,r/1e3),this.mem.setInt32(t+16,r%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;let r=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(r,setTimeout(()=>{for(this._resume();this._scheduledTimeouts.has(r);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()},t(e+8))),this.mem.setInt32(e+16,r,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;let t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(o(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;let t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,0===this._goRefCounts[t]){let e=this._values[t];this._values[t]=null,this._ids.delete(e),this._idPool.push(t)}},"syscall/js.stringVal":e=>{n((e>>>=0)+24,c(e+8))},"syscall/js.valueGet":e=>{let t=Reflect.get(r((e>>>=0)+8),c(e+16));n((e=this._inst.exports.getsp()>>>0)+32,t)},"syscall/js.valueSet":e=>{Reflect.set(r((e>>>=0)+8),c(e+16),r(e+32))},"syscall/js.valueDelete":e=>{Reflect.deleteProperty(r((e>>>=0)+8),c(e+16))},"syscall/js.valueIndex":e=>{n((e>>>=0)+24,Reflect.get(r(e+8),t(e+16)))},"syscall/js.valueSetIndex":e=>{Reflect.set(r((e>>>=0)+8),t(e+16),r(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{let t=r(e+8),a=Reflect.get(t,c(e+16)),s=l(e+32),i=Reflect.apply(a,t,s);e=this._inst.exports.getsp()>>>0,n(e+56,i),this.mem.setUint8(e+64,1)}catch(t){n((e=this._inst.exports.getsp()>>>0)+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{let t=r(e+8),a=l(e+16),s=Reflect.apply(t,void 0,a);e=this._inst.exports.getsp()>>>0,n(e+40,s),this.mem.setUint8(e+48,1)}catch(t){n((e=this._inst.exports.getsp()>>>0)+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{let t=r(e+8),a=l(e+16),s=Reflect.construct(t,a);e=this._inst.exports.getsp()>>>0,n(e+40,s),this.mem.setUint8(e+48,1)}catch(t){n((e=this._inst.exports.getsp()>>>0)+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":t=>{e((t>>>=0)+16,parseInt(r(t+8).length))},"syscall/js.valuePrepareString":t=>{t>>>=0;let a=s.encode(String(r(t+8)));n(t+16,a),e(t+24,a.length)},"syscall/js.valueLoadString":e=>{let t=r((e>>>=0)+8);o(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,+(r(e+8)instanceof r(e+16)))},"syscall/js.copyBytesToGo":t=>{let a=o((t>>>=0)+8),n=r(t+32);if(!(n instanceof Uint8Array||n instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);let s=n.subarray(0,a.length);a.set(s),e(t+40,s.length),this.mem.setUint8(t+48,1)},"syscall/js.copyBytesToJS":t=>{let a=r((t>>>=0)+8),n=o(t+16);if(!(a instanceof Uint8Array||a instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);let s=n.subarray(0,a.length);a.set(s),e(t+40,s.length),this.mem.setUint8(t+48,1)},debug:e=>{console.log(e)}}}}run(e){return r(this,null,function*(){if(!(e instanceof WebAssembly.Instance))throw Error("Go.run: WebAssembly.Instance expected");this._inst=e,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,a,this],this._goRefCounts=Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[a,5],[this,6]]),this._idPool=[],this.exited=!1;let t=4096,r=e=>{let r=t,a=s.encode(e+"\0");return new Uint8Array(this.mem.buffer,t,a.length).set(a),(t+=a.length)%8!=0&&(t+=8-t%8),r},n=this.argv.length,i=[];this.argv.forEach(e=>{i.push(r(e))}),i.push(0),Object.keys(this.env).sort().forEach(e=>{i.push(r(`${e}=${this.env[e]}`))}),i.push(0);let o=t;if(i.forEach(e=>{this.mem.setUint32(t,e,!0),this.mem.setUint32(t+4,0,!0),t+=8}),t>=12288)throw Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(n,o),this.exited&&this._resolveExitPromise(),yield this._exitPromise})}_resume(){if(this.exited)throw Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(e){let t=this;return function(){let r={id:e,this:this,args:arguments};return t._pendingEvent=r,t._resume(),r.result}}},t=({data:n})=>{let s,i=new TextDecoder,o=a.fs,l="";o.writeSync=(t,r)=>{if(1===t)e(r);else if(2===t){let e=(l+=i.decode(r)).split("\n");e.length>1&&console.log(e.slice(0,-1).join("\n")),l=e[e.length-1]}else throw Error("Bad write");return r.length};let c=[],d=0;t=({data:e})=>(e.length>0&&(c.push(e),s&&s()),u),o.read=(e,t,r,a,n,i)=>{if(0!==e||0!==r||a!==t.length||null!==n)throw Error("Bad read");if(0===c.length){s=()=>o.read(e,t,r,a,n,i);return}let l=c[0],u=Math.max(0,Math.min(a,l.length-d));t.set(l.subarray(d,d+u),r),(d+=u)===l.length&&(c.shift(),d=0),i(null,u)};let u=new a.Go;return u.argv=["","--service=0.25.8"],(function(e,t){return r(this,null,function*(){if(e instanceof WebAssembly.Module)return WebAssembly.instantiate(e,t.importObject);let r=yield fetch(e);if(!r.ok)throw Error(`Failed to download ${JSON.stringify(e)}`);if("instantiateStreaming"in WebAssembly&&/^application\/wasm($|;)/i.test(r.headers.get("Content-Type")||""))return(yield WebAssembly.instantiateStreaming(r,t.importObject)).instance;let a=yield r.arrayBuffer();return(yield WebAssembly.instantiate(a,t.importObject)).instance})})(n,u).then(t=>{e(null),u.run(t)},t=>{e(t)}),u},e=>t(e)})(e=>c.onmessage({data:e}));c={onmessage:null,postMessage:r=>setTimeout(()=>{try{e=t({data:r})}catch(e){d(e)}}),terminate(){if(e)for(let t of e._scheduledTimeouts.values())clearTimeout(t)}}}let ec=new Promise((e,t)=>{u=e,f=t});c.onmessage=({data:e})=>{c.onmessage=({data:e})=>ed(e),e?f(e):u()},c.postMessage(a||new URL(e,location.href).toString());let{readFromStdout:ed,service:eu}=(l={writeToStdin(e){c.postMessage(e)},isSync:!1,hasFS:!1,esbuild:m},g={},I={didClose:!1,reason:""},j={},D=0,z=0,N=new Uint8Array(16384),X=0,ee=(e,t,r)=>{if(I.didClose)return r("The service is no longer running"+I.reason,null);let a=D++;j[a]=(t,a)=>{try{r(t,a)}finally{e&&e.unref()}},e&&e.ref(),l.writeToStdin(h({id:a,isRequest:!0,value:t}))},es=(e,t)=>{if(I.didClose)throw Error("The service is no longer running"+I.reason);l.writeToStdin(h({id:e,isRequest:!1,value:t}))},ei=!0,eo=e=>{if(ei){ei=!1;let t=String.fromCharCode(...e);if("0.25.8"!==t)throw Error(`Cannot start service: Host version "0.25.8" does not match binary version ${b(t)}`);return}let t=function(e){let t=()=>{switch(a.read8()){case 0:return null;case 1:return!!a.read8();case 2:return a.read32();case 3:return r(a.read());case 4:return a.read();case 5:{let e=a.read32(),r=[];for(let a=0;a>>=1;let i=t();if(a.ptr!==e.length)throw Error("Invalid packet");return{id:n,isRequest:s,value:i}}(e);if(t.isRequest){let e,r;e=t.id,r=t.value,p(null,null,function*(){try{if("ping"===r.command)return void es(e,{});if("number"==typeof r.key){let t=g[r.key];if(!t)return;let a=t[r.command];if(a)return void(yield a(e,r))}throw Error("Invalid command: "+r.command)}catch(r){let t=[Z(r,l,null,void 0,"")];try{es(e,{errors:t})}catch(e){}}})}else{let e=j[t.id];delete j[t.id],t.value.error?e(t.value.error,{}):e(null,t.value)}},{readFromStdout:e=>{let t=X+e.length;if(t>N.length){let e=new Uint8Array(2*t);e.set(N),N=e}N.set(e,X),X+=e.length;let r=0;for(;r+4<=X;){let e=v(N,r);if(r+4+e>X)break;r+=4,eo(N.subarray(r,r+e)),r+=e}r>0&&(N.copyWithin(0,r,X),X-=r)},afterClose:e=>{I.didClose=!0,e&&(I.reason=": "+(e.message||e));let t="The service was stopped"+I.reason;for(let e in j)j[e](t,null);j={}},service:{buildOrContext:({callName:e,refs:a,options:n,isTTY:s,defaultWD:i,callback:o})=>{let c=0,d=z++,u={},m={ref(){1==++c&&a&&a.ref()},unref(){0==--c&&(delete g[d],a&&a.unref())}};g[d]=u,m.ref(),function(e,a,n,s,i,o,l,c,d,u,m){let f,g=J(),h="context"===e,y=(e,t)=>{let r=[];try{q(r,c,{},d,A)}catch(e){}let a=Z(e,o,g,void 0,t);n(i,{command:"error",flags:r,error:a},()=>{a.detail=g.load(a.detail),m(K(h?"Context failed":"Build failed",[a],[]),null)})};if("object"==typeof c){let e=c.plugins;if(void 0!==e){if(!Array.isArray(e))return y(Error('"plugins" must be an array'),"");f=e}}if(f&&f.length>0){let e,r,d,u,m,h,I,A,w;return o.isSync?y(Error("Cannot use plugins in synchronous API calls"),""):(e=a,r=n,d=s,u=i,m=o,h=l,I=c,A=f,w=g,p(null,null,function*(){let a=[],n=[],s={},i={},o=[],l=0,c=0,f=[],g=!1;for(let t of A=[...A]){let d={};if("object"!=typeof t)throw Error(`Plugin at index ${c} must be an object`);let p=L(t,d,"name",_);if("string"!=typeof p||""===p)throw Error(`Plugin at index ${c} is missing a name`);try{let h=L(t,d,"setup",k);if("function"!=typeof h)throw Error("Plugin is missing a setup function");G(t,d,`on plugin ${b(p)}`);let y={name:p,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};c++;let v=(t,a={})=>{if(!g)throw Error('Cannot call "resolve" before plugin setup has completed');if("string"!=typeof t)throw Error("The path to resolve must be a string");let n=Object.create(null),s=L(a,n,"pluginName",_),i=L(a,n,"importer",_),o=L(a,n,"namespace",_),l=L(a,n,"resolveDir",_),c=L(a,n,"kind",_),d=L(a,n,"pluginData",T),m=L(a,n,"with",F);return G(a,n,"in resolve() call"),new Promise((a,n)=>{let f={command:"resolve",path:t,key:e,pluginName:p};if(null!=s&&(f.pluginName=s),null!=i&&(f.importer=i),null!=o&&(f.namespace=o),null!=l&&(f.resolveDir=l),null!=c)f.kind=c;else throw Error('Must specify "kind" when calling "resolve"');null!=d&&(f.pluginData=w.store(d)),null!=m&&(f.with=function(e,t){let r=Object.create(null);for(let a in e){let n=e[a];if("string"!=typeof n)throw Error(`key ${b(a)} in object ${b(t)} must be a string`);r[a]=n}return r}(m,"with")),r(u,f,(e,t)=>{null!==e?n(Error(e)):a({errors:Q(t.errors,w),warnings:Q(t.warnings,w),path:t.path,external:t.external,sideEffects:t.sideEffects,namespace:t.namespace,suffix:t.suffix,pluginData:w.load(t.pluginData)})})})},A=h({initialOptions:I,resolve:v,onStart(e){let t=Y(Error('This error came from the "onStart" callback registered here:'),m,"onStart");a.push({name:p,callback:e,note:t}),y.onStart=!0},onEnd(e){let t=Y(Error('This error came from the "onEnd" callback registered here:'),m,"onEnd");n.push({name:p,callback:e,note:t}),y.onEnd=!0},onResolve(e,t){let r=Y(Error('This error came from the "onResolve" callback registered here:'),m,"onResolve"),a={},n=L(e,a,"filter",x),i=L(e,a,"namespace",_);if(G(e,a,`in onResolve() call for plugin ${b(p)}`),null==n)throw Error("onResolve() call is missing a filter");let o=l++;s[o]={name:p,callback:t,note:r},y.onResolve.push({id:o,filter:en(n),namespace:i||""})},onLoad(e,t){let r=Y(Error('This error came from the "onLoad" callback registered here:'),m,"onLoad"),a={},n=L(e,a,"filter",x),s=L(e,a,"namespace",_);if(G(e,a,`in onLoad() call for plugin ${b(p)}`),null==n)throw Error("onLoad() call is missing a filter");let o=l++;i[o]={name:p,callback:t,note:r},y.onLoad.push({id:o,filter:en(n),namespace:s||""})},onDispose(e){o.push(e)},esbuild:m.esbuild});A&&(yield A),f.push(y)}catch(e){return{ok:!1,error:e,pluginName:p}}}h["on-start"]=(e,t)=>p(null,null,function*(){w.clear();let t={errors:[],warnings:[]};yield Promise.all(a.map(e=>p(null,[e],function*({name:e,callback:r,note:a}){try{let a=yield r();if(null!=a){if("object"!=typeof a)throw Error(`Expected onStart() callback in plugin ${b(e)} to return an object`);let r={},n=L(a,r,"errors",R),s=L(a,r,"warnings",R);G(a,r,`from onStart() callback in plugin ${b(e)}`),null!=n&&t.errors.push(...et(n,"errors",w,e,void 0)),null!=s&&t.warnings.push(...et(s,"warnings",w,e,void 0))}}catch(r){t.errors.push(Z(r,m,w,a&&a(),e))}}))),d(e,t)}),h["on-resolve"]=(e,t)=>p(null,null,function*(){let r={},a="",n,i;for(let e of t.ids)try{({name:a,callback:n,note:i}=s[e]);let o=yield n({path:t.path,importer:t.importer,namespace:t.namespace,resolveDir:t.resolveDir,kind:t.kind,pluginData:w.load(t.pluginData),with:t.with});if(null!=o){if("object"!=typeof o)throw Error(`Expected onResolve() callback in plugin ${b(a)} to return an object`);let t={},n=L(o,t,"pluginName",_),s=L(o,t,"path",_),i=L(o,t,"namespace",_),l=L(o,t,"suffix",_),c=L(o,t,"external",C),d=L(o,t,"sideEffects",C),u=L(o,t,"pluginData",T),p=L(o,t,"errors",R),m=L(o,t,"warnings",R),f=L(o,t,"watchFiles",O),g=L(o,t,"watchDirs",O);G(o,t,`from onResolve() callback in plugin ${b(a)}`),r.id=e,null!=n&&(r.pluginName=n),null!=s&&(r.path=s),null!=i&&(r.namespace=i),null!=l&&(r.suffix=l),null!=c&&(r.external=c),null!=d&&(r.sideEffects=d),null!=u&&(r.pluginData=w.store(u)),null!=p&&(r.errors=et(p,"errors",w,a,void 0)),null!=m&&(r.warnings=et(m,"warnings",w,a,void 0)),null!=f&&(r.watchFiles=er(f,"watchFiles")),null!=g&&(r.watchDirs=er(g,"watchDirs"));break}}catch(t){r={id:e,errors:[Z(t,m,w,i&&i(),a)]};break}d(e,r)}),h["on-load"]=(e,r)=>p(null,null,function*(){let a={},n="",s,o;for(let e of r.ids)try{({name:n,callback:s,note:o}=i[e]);let l=yield s({path:r.path,namespace:r.namespace,suffix:r.suffix,pluginData:w.load(r.pluginData),with:r.with});if(null!=l){if("object"!=typeof l)throw Error(`Expected onLoad() callback in plugin ${b(n)} to return an object`);let r={},s=L(l,r,"pluginName",_),i=L(l,r,"contents",U),o=L(l,r,"resolveDir",_),c=L(l,r,"pluginData",T),d=L(l,r,"loader",_),u=L(l,r,"errors",R),p=L(l,r,"warnings",R),m=L(l,r,"watchFiles",O),f=L(l,r,"watchDirs",O);G(l,r,`from onLoad() callback in plugin ${b(n)}`),a.id=e,null!=s&&(a.pluginName=s),i instanceof Uint8Array?a.contents=i:null!=i&&(a.contents=t(i)),null!=o&&(a.resolveDir=o),null!=c&&(a.pluginData=w.store(c)),null!=d&&(a.loader=d),null!=u&&(a.errors=et(u,"errors",w,n,void 0)),null!=p&&(a.warnings=et(p,"warnings",w,n,void 0)),null!=m&&(a.watchFiles=er(m,"watchFiles")),null!=f&&(a.watchDirs=er(f,"watchDirs"));break}}catch(t){a={id:e,errors:[Z(t,m,w,o&&o(),n)]};break}d(e,a)});let y=(e,t)=>t([],[]);return n.length>0&&(y=(e,t)=>{p(null,null,function*(){let r=[],a=[];for(let{name:t,callback:s,note:i}of n){let n,o;try{let r=yield s(e);if(null!=r){if("object"!=typeof r)throw Error(`Expected onEnd() callback in plugin ${b(t)} to return an object`);let e={},a=L(r,e,"errors",R),s=L(r,e,"warnings",R);G(r,e,`from onEnd() callback in plugin ${b(t)}`),null!=a&&(n=et(a,"errors",w,t,void 0)),null!=s&&(o=et(s,"warnings",w,t,void 0))}}catch(e){n=[Z(e,m,w,i&&i(),t)]}if(n){r.push(...n);try{e.errors.push(...n)}catch(e){}}if(o){a.push(...o);try{e.warnings.push(...o)}catch(e){}}}t(r,a)})}),g=!0,{ok:!0,requestPlugins:f,runOnEndCallbacks:y,scheduleOnDisposeCallbacks:()=>{for(let e of o)setTimeout(()=>e(),0)}}})).then(e=>{if(!e.ok)return y(e.error,e.pluginName);try{v(e.requestPlugins,e.runOnEndCallbacks,e.scheduleOnDisposeCallbacks)}catch(e){y(e,"")}},e=>y(e,""))}try{v(null,(e,t)=>t([],[]),()=>{})}catch(e){y(e,"")}function v(p,f,y){let v,I,{entries:b,flags:w,write:T,stdinContents:x,stdinResolveDir:R,absWorkingDir:j,nodePaths:D,mangleCache:z}=function(e,r,a,n,s){var i;let o=[],l=[],c=Object.create(null),d=null,u=null;q(o,r,c,a,n),H(o,r,c);let p=L(r,c,"sourcemap",V),m=L(r,c,"bundle",C),f=L(r,c,"splitting",C),g=L(r,c,"preserveSymlinks",C),h=L(r,c,"metafile",C),y=L(r,c,"outfile",_),v=L(r,c,"outdir",_),I=L(r,c,"outbase",_),b=L(r,c,"tsconfig",_),A=L(r,c,"resolveExtensions",O),w=L(r,c,"nodePaths",O),T=L(r,c,"mainFields",O),x=L(r,c,"conditions",O),M=L(r,c,"external",O),E=L(r,c,"packages",_),k=L(r,c,"alias",F),R=L(r,c,"loader",F),j=L(r,c,"outExtension",F),D=L(r,c,"publicPath",_),z=L(r,c,"entryNames",_),$=L(r,c,"chunkNames",_),N=L(r,c,"assetNames",_),J=L(r,c,"inject",O),Y=L(r,c,"banner",F),Z=L(r,c,"footer",F),X=L(r,c,"entryPoints",P),K=L(r,c,"absWorkingDir",_),Q=L(r,c,"stdin",F),ee=null!=(i=L(r,c,"write",C))?i:s,et=L(r,c,"allowOverwrite",C),er=L(r,c,"mangleCache",F);if(c.plugins=!0,G(r,c,`in ${e}() call`),p&&o.push(`--sourcemap${!0===p?"":`=${p}`}`),m&&o.push("--bundle"),et&&o.push("--allow-overwrite"),f&&o.push("--splitting"),g&&o.push("--preserve-symlinks"),h&&o.push("--metafile"),y&&o.push(`--outfile=${y}`),v&&o.push(`--outdir=${v}`),I&&o.push(`--outbase=${I}`),b&&o.push(`--tsconfig=${b}`),E&&o.push(`--packages=${E}`),A&&o.push(`--resolve-extensions=${S(A,"resolve extension")}`),D&&o.push(`--public-path=${D}`),z&&o.push(`--entry-names=${z}`),$&&o.push(`--chunk-names=${$}`),N&&o.push(`--asset-names=${N}`),T&&o.push(`--main-fields=${S(T,"main field")}`),x&&o.push(`--conditions=${S(x,"condition")}`),M)for(let e of M)o.push(`--external:${W(e,"external")}`);if(k)for(let e in k){if(e.indexOf("=")>=0)throw Error(`Invalid package name in alias: ${e}`);o.push(`--alias:${e}=${W(k[e],"alias",e)}`)}if(Y)for(let e in Y){if(e.indexOf("=")>=0)throw Error(`Invalid banner file type: ${e}`);o.push(`--banner:${e}=${W(Y[e],"banner",e)}`)}if(Z)for(let e in Z){if(e.indexOf("=")>=0)throw Error(`Invalid footer file type: ${e}`);o.push(`--footer:${e}=${W(Z[e],"footer",e)}`)}if(J)for(let e of J)o.push(`--inject:${W(e,"inject")}`);if(R)for(let e in R){if(e.indexOf("=")>=0)throw Error(`Invalid loader extension: ${e}`);o.push(`--loader:${e}=${W(R[e],"loader",e)}`)}if(j)for(let e in j){if(e.indexOf("=")>=0)throw Error(`Invalid out extension: ${e}`);o.push(`--out-extension:${e}=${W(j[e],"out extension",e)}`)}if(X)if(Array.isArray(X))for(let e=0,t=X.length;e{let a={errors:Q(e.errors,g),warnings:Q(e.warnings,g),outputFiles:void 0,metafile:void 0,mangleCache:void 0},n=a.errors.slice(),s=a.warnings.slice();e.outputFiles&&(a.outputFiles=e.outputFiles.map(ea)),e.metafile&&(a.metafile=JSON.parse(e.metafile)),e.mangleCache&&(a.mangleCache=e.mangleCache),void 0!==e.writeToStdout&&console.log(r(e.writeToStdout).replace(/\n$/,"")),f(a,(e,r)=>{if(n.length>0||e.length>0)return t(K("Build failed",n.concat(e),s.concat(r)),null,e,r);t(null,a,e,r)})};h&&(l["on-end"]=(e,t)=>new Promise(r=>{J(t,(t,a,n,i)=>{I&&I(t,a),v=void 0,I=void 0,s(e,{errors:n,warnings:i}),r()})})),n(i,N,(e,t)=>{if(e)return m(Error(e),null);if(!h)return J(t,(e,t)=>(y(),m(e,t)));if(t.errors.length>0)return m(K("Context failed",t.errors,t.warnings),null);let r=!1;i.ref(),m(null,{rebuild:()=>(v||(v=new Promise((e,t)=>{let r;I=(a,n)=>{r||(r=()=>a?t(a):e(n))};let s=()=>{n(i,{command:"rebuild",key:a},(e,a)=>{e?t(Error(e)):r?r():s()})};s()})),v),watch:(e={})=>new Promise((t,r)=>{if(!o.hasFS)throw Error('Cannot use the "watch" API in this environment');let s={},l=L(e,s,"delay",M);G(e,s,"in watch() call");let c={command:"watch",key:a};l&&(c.delay=l),n(i,c,e=>{e?r(Error(e)):t(void 0)})}),serve:(e={})=>new Promise((t,r)=>{if(!o.hasFS)throw Error('Cannot use the "serve" API in this environment');let c={},d=L(e,c,"port",E),u=L(e,c,"host",_),p=L(e,c,"servedir",_),m=L(e,c,"keyfile",_),f=L(e,c,"certfile",_),g=L(e,c,"fallback",_),h=L(e,c,"cors",F),y=L(e,c,"onRequest",k);G(e,c,"in serve() call");let v={command:"serve",key:a,onRequest:!!y};if(void 0!==d&&(v.port=d),void 0!==u&&(v.host=u),void 0!==p&&(v.servedir=p),void 0!==m&&(v.keyfile=m),void 0!==f&&(v.certfile=f),void 0!==g&&(v.fallback=g),h){let e={},t=L(h,e,"origin",$);G(h,e,'on "cors" object'),Array.isArray(t)?v.corsOrigin=t:void 0!==t&&(v.corsOrigin=[t])}n(i,v,(e,a)=>{if(e)return r(Error(e));y&&(l["serve-request"]=(e,t)=>{y(t.args),s(e,{})}),t(a)})}),cancel:()=>new Promise(e=>{if(r)return e();n(i,{command:"cancel",key:a},()=>{e()})}),dispose:()=>new Promise(e=>{if(r)return e();r=!0,n(i,{command:"dispose",key:a},()=>{e(),y(),i.unref()})})})})}}(e,d,ee,es,m,l,u,n,s,i,(e,t)=>{try{o(e,t)}finally{m.unref()}})},transform:({callName:e,refs:r,input:a,options:n,isTTY:s,fs:i,callback:o})=>{let c=J(),d=d=>{try{let l,u,p,m,f,g,h,y;if("string"!=typeof a&&!(a instanceof Uint8Array))throw Error('The input to "transform" must be a string or a Uint8Array');let{flags:v,mangleCache:I}=(l=[],u=Object.create(null),q(l,n,u,s,w),H(l,n,u),p=L(n,u,"sourcemap",V),m=L(n,u,"sourcefile",_),f=L(n,u,"loader",_),g=L(n,u,"banner",_),h=L(n,u,"footer",_),y=L(n,u,"mangleCache",F),G(n,u,`in ${e}() call`),p&&l.push(`--sourcemap=${!0===p?"external":p}`),m&&l.push(`--sourcefile=${m}`),f&&l.push(`--loader=${f}`),g&&l.push(`--banner=${g}`),h&&l.push(`--footer=${h}`),{flags:l,mangleCache:B(y)}),b={command:"transform",flags:v,inputFS:null!==d,input:null!==d?t(d):"string"==typeof a?t(a):a};I&&(b.mangleCache=I),ee(r,b,(e,t)=>{if(e)return o(Error(e),null);let r=Q(t.errors,c),a=Q(t.warnings,c),n=1,s=()=>{if(0==--n){let e={warnings:a,code:t.code,map:t.map,mangleCache:void 0,legalComments:void 0};"legalComments"in t&&(e.legalComments=null==t?void 0:t.legalComments),t.mangleCache&&(e.mangleCache=null==t?void 0:t.mangleCache),o(null,e)}};if(r.length>0)return o(K("Transform failed",r,a),null);t.codeFS&&(n++,i.readFile(t.code,(e,r)=>{null!==e?o(e,null):(t.code=r,s())})),t.mapFS&&(n++,i.readFile(t.map,(e,r)=>{null!==e?o(e,null):(t.map=r,s())})),s()})}catch(a){let e=[];try{q(e,n,{},s,w)}catch(e){}let t=Z(a,l,c,void 0,"");ee(r,{command:"error",flags:e,error:t},()=>{t.detail=c.load(t.detail),o(K("Transform failed",[t],[]),null)})}};if(("string"==typeof a||a instanceof Uint8Array)&&a.length>1048576){let e=d;d=()=>i.writeFile(a,e)}d(null)},formatMessages:({callName:e,refs:t,messages:r,options:a,callback:n})=>{if(!a)throw Error(`Missing second argument in ${e}() call`);let s={},i=L(a,s,"kind",_),o=L(a,s,"color",C),l=L(a,s,"terminalWidth",M);if(G(a,s,`in ${e}() call`),void 0===i)throw Error(`Missing "kind" in ${e}() call`);if("error"!==i&&"warning"!==i)throw Error(`Expected "kind" to be "error" or "warning" in ${e}() call`);let c={command:"format-msgs",messages:et(r,"messages",null,"",l),isWarning:"warning"===i};void 0!==o&&(c.color=o),void 0!==l&&(c.terminalWidth=l),ee(t,c,(e,t)=>{if(e)return n(Error(e),null);n(null,t.messages)})},analyzeMetafile:({callName:e,refs:t,metafile:r,options:a,callback:n})=>{void 0===a&&(a={});let s={},i=L(a,s,"color",C),o=L(a,s,"verbose",C);G(a,s,`in ${e}() call`);let l={command:"analyze-metafile",metafile:r};void 0!==i&&(l.color=i),void 0!==o&&(l.verbose=o),ee(t,l,(e,t)=>{if(e)return n(Error(e),null);n(null,t.result)})}}});yield ec,i=()=>{c.terminate(),s=void 0,i=void 0,o=void 0},o={build:e=>new Promise((t,r)=>{el.then(r),eu.buildOrContext({callName:"build",refs:null,options:e,isTTY:!1,defaultWD:"/",callback:(e,a)=>e?r(e):t(a)})}),context:e=>new Promise((t,r)=>{el.then(r),eu.buildOrContext({callName:"context",refs:null,options:e,isTTY:!1,defaultWD:"/",callback:(e,a)=>e?r(e):t(a)})}),transform:(e,t)=>new Promise((r,a)=>{el.then(a),eu.transform({callName:"transform",refs:null,input:e,options:t||{},isTTY:!1,fs:{readFile(e,t){t(Error("Internal error"),null)},writeFile(e,t){t(null)}},callback:(e,t)=>e?a(e):r(t)})}),formatMessages:(e,t)=>new Promise((r,a)=>{el.then(a),eu.formatMessages({callName:"formatMessages",refs:null,messages:e,options:t,callback:(e,t)=>e?a(e):r(t)})}),analyzeMetafile:(e,t)=>new Promise((r,a)=>{el.then(a),eu.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:"string"==typeof e?e:JSON.stringify(e),options:t,callback:(e,t)=>e?a(e):r(t)})})}}),eI=m})(t)},479017,(e,t,r)=>{!function(t,r){if("function"==typeof define&&define.amd){let t;void 0!==(t=r())&&e.v(t)}else r()}(e.e,function(){"use strict";function r(e,t,r){var a=new XMLHttpRequest;a.open("GET",e),a.responseType="blob",a.onload=function(){o(a.response,t,r)},a.onerror=function(){console.error("could not download file")},a.send()}function a(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(r){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 s="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:e.g.global===e.g?e.g:void 0,i=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),o=s.saveAs||("object"!=typeof window||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(e,t,i){var o=s.URL||s.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):a(l.href)?r(e,t,i):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,s){if(t=t||e.name||"download","string"!=typeof e){var i;navigator.msSaveOrOpenBlob((void 0===(i=s)?i={autoBom:!1}:"object"!=typeof i&&(console.warn("Deprecated: Expected third argument to be a object"),i={autoBom:!i}),i.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(a(e))r(e,t,s);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){n(o)})}}:function(e,t,a,n){if((n=n||open("","_blank"))&&(n.document.title=n.document.body.innerText="downloading..."),"string"==typeof e)return r(e,t,a);var o="application/octet-stream"===e.type,l=/constructor/i.test(s.HTMLElement)||s.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||o&&l||i)&&"u">typeof FileReader){var d=new FileReader;d.onloadend=function(){var e=d.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),n?n.location.href=e:location=e,n=null},d.readAsDataURL(e)}else{var u=s.URL||s.webkitURL,p=u.createObjectURL(e);n?n.location=p:location.href=p,n=null,setTimeout(function(){u.revokeObjectURL(p)},4e4)}});s.saveAs=o.saveAs=o,t.exports=o})},925935,e=>{"use strict";var t=e.i(417166),r=e.i(215627),a=e.i(336422),n=e.i(217631),s=e.i(968076);let i=[t.audioFormat.MP3,t.audioFormat.WAV];e.s(["getAttachmentContentPart",0,function(e){switch(e.type){case s.AttachmentType.Image:return e.url?{type:"input_image",image_url:e.url,detail:"auto"}:null;case s.AttachmentType.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 s.AttachmentType.Text:if(!e.content)return null;let l=e.content.replaceAll("\r\n","\n").replaceAll("\r","\n");if(e.mime===t.MimeType.ApplicationIPYNB)return{type:"input_text",text:l};let c=function(e){let t=e.lastIndexOf(".");if(-1===t)return"";let a=e.slice(t).toLowerCase();return r.extensionToLanguageMap[a]||""}(e.name);return{type:"input_text",text:`\`\`\`${c} ${l} \`\`\``};case s.AttachmentType.Audio:let d=e.content??e.url;if(!d)return null;let u=t.audioMimeToFormat[e.mime??""]??t.audioFormat.MP3;return(0,n.isMember)(u,i)?{type:"input_audio",input_audio:{data:d,format:u}}:null;case s.AttachmentType.Video:let p;return(p=e.url??e.content)?{type:"input_video",video_url:p}:null;default:(0,a.assertNever)(e.type)}}])},544678,668418,e=>{"use strict";var t=e.i(981895),r=e.i(781656),a=e.i(780579);let n=(e="",t=globalThis.window?.location.search)=>a.default.parse(t)[e];e.s(["getNewUrl",0,(e,{encode:t=!0,skipEmptyString:n=!0,queryString:s=globalThis.window?.location.search}={})=>{if(!globalThis.window)return new URL((0,r.getSiteURL)());let i=new URL(globalThis.window?.location.href),o=a.default.parse(s);return i.search=a.default.stringify({...o,...e},{encode:t,arrayFormat:"comma",sort:!1,skipEmptyString:n}),i},"getQueryStringValue",0,n],668418);var s=e.i(267482),i=e.i(442427),o=e.i(693697),l=e.i(464314),c=e.i(260715);async function d({params:e,abortController:r=new AbortController,defaultApiVersion:a="v1",title:n="OpenRouter: Chatroom",fetchApi:s=(0,c.createPublicPlaygroundTransport)().fetchApi}){(0,l.trackFetchResponses)({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 p=await u({params:e,abortController:r,defaultApiVersion:a,title:n,fetchApi:s});return(0,o.isErr)(p)&&(0,t.isSessionExpiredError)(p.error)?(await (0,i.delay)(1e3),u({params:e,abortController:r,defaultApiVersion:a,title:n,fetchApi:s})):p}function u({params:e,abortController:t,defaultApiVersion:r,title:a,fetchApi:i}){let o=n("api")??r,l=`${location.origin}${location.pathname}`,c={"Content-Type":"application/json","HTTP-Referer":l,"X-OpenRouter-Title":a,"X-OpenRouter-Metadata":"enabled"};return(0,s.toResponseResult)(()=>i(`/api/${o}/responses`,{signal:t.signal,referrer:l,method:"POST",headers:c,body:JSON.stringify(e)}),()=>u({params:e,abortController:t,defaultApiVersion:r,title:a,fetchApi:i}))}e.s(["fetchApiResponse",0,d],544678)},702698,55103,e=>{"use strict";var t=e.i(645907);let r=t.VideoGenerationResponseSchema.pick({id:!0,polling_url:!0,status:!0}),a=t.VideoGenerationResponseSchema.extend({polling_url:t.VideoGenerationResponseSchema.shape.polling_url.optional()});e.s(["VideoPollResponseSchema",0,a,"VideoSubmitResponseSchema",0,r],702698);var n=e.i(693697),s=e.i(204067),i=e.i(796805);let o="Video generation failed",l=i.z.object({error:i.z.object({message:i.z.unknown().optional()}).optional().catch(void 0),message:i.z.unknown().optional()}),c=i.z.object({error:i.z.object({message:i.z.string()})});e.s(["extractVideoErrorMessage",0,function(e){if(!e)return o;let t=(0,s.parseSchema)(s.StringifiedJsonSchema,e);if((0,n.isErr)(t))return e;let r=(0,s.parseSchema)(l,t.data);if((0,n.isErr)(r))return o;let a=r.data.error?.message??r.data.message;if("string"!=typeof a)return o;let i=(0,s.parseSchema)(s.StringifiedJsonSchema.pipe(c),a);return(0,n.isErr)(i)?a:i.data.error.message}],55103)},281501,e=>{"use strict";var t=e.i(417166),r=e.i(832195),a=e.i(350782);function n(e){var r,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 t.MimeType.ImagePNG;if(e.length>=3&&255===e[0]&&216===e[1]&&255===e[2])return t.MimeType.ImageJPEG;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 t.MimeType.ImageWebP;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 t.MimeType.ImageGIF;let n=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!==n&&(p(r=e,a=n,s)||p(r,a,i)&&function(e,t){let r=t+i.length;for(;r=e.length)return r;if(p(e,r,o)){r=u(e,r+o.length,l);continue}if(p(e,r,c)){r=function(e,t){let r=t;for(;re.length)return!1;for(let a=0;a)/i;function g(e){var s;let i;return e.startsWith("data:")||e.startsWith("http")?e:(0,a.encodeBase64DataURL)({mimeType:(s=e,(i=(0,r.decodeBase64ToBytes)(s))?n(i)??t.MimeType.ImagePNG:s.startsWith("/9j/")?t.MimeType.ImageJPEG:s.startsWith("UklGR")?t.MimeType.ImageWebP:t.MimeType.ImagePNG),base64:e})}function h(e,t){let r;for(let a=t;a"===t)return a}return -1}e.s(["parseSizeString",0,function(e){let t=/^(\d+)x(\d+)$/.exec(e);if(t)return{width:Number(t[1]),height:Number(t[2])}},"resizeImageToSize",0,function({dataUri:e,targetWidth:t,targetHeight:r}){return new Promise((a,n)=>{let s=new Image;s.onload=()=>{let n=document.createElement("canvas");n.width=t,n.height=r;let i=n.getContext("2d");i?(i.drawImage(s,0,0,t,r),a(n.toDataURL("image/jpeg",.9))):a(e)},s.onerror=()=>n(Error("Failed to load image for resize")),s.src=e})},"toImageDataUri",0,g,"toImagePreviewUrl",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 r=e.slice(0,t),a=e.slice(t).trimEnd();if(a.startsWith("`:`${s}/>`;return`${r}${i}`}((r=n,(a=/<\/svg\s*>/i.exec(r))?r.slice(0,a.index+a[0].length):r));if(!s)return;let i=function(e){let t=[],r=0;for(;r",a+4);r=-1===t?e.length:t+3;continue}let n=h(e,a);if(-1===n)break;(function(e,t){var r;if(t.startsWith("$/.test(r)||e.push(i)})(t,e.slice(a,n+1)),r=n+1}return`${e}${t.reverse().map(e=>``).join("")}`}(s);return!function(e){if("u"{"use strict";var t=e.i(719929),r=e.i(12822),a=e.i(591444),n=e.i(462904),s=e.i(678130),i=e.i(838328),o=e.i(204067),l=e.i(796805);let c=l.z.nativeEnum(i.ApiErrorType).openapi("ApiErrorType",{description:"Canonical OpenRouter error type, stable across all API formats",example:i.ApiErrorType.RateLimitExceeded});t.HTTPStatus.S400_Bad_Request,i.ApiErrorType.InvalidRequest,t.HTTPStatus.S401_Unauthorized,i.ApiErrorType.Authentication,t.HTTPStatus.S402_Payment_Required,i.ApiErrorType.PaymentRequired,t.HTTPStatus.S403_Forbidden,i.ApiErrorType.PermissionDenied,t.HTTPStatus.S404_Not_Found,i.ApiErrorType.NotFound,t.HTTPStatus.S408_Request_Timeout,i.ApiErrorType.Timeout,t.HTTPStatus.S412_Precondition_Failed,i.ApiErrorType.PreconditionFailed,t.HTTPStatus.S413_Payload_Too_Large,i.ApiErrorType.PayloadTooLarge,t.HTTPStatus.S422_Unprocessable_Entity,i.ApiErrorType.Unprocessable,t.HTTPStatus.S429_Too_Many_Requests,i.ApiErrorType.RateLimitExceeded,t.HTTPStatus.S500_Internal_Server_Error,i.ApiErrorType.Server,t.HTTPStatus.S502_Bad_Gateway,i.ApiErrorType.ProviderUnavailable,t.HTTPStatus.S503_Service_Unavailable,i.ApiErrorType.ProviderOverloaded,t.HTTPStatus.S504_Gateway_Timeout,i.ApiErrorType.Timeout,t.HTTPStatus.S520_Web_Server_Returned_Unknown_Error,i.ApiErrorType.ProviderUnavailable,t.HTTPStatus.S524_A_Timeout_Occurred,i.ApiErrorType.Timeout,t.HTTPStatus.S529_Overloaded,i.ApiErrorType.ProviderOverloaded;let d=new Map(Object.entries(i.HTTP_STATUS_BY_API_ERROR_TYPE));function u(e){if(void 0!==e)return d.get(e)}let p={message:l.z.string(),http_status:l.z.nativeEnum(t.HTTPStatus),provider_code:l.z.string().optional(),raw:l.z.object({message:l.z.string(),data:l.z.unknown().optional()}).optional()},m=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ContextLengthExceeded),context_length:(0,o.zInt)().optional(),max_context_length:(0,o.zInt)().optional()}),f=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.MaxTokensExceeded),tokens_generated:(0,o.zInt)().optional(),max_tokens:(0,o.zInt)().optional()}),g=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.TokenLimitExceeded),token_count:(0,o.zInt)().optional(),token_limit:(0,o.zInt)().optional()}),h=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.StringTooLong),string_length:(0,o.zInt)().optional(),max_length:(0,o.zInt)().optional(),field:l.z.string().optional()}),y=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Authentication)}),v=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.PermissionDenied),required_permission:l.z.string().optional(),resource:l.z.string().optional()}),I=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.PaymentRequired)}),b=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.RateLimitExceeded),retry_after:(0,o.zInt)().optional(),limit_type:l.z.enum(["requests","tokens","both"]).optional(),current_usage:(0,o.zDouble)().optional(),limit:(0,o.zDouble)().optional(),reset_at:l.z.string().optional()}),A=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ProviderOverloaded),retry_after:(0,o.zInt)().optional()}),w=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ProviderUnavailable),retry_after:(0,o.zInt)().optional()}),S=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.InvalidRequest),field:l.z.string().optional(),expected:l.z.string().optional(),received:l.z.string().optional()}),T=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.InvalidPrompt),prompt_index:(0,o.zInt)().optional(),reason:l.z.string().optional()}),C=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.NotFound),resource_type:l.z.string().optional(),resource_id:l.z.string().optional()}),_=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.PreconditionFailed)}),x=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.PayloadTooLarge)}),M=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Unprocessable)}),E=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ContentPolicyViolation),violation_type:l.z.string().optional(),flagged_content:l.z.string().optional(),input_or_output:l.z.enum(["input","output"]).optional()}),k=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Refusal),block_index:(0,o.zInt)().optional(),refusal_content:l.z.string().optional()}),R=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.InvalidImage),image_index:(0,o.zInt)().optional(),reason:l.z.string().optional()}),O=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ImageTooLarge),image_index:(0,o.zInt)().optional(),image_size:(0,o.zInt)().optional(),max_size:(0,o.zInt)().optional(),image_dimensions:l.z.object({width:(0,o.zInt)(),height:(0,o.zInt)()}).optional(),max_dimensions:l.z.object({width:(0,o.zInt)(),height:(0,o.zInt)()}).optional()}),F=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ImageTooSmall),image_index:(0,o.zInt)().optional(),image_dimensions:l.z.object({width:(0,o.zInt)(),height:(0,o.zInt)()}).optional(),min_dimensions:l.z.object({width:(0,o.zInt)(),height:(0,o.zInt)()}).optional()}),P=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.UnsupportedImageFormat),image_index:(0,o.zInt)().optional(),provided_format:l.z.string().optional(),supported_formats:l.z.array(l.z.string()).optional()}),j=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ImageNotFound),image_index:(0,o.zInt)().optional(),image_url:l.z.string().optional(),file_id:l.z.string().optional()}),D=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.ImageDownloadFailed),image_index:(0,o.zInt)().optional(),image_url:l.z.string().optional(),download_error:l.z.string().optional()}),V=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Server),error_id:l.z.string().optional()}),z=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Timeout),timeout_ms:(0,o.zInt)().optional(),elapsed_ms:(0,o.zInt)().optional(),timeout_type:l.z.enum(["connection","read","write","total"]).optional()}),$=l.z.object({...p,error_type:l.z.literal(i.ApiErrorType.Unmapped),original_code:l.z.string().optional()});l.z.discriminatedUnion("error_type",[m,f,g,h,y,v,I,b,A,w,S,T,C,_,x,M,E,k,R,O,F,P,j,D,V,z,$]),e.s(["ApiErrorTypeSchema",0,c,"getHttpStatusForApiErrorType",0,u],5616);var U=e.i(693697);let N=new Map([["rate_limit_exceeded",t.HTTPStatus.S429_Too_Many_Requests],["invalid_prompt",t.HTTPStatus.S400_Bad_Request],["invalid_image",t.HTTPStatus.S400_Bad_Request],["invalid_image_format",t.HTTPStatus.S400_Bad_Request],["invalid_base64_image",t.HTTPStatus.S400_Bad_Request],["invalid_image_url",t.HTTPStatus.S400_Bad_Request],["image_too_large",t.HTTPStatus.S413_Payload_Too_Large],["image_too_small",t.HTTPStatus.S400_Bad_Request],["image_parse_error",t.HTTPStatus.S400_Bad_Request],["image_content_policy_violation",t.HTTPStatus.S403_Forbidden],["invalid_image_mode",t.HTTPStatus.S400_Bad_Request],["image_file_too_large",t.HTTPStatus.S413_Payload_Too_Large],["unsupported_image_media_type",t.HTTPStatus.S400_Bad_Request],["empty_image_file",t.HTTPStatus.S400_Bad_Request],["failed_to_download_image",t.HTTPStatus.S400_Bad_Request],["image_file_not_found",t.HTTPStatus.S404_Not_Found]]);function L(e){return N.get(e)??null}function G(e){return u(e.errorType)??L(e.errorCode)}async function*B(e){for await(let o of(0,s.processSSE)(e)){var i;if((0,U.isErr)(o))return void(yield(0,n.errT)({status:t.HTTPStatus.S502_Bad_Gateway,rawError:o.error,location:"processStream:sse"}));if(o.data===r.sseDoneSentinel)break;let e=(0,U.wrap)(()=>JSON.parse(o.data));if((0,U.isErr)(e))return void(yield(0,n.errT)({status:t.HTTPStatus.S502_Bad_Gateway,rawError:e.error,location:"processStream:parse"}));let s=e.data;if(!(0,a.isPlainObject)(s))return void(yield(0,n.errT)({rawError:"Unexpected non-object SSE payload",location:"processStream:parse"}));if("response.failed"===s.type&&(void 0===s.response||(0,a.isPlainObject)(s.response)&&(void 0===s.response.error||(0,a.isPlainObject)(s.response.error)))){let e=s.response?.error,t=e?.code??"server_error",r=e?.message??"Request failed",a=G({errorType:(i=s.response,"string"==typeof i?.error_type?i.error_type:void 0),errorCode:t});yield(0,n.errT)({status:a,rawError:r,location:"processStream:responseFailed"});return}if("error"===s.type&&"string"==typeof s.message){let e=s.code??"server_error",t=s.message,r=L(e);yield(0,n.errT)({status:r,rawError:t,location:"processStream:streaming"});return}yield(0,U.ok)(e.data)}}e.s(["processResponseStream",0,B,"resolveResponsesFailureStatus",0,G],741841)},12822,678130,e=>{"use strict";e.s(["sseDoneSentinel",0,"[DONE]"],12822),e.i(200222),e.i(629572);class t extends Error{type;field;value;line;lineTerminator;constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line,this.lineTerminator=t.lineTerminator}}function r(e){}function a(e,t,r,n=!1){let s=e.indexOf("\r");if(-1===s){var i,o,l=e,c=t,d=r;let a=0;for(;a{}),t.releaseLock()}}e.i(81174);async function*o(e){let n,o,l,c=(n=new TextDecoder,o=[],l=function(e){let n;if("function"==typeof e)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:s=r,onError:i=r,onRetry:o=r,onComment:l}=e,c=[],d=!0,u="",p="";function m(e,t){if(""===e)return void(u.length>0&&s({id:n,event:p||void 0,data:u.endsWith("\n")?u.slice(0,-1):u}),n=void 0,u="",p="");if(e.startsWith(":")){l&&l(e.slice(e.startsWith(": ")?2:1));return}if(e.startsWith("data:"))return void g(e.slice(" "===e[5]?6:5));let r=e.indexOf(":");if(-1!==r){let a=e.slice(0,r),n=" "===e[r+1]?2:1;f({field:a,value:e.slice(r+n),line:e,lineTerminator:t});return}f({field:e,value:"",line:e,lineTerminator:t})}function f({field:e,value:r,line:a,lineTerminator:s}){switch(e){case"event":p=r;break;case"data":g(r);break;case"id":n=r.includes("\0")?void 0:r;break;case"retry":/^\d+$/.test(r)?o(Number.parseInt(r,10)):i(new t(`Invalid \`retry\` value: "${r}"`,{type:"invalid-retry",value:r,line:a,lineTerminator:s}));break;default:i(new t(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:r,line:a,lineTerminator:s}))}}function g(e){u=`${u}${e} `}return{feed:function(e){let t=d?e.replace(/^\u00EF\xBB\u00BF/,""):e;if(c.push(t),!t.includes("\n")&&!t.includes("\r")){d=!1;return}let r=c.join("");c=[];let n=a(r,m,g);n&&c.push(n),d=!1},reset:function(e={}){let t;if(c.length>0&&e.consume){let e=c.join("");if(e){let r=a(e,m,g,!0);r&&m(r),t=e}}return d=!0,n=void 0,u="",p="",c=[],t}}}({onEvent:e=>{o.push(e.data)}}),e=>{o=[];let t=e?n.decode(e,{stream:!0}):n.decode();return l.feed(t),o}),d=i(e);try{for await(let e of d)for(let t of c(e))yield(0,s.ok)(t)}catch(e){yield(0,s.err)(e)}return d}e.s(["processSSE",0,o],678130)},471316,e=>{"use strict";var t=e.i(122901),r=e.i(22022);e.s(["createCharacterData",0,function(e={}){let a=new Date,n=e.modelInfo??null,s=(0,r.isChromeGeminiNanoModelSlug)(e.model??n?.slug)?(0,r.getChromeGeminiNanoCharacterDefaults)():null;return{id:e.id??(0,t.orid)(t.ORIDType.Character),name:e.name??s?.name,model:e.model??"auto",modelInfo:n,description:e.description??s?.description??"",includeDefaultSystemPrompt:e.includeDefaultSystemPrompt??s?.includeDefaultSystemPrompt??!0,avatarUrl:e.avatarUrl??void 0,presetSlug:e.presetSlug,presetName:e.presetName,isStreaming:e.isStreaming??!0,samplingParameters:function(e,t={}){let r=e?.default_parameters??{},a={};for(let[e,t]of Object.entries(r))"number"==typeof t&&(a[e]=t);return{...a,...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??a,updatedAt:e.updatedAt??a,reasoning:e.reasoning??void 0,zdr:e.zdr??void 0,plugins:e.plugins??[],artifactId:e.artifactId??void 0}}])},286709,e=>{"use strict";e.s(["makeStoreAction",0,function(e){return t=>r=>e.handler({...t,payload:r?.payload,dependencies:r?.dependencies})}])},622817,e=>{"use strict";var t=e.i(358390),r=e.i(963),a=e.i(744475),n=e.i(654040);let s="intern/",i=/^[A-Za-z0-9_-]+$/u;function o(e){return null!==l(e)}function l(e){if(!e?.startsWith(s))return null;let t=e.slice(s.length);return i.test(t)?t:null}e.s(["INTERN_MODEL_GROUP_NAME",0,"Interns","getInternIdFromModelSlug",0,l,"getInternModelInfo",0,function(e){var i,o;let l,c=(i=e.id,`${s}${i}`);return{slug:c,permaslug:c,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:null!==e.iconSha256?(0,a.internIconUrl)(e.id,e.iconSha256):(o=(0,n.getInternInitials)(e.name),l=`${o.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}`,`data:image/svg+xml,${encodeURIComponent(l)}`),description:e.description??"",model_version_group_id:null,context_length:0,input_modalities:[r.InputModality.Text],output_modalities:[r.OutputModality.Text],has_text_output:!0,instruct_type:null,group:t.ModelGroup.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}},"getInternPersonaHref",0,function({workspaceId:e,internId:t}){return`/workspaces/${encodeURIComponent(e)}/interns/${encodeURIComponent(t)}?tab=persona`},"isInternCharacter",0,function(e){return o(e.model)||o(e.modelInfo?.slug)},"isInternModelSlug",0,o],622817)},693946,44299,e=>{"use strict";var t=e.i(180711),r=e.i(230953),a=e.i(321801),n=e.i(295654);e.i(798823);var s=e.i(429930);function i(e){return e.lastActivityAt??e.createdAt}e.s(["getRoomLastActivity",0,i],44299);let o=e=>e.rooms,l=e=>e.currentRoomId,c=(0,a.createSelector)([o,l],(e,t)=>t?e[t]??n.emptyRoomData:n.emptyRoomData),d=(0,a.createSelector)([c,e=>e.pendingCharacters,l],(e,t,r)=>r?e.characters:t),u=(0,a.createSelector)([c,e=>e.pendingRoomZdr,l],(e,t,r)=>r?!0===e.zdr:!0===t),p=(0,a.createSelector)([c],e=>e.isProcessing??!1),m=(0,a.createSelector)([c],e=>e.hydrationStatus??s.HydrationStatus.Idle),f=(0,a.createSelector)([c],e=>e.title??n.DEFAULT_CHAT_ROOM_TITLE),g=(0,a.createSelector)([c],e=>e.messages),h=(0,a.createSelector)([c],e=>e.sortedMessageIds),y=(0,a.createSelector)([c],e=>e.hydrationError),v=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;rObject.values(e).filter(e=>void 0===e.internId).map(e=>({id:e.id,title:e.title??n.DEFAULT_CHAT_ROOM_TITLE,isPinned:!!e.isPinned,createdAt:e.createdAt,updatedAt:e.updatedAt??e.createdAt,lastActivityAt:i(e)})),{memoize:a.lruMemoize,memoizeOptions:{resultEqualityCheck:v}}),b=[(e,t)=>t.trim().toLowerCase(),(e,t,r)=>r,(e,t,r,a)=>a.timeZone,(e,t,r,a)=>a.nowMs];function A(e,a,n,s,i){let o=a?e.filter(e=>e.title.toLowerCase().includes(a)):e,l=o.filter(e=>e.isPinned).sort((e,t)=>(t.lastActivityAt?.getTime()??0)-(e.lastActivityAt?.getTime()??0)),c=o.filter(e=>!e.isPinned).sort((e,t)=>(t.lastActivityAt?.getTime()??0)-(e.lastActivityAt?.getTime()??0)).reduce((e,a)=>{let o=function(e,{locale:a,timeZone:n,nowMs:s}){let i=(0,t.calendarDateForInstant)(e,{timeZone:n});if(void 0===i)return"Older";let o=(0,t.calendarDateForInstant)(s,{timeZone:n});if(void 0!==o){let e=(Date.parse(o)-Date.parse(i))/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,r.formatDate)(e,{locale:a,timeZone:n,preset:"month-year"})??"Older"}(a.lastActivityAt,{locale:n,timeZone:s,nowMs:i});return e[o]||(e[o]=[]),e[o].push(a.id),e},{}),d=Object.keys(c);return{pinned:l.map(e=>e.id),recent:d.map(e=>({groupName:e,roomIds:c[e]??[]}))}}let w=(0,a.createSelector)([I,...b],A),S=(0,a.createSelector)([o,(e,t)=>t],(e,t)=>Object.values(e).filter(e=>e.internId===t).map(e=>({id:e.id,title:e.title??n.DEFAULT_CHAT_ROOM_TITLE,isPinned:!!e.isPinned,createdAt:e.createdAt,updatedAt:e.updatedAt??e.createdAt,lastActivityAt:i(e)})),{memoize:a.lruMemoize,memoizeOptions:{resultEqualityCheck:v}}),T=(0,a.createSelector)([(e,t)=>S(e,t),(e,t,r)=>r.trim().toLowerCase(),(e,t,r,a)=>a,(e,t,r,a,n)=>n.timeZone,(e,t,r,a,n)=>n.nowMs],A),C=(0,a.createSelector)([o,(e,t)=>t],(e,t)=>e[t]?.title??n.DEFAULT_CHAT_ROOM_TITLE),_=(0,a.createSelector)([o,(e,t)=>t],(e,t)=>!!e[t]?.isPinned);e.s(["selectCurrentCharacters",0,d,"selectCurrentIsProcessing",0,p,"selectCurrentMessages",0,g,"selectCurrentRoomHydrationError",0,y,"selectCurrentRoomHydrationStatus",0,m,"selectCurrentRoomId",0,l,"selectCurrentRoomTitle",0,f,"selectCurrentRoomZdr",0,u,"selectCurrentSortedMessageIds",0,h,"selectInternRoomsForSidebar",0,T,"selectIsRoomPinnedById",0,_,"selectRoomTitleById",0,C,"selectRoomsForSidebar",0,w],693946)},390889,104108,630164,347586,44745,923307,63102,590333,585767,325681,44539,2726,709687,561124,740594,847893,e=>{"use strict";e.i(530023);var t=e.i(612774),r=e.i(286709),a=e.i(693946);let n=(0,r.makeStoreAction)({name:"fixArtifactVersionError",handler:async({get:e,payload:r})=>{let{artifactId:n,versionId:s}=r,i=(0,a.selectCurrentRoomId)(e()),o=e().artifactVersions[s];if(!i)return void(0,t.toast)({title:"Action Failed",description:"Could not find the current room.",variant:"destructive"});if(!o?.error||0===o.error.length)return void(0,t.toast)({title:"Action Failed",description:"No error was found on the specified version.",variant:"destructive"});let l=o.characterId??null;l&&e().actions.setActiveCharacterForArtifact({payload:{artifactId:n,characterId:l}}),e().actions.setActiveVersionId({payload:{artifactId:n,versionId:s}});let c=`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: ${o.error}`;e().actions.sendGenerationPromptToArtifact({payload:{roomId:i,artifactId:n,prompt:c}})}});e.s(["fixArtifactVersionError",0,n],390889);var s=e.i(693697),i=e.i(447680);let o=(0,r.makeStoreAction)({name:"reportArtifactVersionError",handler:async({set:e,get:r,payload:a})=>{let{versionId:n,error:o}=a;e(e=>{let t=e.artifactVersions[n];t&&(t.error=o)});let l=r().storageInstanceId,c=r().artifactVersions[n];if(!l||!c)return;let d=await (0,s.wrap)(()=>i.persistence.saveArtifactVersions(l,[c]));(0,s.isErr)(d)&&(0,t.toast)({title:"Error Saving State",description:"Could not persist the artifact error.",variant:"destructive"})}});e.s(["reportArtifactVersionError",0,o],104108);let l=(0,r.makeStoreAction)({name:"setExpandedFolders",handler:({set:e,payload:t})=>{e(e=>{let r=e.artifactViewerState[t.artifactId];r&&(r.expandedFolders=t.expandedFolders)})}});e.s(["setExpandedFolders",0,l],630164),e.i(798823);var c=e.i(429930);class d{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()}}let u={current:new d};e.s(["abortCtrlManagerRef",0,u],347586);var p=e.i(408784);function m(e,t){let r=(e.createdAt?.getTime()??0)-(t.createdAt?.getTime()??0);return 0!==r?r:e.type===c.MessageType.User&&t.type===c.MessageType.Assistant?-1:e.type===c.MessageType.Assistant&&t.type===c.MessageType.User?1:(0,p.compareCanonicalText)(e.id,t.id)}e.s(["sortMessages",0,m],44745);let f=(0,r.makeStoreAction)({name:"stopArtifactVersionGeneration",handler:async({get:e,set:t,payload:{roomId:r,artifactId:a,versionId:n}})=>{u.current.flush();let s=e().storageInstanceId,o=e().rooms[r];if(!o)return;let l=Object.values(o.messages).find(e=>e.type===c.MessageType.Assistant&&!0===e.isGenerating&&e.contentType===c.ContentType.ArtifactVersion&&e.artifactId===a&&e.versionContextId===n);if(!l)return void t(e=>{let t=e.rooms[r];t&&Object.values(t.messages).forEach(e=>{e.type===c.MessageType.Assistant&&!0===e.isGenerating&&e.contentType===c.ContentType.ArtifactVersion&&e.artifactId===a&&e.versionContextId===n&&(e.isGenerating=!1)})});let d=l.id,p=l.parentMessageId??null;if(!s)return;let f=!1,g=[];t(e=>{let t=e.rooms[r];if(!t)return;let s=()=>{let e=new Set([d]);p&&e.add(p);let r={};for(let[a,n]of Object.entries(t.messages))e.has(a)||(r[a]=n);t.messages=r,t.sortedMessageIds=Object.values(r).sort(m).map(e=>e.id)},i=e.artifactVersions[n];if(!i)return void s();f=!0;let o=e.artifacts[a];if(!o){delete e.artifactVersions[n],s();return}o.headVersionId===n&&(o.headVersionId=i.parentVersionId??void 0,o.updatedAt=new Date,g.push(o.id));let l=e.artifactViewerState[a];l?.activeVersionId===n&&(l.activeVersionId=i.parentVersionId??null),delete e.artifactVersions[n],s()});let h=g.map(t=>e().artifacts[t]).filter(e=>!!e),y=[i.persistence.deleteMessages(s,r,p?[d,p]:[d])];f&&y.push(i.persistence.deleteArtifactVersions(s,[n])),h.length>0&&y.push(i.persistence.saveArtifacts(s,r,h)),await Promise.all(y)}});e.s(["stopArtifactVersionGeneration",0,f],923307);let g=(0,r.makeStoreAction)({name:"appendItemIdToMessage",handler:async({set:e,get:t,payload:r})=>{let{roomId:a,messageId:n,itemId:s,outputIndex:o,type:l}=r,d=!1;if(e(e=>{let t=e.rooms[a];if(!t)return;let r=t.messages[n];if(r?.type!==c.MessageType.Assistant)return;let i={id:s,outputIndex:o,type:l,sequenceIndex:r.items.length};r.items.push(i),d=!0}),!d)return;let u=t().storageInstanceId;if(!u)return;let p=t().rooms[a]?.messages[n];p&&await i.persistence.saveMessage(u,a,p)}});e.s(["appendItemIdToMessage",0,g],63102);let h=(0,r.makeStoreAction)({name:"clearArtifactViewState",handler:({set:e,payload:t})=>{e(e=>{delete e.artifactViewerState[t.artifactId]})}});e.s(["clearArtifactViewState",0,h],590333);let y=(0,r.makeStoreAction)({name:"closeArtifactView",handler:({set:e})=>{e({activeArtifactId:null})}});e.s(["closeArtifactView",0,y],585767);var v=e.i(700050);let I=(0,r.makeStoreAction)({name:"deleteArtifact",handler:async({set:e,get:t,payload:r})=>{let{roomId:a,artifactId:n}=r,s=t().storageInstanceId,o=t().rooms[a],l=t().artifacts[n];if(!o||!l||!s)return;let d=Object.values(o.messages??{}).find(e=>e.type===c.MessageType.Assistant&&e.artifactId===n);(0,v.trackArtifactDelete)({type:l.type,versionCount:0,fileCount:l.fileIds.length}),e(e=>{let t=e.rooms[a];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(m).map(e=>e.id)),t.updatedAt=new Date)}),t().actions.clearArtifactViewState({payload:{artifactId:n}}),await i.persistence.deleteArtifact(s,a,n),d&&await i.persistence.deleteMessage(s,a,d.id)}});e.s(["deleteArtifact",0,I],325681);var b=e.i(295654),A=e.i(122901);function w(e){let t=new Date;return{id:(0,A.orid)(A.ORIDType.ArtifactVersion),type:c.ArtifactType.App,artifactId:e.artifactId,parentVersionId:e.parentVersionId,generatingMessageId:e.generatingMessageId,characterId:e.characterId,fileContents:e.fileContents??{},createdAt:e.createdAt??t,generationStatus:e.generationStatus??c.GenerationStatus.Idle,versionNumber:e.versionNumber,characterName:e.characterName,prompt:e.prompt,error:e.error}}e.s(["createAppArtifactData",0,function(e){let t=new Date;return{id:(0,A.orid)(A.ORIDType.Artifact),name:e.name,type:c.ArtifactType.App,fileIds:e.fileIds,stack:e.stack??c.AppStack.HTML,archetype:e.archetype??c.AppArchetype.InteractiveWebApp,entrypointFileId:e.entrypointFileId,headVersionId:e.headVersionId,createdAt:e.createdAt??t,updatedAt:e.updatedAt??t,characterIds:e.characterIds??[]}},"createAppArtifactVersionData",0,w,"createArtifactFileContentData",0,function(e={}){let t=new Date;return{id:(0,A.orid)(A.ORIDType.ArtifactFileContent),content:e.content??"",generationStatus:e.generationStatus??c.GenerationStatus.Idle,createdAt:e.createdAt??t}},"createArtifactFileData",0,function(e){let t=new Date;return{id:(0,A.orid)(A.ORIDType.ArtifactFile),createdAt:t,updatedAt:t,...e}},"createImageArtifactData",0,function(e){let t=new Date;return{id:(0,A.orid)(A.ORIDType.Artifact),type:c.ArtifactType.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 S=(0,r.makeStoreAction)({name:"deleteArtifactFile",handler:async({get:e,set:r,payload:n})=>{let{artifactId:s,fileId:o}=n,l=(0,a.selectCurrentRoomId)(e()),d=e().storageInstanceId;if(!l||!d)return;let u=e(),p=u.artifacts[s],m=p?.headVersionId,f=m?u.artifactVersions[m]:void 0;if(!p)return void(0,t.toast)({title:"Error",description:"Artifact not found."});if(!f)return void(0,t.toast)({title:"Error",description:"Cannot delete from an artifact with no versions."});if((p.fileIds?.length??0)<=1)return void(0,t.toast)({title:"Delete Failed",description:"Cannot delete the last file in an artifact.",variant:"destructive"});let g=w({artifactId:s,parentVersionId:m,characterId:b.userCharacter.id,fileContents:{...f.fileContents},generationStatus:c.GenerationStatus.Success,generatingMessageId:void 0});delete g.fileContents[o];let h={...p,headVersionId:g.id,fileIds:Object.keys(g.fileContents),updatedAt:new Date};r(e=>{e.artifacts[s]=h,e.artifactVersions[g.id]=g;let t=e.artifactViewerState[s];t&&(t.activeVersionId=g.id,t.activeFileId===o&&(t.activeFileId=null))}),await Promise.all([i.persistence.saveArtifacts(d,l,[h]),i.persistence.saveArtifactVersions(d,[g])]),(0,t.toast)({title:"File Deleted",description:"The file has been removed in a new version."})}});e.s(["deleteArtifactFile",0,S],2726);var T=e.i(462904),C=e.i(81174),_=e.i(112272),x=e.i(479017),M=e.i(948810),E=e.i(789836);let k=!1,R=[],O=(0,M.create)()((0,E.mutative)(e=>({artifactContent:{},actions:{setArtifactContent:(t,r)=>{e(e=>{e.artifactContent[t]=r})},appendArtifactContent:(t,r)=>{R.push({id:t,chunk:r}),k||(k=!0,requestAnimationFrame(()=>{e(e=>{for(let{id:t,chunk:r}of R){let a=e.artifactContent[t]||"";e.artifactContent[t]=a+r}}),R.length=0,k=!1}))},deleteArtifactContent(t){e(e=>{delete e.artifactContent[t]})},loadArtifactContent(t){e(e=>{Object.assign(e.artifactContent,t)})}}})));e.s(["useArtifactStore",0,O],709687);var F=e.i(321801),P=e.i(286048);let j=e=>e.artifacts,D=e=>e.artifactFiles,V=e=>e.artifactVersions,z=e=>e.artifactFileContents,$=e=>e.activeArtifactId,U=e=>e.artifactViewerState,N=(0,F.createSelector)([j,$],(e,t)=>t?e[t]:void 0),L=(0,F.createSelector)([$,U],(e,t)=>e?t[e]??null:null),G=(0,F.createSelector)([$,U],(e,t)=>e?t[e]?.activeFileId??null:null),B=(e,t)=>t.versionId,q=(e,t)=>t.fileId,W=(e,t)=>t.versionId,H=(0,F.createSelector)([L],e=>e?.activeVersionId),J=(0,F.createSelector)([L],e=>e?.view??c.ArtifactView.Editor),Y=(0,F.createSelector)([j,(e,t)=>t.artifactId],(e,t)=>e[t]),Z=(0,F.createSelector)([e=>e.rooms[e.currentRoomId??""]?.sortedMessageIds??[],e=>e.rooms[e.currentRoomId??""]?.messages??{},(e,t)=>t],(e,t,r)=>e.filter(e=>{let a=t[e];return!!a&&a.context===c.MessageContext.ArtifactChat&&a.artifactId===r})),X=(0,F.createSelector)([V,W],(e,t)=>t?e[t]:void 0),K=(0,F.createSelector)([V,B],(e,t)=>t?e[t]:void 0),Q=(0,F.createSelector)([K,q],(e,t)=>e&&t?e.fileContents[t]??null:null),ee=(0,F.createSelector)([z,Q],(e,t)=>{if(!t)return null;let r=e[t];return r?.content??null}),et=(0,F.createSelector)([V,B],(e,t)=>{if(!t)return{version:void 0,parentVersion:void 0};let r=e[t],a=r?.parentVersionId?e[r.parentVersionId]:void 0;return{version:r,parentVersion:a}}),er=(0,F.createSelector)([et,z,q],({version:e,parentVersion:t},r,a)=>{if(!a||!e)return P.FileTreeStatus.Idle;let n=a in e.fileContents,s=t&&a in t.fileContents;if(n){let n=e.fileContents[a],i=r[n];return i?.generationStatus===c.GenerationStatus.Generating?P.FileTreeStatus.Generating:s?n!==t.fileContents[a]?P.FileTreeStatus.Modified:P.FileTreeStatus.Idle:P.FileTreeStatus.New}return s?P.FileTreeStatus.Removed:P.FileTreeStatus.Idle}),ea=(0,F.createSelector)([X,D],(e,t)=>e?Object.keys(e.fileContents).map(e=>t[e]).filter(e=>!!e):[]),en=(0,F.createSelector)([X,D,V],(e,t,r)=>{if(!e)return[];let a=new Set(Object.keys(e.fileContents)),n=e.parentVersionId?r[e.parentVersionId]:void 0;return Array.from(new Set([...a,...n?new Set(Object.keys(n.fileContents)):new Set])).map(e=>t[e]).filter(e=>!!e)}),es=(0,F.createSelector)([V,N],(e,t)=>t?Object.values(e).filter(e=>!!e&&e.artifactId===t.id):[]),ei=(0,F.createSelector)([es,W],(e,t)=>{if(!e.length||!t)return null;let r=[...e].sort((e,t)=>e.createdAt.getTime()-t.createdAt.getTime()).findIndex(e=>e.id===t);return -1!==r?r+1:null});e.s(["selectActiveArtifact",0,N,"selectActiveArtifactId",0,$,"selectActiveArtifactVersionId",0,H,"selectActiveArtifactView",0,J,"selectActiveFileId",0,G,"selectAllArtifactVersions",0,V,"selectArtifactById",0,Y,"selectArtifactChatMessageIds",0,Z,"selectArtifactFileContent",0,ee,"selectFileStatusForVersion",0,er,"selectFilesForPreview",0,ea,"selectFilesForVersion",0,en,"selectVersionById",0,X,"selectVersionNumberById",0,ei],561124);let eo=(0,r.makeStoreAction)({name:"downloadArtifactVersion",handler:async({get:r,payload:a})=>{let{artifactId:n,versionId:i}=a,o=r(),l=o.artifactVersions[i],c=o.artifacts[n];if(!l||!c)return void(0,t.toast)({title:"Error",description:"Artifact or version not found.",variant:"destructive"});let d=ea(o,{versionId:i});if(0===d.length)return void(0,t.toast)({title:"No files to download for this version.",variant:"destructive"});let u=l.fileContents,p=o.artifactFileContents,m=O.getState().artifactContent,f=[];for(let e of d){let t=u[e.id];if(!t){(0,C.eLog)("Content ID not found for file in version",{file_id:e.id,version_id:i});continue}f.push({filename:e.filename,content:m[t]??p[t]?.content??""})}(0,t.toast)({title:"Zipping files...",description:"Your download will begin shortly."});let g=await (0,s.wrap)(async()=>{let{default:t}=await e.A(689449),r=new t;for(let e of f)r.file(e.filename,e.content);return r.generateAsync({type:"blob"})});if((0,s.isErr)(g)){let e=g.error instanceof Error?g.error.message:"An unknown error occurred.";(0,t.toast)({title:"Failed to create ZIP file",description:e,variant:"destructive"}),(0,C.eLog)("Failed to generate ZIP for artifact version download",{...(0,T.errorToLogFields)(g.error),version_id:i});return}let h=g.data,y=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,_.kebabCase)(t)}(c.name),v=`${y}-v${l.versionNumber||"1"}.zip`;(0,x.saveAs)(h,v)}});function el(e){let t=new Date;return{id:e.id,artifactId:e.artifactId,characterId:e.characterId,contentType:e.contentType??c.ContentType.Text,context:e.context??c.MessageContext.MainChat,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(["downloadArtifactVersion",0,eo],740594),e.s(["createAssistantMessage",0,function(e){return{...el(e),type:c.MessageType.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}},"createSystemMessage",0,function(e){return{...el(e),type:c.MessageType.System,items:e.items}},"createUserMessage",0,function(e){return{...el(e),type:c.MessageType.User,items:e.items,content:void 0,attachments:void 0,attachmentMetadata:e.attachmentMetadata,requestOverrides:e.requestOverrides}}],847893)},915309,170993,463444,911585,454785,e=>{"use strict";var t=e.i(693697),r=e.i(295654),a=e.i(463522),n=e.i(321801),s=e.i(622817);function i(e){return!e.isRemoved&&!e.artifactId}e.s(["isDisplayedCharacter",0,i],170993);var o=e.i(693946);let l=(0,n.createSelector)([o.selectCurrentCharacters,e=>e.pendingCharacters,o.selectCurrentRoomId],(e,t,r)=>{let a=!r&&t?t:e;return a?Object.fromEntries(Object.entries(a).filter(([,e])=>e&&i(e))):{}}),c=(0,n.createSelector)([l],e=>e?Object.values(e).filter(e=>!!e&&!e.isDisabled&&i(e)):[]),d=(0,n.createSelector)([c],e=>{let t=e.filter(e=>(0,s.isInternCharacter)(e)).length;return{hasInterns:t>0,hasOnlyInterns:e.length>0&&t===e.length}}),u=(0,n.createSelector)(l,e=>e?Object.values(e).toSorted((e,t)=>(0,a.safeParseDate)(e.createdAt,new Date).getTime()-(0,a.safeParseDate)(t.createdAt,new Date).getTime()).map(e=>e.id):[]);e.s(["makeSelectCharacterById",0,()=>(0,n.createSelector)([o.selectCurrentCharacters,(e,t)=>t],(e,t)=>e?.[t]??null),"selectActiveCharacterKinds",0,d,"selectActiveCharacters",0,c,"selectCharactersForDisplay",0,l,"selectSortedCharacterIdsForCurrentRoom",0,u],463444);var p=e.i(700050),m=e.i(789280);async function f(e){let r=e.trim();if(r.length<10)return null;let a=await (0,t.wrap)(()=>(0,m.summarizeHeadline)(r,{sharedContext:"This is a chat message sent to an AI assistant. Generate a concise title."}));return(0,t.isErr)(a)?null:a.data}function g(e,t=40){return e.slice(0,t).split("\n").map(e=>e.trim()).filter(e=>!!e).join(" ")}function h({get:e},{roomId:t,messageContent:a}){let n=new Set([r.DEFAULT_CHAT_ROOM_TITLE,g(a)]);f(a).then(r=>{if(!r)return;let s=e().rooms[t]?.title;(!s||n.has(s))&&(e().actions.updateRoom({payload:{roomId:t,partialRoom:{title:r}}}),(0,p.trackRoomSummaryTitleGenerated)({inputLength:a.length,titleLength:r.length}))})}async function y(e,a){let n=c(e());if(0===n.length)return(0,t.err)(Error("Please select at least one model to generate."));if(a.roomId){let s=e().rooms[a.roomId];return s?(s.title&&s.title!==r.DEFAULT_CHAT_ROOM_TITLE||(await e().actions.updateRoom({payload:{roomId:s.id,partialRoom:{title:g(a.prompt)}}}),h({get:e},{roomId:s.id,messageContent:a.prompt})),(0,t.ok)({room:s,characters:n})):(0,t.err)(Error("Room not found"))}let s={};for(let e of n)s[e.id]=e;let i=await (0,t.wrap)(()=>e().actions.createChatroom({payload:{title:g(a.prompt),characters:s}}));if((0,t.isErr)(i)){let e=i.error;return(0,t.err)(e instanceof Error?e:Error("Failed to create a new room."))}let o=i.data;h({get:e},{roomId:o.id,messageContent:a.prompt}),e().actions.setPendingCharacters({payload:{characters:null}});let l=Object.values(o.characters);return(0,t.ok)({room:o,characters:l})}e.s(["getChatroomTitle",0,g],911585),e.s(["applySummaryTitle",0,h],454785),e.s(["getOrCreateRoomWithCharacters",0,y],915309)},628879,524391,514703,738237,671877,930339,745732,e=>{"use strict";e.i(530023);var t,r=e.i(612774),a=e.i(399695),n=e.i(122901),s=e.i(693697);e.i(204067);var i=e.i(796805),o=e.i(700050),l=e.i(295654),c=e.i(44539),d=e.i(826735),u=e.i(847893),p=e.i(286709);e.i(798823);var m=e.i(429930),f=e.i(447680),g=e.i(915309),h=e.i(44745),y=e.i(735961),v=e.i(407568),I=e.i(773229),b=e.i(17972),A=e.i(466260),w=e.i(925935),S=e.i(366699);function T(e){let t=(0,w.getAttachmentContentPart)(e);return t?{role:S.ChatMessageRole.User,type:"message",content:[t]}:{role:S.ChatMessageRole.User,type:"message",content:`Attachment: ${e.name} (${e.size} bytes)`}}function C(e){let{generationPrompt:t,archetype:r,initialVirtualFiles:a,attachments:n}=e,{getSystemPrompt:s}=(0,b.getArchetypeConfig)(r),{baseInstructions:i,finalInstructions:o}=s(!1),l=(0,A.buildFilesContextString)(a),c=(0,A.buildInitialFilesContext)(l),d=(0,A.assembleSystemPrompt)({baseInstructions:i,finalInstructions:o,generationPrompt:t,mainContext:c||void 0});return[...(n??[]).map(T),...d]}var _=e.i(176478);i.z.object({retryFromMessageId:i.z.string().nullable(),roomId:i.z.string().nullable(),name:i.z.string(),prompt:i.z.string(),type:i.z.literal(m.ArtifactType.App),archetype:i.z.nativeEnum(m.AppArchetype).optional(),stack:i.z.nativeEnum(m.AppStack).optional(),characterIds:i.z.array(i.z.string()).optional(),attachments:i.z.array(a.FileAttachmentSchema).optional()});var x=((t=x||{}).SetupFailure="setup-failure",t.GenerationFailure="generation-failure",t);async function M(e,{roomId:t,payload:r,namespace:a,generatorCharacters:s,originalTimestampMap:i}){if(r.retryFromMessageId){let a=e().rooms[t]?.messages[r.retryFromMessageId];if(!a)throw Error("Source message for retry not found.");let n=a.type===m.MessageType.User?a:e().rooms[t]?.messages[a.parentMessageId??""];if(!n||n.type!==m.MessageType.User)throw Error("Original user prompt for retry not found.");let o=Object.values(e().rooms[t]?.messages??{}).filter(e=>e.parentMessageId===n.id&&e.contentType===m.ContentType.Artifact),l=new Set(s.map(e=>e.id));for(let r of o.filter(e=>e.type===m.MessageType.Assistant&&l.has(e.characterId)))r.createdAt&&i.set(r.characterId,new Date(r.createdAt)),r.artifactId&&await e().actions.deleteArtifact({payload:{roomId:t,artifactId:r.artifactId}});return{userMessage:n,userMessageItem:null}}let o=(0,n.orid)(n.ORIDType.Message),c={type:"message",role:"user",content:[{type:"input_text",text:r.prompt}]},p=(0,d.createPlaygroundItem)({id:(0,n.orid)(n.ORIDType.Item),messageId:o,data:c}),g=(0,u.createUserMessage)({id:o,characterId:l.userCharacter.id,context:m.MessageContext.MainChat,contentType:m.ContentType.Artifact,items:[{id:p.id,type:"message"}],attachments:r.attachments});return await f.persistence.saveMessages(a,t,[g]),await f.persistence.saveItems(a,t,[p]),{userMessage:g,userMessageItem:p}}let E=(0,p.makeStoreAction)({name:"generateArtifact",handler:async({get:e,set:t,payload:a,dependencies:{router:i,resetComposer:p}})=>{let A=e().storageInstanceId;if(!A)return(0,s.err)({type:"setup-failure",message:"Namespace not found"});let w=await (0,g.getOrCreateRoomWithCharacters)(e,a);if((0,s.isErr)(w)){let e=w.error instanceof Error?w.error.message:"Failed to setup artifact room";return(0,r.toast)({title:`Error creating ${a.type}`,description:e,variant:"destructive"}),(0,s.err)({type:"setup-failure",message:e,cause:w.error})}i.push(`?room=${w.data.room.id}`);let{room:S,characters:T}=w.data,x=S.id,E=a.characterIds?.length?T.filter(e=>a.characterIds.includes(e.id)):T;if(0===E.length)return(0,s.err)({type:"setup-failure",message:"Please select at least one model to generate."});let k=new Map,{userMessage:R,userMessageItem:O}=await M(e,{roomId:x,payload:{...a,characterIds:E.map(e=>e.id)},namespace:A,generatorCharacters:E,originalTimestampMap:k}),F={};a.retryFromMessageId&&(F=function(e,t){let{roomId:r,rootUserMessageId:a,generatorCharacters:n}=t,s=Object.values(e().rooms[r]?.messages??{}).filter(e=>e.parentMessageId===a&&e.contentType===m.ContentType.Artifact),i=new Set(n.map(e=>e.id)),o=s.find(e=>e.type===m.MessageType.Assistant&&i.has(e.characterId)),l=s[0],c=o??l;if(!c||c.type!==m.MessageType.Assistant)return{};let d=c.artifactId;if(!d)return{};let u=e().artifacts[d];return u?{stack:u.type===m.ArtifactType.App?u.stack:m.AppStack.HTML,archetype:u.type===m.ArtifactType.App?u.archetype??m.AppArchetype.InteractiveWebApp:m.AppArchetype.InteractiveWebApp}:{}}(e,{roomId:x,rootUserMessageId:R.id,generatorCharacters:E}));let P=a.archetype??F.archetype??m.AppArchetype.InteractiveWebApp,j=a.stack??F.stack??m.AppStack.HTML,D=E.map(e=>{let t=function(e){let{payload:t,generatorCharacter:r,userMessage:a}=e,{name:n,archetype:s,stack:i}=t,{getInitialFiles:o}=(0,b.getArchetypeConfig)(s),l=o(),d=[],p=[],f={};l.forEach(e=>{let t=(0,c.createArtifactFileData)({filename:e.path,type:(0,_.getFileTypeFromPath)(e.path)}),r=(0,c.createArtifactFileContentData)({content:e.content});d.push(t),p.push(r),f[t.id]=r.id});let g=d.map(e=>e.id),h=l.find(e=>"index.html"===e.path),y=h?g[l.indexOf(h)]:void 0,v=(0,c.createAppArtifactData)({name:n,fileIds:g,stack:i,archetype:s,entrypointFileId:y}),I=new Date(new Date(a.createdAt).getTime()+1),A=(0,u.createAssistantMessage)({id:v.id,contentType:m.ContentType.Artifact,context:m.MessageContext.MainChat,characterId:r.id,artifactId:v.id,parentMessageId:a.id,createdAt:I,updatedAt:I,isGenerating:!1,items:[]});return{artifact:v,initialFiles:d,initialFileContents:p,fileContentsMap:f,artifactMessage:A,virtualFiles:l}}({payload:{name:a.name,type:a.type,archetype:P,stack:j},generatorCharacter:e,userMessage:R}),r={...e,id:(0,n.orid)(n.ORIDType.Character),artifactId:t.artifact.id,includeDefaultSystemPrompt:!1},s=(0,n.orid)(n.ORIDType.Message),i={type:"message",role:"user",content:[{type:"input_text",text:a.prompt}]},o=(0,d.createPlaygroundItem)({id:(0,n.orid)(n.ORIDType.Item),messageId:s,data:i}),p=(0,u.createUserMessage)({id:s,artifactId:t.artifact.id,characterId:l.userCharacter.id,context:m.MessageContext.ArtifactChat,contentType:m.ContentType.ArtifactVersion,items:[{id:o.id,type:"message"}],attachments:a.attachments}),f=(0,c.createAppArtifactVersionData)({artifactId:t.artifact.id,characterId:r.id,fileContents:t.fileContentsMap,generatingMessageId:p.id,generationStatus:m.GenerationStatus.Generating,versionNumber:1,characterName:e.name||e.presetName||e.model,prompt:a.prompt}),g=(0,u.createAssistantMessage)({id:(0,n.orid)(n.ORIDType.Message),context:m.MessageContext.ArtifactChat,contentType:m.ContentType.ArtifactVersion,characterId:r.id,artifactId:t.artifact.id,parentMessageId:p.id,versionContextId:f.id,isGenerating:!0,items:[]});return{sourceCharacter:e,genesisData:t,scopedCharacter:r,userMessageForArtifactChat:p,userMessageForArtifactChatItem:o,artifactVersionMessage:g,versionForAI:f}});for(let e of(O&&y.useItemStore.getState().actions.upsertItem(O),D.forEach(e=>{y.useItemStore.getState().actions.upsertItem(e.userMessageForArtifactChatItem)}),t(e=>{let t=e.rooms[x];if(t){for(let r of(t.messages[R.id]||(t.messages[R.id]=R),D)){let{genesisData:a,scopedCharacter:n,userMessageForArtifactChat:s,artifactVersionMessage:i,versionForAI:o}=r,l=a.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),a.initialFiles.forEach(t=>{e.artifactFiles[t.id]=t}),a.initialFileContents.forEach(t=>{e.artifactFileContents[t.id]=t}),e.artifactVersions[o.id]=o,t.messages[a.artifactMessage.id]=a.artifactMessage,t.characters[n.id]=n,t.messages[s.id]=s,t.messages[i.id]=i;let c=e.artifactViewerState[l.id];if(c)c.activeVersionId=o.id;else{let t=l.entrypointFileId??l.fileIds[0];c={view:m.ArtifactView.Editor,activeFileId:t??null,activeVersionId:o.id,expandedFolders:{}},e.artifactViewerState[l.id]=c}}t.sortedMessageIds=Object.values(t.messages).sort(h.sortMessages).map(e=>e.id)}}),await Promise.all(D.flatMap(e=>[f.persistence.saveArtifacts(A,x,[e.genesisData.artifact]),f.persistence.saveArtifactFiles(A,e.genesisData.initialFiles),f.persistence.saveArtifactFileContents(A,e.genesisData.initialFileContents),f.persistence.saveArtifactVersions(A,[e.versionForAI]),f.persistence.saveMessages(A,x,[e.genesisData.artifactMessage,e.userMessageForArtifactChat,e.artifactVersionMessage]),f.persistence.saveCharacters(A,x,[e.scopedCharacter])])),D))(0,o.trackArtifactCreate)({type:e.genesisData.artifact.type});p?.();let V=D.map(async n=>{let{scopedCharacter:i,artifactVersionMessage:o,versionForAI:l,genesisData:c}=n,{artifact:d,artifactMessage:u}=n.genesisData,p=C({generationPrompt:a.prompt.trim(),archetype:P,initialVirtualFiles:c.virtualFiles,attachments:a.attachments});t(e=>{e.generationAttemptStartMs[l.id]=Date.now()});let g=await (0,v.fetchResponsesStreamForCharacter)({character:i,inputItems:p,storeState:e(),roomId:x,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(g){let a=await (0,I.streamAndFinalizeGeneration)({set:t,get:e,roomId:x,namespace:A,responseBody:g,artifactId:d.id,assistantMessageId:o.id,versionId:l.id,mainChatMessageId:u.id});if((0,s.isErr)(a)){let e=(0,s.err)({type:"generation-failure",message:a.error.message??"Unknown streaming error"});return(0,r.toast)({title:`Generation Error for ${i.name}`,description:e.error.message,variant:"destructive"}),e}return(0,s.ok)(l)}t(e=>{let t=e.rooms[x]?.messages[o.id];t?.type===m.MessageType.Assistant&&(t.isGenerating=!1);let r=e.rooms[x]?.messages[u.id];r?.type===m.MessageType.Assistant&&(r.isGenerating=!1);let a=e.artifactVersions[l.id];if(a){a.generationStatus=m.GenerationStatus.Failed,a.error="AI model did not return a response.";let t=e.generationAttemptStartMs[l.id];"number"==typeof t&&t>0&&(a.generationDurationMs=Math.max(0,Date.now()-t))}delete e.generationAttemptStartMs[l.id]});let h=e().artifactVersions[l.id];h&&await f.persistence.saveArtifactVersions(A,[h]);let y=(0,s.err)({type:"generation-failure",message:"AI model did not return a response."});return(0,r.toast)({title:`Generation Error for ${i.name}`,description:y.error.message,variant:"destructive"}),y}),z=await Promise.all(V),$=z.find(s.isOk);return $||(z[0]??(0,s.err)({type:"generation-failure",message:"Artifact generation failed for all models."}))}});e.s(["generateArtifact",0,E],628879);var k=e.i(442427),R=e.i(32582),O=e.i(693946),F=e.i(709687);let P=(0,p.makeStoreAction)({name:"loadFullArtifact",handler:async({set:e,get:t,payload:{artifactId:r}})=>{var a,n,s;let i=t().storageInstanceId,o=(0,O.selectCurrentRoomId)(t()),l=o?t().rooms[o]:null;if(!i||!o||!l)return;let c=(await f.persistence.getArtifacts(i,[r]))[r];if(!c)return;let d=await j(l,c,i),u=await D(i,c,d),p=Object.keys(u.versionsMap).length,g=void 0===c.versionsCount||c.versionsCount{let{artifact:t,versionsMap:r,filesMap:a,contentsMap:i}=s,o=e.artifacts[n],l=o?.headVersionId?e.artifactVersions[o.headVersionId]:null;for(let[s,i]of(l?.generationStatus===m.GenerationStatus.Generating&&o?.type===m.ArtifactType.App&&t.type===m.ArtifactType.App&&o?e.artifacts[n]={...t,headVersionId:o.headVersionId,fileIds:o.fileIds,entrypointFileId:o.entrypointFileId??t.entrypointFileId}:e.artifacts[n]=t,Object.assign(e.artifactFiles,a),Object.entries(r)))e.artifactVersions[s]?.generationStatus!==m.GenerationStatus.Generating&&(e.artifactVersions[s]=i);for(let[t,r]of Object.entries(i))e.artifactFileContents[t]?.generationStatus!==m.GenerationStatus.Generating&&(e.artifactFileContents[t]=r);let c=e.artifacts[n];if(!c?.headVersionId||c.activeCharacterId)return;let d=e.artifactVersions[c.headVersionId];d?.characterId&&(c.activeCharacterId=d.characterId)}),function(e){let t=F.useArtifactStore.getState(),r={};for(let[a,n]of Object.entries(e))void 0===t.artifactContent[a]&&(r[a]=n.content??"");0!==Object.keys(r).length&&t.actions.loadArtifactContent(r)}(u.contentsMap),await $({set:e,get:t,namespace:i,roomId:o,artifactId:r,versionsMap:u.versionsMap,contentsMap:u.contentsMap,versionsToPersistBackfill:h}),g&&await f.persistence.saveArtifacts(i,o,[c]),await z({set:e,get:t,namespace:i,roomId:o,artifactId:r,loadedVersionIds:new Set(Object.keys(u.versionsMap))});let v=await f.persistence.getRoomManifest(i,o);if(!v.itemIds||0===v.itemIds.length)return;let I=await f.persistence.getItems(i,v.itemIds),b=y.useItemStore.getState().items;y.useItemStore.getState().actions.loadItems({...b,...I})}});async function j(e,t,r){let a=new Set;for(let r of Object.values(e.messages??{})){var n;n=t.id,r.type===m.MessageType.Assistant&&r.artifactId===n&&"string"==typeof r.versionContextId&&a.add(r.versionContextId)}if(t.headVersionId)for(let e of(await (0,R.fullVersionHistoryTraversal)(r,t.headVersionId)))a.add(e);return Array.from(a)}async function D(e,t,r){let a=await f.persistence.getArtifactVersions(e,r),n=Object.values(a).filter(e=>!!e),s=new Set(n.flatMap(e=>Object.values(e.fileContents??{}))),i=new Set(n.flatMap(e=>Object.keys(e.fileContents??{}))),o=(0,k.unique)([...t.fileIds,...Array.from(i)]),[l,c]=await Promise.all([f.persistence.getArtifactFiles(e,o),f.persistence.getArtifactFileContents(e,Array.from(s))]);return{versionsMap:a,filesMap:l,contentsMap:c}}async function V(e,t,r){let a=Object.values(e).filter(e=>!!e);if(0===a.length)return[];let n=[...a].sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),s=a.filter(e=>void 0===e.prompt&&"string"==typeof e.generatingMessageId),i=new Map((await Promise.all(s.map(async e=>({versionId:e.id,prompt:await f.persistence.getContent(r,e.generatingMessageId)})))).map(({versionId:e,prompt:t})=>[e,t??""])),o=[];for(let e of a){let r=!1;if(void 0===e.versionNumber&&(e.versionNumber=n.indexOf(e)+1,r=!0),void 0===e.characterName&&e.characterId){let a=t.characters?.[e.characterId],n=a?.name||a?.presetName||a?.model;n&&(e.characterName=n,r=!0)}if(void 0===e.prompt){let t=i.get(e.id);void 0!==t&&(e.prompt=t,r=!0)}r&&o.push(e)}return o}async function z({set:e,get:t,namespace:r,roomId:a,artifactId:n,loadedVersionIds:s}){let i=t().artifactVersions,o=new Map;for(let e of s){let t=i[e];t&&"string"==typeof t.generatingMessageId&&o.set(t.generatingMessageId,t.id)}if(0===o.size)return;let l=t().rooms[a],c=new Map;for(let e of Object.values(l?.messages??{}))if(e&&e.type===m.MessageType.Assistant&&e.artifactId===n&&!e.versionContextId&&"string"==typeof e.parentMessageId){let t=o.get(e.parentMessageId);t&&c.set(e.id,t)}if(0===c.size)return;e(e=>{let t=e.rooms[a];if(t)for(let[e,r]of c.entries()){let a=t.messages[e];a&&a.type===m.MessageType.Assistant&&(a.versionContextId=r,a.contentType=m.ContentType.ArtifactVersion)}});let d=[];for(let e of c.keys()){let r=t().rooms[a]?.messages[e];r&&d.push(r)}0!==d.length&&await f.persistence.saveMessages(r,a,d)}async function $({set:e,get:t,namespace:r,roomId:a,artifactId:n,versionsMap:s,contentsMap:i,versionsToPersistBackfill:o}){let l=[],c=[],d=[],u=t().rooms[a];for(let e of Object.values(u?.messages??{}))e&&e.type===m.MessageType.Assistant&&e.artifactId===n&&e.isGenerating&&l.push(e.id);for(let e of Object.values(s))e&&e.generationStatus===m.GenerationStatus.Generating&&c.push(e.id);for(let e of Object.values(i))e&&e.generationStatus===m.GenerationStatus.Generating&&d.push(e.id);if(!(l.length>0||c.length>0||d.length>0)){o.length>0&&await f.persistence.saveArtifactVersions(r,o);return}e(e=>{let t=e.rooms[a];for(let e of l){let r=t?.messages[e];r&&r.type===m.MessageType.Assistant&&(r.isGenerating=!1,r.updatedAt=new Date)}let r=Date.now();for(let t of c){let a=e.artifactVersions[t];if(a){let e=a.createdAt?new Date(a.createdAt).getTime():r;a.generationStatus=m.GenerationStatus.Failed,a.generationDurationMs=Math.max(0,r-e)}}for(let t of d){let r=e.artifactFileContents[t];r&&(r.generationStatus=m.GenerationStatus.Failed)}});let p=[];for(let e of l){let r=t().rooms[a]?.messages[e];r&&p.push(r)}let g=[];for(let e of c){let r=t().artifactVersions[e];r&&g.push(r)}let h=[];for(let e of d){let r=t().artifactFileContents[e];r&&h.push(r)}let y=(0,k.unique)([...o,...g]),v=[];p.length>0&&v.push(f.persistence.saveMessages(r,a,p)),y.length>0&&v.push(f.persistence.saveArtifactVersions(r,y)),h.length>0&&v.push(f.persistence.saveArtifactFileContents(r,h)),0!==v.length&&await Promise.all(v)}e.s(["loadFullArtifact",0,P],524391);let U=(0,p.makeStoreAction)({name:"removeCharacterFromArtifact",handler:async({set:e,get:t,payload:r})=>{let{artifactId:a,characterId:n}=r,s=t().storageInstanceId,i=(0,O.selectCurrentRoomId)(t()),o=t().artifacts[a];if(!s||!i||!o)return;e(e=>{let t=e.artifacts[a];t&&(t.characterIds=t.characterIds?.filter(e=>e!==n)??[],t.activeCharacterId===n&&(t.activeCharacterId=t.characterIds[0]??null))});let l=t().artifacts[a];l&&await f.persistence.saveArtifacts(s,i,[l])}});e.s(["removeCharacterFromArtifact",0,U],514703);var N=e.i(952384);let L=(0,p.makeStoreAction)({name:"renameArtifactFile",handler:async({get:e,set:t,payload:a})=>{let{artifactId:n,fileId:s}=a,i=(0,N.normalizePath)(a.newName),o=(0,O.selectCurrentRoomId)(e()),l=e().storageInstanceId;if(!o||!l)return;if(!(0,N.isPathSafe)(i))return void(0,r.toast)({title:"Rename Failed",description:`Invalid path: "${a.newName}". Paths must be project-relative and cannot use ".." or start with "/".`,variant:"destructive"});let d=e(),u=d.artifacts[n],p=u?.headVersionId??null,m=p?d.artifactVersions[p]:void 0,g=d.artifactFiles[s];if(!u||!m||!g)return void(0,r.toast)({title:"Rename Failed",description:"Could not find the artifact, current version, or file to rename.",variant:"destructive"});if(!m.fileContents[s])return void(0,r.toast)({title:"Rename Failed",description:"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(d.artifactFiles).some(e=>e.filename===i))return void(0,r.toast)({title:"Rename Failed",description:`A file named "${i}" already exists.`,variant:"destructive"});let h=(0,c.createArtifactFileData)({filename:i,type:(0,_.getFileTypeFromPath)(i)});t(e=>{let t=e.artifacts[n],r=p?e.artifactVersions[p]:void 0;if(!t||!r)return;e.artifactFiles[h.id]=h,t.fileIds.includes(h.id)||t.fileIds.push(h.id);let a=r.fileContents[s];a&&(r.fileContents[h.id]=a,delete r.fileContents[s]);let i=e.artifactViewerState[n];i?.activeFileId===s&&(i.activeFileId=h.id),t.updatedAt=new Date});let y=e().artifactFiles[h.id],v=p?e().artifactVersions[p]:void 0,I=e().artifacts[n];try{let e=[];y&&e.push(f.persistence.saveArtifactFiles(l,[y])),v&&e.push(f.persistence.saveArtifactVersions(l,[v])),I&&e.push(f.persistence.saveArtifacts(l,o,[I])),await Promise.all(e),(0,r.toast)({title:"File Renamed",description:`Renamed to "${i}" for the current version.`})}catch{(0,r.toast)({title:"Rename Failed",description:"An error occurred while saving changes.",variant:"destructive"})}}});e.s(["renameArtifactFile",0,L],738237);var G=e.i(462904);function B(e,t){let r=t[e];return r&&"message"===r.data.type?"string"==typeof r.data.content?r.data.content:Array.isArray(r.data.content)?r.data.content.map(e=>"text"in e?e.text:"").filter(Boolean).join(""):"":""}function q(e){let{get:t,roomId:r,artifactId:a,generationPrompt:n,baseVersionId:s,attachments:i}=e,o=t(),l=o.artifacts[a];if(!l)return[];let c=function(e,t,r){let a=e.artifacts[t];if(!a)return null;let n=e.artifactVersions,s=e.artifactViewerState[t];return function e(t,r){if(!t)return null;let a=r[t];return a&&a.type===m.ArtifactType.App?void 0!==a&&(a.generationStatus===m.GenerationStatus.Idle||a.generationStatus===m.GenerationStatus.Success)?a:a.generationStatus===m.GenerationStatus.Generating&&a.parentVersionId?e(a.parentVersionId,r):null:null}(r??s?.activeVersionId??a.headVersionId??null,n)}(o,a,s);if(!c)return[];let d=o.rooms[r],u=y.useItemStore.getState().items,p=function({baseVersion:e,versions:t}){let r=(function(e,t){let r=[],a=new Set,n=e;for(;n&&!a.has(n.id);){r.unshift(n),a.add(n.id);let e=n.parentVersionId;if(!e)break;let s=t[e];n=s&&s.type===m.ArtifactType.App?s:void 0}return r})(e,t).map((e,t)=>{let r=e.prompt?.trim();if(r)return`**v${t+1} request:** ${r}`}).filter(e=>!!e);if(0!==r.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.",...r,"---"].join("\n\n")}({baseVersion:c,versions:o.artifactVersions}),f=[function({room:e,itemsMap:t,artifactId:r,versionId:a}){if(!e)return;let n=Object.values(e.messages).filter(e=>e.context===m.MessageContext.ArtifactChat&&e.contentType===m.ContentType.Text&&e.versionContextId===a&&(e.type!==m.MessageType.Assistant||e.artifactId===r)).sort(h.sortMessages);if(0===n.length)return;let s=n.map(e=>{let r=e.items.map(e=>B(e.id,t)).filter(Boolean).join("\n");if(!r.trim())return;let a=e.type===m.MessageType.User?"User":"Assistant";return`**${a}:** ${r}`}).filter(e=>!!e);if(0!==s.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.",...s,"---"].join("\n\n")}({room:d,itemsMap:u,artifactId:a,versionId:c.id}),n].filter(e=>!!e).join("\n\n"),g=l.type===m.ArtifactType.App?l.archetype??m.AppArchetype.InteractiveWebApp:m.AppArchetype.InteractiveWebApp,{getSystemPrompt:v}=(0,b.getArchetypeConfig)(g),{baseInstructions:I,finalInstructions:w}=v(!0),S=Object.keys(c.fileContents).map(e=>o.artifactFiles[e]?.filename).filter(e=>!!e),C=(0,N.generateDirectoryTree)(S),_=[p,(0,A.buildIncrementalContextSection)({parentVersion:c,allFiles:o.artifactFiles,allContents:o.artifactFileContents,directoryTree:C})].filter(e=>!!e).join("\n\n")||void 0,x=(0,A.assembleSystemPrompt)({baseInstructions:I,finalInstructions:w,generationPrompt:f,mainContext:_});return i?.length?[...x,...i.map(T)]:x}e.s(["extractTextFromItem",0,B],671877),e.s(["buildNextVersionContext",0,q],930339);let W=(0,p.makeStoreAction)({name:"retryArtifactVersion",handler:async({set:e,get:t,payload:a})=>{let n=function(e,t){let{roomId:r,artifactId:a,versionId:n}=t,i=e(),o=i.storageInstanceId,l=i.rooms[r],c=i.artifacts[a],d=i.artifactVersions[n];if(!o||!l||!c||!d)return(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Required context for retry is missing.")});if(c.type!==m.ArtifactType.App)return(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Only App artifacts can be retried.")});if(d.type!==m.ArtifactType.App)return(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Only App artifact versions can be retried.")});if(d.generationStatus===m.GenerationStatus.Generating)return(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Cannot retry while this version is generating.")});let u=l.characters[d.characterId];if(!u)return(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Original model for this version not found.")});let p=d.prompt;return p?(0,s.ok)({namespace:o,roomId:r,artifactId:a,versionId:n,artifact:c,versionToRetry:d,generatorCharacter:u,prompt:p}):(0,G.errT)({location:"retryArtifactVersion:gatherRetryContext",rawError:Error("Original prompt for this version not found.")})}(t,a);if((0,s.isErr)(n))return(0,r.toast)({title:"Retry Failed",description:n.error.message,variant:"destructive"}),n;let i=n.data,{versionId:o,namespace:l,generatorCharacter:c}=i;e(e=>{let t=e.artifactVersions[o];t&&(t.generationStatus=m.GenerationStatus.Generating,t.error=void 0,t.generationDurationMs=void 0),e.generationAttemptStartMs[o]=Date.now()});let d=function(e,t){let{artifact:r,versionToRetry:a,prompt:n,artifactId:s}=t;if(a.parentVersionId)return q({get:e,roomId:t.roomId,artifactId:s,generationPrompt:n,baseVersionId:a.parentVersionId});let i=r.archetype??m.AppArchetype.InteractiveWebApp,{getInitialFiles:o}=(0,b.getArchetypeConfig)(i);return C({generationPrompt:n,archetype:i,initialVirtualFiles:o()})}(t,i);if(0===d.length)return(0,G.errT)({location:"retryArtifactVersionAction:buildMessages",rawError:Error("Failed to build generation context for retry.")});let u=await (0,v.fetchResponsesStreamForCharacter)({character:c,inputItems:d,storeState:t(),roomId:i.roomId,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(!u)return e(e=>{let t=e.artifactVersions[o];t&&(t.generationStatus=m.GenerationStatus.Failed)}),(0,G.errT)({location:"retryArtifactVersionAction:fetchStream",rawError:Error("AI model did not return a response.")});let p=await (0,I.streamAndFinalizeGeneration)({set:e,get:t,...i,responseBody:u,assistantMessageId:i.versionToRetry.generatingMessageId});if((0,s.isErr)(p))return(0,r.toast)({title:"Retry Failed",description:p.error.message??"An unknown streaming error occurred.",variant:"destructive"}),(0,s.err)((0,G.makeErrorT)({location:"retryArtifactVersionAction:finalize",rawError:p.error}));let g=t().artifactVersions[o];return g&&g.type===m.ArtifactType.App?(await f.persistence.saveArtifactVersions(l,[g]),(0,s.ok)(g)):(0,G.errT)({location:"retryArtifactVersionAction:finish",rawError:Error("Could not find the final version in store.")})}});e.s(["retryArtifactVersion",0,W],745732)},999342,213696,957531,558668,849758,892341,970303,931581,521064,e=>{"use strict";e.i(530023);var t=e.i(612774),r=e.i(286709);e.i(798823);var a=e.i(429930),n=e.i(447680),s=e.i(741841),i=e.i(693697),o=e.i(462904),l=e.i(586404),c=e.i(826735);function d(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}async function u({ev:e,state:t,helpers:r}){if("response.completed"!==e.type&&"response.incomplete"!==e.type)return;let a={...t.finalMetadata};e.response.model&&(a={...a,variantSlug:e.response.model}),e.response.openrouter_metadata&&(a={...a,routerMetadata:e.response.openrouter_metadata});let s=e.response.openrouter_metadata?.generation_time;if(a={...a,duration:s},e.response.usage){let t=e.response.usage,r=void 0!==s&&s>0&&t.output_tokens>0?1e3*t.output_tokens/s:void 0;a={...a,tokensCount:t.output_tokens,tokensPerSecond:r,..."cost"in t&&"number"==typeof t.cost?{cost:t.cost.toString()}:{}}}t.didReceiveCompletionEvent=!0,t.finalMetadata=a,r.actions.updateMessage({payload:{roomId:r.roomId,messageId:r.botMessage.id,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:a}}});let i=r.actions.getStore().rooms[r.roomId]?.messages[r.botMessage.id],o=r.namespace;o&&i&&await n.persistence.saveMessage(o,r.roomId,i)}let p={"response.created":async function e({ev:t,state:r,helpers:a}){if("response.created"!==t.type)return;let n=(0,l.definedValues)({...r.finalMetadata,variantSlug:t.response.model,generationId:t.response.id});r.finalMetadata=n,a.actions.updateMessage({payload:{roomId:a.roomId,messageId:a.botMessage.id,partialMessage:{metadata:n}}})},"response.output_item.added":async function e({ev:t,helpers:r}){if("response.output_item.added"!==t.type)return;let a=t.item,n=d(a);if(!n)return;let s=(0,c.createPlaygroundItem)({id:n,messageId:r.botMessage.id,data:a});r.contentActions.upsertItem(s),await r.actions.appendItemIdToMessage({payload:{roomId:r.roomId,messageId:r.botMessage.id,itemId:s.id,outputIndex:t.output_index,type:a.type}})},"response.output_text.delta":async function e({ev:t,helpers:r}){"response.output_text.delta"===t.type&&r.contentActions.appendMessageText(t.item_id,t.delta,t.content_index)},"response.output_text.annotation.added":async function e({ev:t,helpers:r}){"response.output_text.annotation.added"===t.type&&r.contentActions.appendAnnotation(t.item_id,t.content_index,t.annotation)},"response.refusal.delta":async function e({ev:t,helpers:r}){"response.refusal.delta"===t.type&&r.contentActions.appendMessageText(t.item_id,t.delta,t.content_index)},"response.reasoning_summary_text.delta":async function e({ev:t,helpers:r}){"response.reasoning_summary_text.delta"===t.type&&r.contentActions.appendReasoningSummaryText(t.item_id,t.delta,t.summary_index)},"response.reasoning_text.delta":async function e({ev:t,helpers:r}){"response.reasoning_text.delta"===t.type&&r.contentActions.appendReasoningContentText(t.item_id,t.delta,t.content_index)},"response.function_call_arguments.delta":async function e({ev:t,helpers:r}){"response.function_call_arguments.delta"===t.type&&r.contentActions.appendFunctionArguments(t.item_id,t.delta)},"response.output_item.done":async function e({ev:t,helpers:r}){if("response.output_item.done"!==t.type)return;let a=t.item,n=d(a);if(!n)return;let s=r.contentActions.getStore().items[n],i={id:n,messageId:s?.messageId??r.botMessage.id,data:a};r.contentActions.upsertItem(i)},"response.completed":u,"response.incomplete":u};async function m(){let{useItemStore:t}=await e.A(266595);return{eventHandlers:p,useItemStore:t}}async function f({get:e,responseGenerator:t,botMessage:r,roomId:n,deps:s}){let l=s??await m(),{actions:c}=l.useItemStore.getState(),{actions:d,storageInstanceId:u}=e(),p=e().rooms[n]?.messages[r.id],g={finalMetadata:{...(p?.type===a.MessageType.Assistant?p.metadata:void 0)??r.metadata},didReceiveCompletionEvent:!1},h={contentActions:{...c,getStore:l.useItemStore.getState},actions:{...d,getStore:e},namespace:u,botMessage:r,roomId:n};for await(let e of t){if((0,i.isErr)(e))return(0,o.errT)({location:"handleStream",rawError:e.error});let t=e.data,r=l.eventHandlers[t.type];r&&await r({ev:t,state:g,helpers:h})}g.didReceiveCompletionEvent||d.updateMessage({payload:{roomId:n,messageId:r.id,partialMessage:{isGenerating:!1,isRetrying:!1}}});let y=e().rooms[n]?.messages[r.id];return y?.type===a.MessageType.Assistant?(0,i.ok)(y):(0,i.ok)(void 0)}async function g(e){let{get:t,set:r,roomId:n,message:o,responseBody:l}=e,c=(0,s.processResponseStream)(l),d=await f({get:t,responseGenerator:c,botMessage:o,roomId:n});return(0,i.isErr)(d)?(r(e=>{let t=e.rooms[n]?.messages[o.id];t?.type===a.MessageType.Assistant&&(t.isGenerating=!1)}),null):d.data?.type===a.MessageType.Assistant?d.data:null}e.s(["handleStream",0,f],213696);var h=e.i(735961),y=e.i(407568),v=e.i(366699),I=e.i(336422),b=e.i(17972),A=e.i(466260),w=e.i(671877),S=e.i(44745),T=e.i(122901),C=e.i(295654),_=e.i(847893);let x=(0,r.makeStoreAction)({name:"sendConversationPromptToArtifact",handler:async({set:e,get:r,payload:s})=>{let{roomId:i,artifactId:o,content:l,attachments:d=[]}=s,u=r(),p=u.storageInstanceId,m=u.rooms[i],f=u.artifacts[o];if(!p||!m||!f)return;let{activeCharacterId:x}=f,M=u.artifactViewerState[o]?.activeVersionId??void 0;if(M){let e=u.artifactVersions[M];if(e?.generationStatus===a.GenerationStatus.Failed)return void(0,t.toast)({title:"Version Unavailable",description:"The selected version failed during generation. Please retry generation or select another version before chatting.",variant:"destructive"})}let E=x?m.characters[x]:void 0;if(!E)return void(0,t.toast)({title:"No Model Selected",description:"Please select a model to chat with.",variant:"destructive"});let{userMessage:k,aiMessage:R,userMessageItem:O}=function(e){let{roomMessages:t,artifactId:r,activeVersionId:n,aiCharacter:s,content:i,attachments:o=[]}=e,l=t.filter(e=>e.context===a.MessageContext.ArtifactChat&&(e.type!==a.MessageType.Assistant||e.artifactId===r)).sort(S.sortMessages).at(-1),d=(0,T.orid)(T.ORIDType.Message),u=(0,c.createPlaygroundItem)({id:(0,T.orid)(T.ORIDType.Item),messageId:d,data:{type:"message",role:"user",content:[{type:"input_text",text:i}]}}),p=(0,_.createUserMessage)({id:d,characterId:C.userCharacter.id,artifactId:r,context:a.MessageContext.ArtifactChat,parentMessageId:l?.id,versionContextId:n,attachments:o.length>0?o:void 0,contentType:a.ContentType.Text,items:[{id:u.id,type:"message"}]}),m=(0,_.createAssistantMessage)({id:(0,T.orid)(T.ORIDType.Message),context:a.MessageContext.ArtifactChat,characterId:s.id,artifactId:r,parentMessageId:p.id,versionContextId:n,isGenerating:!0,items:[]});return{userMessage:p,aiMessage:m,userMessageItem:u}}({roomMessages:Object.values(m.messages),artifactId:o,activeVersionId:M,aiCharacter:E,content:l,attachments:d});!function(e){let{set:t,roomId:r,userMessage:a,aiMessage:n}=e;t(e=>{let t=e.rooms[r];t&&(t.messages[a.id]=a,t.messages[n.id]=n,t.sortedMessageIds=Object.values(t.messages).sort(S.sortMessages).map(e=>e.id))})}({set:e,roomId:i,userMessage:k,aiMessage:R}),h.useItemStore.getState().actions.upsertItem(O),await n.persistence.saveMessage(p,i,k);let F=function(e){let{get:t,roomId:r,artifactId:n,activeVersionId:s}=e,i=t(),o=h.useItemStore.getState().items,l=i.rooms[r],c=i.artifacts[n];if(!l||!s||!c)return[];let d=i.artifactVersions[s];if(!d||d.type!==a.ArtifactType.App)return[];let u=c.type===a.ArtifactType.App?c.archetype??a.AppArchetype.InteractiveWebApp:a.AppArchetype.InteractiveWebApp,{getConversationSystemPrompt:p}=(0,b.getArchetypeConfig)(u),m=p(c.name),f=(0,A.buildFilesContextString)({version:d,allFiles:i.artifactFiles,allContents:i.artifactFileContents}),g=Object.values(l.messages).filter(e=>{if(e.context!==a.MessageContext.ArtifactChat||e.contentType===a.ContentType.ArtifactVersion&&e.type!==a.MessageType.User)return!1;let t=e.type;switch(t){case a.MessageType.Assistant:return e.artifactId===n;case a.MessageType.User:{if(e.versionContextId){let t=i.artifactVersions[e.versionContextId];return t?.artifactId===n}let t=Object.values(l.messages).find(t=>t.parentMessageId===e.id);if(t?.type===a.MessageType.Assistant)return t.artifactId===n;return!1}case a.MessageType.System:return!1;default:return(0,I.assertNever)(t),!1}}).sort(S.sortMessages).map(e=>{let t=e.items.map(e=>(0,w.extractTextFromItem)(e.id,o)).filter(Boolean).join("\n");return t.trim()?{type:"message",role:e.type===a.MessageType.User?v.ChatMessageRole.User:v.ChatMessageRole.Assistant,content:t}:null}).filter(e=>null!==e).slice(-8);return[{type:"message",role:v.ChatMessageRole.System,content:(0,A.assembleConversationSystemPrompt)(m,f)},...g]}({get:r,roomId:i,artifactId:o,activeVersionId:M,userMessage:k}),P=await (0,y.fetchResponsesStreamForCharacter)({character:E,inputItems:F,storeState:r(),roomId:i,options:{includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}});if(!P)return void e(e=>{let t=e.rooms[i],r=t?.messages[R.id];r&&r.type===a.MessageType.Assistant&&(r.isGenerating=!1)});let j=r().rooms[i]?.messages[R.id];if(!j||j.type!==a.MessageType.Assistant||!await g({get:r,set:e,roomId:i,message:j,responseBody:P}))return;let D=r().rooms[i]?.messages[j.id];D&&await n.persistence.saveMessage(p,i,D)}});e.s(["sendConversationPromptToArtifact",0,x],999342);var M=e.i(399695);e.i(204067);var E=e.i(796805),k=e.i(700050),R=e.i(44539),O=e.i(773229),F=e.i(930339);async function P(e){let{set:t,get:r,namespace:s,roomId:o,artifactId:l,artifactVersionMessage:c}=e;t(e=>{let t=e.rooms[o]?.messages[c.id];t&&t.type===a.MessageType.Assistant&&(t.isGenerating=!1);let r=e.artifacts[l]?.headVersionId;if(!r)return;let n=e.generationAttemptStartMs[r];delete e.generationAttemptStartMs[r];let s=e.artifactVersions[r];s&&(s.generationStatus=a.GenerationStatus.Failed,s.error="AI model did not return a response.","number"==typeof n&&n>0&&(s.generationDurationMs=Math.max(0,Date.now()-n)))});let d=r().artifacts[l]?.headVersionId,u=d?r().artifactVersions[d]:void 0;return u&&await n.persistence.saveArtifactVersions(s,[u]),(0,i.err)(Error("AI model did not return a response."))}async function j(e){let{responseBody:t,newVersion:r,...a}=e;if(!t)return P(a);let n=await (0,O.streamAndFinalizeGeneration)({...a,responseBody:t,versionId:r.id,assistantMessageId:a.artifactVersionMessage.id});return(0,i.isErr)(n)?(0,i.err)(Error(n.error.message)):(0,i.ok)(r)}E.z.object({roomId:E.z.string(),artifactId:E.z.string(),prompt:E.z.string(),parentVersionId:E.z.string().nullish(),isRegeneration:E.z.boolean().optional(),attachments:E.z.array(M.FileAttachmentSchema).optional()});let D=(0,r.makeStoreAction)({name:"sendGenerationPromptToArtifact",handler:async({get:e,set:r,payload:s})=>{let{roomId:o,artifactId:l,prompt:d,attachments:u,parentVersionId:p}=s,m=e(),f=m.storageInstanceId,g=m.rooms[o],v=m.artifacts[l];if(!f||!g||!v)return(0,i.err)(Error("Cannot generate version: Missing context."));let I=p??m.artifactViewerState[l]?.activeVersionId;if(!I)return(0,i.err)(Error("Cannot generate version: No active version selected."));let b=m.artifactVersions[I];if(!b)return(0,i.err)(Error(`Parent version ${I} not found.`));let{activeCharacterId:A}=v,w=A?g.characters[A]:void 0;if(!w)return(0,i.err)(Error("No valid AI generator was found for this artifact."));let{userMessage:x,artifactVersionMessage:M,userMessageItem:E}=function(e){let{artifactId:t,generatorCharacter:r,parentVersionId:n,prompt:s,attachments:i}=e,o=new Date,l=(0,T.orid)(T.ORIDType.Message),d=(0,c.createPlaygroundItem)({id:(0,T.orid)(T.ORIDType.Item),messageId:l,data:{type:"message",role:"user",content:[{type:"input_text",text:s}]}}),u=(0,_.createUserMessage)({id:l,characterId:C.userCharacter.id,artifactId:t,context:a.MessageContext.ArtifactChat,contentType:a.ContentType.ArtifactVersion,items:[{id:d.id,type:"message"}],attachments:i,createdAt:o,versionContextId:n}),p=(0,_.createAssistantMessage)({id:(0,T.orid)(T.ORIDType.Message),context:a.MessageContext.ArtifactChat,contentType:a.ContentType.ArtifactVersion,characterId:r.id,artifactId:t,parentMessageId:u.id,isGenerating:!0,createdAt:new Date(o.getTime()+1),items:[]});return{userMessage:u,artifactVersionMessage:p,userMessageItem:d}}({artifactId:l,generatorCharacter:w,parentVersionId:I,prompt:d,attachments:u}),O=(0,R.createAppArtifactVersionData)({artifactId:l,parentVersionId:I??void 0,characterId:w.id,fileContents:{...b.fileContents},generatingMessageId:x.id,generationStatus:a.GenerationStatus.Generating,versionNumber:(v.versionsCount??0)+1,characterName:w.name||w.presetName||w.model,prompt:d});M.versionContextId=O.id;let P={...v,headVersionId:O.id,versionsCount:(v.versionsCount??0)+1,updatedAt:new Date};!function(e){let{set:t,roomId:r,artifactId:n,userMessage:s,artifactVersionMessage:i,updatedArtifact:o,newVersion:l}=e;t(e=>{let t=e.rooms[r];if(!t)return;t.messages[s.id]=s,t.messages[i.id]=i,t.sortedMessageIds=Object.values(t.messages).sort(S.sortMessages).map(e=>e.id),e.artifacts[n]=o,e.artifactVersions[l.id]=l;let c=o.type===a.ArtifactType.App?o.entrypointFileId:o.fileIds[0];e.artifactViewerState[n]?e.artifactViewerState[n].activeVersionId=l.id:e.artifactViewerState[n]={view:a.ArtifactView.Editor,activeFileId:c??null,activeVersionId:l.id,expandedFolders:{}}})}({set:r,roomId:o,artifactId:l,userMessage:x,artifactVersionMessage:M,updatedArtifact:P,newVersion:O}),h.useItemStore.getState().actions.upsertItem(E),await Promise.all([n.persistence.saveMessages(f,o,[x,M]),n.persistence.saveArtifacts(f,o,[P]),n.persistence.saveArtifactVersions(f,[O])]);let D=(0,F.buildNextVersionContext)({get:e,roomId:o,artifactId:l,generationPrompt:d.trim(),baseVersionId:I,attachments:s.attachments});r(e=>{e.generationAttemptStartMs[O.id]=Date.now()});let V=await (0,y.fetchResponsesStreamForCharacter)({character:w,inputItems:D,storeState:e(),roomId:o,options:{forceStream:!0,includeDefaultSystemPrompt:!1,includeEnforcedSystemPrompt:!1}}),z=await j({responseBody:V,set:r,get:e,namespace:f,roomId:o,artifactId:l,newVersion:O,artifactVersionMessage:M});return(0,i.isErr)(z)?(0,t.toast)({title:"Generation Error",description:z.error.message,variant:"destructive"}):(0,k.trackArtifactVersionCreate)({artifactId:l}),z}});e.s(["sendGenerationPromptToArtifact",0,D],957531);let V=(0,r.makeStoreAction)({name:"setActiveArtifactId",handler:({set:e,get:t,payload:{artifactId:r}})=>{e(e=>{e.activeArtifactId=r,r&&function(e,t){var r;let n=e.artifactViewerState[t];if(n){n.expandedFolders||(n.expandedFolders={});let r=e.artifacts[t];!n.activeVersionId&&r?.headVersionId&&(n.activeVersionId=r.headVersionId);return}let s=e.artifacts[t];if(!s){e.artifactViewerState[t]={view:a.ArtifactView.Editor,activeFileId:null,activeVersionId:null,expandedFolders:{}};return}let i=(r=s).fileIds&&0!==r.fileIds.length?r.type===a.ArtifactType.App&&r.entrypointFileId?r.entrypointFileId:r.fileIds[0]??null:null;e.artifactViewerState[t]={view:a.ArtifactView.Editor,activeFileId:i,activeVersionId:s.headVersionId??null,expandedFolders:{}}}(e,r)}),r&&t().actions.loadFullArtifact({payload:{artifactId:r}})}});e.s(["setActiveArtifactId",0,V],558668);let z=(0,r.makeStoreAction)({name:"setActiveArtifactView",handler:({set:e,payload:t})=>{e(e=>{e.artifactViewerState[t.artifactId]&&(e.artifactViewerState[t.artifactId].view=t.view)})}});e.s(["setActiveArtifactView",0,z],849758);var $=e.i(693946);let U=(0,r.makeStoreAction)({name:"setActiveCharacterForArtifact",handler:async({set:e,get:t,payload:r})=>{let{artifactId:a,characterId:s}=r;e(e=>{let t=e.artifacts[a];t&&(t.activeCharacterId=s??null,s&&(Array.isArray(t.characterIds)||(t.characterIds=[]),t.characterIds.includes(s)||t.characterIds.push(s)),t.updatedAt=new Date)});let i=t().storageInstanceId,o=(0,$.selectCurrentRoomId)(t()),l=t().artifacts[a];i&&o&&l&&await n.persistence.saveArtifacts(i,o,[l])}});e.s(["setActiveCharacterForArtifact",0,U],892341);let N=(0,r.makeStoreAction)({name:"setActiveFileId",handler:({set:e,payload:t})=>{e(e=>{e.artifactViewerState[t.artifactId]&&(e.artifactViewerState[t.artifactId].activeFileId=t.fileId)})}});e.s(["setActiveFileId",0,N],970303);let L=(0,r.makeStoreAction)({name:"setActiveVersionId",handler:({set:e,payload:t})=>{e(e=>{let r=e.artifactViewerState[t.artifactId];r&&(r.activeVersionId=t.versionId)})}});e.s(["setActiveVersionId",0,L],931581);let G=(0,r.makeStoreAction)({name:"updateArtifact",handler:async({set:e,get:r,payload:a})=>{let s,{roomId:i,artifactId:o,partialArtifact:l}=a;e(e=>{let r=e.rooms[i],a=e.artifacts[o];a?(Object.assign(a,l),a.updatedAt=new Date,r&&(r.updatedAt=new Date),s={...a}):(0,t.toast)({title:"Update Failed",description:"Could not find the artifact to update. It might have been deleted.",variant:"destructive"})});let c=r().storageInstanceId;c&&s&&await n.persistence.saveArtifacts(c,i,[s])}});e.s(["updateArtifact",0,G],521064)},407568,249191,115247,250464,176478,952384,772732,764071,26544,2247,559802,504344,966065,e=>{"use strict";var t,r,a,n,s=e.i(767019),i=e.i(981895);e.i(530023);var o=e.i(612774),l=e.i(544678),c=e.i(693697),d=e.i(347586),u=e.i(442160),p=e.i(963),m=e.i(421773),f=e.i(823118),g=e.i(723157),h=e.i(669804),y=e.i(81174),v=e.i(366699),I=e.i(235750),b=e.i(706527),A=e.i(179273),w=e.i(838275),S=e.i(586404),T=e.i(315768),C=e.i(295654),_=e.i(434648),x=e.i(264678),M=e.i(391927);function E(e){let t=e.modelInfo?.endpoint;return{providerName:e.provider??t?.provider_name,supportsNativeWebSearch:t?.features?.supports_native_web_search===!0}}e.s(["getServerToolCapabilityContext",0,E],249191);var k=e.i(604638);let R=["cognitivecomputations/dolphin"],O=e=>e&&R.find(t=>e.permaslug.startsWith(t))?e.default_system:null;function F({character:e,inputItems:t,storeState:r,roomId:a,options:n={},requestOverrides:s}){var i,o,l;let c,d,p,{includeDefaultSystemPrompt:m=!0,includeEnforcedSystemPrompt:_=!0}=n,{modelInfo:M}=e;if(!M)return(0,y.wLog)(`Model information not found for character: ${e.id}`),null;let E=(0,b.getModelVariantSlug)(M),R=e.presetSlug?`${E}${w.PRESET_DELIMITER}${w.PRESET_PATH_PREFIX}${e.presetSlug}`:E;e.provider?p={order:[e.provider],allow_fallbacks:!1}:e.providerSort&&(p={sort:e.providerSort}),e.zdr&&(p={...p,zdr:!0});let j=(i=e,o=t,l=r,c=(i.plugins??[]).filter(e=>e.id!==g.PluginId.WebSearch),(d=(0,T.pipe)(c,e=>{let t=function(e,t,r){if(!t.modelInfo||!(0,h.isFusionRouterSlug)(t.modelInfo.permaslug)||e.some(e=>e.id===g.PluginId.Fusion))return e;let a=(r.tools??k.DEFAULT_TOOLS_CONFIG).fusion,n=(0,S.definedValues)((0,x.sanitizeFusionPluginParameters)(a.parameters));return Object.keys(n).length>0?[...e,{id:g.PluginId.Fusion,...n}]:e}(e,i,l);if(!(i.model&&(0,A.getStaticVariant)(i.model)===A.Variant.Free))return t;let r=t.filter(e=>e.id!==g.PluginId.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}(o)?r:[...r,{id:g.PluginId.FileParser,pdf:{engine:f.PDFParserEngine.CloudflareAI}}]})).length>0?d:void 0),V=function(e){if(e.modelInfo?.endpoint?.supports_reasoning&&(e.modelInfo?.endpoint&&(0,u.isMandatoryReasoning)(e.modelInfo.endpoint)||e.reasoning?.enabled===!0))return(0,T.pipe)({enabled:!0},t=>{let r=e.reasoning;return r?.maxTokens!==void 0&&r.maxTokens>0&&(t.max_tokens=r.maxTokens),t},t=>{let r=e.reasoning;if(!t.max_tokens&&r?.effort!==void 0){let a=(0,I.mapToSupportedReasoningEffort)(r.effort,(0,I.getSupportedReasoningEfforts)(e.modelInfo?.endpoint?.model.reasoning_config??null));void 0!==a&&(t.effort=a)}return t})}(e),z=P(r,e),$=(function(e,t,r){if(!t)return"";let a=O(e.modelInfo);return a&&r?a:e.includeDefaultSystemPrompt?(0,C.getDefaultSystemPrompt)(e.modelInfo)||"":e.description?e.description:""})(e,m,_).trim(),U=Array.isArray(t)?[...t]:t;if($&&Array.isArray(U)){let e=U[0];e&&"role"in e&&e.role===v.ChatMessageRole.System&&"content"in e&&"string"==typeof e.content&&e.content.trim()===$.trim()||U.unshift({role:v.ChatMessageRole.System,content:$})}let{input:N,...L}=s??{},G=D(r,e);return{model:R,input:U,plugins:j,stream:e.isStreaming??!0,reasoning:V,provider:p,session_id:a,...z.length>0?{tools:z}:{},...void 0!==e.maxTokens&&e.maxTokens>0?{max_output_tokens:e.maxTokens}:{},...e.samplingParameters,...G,...L}}function P(e,t){let r=t.modelInfo?.endpoint;if(!r?.supported_parameters?.includes(m.Parameter.Tools))return[];let a=e.tools??k.DEFAULT_TOOLS_CONFIG,n=t.model&&(0,A.getStaticVariant)(t.model)===A.Variant.Free,s=E(t);return k.SERVER_TOOL_CONFIG_DEFINITIONS.flatMap(e=>{if(!e.isVisibleInChatroom)return[];let r=a[e.id];if(!r.enabled||n&&!e.isAvailableForFreeModels||"imageGeneration"===e.id&&j(t))return[];if("advisor"===e.id)return(0,M.serializeAdvisorRoster)(a.advisor.parameters.advisors);if("subagent"===e.id)return(0,M.serializeSubagentRoster)(a.subagent.parameters.subagents);let i="imageGeneration"===e.id?function(e){let{model:t,...r}=V(e);return{...void 0!==t&&{model:t},...r}}(a.imageGeneration.parameters):function({toolId:e,parameters:t,defaults:r,capabilityContext:a}){let n=Object.fromEntries(Object.entries(t)),s=Object.fromEntries(Object.entries(r));return Object.fromEntries(Object.entries(n).filter(([t,r])=>{var i,o,l;return!!(0,k.isToolParameterVisible)({toolId:e,fieldKey:t,parameters:n,capabilityContext:a})&&void 0!==r&&""!==r&&(Array.isArray(r)?r.length>0:!(null!==(i=r)&&"object"==typeof i&&!Array.isArray(i)&&0===Object.keys(i).length)&&(o=r,l=s[t],Array.isArray(o)&&Array.isArray(l)?0!==o.length||0!==l.length:o!==l))}))}({toolId:e.id,parameters:r.parameters,defaults:{...e.defaultParameters,..."serializationBaseline"in e?e.serializationBaseline:{}},capabilityContext:s});return[{type:e.apiType,...Object.keys(i).length>0&&{parameters:i}}]})}function j(e){return(e.modelInfo?.output_modalities?.includes(p.OutputModality.Image)??!1)&&!e.modelInfo?.output_modalities?.includes(p.OutputModality.Text)}function D(e,t){if(!j(t))return{};let r=e.tools??k.DEFAULT_TOOLS_CONFIG,a=r.imageGeneration.parameters;if(!r.imageGeneration.enabled)return{modalities:[p.OutputModality.Image]};let n=a.model??function(e){if(e.modelInfo)return(0,b.getModelVariantSlug)(e.modelInfo)}(t),{model:s,...i}=V(a,n);return{modalities:[p.OutputModality.Image],...Object.keys(i).length>0&&{image_config:i}}}function V(e,t=e.model){return Object.fromEntries(Object.entries(e).filter(e=>{let[r,a]=e;return!!(0,_.isSerializableImageGenerationParameterKey)(r)&&!!(0,_.isImageGenerationParameterSupported)(r,a,t)&&("string"==typeof a||"number"==typeof a||Array.isArray(a))}))}e.s(["getEnforcedSystemPrompt",0,O],115247),e.s(["getImageGenerationOverrides",0,D,"getServerTools",0,P,"prepareApiRequest",0,F],250464);var z=e.i(615366);async function $(e){let{character:t,inputItems:r,storeState:a,roomId:n,options:u}=e,p=F({character:t,inputItems:r,storeState:a,roomId:n,options:{includeDefaultSystemPrompt:u.includeDefaultSystemPrompt,includeEnforcedSystemPrompt:u.includeEnforcedSystemPrompt}});return p?(u.forceStream&&(p.stream=!0),d.abortCtrlManagerRef.current.withController(async e=>{let t=await (0,l.fetchApiResponse)({params:p,abortController:e});return(0,c.isErr)(t)?("toResponseResult:abort"===t.error.location?(0,o.toast)({title:"Request cancelled"}):((0,z.trackError)(Error(t.error.message),{source:"fetchResponsesStreamForCharacter",filename:"fetch-completion-stream-for-character.ts",context:{errorResult:t.error}}),(0,o.toast)((0,s.getErrorToastProps)({message:(0,i.extractErrorMessage)(t.error),status:t.error.status}))),null):t.data.body?t.data.body:((0,o.toast)((0,s.getErrorToastProps)({message:"The AI model returned an empty response."})),null)})):null}e.s(["fetchResponsesStreamForCharacter",0,$],407568);var U=e.i(826735),N=e.i(735961),L=e.i(336422);e.i(798823);var G=e.i(429930),B=e.i(709687),q=e.i(44539);function W(e){switch(e.split(".").pop()?.toLowerCase()){case"ts":case"tsx":return G.FileType.TypeScript;case"js":case"javascript":return G.FileType.JavaScript;case"jsx":return G.FileType.JSX;case"html":return G.FileType.HTML;case"css":return G.FileType.CSS;case"json":return G.FileType.JSON;case"md":return G.FileType.Markdown;default:return G.FileType.Text}}function H(e){let t=e.trim().replaceAll("\\","/").replaceAll(/\/{2,}/g,"/");return t.startsWith("./")&&(t=t.slice(2)),t.startsWith("/")&&(t=t.slice(1)),t}function J(e){let t=e.split("/"),r=[];for(let e of t)if(""!==e&&"."!==e){if(".."===e){r.length>0&&r.pop();continue}r.push(e)}return r.join("/")}function Y(...e){return J(H(e.filter(Boolean).join("/")))}function Z(e){let t=J(H(e));return!(!t||t.startsWith("/")||t.includes("\0")||t.endsWith("/")||t.split("/").some(e=>""===e||"."===e||".."===e))}e.s(["getFileTypeFromPath",0,W],176478);let X=[".ts",".tsx"];function K(e,t){let r=J(H(e));if((r.endsWith(".ts")||r.endsWith(".tsx"))&&t.has(r))return r;for(let e of X){let a=`${r}${e}`;if(t.has(a))return a}return null}function Q(e,t){let r=J(H(e));for(let e of X){let a=`${r}/index${e}`;if(t.has(a))return a}return null}function ee(e,t){let r=H(t),a=new Set;for(;e.pathRedirects.has(r)&&!a.has(r);){a.add(r);let t=e.pathRedirects.get(r);if(!t)break;r=t}return r}e.s(["collapseDotSegments",0,J,"generateDirectoryTree",0,function(e){let t={};return e.map(e=>H(e).split("/")).forEach(e=>{let r=t;for(let t of e){let e=r[t];void 0===e&&(e={},r[t]=e),r=e}}),function e(t,r=""){return Object.keys(t).reduce((...a)=>{let[n,s,i,o]=a,l=i===o.length-1,c=t[s]??{};return n+`${r}${l?"└── ":"├── "}${s} `+(Object.keys(c).length>0?e(c,r+(l?" ":"│ ")):"")},"")}(t)},"isPathSafe",0,Z,"joinPath",0,Y,"normalizePath",0,H,"resolveIndexUnderTsFirst",0,Q,"resolveWithExtensionsTsFirst",0,K],952384);var et=((t={}).SeekingCommand="seeking-command",t.ParsingPath="parsing-path",t.StreamingContent="streaming-content",t),er=((r={}).UpsertFile="UPSERT FILE",r.RemoveFile="REMOVE FILE",r.RenameFile="RENAME FILE",r),ea=((a={}).Data="data",a.Error="error",a.Done="done",a);e.s(["ParserCommand",()=>er,"ParserStatus",()=>et,"SseChunkType",()=>ea],772732);let en="BEGIN FILE RECIPE",es="END FILE RECIPE",ei="<→]+/;function ec(e,t,r){let a=e.currentCommand;switch(a){case er.UpsertFile:!function(e,t,r){let a=ee(e,r);if(!Z(a))return;let n=e.stagedFilesByName.get(a),s=!!n;if(n&&e.fileIdsToDelete.has(n.id)&&e.fileIdsToDelete.delete(n.id),!n){let t=(0,q.createArtifactFileData)({filename:a,type:W(a)});e.newlyCreatedFiles.set(a,t),n=t}let i=n,o=(0,q.createArtifactFileContentData)({content:"",generationStatus:G.GenerationStatus.Generating});e.stagedFilesByName.set(a,i),e.stagedFileContents[i.id]=o.id,e.newlyCreatedContents.set(o.id,o),e.currentStreamingContentId=o.id,t.set(e=>{e.artifactFiles[i.id]=i,e.artifactFileContents[o.id]=o;let r=e.artifactVersions[t.versionId];r&&(r.fileContents[i.id]=o.id);let a=e.artifacts[t.artifactId];!a||s||a.fileIds.includes(i.id)||a.fileIds.push(i.id)})}(e,t,r);break;case er.RemoveFile:!function(e,t){let r=ee(e,t);if(!Z(r))return;let a=e.stagedFilesByName.get(r);a&&e.fileIdsToDelete.add(a.id)}(e,r);break;case er.RenameFile:{let a=function(e){let t=e.split(el);if(t.length<2)return null;let r=H(t[0].trim()),a=H(t.slice(1).join(">").trim());return r&&a?{from:r,to:a}:null}(r);a&&function({state:e,ctx:t,fromPath:r,toPath:a}){let n=ee(e,r),s=ee(e,a);if(!Z(n)||!Z(s))return;let i=e.stagedFilesByName.get(n);if(!i)return;let o=t.get().artifactVersions[t.versionId],l=o?.fileContents[i.id];if(!l)return;e.pathRedirects.set(n,s);let c=function(e,t,r){let a=t.stagedFilesByName.get(e);if(a)return a;let n=(0,q.createArtifactFileData)({filename:e,type:W(e)});return t.stagedFilesByName.set(e,n),t.newlyCreatedFiles.set(e,n),r.set(e=>{e.artifactFiles[n.id]||(e.artifactFiles[n.id]=n);let t=e.artifacts[r.artifactId];t&&!t.fileIds.includes(n.id)&&t.fileIds.push(n.id)}),n}(s,e,t);e.stagedFileContents[c.id]=l,delete e.stagedFileContents[i.id],e.stagedFilesByName.delete(n),e.fileIdsToDelete.add(i.id),t.set(r=>{let a=r.artifactVersions[t.versionId];a&&(a.fileContents={...e.stagedFileContents})})}({state:e,ctx:t,fromPath:a.from,toPath:a.to});break}case null:break;default:(0,L.assertNever)(a)}}function ed(e){e.currentCommand=null,e.currentStreamingContentId=null,e.heredocEndToken=null,e.status=et.SeekingCommand}function eu(e,t,r){e.streamedContentBuffer[t]||(e.streamedContentBuffer[t]=""),e.streamedContentBuffer[t]+=r,B.useArtifactStore.getState().actions.appendArtifactContent(t,r)}function ep({state:e,ctx:t,chunk:r,isFlush:a=!1}){let n=r.replaceAll("\r\n","\n").replaceAll("\r","\n");for(e.buffer+=n;;){let r=!1;switch(e.status){case et.SeekingCommand:r=function(e,t){let r=e.buffer.indexOf(en),a=e.buffer.indexOf(es);if(!e.inRecipe){if(-1!==r){let a=e.buffer.slice(0,r);return a.trim()&&t.streamReasoning(a),e.seenWrapper=!0,e.buffer=e.buffer.slice(r+en.length),e.inRecipe=!0,!0}if(e.seenWrapper)return e.buffer=e.buffer.slice(Math.max(0,e.buffer.length-1024)),!1;let a=e.buffer.slice(0,Math.max(0,e.buffer.length-en.length));return a&&t.streamReasoning(a),e.buffer=e.buffer.slice(a.length),!1}if(e.status!==et.StreamingContent&&-1!==a)return e.buffer=e.buffer.slice(a+es.length),e.inRecipe=!1,!0;let n=function(e,t){let r=null;for(let a of t){let t=e.indexOf(a);-1!==t&&(!r||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=et.ParsingPath,!0}(e,t);break;case et.ParsingPath:r=function(e,t){let r=e.buffer.indexOf("\n");if(-1===r)return e.buffer.length>1024&&(ed(e),e.buffer=""),!1;let a=e.buffer.substring(0,r),n=a.indexOf(":");if(-1===n)return e.buffer=e.buffer.substring(r+1),ed(e),!0;let s=a.substring(n+1).trim();if(e.currentCommand===er.RemoveFile||e.currentCommand===er.RenameFile)return ec(e,t,s),e.buffer=e.buffer.substring(r+1),ed(e),!0;let i=e.buffer.substring(r+1),o=i.indexOf(ei);return -1!==o&&(ec(e,t,s),e.buffer=i.substring(o+ei.length),e.heredocEndToken="END_OF_FILE",e.status=et.StreamingContent,!0)}(e,t);break;case et.StreamingContent:r=function(e,t){if(!e.heredocEndToken)return!1;let r=function(e,t){let r=0,a=RegExp(`^${t}[\\s]*[;:,.!?-]*$`);for(;;){let n=e.indexOf("\n",r);if(-1===n)return null;let s=r,i=e.slice(s,n).trim();if(i===t||a.test(i))return{content:e.slice(0,s),rest:e.slice(n+1)};r=n+1}}(e.buffer,e.heredocEndToken);if(r){if(e.currentStreamingContentId){eu(e,e.currentStreamingContentId,r.content);let a=e.currentStreamingContentId;t.set(t=>{let r=t.artifactFileContents[a];r&&(r.content=e.streamedContentBuffer[a]??"",r.generationStatus=G.GenerationStatus.Success)})}return e.buffer=r.rest,ed(e),!0}let a=Math.max((e.heredocEndToken?.length??0)+2,es.length+2),n=e.buffer.slice(0,Math.max(0,e.buffer.length-a));return n&&e.currentStreamingContentId&&eu(e,e.currentStreamingContentId,n),e.buffer=e.buffer.slice(n.length),!1}(e,t);break;default:(0,L.assertNever)(e.status)}if(!r)break}a&&e.status===et.StreamingContent&&e.buffer.length>0&&(e.currentStreamingContentId&&eu(e,e.currentStreamingContentId,e.buffer),e.buffer="")}function em(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}e.s(["processChunk",0,ep],764071);let ef=async(e,{ctx:t})=>{if("response.output_item.added"!==e.type)return;let r=e.item,a=em(r);if(!a)return;let n=(0,U.createPlaygroundItem)({id:a,messageId:t.assistantMessageId,data:r});N.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:r.type}})},eg=async(e,{handlerCtx:t,parserState:r})=>{"response.output_text.delta"===e.type&&ep({state:r,ctx:t,chunk:e.delta})},eh=async e=>{"response.reasoning_summary_text.delta"===e.type&&N.useItemStore.getState().actions.appendReasoningSummaryText(e.item_id,e.delta,e.summary_index)},ey=async e=>{"response.reasoning_text.delta"===e.type&&N.useItemStore.getState().actions.appendReasoningContentText(e.item_id,e.delta,e.content_index)},ev=async(e,{ctx:t})=>{if("response.output_item.done"!==e.type)return;let r=e.item,a=em(r);if(!a)return;let{items:n,actions:s}=N.useItemStore.getState(),i=n[a],o={id:a,messageId:i?.messageId??t.assistantMessageId,data:r};s.upsertItem(o)},eI=async()=>{},eb=async()=>{},eA=async()=>{},ew=async()=>{},eS=async()=>{},eT=async()=>{};e.s(["artifactEventHandlers",0,{"response.output_item.added":ef,"response.output_item.done":ev,"response.content_part.added":eI,"response.content_part.done":eb,"response.reasoning_summary_part.added":eA,"response.reasoning_summary_part.done":ew,"response.reasoning_summary_text.delta":eh,"response.reasoning_summary_text.done":eS,"response.reasoning_text.delta":ey,"response.reasoning_text.done":eT,"response.output_text.delta":eg}],26544);var eC=e.i(462904),e_=e.i(447680);let ex="index.html",eM=/]*src=["']([^"']+)["'][^>]*>\s*<\/script>/i,eE=/]*rel=["']stylesheet["'][^>]*href=["']([^"']+)["'][^>]*>/gi,ek=/^\.\//,eR=/]*rel=["']stylesheet["'][^>]*>/gi,eO=/]*src=["'][^>]*>[\s\S]*?<\/script>/gi;var eF=e.i(458037);let eP=["src/index.ts","index.ts","src/index.tsx","index.tsx","src/main.ts","main.ts","src/main.tsx","main.tsx"].map(H);var ej=e.i(864568);let eD=null,eV=["/esbuild.wasm","https://unpkg.com/esbuild-wasm@0.25.8/esbuild.wasm","https://cdn.jsdelivr.net/npm/esbuild-wasm@0.25.8/esbuild.wasm"],ez=async e=>{let t=await (0,c.wrap)(()=>eF.initialize({wasmURL:e,worker:!1}));return(0,c.isOk)(t)||(0,ej.unknownErrorToString)(t.error).includes('Cannot call "initialize" more than once')?(0,c.ok)(void 0):(0,c.err)(t.error)},e$=async e=>{let t=null;for(let r of e){let e=await r();if((0,c.isOk)(e))return e;t=e.error}return(0,c.err)(t??Error("No tasks provided"))};async function eU(e){let t,r,a,n,s,i=await (eD?eD:eD=e$((t=void 0,(e=>{let t=new Set,r=[];for(let a of e)t.has(a)||(t.add(a),r.push(a));return r})([...t?.wasmURLs??[],...eV])).map(e=>()=>ez(e))).then(e=>((0,c.isErr)(e)&&(eD=null),e)));if((0,c.isErr)(i))return(0,c.ok)({js:"",css:""});let o=(r=new Set(e.map(e=>H(e.path))),n=(a=e.find(e=>H(e.path)===ex))?function(e,t){let r=e.content.match(eM);if(!r?.[1])return null;let a=H(r[1].replace(ek,""));return(t.has(a)?a:null)??K(a,t)??Q(a,t)}(a,r):null,s=a?function(e){let t=new Set;for(let r of e.content.matchAll(eE))r[1]&&t.add(H(r[1].replace(/^\.\//,"")));return Array.from(t)}(a):[],{js:n??function(e){for(let t of eP)if(e.has(t))return t;return null}(r),css:s}),l=[];if(o.js&&l.push(o.js),l.push(...o.css),0===l.length)return(0,c.ok)({js:"",css:""});let d=await (0,c.wrap)(()=>eF.build({entryPoints:l,bundle:!0,write:!1,format:"esm",outdir:"dist",plugins:[{name:"vfs-plugin",setup(t){let r=new Set(e.map(e=>H(e.path)));t.onResolve({filter:/.*/},e=>{if(!e.importer)return{path:`/${H(e.path)}`,namespace:"vfs"};if(!e.path.startsWith(".")&&!e.path.startsWith("/"))return{path:e.path,external:!0};let t=J(H(Y(e.importer.includes("/")?e.importer.slice(1,e.importer.lastIndexOf("/")):"",e.path))),a=(r.has(t)?t:null)??K(t,r)??Q(t,r);return a?{path:`/${a}`,namespace:"vfs"}:null}),t.onLoad({filter:/.*/,namespace:"vfs"},t=>{let r=H(t.path.substring(1)),a=e.find(e=>H(e.path)===r),n=r.endsWith(".css")?"css":r.endsWith(".tsx")?"tsx":r.endsWith(".json")?"json":"ts",s=r.includes("/")?r.substring(0,r.lastIndexOf("/")):"";return{contents:a?.content??"",loader:n,resolveDir:`/${s}`}})}}],absWorkingDir:"/",logLevel:"silent",target:["es2020"],jsx:"transform",mainFields:["module","main"],resolveExtensions:[".tsx",".ts",".jsx",".js",".css",".json"]}));if((0,c.isErr)(d))return(0,c.err)(d.error);let u=d.data;if(u.errors.length>0){let e=u.errors.map(e=>e.text).join("\n\n");return(0,c.err)(Error(e))}let p=u.outputFiles.find(e=>e.path.endsWith(".js"))?.text??"",m=u.outputFiles.find(e=>e.path.endsWith(".css"))?.text??"";return(0,c.ok)({js:p,css:m})}e.i(204067);var eN=e.i(796805),eL=((n={}).RuntimeError="runtime-error",n.StorageGetItem="storage-get-item",n.StorageSetItem="storage-set-item",n.StorageRemoveItem="storage-remove-item",n.StorageClear="storage-clear",n.StorageResponse="storage-response",n);let eG=eN.z.object({type:eN.z.literal("runtime-error"),error:eN.z.string()}),eB=eN.z.object({type:eN.z.literal("storage-get-item"),key:eN.z.string(),requestId:eN.z.number()}),eq=eN.z.object({type:eN.z.literal("storage-set-item"),key:eN.z.string(),value:eN.z.string()}),eW=eN.z.object({type:eN.z.literal("storage-remove-item"),key:eN.z.string()}),eH=eN.z.object({type:eN.z.literal("storage-clear")}),eJ=eN.z.union([eG,eB,eq,eW,eH]);e.s(["IframeEventType",()=>eL,"IncomingIframeMessageSchema",0,eJ],2247);let eY=` (function() { if (window.persistentStorage) { return; } const requests = new Map(); let idCounter = 0; window.addEventListener('message', (e) => { const isStorageResponse = e.data?.type === '${eL.StorageResponse}'; 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: '${eL.StorageGetItem}', key: String(key), requestId }); }), setItem: (key, value) => new Promise((resolve) => { post({ type: '${eL.StorageSetItem}', key: String(key), value: String(value) }); resolve(); }), removeItem: (key) => new Promise((resolve) => { post({ type: '${eL.StorageRemoveItem}', key: String(key) }); resolve(); }), clear: () => new Promise((resolve) => { post({ type: '${eL.StorageClear}' }); 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: '${eL.RuntimeError}', error: \`Uncaught Exception:\\n\${fullError}\` }); }; window.addEventListener('unhandledrejection', function(event) { const formattedError = \`Unhandled Promise Rejection:\\n\${formatError(event.reason)}\`; post({ type: '${eL.RuntimeError}', error: formattedError }); }); })(); `;function eZ(e,t,r){return e.includes(t)?e.replace(t,`${r}${t}`):`${e}${r}`}async function eX(e){let t=e.find(e=>H(e.path)===ex)?.content??'Preview',r=await eU(e);if((0,c.isErr)(r))return(0,c.err)(r.error);let{js:a,css:n}=r.data,s=function(e,t,r){var a;let n=(a=e.replace(eR,"").replace(eO,""),r?eZ(a,"",``):a);return eZ(n,"",` `)}(t,a,n);return(0,c.ok)({srcDoc:s,key:Date.now().toString()+Math.random().toString()})}async function eK(e,t){let{get:r}=e,a=r().artifacts[e.artifactId];if(a?.type!==G.ArtifactType.App)return null;let n=Array.from(t.stagedFilesByName.values()).map(e=>{let r=t.stagedFileContents[e.id],a=t.streamedContentBuffer[r]??"";return{path:e.filename,content:a}});if(0===n.length)return null;let s=await (0,c.wrap)(()=>eX(n));if((0,c.isErr)(s)){let e=s.error;return(0,o.toast)({title:"Build Failed",description:"The generated code has errors. Check the version card for details.",variant:"destructive"}),e.message}return null}async function eQ(e,t){let{get:r,namespace:a,roomId:n,versionId:s}=e,i=r(),l=i.artifacts[e.artifactId],d=i.artifactVersions[s],u=Array.from(t.newlyCreatedFiles.values()),p=Object.keys(t.streamedContentBuffer).map(e=>i.artifactFileContents[e]),m=await (0,c.wrap)(()=>Promise.all([l&&e_.persistence.saveArtifacts(a,n,[l]),d&&e_.persistence.saveArtifactVersions(a,[d]),u.length>0&&e_.persistence.saveArtifactFiles(a,u),p.length>0&&e_.persistence.saveArtifactFileContents(a,p)]));return(0,c.isErr)(m)?((0,o.toast)({title:"Save Error",description:"Failed to save artifact changes.",variant:"destructive"}),(0,c.err)((0,eC.makeErrorT)({location:"finalizer:persist",rawError:m.error}))):(0,c.ok)(!0)}function e0(e){let{set:t,roomId:r,assistantMessageId:a,mainChatMessageId:n}=e;t(e=>{let t=e.rooms[r];if(!t)return;let s=t.messages[a];if(s&&s.type===G.MessageType.Assistant&&(s.isGenerating=!1),n){let e=t.messages[n];e&&e.type===G.MessageType.Assistant&&(e.isGenerating=!1)}})}async function e1(e,t){let r=await eK(e,t);return!function(e,t,r){let{set:a,artifactId:n,versionId:s}=e;a(e=>{for(let e of t.fileIdsToDelete)delete t.stagedFileContents[e];t.fileIdsToDelete.clear();let a=e.artifacts[n],i=e.artifactVersions[s]??null;if(!a||!i)return;i.fileContents={...t.stagedFileContents};let o=Array.from(t.stagedFilesByName.values()).map(e=>e.id);for(let n in a.fileIds=[...new Set([...a.fileIds,...o])],a.updatedAt=new Date,i.type===G.ArtifactType.App&&(i.generationStatus=G.GenerationStatus.Success,i.error=r??void 0),i.createdAt&&(i.generationDurationMs=Math.max(0,Date.now()-new Date(i.createdAt).getTime())),t.streamedContentBuffer){if(!Object.hasOwn(t.streamedContentBuffer,n))continue;let r=e.artifactFileContents[n];r&&(r.content=t.streamedContentBuffer[n],r.generationStatus=G.GenerationStatus.Success)}})}(e,t,r),e0(e),await eQ(e,t)}async function e2(e,t,r){let a=Array.from(t.newlyCreatedContents.keys());a.length>0&&await e_.persistence.deleteArtifactFileContents(e.namespace,a),e.set(t=>{let a=t.artifacts[e.artifactId]?.headVersionId;if(!a)return;let n=t.artifactVersions[a];n&&n.type===G.ArtifactType.App&&(n.generationStatus=G.GenerationStatus.Failed,n.error=r??"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 e0(e);let s=e.get().artifactVersions[n];s&&await e_.persistence.saveArtifactVersions(e.namespace,[s]),e0(e)}e.s(["createPreview",0,eX],559802),e.s(["finalizeGeneration",0,e1,"handleGenerationError",0,e2],504344),e.s(["initializeParserState",0,function(e,t){let r=e().artifactVersions[t],a=e().artifactFiles,n=r?.type===G.ArtifactType.App?Object.keys(r.fileContents).map(e=>a[e]).filter(e=>!!e):[];return{status:et.SeekingCommand,buffer:"",stagedFileContents:r?.type===G.ArtifactType.App?{...r.fileContents}:{},stagedFilesByName:new Map(n.map(e=>[H(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}}],966065)},773229,466260,17972,e=>{"use strict";var t=e.i(693697),r=e.i(700050),a=e.i(26544),n=e.i(504344),s=e.i(764071),i=e.i(966065),o=e.i(12822),l=e.i(462904),c=e.i(678130),d=e.i(772732);async function*u(e){for await(let r of(0,c.processSSE)(e))yield function(e){if((0,t.isErr)(e))return{type:d.SseChunkType.Error,error:(0,l.makeErrorT)({location:"stream-processor:processSSE",rawError:e.error})};if(e.data===o.sseDoneSentinel)return{type:d.SseChunkType.Done};let r=(0,t.wrap)(()=>JSON.parse(e.data));if((0,t.isErr)(r))return{type:d.SseChunkType.Error,error:(0,l.makeErrorT)({location:"stream-processor:parseSseChunk",rawError:r.error})};let a=r.data;return"error"===a.type?{type:d.SseChunkType.Error,error:(0,l.makeErrorT)({location:"stream-processor:responseDataError",rawError:a.message})}:{type:d.SseChunkType.Data,event:a}}(r)}async function p(e){let o=(0,i.initializeParserState)(e.get,e.versionId),l={set:e.set,get:e.get,artifactId:e.artifactId,versionId:e.versionId,streamReasoning:e=>{}},c={ctx:e,parserState:o,handlerCtx:l};for await(let r of u(e.responseBody)){if(r.type===d.SseChunkType.Error)return await (0,n.handleGenerationError)(e,o,r.error.message),(0,t.err)(r.error);if(r.type===d.SseChunkType.Done)break;let{event:s}=r,i=a.artifactEventHandlers[s.type];i&&await i(s,c)}(0,s.processChunk)({state:o,ctx:l,chunk:"",isFlush:!0});let p=await (0,n.finalizeGeneration)(e,o);return(0,t.isErr)(p)||(0,r.trackArtifactVersionCreate)({artifactId:e.artifactId}),p}e.s(["streamAndFinalizeGeneration",0,p],773229),e.i(798823);var m=e.i(429930);let f=`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(); }, };`,g="function main(): void {}";var h=e.i(366699);function y(){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 v(){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 I(e){if(!Array.isArray(e)){let{version:t,allFiles:r,allContents:a}=e;return Object.keys(t.fileContents).map(e=>{let n=r[e];if(!n)return"";let s=t.fileContents[e],i=s?a[s]?.content:"";return`#### File: \`${n.filename}\` \`\`\` ${i||""} \`\`\``}).filter(Boolean).join("\n\n")}return e.map(e=>`#### File: \`${e.path}\` \`\`\` ${e.content} \`\`\``).filter(Boolean).join("\n\n")}function b({isIncremental:e,structureRules:t,taskDescription:r}){let a='// --- 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?a:a.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.",r].join("\n\n")}}e.s(["assembleConversationSystemPrompt",0,function(e,t){return`${e} --- ### **Project Files Context** For your reference, here is the current state of all files in the project. ${t} --- `},"assembleSystemPrompt",0,function({baseInstructions:e,finalInstructions:t,generationPrompt:r,mainContext:a}){let n=[e];a&&n.push(a),n.push("---",t);let s=n.join("\n\n");return[{role:h.ChatMessageRole.System,content:s},{role:h.ChatMessageRole.User,content:r}]},"buildArtifactGenerationSystemPrompt",0,b,"buildFilesContextString",0,I,"buildIncrementalContextSection",0,function({parentVersion:e,allFiles:t,allContents:r,directoryTree:a}){var n;let s=[],i=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=I({version:e,allFiles:t,allContents:r}),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```",a,"```\n"].join("\n"):null);return i&&s.push(i),o&&s.push(o),s.join("\n\n")},"buildInitialFilesContext",0,function(e){return e?["---","### **Project Files**","This is the current state of the project files.",e].join("\n\n"):""},"getGameStructureRules",0,v,"getReactStructureRules",0,y],466260);let A=`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( ); }`,w=`import React from 'react'; import './App.css'; function App() { return <>; } export default App; `;function S(){return[{path:"index.html",content:` React App
`},{path:"src/index.tsx",content:A},{path:"src/App.tsx",content:w},{path:"src/App.css",content:""},{path:"src/utils/persistence.ts",content:f}]}let T={[m.AppArchetype.InteractiveWebApp]:{getInitialFiles:S,getSystemPrompt:function(e){return b({isIncremental:e,structureRules:y(),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.`}},[m.AppArchetype.LandingPage]:{getInitialFiles:S,getSystemPrompt:function(e){return b({isIncremental:e,structureRules:y(),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.`}},[m.AppArchetype.TwoDGame]:{getInitialFiles:()=>[{path:"index.html",content:` 2D Game `},{path:"src/main.ts",content:g},{path:"src/styles/index.css",content:`body { margin: 0; background-color: #000; overflow: hidden; } `},{path:"src/libs/persistence.ts",content:f},{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 b({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.`}},[m.AppArchetype.ThreeDGame]:{getInitialFiles:()=>[{path:"index.html",content:` 3D Game `},{path:"src/main.ts",content:g},{path:"src/styles/index.css",content:`/* Add game's global styles here */ `},{path:"src/libs/persistence.ts",content:f},{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 b({isIncremental:e,structureRules:v(),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(["getArchetypeConfig",0,function(e){let t=T[e];if(!t)throw Error(`No artifact config found for archetype: ${e}`);return t}],17972)},856885,779234,982746,362591,723098,450531,939303,535192,508191,25551,638178,370039,853048,907971,438838,142422,2251,78154,735162,241859,10700,889854,599227,591520,e=>{"use strict";var t=e.i(286709),r=e.i(447680),a=e.i(471316);function n({get:e,roomId:t,characters:r,mintFreshIds:s}){let i=Array.isArray(r)?r:[r],o=t?e().rooms[t]?.zdr:e().pendingRoomZdr,l=i.map(e=>(0,a.createCharacterData)({...e,id:s?void 0:e.id,zdr:e.zdr??o??void 0}));return{newCharacters:l,newCharacterIds:l.map(e=>e.id)}}let s=(0,t.makeStoreAction)({name:"addCharacter",handler:async({set:e,get:t,payload:{roomId:a,characters:s}})=>{let{newCharacters:i,newCharacterIds:o}=n({get:t,roomId:a,characters:s,mintFreshIds:!1});if(!a)return e(e=>{for(let t of(e.pendingCharacters||(e.pendingCharacters={}),i))e.pendingCharacters[t.id]=t}),{characterIds:o};e(e=>{let t=e.rooms[a];if(t)for(let e of i)t.characters[e.id]=e});let l=t().storageInstanceId;return l&&await r.persistence.saveCharacters(l,a,i),{characterIds:o}}});e.s(["addCharacters",0,s],856885);var i=e.i(295654),o=e.i(622817);let l=(e,t)=>t?e.rooms[t]?.characters:e.pendingCharacters,c=(0,t.makeStoreAction)({name:"applyToAllCharacters",handler:async({set:e,get:t,payload:{roomId:a,sourceCharacter:n}})=>{let s=l(t(),a);if(!s)return;let c=[],d=Object.entries(s).reduce((e,[t,r])=>{if(!r)return e;if((0,o.isInternCharacter)(r))return e[t]=r,e;let a={...r.samplingParameters,...n.samplingParameters},s=n.plugins?[...n.plugins]:r.plugins,l=n.reasoning?{...n.reasoning}:r.reasoning,d=function({modelInfo:e,sourceMaxTokens:t,fallbackMaxTokens:r}){return e&&void 0!==t?Math.min(t,e.context_length??i.defaultMaxTokensLimit):r}({modelInfo:r.modelInfo,sourceMaxTokens:n.maxTokens,fallbackMaxTokens:r.maxTokens}),u={...r,samplingParameters:a,plugins:s,reasoning:l,zdr:n.zdr??r.zdr,maxTokens:d,description:n.description??r.description,includeDefaultSystemPrompt:n.includeDefaultSystemPrompt??r.includeDefaultSystemPrompt,updatedAt:new Date};return c.push(u),e[t]=u,e},{});e(e=>{let t=l(e,a);t&&Object.assign(t,d)});let u=t().storageInstanceId;return u&&a&&await r.persistence.saveCharacters(u,a,c),{characters:d}}});e.s(["applyToAllCharacters",0,c],779234);var d=e.i(220988),u=e.i(700050);let p=(0,t.makeStoreAction)({name:"clearCharacters",handler:async({set:e,get:t,payload:{roomId:a}})=>{if(!globalThis.confirm(d.default`This will clear all models for the current room. This action is irreversible.`))return;if(!a)return void e(e=>{e.pendingCharacters={}});let n=l(t(),a);if(!n||0===Object.keys(n).length)return;e(e=>{e.rooms[a]&&(e.rooms[a].characters={})});let s=t().storageInstanceId;s&&await r.persistence.clearCharactersFromRoom(s,a),(0,u.trackRoomClearCharacters)()}});e.s(["clearCharacters",0,p],982746);let m=(0,t.makeStoreAction)({name:"duplicateCharacter",handler:async({set:e,get:t,payload:{roomId:n,sourceCharacterId:s}})=>{let i=l(t(),n)?.[s];if(!i||(0,o.isInternCharacter)(i))return;let c=(0,a.createCharacterData)({...i,id:void 0,name:i.name?`${i.name} (Copy)`:void 0,createdAt:void 0,updatedAt:void 0});e(e=>{let t=l(e,n);t&&(t[c.id]=c)});let d=t().storageInstanceId;d&&n&&await r.persistence.saveCharacter(d,n,c),(0,u.trackCharacterDuplicate)({slug:i.model})}});e.s(["duplicateCharacter",0,m],362591);var f=e.i(115247);let g=(0,t.makeStoreAction)({name:"initializeCharacters",handler:async({set:e,get:t,payload:{roomId:a,characters:n}})=>{let s={},i=[];for(let e in n){if(!Object.hasOwn(n,e))continue;let t=n[e];if(!t||!t.modelInfo||!t.id)continue;let r=t.createdAt?new Date(t.createdAt):new Date,a=t.updatedAt?new Date(t.updatedAt):r,o={...t,createdAt:r,updatedAt:a,samplingParameters:t.samplingParameters??{},isStreaming:t.isStreaming??!0,description:(0,f.getEnforcedSystemPrompt)(t.modelInfo)||t.description||""};s[e]=o,i.push(o)}e(e=>{a&&e.rooms[a]?e.rooms[a].characters=s:e.pendingCharacters=s});let o=t().storageInstanceId;o&&a&&i.length>0&&await r.persistence.saveCharacters(o,a,i)}});e.s(["initializeCharacters",0,g],723098);let h=(0,t.makeStoreAction)({name:"removeCharacter",handler:async({set:e,get:t,payload:{characterId:a,roomId:n}})=>{if(!n)return void e(e=>{e.pendingCharacters?.[a]&&delete e.pendingCharacters[a]});let s=l(t(),n)?.[a];if(!s)return;let i={...s,isRemoved:!0,updatedAt:new Date};e(e=>{let t=l(e,n);t?.[a]&&(t[a]=i)});let o=t().storageInstanceId;o&&await r.persistence.saveCharacter(o,n,i),(0,u.trackCharacterRemove)({slug:s.model})}});e.s(["removeCharacter",0,h],450531);var y=e.i(170993);let v=(0,t.makeStoreAction)({name:"replaceCharacters",handler:async({set:e,get:t,payload:{roomId:a,characters:s}})=>{if(Array.isArray(s)&&0===s.length)return{characterIds:[]};let{newCharacters:i,newCharacterIds:o}=n({get:t,roomId:a,characters:s,mintFreshIds:!0}),l=Object.fromEntries(i.map(e=>[e.id,e]));if(!a)return e(e=>{e.pendingCharacters=l}),{characterIds:o};let c=t().rooms[a];if(!c)return{characterIds:[]};let d=Object.entries(c.characters),u=d.filter(([,e])=>(0,y.isDisplayedCharacter)(e)).map(([e])=>e),p=Object.fromEntries(d.filter(([,e])=>!(0,y.isDisplayedCharacter)(e)));e(e=>{let t=e.rooms[a];t&&(t.characters={...p,...l})});let m=t().storageInstanceId;return m&&await r.persistence.replaceCharactersInRoom(m,a,{replacedCharacterIds:u,newCharacters:i}),{characterIds:o}}});e.s(["replaceCharacters",0,v],939303);var I=e.i(477020);let b=(0,t.makeStoreAction)({name:"resetCharacter",handler:async({set:e,get:t,payload:{characterId:a,roomId:n}})=>{if(!n)return;let s=l(t(),n)?.[a];if(!s)return;let o={...i.defaultInferenceParams,reasoning:void 0,samplingParameters:{}};for(let e of I.analyzedSamplingParameters)null!==e.metadata.defaultValue&&(o.samplingParameters||(o.samplingParameters={}),o.samplingParameters[e.name]=e.metadata.defaultValue);let c={...s,...o,updatedAt:new Date};e(e=>{let t=l(e,n);t?.[a]&&(t[a]=c)});let d=t().storageInstanceId;d&&await r.persistence.saveCharacter(d,n,c)}});e.s(["resetCharacter",0,b],535192);let A=(0,t.makeStoreAction)({name:"restoreCharacter",handler:async({set:e,get:t,payload:{characterId:a,roomId:n}})=>{let s=l(t(),n)?.[a];if(!s)return;let i={...s,isRemoved:!1,isDisabled:!1,updatedAt:new Date};e(e=>{let t=l(e,n);t?.[a]&&(t[a]=i)});let o=t().storageInstanceId;o&&await r.persistence.saveCharacter(o,n,i),(0,u.trackCharacterRestore)({slug:s.model})}});function w(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(["restoreCharacter",0,A],508191),e.s(["toRoomMetadata",0,w],25551);let S=(0,t.makeStoreAction)({name:"setRoomZdr",handler:async({set:e,get:t,payload:{roomId:a,zdr:n}})=>{let s=Object.values(l(t(),a)??{}).map(e=>({...e,zdr:n,updatedAt:new Date}));e(e=>{if(a){let t=e.rooms[a];t&&(t.zdr=n)}else e.pendingRoomZdr=n;let t=l(e,a);if(t)for(let e of s)t[e.id]=e});let i=t().storageInstanceId;if(!i||!a)return;let o=t().rooms[a];await Promise.all([o?r.persistence.saveRoom(i,w(o)):Promise.resolve(),r.persistence.saveCharacters(i,a,s)])}});e.s(["setRoomZdr",0,S],638178);var T=e.i(159341),C=e.i(693697),_=e.i(204067);let x=(0,t.makeStoreAction)({name:"togglePluginForCharacter",handler:async({set:e,get:t,payload:{characterId:a,pluginId:n,forceState:s,roomId:i}})=>{let o=l(t(),i)?.[a];if(!o)return;let c=new Set(o.plugins?.map(e=>e.id)??[]);("boolean"==typeof s?s:!c.has(n))?c.add(n):c.delete(n);let d=(0,_.parseSchema)(T.PluginPreferencesSchema,Array.from(c).map(e=>({id:e}))),u={...o,plugins:(0,C.isOk)(d)?d.data:[],updatedAt:new Date};e(e=>{let t=l(e,i);t?.[a]&&(t[a]=u)});let p=t().storageInstanceId;p&&i&&await r.persistence.saveCharacter(p,i,u)}});e.s(["togglePluginForCharacter",0,x],370039);let M=(0,t.makeStoreAction)({name:"updateCharacter",handler:async({set:e,get:t,payload:{characterId:a,partialCharacter:n,roomId:s}})=>{var i,o;let c=l(t(),s)?.[a];if(!c)return;let d=void 0===n.provider?n.providerSort??c.providerSort:void 0,u={...c,...n,internSessionId:(i=c,"internSessionId"in(o=n)?o.internSessionId:void 0!==o.model&&o.model!==i.model?void 0:i.internSessionId),providerSort:d,updatedAt:new Date};e(e=>{let t=l(e,s);t?.[a]&&(t[a]=u)});let p=t().storageInstanceId;p&&s&&await r.persistence.saveCharacter(p,s,u)}});e.s(["updateCharacter",0,M],853048);var E=e.i(122901),k=e.i(847893),R=e.i(44745);e.i(798823);var O=e.i(429930);let F=(0,t.makeStoreAction)({name:"createBotPlaceholder",handler:({set:e,payload:{character:t,parentMessageId:r,roomId:a,createdAt:n,requestOverrides:s}})=>{let i=(0,k.createAssistantMessage)({id:(0,E.orid)(E.ORIDType.Message),characterId:t.id,context:O.MessageContext.MainChat,parentMessageId:r,createdAt:n??new Date,metadata:{plugins:t.plugins,variantSlug:t.model},items:[],requestOverrides:s});return e(e=>{let t=e.rooms[a];t&&(t.messages[i.id]=i,t.sortedMessageIds=Object.values(t.messages).sort(R.sortMessages).map(e=>e.id))}),i}});e.s(["createBotPlaceholder",0,F],907971);var P=e.i(735961),j=e.i(32582);async function D(e,t,r){let a=new Set;for(let r of Object.values(e))"assistant"===r.type&&r.artifactId&&t[r.artifactId]&&r.versionContextId&&(r.contentType===O.ContentType.ArtifactVersion||r.contentType===O.ContentType.Text)&&a.add(r.versionContextId);for(let e of Object.values(t))if(e.headVersionId)for(let t of(await (0,j.fullVersionHistoryTraversal)(r,e.headVersionId)))a.add(t);return a}async function V({storageInstanceId:e,messages:t,artifacts:r,persistence:a}){let n,s,i=await D(t,r,e),o=(n=new Set,Object.values(r).forEach(e=>{e.fileIds.forEach(e=>{n.add(e)})}),n),[l,c]=await Promise.all([a.getArtifactFiles(e,Array.from(o)),a.getArtifactVersions(e,Array.from(i))]),d=(s=new Set,Object.values(c).forEach(e=>{Object.values(e.fileContents).forEach(e=>{"string"==typeof e&&s.add(e)})}),s);return{artifactFiles:l,artifactVersions:c,artifactFileContents:await a.getArtifactFileContents(e,Array.from(d))}}e.s(["fetchArtifactData",0,V],438838);var z=e.i(586404);async function $(e){let{roomData:t,allItems:a,artifacts:n,artifactVersions:s,artifactFiles:i,artifactFileContents:o,storageInstanceId:l}=e,c=new Set,d=new Set;for(let e of Object.values(t.messages))(e.items??[]).forEach(e=>{c.add(e.id)}),e.versionContextId&&d.add(e.versionContextId);let u=(0,z.pick)(a,Array.from(c)),p=(0,z.pick)(n,t.artifactIds),m=Array.from(new Set([...d,...(await Promise.all(Object.values(p).map(e=>e?.headVersionId&&l?r.persistence.fullVersionHistoryTraversal(l,e.headVersionId):new Set))).flatMap(e=>Array.from(e))])),f=(0,z.pick)(s,m),g=Array.from(new Set(Object.values(p).filter(Boolean).flatMap(e=>e.fileIds))),h=(0,z.pick)(i,g),y=Array.from(new Set(Object.values(f).filter(e=>!!e).flatMap(e=>Object.values(e.fileContents)))),v=(0,z.pick)(o,y);return{title:t.title,characters:t.characters,messages:t.messages,items:u,artifacts:p,artifactFiles:h,artifactVersions:f,artifactFileContents:v}}e.i(530023);var U=e.i(612774);function N({value:e,serialize:t,date:r=new Date().toDateString(),name:a,ext:n,mimeType:s,maxFilenameLength:i}){let o=`${a} ${r}${n}`.trim(),l=i&&o.length>i?`${o.slice(0,i-n.length)}${n}`:o,c=new Blob([t(e)],{type:s}),d=URL.createObjectURL(c),u=document.createElement("a");u.setAttribute("href",d),u.setAttribute("download",l),u.style.visibility="hidden",document.body.appendChild(u),u.click(),document.body.removeChild(u),setTimeout(()=>URL.revokeObjectURL(d),4e4)}function L({value:e,name:t}){N({value:e,serialize:e=>JSON.stringify(e,null,2),name:t,ext:".json",mimeType:"application/json"})}function G(e){(0,U.toast)({title:"Export Failed",description:e instanceof Error?e.message:"An unexpected error occurred.",variant:"destructive"})}async function B(e,t){let{roomData:a}=t;if(a.hydrationStatus===O.HydrationStatus.Success)return t;let{storageInstanceId:n}=t;if(!n)return t;let{characters:s,messages:i,items:o,artifacts:l}=await r.persistence.getRoom(n,e),{artifactFiles:c,artifactVersions:d,artifactFileContents:u}=await V({storageInstanceId:n,messages:i,artifacts:l,persistence:r.persistence});return{roomData:{...a,characters:s,messages:i,artifactIds:Object.keys(l)},allItems:{...t.allItems,...o},artifacts:{...t.artifacts,...l},artifactVersions:{...t.artifactVersions,...d},artifactFiles:{...t.artifactFiles,...c},artifactFileContents:{...t.artifactFileContents,...u},storageInstanceId:n}}async function q({fullState:e,roomIds:t,getName:r},{download:a=L,showError:n=G}={}){if(0===t.length)return;let{items:s}=P.useItemStore.getState(),i=[];for(let r of t){let t=e.rooms[r];if(!t)continue;let a={roomData:t,allItems:s,artifacts:e.artifacts,artifactVersions:e.artifactVersions,artifactFiles:e.artifactFiles,artifactFileContents:e.artifactFileContents,storageInstanceId:e.storageInstanceId},o=await (0,C.wrap)(async()=>$(await B(r,a)));if((0,C.isErr)(o))return void n(o.error);i.push(o.data)}a({value:{version:"orpg.3.0",rooms:i},name:r(i.length)})}let W=(0,t.makeStoreAction)({name:"exportAllData",handler:async({get:e})=>{let t=e();await q({fullState:t,roomIds:Object.keys(t.rooms),getName:()=>"OpenRouter All Chats"})}});e.s(["exportAllData",0,W],142422);let H=(0,t.makeStoreAction)({name:"exportData",handler:async({get:e,payload:{roomId:t}})=>{let r=e(),a=r.rooms[t];if(!a)return;let{items:n}=P.useItemStore.getState();L({value:{version:"orpg.3.0",...await $({roomData:a,allItems:n,artifacts:r.artifacts,artifactVersions:r.artifactVersions,artifactFiles:r.artifactFiles,artifactFileContents:r.artifactFileContents,storageInstanceId:r.storageInstanceId})},name:"OpenRouter Chat"}),(0,u.trackRoomExportChat)()}});e.s(["exportData",0,H],2251);let J=(0,t.makeStoreAction)({name:"exportManyData",handler:async({get:e,payload:t})=>{let r=e();await q({fullState:r,roomIds:t.roomIds.filter(e=>!!r.rooms[e]),getName:e=>`OpenRouter Chats (${e})`})}});e.s(["exportManyData",0,J],78154);var Y=e.i(885686),Z=e.i(336422),X=e.i(60628);function K(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(["SERVER_TOOL_NAMES",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"},"isOpenRouterTool",0,function(e){return e.startsWith(X.OPENROUTER_TOOL_PREFIX)},"toBase64DataUri",0,K],735162);let Q=(0,t.makeStoreAction)({name:"exportMarkdown",handler:({get:e,payload:{roomId:t},dependencies:{getEndpointDisplayName:r}})=>{let a=e().rooms[t],{items:n}=P.useItemStore.getState();if(!a)return;let s=Object.values(a.messages).sort(R.sortMessages),i={};for(let[e,t]of Object.entries(n))(0,Y.isResponsesOutputItem)(t.data)&&(i[e]=t.data);N({value:er({room:a,messageList:s,characters:a.characters,items:i,getEndpointDisplayName:r}),serialize:e=>e,name:"OpenRouter Chat",ext:".md",mimeType:"text/markdown;charset=utf-8;",maxFilenameLength:100}),(0,u.trackRoomExportMarkdown)()}}),ee=e=>e.flatMap(e=>{let t=P.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"),et=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:K(e.result):"string"==typeof e.imageB64&&e.imageB64.length>0?K(e.imageB64):null;if(t)return{type:"message",content:`![Generated Image](${t})`}}return null}},er=({room:e,messageList:t,characters:r,getEndpointDisplayName:a,items:n})=>{let s=t.map(e=>{let t,s,i,o,l,c=((e,t,r)=>{let a=e.type;switch(a){case O.MessageType.User:{let a=t[e.characterId]?.name??r({slug:t[e.characterId]?.model,providerName:t[e.characterId]?.provider});return`**User - ${a}**`}case O.MessageType.Assistant:{let a=t[e.characterId]?.name??r({slug:t[e.characterId]?.model,providerName:t[e.characterId]?.provider});return`**Assistant - ${a}**`}case O.MessageType.System:return"**System - System**";default:(0,Z.assertNever)(a)}})(e,r,a);if(e.type===O.MessageType.System){let t=ee(e.items??[]);return t?[c,t].join("\n\n"):c}return[c,...e.type===O.MessageType.User?(e=>{let t=[],r=ee(e.items??[]);if(r&&t.push(r),e.attachments?.length){let r=e.attachments.map(e=>e.url??e.content).filter(z.isDefinedAndNotNull).join("\n\n");t.push(`### Attachments ${r}`)}return t})(e):(s=(t=(e.items??[]).map(e=>n[e.id]).filter(z.isDefinedAndNotNull).map(et).filter(z.isDefinedAndNotNull)).filter(e=>"reasoning"===e.type).map(e=>e.content).join("\n\n").trim(),i=t.filter(e=>"message"===e.type).map(e=>e.content).join("\n\n").trim(),o=t.filter(e=>"other"===e.type).map(e=>e.content).join("\n\n"),l=[],s&&l.push(`### Reasoning ${s}`),i&&l.push(i),o&&l.push(o),l)].join("\n\n")});return[`# ${e?.title||`Chat ${new Date().toISOString()}`}`,...s].join("\n\n")};e.s(["exportMarkdown",0,Q],241859);var ea=e.i(110873),en=e.i(596504),es=e.i(454785),ei=e.i(911585),eo=e.i(44539);function el(e,t){let r=new Map,n={};for(let s of Object.values(e)){let e=(0,a.createCharacterData)({...s,id:void 0,createdAt:t,updatedAt:t});r.set(s.id,e.id),n[e.id]=e}return{newCharacters:n,charIdMap:r}}function ec(e,t,r){let{sourceArtifacts:a,sourceArtifactFiles:n,sourceArtifactVersions:s,sourceArtifactFileContents:i}=e,o=new Map,l=new Map,c=new Map,d=new Map,u={},p={},m={},f={};for(let e of Object.values(n).filter(e=>!!e)){let{id:t,createdAt:r,updatedAt:a,...n}=e,s=(0,eo.createArtifactFileData)(n);l.set(t,s.id),u[s.id]=s}for(let e of Object.values(i).filter(e=>!!e)){let{id:t,createdAt:r,...a}=e,n=(0,eo.createArtifactFileContentData)(a);d.set(t,n.id),p[n.id]=n}let g=Object.values(a).filter(e=>!!e);for(let e of g){let t,r=e.fileIds.map(e=>l.get(e)).filter(e=>!!e),{id:a,createdAt:n,updatedAt:s,...i}=e;t=i.type===O.ArtifactType.App?(0,eo.createAppArtifactData)({...i,fileIds:r,entrypointFileId:i.entrypointFileId?l.get(i.entrypointFileId):void 0}):(0,eo.createImageArtifactData)({...i,fileIds:r}),o.set(a,t.id),m[t.id]=t}let h=new Map;for(let e of g){let t=[e.headVersionId],r=new Set;for(;t.length>0;){let a=t.pop();if(!a||r.has(a))continue;r.add(a);let n=s[a];n&&(h.set(a,e.id),n.parentVersionId&&t.push(n.parentVersionId))}}for(let e of Object.values(s).filter(e=>!!e).sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime())){let{id:a,createdAt:n,...s}=e,i=s.artifactId??h.get(a);if(!i||!o.get(i))continue;let u={};for(let[e,t]of Object.entries(s.fileContents)){let r=l.get(e),a=d.get(t);r&&a&&(u[r]=a)}let p=(0,eo.createAppArtifactVersionData)({...s,artifactId:s.artifactId,characterId:t.get(s.characterId),parentVersionId:s.parentVersionId?c.get(s.parentVersionId):void 0,generatingMessageId:s.generatingMessageId?r.get(s.generatingMessageId):void 0,fileContents:u});c.set(a,p.id);let y=g.find(e=>e.headVersionId===a);if(y){let e=o.get(y.id);e&&m[e]&&(m[e].headVersionId=p.id)}f[p.id]=p}return{newArtifacts:m,newArtifactFiles:u,newArtifactVersions:f,newArtifactFileContents:p,artifactIdMap:o,versionIdMap:c}}async function ed(e,t,a){let n=(0,_.parseSchema)(ea.RoomMetadataSchema,t);if((0,C.isErr)(n))return(0,C.err)("Could not validate room data before saving.");let s=await (0,C.wrap)(()=>Promise.all([r.persistence.saveRoom(e,n.data),r.persistence.saveCharacters(e,t.id,Object.values(t.characters)),r.persistence.saveMessages(e,t.id,Object.values(t.messages)),r.persistence.saveArtifacts(e,t.id,Object.values(a.artifacts)),r.persistence.saveArtifactFiles(e,Object.values(a.artifactFiles)),r.persistence.saveArtifactVersions(e,Object.values(a.artifactVersions)),r.persistence.saveArtifactFileContents(e,Object.values(a.artifactFileContents))]));return(0,C.isErr)(s)?(0,C.err)(`Persistence failed: ${s.error instanceof Error?s.error.message:"Unknown error"}`):(0,C.ok)(void 0)}async function eu({set:e,namespace:t,newRoomData:r,newArtifactData:a}){let n=await ed(t,r,a);return(0,C.isErr)(n)?n:(e(e=>{e.rooms[r.id]=r,Object.assign(e.artifacts,a.artifacts),Object.assign(e.artifactFiles,a.artifactFiles),Object.assign(e.artifactVersions,a.artifactVersions),Object.assign(e.artifactFileContents,a.artifactFileContents)}),(0,C.ok)(void 0))}e.s(["cloneArtifacts",0,ec,"cloneCharacters",0,el,"cloneMessages",0,function({sourceMessages:e,charIdMap:t,artifactIdMap:r,versionIdMap:a,now:n,msgIdMap:s,itemIdMap:o}){let l={};for(let c of Object.values(e).sort(R.sortMessages)){let e=s.get(c.id)??(0,E.orid)(E.ORIDType.Message),d=function({oldCharacterId:e,userCharacterId:t,systemCharacterId:r,deletedCharacterId:a,charIdMap:n}){return(0,i.checkUser)(e)?t:(0,i.checkSystem)(e)?r:n.get(e)??a}({oldCharacterId:c.characterId,userCharacterId:i.userCharacter.id,systemCharacterId:i.systemCharacter.id,deletedCharacterId:i.deletedCharacter.id,charIdMap:t}),u=(c.items??[]).map(e=>({...e,id:o.get(e.id)})).filter(e=>!!e.id);if(c.type===O.MessageType.User){let t=c.artifactId?r.get(c.artifactId):void 0,i=c.versionContextId?a.get(c.versionContextId):void 0,o=(0,k.createUserMessage)({id:e,artifactId:t,characterId:d,context:c.context,contentType:c.contentType,parentMessageId:c.parentMessageId?s.get(c.parentMessageId):void 0,createdAt:c.createdAt?new Date(c.createdAt):n,updatedAt:c.updatedAt?new Date(c.updatedAt):n,versionContextId:i,items:u,requestOverrides:c.requestOverrides});l[e]=o;continue}if(c.type===O.MessageType.System){let t=(0,k.createSystemMessage)({id:e,characterId:d,items:u,context:c.context,contentType:c.contentType,parentMessageId:c.parentMessageId?s.get(c.parentMessageId):void 0,createdAt:c.createdAt?new Date(c.createdAt):n,updatedAt:c.updatedAt?new Date(c.updatedAt):n});l[e]=t;continue}let p=c.artifactId?r.get(c.artifactId):void 0,m=c.versionContextId?a.get(c.versionContextId):void 0,f=(0,k.createAssistantMessage)({id:e,characterId:d,context:c.context,contentType:c.contentType,parentMessageId:c.parentMessageId?s.get(c.parentMessageId):void 0,versionContextId:m,artifactId:p,isGenerating:!1,items:u,createdAt:c.createdAt?new Date(c.createdAt):n,updatedAt:c.updatedAt?new Date(c.updatedAt):n,metadata:c.metadata??null,requestOverrides:c.requestOverrides});l[e]=f}return{newMessages:l,msgIdMap:s}},"commitClonedRoom",0,eu,"gatherSourceArtifactData",0,function(e,t){let r=(0,z.pick)(e.artifacts,t),a=Object.values(r).filter(e=>!!e).flatMap(e=>e.fileIds),n=(0,z.pick)(e.artifactFiles,a),s=new Set,i=[...Object.values(r).filter(e=>!!e).map(e=>e.headVersionId).filter(e=>!!e)],o=new Set;for(;i.length>0;){let t=i.pop();if(!t||o.has(t))continue;o.add(t),s.add(t);let r=e.artifactVersions[t];r?.parentVersionId&&i.push(r.parentVersionId)}let l=(0,z.pick)(e.artifactVersions,Array.from(s)),c=Object.values(l).filter(e=>!!e).flatMap(e=>Object.values(e.fileContents));return{sourceArtifacts:r,sourceArtifactFiles:n,sourceArtifactVersions:l,sourceArtifactFileContents:(0,z.pick)(e.artifactFileContents,c)}}],10700);let ep=(0,t.makeStoreAction)({name:"importData",handler:async({get:e,set:t,payload:{roomId:a}})=>{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 r=t.target,a=r.files?.item(0);if(!a)return void e(null);let n=await a.text(),s=(0,en.safeParseJson)(n);"string"==typeof s?e(null):e(s)}),t.click()});if(!n)return;if(Array.isArray(n.rooms))return void(0,U.toast)({title:"Import Failed",description:"This file contains multiple chats and cannot be imported into a single room. Please import individual chat exports instead.",variant:"destructive"});let s=(0,_.parseSchema)(ea.ExportedChatDataSchema,n);if((0,C.isErr)(s))return void(0,U.toast)({title:"Import Failed",description:"The file could not be repaired.",variant:"destructive"});let o=s.data,{createdItems:l,messagesToPersist:c}=r.persistence.migrateMessagesToItemFormat(o.messages,{},{}),d={...o.items,...l};c.forEach(e=>{o.messages[e.id]=e});let p=new Date,{newCharacters:m,charIdMap:f}=el(o.characters,p),g=new Map;for(let e in o.messages)Object.hasOwn(o.messages,e)&&g.set(e,(0,E.orid)(E.ORIDType.Message));let{newArtifacts:h,newArtifactFiles:y,newArtifactVersions:v,newArtifactFileContents:I,artifactIdMap:b,versionIdMap:A}=ec({sourceArtifacts:o.artifacts,sourceArtifactFiles:o.artifactFiles,sourceArtifactVersions:o.artifactVersions,sourceArtifactFileContents:o.artifactFileContents},f,g),{newMessages:w,newItems:S}=function({sourceMessages:e,sourceItems:t,charIdMap:r,artifactIdMap:a,versionIdMap:n,now:s,msgIdMap:o}){let l={},c=Object.values(e).sort(R.sortMessages),{itemIdMap:d,newItems:u}=function(e){let t=new Map,r={};for(let r in e)Object.hasOwn(e,r)&&t.set(r,(0,E.orid)(E.ORIDType.AssistantMessageItem));for(let a in e){if(!Object.hasOwn(e,a))continue;let n=e[a];if(!n)continue;let s=t.get(a);r[s]={...n,id:s}}return{itemIdMap:t,newItems:r}}(t);for(let e of c){let t=function({oldMsg:e,msgIdMap:t,charIdMap:r,now:a}){var n;let s=t.get(e.id),o=(n=e.characterId,(0,i.checkUser)(n)?i.userCharacter.id:(0,i.checkSystem)(n)?i.systemCharacter.id:r.get(n)??i.deletedCharacter.id),l=e.parentMessageId?t.get(e.parentMessageId):void 0;return{newMsgId:s,newCharacterId:o,parentMessageId:l,createdAt:e.createdAt?new Date(e.createdAt):a,updatedAt:e.updatedAt?new Date(e.updatedAt):a}}({oldMsg:e,msgIdMap:o,charIdMap:r,now:s});if(e.type===O.MessageType.User){let r=function({oldMsg:e,commonData:t,artifactIdMap:r,versionIdMap:a,itemIdMap:n}){let s=e.artifactId?r.get(e.artifactId):void 0,i=e.versionContextId?a.get(e.versionContextId):void 0,o=(e.items??[]).map(e=>({...e,id:n.get(e.id)})).filter(e=>!!e.id);return{...(0,k.createUserMessage)({...e,id:t.newMsgId,artifactId:s,characterId:t.newCharacterId,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt,versionContextId:i,content:e.content}),items:o}}({oldMsg:e,commonData:t,artifactIdMap:a,versionIdMap:n,itemIdMap:d});l[t.newMsgId]=r;continue}if(e.type===O.MessageType.System){let r=(e.items??[]).map(e=>({...e,id:d.get(e.id)})).filter(e=>!!e.id),a=(0,k.createSystemMessage)({id:t.newMsgId,characterId:t.newCharacterId,items:r,context:e.context,contentType:e.contentType,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt});l[t.newMsgId]=a;continue}let c=function({assistantMsg:e,commonData:t,artifactIdMap:r,versionIdMap:a,itemIdMap:n}){let s=e.artifactId?r.get(e.artifactId):void 0;return(0,k.createAssistantMessage)({...e,id:t.newMsgId,characterId:t.newCharacterId,parentMessageId:t.parentMessageId,createdAt:t.createdAt,updatedAt:t.updatedAt,artifactId:s,versionContextId:e.versionContextId?a.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:a,versionIdMap:n,itemIdMap:d});l[t.newMsgId]=c}return{newMessages:l,newItems:u,msgIdMap:o}}({sourceMessages:o.messages,sourceItems:d,charIdMap:f,artifactIdMap:b,versionIdMap:A,now:p,msgIdMap:g}),T=e().rooms[a];if(!T)return void(0,U.toast)({title:"Import Error",description:"Could not find the target room to import into.",variant:"destructive"});let x=Object.values(w).sort(R.sortMessages).find(e=>e.type===O.MessageType.User),M=(x&&"content"in x?x.content:void 0)??"",F=!!(o.title||T.title&&T.title!==i.DEFAULT_CHAT_ROOM_TITLE),j=o.title||T.title||(0,ei.getChatroomTitle)(M)||i.DEFAULT_CHAT_ROOM_TITLE,D={id:T.id,title:j,createdAt:T.createdAt,updatedAt:new Date,lastActivityAt:new Date,version:T.version,isPinned:T.isPinned,characters:m,messages:w,isProcessing:!1,sortedMessageIds:Object.values(w).sort(R.sortMessages).map(e=>e.id),hydrationStatus:O.HydrationStatus.Success,hydrationError:null,artifactIds:Object.keys(h)},V=e().storageInstanceId;if(!V)return void(0,U.toast)({title:"Import Error",description:"Namespace not found."});await r.persistence.clearRoomContents(V,a);let z=await eu({set:t,namespace:V,newRoomData:D,newArtifactData:{artifacts:h,artifactFiles:y,artifactVersions:v,artifactFileContents:I}});if((0,C.isErr)(z))return void(0,U.toast)({title:"Import Error",description:z.error,variant:"destructive"});await r.persistence.saveItems(V,D.id,Object.values(S)),!F&&M&&(0,es.applySummaryTitle)({get:e},{roomId:D.id,messageContent:M}),t(e=>{e.artifacts={...e.artifacts,...h},e.artifactFiles={...e.artifactFiles,...y},e.artifactVersions={...e.artifactVersions,...v},e.artifactFileContents={...e.artifactFileContents,...I}});let{items:$,actions:N}=P.useItemStore.getState();N.loadItems({...$,...S}),(0,U.toast)({title:"Import Successful",description:`The room "${D.title}" has been updated.`}),(0,u.trackRoomImport)()}});e.s(["importData",0,ep],889854);let em=(0,t.makeStoreAction)({name:"markToolAsUserConfigured",handler:({set:e,payload:t})=>{e(e=>{e.userConfiguredToolIds.includes(t.toolId)||e.userConfiguredToolIds.push(t.toolId)})}});e.s(["markToolAsUserConfigured",0,em],599227);var ef=e.i(350782),eg=e.i(366699),eh=e.i(562722);let ey=(0,_.buildZodGuard)(eh.OpenResponsesInputItemSchema);e.s(["getCharacterMemoryMap",0,function({charactersDict:e,charactersList:t,messagesList:r,itemsMap:a,memoryCount:n}){let s={};for(let o of t){let t=function(e,t){if(t>=i.MAX_CHAT_MEMORY_COUNT)return e;let r=e.flatMap((e,t)=>e.message.type===O.MessageType.User?[t]:[]);if(r.length<=t)return e;let a=r[r.length-t];return void 0===a?e:a>0&&e[a-1]?.message.type===O.MessageType.Assistant?e.slice(a-1):e.slice(a)}(r.filter(e=>e.type===O.MessageType.System||e.type===O.MessageType.User||e.characterId===o.id).filter(e=>e.contentType!==O.ContentType.Artifact).flatMap(t=>{if(t.type===O.MessageType.System){let e=function(e,t){for(let r of e.items??[]){let e=t[r.id];if(e?.data.type!=="message"||"system"!==e.data.role)continue;let a=e.data.content;if(!Array.isArray(a))continue;let n=a[0];if(n?.type==="input_text"&&n.text.trim())return{role:eg.ChatMessageRole.System,type:"message",content:n.text}}return null}(t,a);return e?[{payload:e,message:t}]:[]}if(t.type===O.MessageType.User)return[{payload:function(e,t){let r=[];for(let a of e.items??[]){let e=t[a.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":r.push({type:"input_text",text:e.text});break;case"input_image":if(!e.image_url)break;r.push({type:"input_image",image_url:e.image_url,detail:e.detail??"auto"});break;case"input_audio":{let t=e.input_audio.data,a=t;if((0,ef.isBase64DataURLString)(t)){let e=(0,ef.decodeBase64DataURL)(t);(0,C.isOk)(e)&&(a=e.data.base64)}r.push({type:"input_audio",input_audio:{data:a,format:e.input_audio.format}});break}case"input_file":r.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;r.push({type:"input_video",video_url:e.video_url})}}return{role:eg.ChatMessageRole.User,type:"message",content:r}}(t,a),message:t}];let r=e[t.characterId];return(function(e,t,r){let a,n,s,i=[],o=r?.name?(a=r.name,n=r.modelInfo?.permaslug,n?.split("/")[0]==="openai"?((s=a.replaceAll(/[^a-zA-Z0-9_]/g," ").split(" ").filter(Boolean).join("_")).length>64&&(s=s.substring(0,64)),s):a):void 0;for(let r of e.items??[]){let e=t[r.id];if(!e)continue;let a=e.data;switch(a.type){case"message":{let e="";if(Array.isArray(a.content)){let t=a.content[0];t?.type==="output_text"&&(e=t.text)}else"string"==typeof a.content&&(e=a.content);let t=o?`${o}: ${e}`:e;t.trim()&&i.push({role:eg.ChatMessageRole.Assistant,type:"message",content:t});break}case"reasoning":i.push(a);break;default:ey(a)&&i.push(a)}}return i})(t,a,r).map(e=>({payload:e,message:t}))}),n);s[o.id]=t}return s}],591520)},259367,161139,969793,31752,e=>{"use strict";async function t(e,t){let r=await t(),a=r.items[e];if(!a)return;let n=a.data;"message"===n.type&&"assistant"===n.role&&"status"in n&&r.actions.upsertItem({id:a.id,messageId:a.messageId,data:{...n,status:"completed"}})}e.s(["markAssistantItemCompleted",0,t],259367);var r=e.i(719929),a=e.i(741841),n=e.i(462904),s=e.i(305904),i=e.i(883960),o=e.i(720170),l=e.i(204067),c=e.i(796805);let d=c.z.enum({Direct:"direct",Auto:"auto",Free:"free",Latest:"latest",Alias:"alias",Fallback:"fallback",Pareto:"pareto",BodyBuilder:"bodybuilder",Fusion:"fusion"}).openapi("RoutingStrategy",{example:"direct"}),u=c.z.object({provider:c.z.string(),model:c.z.string(),selected:c.z.boolean()}).openapi("EndpointInfo",{example:{provider:"OpenAI",model:"openai/gpt-4o",selected:!0}}),p=c.z.object({total:c.z.number().int(),available:c.z.array(u)}).openapi("EndpointsMetadata",{example:{total:3,available:[{provider:"OpenAI",model:"openai/gpt-4o",selected:!0}]}}),m=c.z.object({provider:c.z.string(),model:c.z.string(),status:c.z.number().int()}).openapi("RouterAttempt",{example:{provider:"OpenAI",model:"openai/gpt-4o",status:200}}),f=c.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"}),g=c.z.object({type:f,name:c.z.string(),summary:c.z.string().optional(),cost_usd:(0,l.zDouble)().nullable().optional(),data:c.z.record(c.z.string(),c.z.unknown()).optional(),guardrail_scope:c.z.string().optional(),guardrail_id:c.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"]}}}),h=c.z.object({quality_floor:(0,l.zDouble)().optional(),throughput_floor:(0,l.zDouble)().optional(),version_group:c.z.string().optional()}).passthrough().openapi("RouterParams",{example:{version_group:"anthropic/claude-sonnet-4"}}),y=c.z.object({requested:c.z.string(),strategy:d,region:c.z.string().nullable(),summary:c.z.string(),attempt:c.z.number().int(),is_byok:c.z.boolean(),endpoints:p,generation_time:(0,l.zInt)().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:h.optional(),attempts:c.z.array(m).optional(),pipeline:c.z.array(g).optional()}).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 v=e.i(110116),I=e.i(5616);let b=v.ServerToolUseSchema.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 A=e.i(271048),w=e.i(562722);let S=c.z.string().max(64,"Metadata keys must be ≤ 64 characters.").regex(/^[^[\]]*$/,"Metadata keys cannot contain '[' or ']'."),T=c.z.string().max(512,"Metadata values must be ≤ 512 characters."),C=c.z.record(S,T).superRefine((e,t)=>{Object.keys(e).length>16&&t.addIssue({code:c.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"}});e.i(379865);var _=e.i(375250);c.z.enum(["file_search_call.results","message.input_image.image_url","computer_call_output.output.image_url","reasoning.encrypted_content","code_interpreter_call.outputs"]).openapi("ResponseIncludesEnum",{example:"file_search_call.results"});let x=c.z.object({id:c.z.string(),variables:c.z.record(c.z.string(),c.z.union([c.z.string(),_.OpenAIResponsesResponseInputTextSchema,_.OpenAIResponsesResponseInputImageSchema,_.OpenAIResponsesResponseInputFileSchema])).nullish()}).openapi("StoredPromptTemplate",{example:{id:"prompt-abc123",variables:{name:"John"}}});var M=e.i(841441);let E=c.z.object({type:c.z.literal("text")}).openapi("FormatTextConfig",{description:"Plain text response format",example:{type:"text"}}),k=c.z.object({type:c.z.literal("json_object")}).openapi("FormatJsonObjectConfig",{description:"JSON object response format",example:{type:"json_object"}}),R=c.z.object({type:c.z.literal("json_schema"),name:c.z.string(),description:c.z.string().optional(),strict:c.z.boolean().nullish(),schema:c.z.record(c.z.string(),c.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"]}}}),O=c.z.union([E,k,R]).openapi("Formats",{description:"Text response format configuration",example:{type:"text"}}),F=c.z.object({format:O.optional(),verbosity:c.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"}}),P=F.extend({verbosity:c.z.enum(["low","medium","high","xhigh","max"]).nullish().openapi({enum:["low","medium","high","xhigh","max",null]})}).openapi("TextExtendedConfig",{example:{format:{type:"text"}}});var j=e.i(717546),D=e.i(118154);let V=o.OpenAIResponsesUsageSchema.extend(v.CostSchema.partial({cost:!0,cost_details:!0}).shape).extend(c.z.object({cost_details:c.z.object({upstream_inference_cost:(0,l.zDouble)().nullish(),upstream_inference_input_cost:(0,l.zDouble)(),upstream_inference_output_cost:(0,l.zDouble)(),server_tool_cost:(0,l.zDouble)().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:b.nullish()}).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}}}),z=c.z.object({reason:c.z.enum(s.OpenAIResponsesIncompleteReason).optional()}).openapi("IncompleteDetails",{example:{reason:"max_output_tokens"}}),$=c.z.object({id:c.z.string(),object:c.z.literal("response"),created_at:(0,l.zInt)(),model:c.z.string(),status:o.OpenAIResponsesResponseStatusSchema,completed_at:(0,l.zInt)().nullable(),output:c.z.array(o.OpenAIResponsesOutputItemSchema),user:c.z.string().nullish(),output_text:c.z.string().optional(),prompt_cache_key:c.z.string().nullish(),prompt_cache_options:i.OpenAIResponsesPromptCacheOptionsSchema.nullish(),safety_identifier:c.z.string().nullish(),error:o.OpenAIResponsesErrorFieldSchema.nullable(),incomplete_details:z.nullable(),usage:o.OpenAIResponsesUsageSchema.optional(),max_tool_calls:(0,l.zInt)().nullish(),top_logprobs:(0,l.zInt)().optional(),max_output_tokens:(0,l.zInt)().nullish(),temperature:(0,l.zDouble)().nullable(),top_p:(0,l.zDouble)().nullable(),presence_penalty:(0,l.zDouble)().nullable(),frequency_penalty:(0,l.zDouble)().nullable(),instructions:w.OpenAIResponsesInputSchema.nullable(),metadata:C.nullable(),tools:c.z.array(j.OpenAIResponsesNativeToolUnionSchema),tool_choice:o.OpenAIResponsesToolChoiceSchema,parallel_tool_calls:c.z.boolean(),prompt:x.nullish(),background:c.z.boolean().nullish(),previous_response_id:c.z.string().nullish(),reasoning:M.OpenAIResponsesReasoningConfigSchema.nullish(),service_tier:A.OpenAIResponsesServiceTierSchema.nullish(),store:c.z.boolean().optional(),truncation:A.OpenAIResponsesTruncationSchema.nullish(),text:F.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}}).extend({output:c.z.array(D.OpenResponsesOutputItemSchema),usage:V.nullish(),service_tier:c.z.string().nullish(),text:P.optional(),error_type:I.ApiErrorTypeSchema.optional(),openrouter_metadata:y.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 U=e.i(693697);async function*N(e){let t=await (0,U.wrap)(()=>e.json());if((0,U.isErr)(t))return void(yield(0,n.errT)({status:r.HTTPStatus.S502_Bad_Gateway,rawError:t.error,location:"processResponseJson:read"}));let s=(0,l.parseSchema)($,t.data);if((0,U.isErr)(s))return void(yield(0,n.errT)({status:r.HTTPStatus.S502_Bad_Gateway,rawError:s.error,location:"processResponseJson:parse"}));let i=s.data;if("failed"===i.status){let e=i.error?.code??"server_error",t=i.error?.message??"Request failed";yield(0,n.errT)({status:(0,a.resolveResponsesFailureStatus)({errorType:i.error_type,errorCode:e}),rawError:t,location:"processResponseJson:responseFailed"});return}let o=0;for(let[e,t]of(yield(0,U.ok)({type:"response.created",response:i,sequence_number:o++}),i.output.entries()))yield(0,U.ok)({type:"response.output_item.added",output_index:e,item:t,sequence_number:o++}),yield(0,U.ok)({type:"response.output_item.done",output_index:e,item:t,sequence_number:o++});yield(0,U.ok)({type:"incomplete"===i.status?"response.incomplete":"response.completed",response:i,sequence_number:o})}e.s(["processResponseJson",0,N],161139);var L=e.i(122901);e.i(798823);var G=e.i(429930);function B({roomId:e,messageId:t,getStoreState:r}){let a=r().rooms[e]?.messages[t];return a?.type===G.MessageType.Assistant?a:void 0}e.s(["getAssistantMessage",0,B],969793);let q="The provider returned an unexpected response. Please try again.";async function W(t){let{roomId:r,messageId:a,errorMessage:n,storeActions:s,getStoreState:i}=t,o=(0,L.orid)(L.ORIDType.AssistantMessageItem),l=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(r?.length??0)>=3}(t))return q;let r=t.replaceAll(/<[^>]+>/g," ").replaceAll(/\s+/g," ").trim();return 0===r.length?q:r.length>500?`${r.slice(0,500)}…`:r}(n),{useItemStore:c}=await e.A(266595);c.getState().actions.upsertItem({id:o,messageId:a,data:{type:"message",role:"assistant",status:"completed",content:[{type:"refusal",refusal:l}]}}),await s.appendItemIdToMessage({payload:{roomId:r,messageId:a,itemId:o,outputIndex:function({roomId:e,messageId:t,getStoreState:r}){let a=B({roomId:e,messageId:t,getStoreState:r});return a?a.items.reduce((e,t)=>Math.max(e,(t.outputIndex??t.sequenceIndex??0)+1),0):0}({roomId:r,messageId:a,getStoreState:i}),type:"message"}})}e.s(["recordInlineCharacterError",0,W],31752)},310977,59137,456962,104913,100176,e=>{"use strict";var t=e.i(982679),r=e.i(281501),a=e.i(122901),n=e.i(180897),s=e.i(706527),i=e.i(678130),o=e.i(586404),l=e.i(693697),c=e.i(204067),d=e.i(826735);function u(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r||"message"!==r.type||"user"!==r.role)continue;let{content:a}=r;if("string"==typeof a)return a;if(!Array.isArray(a))continue;let n=a.filter(e=>"input_text"===e.type).map(e=>e.text);if(n.length>0)return n.join("\n")}return""}function p(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r||"message"!==r.type||"user"!==r.role)continue;let{content:a}=r;if(!Array.isArray(a))continue;let n=[];for(let e of a)"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(["extractImageReferencesFromInputItems",0,p,"extractPromptFromInputItems",0,u],59137);var m=e.i(462904);e.i(798823);var f=e.i(429930),g=e.i(719929);function h(e){return e.status===g.HTTPStatus.S402_Payment_Required||"string"==typeof e.message&&e.message.includes("Insufficient credits")}e.s(["isInsufficientCreditsError",0,h],456962);var y=e.i(31752);function v({name:e,roomId:t,botMessage:r,storeActions:a,getStoreState:n,placeholder:s}){let i={roomId:t,messageId:r.id,storeActions:a,getStoreState:n,itemId:s?.itemId,itemActions:s?.itemActions};return{fail:(t,r)=>b({location:`${e}:error`,errorMessage:t,status:r,...i}),abort:()=>(function({location:e,roomId:t,messageId:r,storeActions:a,getStoreState:n,itemId:s,itemActions:i}){return I({roomId:t,messageId:r,itemId:s,itemActions:i,storeActions:a,getStoreState:n}),(0,m.errT)({location:e,rawError:"Request cancelled"})})({location:`${e}:abort`,...i}),settle:e=>(function({roomId:e,botMessage:t,getStoreState:r,variantSlug:a,generationId:n,cost:s,startedAt:i}){let c=r(),d=c.rooms[e]?.messages[t.id],u=(d?.type===f.MessageType.Assistant?d.metadata:void 0)??t.metadata??{};return c.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:{...u,variantSlug:a,...(0,o.definedValues)({generationId:n,cost:"number"==typeof s?s.toString():void 0,duration:Date.now()-i})}}}}),(0,l.ok)(A({roomId:e,botMessage:t,getStoreState:r}))})({roomId:t,botMessage:r,getStoreState:n,...e}),withPlaceholder:s=>v({name:e,roomId:t,botMessage:r,storeActions:a,getStoreState:n,placeholder:s})}}function I({roomId:e,messageId:t,itemId:r,itemActions:a,storeActions:n,getStoreState:s}){let i={isGenerating:!1,isRetrying:!1};if(r&&a){a.deleteItems([r]);let n=s().rooms[e]?.messages[t]?.items;n&&(i.items=n.filter(e=>e.id!==r))}n.updateMessage({payload:{roomId:e,messageId:t,partialMessage:i}})}async function b({location:e,roomId:t,messageId:r,errorMessage:a,status:n,storeActions:s,getStoreState:i,itemId:o,itemActions:l}){return(I({roomId:t,messageId:r,itemId:o,itemActions:l,storeActions:s,getStoreState:i}),h({status:n,message:a}))?i().actions.setShowInsufficientCreditsModal({payload:{show:!0}}):await (0,y.recordInlineCharacterError)({roomId:t,messageId:r,errorMessage:a,storeActions:s,getStoreState:i}),(0,m.errT)({location:e,rawError:a})}function A({roomId:e,botMessage:t,getStoreState:r}){let a=r().rooms[e]?.messages[t.id];return{response:null,outputMessage:a?.type===f.MessageType.Assistant?a:t}}e.s(["createGenerationTurn",0,v,"readSettledOutcome",0,A],104913);var w=e.i(250464);function S(e){e&&URL.revokeObjectURL(e)}async function T({roomId:e,botMessage:r,character:n,inputItems:i,storeState:l,getStoreState:c,abortController:m,deps:f}){let g=n.modelInfo?(0,s.getModelVariantSlug)(n.modelInfo):n.model,h=v({name:"sendImageGen",roomId:e,botMessage:r,storeActions:l.actions,getStoreState:c}),y=u(i);if(!y.trim())return h.fail("Enter a prompt to generate an image");let I=p(i),b=(0,w.getImageGenerationOverrides)(l,n),A="image_config"in b?b.image_config:void 0,S=0===I.length,x=(0,o.definedValues)({model:g,prompt:y,stream:!!S||void 0,input_references:I.length>0?I:void 0,...(0,t.buildImageConfigParamsFromRecord)(A)}),M=(0,a.orid)(a.ORIDType.Item),E=(await f.getItemStore()).actions;E.upsertItem((0,d.createPlaygroundItem)({id:M,messageId:r.id,data:{type:"image_generation_call",id:M,status:"in_progress",result:null}})),await l.actions.appendItemIdToMessage({payload:{roomId:e,messageId:r.id,itemId:M,outputIndex:0,type:"image_generation_call"}});let k=h.withPlaceholder({itemId:M,itemActions:E}),R=`${location.origin}${location.pathname}`,O=Date.now(),F=await fetch(t.IMAGE_API_ENDPOINT,{signal:m.signal,referrer:R,method:"POST",headers:{"Content-Type":"application/json","HTTP-Referer":R,"X-OpenRouter-Title":"OpenRouter: Chatroom"},body:JSON.stringify(x)}).catch(()=>null);if(m.signal.aborted)return await F?.body?.cancel(),k.abort();if(!F)return k.fail("Failed to submit image generation request");if(!F.ok){let e=await F.text().catch(()=>"");return k.fail((0,t.extractImageApiErrorMessage)(e),F.status)}let P=F.headers.get("X-Generation-Id")??void 0;return F.headers.get("content-type")?.toLowerCase().includes("text/event-stream")?C({response:F,itemId:M,itemActions:E,messageId:r.id,turn:k,variantSlug:g,abortController:m,generationId:P,startedAt:O}):_({response:F,itemId:M,itemActions:E,messageId:r.id,turn:k,variantSlug:g,generationId:P,startedAt:O})}async function C({response:e,itemId:a,itemActions:n,messageId:s,turn:o,variantSlug:c,abortController:d,generationId:u,startedAt:p}){let m,f,g,h;if(!e.body)return o.fail("Empty image generation response body");let y=!1,v=!1;try{for await(let o of(0,i.processSSE)(e.body)){if(d.signal.aborted){y=!0,v=!0;break}if((0,l.isErr)(o)){y=!0,v=!0,f="Image generation stream failed";break}let e=(0,t.parseImageApiStreamPayload)(o.data);if((0,l.isErr)(e)){y=!0,v=!0,f=e.error;break}let i=e.data;if(i){switch(i.type){case"image_generation.partial_image":{let e=(0,r.toImagePreviewUrl)(i.b64_json);S(g),g=e,x({itemActions:n,itemId:a,messageId:s,imageUrl:e,status:"generating"});break}case"image_generation.completed":{m=(0,r.toImageDataUri)(i.b64_json);let{usage:e}=i;h=e,S(g),g=void 0,x({itemActions:n,itemId:a,messageId:s,imageUrl:m,status:"completed"});break}case"image_generation.text_chunk":break;case"error":y=!0,v=!0,f=i.error.message}if(y)break}}}finally{S(g),v&&await e.body.cancel().catch(()=>null)}return d.signal.aborted||y?(v||await e.body.cancel().catch(()=>null),d.signal.aborted)?o.abort():o.fail(f??"Image generation stream failed"):m?o.settle({variantSlug:c,generationId:u,cost:h?.cost??void 0,startedAt:p}):o.fail("Image generation completed but no image was returned")}async function _({response:e,itemId:t,itemActions:a,messageId:s,turn:i,variantSlug:o,generationId:d,startedAt:u}){let p=await (0,l.wrap)(()=>e.json());if((0,l.isErr)(p))return i.fail("Failed to parse image generation response");let m=(0,c.parseSchema)(n.ImageGenerationResponseSchema,p.data);if((0,l.isErr)(m))return i.fail("Invalid image generation response");let f=m.data.data[0]?.b64_json;return f?(x({itemActions:a,itemId:t,messageId:s,imageUrl:(0,r.toImageDataUri)(f),status:"completed"}),i.settle({variantSlug:o,generationId:d,cost:m.data.usage?.cost??void 0,startedAt:u})):i.fail("Image generation completed but no image was returned")}function x({itemActions:e,itemId:t,messageId:r,imageUrl:a,status:n}){e.upsertItem({id:t,messageId:r,data:{type:"image_generation_call",id:t,status:n,result:a}})}e.s(["sendImageGen",0,T],310977);var M=e.i(81174),E=e.i(796805),k=e.i(700050),R=e.i(622817);let O=E.z.object({code:E.z.string().optional(),message:E.z.string().optional(),remediation:E.z.string().optional()}).transform(e=>({code:L(e.code),message:L(e.message),remediation:L(e.remediation)})),F=E.z.object({event:E.z.object({payload:E.z.object({attempt:E.z.number().optional(),delayMs:E.z.number().optional(),delta:E.z.string().optional(),failure:O.optional(),maxAttempts:E.z.number().optional(),name:E.z.string().optional()}),model:E.z.string().nullish(),sessionId:E.z.string().optional(),type:E.z.string()}),type:E.z.literal("runtime.event")}),P="The intern stopped responding before finishing the turn. The daemon may have crashed or lost its connection.",j={"assistant.text.delta":function(e){let t=e.payload.delta;return void 0===t?null:{delta:t,kind:"assistant-delta"}},"retry.scheduled":function(e){var t,r;let a;return{kind:"note",text:(a=void 0===(r=t=e.payload).attempt?"retrying":void 0===r.maxAttempts?`retrying (attempt ${r.attempt})`:`retrying (attempt ${r.attempt} of ${r.maxAttempts})`,void 0===t.delayMs?a:`${a} in ${Math.round(t.delayMs/1e3)}s`)}},"runtime.error":U,"session.failed":U,"session.succeeded":N,"tool.failed":$,"tool.result.failed":$,"tool.result.succeeded":$,"tool.started":$,"tool.succeeded":$,"turn.failed":U,"turn.succeeded":N};function D(e){return"turn-failed"===e.kind||"turn-succeeded"===e.kind}async function*V(e){let t,r,a=e.getReader(),n=new TextDecoder,s="",i=e=>{var a;let n,s=function(e){let t=e.trim();if(0===t.length)return null;let r=(0,l.wrap)(()=>JSON.parse(t));if((0,l.isErr)(r))return null;let a=(0,c.parseSchema)(F,r.data);return(0,l.isErr)(a)?null:a.data}(e);if(null===s)return[];let i=[],{sessionId:o}=s.event;void 0!==o&&void 0===t&&(t=o,i.push({kind:"session",sessionId:o}));let d=s.event.model??void 0;void 0!==d&&void 0===r&&(r=d,i.push({kind:"model",model:d}));let u=void 0===(n=j[(a=s.event).type])?null:n(a);return null!==u&&i.push(u),i};try{for(;;){let e=await z(a);if(null===e)break;let t=(s+=n.decode(e,{stream:!0})).split("\n");for(let e of(s=t.pop()??"",t))for(let t of i(e))if(yield t,D(t))return}for(let e of(s+=n.decode(),i(s)))if(yield e,D(e))return;yield{kind:"turn-failed",text:P}}finally{await a.cancel().catch(()=>void 0)}}async function z(e){let t=await (0,l.wrap)(()=>e.read());return(0,l.isErr)(t)||t.data.done?null:t.data.value}function $(e){return{kind:"note",text:`tool: ${e.payload.name??e.type}`}}function U(e){var t;let r,a,n=e.payload.failure?.code;return{kind:"turn-failed",text:(t=e.payload.failure,r=t?.message??"The intern turn failed.",a=t?.code===void 0?r:`${r} (${t.code})`,t?.remediation===void 0?a:`${a} ${t.remediation}`),...void 0===n?{}:{code:n}}}function N(){return{kind:"turn-succeeded"}}function L(e){if(void 0!==e&&0!==e.trim().length)return e.length>500?`${e.slice(0,500)}…`:e}var G=e.i(259367);function B(e){return`/api/frontend/v1/private/interns/${encodeURIComponent(e)}/chat`}let q=E.z.object({error:E.z.object({message:E.z.string().trim().min(1)})});async function W({roomId:e,botMessage:t,character:r,inputItems:n,storeState:s,getStoreState:i,abortController:o,deps:l,isRetry:c}){let p=v({name:"sendToIntern",roomId:e,botMessage:t,storeActions:s.actions,getStoreState:i}),m=(0,R.getInternIdFromModelSlug)(r.model)??(0,R.getInternIdFromModelSlug)(r.modelInfo?.slug);if(null===m)return(0,k.trackInternTurn)({outcome:"failure",reason:"unknown_intern"}),p.fail("This character is not linked to an intern.");if(c)return(0,k.trackInternTurn)({outcome:"failure",reason:"retry"}),p.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 g=u(n).trim();if(0===g.length)return(0,k.trackInternTurn)({outcome:"failure",reason:"empty_prompt"}),p.fail("Interns need a text message to respond to.");if(o.signal.aborted)return(0,k.trackInternTurn)({outcome:"failure",reason:"aborted"}),p.abort();let h=(0,a.orid)(a.ORIDType.AssistantMessageItem),y=(await l.getItemStore()).actions;y.upsertItem((0,d.createPlaygroundItem)({id:h,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:h,outputIndex:0,type:"message"}});let I=p.withPlaceholder({itemId:h,itemActions:y}),b=Date.now(),A=t=>{let a=i().rooms[e]?.characters[r.id];return void 0===a||a.model!==r.model?Promise.resolve():s.actions.updateCharacter({payload:{roomId:e,characterId:r.id,partialCharacter:{internSessionId:t}}})},w={internId:m,prompt:g,itemId:h,itemActions:y,signal:o.signal},S=await H({...w,sessionId:r.internSessionId});switch(void 0!==r.internSessionId&&"ended"===S.kind&&!S.didStreamText&&"failed"===S.end.kind&&"ORI_SESSION_NOT_FOUND"===S.end.code&&(await A(void 0),S=await H({...w,sessionId:void 0})),await y.flushAllPending(),S.kind){case"aborted":return(0,k.trackInternTurn)({outcome:"failure",reason:"aborted"}),I.abort();case"unreachable":return(0,k.trackInternTurn)({outcome:"failure",reason:"unreachable"}),I.fail("The intern could not be reached.");case"rejected":return(0,k.trackInternTurn)({outcome:"failure",reason:"rejected"}),I.fail(S.reason??`The intern daemon rejected the request (HTTP ${S.status}).`,S.status);case"ended":break;default:return S}if(void 0!==S.sessionId&&S.sessionId!==r.internSessionId&&await A(S.sessionId),void 0!==S.model){let r=i().rooms[e]?.messages[t.id],a=r?.type===f.MessageType.Assistant?r.metadata:t.metadata;s.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{metadata:{...a,internModel:S.model}}}})}let T=S.didStreamText?p:I;return((S.didStreamText||"succeeded"===S.end.kind)&&await (0,G.markAssistantItemCompleted)(h,l.getItemStore),o.signal.aborted)?((0,k.trackInternTurn)({outcome:"failure",reason:"aborted"}),T.abort()):"failed"===S.end.kind?((0,k.trackInternTurn)({outcome:"failure",reason:"turn_failed"}),T.fail(S.end.text)):((0,k.trackInternTurn)({outcome:"success"}),I.settle({variantSlug:r.model,generationId:void 0,cost:void 0,startedAt:b}))}async function H({internId:e,prompt:t,sessionId:r,itemId:a,itemActions:n,signal:s}){let i=crypto.randomUUID(),c=null,d=()=>{c=fetch(`${B(e)}/${encodeURIComponent(i)}/cancel`,{keepalive:!0,method:"POST",signal:AbortSignal.timeout(5e3)}).then(e=>e.body?.cancel()).catch(()=>void 0)};s.addEventListener("abort",d,{once:!0});try{let c=await (0,l.wrap)(()=>fetch(B(e),{body:JSON.stringify((0,o.definedValues)({commandId:i,prompt:t,sessionId:r})),headers:{"Content-Type":"application/json"},method:"POST",signal:s}));if((0,l.isErr)(c))return s.aborted?{kind:"aborted"}:{kind:"unreachable"};let d=c.data;if(!d.ok||null===d.body)return{kind:"rejected",status:d.status,reason:await J(d)};return await Y({body:d.body,itemId:a,itemActions:n})}finally{s.removeEventListener("abort",d),await c}}async function J(e){let t=await (0,l.wrap)(()=>e.text());if((0,l.isErr)(t))return void(0,M.wLog)("intern_chat_rejection_unreadable",{status:e.status});let r=(0,l.wrap)(()=>JSON.parse(t.data)),a=(0,l.isErr)(r)?r:(0,c.parseSchema)(q,r.data);return(0,l.isErr)(a)?void(0,M.wLog)("intern_chat_rejection_unparseable",{body_length:t.data.length,status:e.status}):a.data.error.message}async function Y({body:e,itemId:t,itemActions:r}){let a,n,s=!1;for await(let i of V(e))switch(i.kind){case"session":a=i.sessionId;break;case"model":n=i.model;break;case"assistant-delta":if(0===i.delta.length)break;s=!0,r.appendMessageText(t,i.delta,0);break;case"note":break;case"turn-failed":return{kind:"ended",end:{kind:"failed",text:i.text,code:i.code},sessionId:a,model:n,didStreamText:s};case"turn-succeeded":return{kind:"ended",end:{kind:"succeeded"},sessionId:a,model:n,didStreamText:s};default:return i}return{kind:"ended",end:{kind:"failed",text:P},sessionId:a,model:n,didStreamText:s}}e.s(["sendToIntern",0,W],100176)},22422,508372,479775,882026,197832,733442,e=>{"use strict";var t,r,a=e.i(390889),n=e.i(104108),s=e.i(630164),i=e.i(923307),o=e.i(63102),l=e.i(590333),c=e.i(585767),d=e.i(325681),u=e.i(2726),p=e.i(740594),m=e.i(628879),f=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),A=e.i(849758),w=e.i(892341),S=e.i(970303),T=e.i(931581),C=e.i(521064),_=e.i(856885),x=e.i(779234),M=e.i(982746),E=e.i(362591),k=e.i(723098),R=e.i(450531),O=e.i(939303),F=e.i(535192),P=e.i(508191),j=e.i(638178),D=e.i(370039),V=e.i(853048),z=e.i(907971),$=e.i(142422),U=e.i(2251),N=e.i(78154),L=e.i(241859),G=e.i(889854),B=e.i(599227);e.i(530023);var q=e.i(612774),W=e.i(185473),H=e.i(447680),J=e.i(735961),Y=e.i(286709),Z=e.i(622817);e.i(798823);var X=e.i(429930),K=e.i(463444),Q=e.i(591520),ee=e.i(44745),et=e.i(25551),er=e.i(347586),ea=e.i(963),en=e.i(789280),es=e.i(544678),ei=e.i(741841),eo=e.i(669804),el=e.i(122901),ec=e.i(462904),ed=e.i(706527),eu=e.i(586404),ep=e.i(693697),em=e.i(22022),ef=e.i(826735),eg=e.i(615366),eh=e.i(624621),ey=e.i(624665),ev=e.i(213696),eI=e.i(259367),eb=e.i(250464),eA=e.i(161139),ew=e.i(31752),eS=e.i(310977),eT=e.i(100176),eC=e.i(702698),e_=e.i(55103),ex=e.i(885686),eM=e.i(204067),eE=e.i(528783),ek=e.i(19222),eR=e.i(698716);let eO={Completed:"completed",Failed:"failed",Unavailable:"unavailable",Aborted:"aborted",Unfinished:"unfinished"};async function eF({pollingUrl:e,referrer:t,abortController:r,onStatus:a,sleep:n=e$}){let s=0,i=!1;for(let o=0;o0&&await n(eR.POLL_INTERVAL_MS),r.signal.aborted)return{kind:eO.Aborted};let l=await eV({pollingUrl:e,referrer:t,abortController:r});if(r.signal.aborted)return{kind:eO.Aborted};if(l.kind!==ej.Job){if(s++,i||=l.kind===ej.Absent,s>=eR.MAX_CONSECUTIVE_FAILURES)return{kind:i?eO.Unavailable:eO.Unfinished};continue}s=0,i=!1;let c=l.job;switch(c.status){case"completed":return{kind:eO.Completed,cost:ez(c.usage?.cost),generationId:c.generation_id};case"failed":case"cancelled":case"expired":return{kind:eO.Failed,errorMessage:c.error??`Video generation ${c.status}`};case"in_progress":a("processing");break;case"pending":a("queued");break;default:c.status}}return{kind:eO.Unfinished}}async function eP({pollingUrl:e,referrer:t,abortController:r,sleep:a=e$}){for(let n=0;nnull);if(!a)return{kind:ej.Unreadable};if(!a.ok)return await a.body?.cancel().catch(()=>null),{kind:eD.has(a.status)?ej.Absent:ej.Unreadable};let n=await a.json().catch(()=>void 0),s=(0,eM.parseSchema)(eC.VideoPollResponseSchema,n);return(0,ep.isErr)(s)?{kind:ej.Unreadable}:{kind:ej.Job,job:s.data}}function ez(e){return"number"==typeof e?e:void 0}function e$(e){return new Promise(t=>{setTimeout(t,e)})}async function eU({itemId:e,messageId:t,jobId:r,referrer:a,itemActions:n,abortController:s,sleep:i}){if(!(0,ek.claimVideoPoll)(e,s))return null;let o=null,l=a=>{a===o||s.signal.aborted||(o=a,n.upsertItem({id:e,messageId:t,data:{type:ex.VIDEO_GENERATION_CALL_TYPE,id:e,status:a,jobId:r}}))};try{let e=await eF({pollingUrl:(0,eE.buildVideoJobUrl)(r),referrer:a,abortController:s,sleep:i,onStatus:l}),t=function(e){switch(e.kind){case eO.Completed:return"completed";case eO.Failed:case eO.Unavailable:return"failed";case eO.Unfinished:case eO.Aborted:default:return null}}(e);return t&&l(t),e}finally{(0,ek.releaseVideoPoll)(e,s)}}function eN({roomId:e,messageId:t,jobId:r,referrer:a,getStoreState:n,abortController:s}){eP({pollingUrl:(0,eE.buildVideoJobUrl)(r),referrer:a,abortController:s}).then(r=>(function({roomId:e,messageId:t,cost:r,getStoreState:a}){if(void 0===r)return;let n=eL({roomId:e,messageId:t,getStoreState:a});n&&a().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{metadata:{...n.metadata,cost:r.toString()}}}})})({roomId:e,messageId:t,cost:r,getStoreState:n}))}function eL({roomId:e,messageId:t,getStoreState:r}){let a=r().rooms[e]?.messages[t];return a?.type===X.MessageType.Assistant?a:null}e.s(["VideoJobOutcomeKind",0,eO,"backfillVideoCost",0,eP,"pollVideoJob",0,eF],508372),e.s(["driveVideoJob",0,eU],479775),e.s(["backfillVideoCostIntoMessage",0,eN,"settleVideoMetadata",0,function({roomId:e,messageId:t,generationId:r,cost:a,getStoreState:n}){let s=eL({roomId:e,messageId:t,getStoreState:n});s&&n().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:{...s.metadata,...(0,eu.definedValues)({generationId:r,cost:void 0===a?void 0:a.toString()})}}}})}],882026);var eG=e.i(59137),eB=e.i(104913);async function eq({roomId:e,botMessage:t,character:r,inputItems:a,storeState:n,getStoreState:s,abortController:i,deps:o}){let l=t.id,c=r.modelInfo?(0,ed.getModelVariantSlug)(r.modelInfo):r.model,d=(0,eB.createGenerationTurn)({name:"sendVideoGen",roomId:e,botMessage:t,storeActions:n.actions,getStoreState:s}),u=(0,eG.extractPromptFromInputItems)(a);if(!u.trim())return d.fail("Enter a prompt to generate a video");let p=(0,eG.extractImageReferencesFromInputItems)(a),m=`${location.origin}${location.pathname}`,f=Date.now(),g=await fetch("/api/v1/videos",{signal:i.signal,referrer:m,method:"POST",headers:{"Content-Type":"application/json","HTTP-Referer":m,"X-OpenRouter-Title":"OpenRouter: Chatroom"},body:JSON.stringify((0,eu.definedValues)({model:c,prompt:u,input_references:p.length>0?p:void 0}))}).catch(()=>null);if(i.signal.aborted)return await g?.body?.cancel().catch(()=>null),d.abort();if(!g)return d.fail("Failed to submit video generation request");if(!g.ok){let e=await g.text().catch(()=>"");return d.fail((0,e_.extractVideoErrorMessage)(e),g.status)}let h=await g.json().catch(()=>void 0);if(i.signal.aborted)return d.abort();let y=(0,eM.parseSchema)(eC.VideoSubmitResponseSchema,h);if((0,ep.isErr)(y))return d.fail("Invalid video generation response");let v=y.data.id,I=(0,el.orid)(el.ORIDType.Item),b=await o.getItemStore();b.actions.upsertItem((0,ef.createPlaygroundItem)({id:I,messageId:l,data:{type:ex.VIDEO_GENERATION_CALL_TYPE,id:I,status:"queued",jobId:v}})),await n.actions.appendItemIdToMessage({payload:{roomId:e,messageId:l,itemId:I,outputIndex:0,type:ex.VIDEO_GENERATION_CALL_TYPE}});let A=d.withPlaceholder({itemId:I,itemActions:b.actions}),w=await eU({itemId:I,messageId:l,jobId:v,referrer:m,itemActions:b.actions,abortController:i});if(null===w||w.kind===eO.Unfinished)return function({roomId:e,messageId:t,botMessage:r,getStoreState:a}){return a().actions.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1}}}),Promise.resolve((0,ep.ok)((0,eB.readSettledOutcome)({roomId:e,botMessage:r,getStoreState:a})))}({roomId:e,messageId:l,botMessage:t,getStoreState:s});switch(w.kind){case eO.Aborted:return A.abort();case eO.Failed:return A.fail(w.errorMessage);case eO.Unavailable:return A.fail("Video generation job is no longer available");case eO.Completed:{let t=A.settle({variantSlug:c,generationId:w.generationId,cost:w.cost,startedAt:f});return void 0===w.cost&&eN({roomId:e,messageId:l,jobId:v,referrer:m,getStoreState:s,abortController:i}),t}default:return A.abort()}}var eW=e.i(981895),eH=e.i(456962),eJ=e.i(969793);async function eY(e){let{roomId:t,messageId:r,error:a,wasCancelled:n,storeActions:s,getStoreState:i,getItemStore:o,trackError:l}=e;(s.updateMessage({payload:{roomId:t,messageId:r,partialMessage:{isGenerating:!1,isRetrying:!1}}}),!function({roomId:e,messageId:t,itemStore:r,getStoreState:a}){let n=(0,eJ.getAssistantMessage)({roomId:e,messageId:t,getStoreState:a});if(n)for(let e of n.items){let t=r.items[e.id];if(!t)continue;let a=t.data;"message"===a.type&&"assistant"===a.role&&"status"in a&&"in_progress"===a.status&&r.actions.upsertItem({id:t.id,messageId:t.messageId,data:{...a,status:"incomplete"}})}}({roomId:t,messageId:r,itemStore:await o(),getStoreState:i}),n)?(0,q.toast)({title:"Request cancelled"}):(l(Error(a.message),{source:"sendToCharacter",filename:"send-to-character.ts",context:{errorResult:a}}),(0,eH.isInsufficientCreditsError)(a))?s.setShowInsufficientCreditsModal({payload:{show:!0}}):await (0,ew.recordInlineCharacterError)({roomId:t,messageId:r,errorMessage:(0,eW.extractErrorMessage)(a),storeActions:s,getStoreState:i})}let eZ={getItemStore:async function(){let{useItemStore:t}=await e.A(266595);return t.getState()},prepareApiRequest:eb.prepareApiRequest,streamLanguageModelResponse:en.streamLanguageModelResponse,trackError:eg.trackError},eX=async({payload:{roomId:e,character:t,inputItems:r,targetBotMessage:a,parentMessageId:n,createdAt:s,requestOverrides:i},dependencies:{get:o,abortController:l},deps:c=eZ})=>{var d,u,p;let m=o(),f=i?.image_config||i?.modalities?{image_config:i.image_config,modalities:i.modalities}:void 0,g=a??m.actions.createBotPlaceholder({payload:{roomId:e,character:t,parentMessageId:n??"",createdAt:s,requestOverrides:f}});if((0,Z.isInternCharacter)(t))return(0,eT.sendToIntern)({roomId:e,botMessage:g,character:t,inputItems:r,storeState:m,getStoreState:o,abortController:l,deps:c,isRetry:void 0!==a});let h=m.tools,y=h?.webSearch.enabled===!0,v=h?.webFetch.enabled===!0,I=h?.fusion.enabled===!0,b=h?.advisor.enabled===!0,A=t.modelInfo?(0,ed.getModelVariantSlug)(t.modelInfo):t.model,w=(0,eu.isDefinedAndNotNull)(A)&&(0,eo.isFusionRouterSlug)(A)||I&&(0,eb.getServerTools)(m,t).some(e=>"openrouter:fusion"===e.type),S=y||v||I||b||w,T=()=>({...y&&{webSearchEngine:h?.webSearch.parameters.engine},...v&&{webFetchEngine:h?.webFetch.parameters.engine},...b&&{advisor:{advisors:h?.advisor.parameters.advisors?.map(e=>({name:e.name,model:e.model}))}}});a?m.actions.updateMessage({payload:{roomId:e,messageId:g.id,partialMessage:{isRetrying:!0,metadata:{...g.metadata,serverTools:T(),isFusionResponse:w||void 0}}}}):S&&m.actions.updateMessage({payload:{roomId:e,messageId:g.id,partialMessage:{metadata:{...g.metadata,serverTools:T(),...w&&{isFusionResponse:!0}}}}});let C=(d=t,(0,eu.isDefinedAndNotNull)(d.modelInfo)&&d.modelInfo.output_modalities.includes(X.ChatModality.Image)&&1===d.modelInfo.output_modalities.length),_=(u=t,(0,eu.isDefinedAndNotNull)(u.modelInfo)&&(0,ea.isNonChattableVideoModel)(u.modelInfo.output_modalities));if(p=t,(0,em.isChromeGeminiNanoModelSlug)(p.model)||(0,em.isChromeGeminiNanoModelSlug)(p.modelInfo?.slug))return eK({roomId:e,botMessage:g,character:t,inputItems:r,requestOverrides:i,storeState:m,get:o,abortController:l,deps:c,isWebSearchEnabled:y,isWebFetchEnabled:v,isFusionEnabled:I,isAdvisorEnabled:b});if(C)return(0,eS.sendImageGen)({roomId:e,botMessage:g,character:t,inputItems:r,storeState:m,getStoreState:o,abortController:l,deps:c});if(_)return eq({roomId:e,botMessage:g,character:t,inputItems:r,storeState:m,getStoreState:o,abortController:l,deps:c});let x=c.prepareApiRequest({character:t,inputItems:r,storeState:m,roomId:e,options:{includeDefaultSystemPrompt:!0,includeEnforcedSystemPrompt:!0},requestOverrides:i});if(!x)return(0,ec.errT)({location:"sendToCharacter",rawError:"Failed to prepare API request. Model info may be missing."});let M=await (0,es.fetchApiResponse)({params:x,abortController:l});if((0,ep.isErr)(M))return await eY({roomId:e,messageId:g.id,error:M.error,wasCancelled:"toResponseResult:abort"===M.error.location,storeActions:m.actions,getStoreState:o,getItemStore:c.getItemStore,trackError:c.trackError}),M;if(!M.data.body)return(0,ec.errT)({location:"sendToCharacter:fetch",rawError:"Invalid fetch body"});let E=M.data.headers.get("content-type")?.toLowerCase().includes("text/event-stream")?(0,ei.processResponseStream)(M.data.body):(0,eA.processResponseJson)(M.data),k=await (0,ev.handleStream)({get:o,responseGenerator:E,botMessage:g,roomId:e});if((0,ep.isErr)(k))return await eY({roomId:e,messageId:g.id,error:k.error,wasCancelled:l.signal.aborted,storeActions:m.actions,getStoreState:o,getItemStore:c.getItemStore,trackError:c.trackError}),k;let{isChatNotificationsEnabled:R}=eh.useChatroomStore.getState();if(R){let e=t.modelInfo?.name;(0,ey.showChatCompletionNotification)(e)}return(0,ep.ok)({response:M.data,outputMessage:k.data})};async function eK({roomId:e,botMessage:t,character:r,inputItems:a,requestOverrides:n,storeState:s,get:i,abortController:o,deps:l,isWebSearchEnabled:c,isWebFetchEnabled:d,isFusionEnabled:u,isAdvisorEnabled:p}){let m=function({character:e,requestOverrides:t,isWebSearchEnabled:r,isWebFetchEnabled:a,isFusionEnabled:n,isAdvisorEnabled:s}){if(r||a||n||s)return"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"Chrome Gemini Nano does not support reasoning settings in the chatroom yet.";if(e.plugins&&Object.keys(e.plugins).length>0)return"Chrome Gemini Nano runs locally in the browser and does not support plugins yet.";if(t?.image_config)return"Chrome Gemini Nano supports image and audio input locally, but not image generation output. Disable image generation or choose an OpenRouter image model.";let i=t?.modalities;return i&&i.some(e=>"text"!==e)?"Chrome Gemini Nano only supports text output in the browser chatroom for now.":null}({character:r,requestOverrides:n,isWebSearchEnabled:c,isWebFetchEnabled:d,isFusionEnabled:u,isAdvisorEnabled:p});if(m)return e6({roomId:e,messageId:t.id,errorMessage:m,storeActions:s.actions,getStoreState:i});let f=await eQ(a);if((0,ep.isErr)(f))return e6({roomId:e,messageId:t.id,errorMessage:f.error,storeActions:s.actions,getStoreState:i});let g=(0,el.orid)(el.ORIDType.AssistantMessageItem),h=(await l.getItemStore()).actions;h.upsertItem((0,ef.createPlaygroundItem)({id:g,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:g,outputIndex:0,type:"message"}});let y=Date.now();try{for await(let e of l.streamLanguageModelResponse({input:f.data,signal:o.signal,options:em.CHROME_GEMINI_NANO_LANGUAGE_MODEL_OPTIONS}))h.appendMessageText(g,e,0);await h.flushAllPending(),await (0,eI.markAssistantItemCompleted)(g,l.getItemStore);let a=Date.now()-y,n={...t.metadata,variantSlug:r.model,duration:a};s.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1,metadata:n}}});let c=i().rooms[e]?.messages[t.id];return(0,ep.ok)({response:null,outputMessage:c??t})}catch(a){if(s.actions.updateMessage({payload:{roomId:e,messageId:t.id,partialMessage:{isGenerating:!1,isRetrying:!1}}}),a instanceof DOMException&&"AbortError"===a.name)return(0,q.toast)({title:"Request cancelled"}),(0,ec.errT)({location:"sendToCharacter:chrome-ai:abort",rawError:"Request cancelled"});l.trackError(a instanceof Error?a:Error("Chrome AI stream failed"),{source:"sendToCharacter",filename:"send-to-character.ts",context:{error:a}});let r=a instanceof Error?a.message:"Chrome AI stream failed";return await (0,ew.recordInlineCharacterError)({roomId:e,messageId:t.id,errorMessage:r,storeActions:s.actions,getStoreState:i}),(0,ec.errT)({location:"sendToCharacter:chrome-ai",rawError:r})}}async function eQ(e){let t=[];for(let a of e){var r;let e=await e0(a);if((0,ep.isErr)(e))return e;("string"==typeof(r=e.data.content)?r.trim().length>0:r.some(e=>"text"!==e.type||e.value.trim().length>0))&&t.push(e.data)}return 0===t.length?(0,ep.err)("Chrome Gemini Nano needs a text, image, or audio message to respond to."):(0,ep.ok)(t)}async function e0(e){if("message"!==e.type)return(0,ep.err)("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,ep.err)("Chrome Gemini Nano only supports user, assistant, system, and developer messages.");let{content:r}=e;if("string"==typeof r)return(0,ep.ok)({role:t,content:r});if(!Array.isArray(r))return(0,ep.ok)({role:t,content:""});let a=[];for(let e of r)switch(e.type){case"input_text":case"output_text":a.push({type:"text",value:e.text});break;case"refusal":a.push({type:"text",value:e.refusal});break;case"input_image":{if(!e.image_url)return(0,ep.err)("Chrome Gemini Nano needs image attachments to include image data.");let t=await e1(e.image_url,"image");if((0,ep.isErr)(t))return t;a.push({type:"image",value:t.data});break}case"input_audio":{var n,s;let t=e.input_audio.data;if(!t)return(0,ep.err)("Chrome Gemini Nano needs audio attachments to include audio data.");let r=await e1((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,ep.isErr)(r))return r;a.push({type:"audio",value:r.data});break}default:return(0,ep.err)("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,ep.ok)({role:t,content:a})}async function e1(e,t){if(e.startsWith("data:")){let r=function(e){var t,r;let a,n,s=e.indexOf(",");if(-1===s)return(0,ep.err)("invalid data URL");let i=e.slice(0,s),o=e.slice(s+1),l=i.slice(5).split(";",1)[0]||"application/octet-stream",c=i.slice(5).split(";").some(e=>"base64"===e.toLowerCase())?(t=o,a=(0,ep.wrap)(()=>atob(t)),(0,ep.isErr)(a)?(0,ep.err)("invalid base64 data URL"):(0,ep.ok)(Uint8Array.from(a.data,e=>e.codePointAt(0)??0))):(r=o,n=(0,ep.wrap)(()=>decodeURIComponent(r)),(0,ep.isErr)(n)?(0,ep.err)("invalid data URL payload"):(0,ep.ok)(new TextEncoder().encode(n.data)));return(0,ep.isErr)(c)?(0,ep.err)(c.error):(0,ep.ok)(new Blob([c.data],{type:l}))}(e);return(0,ep.isErr)(r)?(0,ep.err)(`Chrome Gemini Nano could not read ${t} input: ${r.error}`):r}let r=await e2(e);if((0,ep.isErr)(r))return(0,ep.err)(`Chrome Gemini Nano could not read ${t} input: ${r.error}`);let a=r.data;if(!a.ok)return a.body?.cancel(),(0,ep.err)(`Chrome Gemini Nano could not read ${t} input: request failed with ${a.status}`);let n=await e4(a);return(0,ep.isErr)(n)?(0,ep.err)(`Chrome Gemini Nano could not read ${t} input: ${n.error}`):(0,ep.ok)(n.data)}async function e2(e){let t=await (0,ep.wrap)(()=>fetch(e));return(0,ep.isErr)(t)?(0,ep.err)(t.error instanceof Error?t.error.message:"fetch failed"):t}async function e4(e){let t=await (0,ep.wrap)(()=>e.blob());return(0,ep.isErr)(t)?(0,ep.err)(t.error instanceof Error?t.error.message:"blob conversion failed"):t}async function e6({roomId:e,messageId:t,errorMessage:r,storeActions:a,getStoreState:n}){return a.updateMessage({payload:{roomId:e,messageId:t,partialMessage:{isGenerating:!1,isRetrying:!1}}}),await (0,ew.recordInlineCharacterError)({roomId:e,messageId:t,errorMessage:r,storeActions:a,getStoreState:n}),(0,ec.errT)({location:"sendToCharacter:chrome-ai:unsupported",rawError:r})}let e8=(0,Y.makeStoreAction)({name:"retryMessage",handler:async({get:e,set:t,payload:{roomId:r,messageId:a}})=>{let n,s=e().rooms[r];if(!s)return;let i=s.messages[a];if(!i||i.type===X.MessageType.System)return;t(e=>{let t=e.rooms[r];t&&(t.updatedAt=new Date,n=(0,et.toRoomMetadata)(t))});let o=e().storageInstanceId;o&&n&&await H.persistence.saveRoom(o,n);let l=i.type===X.MessageType.User,c=i.context;t(e=>{let t=e.rooms[r];t&&(t.messages[a]&&(t.messages[a].isRetrying=!0),l&&(t.isProcessing=!0))});try{if(i.type===X.MessageType.User){let t=i.requestOverrides,a={...e(),currentRoomId:r},n=(0,K.selectActiveCharacters)(a),o=t?.modalities?.includes("image"),l=o?n.filter(e=>e.modelInfo?.output_modalities?.includes(X.ChatModality.Image)):n;if(o&&0===l.length)return void(0,q.toast)({title:"No image-capable models available",description:"Please add a model that supports image generation to retry this request.",variant:"destructive"});let{messagesToUpdate:d,charactersNeedingNewMessage:u}=function(e){let t=[...e.allMessages].sort(ee.sortMessages),r=t.findIndex(t=>t.id===e.retryingUserMessage.id);if(-1===r)return{messagesToUpdate:[],charactersNeedingNewMessage:e.activeCharacters};let a=(0,W.takeWhile)(t.slice(r+1),e=>e.type!==X.MessageType.User),n=[...a],s=new Set(a.map(e=>e.type===X.MessageType.Assistant?e.characterId:null).filter(Boolean));return{messagesToUpdate:n,charactersNeedingNewMessage:e.activeCharacters.filter(e=>!s.has(e.id))}}({allMessages:Object.values(s.messages),retryingUserMessage:i,activeCharacters:l}),p=d.map(t=>e().actions.retryMessage({payload:{roomId:r,messageId:t.id}})),m=u.map(async a=>{let n=Object.values(e().rooms[r]?.messages??{}).filter(e=>e.context===c).sort(ee.sortMessages).filter(e=>!!e.createdAt&&!!i.createdAt&&e.createdAte.payload),d=t??{};await er.abortCtrlManagerRef.current.withController(t=>eX({payload:{roomId:r,character:a,inputItems:l,parentMessageId:i.id,requestOverrides:d},dependencies:{get:e,abortController:t}}))});await Promise.all([...p,...m])}else{let t=s.characters[i.characterId];if(t&&(0,Z.isInternCharacter)(t))return void(0,q.toast)({title:"Retry isn't available for interns yet",description:"Send the message again to get a new reply.",variant:"destructive"});if(t&&!t.isRemoved&&!t.isDisabled){let a=(i.items??[]).map(e=>e.id);a.length>0&&(J.useItemStore.getState().actions.deleteItems(a),o&&await H.persistence.deleteItems(o,a));let n=function(e,t){if(e.type!==X.MessageType.System){if(e.requestOverrides)return e.requestOverrides;if(e.type===X.MessageType.Assistant&&e.parentMessageId){let r=t[e.parentMessageId];if(r?.type===X.MessageType.User)return r.requestOverrides}}}(i,s.messages);await e().actions.updateMessage({payload:{roomId:r,messageId:i.id,partialMessage:{isGenerating:!0,items:[],requestOverrides:n}}});let l=Object.values(s.messages).filter(e=>e.context===c).sort(ee.sortMessages),d=i.parentMessageId,u=d?l.findIndex(e=>e.id===d):-1,p=-1!==u?l.slice(0,u+1):l.filter(e=>!!e.createdAt&&!!i.createdAt&&e.createdAte.payload),g=n??{};await er.abortCtrlManagerRef.current.withController(a=>eX({payload:{roomId:r,character:t,inputItems:f,targetBotMessage:i,requestOverrides:g},dependencies:{get:e,abortController:a}}))}}}finally{t(e=>{let t=e.rooms[r];t&&(t.messages[a]&&(t.messages[a].isRetrying=!1),l&&(t.isProcessing=!1))})}}});var e3=e.i(925935),e9=e.i(366699),e7=e.i(700050),e5=e.i(295654),te=e.i(847893),tt=e.i(170993),tr=e.i(454785),ta=e.i(911585);let tn=(0,Y.makeStoreAction)({name:"sendMessage",handler:async({get:e,set:t,payload:{roomId:r,isSignedIn:a,content:n,attachments:s,defaultModelSlug:i},dependencies:{router:o,getModelInfoByVariantSlug:l,resetComposer:c}})=>{(0,e7.trackMessageSendInit)({roomId:r,isSignedIn:a,attachmentCount:s.length}),e().actions.setShouldStickToBottom({payload:{stick:!0}});let d=r,u=n.trim(),p=s.length>0;if(!u&&!p)return;if(!a){e().actions.setPendingMessage({payload:{message:n,source:X.PendingMessageSource.UserInput}}),e().currentRoomId&&e().actions.setPendingRoomId({payload:{roomId:e().currentRoomId}}),e().actions.setShowSignUpModal({payload:{show:!0}});return}let m=e().pendingCharacters;if(!d&&m){let t=await e().actions.createChatroom({payload:{title:(0,ta.getChatroomTitle)(n),characters:m}});(0,tr.applySummaryTitle)({get:e},{roomId:t.id,messageContent:n}),e().actions.setPendingCharacters({payload:{characters:null}}),e().actions.setPendingMessage({payload:{message:null,source:null}}),o.push(`/chat?room=${t.id}`),d=t.id}else if(!d){let t=await e().actions.createChatroom({payload:{title:(0,ta.getChatroomTitle)(n)}});(0,tr.applySummaryTitle)({get:e},{roomId:t.id,messageContent:n}),o.push(`/chat?room=${t.id}`),d=t.id}let f=e().rooms[d];if(f&&(!f.title||f.title===e5.DEFAULT_CHAT_ROOM_TITLE)&&(await e().actions.updateRoom({payload:{roomId:d,partialRoom:{title:(0,ta.getChatroomTitle)(n)}}}),(0,tr.applySummaryTitle)({get:e},{roomId:d,messageContent:n})),0===Object.values(f?.characters??{}).filter(e=>e&&!e.isDisabled&&(0,tt.isDisplayedCharacter)(e)).length){let t=l(i||e5.defaultCharacterModelSlug);if(t){let r=(0,ed.getModelVariantSlug)(t);await e().actions.addCharacters({payload:{roomId:d,characters:{model:r,modelInfo:t,samplingParameters:{}}}})}}await e().actions.updateRoom({payload:{roomId:d,partialRoom:{isProcessing:!0,lastActivityAt:new Date}}});try{let r,a=(0,el.orid)(el.ORIDType.Message),i=[];n.trim()&&i.push({type:"input_text",text:n});let o=[];for(let e of s){let t=(0,e3.getAttachmentContentPart)(e);t&&(i.push(t),"input_text"!==t.type&&o.push({type:e.type,name:e.name,size:e.size}))}let l=(0,ef.createPlaygroundItem)({messageId:a,data:{type:"message",role:e9.ChatMessageRole.User,content:i}}),u=(0,te.createUserMessage)({id:a,characterId:e5.userCharacter.id,context:X.MessageContext.MainChat,type:X.MessageType.User,items:[{id:l.id,type:l.data.type}],attachmentMetadata:o.length>0?o:void 0,createdAt:function(e,t){let r=e().rooms[t]?.messages[""];if(r?.createdAt){let a=Object.values(e().rooms[t].messages).filter(e=>null===e.parentMessageId).length+1;return new Date(r.createdAt.getTime()+a)}return new Date}(e,d)});J.useItemStore.getState().actions.upsertItem(l),t(e=>{let t=e.rooms[d];t&&(t.messages[u.id]=u,t.sortedMessageIds=Object.values(t.messages).sort(ee.sortMessages).map(e=>e.id),t.updatedAt=new Date,r=(0,et.toRoomMetadata)(t))});let p=e().storageInstanceId;p&&r&&await Promise.all([H.persistence.saveMessage(p,d,u),H.persistence.saveRoom(p,r)]),c?.(),await e().actions.sendUserMessage({payload:{messageId:u.id,roomId:d,content:n}})}finally{await e().actions.updateRoom({payload:{roomId:d,partialRoom:{isProcessing:!1}}})}}}),ts=(0,Y.makeStoreAction)({name:"sendUserMessage",handler:async({get:e,payload:{messageId:t,roomId:r}})=>{let a=e().rooms[r];if(!a)return;let n=a.messages[t];if(!n||n.type!==X.MessageType.User)return;let{items:s}=J.useItemStore.getState(),i=Object.values(a.messages).filter(e=>e.context===X.MessageContext.MainChat).sort(ee.sortMessages),o={...e(),currentRoomId:r},l=(0,K.selectActiveCharacters)(o);if(0===l.length)return;let c=(0,Q.getCharacterMemoryMap)({charactersDict:a.characters,charactersList:l,messagesList:i,memoryCount:e().chatMemoryCount,itemsMap:s}),d=n.createdAt.getTime()??Date.now();await Promise.all(l.map(async(t,a)=>{let s=(c[t.id]||[]).map(e=>e.payload);await er.abortCtrlManagerRef.current.withController(i=>eX({payload:{roomId:r,character:t,inputItems:s,parentMessageId:n.id,createdAt:new Date(d+a+1)},dependencies:{get:e,abortController:i}}))}))}});function ti(e){return(0,Y.makeStoreAction)({handler:({set:t,payload:r})=>{t(t=>{Object.assign(t.tools[e].parameters,r)})}})}function to(e){return(0,Y.makeStoreAction)({handler:({set:t,payload:r})=>{t(t=>{t.tools[e].enabled=r.enabled})}})}let tl=ti("advisor"),tc=ti("datetime"),td=ti("fusion"),tu=(0,Y.makeStoreAction)({name:"setImageGenerationAspectRatio",handler:({set:e,payload:t})=>{e(e=>{e.tools.imageGeneration.parameters.aspect_ratio=t.aspectRatio??void 0})}}),tp=ti("imageGeneration"),tm=(0,Y.makeStoreAction)({name:"setIsAdvisorEnabled",handler:({set:e,get:t,payload:r})=>{let a=t().tools.advisor.parameters.advisors,n=r.enabled&&(!a||0===a.length)?[{name:""}]:a;e(e=>{e.tools.advisor.enabled=r.enabled,e.tools.advisor.parameters.advisors=n})}}),tf=(0,Y.makeStoreAction)({name:"setIsChatNotificationsEnabled",handler:({set:e,payload:t})=>{e({isChatNotificationsEnabled:t.enabled})}}),tg=to("datetime"),th=to("fusion"),ty=to("imageGeneration"),tv=to("shell"),tI=(0,Y.makeStoreAction)({name:"setIsSubagentEnabled",handler:({set:e,get:t,payload:r})=>{let a=t().tools.subagent.parameters.subagents,n=r.enabled&&(!a||0===a.length)?[{name:""}]:a;e(e=>{e.tools.subagent.enabled=r.enabled,e.tools.subagent.parameters.subagents=n})}}),tb=to("webFetch"),tA=to("webSearch"),tw=(0,Y.makeStoreAction)({name:"setPendingCharacters",handler:({set:e,payload:t})=>{e({pendingCharacters:t.characters})}}),tS=(0,Y.makeStoreAction)({name:"setPendingMessage",handler:({set:e,payload:t})=>{e({pendingMessage:t.message,pendingMessageSource:t.source})}}),tT=(0,Y.makeStoreAction)({name:"setPendingRoomId",handler:({set:e,payload:t})=>{e({pendingRoomId:t.roomId})}}),tC=ti("shell"),t_=(0,Y.makeStoreAction)({name:"setShouldStickToBottom",handler:({set:e,payload:t})=>{e({shouldStickToBottom:t.stick})}}),tx=(0,Y.makeStoreAction)({name:"setShowInsufficientCreditsModal",handler:({set:e,get:t,payload:r})=>{t().showInsufficientCreditsModal!==r.show&&e({showInsufficientCreditsModal:r.show})}}),tM=(0,Y.makeStoreAction)({name:"setShowSignUpModal",handler:({set:e,payload:t})=>{e({showSignUpModal:t.show})}}),tE=ti("subagent"),tk=ti("webFetch"),tR=ti("webSearch"),tO=(0,Y.makeStoreAction)({name:"stopGeneration",handler:({get:e,set:t})=>{er.abortCtrlManagerRef.current.flush();let r=e().currentRoomId;r&&t(e=>{let t=e.rooms[r];t&&(t.isProcessing=!1,Object.values(t.messages).forEach(e=>{e.type===X.MessageType.Assistant&&(e.isGenerating||e.isRetrying)&&(e.isGenerating=!1,e.isRetrying=!1)}))})}}),tF=e=>{let t=J.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(["getTrimmedMessageContent",0,tF],197832);let tP=(0,Y.makeStoreAction)({name:"editItem",handler:async({set:e,get:t,payload:{roomId:r,messageId:a,itemId:n,newContent:s,opts:i}})=>{let o=t().rooms[r]?.messages[a];if(!o)return;let l=J.useItemStore.getState(),c=tF(n),d={...o,isEdited:c!==s,updatedAt:new Date};e(e=>{let t=e.rooms[r];t?.messages[a]&&(t.messages[a]=d)}),l.actions.editItemContent(n,s);let u=t().storageInstanceId;u&&await H.persistence.saveMessage(u,r,d),i?.retry&&await t().actions.retryMessage({payload:{messageId:a,roomId:r}})}}),tj=(0,Y.makeStoreAction)({name:"addMessagesToRoom",handler:async({set:e,get:t,payload:{roomId:r,messages:a}})=>{e(e=>{let t=e.rooms[r];t&&(Object.assign(t.messages,a),t.sortedMessageIds=Object.values(t.messages).sort(ee.sortMessages).map(e=>e.id))});let n=t().storageInstanceId;n&&await H.persistence.saveMessages(n,r,Object.values(a))}});var tD=e.i(220988);let tV=(0,Y.makeStoreAction)({name:"clearAllMessages",handler:async({set:e,get:t,payload:{roomId:r}})=>{if(!globalThis.confirm(tD.default`This will clean up your chat history for the current room. This action is irreversible.`))return;let a=Object.values(t().rooms[r]?.messages??{}).flatMap(e=>e.items.map(e=>e.id));a.length>0&&J.useItemStore.getState().actions.deleteItems(a),e(e=>{let t=e.rooms[r];t&&(t.messages={},t.sortedMessageIds=[],t.updatedAt=new Date)});let n=t().storageInstanceId,s=t().rooms[r];n&&s&&(await H.persistence.clearMessagesFromRoom(n,r),await H.persistence.saveRoom(n,(0,et.toRoomMetadata)(s))),(0,e7.trackRoomClearHistory)()}}),tz=(0,Y.makeStoreAction)({name:"removeMessage",handler:async({set:e,get:t,payload:{messageId:r,roomId:a}})=>{let n=t().rooms[a];if(!n||!n.messages[r])return;let s=n.messages[r],i=Object.values(n.messages),o=function(e,t){if(e.type===X.MessageType.Assistant)return e.parentMessageId??void 0;let r=[...t].sort(ee.sortMessages),a=r.findIndex(t=>t.id===e.id),n=r.slice(0,a).reverse().find(e=>e.type===X.MessageType.User);return n?.id}(s,i),l={},c=[];for(let e of i)if(e.id!==r)if(e.parentMessageId===r&&e.type===X.MessageType.Assistant){let t={...e,parentMessageId:o};l[e.id]=t,c.push(t)}else l[e.id]=e;e(e=>{let t=e.rooms[a];t&&(t.messages=l,t.sortedMessageIds=Object.values(l).sort(ee.sortMessages).map(e=>e.id))});let d=s.items.map(e=>e.id);d.length>0&&J.useItemStore.getState().actions.deleteItems(d);let u=t().storageInstanceId;u&&await Promise.all([H.persistence.deleteMessage(u,a,r),H.persistence.saveMessages(u,a,c)]),s.type===X.MessageType.Assistant?(0,e7.trackMessageDelete)({variantSlug:s.metadata?.variantSlug,type:s.type}):(0,e7.trackMessageDelete)({type:s.type})}}),t$=(0,Y.makeStoreAction)({name:"setAllMessagesCollapsed",handler:async({set:e,get:t,payload:{roomId:r,isCollapsed:a}})=>{let n=t().rooms[r];if(!n||0===Object.keys(n.messages).length)return;let s=[],i=Object.entries(n.messages).reduce((e,[t,r])=>{if(r){let n={...r,isCollapsed:a};e[t]=n,s.push(n)}return e},{});e(e=>{let t=e.rooms[r];t&&(t.messages=i)});let o=t().storageInstanceId;o&&await H.persistence.saveMessages(o,r,s)}}),tU=(0,Y.makeStoreAction)({name:"toggleMessageCollapsed",handler:async({set:e,get:t,payload:{roomId:r,messageId:a}})=>{let n=t().rooms[r]?.messages[a];if(!n)return;let s={...n,isCollapsed:!n.isCollapsed,updatedAt:new Date};e(e=>{let t=e.rooms[r]?.messages;t?.[a]&&(t[a]=s)});let i=t().storageInstanceId;i&&await H.persistence.saveMessage(i,r,s)}}),tN=(0,Y.makeStoreAction)({name:"updateMessage",handler:async({set:e,get:t,payload:{roomId:r,messageId:a,partialMessage:n}})=>{let s=t().rooms[r]?.messages[a];if(!s)return;let{type:i,...o}=n,l={...s,...o,updatedAt:new Date};e(e=>{let t=e.rooms[r]?.messages;t?.[a]&&(t[a]=l)});let c=t().storageInstanceId;c&&await H.persistence.saveMessage(c,r,l)}}),tL=(0,Y.makeStoreAction)({name:"setChatMemoryCount",handler:({payload:e,set:t})=>{t({chatMemoryCount:e.chatMemoryCount})}});var tG=e.i(471316);let tB={[X.AppArchetype.InteractiveWebApp]:"Web App",[X.AppArchetype.LandingPage]:"Landing",[X.AppArchetype.TwoDGame]:"2D Game",[X.AppArchetype.ThreeDGame]:"3D"},tq={[X.AppStack.HTML]:"HTML/CSS/JS"};function tW(e={}){let t=new Date;return{version:3,id:e.id??(0,el.orid)(el.ORIDType.Chat),title:e.title??"Untitled Chat",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??X.HydrationStatus.Idle,hydrationError:e.hydrationError??null,createdAt:t,updatedAt:t,lastActivityAt:e.lastActivityAt??t,artifactIds:e.artifactIds??[],internId:e.internId}}e.s(["BASE_NAMESPACE",0,"openrouter:playground","LATEST_ROOM_VERSION",0,3,"NAMESPACE_VERSION",0,"v3","generationStatusLabel",0,{idle:"Idle",generating:"Generating",success:"Success",failed:"Failed"},"generationStatusTheme",0,{idle:{coreBg:"bg-muted-foreground",ringBorder:"border-border"},generating:{coreBg:"bg-warning",ringBorder:"border-border"},success:{coreBg:"bg-positive",ringBorder:"border-border"},failed:{coreBg:"bg-negative",ringBorder:"border-border"}},"getAppArchetypeLabel",0,function(e){return e?tB[e]:""},"getAppStackLabel",0,function(e){return e?tq[e]:""}],733442);let tH=(0,Y.makeStoreAction)({name:"createChatroom",handler:async({set:e,get:t,payload:r})=>{let a=r.characters??t().pendingCharacters,n=t().pendingRoomZdr;e(e=>{e.pendingCharacters=null,e.pendingRoomZdr=null});let s=Object.values(a||{}).reduce((e,t)=>{if(!t||t.isRemoved)return e;let r=structuredClone(t),a=(0,el.orid)(el.ORIDType.Character),n=(0,tG.createCharacterData)({...r,id:a,createdAt:new Date,updatedAt:new Date});return e[n.id]=n,e},{}),i=tW({title:r.title,characters:s,hydrationStatus:X.HydrationStatus.Success,internId:r.internId,zdr:n??void 0});e(e=>{e.rooms[i.id]=i,e.currentRoomId=i.id,e.activeArtifactId=null});let o=t().storageInstanceId;return o&&await Promise.all([H.persistence.saveRoom(o,(0,et.toRoomMetadata)(i)),H.persistence.saveCharacters(o,i.id,Object.values(s))]),(0,e7.trackRoomCreate)({source:void 0===r.internId?"new":"intern",characterCount:Object.keys(s).length}),i}});e.i(634160);var tJ=e.i(696384);let tY=(0,Y.makeStoreAction)({name:"deleteAllChatrooms",handler:async({set:e,get:t,dependencies:{router:r}})=>{let a=Object.keys(t().rooms);if(0===a.length)return;(0,e7.trackRoomDeleteAll)({roomCount:a.length}),e(e=>{e.rooms={},e.currentRoomId=null,e.artifacts={},e.artifactFiles={},e.artifactVersions={},e.artifactFileContents={},e.activeArtifactId=null,e.artifactViewerState={},e.generationAttemptStartMs={}}),J.useItemStore.getState().actions.clearAllItems();let n=t().storageInstanceId;n&&(await (0,ep.wrap)(()=>(0,tJ.forgetRoomVideos)(n,a,[])),await Promise.all(a.map(e=>H.persistence.deleteRoom(n,e)))),r.push("/chat")}}),tZ=(0,Y.makeStoreAction)({name:"deleteChatroom",handler:async({set:e,get:t,payload:{roomId:r},dependencies:{router:a,deletedRoomHref:n="/chat"}})=>{let s=t().rooms[r];if(!s)return;(0,e7.trackRoomDelete)({messageCount:Object.keys(s.messages??{}).length,characterCount:Object.keys(s.characters??{}).length});let i=t().currentRoomId===r,o=Object.values(s.messages??{}).flatMap(e=>(e.items??[]).map(e=>e.id)),l=t().storageInstanceId;o.length>0&&J.useItemStore.getState().actions.deleteItems(o),e(e=>{delete e.rooms[r],e.currentRoomId===r&&(e.currentRoomId=null)}),l&&(await (0,ep.wrap)(()=>(0,tJ.forgetRoomVideos)(l,[r],Object.keys(t().rooms))),await H.persistence.deleteRoom(l,r)),i&&null!==n&&a.push(n)}});var tX=e.i(81174),tK=e.i(10700);let tQ=(0,Y.makeStoreAction)({name:"duplicateRoom",handler:async({set:e,get:t,payload:{sourceRoomId:r},dependencies:{router:a}})=>{let n=await (0,ep.wrap)(()=>t0({set:e,get:t,sourceRoomId:r,router:a}));(0,ep.isErr)(n)&&((0,tX.wLog)("duplicate-room-failed",(0,ec.errorToLogFields)(n.error)),(0,q.toast)({title:"Could not duplicate room",description:"An unexpected error occurred.",variant:"destructive"}))}});async function t0({set:e,get:t,sourceRoomId:r,router:a}){let n=t(),s=n.rooms[r],i=n.storageInstanceId;if(!s||!i)return void(0,q.toast)({title:"Could not duplicate room",description:"Source room or namespace not found.",variant:"destructive"});if(s.hydrationStatus===X.HydrationStatus.Idle){let e=await t().actions.loadFullRoom({payload:{roomId:r}});if((0,ep.isErr)(e))return void(0,q.toast)({title:"Could not duplicate room",description:"Failed to load source room data.",variant:"destructive"});if(!(s=(n=t()).rooms[r]))return}let o=(0,tK.gatherSourceArtifactData)(n,s.artifactIds),l=new Date,{newCharacters:c,charIdMap:d}=(0,tK.cloneCharacters)(s.characters,l),u=new Map;for(let e of Object.keys(s.messages))u.set(e,(0,el.orid)(el.ORIDType.Message));let{items:p}=J.useItemStore.getState(),m=new Set(Object.values(s.messages).flatMap(e=>e.items??[]).map(e=>e.id)),f=(0,eu.pick)(p,Array.from(m)),g=new Map,h={};for(let e in f){if(!Object.hasOwn(f,e))continue;let t=f[e];if(!t)continue;let r=(0,el.orid)(el.ORIDType.Item);g.set(e,r),h[r]={...t,id:r}}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:A,versionIdMap:w}=(0,tK.cloneArtifacts)(o,d,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=A.get(e.artifactId);t&&(e.artifactId=t)}}let{newMessages:S}=(0,tK.cloneMessages)({sourceMessages:s.messages,charIdMap:d,artifactIdMap:A,versionIdMap:w,now:l,msgIdMap:u,itemIdMap:g}),T={...S};for(let e of Object.values(T))if(e){if(e.artifactId){let t=A.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 C=new Map;for(let e of Object.values(I)){if(!e||!e.generatingMessageId||!e.artifactId)continue;let t=`${e.generatingMessageId}|${e.artifactId}|${e.characterId??""}`;C.set(t,e.id)}for(let e of Object.values(T)){if(!e||e.type!==X.MessageType.Assistant||!e.parentMessageId||!e.artifactId)continue;let t=`${e.parentMessageId}|${e.artifactId}|${e.characterId??""}`,r=C.get(t);r&&(e.contentType!==X.ContentType.ArtifactVersion||e.versionContextId!==r)&&(e.contentType=X.ContentType.ArtifactVersion,e.versionContextId=r)}let _=tW({...s,id:void 0,internId:void 0,title:`${s.title} (Copy)`,characters:c,messages:T,sortedMessageIds:Object.values(T).sort(ee.sortMessages).map(e=>e.id),artifactIds:Object.keys(y),createdAt:l,updatedAt:l}),x=await (0,tK.commitClonedRoom)({set:e,namespace:i,newRoomData:_,newArtifactData:{artifacts:y,artifactFiles:v,artifactVersions:I,artifactFileContents:b}});if((0,ep.isErr)(x))return void(0,q.toast)({title:"Could not duplicate room",description:`The room could not be saved. ${x.error}`,variant:"destructive"});await H.persistence.saveItems(i,_.id,Object.values(h));let{items:M,actions:E}=J.useItemStore.getState();E.loadItems({...M,...h}),(0,e7.trackRoomDuplicate)({sourceMessageCount:Object.keys(s.messages).length,sourceCharacterCount:Object.keys(s.characters).length}),a.push(`/chat?room=${_.id}`)}var t1=e.i(463522);let t2=null,t4=(0,Y.makeStoreAction)({name:"initStore",handler:async({set:e,get:t,payload:r})=>{let{storageInstanceId:a}=r;if(t().storageInstanceId===a)return;t2=a,null!==t().storageInstanceId&&er.abortCtrlManagerRef.current.flush(),J.useItemStore.getState().actions.clearAllItems(),e(e=>{e.initializationStatus=X.StoreInitializationStatus.Pending});let n=await (0,ep.wrap)(async()=>{let t=await H.persistence.getAllRooms(a),r={};for(let e in t){if(!Object.hasOwn(t,e))continue;let a=t[e];if(a){let t=(0,t1.safeParseDate)(a.createdAt,new Date);r[e]={id:a.id,title:a.title,createdAt:t,updatedAt:(0,t1.safeParseDate)(a.updatedAt,t),lastActivityAt:a.lastActivityAt?(0,t1.safeParseDate)(a.lastActivityAt,t):void 0,version:a.version,characters:{},messages:{},sortedMessageIds:[],isProcessing:!1,hydrationStatus:X.HydrationStatus.Idle,hydrationError:null,artifactIds:[],isPinned:a.isPinned,zdr:a.zdr,internId:a.internId}}}t2===a&&e(e=>{e.rooms=r;let t=e.currentRoomId;t&&!Object.hasOwn(r,t)&&(e.currentRoomId=null),e.storageInstanceId=a,e.initializationStatus=X.StoreInitializationStatus.Success})});t2===a&&(0,ep.isErr)(n)&&(e(e=>{e.rooms={},e.currentRoomId=null,e.storageInstanceId=null,e.initializationStatus=X.StoreInitializationStatus.Failed}),(0,q.toast)({title:"Error Loading Chats",description:"There was a critical issue initializing your chat history. Refreshing may help.",variant:"destructive"}))}});var t6=e.i(864568),t8=e.i(438838);let t3=(0,Y.makeStoreAction)({name:"loadFullRoom",handler:async({set:e,get:t,payload:{roomId:r}})=>{let{storageInstanceId:a}=t();if(!a)return(0,ep.err)("Storage instance ID not found");(0,e7.trackRoomLoadTriggered)({roomId:r,storageInstanceId:a,roomsLength:Object.keys(t().rooms).length,hydrationStatus:X.HydrationStatus.Pending}),e(e=>{e.rooms[r]&&(e.rooms[r].hydrationStatus=X.HydrationStatus.Pending)});let n=await (0,ep.wrap)(async()=>{let{characters:n,messages:s,items:i,artifacts:o}=await H.persistence.getRoom(a,r),{artifactFiles:l,artifactVersions:c,artifactFileContents:d}=await (0,t8.fetchArtifactData)({storageInstanceId:a,messages:s,artifacts:o,persistence:H.persistence}),u={...t().rooms[r],characters:n,messages:s,sortedMessageIds:Object.values(s).sort(ee.sortMessages).map(e=>e.id),artifactIds:Object.keys(o),hydrationStatus:X.HydrationStatus.Success};J.useItemStore.getState().actions.loadItems(i),e(e=>{e.rooms[r]=u,e.artifacts={...e.artifacts,...o},e.artifactFiles={...e.artifactFiles,...l},e.artifactVersions={...e.artifactVersions,...c},e.artifactFileContents={...e.artifactFileContents,...d}}),(0,e7.trackRoomLoadComplete)({roomId:r,messagesLoaded:Object.keys(s).length,charactersLoaded:Object.keys(n).length,itemsLoaded:Object.keys(i).length,migratedFromVersion:void 0})});if((0,ep.isErr)(n)){let t=(0,t6.unknownErrorToString)(n.error);return(0,e7.trackRoomLoadFailed)({roomId:r,errorMessage:t}),e(e=>{e.rooms[r]&&(e.rooms[r].hydrationStatus=X.HydrationStatus.Failed,e.rooms[r].hydrationError=t)}),(0,ep.err)(t)}return(0,ep.ok)(!0)}}),t9=(0,Y.makeStoreAction)({name:"setCurrentRoom",handler:async({set:e,get:t,payload:{roomId:r}})=>{if(t().currentRoomId!==r&&e(e=>{e.currentRoomId=r,e.activeArtifactId=null}),!r)return;let a=t().rooms[r];a&&a.hydrationStatus===X.HydrationStatus.Idle&&t().actions.loadFullRoom({payload:{roomId:r}})}}),t7=(0,Y.makeStoreAction)({name:"toggleInternConversationsCollapsed",handler:({set:e})=>{e(e=>({isInternConversationsCollapsed:!e.isInternConversationsCollapsed}))}}),t5=(0,Y.makeStoreAction)({name:"togglePromptHistoryCollapsed",handler:({set:e})=>{e(e=>({isPromptHistoryCollapsed:!e.isPromptHistoryCollapsed}))}}),re=(0,Y.makeStoreAction)({name:"toggleRoomManagerCollapsed",handler:({set:e})=>{e(e=>({isRoomManagerCollapsed:!e.isRoomManagerCollapsed}))}}),rt=(0,Y.makeStoreAction)({name:"updateRoom",handler:async({set:e,get:t,payload:{roomId:r,partialRoom:a}})=>{let n;e(e=>{let t=e.rooms[r];t&&(Object.assign(t,a),t.updatedAt=new Date,n=(0,et.toRoomMetadata)(t))});let s=t().storageInstanceId;s&&n&&await H.persistence.saveRoom(s,n)}}),rr=(t={addCharacters:_.addCharacters,replaceCharacters:O.replaceCharacters,duplicateCharacter:E.duplicateCharacter,applyToAllCharacters:x.applyToAllCharacters,clearCharacters:M.clearCharacters,initializeCharacters:k.initializeCharacters,removeCharacter:R.removeCharacter,resetCharacter:F.resetCharacter,restoreCharacter:P.restoreCharacter,setRoomZdr:j.setRoomZdr,togglePluginForCharacter:D.togglePluginForCharacter,updateCharacter:V.updateCharacter,clearAllMessages:tV,createBotPlaceholder:z.createBotPlaceholder,exportAllData:$.exportAllData,exportData:U.exportData,exportManyData:N.exportManyData,exportMarkdown:L.exportMarkdown,importData:G.importData,retryMessage:e8,sendMessage:tn,sendUserMessage:ts,stopGeneration:tO,addMessages:tj,appendItemIdToMessage:o.appendItemIdToMessage,editItem:tP,removeMessage:tz,setAllMessagesCollapsed:t$,updateMessage:tN,toggleMessageCollapsed:tU,createChatroom:tH,deleteAllChatrooms:tY,deleteChatroom:tZ,loadFullArtifact:f.loadFullArtifact,initStore:t4,loadFullRoom:t3,setCurrentRoom:t9,updateRoom:rt,duplicateRoom:tQ,sendConversationPromptToArtifact:v.sendConversationPromptToArtifact,sendGenerationPromptToArtifact:I.sendGenerationPromptToArtifact,updateArtifact:C.updateArtifact,generateArtifact:m.generateArtifact,deleteArtifact:d.deleteArtifact,clearArtifactViewState:l.clearArtifactViewState,closeArtifactView:c.closeArtifactView,setActiveArtifactId:b.setActiveArtifactId,setActiveArtifactView:A.setActiveArtifactView,setActiveFileId:S.setActiveFileId,setActiveVersionId:T.setActiveVersionId,setActiveCharacterForArtifact:w.setActiveCharacterForArtifact,deleteArtifactFile:u.deleteArtifactFile,renameArtifactFile:h.renameArtifactFile,downloadArtifactVersion:p.downloadArtifactVersion,setPendingCharacters:tw,setPendingMessage:tS,setPendingRoomId:tT,setShowSignUpModal:tM,setShowInsufficientCreditsModal:tx,setIsDatetimeEnabled:tg,setIsWebFetchEnabled:tb,setIsWebSearchEnabled:tA,setIsImageGenerationEnabled:ty,setIsFusionEnabled:th,setIsAdvisorEnabled:tm,setIsSubagentEnabled:tI,setIsShellEnabled:tv,markToolAsUserConfigured:B.markToolAsUserConfigured,setImageGenerationAspectRatio:tu,setImageGenerationConfig:tp,setDatetimeConfig:tc,setFusionConfig:td,setAdvisorConfig:tl,setSubagentConfig:tE,setShellConfig:tC,setWebFetchConfig:tk,setWebSearchConfig:tR,setIsChatNotificationsEnabled:tf,setShouldStickToBottom:t_,togglePromptHistoryCollapsed:t5,toggleRoomManagerCollapsed:re,toggleInternConversationsCollapsed:t7,stopArtifactVersionGeneration:i.stopArtifactVersionGeneration,setExpandedFolders:s.setExpandedFolders,reportArtifactVersionError:n.reportArtifactVersionError,fixArtifactVersionError:a.fixArtifactVersionError,retryArtifactVersion:y.retryArtifactVersion,removeCharacterFromArtifact:g.removeCharacterFromArtifact,setChatMemoryCount:tL},r={set:eh.useChatroomStore.setState,get:ra},Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t(r)])));function ra(){return{...eh.useChatroomStore.getState(),actions:rr}}e.s(["chatroomStoreActions",0,rr,"getChatroomActionState",0,ra],22422)},624665,e=>{"use strict";var t=e.i(462904),r=e.i(81174),a=e.i(693697);async function n(){return void 0!==globalThis.window&&"Notification"in globalThis&&("granted"===globalThis.Notification.permission||"denied"!==globalThis.Notification.permission&&"granted"===await globalThis.Notification.requestPermission())}function s(){return void 0!==globalThis.window&&"Notification"in globalThis&&"granted"===globalThis.Notification.permission}async function i(e,n){let s=globalThis.navigator.serviceWorker;if(!s)return;(0,a.wrap)(()=>s.register("/notification-sw.js")).then(e=>{(0,a.isErr)(e)&&(0,r.wLog)("notification-sw-register-failed",(0,t.errorToLogFields)(e.error))});let i=await s.ready;await i.showNotification(e,n)}function o(e,n){try{let t=new globalThis.Notification(e,n);t.onclick=()=>{globalThis.window.focus(),t.close()}}catch{(0,a.wrap)(()=>i(e,n)).then(e=>{(0,a.isErr)(e)&&(0,r.wLog)("notification-sw-fallback-failed",(0,t.errorToLogFields)(e.error))})}}e.s(["requestNotificationPermission",0,n,"showChatCompletionNotification",0,function(e){s()&&void 0!==globalThis.document&&globalThis.document.hidden&&o("Chat Response Complete",{body:e?`${e} has finished responding`:"Your chat response is ready",icon:"/favicon.ico",tag:"chat-completion",data:{url:"/chat"}})},"showFusionCompletionNotification",0,function(e){s()&&o({"first-pass":"Fusion First Pass Complete","first-pass-error":"Fusion First Pass Failed","final-pass":"Fusion Final Pass Complete"}[e],{body:{"first-pass":"Model responses are ready to review","first-pass-error":"One or more models failed to respond","final-pass":"Your fused answer is ready"}[e],icon:"/favicon.ico",tag:{"first-pass":"fusion-first-pass","first-pass-error":"fusion-first-pass","final-pass":"fusion-final-pass"}[e],data:{url:"/fusion"}})}])}]); //# sourceMappingURL=40uqx6wbdz--4.js.map //# chunkId=01a09e5b-4b37-7f30-86cc-b5ed48b09e3a