@agentlang/lstudio 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-p80zQUD2.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/winston-Bo7SUrrT.js","assets/util-Cr5qx-JB.js","assets/_commonjs-dynamic-modules-DkOKMH7F.js","assets/__vite-browser-external-DLjrMatA.js","assets/winston-dZFS_1to.js","assets/util-DZRIOW0Z-CproX86h.js","assets/util-CNqBjtt6-GUXK7Yxz.js","assets/inherits_browser-nmOknR35-Bp0mvRSL.js","assets/index-69shuAsh-DF18H7zf.js","assets/_commonjsHelpers-B4e78b8K-W3E8ocG7.js","assets/index-D4z_hbl0-CnvKJFzI.js","assets/winston-1qzyIKCb-DL1YEXb3.js","assets/index-DsIu-45t-Bejjlpz4.js","assets/index-DSosZ5sh-Ceejs_jv.js","assets/index-6mKfgpcs-DsgiI2lM.js","assets/_commonjs-dynamic-modules-BpilXLfW-DfYEAvWy.js","assets/index-ChvoNxcO.js","assets/preload-helper-BlTxHScW.js","assets/index-BJBOx-Z---hbiLl7B.js","assets/index.browser-BHPvGrwi-6Mh8eUw-.js","assets/winston-CtxF18qc-CAV82HbO.js","assets/index-DTNuphFO-Bf5Ad1xs.js","assets/index-KGBiLwKE-Doz2tX9S.js","assets/index-Bto-kj6R-C0A_3Pwb.js","assets/index.browser-CYbR8BA1.js","assets/normalizeProvider-CtDY37Q6.js","assets/index--s9Eldt5.js","assets/resolveDefaultsModeConfig-Bt4sfKob.js","assets/index-BFv-M3PX.js","assets/index-BXMy9UIl.js","assets/replService-BJ7jMWR-.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Dv4fZm7h.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/winston-C8DIYdyC.js","assets/util-BzZpaz2f.js","assets/_commonjs-dynamic-modules-DkOKMH7F.js","assets/__vite-browser-external-DLjrMatA.js","assets/winston-BqN1-LuO.js","assets/util-DZRIOW0Z-CproX86h.js","assets/util-CNqBjtt6-GUXK7Yxz.js","assets/inherits_browser-nmOknR35-Bp0mvRSL.js","assets/index-69shuAsh-DF18H7zf.js","assets/_commonjsHelpers-B4e78b8K-W3E8ocG7.js","assets/index-D4z_hbl0-Bi21Cj4J.js","assets/winston-1qzyIKCb-CuWVDLx4.js","assets/index-DsIu-45t-Bejjlpz4.js","assets/index-DSosZ5sh-Ceejs_jv.js","assets/index-6mKfgpcs-DsgiI2lM.js","assets/_commonjs-dynamic-modules-BpilXLfW-DfYEAvWy.js","assets/index-ChvoNxcO.js","assets/preload-helper-BlTxHScW.js","assets/index-BJBOx-Z---hbiLl7B.js","assets/index.browser-BHPvGrwi-6Mh8eUw-.js","assets/winston-CtxF18qc-Bm9o0b6l.js","assets/index-DTNuphFO-Bf5Ad1xs.js","assets/index-KGBiLwKE-Doz2tX9S.js","assets/index-Bto-kj6R-C0A_3Pwb.js","assets/index.browser-q8hb7jya.js","assets/normalizeProvider-CtDY37Q6.js","assets/index-CLtYN2zU.js","assets/resolveDefaultsModeConfig-D8w9mPn_.js","assets/index-BFv-M3PX.js","assets/index-BXMy9UIl.js","assets/replService-DI2pw8YC.js"])))=>i.map(i=>d[i]);
2
2
  import{g as getDefaultExportFromCjs,c as commonjsGlobal,a as getAugmentedNamespace}from"./_commonjsHelpers-D6-XlEtG.js";import chalk from"./index-ChvoNxcO.js";import{_ as __vitePreload}from"./preload-helper-BlTxHScW.js";import{c as crypto$1}from"./__vite-browser-external-DLjrMatA.js";import{E as E$c,L as L$d}from"./inherits_browser-nmOknR35-Bp0mvRSL.js";import{Y as Yr$2}from"./index-6mKfgpcs-DsgiI2lM.js";import{f as f$k,u as u$k,l as l$c}from"./_commonjsHelpers-B4e78b8K-W3E8ocG7.js";import{S as Sr$2,L as Lr$2,D as Dr$2}from"./index-DsIu-45t-Bejjlpz4.js";import{F as Ft$5,G as Gt$2,J as J$a}from"./index-69shuAsh-DF18H7zf.js";import G$a from"./index-BJBOx-Z---hbiLl7B.js";import{g as e$c}from"./index.browser-BHPvGrwi-6Mh8eUw-.js";import{r as r$f}from"./_commonjs-dynamic-modules-BpilXLfW-DfYEAvWy.js";import{I as I$c}from"./index-DSosZ5sh-Ceejs_jv.js";import{r as requireIeee754,a as requireBase64Js,b as require$$0$2,c as commonjsRequire}from"./_commonjs-dynamic-modules-DkOKMH7F.js";function _mergeNamespaces(ya,ma){for(var ba=0;ba<ma.length;ba++){const va=ma[ba];if(typeof va!="string"&&!Array.isArray(va)){for(const Ma in va)if(Ma!=="default"&&!(Ma in ya)){const wl=Object.getOwnPropertyDescriptor(va,Ma);wl&&Object.defineProperty(ya,Ma,wl.get?wl:{enumerable:!0,get:()=>va[Ma]})}}}return Object.freeze(Object.defineProperty(ya,Symbol.toStringTag,{value:"Module"}))}(function(){const ma=document.createElement("link").relList;if(ma&&ma.supports&&ma.supports("modulepreload"))return;for(const Ma of document.querySelectorAll('link[rel="modulepreload"]'))va(Ma);new MutationObserver(Ma=>{for(const wl of Ma)if(wl.type==="childList")for(const El of wl.addedNodes)El.tagName==="LINK"&&El.rel==="modulepreload"&&va(El)}).observe(document,{childList:!0,subtree:!0});function ba(Ma){const wl={};return Ma.integrity&&(wl.integrity=Ma.integrity),Ma.referrerPolicy&&(wl.referrerPolicy=Ma.referrerPolicy),Ma.crossOrigin==="use-credentials"?wl.credentials="include":Ma.crossOrigin==="anonymous"?wl.credentials="omit":wl.credentials="same-origin",wl}function va(Ma){if(Ma.ep)return;Ma.ep=!0;const wl=ba(Ma);fetch(Ma.href,wl)}})();var jsxRuntime={exports:{}},reactJsxRuntime_production={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
@@ -8321,7 +8321,7 @@ workflow TempEvent { ${ya} }`);if(isWorkflowDefinition$1(ba.defs[0]))ma=ba.defs[
8321
8321
  *
8322
8322
  * @author Feross Aboukhadijeh <https://feross.org>
8323
8323
  * @license MIT
8324
- */var hasRequiredBuffer;function requireBuffer(){return hasRequiredBuffer||(hasRequiredBuffer=1,(function(ya){const ma=requireBase64Js(),ba=requireIeee754(),va=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;ya.Buffer=Sl,ya.SlowBuffer=mg,ya.INSPECT_MAX_BYTES=50;const Ma=2147483647;ya.kMaxLength=Ma,Sl.TYPED_ARRAY_SUPPORT=wl(),!Sl.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function wl(){try{const Zpt=new Uint8Array(1),Epe={foo:function(){return 42}};return Object.setPrototypeOf(Epe,Uint8Array.prototype),Object.setPrototypeOf(Zpt,Epe),Zpt.foo()===42}catch{return!1}}Object.defineProperty(Sl.prototype,"parent",{enumerable:!0,get:function(){if(Sl.isBuffer(this))return this.buffer}}),Object.defineProperty(Sl.prototype,"offset",{enumerable:!0,get:function(){if(Sl.isBuffer(this))return this.byteOffset}});function El(Zpt){if(Zpt>Ma)throw new RangeError('The value "'+Zpt+'" is invalid for option "size"');const Epe=new Uint8Array(Zpt);return Object.setPrototypeOf(Epe,Sl.prototype),Epe}function Sl(Zpt,Epe,Tpe){if(typeof Zpt=="number"){if(typeof Epe=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return pp(Zpt)}return Cl(Zpt,Epe,Tpe)}Sl.poolSize=8192;function Cl(Zpt,Epe,Tpe){if(typeof Zpt=="string")return hp(Zpt,Epe);if(ArrayBuffer.isView(Zpt))return Zf(Zpt);if(Zpt==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Zpt);if(rmt(Zpt,ArrayBuffer)||Zpt&&rmt(Zpt.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(rmt(Zpt,SharedArrayBuffer)||Zpt&&rmt(Zpt.buffer,SharedArrayBuffer)))return Jf(Zpt,Epe,Tpe);if(typeof Zpt=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Ypt=Zpt.valueOf&&Zpt.valueOf();if(Ypt!=null&&Ypt!==Zpt)return Sl.from(Ypt,Epe,Tpe);const ipt=pg(Zpt);if(ipt)return ipt;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Zpt[Symbol.toPrimitive]=="function")return Sl.from(Zpt[Symbol.toPrimitive]("string"),Epe,Tpe);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Zpt)}Sl.from=function(Zpt,Epe,Tpe){return Cl(Zpt,Epe,Tpe)},Object.setPrototypeOf(Sl.prototype,Uint8Array.prototype),Object.setPrototypeOf(Sl,Uint8Array);function Mc(Zpt){if(typeof Zpt!="number")throw new TypeError('"size" argument must be of type number');if(Zpt<0)throw new RangeError('The value "'+Zpt+'" is invalid for option "size"')}function dp(Zpt,Epe,Tpe){return Mc(Zpt),Zpt<=0?El(Zpt):Epe!==void 0?typeof Tpe=="string"?El(Zpt).fill(Epe,Tpe):El(Zpt).fill(Epe):El(Zpt)}Sl.alloc=function(Zpt,Epe,Tpe){return dp(Zpt,Epe,Tpe)};function pp(Zpt){return Mc(Zpt),El(Zpt<0?0:hg(Zpt)|0)}Sl.allocUnsafe=function(Zpt){return pp(Zpt)},Sl.allocUnsafeSlow=function(Zpt){return pp(Zpt)};function hp(Zpt,Epe){if((typeof Epe!="string"||Epe==="")&&(Epe="utf8"),!Sl.isEncoding(Epe))throw new TypeError("Unknown encoding: "+Epe);const Tpe=gg(Zpt,Epe)|0;let Ypt=El(Tpe);const ipt=Ypt.write(Zpt,Epe);return ipt!==Tpe&&(Ypt=Ypt.slice(0,ipt)),Ypt}function Ef(Zpt){const Epe=Zpt.length<0?0:hg(Zpt.length)|0,Tpe=El(Epe);for(let Ypt=0;Ypt<Epe;Ypt+=1)Tpe[Ypt]=Zpt[Ypt]&255;return Tpe}function Zf(Zpt){if(rmt(Zpt,Uint8Array)){const Epe=new Uint8Array(Zpt);return Jf(Epe.buffer,Epe.byteOffset,Epe.byteLength)}return Ef(Zpt)}function Jf(Zpt,Epe,Tpe){if(Epe<0||Zpt.byteLength<Epe)throw new RangeError('"offset" is outside of buffer bounds');if(Zpt.byteLength<Epe+(Tpe||0))throw new RangeError('"length" is outside of buffer bounds');let Ypt;return Epe===void 0&&Tpe===void 0?Ypt=new Uint8Array(Zpt):Tpe===void 0?Ypt=new Uint8Array(Zpt,Epe):Ypt=new Uint8Array(Zpt,Epe,Tpe),Object.setPrototypeOf(Ypt,Sl.prototype),Ypt}function pg(Zpt){if(Sl.isBuffer(Zpt)){const Epe=hg(Zpt.length)|0,Tpe=El(Epe);return Tpe.length===0||Zpt.copy(Tpe,0,0,Epe),Tpe}if(Zpt.length!==void 0)return typeof Zpt.length!="number"||pmt(Zpt.length)?El(0):Ef(Zpt);if(Zpt.type==="Buffer"&&Array.isArray(Zpt.data))return Ef(Zpt.data)}function hg(Zpt){if(Zpt>=Ma)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ma.toString(16)+" bytes");return Zpt|0}function mg(Zpt){return+Zpt!=Zpt&&(Zpt=0),Sl.alloc(+Zpt)}Sl.isBuffer=function(Epe){return Epe!=null&&Epe._isBuffer===!0&&Epe!==Sl.prototype},Sl.compare=function(Epe,Tpe){if(rmt(Epe,Uint8Array)&&(Epe=Sl.from(Epe,Epe.offset,Epe.byteLength)),rmt(Tpe,Uint8Array)&&(Tpe=Sl.from(Tpe,Tpe.offset,Tpe.byteLength)),!Sl.isBuffer(Epe)||!Sl.isBuffer(Tpe))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Epe===Tpe)return 0;let Ypt=Epe.length,ipt=Tpe.length;for(let Mpe=0,Ope=Math.min(Ypt,ipt);Mpe<Ope;++Mpe)if(Epe[Mpe]!==Tpe[Mpe]){Ypt=Epe[Mpe],ipt=Tpe[Mpe];break}return Ypt<ipt?-1:ipt<Ypt?1:0},Sl.isEncoding=function(Epe){switch(String(Epe).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Sl.concat=function(Epe,Tpe){if(!Array.isArray(Epe))throw new TypeError('"list" argument must be an Array of Buffers');if(Epe.length===0)return Sl.alloc(0);let Ypt;if(Tpe===void 0)for(Tpe=0,Ypt=0;Ypt<Epe.length;++Ypt)Tpe+=Epe[Ypt].length;const ipt=Sl.allocUnsafe(Tpe);let Mpe=0;for(Ypt=0;Ypt<Epe.length;++Ypt){let Ope=Epe[Ypt];if(rmt(Ope,Uint8Array))Mpe+Ope.length>ipt.length?(Sl.isBuffer(Ope)||(Ope=Sl.from(Ope)),Ope.copy(ipt,Mpe)):Uint8Array.prototype.set.call(ipt,Ope,Mpe);else if(Sl.isBuffer(Ope))Ope.copy(ipt,Mpe);else throw new TypeError('"list" argument must be an Array of Buffers');Mpe+=Ope.length}return ipt};function gg(Zpt,Epe){if(Sl.isBuffer(Zpt))return Zpt.length;if(ArrayBuffer.isView(Zpt)||rmt(Zpt,ArrayBuffer))return Zpt.byteLength;if(typeof Zpt!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Zpt);const Tpe=Zpt.length,Ypt=arguments.length>2&&arguments[2]===!0;if(!Ypt&&Tpe===0)return 0;let ipt=!1;for(;;)switch(Epe){case"ascii":case"latin1":case"binary":return Tpe;case"utf8":case"utf-8":return Sht(Zpt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Tpe*2;case"hex":return Tpe>>>1;case"base64":return Rmt(Zpt).length;default:if(ipt)return Ypt?-1:Sht(Zpt).length;Epe=(""+Epe).toLowerCase(),ipt=!0}}Sl.byteLength=gg;function yg(Zpt,Epe,Tpe){let Ypt=!1;if((Epe===void 0||Epe<0)&&(Epe=0),Epe>this.length||((Tpe===void 0||Tpe>this.length)&&(Tpe=this.length),Tpe<=0)||(Tpe>>>=0,Epe>>>=0,Tpe<=Epe))return"";for(Zpt||(Zpt="utf8");;)switch(Zpt){case"hex":return $4(this,Epe,Tpe);case"utf8":case"utf-8":return aE(this,Epe,Tpe);case"ascii":return sN(this,Epe,Tpe);case"latin1":case"binary":return AF(this,Epe,Tpe);case"base64":return O_(this,Epe,Tpe);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return cN(this,Epe,Tpe);default:if(Ypt)throw new TypeError("Unknown encoding: "+Zpt);Zpt=(Zpt+"").toLowerCase(),Ypt=!0}}Sl.prototype._isBuffer=!0;function ay(Zpt,Epe,Tpe){const Ypt=Zpt[Epe];Zpt[Epe]=Zpt[Tpe],Zpt[Tpe]=Ypt}Sl.prototype.swap16=function(){const Epe=this.length;if(Epe%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Tpe=0;Tpe<Epe;Tpe+=2)ay(this,Tpe,Tpe+1);return this},Sl.prototype.swap32=function(){const Epe=this.length;if(Epe%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let Tpe=0;Tpe<Epe;Tpe+=4)ay(this,Tpe,Tpe+3),ay(this,Tpe+1,Tpe+2);return this},Sl.prototype.swap64=function(){const Epe=this.length;if(Epe%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let Tpe=0;Tpe<Epe;Tpe+=8)ay(this,Tpe,Tpe+7),ay(this,Tpe+1,Tpe+6),ay(this,Tpe+2,Tpe+5),ay(this,Tpe+3,Tpe+4);return this},Sl.prototype.toString=function(){const Epe=this.length;return Epe===0?"":arguments.length===0?aE(this,0,Epe):yg.apply(this,arguments)},Sl.prototype.toLocaleString=Sl.prototype.toString,Sl.prototype.equals=function(Epe){if(!Sl.isBuffer(Epe))throw new TypeError("Argument must be a Buffer");return this===Epe?!0:Sl.compare(this,Epe)===0},Sl.prototype.inspect=function(){let Epe="";const Tpe=ya.INSPECT_MAX_BYTES;return Epe=this.toString("hex",0,Tpe).replace(/(.{2})/g,"$1 ").trim(),this.length>Tpe&&(Epe+=" ... "),"<Buffer "+Epe+">"},va&&(Sl.prototype[va]=Sl.prototype.inspect),Sl.prototype.compare=function(Epe,Tpe,Ypt,ipt,Mpe){if(rmt(Epe,Uint8Array)&&(Epe=Sl.from(Epe,Epe.offset,Epe.byteLength)),!Sl.isBuffer(Epe))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Epe);if(Tpe===void 0&&(Tpe=0),Ypt===void 0&&(Ypt=Epe?Epe.length:0),ipt===void 0&&(ipt=0),Mpe===void 0&&(Mpe=this.length),Tpe<0||Ypt>Epe.length||ipt<0||Mpe>this.length)throw new RangeError("out of range index");if(ipt>=Mpe&&Tpe>=Ypt)return 0;if(ipt>=Mpe)return-1;if(Tpe>=Ypt)return 1;if(Tpe>>>=0,Ypt>>>=0,ipt>>>=0,Mpe>>>=0,this===Epe)return 0;let Ope=Mpe-ipt,Wpt=Ypt-Tpe;const Qpt=Math.min(Ope,Wpt),Aht=this.slice(ipt,Mpe),Kpt=Epe.slice(Tpe,Ypt);for(let imt=0;imt<Qpt;++imt)if(Aht[imt]!==Kpt[imt]){Ope=Aht[imt],Wpt=Kpt[imt];break}return Ope<Wpt?-1:Wpt<Ope?1:0};function ly(Zpt,Epe,Tpe,Ypt,ipt){if(Zpt.length===0)return-1;if(typeof Tpe=="string"?(Ypt=Tpe,Tpe=0):Tpe>2147483647?Tpe=2147483647:Tpe<-2147483648&&(Tpe=-2147483648),Tpe=+Tpe,pmt(Tpe)&&(Tpe=ipt?0:Zpt.length-1),Tpe<0&&(Tpe=Zpt.length+Tpe),Tpe>=Zpt.length){if(ipt)return-1;Tpe=Zpt.length-1}else if(Tpe<0)if(ipt)Tpe=0;else return-1;if(typeof Epe=="string"&&(Epe=Sl.from(Epe,Ypt)),Sl.isBuffer(Epe))return Epe.length===0?-1:cy(Zpt,Epe,Tpe,Ypt,ipt);if(typeof Epe=="number")return Epe=Epe&255,typeof Uint8Array.prototype.indexOf=="function"?ipt?Uint8Array.prototype.indexOf.call(Zpt,Epe,Tpe):Uint8Array.prototype.lastIndexOf.call(Zpt,Epe,Tpe):cy(Zpt,[Epe],Tpe,Ypt,ipt);throw new TypeError("val must be string, number or Buffer")}function cy(Zpt,Epe,Tpe,Ypt,ipt){let Mpe=1,Ope=Zpt.length,Wpt=Epe.length;if(Ypt!==void 0&&(Ypt=String(Ypt).toLowerCase(),Ypt==="ucs2"||Ypt==="ucs-2"||Ypt==="utf16le"||Ypt==="utf-16le")){if(Zpt.length<2||Epe.length<2)return-1;Mpe=2,Ope/=2,Wpt/=2,Tpe/=2}function Qpt(Kpt,imt){return Mpe===1?Kpt[imt]:Kpt.readUInt16BE(imt*Mpe)}let Aht;if(ipt){let Kpt=-1;for(Aht=Tpe;Aht<Ope;Aht++)if(Qpt(Zpt,Aht)===Qpt(Epe,Kpt===-1?0:Aht-Kpt)){if(Kpt===-1&&(Kpt=Aht),Aht-Kpt+1===Wpt)return Kpt*Mpe}else Kpt!==-1&&(Aht-=Aht-Kpt),Kpt=-1}else for(Tpe+Wpt>Ope&&(Tpe=Ope-Wpt),Aht=Tpe;Aht>=0;Aht--){let Kpt=!0;for(let imt=0;imt<Wpt;imt++)if(Qpt(Zpt,Aht+imt)!==Qpt(Epe,imt)){Kpt=!1;break}if(Kpt)return Aht}return-1}Sl.prototype.includes=function(Epe,Tpe,Ypt){return this.indexOf(Epe,Tpe,Ypt)!==-1},Sl.prototype.indexOf=function(Epe,Tpe,Ypt){return ly(this,Epe,Tpe,Ypt,!0)},Sl.prototype.lastIndexOf=function(Epe,Tpe,Ypt){return ly(this,Epe,Tpe,Ypt,!1)};function q1(Zpt,Epe,Tpe,Ypt){Tpe=Number(Tpe)||0;const ipt=Zpt.length-Tpe;Ypt?(Ypt=Number(Ypt),Ypt>ipt&&(Ypt=ipt)):Ypt=ipt;const Mpe=Epe.length;Ypt>Mpe/2&&(Ypt=Mpe/2);let Ope;for(Ope=0;Ope<Ypt;++Ope){const Wpt=parseInt(Epe.substr(Ope*2,2),16);if(pmt(Wpt))return Ope;Zpt[Tpe+Ope]=Wpt}return Ope}function r0(Zpt,Epe,Tpe,Ypt){return mmt(Sht(Epe,Zpt.length-Tpe),Zpt,Tpe,Ypt)}function uE(Zpt,Epe,Tpe,Ypt){return mmt(bmt(Epe),Zpt,Tpe,Ypt)}function V1(Zpt,Epe,Tpe,Ypt){return mmt(Rmt(Epe),Zpt,Tpe,Ypt)}function H1(Zpt,Epe,Tpe,Ypt){return mmt(xmt(Epe,Zpt.length-Tpe),Zpt,Tpe,Ypt)}Sl.prototype.write=function(Epe,Tpe,Ypt,ipt){if(Tpe===void 0)ipt="utf8",Ypt=this.length,Tpe=0;else if(Ypt===void 0&&typeof Tpe=="string")ipt=Tpe,Ypt=this.length,Tpe=0;else if(isFinite(Tpe))Tpe=Tpe>>>0,isFinite(Ypt)?(Ypt=Ypt>>>0,ipt===void 0&&(ipt="utf8")):(ipt=Ypt,Ypt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Mpe=this.length-Tpe;if((Ypt===void 0||Ypt>Mpe)&&(Ypt=Mpe),Epe.length>0&&(Ypt<0||Tpe<0)||Tpe>this.length)throw new RangeError("Attempt to write outside buffer bounds");ipt||(ipt="utf8");let Ope=!1;for(;;)switch(ipt){case"hex":return q1(this,Epe,Tpe,Ypt);case"utf8":case"utf-8":return r0(this,Epe,Tpe,Ypt);case"ascii":case"latin1":case"binary":return uE(this,Epe,Tpe,Ypt);case"base64":return V1(this,Epe,Tpe,Ypt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H1(this,Epe,Tpe,Ypt);default:if(Ope)throw new TypeError("Unknown encoding: "+ipt);ipt=(""+ipt).toLowerCase(),Ope=!0}},Sl.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O_(Zpt,Epe,Tpe){return Epe===0&&Tpe===Zpt.length?ma.fromByteArray(Zpt):ma.fromByteArray(Zpt.slice(Epe,Tpe))}function aE(Zpt,Epe,Tpe){Tpe=Math.min(Zpt.length,Tpe);const Ypt=[];let ipt=Epe;for(;ipt<Tpe;){const Mpe=Zpt[ipt];let Ope=null,Wpt=Mpe>239?4:Mpe>223?3:Mpe>191?2:1;if(ipt+Wpt<=Tpe){let Qpt,Aht,Kpt,imt;switch(Wpt){case 1:Mpe<128&&(Ope=Mpe);break;case 2:Qpt=Zpt[ipt+1],(Qpt&192)===128&&(imt=(Mpe&31)<<6|Qpt&63,imt>127&&(Ope=imt));break;case 3:Qpt=Zpt[ipt+1],Aht=Zpt[ipt+2],(Qpt&192)===128&&(Aht&192)===128&&(imt=(Mpe&15)<<12|(Qpt&63)<<6|Aht&63,imt>2047&&(imt<55296||imt>57343)&&(Ope=imt));break;case 4:Qpt=Zpt[ipt+1],Aht=Zpt[ipt+2],Kpt=Zpt[ipt+3],(Qpt&192)===128&&(Aht&192)===128&&(Kpt&192)===128&&(imt=(Mpe&15)<<18|(Qpt&63)<<12|(Aht&63)<<6|Kpt&63,imt>65535&&imt<1114112&&(Ope=imt))}}Ope===null?(Ope=65533,Wpt=1):Ope>65535&&(Ope-=65536,Ypt.push(Ope>>>10&1023|55296),Ope=56320|Ope&1023),Ypt.push(Ope),ipt+=Wpt}return M_(Ypt)}const P_=4096;function M_(Zpt){const Epe=Zpt.length;if(Epe<=P_)return String.fromCharCode.apply(String,Zpt);let Tpe="",Ypt=0;for(;Ypt<Epe;)Tpe+=String.fromCharCode.apply(String,Zpt.slice(Ypt,Ypt+=P_));return Tpe}function sN(Zpt,Epe,Tpe){let Ypt="";Tpe=Math.min(Zpt.length,Tpe);for(let ipt=Epe;ipt<Tpe;++ipt)Ypt+=String.fromCharCode(Zpt[ipt]&127);return Ypt}function AF(Zpt,Epe,Tpe){let Ypt="";Tpe=Math.min(Zpt.length,Tpe);for(let ipt=Epe;ipt<Tpe;++ipt)Ypt+=String.fromCharCode(Zpt[ipt]);return Ypt}function $4(Zpt,Epe,Tpe){const Ypt=Zpt.length;(!Epe||Epe<0)&&(Epe=0),(!Tpe||Tpe<0||Tpe>Ypt)&&(Tpe=Ypt);let ipt="";for(let Mpe=Epe;Mpe<Tpe;++Mpe)ipt+=Tmt[Zpt[Mpe]];return ipt}function cN(Zpt,Epe,Tpe){const Ypt=Zpt.slice(Epe,Tpe);let ipt="";for(let Mpe=0;Mpe<Ypt.length-1;Mpe+=2)ipt+=String.fromCharCode(Ypt[Mpe]+Ypt[Mpe+1]*256);return ipt}Sl.prototype.slice=function(Epe,Tpe){const Ypt=this.length;Epe=~~Epe,Tpe=Tpe===void 0?Ypt:~~Tpe,Epe<0?(Epe+=Ypt,Epe<0&&(Epe=0)):Epe>Ypt&&(Epe=Ypt),Tpe<0?(Tpe+=Ypt,Tpe<0&&(Tpe=0)):Tpe>Ypt&&(Tpe=Ypt),Tpe<Epe&&(Tpe=Epe);const ipt=this.subarray(Epe,Tpe);return Object.setPrototypeOf(ipt,Sl.prototype),ipt};function R4(Zpt,Epe,Tpe){if(Zpt%1!==0||Zpt<0)throw new RangeError("offset is not uint");if(Zpt+Epe>Tpe)throw new RangeError("Trying to access beyond buffer length")}Sl.prototype.readUintLE=Sl.prototype.readUIntLE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe],Mpe=1,Ope=0;for(;++Ope<Tpe&&(Mpe*=256);)ipt+=this[Epe+Ope]*Mpe;return ipt},Sl.prototype.readUintBE=Sl.prototype.readUIntBE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe+--Tpe],Mpe=1;for(;Tpe>0&&(Mpe*=256);)ipt+=this[Epe+--Tpe]*Mpe;return ipt},Sl.prototype.readUint8=Sl.prototype.readUInt8=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,1,this.length),this[Epe]},Sl.prototype.readUint16LE=Sl.prototype.readUInt16LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,2,this.length),this[Epe]|this[Epe+1]<<8},Sl.prototype.readUint16BE=Sl.prototype.readUInt16BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,2,this.length),this[Epe]<<8|this[Epe+1]},Sl.prototype.readUint32LE=Sl.prototype.readUInt32LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),(this[Epe]|this[Epe+1]<<8|this[Epe+2]<<16)+this[Epe+3]*16777216},Sl.prototype.readUint32BE=Sl.prototype.readUInt32BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]*16777216+(this[Epe+1]<<16|this[Epe+2]<<8|this[Epe+3])},Sl.prototype.readBigUInt64LE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=Tpe+this[++Epe]*2**8+this[++Epe]*2**16+this[++Epe]*2**24,Mpe=this[++Epe]+this[++Epe]*2**8+this[++Epe]*2**16+Ypt*2**24;return BigInt(ipt)+(BigInt(Mpe)<<BigInt(32))}),Sl.prototype.readBigUInt64BE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=Tpe*2**24+this[++Epe]*2**16+this[++Epe]*2**8+this[++Epe],Mpe=this[++Epe]*2**24+this[++Epe]*2**16+this[++Epe]*2**8+Ypt;return(BigInt(ipt)<<BigInt(32))+BigInt(Mpe)}),Sl.prototype.readIntLE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe],Mpe=1,Ope=0;for(;++Ope<Tpe&&(Mpe*=256);)ipt+=this[Epe+Ope]*Mpe;return Mpe*=128,ipt>=Mpe&&(ipt-=Math.pow(2,8*Tpe)),ipt},Sl.prototype.readIntBE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=Tpe,Mpe=1,Ope=this[Epe+--ipt];for(;ipt>0&&(Mpe*=256);)Ope+=this[Epe+--ipt]*Mpe;return Mpe*=128,Ope>=Mpe&&(Ope-=Math.pow(2,8*Tpe)),Ope},Sl.prototype.readInt8=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,1,this.length),this[Epe]&128?(255-this[Epe]+1)*-1:this[Epe]},Sl.prototype.readInt16LE=function(Epe,Tpe){Epe=Epe>>>0,Tpe||R4(Epe,2,this.length);const Ypt=this[Epe]|this[Epe+1]<<8;return Ypt&32768?Ypt|4294901760:Ypt},Sl.prototype.readInt16BE=function(Epe,Tpe){Epe=Epe>>>0,Tpe||R4(Epe,2,this.length);const Ypt=this[Epe+1]|this[Epe]<<8;return Ypt&32768?Ypt|4294901760:Ypt},Sl.prototype.readInt32LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]|this[Epe+1]<<8|this[Epe+2]<<16|this[Epe+3]<<24},Sl.prototype.readInt32BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]<<24|this[Epe+1]<<16|this[Epe+2]<<8|this[Epe+3]},Sl.prototype.readBigInt64LE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=this[Epe+4]+this[Epe+5]*2**8+this[Epe+6]*2**16+(Ypt<<24);return(BigInt(ipt)<<BigInt(32))+BigInt(Tpe+this[++Epe]*2**8+this[++Epe]*2**16+this[++Epe]*2**24)}),Sl.prototype.readBigInt64BE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=(Tpe<<24)+this[++Epe]*2**16+this[++Epe]*2**8+this[++Epe];return(BigInt(ipt)<<BigInt(32))+BigInt(this[++Epe]*2**24+this[++Epe]*2**16+this[++Epe]*2**8+Ypt)}),Sl.prototype.readFloatLE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),ba.read(this,Epe,!0,23,4)},Sl.prototype.readFloatBE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),ba.read(this,Epe,!1,23,4)},Sl.prototype.readDoubleLE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,8,this.length),ba.read(this,Epe,!0,52,8)},Sl.prototype.readDoubleBE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,8,this.length),ba.read(this,Epe,!1,52,8)};function k4(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(!Sl.isBuffer(Zpt))throw new TypeError('"buffer" argument must be a Buffer instance');if(Epe>ipt||Epe<Mpe)throw new RangeError('"value" argument is out of bounds');if(Tpe+Ypt>Zpt.length)throw new RangeError("Index out of range")}Sl.prototype.writeUintLE=Sl.prototype.writeUIntLE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,Ypt=Ypt>>>0,!ipt){const Wpt=Math.pow(2,8*Ypt)-1;k4(this,Epe,Tpe,Ypt,Wpt,0)}let Mpe=1,Ope=0;for(this[Tpe]=Epe&255;++Ope<Ypt&&(Mpe*=256);)this[Tpe+Ope]=Epe/Mpe&255;return Tpe+Ypt},Sl.prototype.writeUintBE=Sl.prototype.writeUIntBE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,Ypt=Ypt>>>0,!ipt){const Wpt=Math.pow(2,8*Ypt)-1;k4(this,Epe,Tpe,Ypt,Wpt,0)}let Mpe=Ypt-1,Ope=1;for(this[Tpe+Mpe]=Epe&255;--Mpe>=0&&(Ope*=256);)this[Tpe+Mpe]=Epe/Ope&255;return Tpe+Ypt},Sl.prototype.writeUint8=Sl.prototype.writeUInt8=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,1,255,0),this[Tpe]=Epe&255,Tpe+1},Sl.prototype.writeUint16LE=Sl.prototype.writeUInt16LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,65535,0),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,Tpe+2},Sl.prototype.writeUint16BE=Sl.prototype.writeUInt16BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,65535,0),this[Tpe]=Epe>>>8,this[Tpe+1]=Epe&255,Tpe+2},Sl.prototype.writeUint32LE=Sl.prototype.writeUInt32LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,4294967295,0),this[Tpe+3]=Epe>>>24,this[Tpe+2]=Epe>>>16,this[Tpe+1]=Epe>>>8,this[Tpe]=Epe&255,Tpe+4},Sl.prototype.writeUint32BE=Sl.prototype.writeUInt32BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,4294967295,0),this[Tpe]=Epe>>>24,this[Tpe+1]=Epe>>>16,this[Tpe+2]=Epe>>>8,this[Tpe+3]=Epe&255,Tpe+4};function AQ(Zpt,Epe,Tpe,Ypt,ipt){wpe(Epe,Ypt,ipt,Zpt,Tpe,7);let Mpe=Number(Epe&BigInt(4294967295));Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe;let Ope=Number(Epe>>BigInt(32)&BigInt(4294967295));return Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Tpe}function uN(Zpt,Epe,Tpe,Ypt,ipt){wpe(Epe,Ypt,ipt,Zpt,Tpe,7);let Mpe=Number(Epe&BigInt(4294967295));Zpt[Tpe+7]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+6]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+5]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+4]=Mpe;let Ope=Number(Epe>>BigInt(32)&BigInt(4294967295));return Zpt[Tpe+3]=Ope,Ope=Ope>>8,Zpt[Tpe+2]=Ope,Ope=Ope>>8,Zpt[Tpe+1]=Ope,Ope=Ope>>8,Zpt[Tpe]=Ope,Tpe+8}Sl.prototype.writeBigUInt64LE=Cmt(function(Epe,Tpe=0){return AQ(this,Epe,Tpe,BigInt(0),BigInt("0xffffffffffffffff"))}),Sl.prototype.writeBigUInt64BE=Cmt(function(Epe,Tpe=0){return uN(this,Epe,Tpe,BigInt(0),BigInt("0xffffffffffffffff"))}),Sl.prototype.writeIntLE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,!ipt){const Qpt=Math.pow(2,8*Ypt-1);k4(this,Epe,Tpe,Ypt,Qpt-1,-Qpt)}let Mpe=0,Ope=1,Wpt=0;for(this[Tpe]=Epe&255;++Mpe<Ypt&&(Ope*=256);)Epe<0&&Wpt===0&&this[Tpe+Mpe-1]!==0&&(Wpt=1),this[Tpe+Mpe]=(Epe/Ope>>0)-Wpt&255;return Tpe+Ypt},Sl.prototype.writeIntBE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,!ipt){const Qpt=Math.pow(2,8*Ypt-1);k4(this,Epe,Tpe,Ypt,Qpt-1,-Qpt)}let Mpe=Ypt-1,Ope=1,Wpt=0;for(this[Tpe+Mpe]=Epe&255;--Mpe>=0&&(Ope*=256);)Epe<0&&Wpt===0&&this[Tpe+Mpe+1]!==0&&(Wpt=1),this[Tpe+Mpe]=(Epe/Ope>>0)-Wpt&255;return Tpe+Ypt},Sl.prototype.writeInt8=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,1,127,-128),Epe<0&&(Epe=255+Epe+1),this[Tpe]=Epe&255,Tpe+1},Sl.prototype.writeInt16LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,32767,-32768),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,Tpe+2},Sl.prototype.writeInt16BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,32767,-32768),this[Tpe]=Epe>>>8,this[Tpe+1]=Epe&255,Tpe+2},Sl.prototype.writeInt32LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,2147483647,-2147483648),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,this[Tpe+2]=Epe>>>16,this[Tpe+3]=Epe>>>24,Tpe+4},Sl.prototype.writeInt32BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,2147483647,-2147483648),Epe<0&&(Epe=4294967295+Epe+1),this[Tpe]=Epe>>>24,this[Tpe+1]=Epe>>>16,this[Tpe+2]=Epe>>>8,this[Tpe+3]=Epe&255,Tpe+4},Sl.prototype.writeBigInt64LE=Cmt(function(Epe,Tpe=0){return AQ(this,Epe,Tpe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),Sl.prototype.writeBigInt64BE=Cmt(function(Epe,Tpe=0){return uN(this,Epe,Tpe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function uee(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(Tpe+Ypt>Zpt.length)throw new RangeError("Index out of range");if(Tpe<0)throw new RangeError("Index out of range")}function $pe(Zpt,Epe,Tpe,Ypt,ipt){return Epe=+Epe,Tpe=Tpe>>>0,ipt||uee(Zpt,Epe,Tpe,4),ba.write(Zpt,Epe,Tpe,Ypt,23,4),Tpe+4}Sl.prototype.writeFloatLE=function(Epe,Tpe,Ypt){return $pe(this,Epe,Tpe,!0,Ypt)},Sl.prototype.writeFloatBE=function(Epe,Tpe,Ypt){return $pe(this,Epe,Tpe,!1,Ypt)};function Ppe(Zpt,Epe,Tpe,Ypt,ipt){return Epe=+Epe,Tpe=Tpe>>>0,ipt||uee(Zpt,Epe,Tpe,8),ba.write(Zpt,Epe,Tpe,Ypt,52,8),Tpe+8}Sl.prototype.writeDoubleLE=function(Epe,Tpe,Ypt){return Ppe(this,Epe,Tpe,!0,Ypt)},Sl.prototype.writeDoubleBE=function(Epe,Tpe,Ypt){return Ppe(this,Epe,Tpe,!1,Ypt)},Sl.prototype.copy=function(Epe,Tpe,Ypt,ipt){if(!Sl.isBuffer(Epe))throw new TypeError("argument should be a Buffer");if(Ypt||(Ypt=0),!ipt&&ipt!==0&&(ipt=this.length),Tpe>=Epe.length&&(Tpe=Epe.length),Tpe||(Tpe=0),ipt>0&&ipt<Ypt&&(ipt=Ypt),ipt===Ypt||Epe.length===0||this.length===0)return 0;if(Tpe<0)throw new RangeError("targetStart out of bounds");if(Ypt<0||Ypt>=this.length)throw new RangeError("Index out of range");if(ipt<0)throw new RangeError("sourceEnd out of bounds");ipt>this.length&&(ipt=this.length),Epe.length-Tpe<ipt-Ypt&&(ipt=Epe.length-Tpe+Ypt);const Mpe=ipt-Ypt;return this===Epe&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(Tpe,Ypt,ipt):Uint8Array.prototype.set.call(Epe,this.subarray(Ypt,ipt),Tpe),Mpe},Sl.prototype.fill=function(Epe,Tpe,Ypt,ipt){if(typeof Epe=="string"){if(typeof Tpe=="string"?(ipt=Tpe,Tpe=0,Ypt=this.length):typeof Ypt=="string"&&(ipt=Ypt,Ypt=this.length),ipt!==void 0&&typeof ipt!="string")throw new TypeError("encoding must be a string");if(typeof ipt=="string"&&!Sl.isEncoding(ipt))throw new TypeError("Unknown encoding: "+ipt);if(Epe.length===1){const Ope=Epe.charCodeAt(0);(ipt==="utf8"&&Ope<128||ipt==="latin1")&&(Epe=Ope)}}else typeof Epe=="number"?Epe=Epe&255:typeof Epe=="boolean"&&(Epe=Number(Epe));if(Tpe<0||this.length<Tpe||this.length<Ypt)throw new RangeError("Out of range index");if(Ypt<=Tpe)return this;Tpe=Tpe>>>0,Ypt=Ypt===void 0?this.length:Ypt>>>0,Epe||(Epe=0);let Mpe;if(typeof Epe=="number")for(Mpe=Tpe;Mpe<Ypt;++Mpe)this[Mpe]=Epe;else{const Ope=Sl.isBuffer(Epe)?Epe:Sl.from(Epe,ipt),Wpt=Ope.length;if(Wpt===0)throw new TypeError('The value "'+Epe+'" is invalid for argument "value"');for(Mpe=0;Mpe<Ypt-Tpe;++Mpe)this[Mpe+Tpe]=Ope[Mpe%Wpt]}return this};const e2e={};function Vpt(Zpt,Epe,Tpe){e2e[Zpt]=class extends Tpe{constructor(){super(),Object.defineProperty(this,"message",{value:Epe.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${Zpt}]`,this.stack,delete this.name}get code(){return Zpt}set code(ipt){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:ipt,writable:!0})}toString(){return`${this.name} [${Zpt}]: ${this.message}`}}}Vpt("ERR_BUFFER_OUT_OF_BOUNDS",function(Zpt){return Zpt?`${Zpt} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Vpt("ERR_INVALID_ARG_TYPE",function(Zpt,Epe){return`The "${Zpt}" argument must be of type number. Received type ${typeof Epe}`},TypeError),Vpt("ERR_OUT_OF_RANGE",function(Zpt,Epe,Tpe){let Ypt=`The value of "${Zpt}" is out of range.`,ipt=Tpe;return Number.isInteger(Tpe)&&Math.abs(Tpe)>2**32?ipt=Gpt(String(Tpe)):typeof Tpe=="bigint"&&(ipt=String(Tpe),(Tpe>BigInt(2)**BigInt(32)||Tpe<-(BigInt(2)**BigInt(32)))&&(ipt=Gpt(ipt)),ipt+="n"),Ypt+=` It must be ${Epe}. Received ${ipt}`,Ypt},RangeError);function Gpt(Zpt){let Epe="",Tpe=Zpt.length;const Ypt=Zpt[0]==="-"?1:0;for(;Tpe>=Ypt+4;Tpe-=3)Epe=`_${Zpt.slice(Tpe-3,Tpe)}${Epe}`;return`${Zpt.slice(0,Tpe)}${Epe}`}function xpe(Zpt,Epe,Tpe){t2e(Epe,"offset"),(Zpt[Epe]===void 0||Zpt[Epe+Tpe]===void 0)&&Q_e(Epe,Zpt.length-(Tpe+1))}function wpe(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(Zpt>Tpe||Zpt<Epe){const Ope=typeof Epe=="bigint"?"n":"";let Wpt;throw Epe===0||Epe===BigInt(0)?Wpt=`>= 0${Ope} and < 2${Ope} ** ${(Mpe+1)*8}${Ope}`:Wpt=`>= -(2${Ope} ** ${(Mpe+1)*8-1}${Ope}) and < 2 ** ${(Mpe+1)*8-1}${Ope}`,new e2e.ERR_OUT_OF_RANGE("value",Wpt,Zpt)}xpe(Ypt,ipt,Mpe)}function t2e(Zpt,Epe){if(typeof Zpt!="number")throw new e2e.ERR_INVALID_ARG_TYPE(Epe,"number",Zpt)}function Q_e(Zpt,Epe,Tpe){throw Math.floor(Zpt)!==Zpt?(t2e(Zpt,Tpe),new e2e.ERR_OUT_OF_RANGE("offset","an integer",Zpt)):Epe<0?new e2e.ERR_BUFFER_OUT_OF_BOUNDS:new e2e.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${Epe}`,Zpt)}const Rht=/[^+/0-9A-Za-z-_]/g;function tmt(Zpt){if(Zpt=Zpt.split("=")[0],Zpt=Zpt.trim().replace(Rht,""),Zpt.length<2)return"";for(;Zpt.length%4!==0;)Zpt=Zpt+"=";return Zpt}function Sht(Zpt,Epe){Epe=Epe||1/0;let Tpe;const Ypt=Zpt.length;let ipt=null;const Mpe=[];for(let Ope=0;Ope<Ypt;++Ope){if(Tpe=Zpt.charCodeAt(Ope),Tpe>55295&&Tpe<57344){if(!ipt){if(Tpe>56319){(Epe-=3)>-1&&Mpe.push(239,191,189);continue}else if(Ope+1===Ypt){(Epe-=3)>-1&&Mpe.push(239,191,189);continue}ipt=Tpe;continue}if(Tpe<56320){(Epe-=3)>-1&&Mpe.push(239,191,189),ipt=Tpe;continue}Tpe=(ipt-55296<<10|Tpe-56320)+65536}else ipt&&(Epe-=3)>-1&&Mpe.push(239,191,189);if(ipt=null,Tpe<128){if((Epe-=1)<0)break;Mpe.push(Tpe)}else if(Tpe<2048){if((Epe-=2)<0)break;Mpe.push(Tpe>>6|192,Tpe&63|128)}else if(Tpe<65536){if((Epe-=3)<0)break;Mpe.push(Tpe>>12|224,Tpe>>6&63|128,Tpe&63|128)}else if(Tpe<1114112){if((Epe-=4)<0)break;Mpe.push(Tpe>>18|240,Tpe>>12&63|128,Tpe>>6&63|128,Tpe&63|128)}else throw new Error("Invalid code point")}return Mpe}function bmt(Zpt){const Epe=[];for(let Tpe=0;Tpe<Zpt.length;++Tpe)Epe.push(Zpt.charCodeAt(Tpe)&255);return Epe}function xmt(Zpt,Epe){let Tpe,Ypt,ipt;const Mpe=[];for(let Ope=0;Ope<Zpt.length&&!((Epe-=2)<0);++Ope)Tpe=Zpt.charCodeAt(Ope),Ypt=Tpe>>8,ipt=Tpe%256,Mpe.push(ipt),Mpe.push(Ypt);return Mpe}function Rmt(Zpt){return ma.toByteArray(tmt(Zpt))}function mmt(Zpt,Epe,Tpe,Ypt){let ipt;for(ipt=0;ipt<Ypt&&!(ipt+Tpe>=Epe.length||ipt>=Zpt.length);++ipt)Epe[ipt+Tpe]=Zpt[ipt];return ipt}function rmt(Zpt,Epe){return Zpt instanceof Epe||Zpt!=null&&Zpt.constructor!=null&&Zpt.constructor.name!=null&&Zpt.constructor.name===Epe.name}function pmt(Zpt){return Zpt!==Zpt}const Tmt=(function(){const Zpt="0123456789abcdef",Epe=new Array(256);for(let Tpe=0;Tpe<16;++Tpe){const Ypt=Tpe*16;for(let ipt=0;ipt<16;++ipt)Epe[Ypt+ipt]=Zpt[Tpe]+Zpt[ipt]}return Epe})();function Cmt(Zpt){return typeof BigInt>"u"?jmt:Zpt}function jmt(){throw new Error("BigInt not supported")}})(buffer)),buffer}var safeBuffer={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var hasRequiredSafeBuffer;function requireSafeBuffer(){return hasRequiredSafeBuffer||(hasRequiredSafeBuffer=1,(function(ya,ma){var ba=requireBuffer(),va=ba.Buffer;function Ma(El,Sl){for(var Cl in El)Sl[Cl]=El[Cl]}va.from&&va.alloc&&va.allocUnsafe&&va.allocUnsafeSlow?ya.exports=ba:(Ma(ba,ma),ma.Buffer=wl);function wl(El,Sl,Cl){return va(El,Sl,Cl)}wl.prototype=Object.create(va.prototype),Ma(va,wl),wl.from=function(El,Sl,Cl){if(typeof El=="number")throw new TypeError("Argument must not be a number");return va(El,Sl,Cl)},wl.alloc=function(El,Sl,Cl){if(typeof El!="number")throw new TypeError("Argument must be a number");var Mc=va(El);return Sl!==void 0?typeof Cl=="string"?Mc.fill(Sl,Cl):Mc.fill(Sl):Mc.fill(0),Mc},wl.allocUnsafe=function(El){if(typeof El!="number")throw new TypeError("Argument must be a number");return va(El)},wl.allocUnsafeSlow=function(El){if(typeof El!="number")throw new TypeError("Argument must be a number");return ba.SlowBuffer(El)}})(safeBuffer,safeBuffer.exports)),safeBuffer.exports}var define_process_env_default$8={};let DailyRotateFile$1,winston$1;isNodeEnv$1&&(await __vitePreload(()=>import("./index-p80zQUD2.js").then(ya=>ya.i),__vite__mapDeps([0,1,2,3,4,5])).then(ya=>{DailyRotateFile$1=ya.default}),await __vitePreload(()=>import("./winston-dZFS_1to.js").then(ya=>ya.w),__vite__mapDeps([6,1,2,3,4,5])).then(ya=>{winston$1=ya.default}));let logger$3;function getLogLevel$1(){var ya;return isNodeEnv$1&&define_process_env_default$8&&define_process_env_default$8.DEBUG?"debug":((ya=AppConfig?.logging)===null||ya===void 0?void 0:ya.level)||"info"}function initializeLogger$1(){const ya=getLogLevel$1();if(isNodeEnv$1){const ma=new DailyRotateFile$1({level:ya,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$3=winston$1.createLogger({level:ya,format:winston$1.format.combine(winston$1.format.timestamp(),winston$1.format.printf(({timestamp:ba,level:va,message:Ma})=>`[${ba}] ${va}: ${Ma}`)),transports:[ma]})}else{let ma=function(ba){return va=>{console.log(`${ba}: ${va}`)}};logger$3={debug:ma("DEBUG"),info:ma("INFO"),warn:ma("WARN"),error:ma("ERROR")}}}initializeLogger$1();const PlannerInstructions$1=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
8324
+ */var hasRequiredBuffer;function requireBuffer(){return hasRequiredBuffer||(hasRequiredBuffer=1,(function(ya){const ma=requireBase64Js(),ba=requireIeee754(),va=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;ya.Buffer=Sl,ya.SlowBuffer=mg,ya.INSPECT_MAX_BYTES=50;const Ma=2147483647;ya.kMaxLength=Ma,Sl.TYPED_ARRAY_SUPPORT=wl(),!Sl.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function wl(){try{const Zpt=new Uint8Array(1),Epe={foo:function(){return 42}};return Object.setPrototypeOf(Epe,Uint8Array.prototype),Object.setPrototypeOf(Zpt,Epe),Zpt.foo()===42}catch{return!1}}Object.defineProperty(Sl.prototype,"parent",{enumerable:!0,get:function(){if(Sl.isBuffer(this))return this.buffer}}),Object.defineProperty(Sl.prototype,"offset",{enumerable:!0,get:function(){if(Sl.isBuffer(this))return this.byteOffset}});function El(Zpt){if(Zpt>Ma)throw new RangeError('The value "'+Zpt+'" is invalid for option "size"');const Epe=new Uint8Array(Zpt);return Object.setPrototypeOf(Epe,Sl.prototype),Epe}function Sl(Zpt,Epe,Tpe){if(typeof Zpt=="number"){if(typeof Epe=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return pp(Zpt)}return Cl(Zpt,Epe,Tpe)}Sl.poolSize=8192;function Cl(Zpt,Epe,Tpe){if(typeof Zpt=="string")return hp(Zpt,Epe);if(ArrayBuffer.isView(Zpt))return Zf(Zpt);if(Zpt==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Zpt);if(rmt(Zpt,ArrayBuffer)||Zpt&&rmt(Zpt.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(rmt(Zpt,SharedArrayBuffer)||Zpt&&rmt(Zpt.buffer,SharedArrayBuffer)))return Jf(Zpt,Epe,Tpe);if(typeof Zpt=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Ypt=Zpt.valueOf&&Zpt.valueOf();if(Ypt!=null&&Ypt!==Zpt)return Sl.from(Ypt,Epe,Tpe);const ipt=pg(Zpt);if(ipt)return ipt;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Zpt[Symbol.toPrimitive]=="function")return Sl.from(Zpt[Symbol.toPrimitive]("string"),Epe,Tpe);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Zpt)}Sl.from=function(Zpt,Epe,Tpe){return Cl(Zpt,Epe,Tpe)},Object.setPrototypeOf(Sl.prototype,Uint8Array.prototype),Object.setPrototypeOf(Sl,Uint8Array);function Mc(Zpt){if(typeof Zpt!="number")throw new TypeError('"size" argument must be of type number');if(Zpt<0)throw new RangeError('The value "'+Zpt+'" is invalid for option "size"')}function dp(Zpt,Epe,Tpe){return Mc(Zpt),Zpt<=0?El(Zpt):Epe!==void 0?typeof Tpe=="string"?El(Zpt).fill(Epe,Tpe):El(Zpt).fill(Epe):El(Zpt)}Sl.alloc=function(Zpt,Epe,Tpe){return dp(Zpt,Epe,Tpe)};function pp(Zpt){return Mc(Zpt),El(Zpt<0?0:hg(Zpt)|0)}Sl.allocUnsafe=function(Zpt){return pp(Zpt)},Sl.allocUnsafeSlow=function(Zpt){return pp(Zpt)};function hp(Zpt,Epe){if((typeof Epe!="string"||Epe==="")&&(Epe="utf8"),!Sl.isEncoding(Epe))throw new TypeError("Unknown encoding: "+Epe);const Tpe=gg(Zpt,Epe)|0;let Ypt=El(Tpe);const ipt=Ypt.write(Zpt,Epe);return ipt!==Tpe&&(Ypt=Ypt.slice(0,ipt)),Ypt}function Ef(Zpt){const Epe=Zpt.length<0?0:hg(Zpt.length)|0,Tpe=El(Epe);for(let Ypt=0;Ypt<Epe;Ypt+=1)Tpe[Ypt]=Zpt[Ypt]&255;return Tpe}function Zf(Zpt){if(rmt(Zpt,Uint8Array)){const Epe=new Uint8Array(Zpt);return Jf(Epe.buffer,Epe.byteOffset,Epe.byteLength)}return Ef(Zpt)}function Jf(Zpt,Epe,Tpe){if(Epe<0||Zpt.byteLength<Epe)throw new RangeError('"offset" is outside of buffer bounds');if(Zpt.byteLength<Epe+(Tpe||0))throw new RangeError('"length" is outside of buffer bounds');let Ypt;return Epe===void 0&&Tpe===void 0?Ypt=new Uint8Array(Zpt):Tpe===void 0?Ypt=new Uint8Array(Zpt,Epe):Ypt=new Uint8Array(Zpt,Epe,Tpe),Object.setPrototypeOf(Ypt,Sl.prototype),Ypt}function pg(Zpt){if(Sl.isBuffer(Zpt)){const Epe=hg(Zpt.length)|0,Tpe=El(Epe);return Tpe.length===0||Zpt.copy(Tpe,0,0,Epe),Tpe}if(Zpt.length!==void 0)return typeof Zpt.length!="number"||pmt(Zpt.length)?El(0):Ef(Zpt);if(Zpt.type==="Buffer"&&Array.isArray(Zpt.data))return Ef(Zpt.data)}function hg(Zpt){if(Zpt>=Ma)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ma.toString(16)+" bytes");return Zpt|0}function mg(Zpt){return+Zpt!=Zpt&&(Zpt=0),Sl.alloc(+Zpt)}Sl.isBuffer=function(Epe){return Epe!=null&&Epe._isBuffer===!0&&Epe!==Sl.prototype},Sl.compare=function(Epe,Tpe){if(rmt(Epe,Uint8Array)&&(Epe=Sl.from(Epe,Epe.offset,Epe.byteLength)),rmt(Tpe,Uint8Array)&&(Tpe=Sl.from(Tpe,Tpe.offset,Tpe.byteLength)),!Sl.isBuffer(Epe)||!Sl.isBuffer(Tpe))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Epe===Tpe)return 0;let Ypt=Epe.length,ipt=Tpe.length;for(let Mpe=0,Ope=Math.min(Ypt,ipt);Mpe<Ope;++Mpe)if(Epe[Mpe]!==Tpe[Mpe]){Ypt=Epe[Mpe],ipt=Tpe[Mpe];break}return Ypt<ipt?-1:ipt<Ypt?1:0},Sl.isEncoding=function(Epe){switch(String(Epe).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Sl.concat=function(Epe,Tpe){if(!Array.isArray(Epe))throw new TypeError('"list" argument must be an Array of Buffers');if(Epe.length===0)return Sl.alloc(0);let Ypt;if(Tpe===void 0)for(Tpe=0,Ypt=0;Ypt<Epe.length;++Ypt)Tpe+=Epe[Ypt].length;const ipt=Sl.allocUnsafe(Tpe);let Mpe=0;for(Ypt=0;Ypt<Epe.length;++Ypt){let Ope=Epe[Ypt];if(rmt(Ope,Uint8Array))Mpe+Ope.length>ipt.length?(Sl.isBuffer(Ope)||(Ope=Sl.from(Ope)),Ope.copy(ipt,Mpe)):Uint8Array.prototype.set.call(ipt,Ope,Mpe);else if(Sl.isBuffer(Ope))Ope.copy(ipt,Mpe);else throw new TypeError('"list" argument must be an Array of Buffers');Mpe+=Ope.length}return ipt};function gg(Zpt,Epe){if(Sl.isBuffer(Zpt))return Zpt.length;if(ArrayBuffer.isView(Zpt)||rmt(Zpt,ArrayBuffer))return Zpt.byteLength;if(typeof Zpt!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Zpt);const Tpe=Zpt.length,Ypt=arguments.length>2&&arguments[2]===!0;if(!Ypt&&Tpe===0)return 0;let ipt=!1;for(;;)switch(Epe){case"ascii":case"latin1":case"binary":return Tpe;case"utf8":case"utf-8":return Sht(Zpt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Tpe*2;case"hex":return Tpe>>>1;case"base64":return Rmt(Zpt).length;default:if(ipt)return Ypt?-1:Sht(Zpt).length;Epe=(""+Epe).toLowerCase(),ipt=!0}}Sl.byteLength=gg;function yg(Zpt,Epe,Tpe){let Ypt=!1;if((Epe===void 0||Epe<0)&&(Epe=0),Epe>this.length||((Tpe===void 0||Tpe>this.length)&&(Tpe=this.length),Tpe<=0)||(Tpe>>>=0,Epe>>>=0,Tpe<=Epe))return"";for(Zpt||(Zpt="utf8");;)switch(Zpt){case"hex":return $4(this,Epe,Tpe);case"utf8":case"utf-8":return aE(this,Epe,Tpe);case"ascii":return sN(this,Epe,Tpe);case"latin1":case"binary":return AF(this,Epe,Tpe);case"base64":return O_(this,Epe,Tpe);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return cN(this,Epe,Tpe);default:if(Ypt)throw new TypeError("Unknown encoding: "+Zpt);Zpt=(Zpt+"").toLowerCase(),Ypt=!0}}Sl.prototype._isBuffer=!0;function ay(Zpt,Epe,Tpe){const Ypt=Zpt[Epe];Zpt[Epe]=Zpt[Tpe],Zpt[Tpe]=Ypt}Sl.prototype.swap16=function(){const Epe=this.length;if(Epe%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Tpe=0;Tpe<Epe;Tpe+=2)ay(this,Tpe,Tpe+1);return this},Sl.prototype.swap32=function(){const Epe=this.length;if(Epe%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let Tpe=0;Tpe<Epe;Tpe+=4)ay(this,Tpe,Tpe+3),ay(this,Tpe+1,Tpe+2);return this},Sl.prototype.swap64=function(){const Epe=this.length;if(Epe%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let Tpe=0;Tpe<Epe;Tpe+=8)ay(this,Tpe,Tpe+7),ay(this,Tpe+1,Tpe+6),ay(this,Tpe+2,Tpe+5),ay(this,Tpe+3,Tpe+4);return this},Sl.prototype.toString=function(){const Epe=this.length;return Epe===0?"":arguments.length===0?aE(this,0,Epe):yg.apply(this,arguments)},Sl.prototype.toLocaleString=Sl.prototype.toString,Sl.prototype.equals=function(Epe){if(!Sl.isBuffer(Epe))throw new TypeError("Argument must be a Buffer");return this===Epe?!0:Sl.compare(this,Epe)===0},Sl.prototype.inspect=function(){let Epe="";const Tpe=ya.INSPECT_MAX_BYTES;return Epe=this.toString("hex",0,Tpe).replace(/(.{2})/g,"$1 ").trim(),this.length>Tpe&&(Epe+=" ... "),"<Buffer "+Epe+">"},va&&(Sl.prototype[va]=Sl.prototype.inspect),Sl.prototype.compare=function(Epe,Tpe,Ypt,ipt,Mpe){if(rmt(Epe,Uint8Array)&&(Epe=Sl.from(Epe,Epe.offset,Epe.byteLength)),!Sl.isBuffer(Epe))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Epe);if(Tpe===void 0&&(Tpe=0),Ypt===void 0&&(Ypt=Epe?Epe.length:0),ipt===void 0&&(ipt=0),Mpe===void 0&&(Mpe=this.length),Tpe<0||Ypt>Epe.length||ipt<0||Mpe>this.length)throw new RangeError("out of range index");if(ipt>=Mpe&&Tpe>=Ypt)return 0;if(ipt>=Mpe)return-1;if(Tpe>=Ypt)return 1;if(Tpe>>>=0,Ypt>>>=0,ipt>>>=0,Mpe>>>=0,this===Epe)return 0;let Ope=Mpe-ipt,Wpt=Ypt-Tpe;const Qpt=Math.min(Ope,Wpt),Aht=this.slice(ipt,Mpe),Kpt=Epe.slice(Tpe,Ypt);for(let imt=0;imt<Qpt;++imt)if(Aht[imt]!==Kpt[imt]){Ope=Aht[imt],Wpt=Kpt[imt];break}return Ope<Wpt?-1:Wpt<Ope?1:0};function ly(Zpt,Epe,Tpe,Ypt,ipt){if(Zpt.length===0)return-1;if(typeof Tpe=="string"?(Ypt=Tpe,Tpe=0):Tpe>2147483647?Tpe=2147483647:Tpe<-2147483648&&(Tpe=-2147483648),Tpe=+Tpe,pmt(Tpe)&&(Tpe=ipt?0:Zpt.length-1),Tpe<0&&(Tpe=Zpt.length+Tpe),Tpe>=Zpt.length){if(ipt)return-1;Tpe=Zpt.length-1}else if(Tpe<0)if(ipt)Tpe=0;else return-1;if(typeof Epe=="string"&&(Epe=Sl.from(Epe,Ypt)),Sl.isBuffer(Epe))return Epe.length===0?-1:cy(Zpt,Epe,Tpe,Ypt,ipt);if(typeof Epe=="number")return Epe=Epe&255,typeof Uint8Array.prototype.indexOf=="function"?ipt?Uint8Array.prototype.indexOf.call(Zpt,Epe,Tpe):Uint8Array.prototype.lastIndexOf.call(Zpt,Epe,Tpe):cy(Zpt,[Epe],Tpe,Ypt,ipt);throw new TypeError("val must be string, number or Buffer")}function cy(Zpt,Epe,Tpe,Ypt,ipt){let Mpe=1,Ope=Zpt.length,Wpt=Epe.length;if(Ypt!==void 0&&(Ypt=String(Ypt).toLowerCase(),Ypt==="ucs2"||Ypt==="ucs-2"||Ypt==="utf16le"||Ypt==="utf-16le")){if(Zpt.length<2||Epe.length<2)return-1;Mpe=2,Ope/=2,Wpt/=2,Tpe/=2}function Qpt(Kpt,imt){return Mpe===1?Kpt[imt]:Kpt.readUInt16BE(imt*Mpe)}let Aht;if(ipt){let Kpt=-1;for(Aht=Tpe;Aht<Ope;Aht++)if(Qpt(Zpt,Aht)===Qpt(Epe,Kpt===-1?0:Aht-Kpt)){if(Kpt===-1&&(Kpt=Aht),Aht-Kpt+1===Wpt)return Kpt*Mpe}else Kpt!==-1&&(Aht-=Aht-Kpt),Kpt=-1}else for(Tpe+Wpt>Ope&&(Tpe=Ope-Wpt),Aht=Tpe;Aht>=0;Aht--){let Kpt=!0;for(let imt=0;imt<Wpt;imt++)if(Qpt(Zpt,Aht+imt)!==Qpt(Epe,imt)){Kpt=!1;break}if(Kpt)return Aht}return-1}Sl.prototype.includes=function(Epe,Tpe,Ypt){return this.indexOf(Epe,Tpe,Ypt)!==-1},Sl.prototype.indexOf=function(Epe,Tpe,Ypt){return ly(this,Epe,Tpe,Ypt,!0)},Sl.prototype.lastIndexOf=function(Epe,Tpe,Ypt){return ly(this,Epe,Tpe,Ypt,!1)};function q1(Zpt,Epe,Tpe,Ypt){Tpe=Number(Tpe)||0;const ipt=Zpt.length-Tpe;Ypt?(Ypt=Number(Ypt),Ypt>ipt&&(Ypt=ipt)):Ypt=ipt;const Mpe=Epe.length;Ypt>Mpe/2&&(Ypt=Mpe/2);let Ope;for(Ope=0;Ope<Ypt;++Ope){const Wpt=parseInt(Epe.substr(Ope*2,2),16);if(pmt(Wpt))return Ope;Zpt[Tpe+Ope]=Wpt}return Ope}function r0(Zpt,Epe,Tpe,Ypt){return mmt(Sht(Epe,Zpt.length-Tpe),Zpt,Tpe,Ypt)}function uE(Zpt,Epe,Tpe,Ypt){return mmt(bmt(Epe),Zpt,Tpe,Ypt)}function V1(Zpt,Epe,Tpe,Ypt){return mmt(Rmt(Epe),Zpt,Tpe,Ypt)}function H1(Zpt,Epe,Tpe,Ypt){return mmt(xmt(Epe,Zpt.length-Tpe),Zpt,Tpe,Ypt)}Sl.prototype.write=function(Epe,Tpe,Ypt,ipt){if(Tpe===void 0)ipt="utf8",Ypt=this.length,Tpe=0;else if(Ypt===void 0&&typeof Tpe=="string")ipt=Tpe,Ypt=this.length,Tpe=0;else if(isFinite(Tpe))Tpe=Tpe>>>0,isFinite(Ypt)?(Ypt=Ypt>>>0,ipt===void 0&&(ipt="utf8")):(ipt=Ypt,Ypt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Mpe=this.length-Tpe;if((Ypt===void 0||Ypt>Mpe)&&(Ypt=Mpe),Epe.length>0&&(Ypt<0||Tpe<0)||Tpe>this.length)throw new RangeError("Attempt to write outside buffer bounds");ipt||(ipt="utf8");let Ope=!1;for(;;)switch(ipt){case"hex":return q1(this,Epe,Tpe,Ypt);case"utf8":case"utf-8":return r0(this,Epe,Tpe,Ypt);case"ascii":case"latin1":case"binary":return uE(this,Epe,Tpe,Ypt);case"base64":return V1(this,Epe,Tpe,Ypt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H1(this,Epe,Tpe,Ypt);default:if(Ope)throw new TypeError("Unknown encoding: "+ipt);ipt=(""+ipt).toLowerCase(),Ope=!0}},Sl.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O_(Zpt,Epe,Tpe){return Epe===0&&Tpe===Zpt.length?ma.fromByteArray(Zpt):ma.fromByteArray(Zpt.slice(Epe,Tpe))}function aE(Zpt,Epe,Tpe){Tpe=Math.min(Zpt.length,Tpe);const Ypt=[];let ipt=Epe;for(;ipt<Tpe;){const Mpe=Zpt[ipt];let Ope=null,Wpt=Mpe>239?4:Mpe>223?3:Mpe>191?2:1;if(ipt+Wpt<=Tpe){let Qpt,Aht,Kpt,imt;switch(Wpt){case 1:Mpe<128&&(Ope=Mpe);break;case 2:Qpt=Zpt[ipt+1],(Qpt&192)===128&&(imt=(Mpe&31)<<6|Qpt&63,imt>127&&(Ope=imt));break;case 3:Qpt=Zpt[ipt+1],Aht=Zpt[ipt+2],(Qpt&192)===128&&(Aht&192)===128&&(imt=(Mpe&15)<<12|(Qpt&63)<<6|Aht&63,imt>2047&&(imt<55296||imt>57343)&&(Ope=imt));break;case 4:Qpt=Zpt[ipt+1],Aht=Zpt[ipt+2],Kpt=Zpt[ipt+3],(Qpt&192)===128&&(Aht&192)===128&&(Kpt&192)===128&&(imt=(Mpe&15)<<18|(Qpt&63)<<12|(Aht&63)<<6|Kpt&63,imt>65535&&imt<1114112&&(Ope=imt))}}Ope===null?(Ope=65533,Wpt=1):Ope>65535&&(Ope-=65536,Ypt.push(Ope>>>10&1023|55296),Ope=56320|Ope&1023),Ypt.push(Ope),ipt+=Wpt}return M_(Ypt)}const P_=4096;function M_(Zpt){const Epe=Zpt.length;if(Epe<=P_)return String.fromCharCode.apply(String,Zpt);let Tpe="",Ypt=0;for(;Ypt<Epe;)Tpe+=String.fromCharCode.apply(String,Zpt.slice(Ypt,Ypt+=P_));return Tpe}function sN(Zpt,Epe,Tpe){let Ypt="";Tpe=Math.min(Zpt.length,Tpe);for(let ipt=Epe;ipt<Tpe;++ipt)Ypt+=String.fromCharCode(Zpt[ipt]&127);return Ypt}function AF(Zpt,Epe,Tpe){let Ypt="";Tpe=Math.min(Zpt.length,Tpe);for(let ipt=Epe;ipt<Tpe;++ipt)Ypt+=String.fromCharCode(Zpt[ipt]);return Ypt}function $4(Zpt,Epe,Tpe){const Ypt=Zpt.length;(!Epe||Epe<0)&&(Epe=0),(!Tpe||Tpe<0||Tpe>Ypt)&&(Tpe=Ypt);let ipt="";for(let Mpe=Epe;Mpe<Tpe;++Mpe)ipt+=Tmt[Zpt[Mpe]];return ipt}function cN(Zpt,Epe,Tpe){const Ypt=Zpt.slice(Epe,Tpe);let ipt="";for(let Mpe=0;Mpe<Ypt.length-1;Mpe+=2)ipt+=String.fromCharCode(Ypt[Mpe]+Ypt[Mpe+1]*256);return ipt}Sl.prototype.slice=function(Epe,Tpe){const Ypt=this.length;Epe=~~Epe,Tpe=Tpe===void 0?Ypt:~~Tpe,Epe<0?(Epe+=Ypt,Epe<0&&(Epe=0)):Epe>Ypt&&(Epe=Ypt),Tpe<0?(Tpe+=Ypt,Tpe<0&&(Tpe=0)):Tpe>Ypt&&(Tpe=Ypt),Tpe<Epe&&(Tpe=Epe);const ipt=this.subarray(Epe,Tpe);return Object.setPrototypeOf(ipt,Sl.prototype),ipt};function R4(Zpt,Epe,Tpe){if(Zpt%1!==0||Zpt<0)throw new RangeError("offset is not uint");if(Zpt+Epe>Tpe)throw new RangeError("Trying to access beyond buffer length")}Sl.prototype.readUintLE=Sl.prototype.readUIntLE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe],Mpe=1,Ope=0;for(;++Ope<Tpe&&(Mpe*=256);)ipt+=this[Epe+Ope]*Mpe;return ipt},Sl.prototype.readUintBE=Sl.prototype.readUIntBE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe+--Tpe],Mpe=1;for(;Tpe>0&&(Mpe*=256);)ipt+=this[Epe+--Tpe]*Mpe;return ipt},Sl.prototype.readUint8=Sl.prototype.readUInt8=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,1,this.length),this[Epe]},Sl.prototype.readUint16LE=Sl.prototype.readUInt16LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,2,this.length),this[Epe]|this[Epe+1]<<8},Sl.prototype.readUint16BE=Sl.prototype.readUInt16BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,2,this.length),this[Epe]<<8|this[Epe+1]},Sl.prototype.readUint32LE=Sl.prototype.readUInt32LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),(this[Epe]|this[Epe+1]<<8|this[Epe+2]<<16)+this[Epe+3]*16777216},Sl.prototype.readUint32BE=Sl.prototype.readUInt32BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]*16777216+(this[Epe+1]<<16|this[Epe+2]<<8|this[Epe+3])},Sl.prototype.readBigUInt64LE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=Tpe+this[++Epe]*2**8+this[++Epe]*2**16+this[++Epe]*2**24,Mpe=this[++Epe]+this[++Epe]*2**8+this[++Epe]*2**16+Ypt*2**24;return BigInt(ipt)+(BigInt(Mpe)<<BigInt(32))}),Sl.prototype.readBigUInt64BE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=Tpe*2**24+this[++Epe]*2**16+this[++Epe]*2**8+this[++Epe],Mpe=this[++Epe]*2**24+this[++Epe]*2**16+this[++Epe]*2**8+Ypt;return(BigInt(ipt)<<BigInt(32))+BigInt(Mpe)}),Sl.prototype.readIntLE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=this[Epe],Mpe=1,Ope=0;for(;++Ope<Tpe&&(Mpe*=256);)ipt+=this[Epe+Ope]*Mpe;return Mpe*=128,ipt>=Mpe&&(ipt-=Math.pow(2,8*Tpe)),ipt},Sl.prototype.readIntBE=function(Epe,Tpe,Ypt){Epe=Epe>>>0,Tpe=Tpe>>>0,Ypt||R4(Epe,Tpe,this.length);let ipt=Tpe,Mpe=1,Ope=this[Epe+--ipt];for(;ipt>0&&(Mpe*=256);)Ope+=this[Epe+--ipt]*Mpe;return Mpe*=128,Ope>=Mpe&&(Ope-=Math.pow(2,8*Tpe)),Ope},Sl.prototype.readInt8=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,1,this.length),this[Epe]&128?(255-this[Epe]+1)*-1:this[Epe]},Sl.prototype.readInt16LE=function(Epe,Tpe){Epe=Epe>>>0,Tpe||R4(Epe,2,this.length);const Ypt=this[Epe]|this[Epe+1]<<8;return Ypt&32768?Ypt|4294901760:Ypt},Sl.prototype.readInt16BE=function(Epe,Tpe){Epe=Epe>>>0,Tpe||R4(Epe,2,this.length);const Ypt=this[Epe+1]|this[Epe]<<8;return Ypt&32768?Ypt|4294901760:Ypt},Sl.prototype.readInt32LE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]|this[Epe+1]<<8|this[Epe+2]<<16|this[Epe+3]<<24},Sl.prototype.readInt32BE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),this[Epe]<<24|this[Epe+1]<<16|this[Epe+2]<<8|this[Epe+3]},Sl.prototype.readBigInt64LE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=this[Epe+4]+this[Epe+5]*2**8+this[Epe+6]*2**16+(Ypt<<24);return(BigInt(ipt)<<BigInt(32))+BigInt(Tpe+this[++Epe]*2**8+this[++Epe]*2**16+this[++Epe]*2**24)}),Sl.prototype.readBigInt64BE=Cmt(function(Epe){Epe=Epe>>>0,t2e(Epe,"offset");const Tpe=this[Epe],Ypt=this[Epe+7];(Tpe===void 0||Ypt===void 0)&&Q_e(Epe,this.length-8);const ipt=(Tpe<<24)+this[++Epe]*2**16+this[++Epe]*2**8+this[++Epe];return(BigInt(ipt)<<BigInt(32))+BigInt(this[++Epe]*2**24+this[++Epe]*2**16+this[++Epe]*2**8+Ypt)}),Sl.prototype.readFloatLE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),ba.read(this,Epe,!0,23,4)},Sl.prototype.readFloatBE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,4,this.length),ba.read(this,Epe,!1,23,4)},Sl.prototype.readDoubleLE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,8,this.length),ba.read(this,Epe,!0,52,8)},Sl.prototype.readDoubleBE=function(Epe,Tpe){return Epe=Epe>>>0,Tpe||R4(Epe,8,this.length),ba.read(this,Epe,!1,52,8)};function k4(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(!Sl.isBuffer(Zpt))throw new TypeError('"buffer" argument must be a Buffer instance');if(Epe>ipt||Epe<Mpe)throw new RangeError('"value" argument is out of bounds');if(Tpe+Ypt>Zpt.length)throw new RangeError("Index out of range")}Sl.prototype.writeUintLE=Sl.prototype.writeUIntLE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,Ypt=Ypt>>>0,!ipt){const Wpt=Math.pow(2,8*Ypt)-1;k4(this,Epe,Tpe,Ypt,Wpt,0)}let Mpe=1,Ope=0;for(this[Tpe]=Epe&255;++Ope<Ypt&&(Mpe*=256);)this[Tpe+Ope]=Epe/Mpe&255;return Tpe+Ypt},Sl.prototype.writeUintBE=Sl.prototype.writeUIntBE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,Ypt=Ypt>>>0,!ipt){const Wpt=Math.pow(2,8*Ypt)-1;k4(this,Epe,Tpe,Ypt,Wpt,0)}let Mpe=Ypt-1,Ope=1;for(this[Tpe+Mpe]=Epe&255;--Mpe>=0&&(Ope*=256);)this[Tpe+Mpe]=Epe/Ope&255;return Tpe+Ypt},Sl.prototype.writeUint8=Sl.prototype.writeUInt8=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,1,255,0),this[Tpe]=Epe&255,Tpe+1},Sl.prototype.writeUint16LE=Sl.prototype.writeUInt16LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,65535,0),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,Tpe+2},Sl.prototype.writeUint16BE=Sl.prototype.writeUInt16BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,65535,0),this[Tpe]=Epe>>>8,this[Tpe+1]=Epe&255,Tpe+2},Sl.prototype.writeUint32LE=Sl.prototype.writeUInt32LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,4294967295,0),this[Tpe+3]=Epe>>>24,this[Tpe+2]=Epe>>>16,this[Tpe+1]=Epe>>>8,this[Tpe]=Epe&255,Tpe+4},Sl.prototype.writeUint32BE=Sl.prototype.writeUInt32BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,4294967295,0),this[Tpe]=Epe>>>24,this[Tpe+1]=Epe>>>16,this[Tpe+2]=Epe>>>8,this[Tpe+3]=Epe&255,Tpe+4};function AQ(Zpt,Epe,Tpe,Ypt,ipt){wpe(Epe,Ypt,ipt,Zpt,Tpe,7);let Mpe=Number(Epe&BigInt(4294967295));Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe,Mpe=Mpe>>8,Zpt[Tpe++]=Mpe;let Ope=Number(Epe>>BigInt(32)&BigInt(4294967295));return Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Ope=Ope>>8,Zpt[Tpe++]=Ope,Tpe}function uN(Zpt,Epe,Tpe,Ypt,ipt){wpe(Epe,Ypt,ipt,Zpt,Tpe,7);let Mpe=Number(Epe&BigInt(4294967295));Zpt[Tpe+7]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+6]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+5]=Mpe,Mpe=Mpe>>8,Zpt[Tpe+4]=Mpe;let Ope=Number(Epe>>BigInt(32)&BigInt(4294967295));return Zpt[Tpe+3]=Ope,Ope=Ope>>8,Zpt[Tpe+2]=Ope,Ope=Ope>>8,Zpt[Tpe+1]=Ope,Ope=Ope>>8,Zpt[Tpe]=Ope,Tpe+8}Sl.prototype.writeBigUInt64LE=Cmt(function(Epe,Tpe=0){return AQ(this,Epe,Tpe,BigInt(0),BigInt("0xffffffffffffffff"))}),Sl.prototype.writeBigUInt64BE=Cmt(function(Epe,Tpe=0){return uN(this,Epe,Tpe,BigInt(0),BigInt("0xffffffffffffffff"))}),Sl.prototype.writeIntLE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,!ipt){const Qpt=Math.pow(2,8*Ypt-1);k4(this,Epe,Tpe,Ypt,Qpt-1,-Qpt)}let Mpe=0,Ope=1,Wpt=0;for(this[Tpe]=Epe&255;++Mpe<Ypt&&(Ope*=256);)Epe<0&&Wpt===0&&this[Tpe+Mpe-1]!==0&&(Wpt=1),this[Tpe+Mpe]=(Epe/Ope>>0)-Wpt&255;return Tpe+Ypt},Sl.prototype.writeIntBE=function(Epe,Tpe,Ypt,ipt){if(Epe=+Epe,Tpe=Tpe>>>0,!ipt){const Qpt=Math.pow(2,8*Ypt-1);k4(this,Epe,Tpe,Ypt,Qpt-1,-Qpt)}let Mpe=Ypt-1,Ope=1,Wpt=0;for(this[Tpe+Mpe]=Epe&255;--Mpe>=0&&(Ope*=256);)Epe<0&&Wpt===0&&this[Tpe+Mpe+1]!==0&&(Wpt=1),this[Tpe+Mpe]=(Epe/Ope>>0)-Wpt&255;return Tpe+Ypt},Sl.prototype.writeInt8=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,1,127,-128),Epe<0&&(Epe=255+Epe+1),this[Tpe]=Epe&255,Tpe+1},Sl.prototype.writeInt16LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,32767,-32768),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,Tpe+2},Sl.prototype.writeInt16BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,2,32767,-32768),this[Tpe]=Epe>>>8,this[Tpe+1]=Epe&255,Tpe+2},Sl.prototype.writeInt32LE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,2147483647,-2147483648),this[Tpe]=Epe&255,this[Tpe+1]=Epe>>>8,this[Tpe+2]=Epe>>>16,this[Tpe+3]=Epe>>>24,Tpe+4},Sl.prototype.writeInt32BE=function(Epe,Tpe,Ypt){return Epe=+Epe,Tpe=Tpe>>>0,Ypt||k4(this,Epe,Tpe,4,2147483647,-2147483648),Epe<0&&(Epe=4294967295+Epe+1),this[Tpe]=Epe>>>24,this[Tpe+1]=Epe>>>16,this[Tpe+2]=Epe>>>8,this[Tpe+3]=Epe&255,Tpe+4},Sl.prototype.writeBigInt64LE=Cmt(function(Epe,Tpe=0){return AQ(this,Epe,Tpe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),Sl.prototype.writeBigInt64BE=Cmt(function(Epe,Tpe=0){return uN(this,Epe,Tpe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function uee(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(Tpe+Ypt>Zpt.length)throw new RangeError("Index out of range");if(Tpe<0)throw new RangeError("Index out of range")}function $pe(Zpt,Epe,Tpe,Ypt,ipt){return Epe=+Epe,Tpe=Tpe>>>0,ipt||uee(Zpt,Epe,Tpe,4),ba.write(Zpt,Epe,Tpe,Ypt,23,4),Tpe+4}Sl.prototype.writeFloatLE=function(Epe,Tpe,Ypt){return $pe(this,Epe,Tpe,!0,Ypt)},Sl.prototype.writeFloatBE=function(Epe,Tpe,Ypt){return $pe(this,Epe,Tpe,!1,Ypt)};function Ppe(Zpt,Epe,Tpe,Ypt,ipt){return Epe=+Epe,Tpe=Tpe>>>0,ipt||uee(Zpt,Epe,Tpe,8),ba.write(Zpt,Epe,Tpe,Ypt,52,8),Tpe+8}Sl.prototype.writeDoubleLE=function(Epe,Tpe,Ypt){return Ppe(this,Epe,Tpe,!0,Ypt)},Sl.prototype.writeDoubleBE=function(Epe,Tpe,Ypt){return Ppe(this,Epe,Tpe,!1,Ypt)},Sl.prototype.copy=function(Epe,Tpe,Ypt,ipt){if(!Sl.isBuffer(Epe))throw new TypeError("argument should be a Buffer");if(Ypt||(Ypt=0),!ipt&&ipt!==0&&(ipt=this.length),Tpe>=Epe.length&&(Tpe=Epe.length),Tpe||(Tpe=0),ipt>0&&ipt<Ypt&&(ipt=Ypt),ipt===Ypt||Epe.length===0||this.length===0)return 0;if(Tpe<0)throw new RangeError("targetStart out of bounds");if(Ypt<0||Ypt>=this.length)throw new RangeError("Index out of range");if(ipt<0)throw new RangeError("sourceEnd out of bounds");ipt>this.length&&(ipt=this.length),Epe.length-Tpe<ipt-Ypt&&(ipt=Epe.length-Tpe+Ypt);const Mpe=ipt-Ypt;return this===Epe&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(Tpe,Ypt,ipt):Uint8Array.prototype.set.call(Epe,this.subarray(Ypt,ipt),Tpe),Mpe},Sl.prototype.fill=function(Epe,Tpe,Ypt,ipt){if(typeof Epe=="string"){if(typeof Tpe=="string"?(ipt=Tpe,Tpe=0,Ypt=this.length):typeof Ypt=="string"&&(ipt=Ypt,Ypt=this.length),ipt!==void 0&&typeof ipt!="string")throw new TypeError("encoding must be a string");if(typeof ipt=="string"&&!Sl.isEncoding(ipt))throw new TypeError("Unknown encoding: "+ipt);if(Epe.length===1){const Ope=Epe.charCodeAt(0);(ipt==="utf8"&&Ope<128||ipt==="latin1")&&(Epe=Ope)}}else typeof Epe=="number"?Epe=Epe&255:typeof Epe=="boolean"&&(Epe=Number(Epe));if(Tpe<0||this.length<Tpe||this.length<Ypt)throw new RangeError("Out of range index");if(Ypt<=Tpe)return this;Tpe=Tpe>>>0,Ypt=Ypt===void 0?this.length:Ypt>>>0,Epe||(Epe=0);let Mpe;if(typeof Epe=="number")for(Mpe=Tpe;Mpe<Ypt;++Mpe)this[Mpe]=Epe;else{const Ope=Sl.isBuffer(Epe)?Epe:Sl.from(Epe,ipt),Wpt=Ope.length;if(Wpt===0)throw new TypeError('The value "'+Epe+'" is invalid for argument "value"');for(Mpe=0;Mpe<Ypt-Tpe;++Mpe)this[Mpe+Tpe]=Ope[Mpe%Wpt]}return this};const e2e={};function Vpt(Zpt,Epe,Tpe){e2e[Zpt]=class extends Tpe{constructor(){super(),Object.defineProperty(this,"message",{value:Epe.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${Zpt}]`,this.stack,delete this.name}get code(){return Zpt}set code(ipt){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:ipt,writable:!0})}toString(){return`${this.name} [${Zpt}]: ${this.message}`}}}Vpt("ERR_BUFFER_OUT_OF_BOUNDS",function(Zpt){return Zpt?`${Zpt} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Vpt("ERR_INVALID_ARG_TYPE",function(Zpt,Epe){return`The "${Zpt}" argument must be of type number. Received type ${typeof Epe}`},TypeError),Vpt("ERR_OUT_OF_RANGE",function(Zpt,Epe,Tpe){let Ypt=`The value of "${Zpt}" is out of range.`,ipt=Tpe;return Number.isInteger(Tpe)&&Math.abs(Tpe)>2**32?ipt=Gpt(String(Tpe)):typeof Tpe=="bigint"&&(ipt=String(Tpe),(Tpe>BigInt(2)**BigInt(32)||Tpe<-(BigInt(2)**BigInt(32)))&&(ipt=Gpt(ipt)),ipt+="n"),Ypt+=` It must be ${Epe}. Received ${ipt}`,Ypt},RangeError);function Gpt(Zpt){let Epe="",Tpe=Zpt.length;const Ypt=Zpt[0]==="-"?1:0;for(;Tpe>=Ypt+4;Tpe-=3)Epe=`_${Zpt.slice(Tpe-3,Tpe)}${Epe}`;return`${Zpt.slice(0,Tpe)}${Epe}`}function xpe(Zpt,Epe,Tpe){t2e(Epe,"offset"),(Zpt[Epe]===void 0||Zpt[Epe+Tpe]===void 0)&&Q_e(Epe,Zpt.length-(Tpe+1))}function wpe(Zpt,Epe,Tpe,Ypt,ipt,Mpe){if(Zpt>Tpe||Zpt<Epe){const Ope=typeof Epe=="bigint"?"n":"";let Wpt;throw Epe===0||Epe===BigInt(0)?Wpt=`>= 0${Ope} and < 2${Ope} ** ${(Mpe+1)*8}${Ope}`:Wpt=`>= -(2${Ope} ** ${(Mpe+1)*8-1}${Ope}) and < 2 ** ${(Mpe+1)*8-1}${Ope}`,new e2e.ERR_OUT_OF_RANGE("value",Wpt,Zpt)}xpe(Ypt,ipt,Mpe)}function t2e(Zpt,Epe){if(typeof Zpt!="number")throw new e2e.ERR_INVALID_ARG_TYPE(Epe,"number",Zpt)}function Q_e(Zpt,Epe,Tpe){throw Math.floor(Zpt)!==Zpt?(t2e(Zpt,Tpe),new e2e.ERR_OUT_OF_RANGE("offset","an integer",Zpt)):Epe<0?new e2e.ERR_BUFFER_OUT_OF_BOUNDS:new e2e.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${Epe}`,Zpt)}const Rht=/[^+/0-9A-Za-z-_]/g;function tmt(Zpt){if(Zpt=Zpt.split("=")[0],Zpt=Zpt.trim().replace(Rht,""),Zpt.length<2)return"";for(;Zpt.length%4!==0;)Zpt=Zpt+"=";return Zpt}function Sht(Zpt,Epe){Epe=Epe||1/0;let Tpe;const Ypt=Zpt.length;let ipt=null;const Mpe=[];for(let Ope=0;Ope<Ypt;++Ope){if(Tpe=Zpt.charCodeAt(Ope),Tpe>55295&&Tpe<57344){if(!ipt){if(Tpe>56319){(Epe-=3)>-1&&Mpe.push(239,191,189);continue}else if(Ope+1===Ypt){(Epe-=3)>-1&&Mpe.push(239,191,189);continue}ipt=Tpe;continue}if(Tpe<56320){(Epe-=3)>-1&&Mpe.push(239,191,189),ipt=Tpe;continue}Tpe=(ipt-55296<<10|Tpe-56320)+65536}else ipt&&(Epe-=3)>-1&&Mpe.push(239,191,189);if(ipt=null,Tpe<128){if((Epe-=1)<0)break;Mpe.push(Tpe)}else if(Tpe<2048){if((Epe-=2)<0)break;Mpe.push(Tpe>>6|192,Tpe&63|128)}else if(Tpe<65536){if((Epe-=3)<0)break;Mpe.push(Tpe>>12|224,Tpe>>6&63|128,Tpe&63|128)}else if(Tpe<1114112){if((Epe-=4)<0)break;Mpe.push(Tpe>>18|240,Tpe>>12&63|128,Tpe>>6&63|128,Tpe&63|128)}else throw new Error("Invalid code point")}return Mpe}function bmt(Zpt){const Epe=[];for(let Tpe=0;Tpe<Zpt.length;++Tpe)Epe.push(Zpt.charCodeAt(Tpe)&255);return Epe}function xmt(Zpt,Epe){let Tpe,Ypt,ipt;const Mpe=[];for(let Ope=0;Ope<Zpt.length&&!((Epe-=2)<0);++Ope)Tpe=Zpt.charCodeAt(Ope),Ypt=Tpe>>8,ipt=Tpe%256,Mpe.push(ipt),Mpe.push(Ypt);return Mpe}function Rmt(Zpt){return ma.toByteArray(tmt(Zpt))}function mmt(Zpt,Epe,Tpe,Ypt){let ipt;for(ipt=0;ipt<Ypt&&!(ipt+Tpe>=Epe.length||ipt>=Zpt.length);++ipt)Epe[ipt+Tpe]=Zpt[ipt];return ipt}function rmt(Zpt,Epe){return Zpt instanceof Epe||Zpt!=null&&Zpt.constructor!=null&&Zpt.constructor.name!=null&&Zpt.constructor.name===Epe.name}function pmt(Zpt){return Zpt!==Zpt}const Tmt=(function(){const Zpt="0123456789abcdef",Epe=new Array(256);for(let Tpe=0;Tpe<16;++Tpe){const Ypt=Tpe*16;for(let ipt=0;ipt<16;++ipt)Epe[Ypt+ipt]=Zpt[Tpe]+Zpt[ipt]}return Epe})();function Cmt(Zpt){return typeof BigInt>"u"?jmt:Zpt}function jmt(){throw new Error("BigInt not supported")}})(buffer)),buffer}var safeBuffer={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var hasRequiredSafeBuffer;function requireSafeBuffer(){return hasRequiredSafeBuffer||(hasRequiredSafeBuffer=1,(function(ya,ma){var ba=requireBuffer(),va=ba.Buffer;function Ma(El,Sl){for(var Cl in El)Sl[Cl]=El[Cl]}va.from&&va.alloc&&va.allocUnsafe&&va.allocUnsafeSlow?ya.exports=ba:(Ma(ba,ma),ma.Buffer=wl);function wl(El,Sl,Cl){return va(El,Sl,Cl)}wl.prototype=Object.create(va.prototype),Ma(va,wl),wl.from=function(El,Sl,Cl){if(typeof El=="number")throw new TypeError("Argument must not be a number");return va(El,Sl,Cl)},wl.alloc=function(El,Sl,Cl){if(typeof El!="number")throw new TypeError("Argument must be a number");var Mc=va(El);return Sl!==void 0?typeof Cl=="string"?Mc.fill(Sl,Cl):Mc.fill(Sl):Mc.fill(0),Mc},wl.allocUnsafe=function(El){if(typeof El!="number")throw new TypeError("Argument must be a number");return va(El)},wl.allocUnsafeSlow=function(El){if(typeof El!="number")throw new TypeError("Argument must be a number");return ba.SlowBuffer(El)}})(safeBuffer,safeBuffer.exports)),safeBuffer.exports}var define_process_env_default$8={};let DailyRotateFile$1,winston$1;isNodeEnv$1&&(await __vitePreload(()=>import("./index-Dv4fZm7h.js").then(ya=>ya.i),__vite__mapDeps([0,1,2,3,4,5])).then(ya=>{DailyRotateFile$1=ya.default}),await __vitePreload(()=>import("./winston-BqN1-LuO.js").then(ya=>ya.w),__vite__mapDeps([6,1,2,3,4,5])).then(ya=>{winston$1=ya.default}));let logger$3;function getLogLevel$1(){var ya;return isNodeEnv$1&&define_process_env_default$8&&define_process_env_default$8.DEBUG?"debug":((ya=AppConfig?.logging)===null||ya===void 0?void 0:ya.level)||"info"}function initializeLogger$1(){const ya=getLogLevel$1();if(isNodeEnv$1){const ma=new DailyRotateFile$1({level:ya,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$3=winston$1.createLogger({level:ya,format:winston$1.format.combine(winston$1.format.timestamp(),winston$1.format.printf(({timestamp:ba,level:va,message:Ma})=>`[${ba}] ${va}: ${Ma}`)),transports:[ma]})}else{let ma=function(ba){return va=>{console.log(`${ba}: ${va}`)}};logger$3={debug:ma("DEBUG"),info:ma("INFO"),warn:ma("WARN"),error:ma("ERROR")}}}initializeLogger$1();const PlannerInstructions$1=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
8325
8325
  The model of a business application consists of entity definitions and workflows defined in "modules".
8326
8326
  A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
8327
8327
 
@@ -16615,7 +16615,7 @@ workflow TempEvent { ${ya} }`);if(isWorkflowDefinition(ba.defs[0]))ma=ba.defs[0]
16615
16615
  `));const va=((ba=ya.diagnostics)!==null&&ba!==void 0?ba:[]).filter(El=>El.severity===1),Ma=new Set,wl=new Set;if(va.length>0){for(const El of va)if(!Ma.has(El.range.start.line)&&!wl.has(El.range.start.character)){const Sl=ya.textDocument.getText(El.range),Cl=`(${El.range.start.line+1}:${El.range.start.character+1}) unexpected token(s) '${Sl}'`,Mc=ma[El.range.start.line];Mc.indexOf(ErrorIndicator)>0?ma[El.range.start.line]=`${Mc}, ${Cl}`:ma[El.range.start.line]=`${Mc} ${ErrorIndicator} ${Cl}`,Ma.add(El.range.start.line),wl.add(El.range.start.character)}return trimErrorLines(ma)}else return}function trimErrorLines(ya){let ma=0;for(let va=0;va<ya.length;++va)if(ya[va].indexOf(ErrorIndicator)>0){ma=va;break}let ba=ma;for(let va=ma+1;va<ya.length;++va)if(ya[va].indexOf(ErrorIndicator)>0){ba=va;break}return ma>0&&--ma,ba!=ya.length&&++ba,ya.slice(ma,ba)}function trimErrorMessage(ya){if(ya.indexOf("Expecting:")>=0){const ma=ya.indexOf("but found:");if(ma>0)return`Expecting a valid token sequence, ${ya.substring(ma)}`}return ya}function maybeRaiseParserErrors(ya){const ma=ya.textDocument.getText().split(`
16616
16616
  `);let ba=!1;const va=new Set;ya.parseResult.lexerErrors.length>0&&(ya.parseResult.lexerErrors.forEach(wl=>{if(!va.has(wl.line)){const El=trimErrorMessage(wl.message),Sl=`${ErrorIndicator} (${wl.line}:${wl.column}) ${El}`;ma[wl.line-1]=`${ma[wl.line-1]} ${Sl}`,va.add(wl.line)}}),ba=!0),ya.parseResult.parserErrors.length>0&&(ya.parseResult.parserErrors.forEach(wl=>{const El=trimErrorMessage(wl.message);if(wl.token.startLine&&wl.token.endLine){if(!va.has(wl.token.startLine)){const Sl=`${ErrorIndicator} (${wl.token.startLine}:${wl.token.startColumn}) ${El}`;ma[wl.token.endLine-1]=`${ma[wl.token.endLine-1]} ${Sl}`,ma.join(`
16617
16617
  `),va.add(wl.token.startLine)}}else ma.push(`ERROR: ${El}`)}),ba=!0);const Ma=maybeGetValidationErrors(ya,ma);if(ba||Ma!==void 0)throw new Error(ma.join(`
16618
- `))}async function introspect(ya){let ma=[];const ba=await parse$3$1(`module Temp workflow Test {${ya}}`);if(maybeRaiseParserErrors(ba),isWorkflowDefinition(ba.parseResult.value.defs[0]))ma=introspectHelper(ba.parseResult.value.defs[0].statements);else throw new Error("Failed to parse statements");return ma}function introspectHelper(ya){const ma=[];return ya.forEach(ba=>{ma.push(introspectStatement(ba))}),ma}function introspectStatement(ya){const ma=introspectPattern(ya.pattern),ba=firstAliasSpec(ya);ba&&(ba.alias?ma.setAlias(ba.alias):ba.aliases.length>0&&ma.setAliases(ba.aliases));const va=firstCatchSpec(ya);return va&&va.handlers.forEach(Ma=>{ma.addHandler(Ma.except,introspectStatement(Ma.stmt))}),ma}function introspectPattern(ya){let ma;if(ya.crudMap?(isQueryPattern(ya)?ma=introspectQueryPattern(ya.crudMap):ma=introspectCreatePattern(ya.crudMap),ya.crudMap.into&&(ma=introspectInto(ya.crudMap.into,ma))):ya.expr?ma=introspectExpression(ya.expr):ya.forEach?ma=introspectForEach(ya.forEach):ya.if?ma=introspectIf(ya.if):ya.delete?ma=introspectDelete(ya.delete):ya.return?ma=introspectReturn(ya.return):ya.fullTextSearch&&(ma=introspectFullTextSearch(ya.fullTextSearch)),ma)return ma;throw new Error(`Failed to introspect pattern: ${ya}`)}function introspectInto(ya,ma){return ya.entries.forEach(ba=>{ba.attribute&&ma.addInto(ba.alias,ba.attribute)}),ma}function isQueryPattern(ya){if(ya.crudMap){const ma=ya.crudMap,ba=ma.name.endsWith(QuerySuffix);return!ba&&ma.body?ma.body.attributes.length>0&&ma.body.attributes.every(va=>va.name.endsWith(QuerySuffix)):ba}return!1}function introspectGroup(ya){return new GroupExpressionPattern(introspectExpression(ya.ge))}function introspectNegExpr(ya){return new NegExpressionPattern(introspectExpression(ya.ne))}function introspectNotExpr(ya){return new NotExpressionPattern(introspectExpression(ya.ne))}function introspectPrimExpr(ya){if(isLiteral(ya))return introspectLiteral(ya);if(isGroup(ya))return introspectGroup(ya);if(isNegExpr(ya))return introspectNegExpr(ya);if(isNotExpr(ya))return introspectNotExpr(ya);throw new Error(`Not a PrimExpr - ${ya}`)}function introspectExpression(ya){if(ya!==void 0){if(isPrimExpr(ya))return introspectPrimExpr(ya);if(ya.$cstNode)return new ExpressionPattern(ya.$cstNode.text)}throw new Error("Failed to introspect expression - "+ya)}function introspectQueryPattern(ya){var ma;if(ya){const ba=new CrudPattern(ya.name);return(ma=ya.body)===null||ma===void 0||ma.attributes.forEach(va=>{ba.addAttribute(va.name,introspectExpression(va.value),va.op)}),ya.relationships.forEach(va=>{ba.addRelationship(va.name,introspectPattern(va.pattern))}),ba.isCreate=!1,ba.isQueryUpdate=!1,ba.isQuery=!0,ba}throw new Error(`Failed to introspect query-pattern: ${ya}`)}function introspectCreatePattern(ya){var ma;if(ya){const ba=new CrudPattern(ya.name);ba.isCreate=!1,ba.isQuery=!1;let va=!1;return(ma=ya.body)===null||ma===void 0||ma.attributes.forEach(Ma=>{!va&&Ma.name.endsWith(QuerySuffix)&&(va=!0),ba.addAttribute(Ma.name,introspectExpression(Ma.value),Ma.op)}),ya.relationships.forEach(Ma=>{ba.addRelationship(Ma.name,introspectPattern(Ma.pattern))}),ba.isQueryUpdate=va,va?(ba.isCreate=!1,ba.isQuery=!1):(ba.isCreate=!0,ba.isQuery=!1),ba}throw new Error(`Failed to introspect create-pattern: ${ya}`)}function asFnCallPattern(ya){return new FunctionCallPattern(ya.name,ya.args.map(ma=>isExpr(ma)?introspectExpression(ma):introspectLiteral(ma)))}function introspectLiteral(ya){if(ya.id)return LiteralPattern.Id(ya.id);if(ya.num)return LiteralPattern.Number(ya.num);if(ya.ref)return LiteralPattern.Reference(ya.ref);if(ya.str!==void 0)return LiteralPattern.String(ya.str);if(ya.bool)return LiteralPattern.Boolean(ya.bool=="true");if(ya.fnCall)return asFnCallPattern(ya.fnCall);if(ya.asyncFnCall)return asFnCallPattern(ya.asyncFnCall.fnCall).asAsync();if(ya.array)return LiteralPattern.Array(ya.array.vals.map(ma=>introspectStatement(ma)));if(ya.map)return introspectMapLiteral(ya.map);throw new Error(`Invalid literal - ${ya}`)}function introspectMapLiteral(ya){const ma=new Map;return ya.entries.forEach(ba=>{ma.set(ba.key,introspectExpression(ba.value))}),LiteralPattern.Map(ma)}function introspectForEach(ya){const ma=new ForEachPattern(ya.var,introspectPattern(ya.src));return ya.statements.forEach(ba=>{ma.addPattern(introspectStatement(ba))}),ma}function introspectIf(ya){const ma=new IfPattern(introspectExpression(ya.cond));return ya.statements.forEach(ba=>{ma.addPattern(introspectStatement(ba))}),ya.else&&ma.setElse(ya.else.statements.map(ba=>introspectStatement(ba))),ma}function introspectDelete(ya){return new DeletePattern(introspectPattern(ya.pattern))}function introspectReturn(ya){return new ReturnPattern(introspectPattern(ya.pattern))}function introspectFullTextSearch(ya){let ma;return ya.options&&(ma=introspectMapLiteral(ya.options)),new FullTextSearchPattern(ya.name,introspectLiteral(ya.query),ma)}var util$2$1;(function(ya){ya.assertEqual=Ma=>{};function ma(Ma){}ya.assertIs=ma;function ba(Ma){throw new Error}ya.assertNever=ba,ya.arrayToEnum=Ma=>{const wl={};for(const El of Ma)wl[El]=El;return wl},ya.getValidEnumValues=Ma=>{const wl=ya.objectKeys(Ma).filter(Sl=>typeof Ma[Ma[Sl]]!="number"),El={};for(const Sl of wl)El[Sl]=Ma[Sl];return ya.objectValues(El)},ya.objectValues=Ma=>ya.objectKeys(Ma).map(function(wl){return Ma[wl]}),ya.objectKeys=typeof Object.keys=="function"?Ma=>Object.keys(Ma):Ma=>{const wl=[];for(const El in Ma)Object.prototype.hasOwnProperty.call(Ma,El)&&wl.push(El);return wl},ya.find=(Ma,wl)=>{for(const El of Ma)if(wl(El))return El},ya.isInteger=typeof Number.isInteger=="function"?Ma=>Number.isInteger(Ma):Ma=>typeof Ma=="number"&&Number.isFinite(Ma)&&Math.floor(Ma)===Ma;function va(Ma,wl=" | "){return Ma.map(El=>typeof El=="string"?`'${El}'`:El).join(wl)}ya.joinValues=va,ya.jsonStringifyReplacer=(Ma,wl)=>typeof wl=="bigint"?wl.toString():wl})(util$2$1||(util$2$1={}));var objectUtil;(function(ya){ya.mergeShapes=(ma,ba)=>({...ma,...ba})})(objectUtil||(objectUtil={}));const ZodParsedType=util$2$1.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=ya=>{switch(typeof ya){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(ya)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(ya)?ZodParsedType.array:ya===null?ZodParsedType.null:ya.then&&typeof ya.then=="function"&&ya.catch&&typeof ya.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&ya instanceof Map?ZodParsedType.map:typeof Set<"u"&&ya instanceof Set?ZodParsedType.set:typeof Date<"u"&&ya instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode$1=util$2$1.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor(ma){super(),this.issues=[],this.addIssue=va=>{this.issues=[...this.issues,va]},this.addIssues=(va=[])=>{this.issues=[...this.issues,...va]};const ba=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,ba):this.__proto__=ba,this.name="ZodError",this.issues=ma}format(ma){const ba=ma||function(wl){return wl.message},va={_errors:[]},Ma=wl=>{for(const El of wl.issues)if(El.code==="invalid_union")El.unionErrors.map(Ma);else if(El.code==="invalid_return_type")Ma(El.returnTypeError);else if(El.code==="invalid_arguments")Ma(El.argumentsError);else if(El.path.length===0)va._errors.push(ba(El));else{let Sl=va,Cl=0;for(;Cl<El.path.length;){const Mc=El.path[Cl];Cl===El.path.length-1?(Sl[Mc]=Sl[Mc]||{_errors:[]},Sl[Mc]._errors.push(ba(El))):Sl[Mc]=Sl[Mc]||{_errors:[]},Sl=Sl[Mc],Cl++}}};return Ma(this),va}static assert(ma){if(!(ma instanceof ZodError))throw new Error(`Not a ZodError: ${ma}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$2$1.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(ma=ba=>ba.message){const ba={},va=[];for(const Ma of this.issues)if(Ma.path.length>0){const wl=Ma.path[0];ba[wl]=ba[wl]||[],ba[wl].push(ma(Ma))}else va.push(ma(Ma));return{formErrors:va,fieldErrors:ba}}get formErrors(){return this.flatten()}}ZodError.create=ya=>new ZodError(ya);const errorMap=(ya,ma)=>{let ba;switch(ya.code){case ZodIssueCode$1.invalid_type:ya.received===ZodParsedType.undefined?ba="Required":ba=`Expected ${ya.expected}, received ${ya.received}`;break;case ZodIssueCode$1.invalid_literal:ba=`Invalid literal value, expected ${JSON.stringify(ya.expected,util$2$1.jsonStringifyReplacer)}`;break;case ZodIssueCode$1.unrecognized_keys:ba=`Unrecognized key(s) in object: ${util$2$1.joinValues(ya.keys,", ")}`;break;case ZodIssueCode$1.invalid_union:ba="Invalid input";break;case ZodIssueCode$1.invalid_union_discriminator:ba=`Invalid discriminator value. Expected ${util$2$1.joinValues(ya.options)}`;break;case ZodIssueCode$1.invalid_enum_value:ba=`Invalid enum value. Expected ${util$2$1.joinValues(ya.options)}, received '${ya.received}'`;break;case ZodIssueCode$1.invalid_arguments:ba="Invalid function arguments";break;case ZodIssueCode$1.invalid_return_type:ba="Invalid function return type";break;case ZodIssueCode$1.invalid_date:ba="Invalid date";break;case ZodIssueCode$1.invalid_string:typeof ya.validation=="object"?"includes"in ya.validation?(ba=`Invalid input: must include "${ya.validation.includes}"`,typeof ya.validation.position=="number"&&(ba=`${ba} at one or more positions greater than or equal to ${ya.validation.position}`)):"startsWith"in ya.validation?ba=`Invalid input: must start with "${ya.validation.startsWith}"`:"endsWith"in ya.validation?ba=`Invalid input: must end with "${ya.validation.endsWith}"`:util$2$1.assertNever(ya.validation):ya.validation!=="regex"?ba=`Invalid ${ya.validation}`:ba="Invalid";break;case ZodIssueCode$1.too_small:ya.type==="array"?ba=`Array must contain ${ya.exact?"exactly":ya.inclusive?"at least":"more than"} ${ya.minimum} element(s)`:ya.type==="string"?ba=`String must contain ${ya.exact?"exactly":ya.inclusive?"at least":"over"} ${ya.minimum} character(s)`:ya.type==="number"?ba=`Number must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${ya.minimum}`:ya.type==="bigint"?ba=`Number must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${ya.minimum}`:ya.type==="date"?ba=`Date must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(ya.minimum))}`:ba="Invalid input";break;case ZodIssueCode$1.too_big:ya.type==="array"?ba=`Array must contain ${ya.exact?"exactly":ya.inclusive?"at most":"less than"} ${ya.maximum} element(s)`:ya.type==="string"?ba=`String must contain ${ya.exact?"exactly":ya.inclusive?"at most":"under"} ${ya.maximum} character(s)`:ya.type==="number"?ba=`Number must be ${ya.exact?"exactly":ya.inclusive?"less than or equal to":"less than"} ${ya.maximum}`:ya.type==="bigint"?ba=`BigInt must be ${ya.exact?"exactly":ya.inclusive?"less than or equal to":"less than"} ${ya.maximum}`:ya.type==="date"?ba=`Date must be ${ya.exact?"exactly":ya.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(ya.maximum))}`:ba="Invalid input";break;case ZodIssueCode$1.custom:ba="Invalid input";break;case ZodIssueCode$1.invalid_intersection_types:ba="Intersection results could not be merged";break;case ZodIssueCode$1.not_multiple_of:ba=`Number must be a multiple of ${ya.multipleOf}`;break;case ZodIssueCode$1.not_finite:ba="Number must be finite";break;default:ba=ma.defaultError,util$2$1.assertNever(ya)}return{message:ba}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=ya=>{const{data:ma,path:ba,errorMaps:va,issueData:Ma}=ya,wl=[...ba,...Ma.path||[]],El={...Ma,path:wl};if(Ma.message!==void 0)return{...Ma,path:wl,message:Ma.message};let Sl="";const Cl=va.filter(Mc=>!!Mc).slice().reverse();for(const Mc of Cl)Sl=Mc(El,{data:ma,defaultError:Sl}).message;return{...Ma,path:wl,message:Sl}};function addIssueToContext(ya,ma){const ba=getErrorMap(),va=makeIssue({issueData:ma,data:ya.data,path:ya.path,errorMaps:[ya.common.contextualErrorMap,ya.schemaErrorMap,ba,ba===errorMap?void 0:errorMap].filter(Ma=>!!Ma)});ya.common.issues.push(va)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(ma,ba){const va=[];for(const Ma of ba){if(Ma.status==="aborted")return INVALID;Ma.status==="dirty"&&ma.dirty(),va.push(Ma.value)}return{status:ma.value,value:va}}static async mergeObjectAsync(ma,ba){const va=[];for(const Ma of ba){const wl=await Ma.key,El=await Ma.value;va.push({key:wl,value:El})}return ParseStatus.mergeObjectSync(ma,va)}static mergeObjectSync(ma,ba){const va={};for(const Ma of ba){const{key:wl,value:El}=Ma;if(wl.status==="aborted"||El.status==="aborted")return INVALID;wl.status==="dirty"&&ma.dirty(),El.status==="dirty"&&ma.dirty(),wl.value!=="__proto__"&&(typeof El.value<"u"||Ma.alwaysSet)&&(va[wl.value]=El.value)}return{status:ma.value,value:va}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=ya=>({status:"dirty",value:ya}),OK=ya=>({status:"valid",value:ya}),isAborted=ya=>ya.status==="aborted",isDirty=ya=>ya.status==="dirty",isValid=ya=>ya.status==="valid",isAsync=ya=>typeof Promise<"u"&&ya instanceof Promise;var errorUtil;(function(ya){ya.errToObj=ma=>typeof ma=="string"?{message:ma}:ma||{},ya.toString=ma=>typeof ma=="string"?ma:ma?.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor(ma,ba,va,Ma){this._cachedPath=[],this.parent=ma,this.data=ba,this._path=va,this._key=Ma}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(ya,ma)=>{if(isValid(ma))return{success:!0,data:ma.value};if(!ya.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const ba=new ZodError(ya.common.issues);return this._error=ba,this._error}}};function processCreateParams(ya){if(!ya)return{};const{errorMap:ma,invalid_type_error:ba,required_error:va,description:Ma}=ya;if(ma&&(ba||va))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return ma?{errorMap:ma,description:Ma}:{errorMap:(wl,El)=>{const{message:Sl}=ya;return wl.code==="invalid_enum_value"?{message:Sl??El.defaultError}:typeof El.data>"u"?{message:Sl??va??El.defaultError}:wl.code!=="invalid_type"?{message:El.defaultError}:{message:Sl??ba??El.defaultError}},description:Ma}}let ZodType$1=class{get description(){return this._def.description}_getType(ya){return getParsedType(ya.data)}_getOrReturnCtx(ya,ma){return ma||{common:ya.parent.common,data:ya.data,parsedType:getParsedType(ya.data),schemaErrorMap:this._def.errorMap,path:ya.path,parent:ya.parent}}_processInputParams(ya){return{status:new ParseStatus,ctx:{common:ya.parent.common,data:ya.data,parsedType:getParsedType(ya.data),schemaErrorMap:this._def.errorMap,path:ya.path,parent:ya.parent}}}_parseSync(ya){const ma=this._parse(ya);if(isAsync(ma))throw new Error("Synchronous parse encountered promise.");return ma}_parseAsync(ya){const ma=this._parse(ya);return Promise.resolve(ma)}parse(ya,ma){const ba=this.safeParse(ya,ma);if(ba.success)return ba.data;throw ba.error}safeParse(ya,ma){const ba={common:{issues:[],async:ma?.async??!1,contextualErrorMap:ma?.errorMap},path:ma?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)},va=this._parseSync({data:ya,path:ba.path,parent:ba});return handleResult(ba,va)}"~validate"(ya){const ma={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)};if(!this["~standard"].async)try{const ba=this._parseSync({data:ya,path:[],parent:ma});return isValid(ba)?{value:ba.value}:{issues:ma.common.issues}}catch(ba){ba?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),ma.common={issues:[],async:!0}}return this._parseAsync({data:ya,path:[],parent:ma}).then(ba=>isValid(ba)?{value:ba.value}:{issues:ma.common.issues})}async parseAsync(ya,ma){const ba=await this.safeParseAsync(ya,ma);if(ba.success)return ba.data;throw ba.error}async safeParseAsync(ya,ma){const ba={common:{issues:[],contextualErrorMap:ma?.errorMap,async:!0},path:ma?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)},va=this._parse({data:ya,path:ba.path,parent:ba}),Ma=await(isAsync(va)?va:Promise.resolve(va));return handleResult(ba,Ma)}refine(ya,ma){const ba=va=>typeof ma=="string"||typeof ma>"u"?{message:ma}:typeof ma=="function"?ma(va):ma;return this._refinement((va,Ma)=>{const wl=ya(va),El=()=>Ma.addIssue({code:ZodIssueCode$1.custom,...ba(va)});return typeof Promise<"u"&&wl instanceof Promise?wl.then(Sl=>Sl?!0:(El(),!1)):wl?!0:(El(),!1)})}refinement(ya,ma){return this._refinement((ba,va)=>ya(ba)?!0:(va.addIssue(typeof ma=="function"?ma(ba,va):ma),!1))}_refinement(ya){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:ya}})}superRefine(ya){return this._refinement(ya)}constructor(ya){this.spa=this.safeParseAsync,this._def=ya,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:ma=>this["~validate"](ma)}}optional(){return ZodOptional$1.create(this,this._def)}nullable(){return ZodNullable$1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray$1.create(this)}promise(){return ZodPromise.create(this,this._def)}or(ya){return ZodUnion$1.create([this,ya],this._def)}and(ya){return ZodIntersection$1.create(this,ya,this._def)}transform(ya){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:ya}})}default(ya){const ma=typeof ya=="function"?ya:()=>ya;return new ZodDefault$1({...processCreateParams(this._def),innerType:this,defaultValue:ma,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(ya){const ma=typeof ya=="function"?ya:()=>ya;return new ZodCatch$1({...processCreateParams(this._def),innerType:this,catchValue:ma,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(ya){const ma=this.constructor;return new ma({...this._def,description:ya})}pipe(ya){return ZodPipeline.create(this,ya)}readonly(){return ZodReadonly$1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex$2;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(ya){let ma="[0-5]\\d";ya.precision?ma=`${ma}\\.\\d{${ya.precision}}`:ya.precision==null&&(ma=`${ma}(\\.\\d+)?`);const ba=ya.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${ma})${ba}`}function timeRegex(ya){return new RegExp(`^${timeRegexSource(ya)}$`)}function datetimeRegex(ya){let ma=`${dateRegexSource}T${timeRegexSource(ya)}`;const ba=[];return ba.push(ya.local?"Z?":"Z"),ya.offset&&ba.push("([+-]\\d{2}:?\\d{2})"),ma=`${ma}(${ba.join("|")})`,new RegExp(`^${ma}$`)}function isValidIP(ya,ma){return!!((ma==="v4"||!ma)&&ipv4Regex.test(ya)||(ma==="v6"||!ma)&&ipv6Regex.test(ya))}function isValidJWT$1(ya,ma){if(!jwtRegex.test(ya))return!1;try{const[ba]=ya.split(".");if(!ba)return!1;const va=ba.replace(/-/g,"+").replace(/_/g,"/").padEnd(ba.length+(4-ba.length%4)%4,"="),Ma=JSON.parse(atob(va));return!(typeof Ma!="object"||Ma===null||"typ"in Ma&&Ma?.typ!=="JWT"||!Ma.alg||ma&&Ma.alg!==ma)}catch{return!1}}function isValidCidr(ya,ma){return!!((ma==="v4"||!ma)&&ipv4CidrRegex.test(ya)||(ma==="v6"||!ma)&&ipv6CidrRegex.test(ya))}let ZodString$1=class $0t extends ZodType$1{_parse(ma){if(this._def.coerce&&(ma.data=String(ma.data)),this._getType(ma)!==ZodParsedType.string){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.string,received:Ma.parsedType}),INVALID}const ba=new ParseStatus;let va;for(const Ma of this._def.checks)if(Ma.kind==="min")ma.data.length<Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"string",inclusive:!0,exact:!1,message:Ma.message}),ba.dirty());else if(Ma.kind==="max")ma.data.length>Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"string",inclusive:!0,exact:!1,message:Ma.message}),ba.dirty());else if(Ma.kind==="length"){const wl=ma.data.length>Ma.value,El=ma.data.length<Ma.value;(wl||El)&&(va=this._getOrReturnCtx(ma,va),wl?addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"string",inclusive:!0,exact:!0,message:Ma.message}):El&&addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"string",inclusive:!0,exact:!0,message:Ma.message}),ba.dirty())}else if(Ma.kind==="email")emailRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"email",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="emoji")emojiRegex$2||(emojiRegex$2=new RegExp(_emojiRegex,"u")),emojiRegex$2.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"emoji",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="uuid")uuidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"uuid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="nanoid")nanoidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"nanoid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="cuid")cuidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cuid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="cuid2")cuid2Regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cuid2",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="ulid")ulidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"ulid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="url")try{new URL(ma.data)}catch{va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"url",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()}else Ma.kind==="regex"?(Ma.regex.lastIndex=0,Ma.regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"regex",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty())):Ma.kind==="trim"?ma.data=ma.data.trim():Ma.kind==="includes"?ma.data.includes(Ma.value,Ma.position)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{includes:Ma.value,position:Ma.position},message:Ma.message}),ba.dirty()):Ma.kind==="toLowerCase"?ma.data=ma.data.toLowerCase():Ma.kind==="toUpperCase"?ma.data=ma.data.toUpperCase():Ma.kind==="startsWith"?ma.data.startsWith(Ma.value)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{startsWith:Ma.value},message:Ma.message}),ba.dirty()):Ma.kind==="endsWith"?ma.data.endsWith(Ma.value)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{endsWith:Ma.value},message:Ma.message}),ba.dirty()):Ma.kind==="datetime"?datetimeRegex(Ma).test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"datetime",message:Ma.message}),ba.dirty()):Ma.kind==="date"?dateRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"date",message:Ma.message}),ba.dirty()):Ma.kind==="time"?timeRegex(Ma).test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"time",message:Ma.message}),ba.dirty()):Ma.kind==="duration"?durationRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"duration",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="ip"?isValidIP(ma.data,Ma.version)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"ip",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="jwt"?isValidJWT$1(ma.data,Ma.alg)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"jwt",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="cidr"?isValidCidr(ma.data,Ma.version)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cidr",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="base64"?base64Regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"base64",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="base64url"?base64urlRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"base64url",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):util$2$1.assertNever(Ma);return{status:ba.value,value:ma.data}}_regex(ma,ba,va){return this.refinement(Ma=>ma.test(Ma),{validation:ba,code:ZodIssueCode$1.invalid_string,...errorUtil.errToObj(va)})}_addCheck(ma){return new $0t({...this._def,checks:[...this._def.checks,ma]})}email(ma){return this._addCheck({kind:"email",...errorUtil.errToObj(ma)})}url(ma){return this._addCheck({kind:"url",...errorUtil.errToObj(ma)})}emoji(ma){return this._addCheck({kind:"emoji",...errorUtil.errToObj(ma)})}uuid(ma){return this._addCheck({kind:"uuid",...errorUtil.errToObj(ma)})}nanoid(ma){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(ma)})}cuid(ma){return this._addCheck({kind:"cuid",...errorUtil.errToObj(ma)})}cuid2(ma){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(ma)})}ulid(ma){return this._addCheck({kind:"ulid",...errorUtil.errToObj(ma)})}base64(ma){return this._addCheck({kind:"base64",...errorUtil.errToObj(ma)})}base64url(ma){return this._addCheck({kind:"base64url",...errorUtil.errToObj(ma)})}jwt(ma){return this._addCheck({kind:"jwt",...errorUtil.errToObj(ma)})}ip(ma){return this._addCheck({kind:"ip",...errorUtil.errToObj(ma)})}cidr(ma){return this._addCheck({kind:"cidr",...errorUtil.errToObj(ma)})}datetime(ma){return typeof ma=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:ma}):this._addCheck({kind:"datetime",precision:typeof ma?.precision>"u"?null:ma?.precision,offset:ma?.offset??!1,local:ma?.local??!1,...errorUtil.errToObj(ma?.message)})}date(ma){return this._addCheck({kind:"date",message:ma})}time(ma){return typeof ma=="string"?this._addCheck({kind:"time",precision:null,message:ma}):this._addCheck({kind:"time",precision:typeof ma?.precision>"u"?null:ma?.precision,...errorUtil.errToObj(ma?.message)})}duration(ma){return this._addCheck({kind:"duration",...errorUtil.errToObj(ma)})}regex(ma,ba){return this._addCheck({kind:"regex",regex:ma,...errorUtil.errToObj(ba)})}includes(ma,ba){return this._addCheck({kind:"includes",value:ma,position:ba?.position,...errorUtil.errToObj(ba?.message)})}startsWith(ma,ba){return this._addCheck({kind:"startsWith",value:ma,...errorUtil.errToObj(ba)})}endsWith(ma,ba){return this._addCheck({kind:"endsWith",value:ma,...errorUtil.errToObj(ba)})}min(ma,ba){return this._addCheck({kind:"min",value:ma,...errorUtil.errToObj(ba)})}max(ma,ba){return this._addCheck({kind:"max",value:ma,...errorUtil.errToObj(ba)})}length(ma,ba){return this._addCheck({kind:"length",value:ma,...errorUtil.errToObj(ba)})}nonempty(ma){return this.min(1,errorUtil.errToObj(ma))}trim(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(ma=>ma.kind==="datetime")}get isDate(){return!!this._def.checks.find(ma=>ma.kind==="date")}get isTime(){return!!this._def.checks.find(ma=>ma.kind==="time")}get isDuration(){return!!this._def.checks.find(ma=>ma.kind==="duration")}get isEmail(){return!!this._def.checks.find(ma=>ma.kind==="email")}get isURL(){return!!this._def.checks.find(ma=>ma.kind==="url")}get isEmoji(){return!!this._def.checks.find(ma=>ma.kind==="emoji")}get isUUID(){return!!this._def.checks.find(ma=>ma.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(ma=>ma.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(ma=>ma.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(ma=>ma.kind==="cuid2")}get isULID(){return!!this._def.checks.find(ma=>ma.kind==="ulid")}get isIP(){return!!this._def.checks.find(ma=>ma.kind==="ip")}get isCIDR(){return!!this._def.checks.find(ma=>ma.kind==="cidr")}get isBase64(){return!!this._def.checks.find(ma=>ma.kind==="base64")}get isBase64url(){return!!this._def.checks.find(ma=>ma.kind==="base64url")}get minLength(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxLength(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}};ZodString$1.create=ya=>new ZodString$1({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:ya?.coerce??!1,...processCreateParams(ya)});function floatSafeRemainder$1(ya,ma){const ba=(ya.toString().split(".")[1]||"").length,va=(ma.toString().split(".")[1]||"").length,Ma=ba>va?ba:va,wl=Number.parseInt(ya.toFixed(Ma).replace(".","")),El=Number.parseInt(ma.toFixed(Ma).replace(".",""));return wl%El/10**Ma}let ZodNumber$1=class QEt extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(ma){if(this._def.coerce&&(ma.data=Number(ma.data)),this._getType(ma)!==ZodParsedType.number){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.number,received:Ma.parsedType}),INVALID}let ba;const va=new ParseStatus;for(const Ma of this._def.checks)Ma.kind==="int"?util$2$1.isInteger(ma.data)||(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:"integer",received:"float",message:Ma.message}),va.dirty()):Ma.kind==="min"?(Ma.inclusive?ma.data<Ma.value:ma.data<=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"number",inclusive:Ma.inclusive,exact:!1,message:Ma.message}),va.dirty()):Ma.kind==="max"?(Ma.inclusive?ma.data>Ma.value:ma.data>=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"number",inclusive:Ma.inclusive,exact:!1,message:Ma.message}),va.dirty()):Ma.kind==="multipleOf"?floatSafeRemainder$1(ma.data,Ma.value)!==0&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_multiple_of,multipleOf:Ma.value,message:Ma.message}),va.dirty()):Ma.kind==="finite"?Number.isFinite(ma.data)||(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_finite,message:Ma.message}),va.dirty()):util$2$1.assertNever(Ma);return{status:va.value,value:ma.data}}gte(ma,ba){return this.setLimit("min",ma,!0,errorUtil.toString(ba))}gt(ma,ba){return this.setLimit("min",ma,!1,errorUtil.toString(ba))}lte(ma,ba){return this.setLimit("max",ma,!0,errorUtil.toString(ba))}lt(ma,ba){return this.setLimit("max",ma,!1,errorUtil.toString(ba))}setLimit(ma,ba,va,Ma){return new QEt({...this._def,checks:[...this._def.checks,{kind:ma,value:ba,inclusive:va,message:errorUtil.toString(Ma)}]})}_addCheck(ma){return new QEt({...this._def,checks:[...this._def.checks,ma]})}int(ma){return this._addCheck({kind:"int",message:errorUtil.toString(ma)})}positive(ma){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(ma)})}negative(ma){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(ma)})}nonpositive(ma){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(ma)})}nonnegative(ma){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(ma)})}multipleOf(ma,ba){return this._addCheck({kind:"multipleOf",value:ma,message:errorUtil.toString(ba)})}finite(ma){return this._addCheck({kind:"finite",message:errorUtil.toString(ma)})}safe(ma){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(ma)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(ma)})}get minValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}get isInt(){return!!this._def.checks.find(ma=>ma.kind==="int"||ma.kind==="multipleOf"&&util$2$1.isInteger(ma.value))}get isFinite(){let ma=null,ba=null;for(const va of this._def.checks){if(va.kind==="finite"||va.kind==="int"||va.kind==="multipleOf")return!0;va.kind==="min"?(ba===null||va.value>ba)&&(ba=va.value):va.kind==="max"&&(ma===null||va.value<ma)&&(ma=va.value)}return Number.isFinite(ba)&&Number.isFinite(ma)}};ZodNumber$1.create=ya=>new ZodNumber$1({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:ya?.coerce||!1,...processCreateParams(ya)});class ZodBigInt extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(ma){if(this._def.coerce)try{ma.data=BigInt(ma.data)}catch{return this._getInvalidInput(ma)}if(this._getType(ma)!==ZodParsedType.bigint)return this._getInvalidInput(ma);let ba;const va=new ParseStatus;for(const Ma of this._def.checks)Ma.kind==="min"?(Ma.inclusive?ma.data<Ma.value:ma.data<=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_small,type:"bigint",minimum:Ma.value,inclusive:Ma.inclusive,message:Ma.message}),va.dirty()):Ma.kind==="max"?(Ma.inclusive?ma.data>Ma.value:ma.data>=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_big,type:"bigint",maximum:Ma.value,inclusive:Ma.inclusive,message:Ma.message}),va.dirty()):Ma.kind==="multipleOf"?ma.data%Ma.value!==BigInt(0)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_multiple_of,multipleOf:Ma.value,message:Ma.message}),va.dirty()):util$2$1.assertNever(Ma);return{status:va.value,value:ma.data}}_getInvalidInput(ma){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.bigint,received:ba.parsedType}),INVALID}gte(ma,ba){return this.setLimit("min",ma,!0,errorUtil.toString(ba))}gt(ma,ba){return this.setLimit("min",ma,!1,errorUtil.toString(ba))}lte(ma,ba){return this.setLimit("max",ma,!0,errorUtil.toString(ba))}lt(ma,ba){return this.setLimit("max",ma,!1,errorUtil.toString(ba))}setLimit(ma,ba,va,Ma){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:ma,value:ba,inclusive:va,message:errorUtil.toString(Ma)}]})}_addCheck(ma){return new ZodBigInt({...this._def,checks:[...this._def.checks,ma]})}positive(ma){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(ma)})}negative(ma){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(ma)})}nonpositive(ma){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(ma)})}nonnegative(ma){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(ma)})}multipleOf(ma,ba){return this._addCheck({kind:"multipleOf",value:ma,message:errorUtil.toString(ba)})}get minValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}}ZodBigInt.create=ya=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:ya?.coerce??!1,...processCreateParams(ya)});let ZodBoolean$1=class extends ZodType$1{_parse(ya){if(this._def.coerce&&(ya.data=!!ya.data),this._getType(ya)!==ZodParsedType.boolean){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.boolean,received:ma.parsedType}),INVALID}return OK(ya.data)}};ZodBoolean$1.create=ya=>new ZodBoolean$1({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:ya?.coerce||!1,...processCreateParams(ya)});class ZodDate extends ZodType$1{_parse(ma){if(this._def.coerce&&(ma.data=new Date(ma.data)),this._getType(ma)!==ZodParsedType.date){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.date,received:Ma.parsedType}),INVALID}if(Number.isNaN(ma.data.getTime())){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_date}),INVALID}const ba=new ParseStatus;let va;for(const Ma of this._def.checks)Ma.kind==="min"?ma.data.getTime()<Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_small,message:Ma.message,inclusive:!0,exact:!1,minimum:Ma.value,type:"date"}),ba.dirty()):Ma.kind==="max"?ma.data.getTime()>Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_big,message:Ma.message,inclusive:!0,exact:!1,maximum:Ma.value,type:"date"}),ba.dirty()):util$2$1.assertNever(Ma);return{status:ba.value,value:new Date(ma.data.getTime())}}_addCheck(ma){return new ZodDate({...this._def,checks:[...this._def.checks,ma]})}min(ma,ba){return this._addCheck({kind:"min",value:ma.getTime(),message:errorUtil.toString(ba)})}max(ma,ba){return this._addCheck({kind:"max",value:ma.getTime(),message:errorUtil.toString(ba)})}get minDate(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma!=null?new Date(ma):null}get maxDate(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma!=null?new Date(ma):null}}ZodDate.create=ya=>new ZodDate({checks:[],coerce:ya?.coerce||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(ya)});class ZodSymbol extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.symbol){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.symbol,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodSymbol.create=ya=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(ya)});class ZodUndefined extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.undefined){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.undefined,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodUndefined.create=ya=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(ya)});let ZodNull$1=class extends ZodType$1{_parse(ya){if(this._getType(ya)!==ZodParsedType.null){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.null,received:ma.parsedType}),INVALID}return OK(ya.data)}};ZodNull$1.create=ya=>new ZodNull$1({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(ya)});let ZodAny$1=class extends ZodType$1{constructor(){super(...arguments),this._any=!0}_parse(ya){return OK(ya.data)}};ZodAny$1.create=ya=>new ZodAny$1({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(ya)});let ZodUnknown$1=class extends ZodType$1{constructor(){super(...arguments),this._unknown=!0}_parse(ya){return OK(ya.data)}};ZodUnknown$1.create=ya=>new ZodUnknown$1({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(ya)});let ZodNever$1=class extends ZodType$1{_parse(ya){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.never,received:ma.parsedType}),INVALID}};ZodNever$1.create=ya=>new ZodNever$1({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(ya)});class ZodVoid extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.undefined){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.void,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodVoid.create=ya=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(ya)});let ZodArray$1=class Pwt extends ZodType$1{_parse(ma){const{ctx:ba,status:va}=this._processInputParams(ma),Ma=this._def;if(ba.parsedType!==ZodParsedType.array)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.array,received:ba.parsedType}),INVALID;if(Ma.exactLength!==null){const El=ba.data.length>Ma.exactLength.value,Sl=ba.data.length<Ma.exactLength.value;(El||Sl)&&(addIssueToContext(ba,{code:El?ZodIssueCode$1.too_big:ZodIssueCode$1.too_small,minimum:Sl?Ma.exactLength.value:void 0,maximum:El?Ma.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Ma.exactLength.message}),va.dirty())}if(Ma.minLength!==null&&ba.data.length<Ma.minLength.value&&(addIssueToContext(ba,{code:ZodIssueCode$1.too_small,minimum:Ma.minLength.value,type:"array",inclusive:!0,exact:!1,message:Ma.minLength.message}),va.dirty()),Ma.maxLength!==null&&ba.data.length>Ma.maxLength.value&&(addIssueToContext(ba,{code:ZodIssueCode$1.too_big,maximum:Ma.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Ma.maxLength.message}),va.dirty()),ba.common.async)return Promise.all([...ba.data].map((El,Sl)=>Ma.type._parseAsync(new ParseInputLazyPath(ba,El,ba.path,Sl)))).then(El=>ParseStatus.mergeArray(va,El));const wl=[...ba.data].map((El,Sl)=>Ma.type._parseSync(new ParseInputLazyPath(ba,El,ba.path,Sl)));return ParseStatus.mergeArray(va,wl)}get element(){return this._def.type}min(ma,ba){return new Pwt({...this._def,minLength:{value:ma,message:errorUtil.toString(ba)}})}max(ma,ba){return new Pwt({...this._def,maxLength:{value:ma,message:errorUtil.toString(ba)}})}length(ma,ba){return new Pwt({...this._def,exactLength:{value:ma,message:errorUtil.toString(ba)}})}nonempty(ma){return this.min(1,ma)}};ZodArray$1.create=(ya,ma)=>new ZodArray$1({type:ya,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(ma)});function deepPartialify(ya){if(ya instanceof ZodObject$1){const ma={};for(const ba in ya.shape){const va=ya.shape[ba];ma[ba]=ZodOptional$1.create(deepPartialify(va))}return new ZodObject$1({...ya._def,shape:()=>ma})}else return ya instanceof ZodArray$1?new ZodArray$1({...ya._def,type:deepPartialify(ya.element)}):ya instanceof ZodOptional$1?ZodOptional$1.create(deepPartialify(ya.unwrap())):ya instanceof ZodNullable$1?ZodNullable$1.create(deepPartialify(ya.unwrap())):ya instanceof ZodTuple?ZodTuple.create(ya.items.map(ma=>deepPartialify(ma))):ya}let ZodObject$1=class Z$t extends ZodType$1{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const ma=this._def.shape(),ba=util$2$1.objectKeys(ma);return this._cached={shape:ma,keys:ba},this._cached}_parse(ma){if(this._getType(ma)!==ZodParsedType.object){const Cl=this._getOrReturnCtx(ma);return addIssueToContext(Cl,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:Cl.parsedType}),INVALID}const{status:ba,ctx:va}=this._processInputParams(ma),{shape:Ma,keys:wl}=this._getCached(),El=[];if(!(this._def.catchall instanceof ZodNever$1&&this._def.unknownKeys==="strip"))for(const Cl in va.data)wl.includes(Cl)||El.push(Cl);const Sl=[];for(const Cl of wl){const Mc=Ma[Cl],dp=va.data[Cl];Sl.push({key:{status:"valid",value:Cl},value:Mc._parse(new ParseInputLazyPath(va,dp,va.path,Cl)),alwaysSet:Cl in va.data})}if(this._def.catchall instanceof ZodNever$1){const Cl=this._def.unknownKeys;if(Cl==="passthrough")for(const Mc of El)Sl.push({key:{status:"valid",value:Mc},value:{status:"valid",value:va.data[Mc]}});else if(Cl==="strict")El.length>0&&(addIssueToContext(va,{code:ZodIssueCode$1.unrecognized_keys,keys:El}),ba.dirty());else if(Cl!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const Cl=this._def.catchall;for(const Mc of El){const dp=va.data[Mc];Sl.push({key:{status:"valid",value:Mc},value:Cl._parse(new ParseInputLazyPath(va,dp,va.path,Mc)),alwaysSet:Mc in va.data})}}return va.common.async?Promise.resolve().then(async()=>{const Cl=[];for(const Mc of Sl){const dp=await Mc.key,pp=await Mc.value;Cl.push({key:dp,value:pp,alwaysSet:Mc.alwaysSet})}return Cl}).then(Cl=>ParseStatus.mergeObjectSync(ba,Cl)):ParseStatus.mergeObjectSync(ba,Sl)}get shape(){return this._def.shape()}strict(ma){return errorUtil.errToObj,new Z$t({...this._def,unknownKeys:"strict",...ma!==void 0?{errorMap:(ba,va)=>{const Ma=this._def.errorMap?.(ba,va).message??va.defaultError;return ba.code==="unrecognized_keys"?{message:errorUtil.errToObj(ma).message??Ma}:{message:Ma}}}:{}})}strip(){return new Z$t({...this._def,unknownKeys:"strip"})}passthrough(){return new Z$t({...this._def,unknownKeys:"passthrough"})}extend(ma){return new Z$t({...this._def,shape:()=>({...this._def.shape(),...ma})})}merge(ma){return new Z$t({unknownKeys:ma._def.unknownKeys,catchall:ma._def.catchall,shape:()=>({...this._def.shape(),...ma._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(ma,ba){return this.augment({[ma]:ba})}catchall(ma){return new Z$t({...this._def,catchall:ma})}pick(ma){const ba={};for(const va of util$2$1.objectKeys(ma))ma[va]&&this.shape[va]&&(ba[va]=this.shape[va]);return new Z$t({...this._def,shape:()=>ba})}omit(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape))ma[va]||(ba[va]=this.shape[va]);return new Z$t({...this._def,shape:()=>ba})}deepPartial(){return deepPartialify(this)}partial(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape)){const Ma=this.shape[va];ma&&!ma[va]?ba[va]=Ma:ba[va]=Ma.optional()}return new Z$t({...this._def,shape:()=>ba})}required(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape))if(ma&&!ma[va])ba[va]=this.shape[va];else{let Ma=this.shape[va];for(;Ma instanceof ZodOptional$1;)Ma=Ma._def.innerType;ba[va]=Ma}return new Z$t({...this._def,shape:()=>ba})}keyof(){return createZodEnum(util$2$1.objectKeys(this.shape))}};ZodObject$1.create=(ya,ma)=>new ZodObject$1({shape:()=>ya,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});ZodObject$1.strictCreate=(ya,ma)=>new ZodObject$1({shape:()=>ya,unknownKeys:"strict",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});ZodObject$1.lazycreate=(ya,ma)=>new ZodObject$1({shape:ya,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});let ZodUnion$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya),ba=this._def.options;function va(Ma){for(const El of Ma)if(El.result.status==="valid")return El.result;for(const El of Ma)if(El.result.status==="dirty")return ma.common.issues.push(...El.ctx.common.issues),El.result;const wl=Ma.map(El=>new ZodError(El.ctx.common.issues));return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_union,unionErrors:wl}),INVALID}if(ma.common.async)return Promise.all(ba.map(async Ma=>{const wl={...ma,common:{...ma.common,issues:[]},parent:null};return{result:await Ma._parseAsync({data:ma.data,path:ma.path,parent:wl}),ctx:wl}})).then(va);{let Ma;const wl=[];for(const Sl of ba){const Cl={...ma,common:{...ma.common,issues:[]},parent:null},Mc=Sl._parseSync({data:ma.data,path:ma.path,parent:Cl});if(Mc.status==="valid")return Mc;Mc.status==="dirty"&&!Ma&&(Ma={result:Mc,ctx:Cl}),Cl.common.issues.length&&wl.push(Cl.common.issues)}if(Ma)return ma.common.issues.push(...Ma.ctx.common.issues),Ma.result;const El=wl.map(Sl=>new ZodError(Sl));return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_union,unionErrors:El}),INVALID}}get options(){return this._def.options}};ZodUnion$1.create=(ya,ma)=>new ZodUnion$1({options:ya,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(ma)});const getDiscriminator=ya=>ya instanceof ZodLazy?getDiscriminator(ya.schema):ya instanceof ZodEffects?getDiscriminator(ya.innerType()):ya instanceof ZodLiteral$1?[ya.value]:ya instanceof ZodEnum$1?ya.options:ya instanceof ZodNativeEnum?util$2$1.objectValues(ya.enum):ya instanceof ZodDefault$1?getDiscriminator(ya._def.innerType):ya instanceof ZodUndefined?[void 0]:ya instanceof ZodNull$1?[null]:ya instanceof ZodOptional$1?[void 0,...getDiscriminator(ya.unwrap())]:ya instanceof ZodNullable$1?[null,...getDiscriminator(ya.unwrap())]:ya instanceof ZodBranded||ya instanceof ZodReadonly$1?getDiscriminator(ya.unwrap()):ya instanceof ZodCatch$1?getDiscriminator(ya._def.innerType):[];let ZodDiscriminatedUnion$1=class LRt extends ZodType$1{_parse(ma){const{ctx:ba}=this._processInputParams(ma);if(ba.parsedType!==ZodParsedType.object)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:ba.parsedType}),INVALID;const va=this.discriminator,Ma=ba.data[va],wl=this.optionsMap.get(Ma);return wl?ba.common.async?wl._parseAsync({data:ba.data,path:ba.path,parent:ba}):wl._parseSync({data:ba.data,path:ba.path,parent:ba}):(addIssueToContext(ba,{code:ZodIssueCode$1.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[va]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(ma,ba,va){const Ma=new Map;for(const wl of ba){const El=getDiscriminator(wl.shape[ma]);if(!El.length)throw new Error(`A discriminator value for key \`${ma}\` could not be extracted from all schema options`);for(const Sl of El){if(Ma.has(Sl))throw new Error(`Discriminator property ${String(ma)} has duplicate value ${String(Sl)}`);Ma.set(Sl,wl)}}return new LRt({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:ma,options:ba,optionsMap:Ma,...processCreateParams(va)})}};function mergeValues$1(ya,ma){const ba=getParsedType(ya),va=getParsedType(ma);if(ya===ma)return{valid:!0,data:ya};if(ba===ZodParsedType.object&&va===ZodParsedType.object){const Ma=util$2$1.objectKeys(ma),wl=util$2$1.objectKeys(ya).filter(Sl=>Ma.indexOf(Sl)!==-1),El={...ya,...ma};for(const Sl of wl){const Cl=mergeValues$1(ya[Sl],ma[Sl]);if(!Cl.valid)return{valid:!1};El[Sl]=Cl.data}return{valid:!0,data:El}}else if(ba===ZodParsedType.array&&va===ZodParsedType.array){if(ya.length!==ma.length)return{valid:!1};const Ma=[];for(let wl=0;wl<ya.length;wl++){const El=ya[wl],Sl=ma[wl],Cl=mergeValues$1(El,Sl);if(!Cl.valid)return{valid:!1};Ma.push(Cl.data)}return{valid:!0,data:Ma}}else return ba===ZodParsedType.date&&va===ZodParsedType.date&&+ya==+ma?{valid:!0,data:ya}:{valid:!1}}let ZodIntersection$1=class extends ZodType$1{_parse(ya){const{status:ma,ctx:ba}=this._processInputParams(ya),va=(Ma,wl)=>{if(isAborted(Ma)||isAborted(wl))return INVALID;const El=mergeValues$1(Ma.value,wl.value);return El.valid?((isDirty(Ma)||isDirty(wl))&&ma.dirty(),{status:ma.value,value:El.data}):(addIssueToContext(ba,{code:ZodIssueCode$1.invalid_intersection_types}),INVALID)};return ba.common.async?Promise.all([this._def.left._parseAsync({data:ba.data,path:ba.path,parent:ba}),this._def.right._parseAsync({data:ba.data,path:ba.path,parent:ba})]).then(([Ma,wl])=>va(Ma,wl)):va(this._def.left._parseSync({data:ba.data,path:ba.path,parent:ba}),this._def.right._parseSync({data:ba.data,path:ba.path,parent:ba}))}};ZodIntersection$1.create=(ya,ma,ba)=>new ZodIntersection$1({left:ya,right:ma,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(ba)});class ZodTuple extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.array)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.array,received:va.parsedType}),INVALID;if(va.data.length<this._def.items.length)return addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&va.data.length>this._def.items.length&&(addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ba.dirty());const Ma=[...va.data].map((wl,El)=>{const Sl=this._def.items[El]||this._def.rest;return Sl?Sl._parse(new ParseInputLazyPath(va,wl,va.path,El)):null}).filter(wl=>!!wl);return va.common.async?Promise.all(Ma).then(wl=>ParseStatus.mergeArray(ba,wl)):ParseStatus.mergeArray(ba,Ma)}get items(){return this._def.items}rest(ma){return new ZodTuple({...this._def,rest:ma})}}ZodTuple.create=(ya,ma)=>{if(!Array.isArray(ya))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:ya,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(ma)})};let ZodRecord$1=class YEt extends ZodType$1{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.object)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:va.parsedType}),INVALID;const Ma=[],wl=this._def.keyType,El=this._def.valueType;for(const Sl in va.data)Ma.push({key:wl._parse(new ParseInputLazyPath(va,Sl,va.path,Sl)),value:El._parse(new ParseInputLazyPath(va,va.data[Sl],va.path,Sl)),alwaysSet:Sl in va.data});return va.common.async?ParseStatus.mergeObjectAsync(ba,Ma):ParseStatus.mergeObjectSync(ba,Ma)}get element(){return this._def.valueType}static create(ma,ba,va){return ba instanceof ZodType$1?new YEt({keyType:ma,valueType:ba,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(va)}):new YEt({keyType:ZodString$1.create(),valueType:ma,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ba)})}};class ZodMap extends ZodType$1{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.map)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.map,received:va.parsedType}),INVALID;const Ma=this._def.keyType,wl=this._def.valueType,El=[...va.data.entries()].map(([Sl,Cl],Mc)=>({key:Ma._parse(new ParseInputLazyPath(va,Sl,va.path,[Mc,"key"])),value:wl._parse(new ParseInputLazyPath(va,Cl,va.path,[Mc,"value"]))}));if(va.common.async){const Sl=new Map;return Promise.resolve().then(async()=>{for(const Cl of El){const Mc=await Cl.key,dp=await Cl.value;if(Mc.status==="aborted"||dp.status==="aborted")return INVALID;(Mc.status==="dirty"||dp.status==="dirty")&&ba.dirty(),Sl.set(Mc.value,dp.value)}return{status:ba.value,value:Sl}})}else{const Sl=new Map;for(const Cl of El){const Mc=Cl.key,dp=Cl.value;if(Mc.status==="aborted"||dp.status==="aborted")return INVALID;(Mc.status==="dirty"||dp.status==="dirty")&&ba.dirty(),Sl.set(Mc.value,dp.value)}return{status:ba.value,value:Sl}}}}ZodMap.create=(ya,ma,ba)=>new ZodMap({valueType:ma,keyType:ya,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(ba)});class ZodSet extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.set)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.set,received:va.parsedType}),INVALID;const Ma=this._def;Ma.minSize!==null&&va.data.size<Ma.minSize.value&&(addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.minSize.value,type:"set",inclusive:!0,exact:!1,message:Ma.minSize.message}),ba.dirty()),Ma.maxSize!==null&&va.data.size>Ma.maxSize.value&&(addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Ma.maxSize.message}),ba.dirty());const wl=this._def.valueType;function El(Cl){const Mc=new Set;for(const dp of Cl){if(dp.status==="aborted")return INVALID;dp.status==="dirty"&&ba.dirty(),Mc.add(dp.value)}return{status:ba.value,value:Mc}}const Sl=[...va.data.values()].map((Cl,Mc)=>wl._parse(new ParseInputLazyPath(va,Cl,va.path,Mc)));return va.common.async?Promise.all(Sl).then(Cl=>El(Cl)):El(Sl)}min(ma,ba){return new ZodSet({...this._def,minSize:{value:ma,message:errorUtil.toString(ba)}})}max(ma,ba){return new ZodSet({...this._def,maxSize:{value:ma,message:errorUtil.toString(ba)}})}size(ma,ba){return this.min(ma,ba).max(ma,ba)}nonempty(ma){return this.min(1,ma)}}ZodSet.create=(ya,ma)=>new ZodSet({valueType:ya,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(ma)});class ZodLazy extends ZodType$1{get schema(){return this._def.getter()}_parse(ma){const{ctx:ba}=this._processInputParams(ma);return this._def.getter()._parse({data:ba.data,path:ba.path,parent:ba})}}ZodLazy.create=(ya,ma)=>new ZodLazy({getter:ya,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(ma)});let ZodLiteral$1=class extends ZodType$1{_parse(ya){if(ya.data!==this._def.value){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{received:ma.data,code:ZodIssueCode$1.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:ya.data}}get value(){return this._def.value}};ZodLiteral$1.create=(ya,ma)=>new ZodLiteral$1({value:ya,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(ma)});function createZodEnum(ya,ma){return new ZodEnum$1({values:ya,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(ma)})}let ZodEnum$1=class XEt extends ZodType$1{_parse(ma){if(typeof ma.data!="string"){const ba=this._getOrReturnCtx(ma),va=this._def.values;return addIssueToContext(ba,{expected:util$2$1.joinValues(va),received:ba.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(ma.data)){const ba=this._getOrReturnCtx(ma),va=this._def.values;return addIssueToContext(ba,{received:ba.data,code:ZodIssueCode$1.invalid_enum_value,options:va}),INVALID}return OK(ma.data)}get options(){return this._def.values}get enum(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}get Values(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}get Enum(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}extract(ma,ba=this._def){return XEt.create(ma,{...this._def,...ba})}exclude(ma,ba=this._def){return XEt.create(this.options.filter(va=>!ma.includes(va)),{...this._def,...ba})}};ZodEnum$1.create=createZodEnum;class ZodNativeEnum extends ZodType$1{_parse(ma){const ba=util$2$1.getValidEnumValues(this._def.values),va=this._getOrReturnCtx(ma);if(va.parsedType!==ZodParsedType.string&&va.parsedType!==ZodParsedType.number){const Ma=util$2$1.objectValues(ba);return addIssueToContext(va,{expected:util$2$1.joinValues(Ma),received:va.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(util$2$1.getValidEnumValues(this._def.values))),!this._cache.has(ma.data)){const Ma=util$2$1.objectValues(ba);return addIssueToContext(va,{received:va.data,code:ZodIssueCode$1.invalid_enum_value,options:Ma}),INVALID}return OK(ma.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(ya,ma)=>new ZodNativeEnum({values:ya,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(ma)});class ZodPromise extends ZodType$1{unwrap(){return this._def.type}_parse(ma){const{ctx:ba}=this._processInputParams(ma);if(ba.parsedType!==ZodParsedType.promise&&ba.common.async===!1)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.promise,received:ba.parsedType}),INVALID;const va=ba.parsedType===ZodParsedType.promise?ba.data:Promise.resolve(ba.data);return OK(va.then(Ma=>this._def.type.parseAsync(Ma,{path:ba.path,errorMap:ba.common.contextualErrorMap})))}}ZodPromise.create=(ya,ma)=>new ZodPromise({type:ya,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(ma)});class ZodEffects extends ZodType$1{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma),Ma=this._def.effect||null,wl={addIssue:El=>{addIssueToContext(va,El),El.fatal?ba.abort():ba.dirty()},get path(){return va.path}};if(wl.addIssue=wl.addIssue.bind(wl),Ma.type==="preprocess"){const El=Ma.transform(va.data,wl);if(va.common.async)return Promise.resolve(El).then(async Sl=>{if(ba.value==="aborted")return INVALID;const Cl=await this._def.schema._parseAsync({data:Sl,path:va.path,parent:va});return Cl.status==="aborted"?INVALID:Cl.status==="dirty"||ba.value==="dirty"?DIRTY(Cl.value):Cl});{if(ba.value==="aborted")return INVALID;const Sl=this._def.schema._parseSync({data:El,path:va.path,parent:va});return Sl.status==="aborted"?INVALID:Sl.status==="dirty"||ba.value==="dirty"?DIRTY(Sl.value):Sl}}if(Ma.type==="refinement"){const El=Sl=>{const Cl=Ma.refinement(Sl,wl);if(va.common.async)return Promise.resolve(Cl);if(Cl instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Sl};if(va.common.async===!1){const Sl=this._def.schema._parseSync({data:va.data,path:va.path,parent:va});return Sl.status==="aborted"?INVALID:(Sl.status==="dirty"&&ba.dirty(),El(Sl.value),{status:ba.value,value:Sl.value})}else return this._def.schema._parseAsync({data:va.data,path:va.path,parent:va}).then(Sl=>Sl.status==="aborted"?INVALID:(Sl.status==="dirty"&&ba.dirty(),El(Sl.value).then(()=>({status:ba.value,value:Sl.value}))))}if(Ma.type==="transform")if(va.common.async===!1){const El=this._def.schema._parseSync({data:va.data,path:va.path,parent:va});if(!isValid(El))return INVALID;const Sl=Ma.transform(El.value,wl);if(Sl instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:ba.value,value:Sl}}else return this._def.schema._parseAsync({data:va.data,path:va.path,parent:va}).then(El=>isValid(El)?Promise.resolve(Ma.transform(El.value,wl)).then(Sl=>({status:ba.value,value:Sl})):INVALID);util$2$1.assertNever(Ma)}}ZodEffects.create=(ya,ma,ba)=>new ZodEffects({schema:ya,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:ma,...processCreateParams(ba)});ZodEffects.createWithPreprocess=(ya,ma,ba)=>new ZodEffects({schema:ma,effect:{type:"preprocess",transform:ya},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(ba)});let ZodOptional$1=class extends ZodType$1{_parse(ya){return this._getType(ya)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(ya)}unwrap(){return this._def.innerType}};ZodOptional$1.create=(ya,ma)=>new ZodOptional$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(ma)});let ZodNullable$1=class extends ZodType$1{_parse(ya){return this._getType(ya)===ZodParsedType.null?OK(null):this._def.innerType._parse(ya)}unwrap(){return this._def.innerType}};ZodNullable$1.create=(ya,ma)=>new ZodNullable$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(ma)});let ZodDefault$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya);let ba=ma.data;return ma.parsedType===ZodParsedType.undefined&&(ba=this._def.defaultValue()),this._def.innerType._parse({data:ba,path:ma.path,parent:ma})}removeDefault(){return this._def.innerType}};ZodDefault$1.create=(ya,ma)=>new ZodDefault$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof ma.default=="function"?ma.default:()=>ma.default,...processCreateParams(ma)});let ZodCatch$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya),ba={...ma,common:{...ma.common,issues:[]}},va=this._def.innerType._parse({data:ba.data,path:ba.path,parent:{...ba}});return isAsync(va)?va.then(Ma=>({status:"valid",value:Ma.status==="valid"?Ma.value:this._def.catchValue({get error(){return new ZodError(ba.common.issues)},input:ba.data})})):{status:"valid",value:va.status==="valid"?va.value:this._def.catchValue({get error(){return new ZodError(ba.common.issues)},input:ba.data})}}removeCatch(){return this._def.innerType}};ZodCatch$1.create=(ya,ma)=>new ZodCatch$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof ma.catch=="function"?ma.catch:()=>ma.catch,...processCreateParams(ma)});class ZodNaN extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.nan){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.nan,received:ba.parsedType}),INVALID}return{status:"valid",value:ma.data}}}ZodNaN.create=ya=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(ya)});class ZodBranded extends ZodType$1{_parse(ma){const{ctx:ba}=this._processInputParams(ma),va=ba.data;return this._def.type._parse({data:va,path:ba.path,parent:ba})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.common.async)return(async()=>{const Ma=await this._def.in._parseAsync({data:va.data,path:va.path,parent:va});return Ma.status==="aborted"?INVALID:Ma.status==="dirty"?(ba.dirty(),DIRTY(Ma.value)):this._def.out._parseAsync({data:Ma.value,path:va.path,parent:va})})();{const Ma=this._def.in._parseSync({data:va.data,path:va.path,parent:va});return Ma.status==="aborted"?INVALID:Ma.status==="dirty"?(ba.dirty(),{status:"dirty",value:Ma.value}):this._def.out._parseSync({data:Ma.value,path:va.path,parent:va})}}static create(ma,ba){return new ZodPipeline({in:ma,out:ba,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}let ZodReadonly$1=class extends ZodType$1{_parse(ya){const ma=this._def.innerType._parse(ya),ba=va=>(isValid(va)&&(va.value=Object.freeze(va.value)),va);return isAsync(ma)?ma.then(va=>ba(va)):ba(ma)}unwrap(){return this._def.innerType}};ZodReadonly$1.create=(ya,ma)=>new ZodReadonly$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(ma)});var ZodFirstPartyTypeKind;(function(ya){ya.ZodString="ZodString",ya.ZodNumber="ZodNumber",ya.ZodNaN="ZodNaN",ya.ZodBigInt="ZodBigInt",ya.ZodBoolean="ZodBoolean",ya.ZodDate="ZodDate",ya.ZodSymbol="ZodSymbol",ya.ZodUndefined="ZodUndefined",ya.ZodNull="ZodNull",ya.ZodAny="ZodAny",ya.ZodUnknown="ZodUnknown",ya.ZodNever="ZodNever",ya.ZodVoid="ZodVoid",ya.ZodArray="ZodArray",ya.ZodObject="ZodObject",ya.ZodUnion="ZodUnion",ya.ZodDiscriminatedUnion="ZodDiscriminatedUnion",ya.ZodIntersection="ZodIntersection",ya.ZodTuple="ZodTuple",ya.ZodRecord="ZodRecord",ya.ZodMap="ZodMap",ya.ZodSet="ZodSet",ya.ZodFunction="ZodFunction",ya.ZodLazy="ZodLazy",ya.ZodLiteral="ZodLiteral",ya.ZodEnum="ZodEnum",ya.ZodEffects="ZodEffects",ya.ZodNativeEnum="ZodNativeEnum",ya.ZodOptional="ZodOptional",ya.ZodNullable="ZodNullable",ya.ZodDefault="ZodDefault",ya.ZodCatch="ZodCatch",ya.ZodPromise="ZodPromise",ya.ZodBranded="ZodBranded",ya.ZodPipeline="ZodPipeline",ya.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const stringType=ZodString$1.create,numberType=ZodNumber$1.create,booleanType=ZodBoolean$1.create,anyType=ZodAny$1.create;ZodNever$1.create;const arrayType=ZodArray$1.create,objectType=ZodObject$1.create;ZodUnion$1.create;const discriminatedUnionType=ZodDiscriminatedUnion$1.create;ZodIntersection$1.create;ZodTuple.create;const recordType=ZodRecord$1.create,literalType=ZodLiteral$1.create,enumType=ZodEnum$1.create;ZodPromise.create;ZodOptional$1.create;ZodNullable$1.create;objectType({service:objectType({port:numberType(),host:stringType().optional(),httpFileHandling:booleanType().default(!1)}).default({port:8080,host:"localhost",httpFileHandling:!1}),store:discriminatedUnionType("type",[objectType({type:literalType("postgres"),host:stringType().default("localhost"),username:stringType().default("postgres"),password:stringType().default("postgres"),dbname:stringType().default("postgres"),port:numberType().default(5432)}),objectType({type:literalType("mysql"),host:stringType().default("localhost"),username:stringType().default("mysql"),password:stringType().default("mysql"),dbname:stringType().default("mysql"),port:numberType().default(3306)}),objectType({type:literalType("sqlite"),dbname:stringType().optional()})]).optional(),integrations:objectType({host:stringType(),username:stringType().optional(),password:stringType().optional(),connections:recordType(stringType(),stringType())}).optional(),graphql:objectType({enabled:booleanType().default(!1)}).optional(),rbac:objectType({enabled:booleanType().default(!1),roles:arrayType(stringType()).optional()}).optional(),auth:objectType({enabled:booleanType().default(!1)}).optional(),auditTrail:objectType({enabled:booleanType().default(!1)}).optional(),monitoring:objectType({enabled:booleanType().default(!1)}).optional(),authentication:discriminatedUnionType("service",[objectType({service:literalType("okta"),superuserEmail:stringType(),domain:stringType(),cookieDomain:stringType().optional(),authServer:stringType().default("default"),clientSecret:stringType(),apiToken:stringType(),scope:stringType().default("openid offline_access"),cookieTtlMs:numberType().default(12096e5),introspect:booleanType().default(!0),authorizeRedirectUrl:stringType(),clientUrl:stringType(),roleClaim:stringType().default("roles"),defaultRole:stringType().default("user"),clientId:stringType()}),objectType({service:literalType("cognito"),superuserEmail:stringType(),superuserPassword:stringType().optional(),isIdentityStore:booleanType().default(!1),userPoolId:stringType(),clientId:stringType(),whitelistEnabled:booleanType().default(!1),disableUserSessions:booleanType().default(!1)})]).optional(),openapi:arrayType(objectType({specUrl:stringType(),baseUrl:stringType().optional(),name:stringType()})).optional(),logging:objectType({level:enumType(["error","warn","info","debug"]).default("info")}).optional(),retry:arrayType(objectType({name:stringType(),attempts:numberType(),backoff:objectType({strategy:enumType(["linear","exponential","constant"]),delay:numberType(),magnitude:enumType(["seconds","milliSeconds","minutes"]),factor:numberType()})})).optional()});function isMonitoringEnabled(){var ya;return((ya=void 0)===null||ya===void 0?void 0:ya.enabled)===!0}class TtlCache{constructor(ma){this.store=new Map,this.ttlMs=ma}set(ma,ba,va){va=va||this.ttlMs;const Ma=Date.now()+va;return this.store.set(ma,{value:ba,expireTime:Ma}),setTimeout(()=>{const wl=this.store.get(ma);wl&&wl.expireTime===Ma&&this.store.delete(ma)},va),ba}get(ma){const ba=this.store.get(ma);if(ba!==void 0){if(Date.now()>ba.expireTime){this.store.delete(ma);return}return ba.value}}delete(ma){this.store.delete(ma)}}const AdminUserId="00000000-0000-0000-0000-000000000000";function isAuthEnabled(){var ya;return((ya=void 0)===null||ya===void 0?void 0:ya.enabled)==!0}function isRbacEnabled(){var ya;return isAuthEnabled()&&((ya=void 0)===null||ya===void 0?void 0:ya.enabled)==!0}const AdminSession={sessionId:crypto.randomUUID(),userId:AdminUserId},LocalEnv=new Map;function getLocalEnv$1(ya,ma){const ba=LocalEnv.get(ya);if(ba!==void 0)return ba;if(typeof E$c<"u"&&E$c.env){const va=E$c.env[ya];if(va!==void 0)return va}return ma}const PathAttributeName="__path__",PathAttributeNameQuery="__path__?",ParentAttributeName="__parent__",DeletedFlagAttributeName="__is_deleted__",TenantAttributeName="__tenant__";function asUnauthMessage(ya){return typeof ya=="string"?ya:`User not authorised to perform '${ya.opr}' on ${ya.entity}`}class UnauthorisedError extends Error{constructor(ma,ba){super(ma?asUnauthMessage(ma):"User not authorised to perform this operation",ba)}}let BadRequestError$2=class extends Error{constructor(ya,ma){super(ya?asUnauthMessage(ya):"BadRequest",ma)}};class UserNotFoundError extends Error{constructor(ma,ba){super(ma||"User not found",ba)}}class UserNotConfirmedError extends Error{constructor(ma,ba){super(ma||"User account is not confirmed. Please check your email for verification code.",ba)}}class PasswordResetRequiredError extends Error{constructor(ma,ba){super(ma||"Password reset is required for this account",ba)}}let TooManyRequestsError$1=class extends Error{constructor(ya,ma){super(ya||"Too many requests. Please try again later.",ma)}};class InvalidParameterError extends Error{constructor(ma,ba){super(ma||"Invalid parameters provided",ba)}}class ExpiredCodeError extends Error{constructor(ma,ba){super(ma||"The verification code has expired. Please request a new one.",ba)}}class CodeMismatchError extends Error{constructor(ma,ba){super(ma||"The verification code is incorrect. Please try again.",ba)}}let FetchModuleFn;function setModuleFnFetcher(ya){FetchModuleFn=ya}const ForceReadPermFlag="f-r-f",FlowSuspensionTag="--";var SubGraphType;(function(ya){ya[ya.EVENT=0]="EVENT",ya[ya.IF=1]="IF",ya[ya.IF_WITH_ALIAS=2]="IF_WITH_ALIAS",ya[ya.FOR_EACH=3]="FOR_EACH",ya[ya.DELETE=4]="DELETE",ya[ya.PURGE=5]="PURGE",ya[ya.RETURN=6]="RETURN",ya[ya.AGENT=7]="AGENT",ya[ya.THROW=8]="THROW",ya[ya.NONE=9]="NONE"})(SubGraphType||(SubGraphType={}));class ExecGraph{static isEmpty(ma){return Object.is(ExecGraph.Empty,ma)}constructor(){this.parentGraph=void 0,this.hasAgentsFlag=!1,this.loopBody=!1,this.rootNodes=new Array,this.subGraphs=new Array}pushNode(ma){return this.rootNodes.push(ma),this}pushSubGraph(ma){return ma.parentGraph=this,this.subGraphs.push(ma),this}getSubGraphsLength(){return this.subGraphs.length}getLastSubGraphIndex(){return this.subGraphs.length-1}fetchSubGraphAt(ma){if(ma<0||ma>=this.subGraphs.length)throw new Error(`Invalid sub-graph index: ${ma}`);return this.subGraphs[ma]}fetchForEachBodySubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfWithAliasSubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfConsequentSubGraph(){return this.subGraphs.length>=2?this.fetchSubGraphAt(this.subGraphs.length-2):this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfAlternativeSubGraph(){if(this.subGraphs.length>=2)return this.fetchSubGraphAt(this.subGraphs.length-1)}getRootNodes(){return this.rootNodes}setActiveModuleName(ma){return ma&&(this.activeModuleName=ma),this}getActiveModuleName(){return this.activeModuleName}getParentGraph(){return this.parentGraph}setEventName(ma){return ma!==void 0&&(this.eventName=ma),this}getEventName(){return this.eventName}setHasAgents(ma){return this.hasAgentsFlag=ma,this.parentGraph&&this.parentGraph.setHasAgents(ma),this}hasAgents(){return this.hasAgentsFlag}canCache(){return!this.hasAgentsFlag}setIsLoopBody(){return this.loopBody=!0,this}isLoopBody(){return this.loopBody}asObject(){const ma=new Array;return this.rootNodes.forEach(ba=>{var va;const Ma=ba.asObject();if(ba.subGraphIndex>=0){const wl=this.subGraphs[ba.subGraphIndex],El=wl.asObject();if(ba.subGraphType==SubGraphType.FOR_EACH){const Sl=ba.code;Ma.var=(va=Sl.pattern.forEach)===null||va===void 0?void 0:va.var,Ma.source=El,Ma.body=wl.fetchForEachBodySubGraph().asObject()}else if(ba.subGraphType==SubGraphType.IF){Ma.condition=El,Ma.body=wl.fetchIfConsequentSubGraph().asObject();const Sl=wl.fetchIfAlternativeSubGraph();Sl&&(Ma.else=Sl.asObject())}else Ma.subGraph=El}ma.push(Ma)}),ma}}ExecGraph.Empty=new ExecGraph;var RuntimeModeTag;(function(ya){ya[ya.DEV=0]="DEV",ya[ya.PROD=1]="PROD",ya[ya.TEST=2]="TEST",ya[ya.INIT_SCHEMA=3]="INIT_SCHEMA",ya[ya.RUN_MIGRATION=4]="RUN_MIGRATION",ya[ya.UNDO_MIGRATION=5]="UNDO_MIGRATION",ya[ya.GENERATE_MIGRATION=6]="GENERATE_MIGRATION"})(RuntimeModeTag||(RuntimeModeTag={}));RuntimeModeTag.DEV;const DefaultTenantId="00000000-0000-0000-0000-000000000000";let getUserTenantId$1=async function(ya,ma){return DefaultTenantId};function set_getUserTenantId(ya){getUserTenantId$1=ya}let DailyRotateFile,winston;isNodeEnv&&(await __vitePreload(()=>import("./index-D4z_hbl0-CnvKJFzI.js"),__vite__mapDeps([12,11,13,1,3,9,5,14,15,16,17,18,19,10,20,21,4])).then(ya=>ya.i).then(ya=>{DailyRotateFile=ya.default}),await __vitePreload(()=>import("./winston-CtxF18qc-CAV82HbO.js"),__vite__mapDeps([22,11,13,1,3,9,5,14,15,16,18,19,10,20,21,17,4])).then(ya=>ya.w).then(ya=>{winston=ya.default}));let logger$1;function getLogLevel(){var ya;return isNodeEnv&&E$c.env&&E$c.env.DEBUG?"debug":((ya=void 0)===null||ya===void 0?void 0:ya.level)||"info"}function initializeLogger(){const ya=getLogLevel();if(isNodeEnv){const ma=new DailyRotateFile({level:ya,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$1=winston.createLogger({level:ya,format:winston.format.combine(winston.format.timestamp(),winston.format.printf(({timestamp:ba,level:va,message:Ma})=>`[${ba}] ${va}: ${Ma}`)),transports:[ma]})}else{let ma=function(ba){return va=>{console.log(`${ba}: ${va}`)}};logger$1={debug:ma("DEBUG"),info:ma("INFO"),warn:ma("WARN"),error:ma("ERROR")}}}initializeLogger();const PlannerInstructions=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
16618
+ `))}async function introspect(ya){let ma=[];const ba=await parse$3$1(`module Temp workflow Test {${ya}}`);if(maybeRaiseParserErrors(ba),isWorkflowDefinition(ba.parseResult.value.defs[0]))ma=introspectHelper(ba.parseResult.value.defs[0].statements);else throw new Error("Failed to parse statements");return ma}function introspectHelper(ya){const ma=[];return ya.forEach(ba=>{ma.push(introspectStatement(ba))}),ma}function introspectStatement(ya){const ma=introspectPattern(ya.pattern),ba=firstAliasSpec(ya);ba&&(ba.alias?ma.setAlias(ba.alias):ba.aliases.length>0&&ma.setAliases(ba.aliases));const va=firstCatchSpec(ya);return va&&va.handlers.forEach(Ma=>{ma.addHandler(Ma.except,introspectStatement(Ma.stmt))}),ma}function introspectPattern(ya){let ma;if(ya.crudMap?(isQueryPattern(ya)?ma=introspectQueryPattern(ya.crudMap):ma=introspectCreatePattern(ya.crudMap),ya.crudMap.into&&(ma=introspectInto(ya.crudMap.into,ma))):ya.expr?ma=introspectExpression(ya.expr):ya.forEach?ma=introspectForEach(ya.forEach):ya.if?ma=introspectIf(ya.if):ya.delete?ma=introspectDelete(ya.delete):ya.return?ma=introspectReturn(ya.return):ya.fullTextSearch&&(ma=introspectFullTextSearch(ya.fullTextSearch)),ma)return ma;throw new Error(`Failed to introspect pattern: ${ya}`)}function introspectInto(ya,ma){return ya.entries.forEach(ba=>{ba.attribute&&ma.addInto(ba.alias,ba.attribute)}),ma}function isQueryPattern(ya){if(ya.crudMap){const ma=ya.crudMap,ba=ma.name.endsWith(QuerySuffix);return!ba&&ma.body?ma.body.attributes.length>0&&ma.body.attributes.every(va=>va.name.endsWith(QuerySuffix)):ba}return!1}function introspectGroup(ya){return new GroupExpressionPattern(introspectExpression(ya.ge))}function introspectNegExpr(ya){return new NegExpressionPattern(introspectExpression(ya.ne))}function introspectNotExpr(ya){return new NotExpressionPattern(introspectExpression(ya.ne))}function introspectPrimExpr(ya){if(isLiteral(ya))return introspectLiteral(ya);if(isGroup(ya))return introspectGroup(ya);if(isNegExpr(ya))return introspectNegExpr(ya);if(isNotExpr(ya))return introspectNotExpr(ya);throw new Error(`Not a PrimExpr - ${ya}`)}function introspectExpression(ya){if(ya!==void 0){if(isPrimExpr(ya))return introspectPrimExpr(ya);if(ya.$cstNode)return new ExpressionPattern(ya.$cstNode.text)}throw new Error("Failed to introspect expression - "+ya)}function introspectQueryPattern(ya){var ma;if(ya){const ba=new CrudPattern(ya.name);return(ma=ya.body)===null||ma===void 0||ma.attributes.forEach(va=>{ba.addAttribute(va.name,introspectExpression(va.value),va.op)}),ya.relationships.forEach(va=>{ba.addRelationship(va.name,introspectPattern(va.pattern))}),ba.isCreate=!1,ba.isQueryUpdate=!1,ba.isQuery=!0,ba}throw new Error(`Failed to introspect query-pattern: ${ya}`)}function introspectCreatePattern(ya){var ma;if(ya){const ba=new CrudPattern(ya.name);ba.isCreate=!1,ba.isQuery=!1;let va=!1;return(ma=ya.body)===null||ma===void 0||ma.attributes.forEach(Ma=>{!va&&Ma.name.endsWith(QuerySuffix)&&(va=!0),ba.addAttribute(Ma.name,introspectExpression(Ma.value),Ma.op)}),ya.relationships.forEach(Ma=>{ba.addRelationship(Ma.name,introspectPattern(Ma.pattern))}),ba.isQueryUpdate=va,va?(ba.isCreate=!1,ba.isQuery=!1):(ba.isCreate=!0,ba.isQuery=!1),ba}throw new Error(`Failed to introspect create-pattern: ${ya}`)}function asFnCallPattern(ya){return new FunctionCallPattern(ya.name,ya.args.map(ma=>isExpr(ma)?introspectExpression(ma):introspectLiteral(ma)))}function introspectLiteral(ya){if(ya.id)return LiteralPattern.Id(ya.id);if(ya.num)return LiteralPattern.Number(ya.num);if(ya.ref)return LiteralPattern.Reference(ya.ref);if(ya.str!==void 0)return LiteralPattern.String(ya.str);if(ya.bool)return LiteralPattern.Boolean(ya.bool=="true");if(ya.fnCall)return asFnCallPattern(ya.fnCall);if(ya.asyncFnCall)return asFnCallPattern(ya.asyncFnCall.fnCall).asAsync();if(ya.array)return LiteralPattern.Array(ya.array.vals.map(ma=>introspectStatement(ma)));if(ya.map)return introspectMapLiteral(ya.map);throw new Error(`Invalid literal - ${ya}`)}function introspectMapLiteral(ya){const ma=new Map;return ya.entries.forEach(ba=>{ma.set(ba.key,introspectExpression(ba.value))}),LiteralPattern.Map(ma)}function introspectForEach(ya){const ma=new ForEachPattern(ya.var,introspectPattern(ya.src));return ya.statements.forEach(ba=>{ma.addPattern(introspectStatement(ba))}),ma}function introspectIf(ya){const ma=new IfPattern(introspectExpression(ya.cond));return ya.statements.forEach(ba=>{ma.addPattern(introspectStatement(ba))}),ya.else&&ma.setElse(ya.else.statements.map(ba=>introspectStatement(ba))),ma}function introspectDelete(ya){return new DeletePattern(introspectPattern(ya.pattern))}function introspectReturn(ya){return new ReturnPattern(introspectPattern(ya.pattern))}function introspectFullTextSearch(ya){let ma;return ya.options&&(ma=introspectMapLiteral(ya.options)),new FullTextSearchPattern(ya.name,introspectLiteral(ya.query),ma)}var util$2$1;(function(ya){ya.assertEqual=Ma=>{};function ma(Ma){}ya.assertIs=ma;function ba(Ma){throw new Error}ya.assertNever=ba,ya.arrayToEnum=Ma=>{const wl={};for(const El of Ma)wl[El]=El;return wl},ya.getValidEnumValues=Ma=>{const wl=ya.objectKeys(Ma).filter(Sl=>typeof Ma[Ma[Sl]]!="number"),El={};for(const Sl of wl)El[Sl]=Ma[Sl];return ya.objectValues(El)},ya.objectValues=Ma=>ya.objectKeys(Ma).map(function(wl){return Ma[wl]}),ya.objectKeys=typeof Object.keys=="function"?Ma=>Object.keys(Ma):Ma=>{const wl=[];for(const El in Ma)Object.prototype.hasOwnProperty.call(Ma,El)&&wl.push(El);return wl},ya.find=(Ma,wl)=>{for(const El of Ma)if(wl(El))return El},ya.isInteger=typeof Number.isInteger=="function"?Ma=>Number.isInteger(Ma):Ma=>typeof Ma=="number"&&Number.isFinite(Ma)&&Math.floor(Ma)===Ma;function va(Ma,wl=" | "){return Ma.map(El=>typeof El=="string"?`'${El}'`:El).join(wl)}ya.joinValues=va,ya.jsonStringifyReplacer=(Ma,wl)=>typeof wl=="bigint"?wl.toString():wl})(util$2$1||(util$2$1={}));var objectUtil;(function(ya){ya.mergeShapes=(ma,ba)=>({...ma,...ba})})(objectUtil||(objectUtil={}));const ZodParsedType=util$2$1.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=ya=>{switch(typeof ya){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(ya)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(ya)?ZodParsedType.array:ya===null?ZodParsedType.null:ya.then&&typeof ya.then=="function"&&ya.catch&&typeof ya.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&ya instanceof Map?ZodParsedType.map:typeof Set<"u"&&ya instanceof Set?ZodParsedType.set:typeof Date<"u"&&ya instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode$1=util$2$1.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor(ma){super(),this.issues=[],this.addIssue=va=>{this.issues=[...this.issues,va]},this.addIssues=(va=[])=>{this.issues=[...this.issues,...va]};const ba=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,ba):this.__proto__=ba,this.name="ZodError",this.issues=ma}format(ma){const ba=ma||function(wl){return wl.message},va={_errors:[]},Ma=wl=>{for(const El of wl.issues)if(El.code==="invalid_union")El.unionErrors.map(Ma);else if(El.code==="invalid_return_type")Ma(El.returnTypeError);else if(El.code==="invalid_arguments")Ma(El.argumentsError);else if(El.path.length===0)va._errors.push(ba(El));else{let Sl=va,Cl=0;for(;Cl<El.path.length;){const Mc=El.path[Cl];Cl===El.path.length-1?(Sl[Mc]=Sl[Mc]||{_errors:[]},Sl[Mc]._errors.push(ba(El))):Sl[Mc]=Sl[Mc]||{_errors:[]},Sl=Sl[Mc],Cl++}}};return Ma(this),va}static assert(ma){if(!(ma instanceof ZodError))throw new Error(`Not a ZodError: ${ma}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$2$1.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(ma=ba=>ba.message){const ba={},va=[];for(const Ma of this.issues)if(Ma.path.length>0){const wl=Ma.path[0];ba[wl]=ba[wl]||[],ba[wl].push(ma(Ma))}else va.push(ma(Ma));return{formErrors:va,fieldErrors:ba}}get formErrors(){return this.flatten()}}ZodError.create=ya=>new ZodError(ya);const errorMap=(ya,ma)=>{let ba;switch(ya.code){case ZodIssueCode$1.invalid_type:ya.received===ZodParsedType.undefined?ba="Required":ba=`Expected ${ya.expected}, received ${ya.received}`;break;case ZodIssueCode$1.invalid_literal:ba=`Invalid literal value, expected ${JSON.stringify(ya.expected,util$2$1.jsonStringifyReplacer)}`;break;case ZodIssueCode$1.unrecognized_keys:ba=`Unrecognized key(s) in object: ${util$2$1.joinValues(ya.keys,", ")}`;break;case ZodIssueCode$1.invalid_union:ba="Invalid input";break;case ZodIssueCode$1.invalid_union_discriminator:ba=`Invalid discriminator value. Expected ${util$2$1.joinValues(ya.options)}`;break;case ZodIssueCode$1.invalid_enum_value:ba=`Invalid enum value. Expected ${util$2$1.joinValues(ya.options)}, received '${ya.received}'`;break;case ZodIssueCode$1.invalid_arguments:ba="Invalid function arguments";break;case ZodIssueCode$1.invalid_return_type:ba="Invalid function return type";break;case ZodIssueCode$1.invalid_date:ba="Invalid date";break;case ZodIssueCode$1.invalid_string:typeof ya.validation=="object"?"includes"in ya.validation?(ba=`Invalid input: must include "${ya.validation.includes}"`,typeof ya.validation.position=="number"&&(ba=`${ba} at one or more positions greater than or equal to ${ya.validation.position}`)):"startsWith"in ya.validation?ba=`Invalid input: must start with "${ya.validation.startsWith}"`:"endsWith"in ya.validation?ba=`Invalid input: must end with "${ya.validation.endsWith}"`:util$2$1.assertNever(ya.validation):ya.validation!=="regex"?ba=`Invalid ${ya.validation}`:ba="Invalid";break;case ZodIssueCode$1.too_small:ya.type==="array"?ba=`Array must contain ${ya.exact?"exactly":ya.inclusive?"at least":"more than"} ${ya.minimum} element(s)`:ya.type==="string"?ba=`String must contain ${ya.exact?"exactly":ya.inclusive?"at least":"over"} ${ya.minimum} character(s)`:ya.type==="number"?ba=`Number must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${ya.minimum}`:ya.type==="bigint"?ba=`Number must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${ya.minimum}`:ya.type==="date"?ba=`Date must be ${ya.exact?"exactly equal to ":ya.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(ya.minimum))}`:ba="Invalid input";break;case ZodIssueCode$1.too_big:ya.type==="array"?ba=`Array must contain ${ya.exact?"exactly":ya.inclusive?"at most":"less than"} ${ya.maximum} element(s)`:ya.type==="string"?ba=`String must contain ${ya.exact?"exactly":ya.inclusive?"at most":"under"} ${ya.maximum} character(s)`:ya.type==="number"?ba=`Number must be ${ya.exact?"exactly":ya.inclusive?"less than or equal to":"less than"} ${ya.maximum}`:ya.type==="bigint"?ba=`BigInt must be ${ya.exact?"exactly":ya.inclusive?"less than or equal to":"less than"} ${ya.maximum}`:ya.type==="date"?ba=`Date must be ${ya.exact?"exactly":ya.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(ya.maximum))}`:ba="Invalid input";break;case ZodIssueCode$1.custom:ba="Invalid input";break;case ZodIssueCode$1.invalid_intersection_types:ba="Intersection results could not be merged";break;case ZodIssueCode$1.not_multiple_of:ba=`Number must be a multiple of ${ya.multipleOf}`;break;case ZodIssueCode$1.not_finite:ba="Number must be finite";break;default:ba=ma.defaultError,util$2$1.assertNever(ya)}return{message:ba}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=ya=>{const{data:ma,path:ba,errorMaps:va,issueData:Ma}=ya,wl=[...ba,...Ma.path||[]],El={...Ma,path:wl};if(Ma.message!==void 0)return{...Ma,path:wl,message:Ma.message};let Sl="";const Cl=va.filter(Mc=>!!Mc).slice().reverse();for(const Mc of Cl)Sl=Mc(El,{data:ma,defaultError:Sl}).message;return{...Ma,path:wl,message:Sl}};function addIssueToContext(ya,ma){const ba=getErrorMap(),va=makeIssue({issueData:ma,data:ya.data,path:ya.path,errorMaps:[ya.common.contextualErrorMap,ya.schemaErrorMap,ba,ba===errorMap?void 0:errorMap].filter(Ma=>!!Ma)});ya.common.issues.push(va)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(ma,ba){const va=[];for(const Ma of ba){if(Ma.status==="aborted")return INVALID;Ma.status==="dirty"&&ma.dirty(),va.push(Ma.value)}return{status:ma.value,value:va}}static async mergeObjectAsync(ma,ba){const va=[];for(const Ma of ba){const wl=await Ma.key,El=await Ma.value;va.push({key:wl,value:El})}return ParseStatus.mergeObjectSync(ma,va)}static mergeObjectSync(ma,ba){const va={};for(const Ma of ba){const{key:wl,value:El}=Ma;if(wl.status==="aborted"||El.status==="aborted")return INVALID;wl.status==="dirty"&&ma.dirty(),El.status==="dirty"&&ma.dirty(),wl.value!=="__proto__"&&(typeof El.value<"u"||Ma.alwaysSet)&&(va[wl.value]=El.value)}return{status:ma.value,value:va}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=ya=>({status:"dirty",value:ya}),OK=ya=>({status:"valid",value:ya}),isAborted=ya=>ya.status==="aborted",isDirty=ya=>ya.status==="dirty",isValid=ya=>ya.status==="valid",isAsync=ya=>typeof Promise<"u"&&ya instanceof Promise;var errorUtil;(function(ya){ya.errToObj=ma=>typeof ma=="string"?{message:ma}:ma||{},ya.toString=ma=>typeof ma=="string"?ma:ma?.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor(ma,ba,va,Ma){this._cachedPath=[],this.parent=ma,this.data=ba,this._path=va,this._key=Ma}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(ya,ma)=>{if(isValid(ma))return{success:!0,data:ma.value};if(!ya.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const ba=new ZodError(ya.common.issues);return this._error=ba,this._error}}};function processCreateParams(ya){if(!ya)return{};const{errorMap:ma,invalid_type_error:ba,required_error:va,description:Ma}=ya;if(ma&&(ba||va))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return ma?{errorMap:ma,description:Ma}:{errorMap:(wl,El)=>{const{message:Sl}=ya;return wl.code==="invalid_enum_value"?{message:Sl??El.defaultError}:typeof El.data>"u"?{message:Sl??va??El.defaultError}:wl.code!=="invalid_type"?{message:El.defaultError}:{message:Sl??ba??El.defaultError}},description:Ma}}let ZodType$1=class{get description(){return this._def.description}_getType(ya){return getParsedType(ya.data)}_getOrReturnCtx(ya,ma){return ma||{common:ya.parent.common,data:ya.data,parsedType:getParsedType(ya.data),schemaErrorMap:this._def.errorMap,path:ya.path,parent:ya.parent}}_processInputParams(ya){return{status:new ParseStatus,ctx:{common:ya.parent.common,data:ya.data,parsedType:getParsedType(ya.data),schemaErrorMap:this._def.errorMap,path:ya.path,parent:ya.parent}}}_parseSync(ya){const ma=this._parse(ya);if(isAsync(ma))throw new Error("Synchronous parse encountered promise.");return ma}_parseAsync(ya){const ma=this._parse(ya);return Promise.resolve(ma)}parse(ya,ma){const ba=this.safeParse(ya,ma);if(ba.success)return ba.data;throw ba.error}safeParse(ya,ma){const ba={common:{issues:[],async:ma?.async??!1,contextualErrorMap:ma?.errorMap},path:ma?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)},va=this._parseSync({data:ya,path:ba.path,parent:ba});return handleResult(ba,va)}"~validate"(ya){const ma={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)};if(!this["~standard"].async)try{const ba=this._parseSync({data:ya,path:[],parent:ma});return isValid(ba)?{value:ba.value}:{issues:ma.common.issues}}catch(ba){ba?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),ma.common={issues:[],async:!0}}return this._parseAsync({data:ya,path:[],parent:ma}).then(ba=>isValid(ba)?{value:ba.value}:{issues:ma.common.issues})}async parseAsync(ya,ma){const ba=await this.safeParseAsync(ya,ma);if(ba.success)return ba.data;throw ba.error}async safeParseAsync(ya,ma){const ba={common:{issues:[],contextualErrorMap:ma?.errorMap,async:!0},path:ma?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:ya,parsedType:getParsedType(ya)},va=this._parse({data:ya,path:ba.path,parent:ba}),Ma=await(isAsync(va)?va:Promise.resolve(va));return handleResult(ba,Ma)}refine(ya,ma){const ba=va=>typeof ma=="string"||typeof ma>"u"?{message:ma}:typeof ma=="function"?ma(va):ma;return this._refinement((va,Ma)=>{const wl=ya(va),El=()=>Ma.addIssue({code:ZodIssueCode$1.custom,...ba(va)});return typeof Promise<"u"&&wl instanceof Promise?wl.then(Sl=>Sl?!0:(El(),!1)):wl?!0:(El(),!1)})}refinement(ya,ma){return this._refinement((ba,va)=>ya(ba)?!0:(va.addIssue(typeof ma=="function"?ma(ba,va):ma),!1))}_refinement(ya){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:ya}})}superRefine(ya){return this._refinement(ya)}constructor(ya){this.spa=this.safeParseAsync,this._def=ya,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:ma=>this["~validate"](ma)}}optional(){return ZodOptional$1.create(this,this._def)}nullable(){return ZodNullable$1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray$1.create(this)}promise(){return ZodPromise.create(this,this._def)}or(ya){return ZodUnion$1.create([this,ya],this._def)}and(ya){return ZodIntersection$1.create(this,ya,this._def)}transform(ya){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:ya}})}default(ya){const ma=typeof ya=="function"?ya:()=>ya;return new ZodDefault$1({...processCreateParams(this._def),innerType:this,defaultValue:ma,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(ya){const ma=typeof ya=="function"?ya:()=>ya;return new ZodCatch$1({...processCreateParams(this._def),innerType:this,catchValue:ma,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(ya){const ma=this.constructor;return new ma({...this._def,description:ya})}pipe(ya){return ZodPipeline.create(this,ya)}readonly(){return ZodReadonly$1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex$2;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(ya){let ma="[0-5]\\d";ya.precision?ma=`${ma}\\.\\d{${ya.precision}}`:ya.precision==null&&(ma=`${ma}(\\.\\d+)?`);const ba=ya.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${ma})${ba}`}function timeRegex(ya){return new RegExp(`^${timeRegexSource(ya)}$`)}function datetimeRegex(ya){let ma=`${dateRegexSource}T${timeRegexSource(ya)}`;const ba=[];return ba.push(ya.local?"Z?":"Z"),ya.offset&&ba.push("([+-]\\d{2}:?\\d{2})"),ma=`${ma}(${ba.join("|")})`,new RegExp(`^${ma}$`)}function isValidIP(ya,ma){return!!((ma==="v4"||!ma)&&ipv4Regex.test(ya)||(ma==="v6"||!ma)&&ipv6Regex.test(ya))}function isValidJWT$1(ya,ma){if(!jwtRegex.test(ya))return!1;try{const[ba]=ya.split(".");if(!ba)return!1;const va=ba.replace(/-/g,"+").replace(/_/g,"/").padEnd(ba.length+(4-ba.length%4)%4,"="),Ma=JSON.parse(atob(va));return!(typeof Ma!="object"||Ma===null||"typ"in Ma&&Ma?.typ!=="JWT"||!Ma.alg||ma&&Ma.alg!==ma)}catch{return!1}}function isValidCidr(ya,ma){return!!((ma==="v4"||!ma)&&ipv4CidrRegex.test(ya)||(ma==="v6"||!ma)&&ipv6CidrRegex.test(ya))}let ZodString$1=class $0t extends ZodType$1{_parse(ma){if(this._def.coerce&&(ma.data=String(ma.data)),this._getType(ma)!==ZodParsedType.string){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.string,received:Ma.parsedType}),INVALID}const ba=new ParseStatus;let va;for(const Ma of this._def.checks)if(Ma.kind==="min")ma.data.length<Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"string",inclusive:!0,exact:!1,message:Ma.message}),ba.dirty());else if(Ma.kind==="max")ma.data.length>Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"string",inclusive:!0,exact:!1,message:Ma.message}),ba.dirty());else if(Ma.kind==="length"){const wl=ma.data.length>Ma.value,El=ma.data.length<Ma.value;(wl||El)&&(va=this._getOrReturnCtx(ma,va),wl?addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"string",inclusive:!0,exact:!0,message:Ma.message}):El&&addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"string",inclusive:!0,exact:!0,message:Ma.message}),ba.dirty())}else if(Ma.kind==="email")emailRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"email",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="emoji")emojiRegex$2||(emojiRegex$2=new RegExp(_emojiRegex,"u")),emojiRegex$2.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"emoji",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="uuid")uuidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"uuid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="nanoid")nanoidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"nanoid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="cuid")cuidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cuid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="cuid2")cuid2Regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cuid2",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="ulid")ulidRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"ulid",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty());else if(Ma.kind==="url")try{new URL(ma.data)}catch{va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"url",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()}else Ma.kind==="regex"?(Ma.regex.lastIndex=0,Ma.regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"regex",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty())):Ma.kind==="trim"?ma.data=ma.data.trim():Ma.kind==="includes"?ma.data.includes(Ma.value,Ma.position)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{includes:Ma.value,position:Ma.position},message:Ma.message}),ba.dirty()):Ma.kind==="toLowerCase"?ma.data=ma.data.toLowerCase():Ma.kind==="toUpperCase"?ma.data=ma.data.toUpperCase():Ma.kind==="startsWith"?ma.data.startsWith(Ma.value)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{startsWith:Ma.value},message:Ma.message}),ba.dirty()):Ma.kind==="endsWith"?ma.data.endsWith(Ma.value)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:{endsWith:Ma.value},message:Ma.message}),ba.dirty()):Ma.kind==="datetime"?datetimeRegex(Ma).test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"datetime",message:Ma.message}),ba.dirty()):Ma.kind==="date"?dateRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"date",message:Ma.message}),ba.dirty()):Ma.kind==="time"?timeRegex(Ma).test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.invalid_string,validation:"time",message:Ma.message}),ba.dirty()):Ma.kind==="duration"?durationRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"duration",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="ip"?isValidIP(ma.data,Ma.version)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"ip",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="jwt"?isValidJWT$1(ma.data,Ma.alg)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"jwt",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="cidr"?isValidCidr(ma.data,Ma.version)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"cidr",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="base64"?base64Regex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"base64",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):Ma.kind==="base64url"?base64urlRegex.test(ma.data)||(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{validation:"base64url",code:ZodIssueCode$1.invalid_string,message:Ma.message}),ba.dirty()):util$2$1.assertNever(Ma);return{status:ba.value,value:ma.data}}_regex(ma,ba,va){return this.refinement(Ma=>ma.test(Ma),{validation:ba,code:ZodIssueCode$1.invalid_string,...errorUtil.errToObj(va)})}_addCheck(ma){return new $0t({...this._def,checks:[...this._def.checks,ma]})}email(ma){return this._addCheck({kind:"email",...errorUtil.errToObj(ma)})}url(ma){return this._addCheck({kind:"url",...errorUtil.errToObj(ma)})}emoji(ma){return this._addCheck({kind:"emoji",...errorUtil.errToObj(ma)})}uuid(ma){return this._addCheck({kind:"uuid",...errorUtil.errToObj(ma)})}nanoid(ma){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(ma)})}cuid(ma){return this._addCheck({kind:"cuid",...errorUtil.errToObj(ma)})}cuid2(ma){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(ma)})}ulid(ma){return this._addCheck({kind:"ulid",...errorUtil.errToObj(ma)})}base64(ma){return this._addCheck({kind:"base64",...errorUtil.errToObj(ma)})}base64url(ma){return this._addCheck({kind:"base64url",...errorUtil.errToObj(ma)})}jwt(ma){return this._addCheck({kind:"jwt",...errorUtil.errToObj(ma)})}ip(ma){return this._addCheck({kind:"ip",...errorUtil.errToObj(ma)})}cidr(ma){return this._addCheck({kind:"cidr",...errorUtil.errToObj(ma)})}datetime(ma){return typeof ma=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:ma}):this._addCheck({kind:"datetime",precision:typeof ma?.precision>"u"?null:ma?.precision,offset:ma?.offset??!1,local:ma?.local??!1,...errorUtil.errToObj(ma?.message)})}date(ma){return this._addCheck({kind:"date",message:ma})}time(ma){return typeof ma=="string"?this._addCheck({kind:"time",precision:null,message:ma}):this._addCheck({kind:"time",precision:typeof ma?.precision>"u"?null:ma?.precision,...errorUtil.errToObj(ma?.message)})}duration(ma){return this._addCheck({kind:"duration",...errorUtil.errToObj(ma)})}regex(ma,ba){return this._addCheck({kind:"regex",regex:ma,...errorUtil.errToObj(ba)})}includes(ma,ba){return this._addCheck({kind:"includes",value:ma,position:ba?.position,...errorUtil.errToObj(ba?.message)})}startsWith(ma,ba){return this._addCheck({kind:"startsWith",value:ma,...errorUtil.errToObj(ba)})}endsWith(ma,ba){return this._addCheck({kind:"endsWith",value:ma,...errorUtil.errToObj(ba)})}min(ma,ba){return this._addCheck({kind:"min",value:ma,...errorUtil.errToObj(ba)})}max(ma,ba){return this._addCheck({kind:"max",value:ma,...errorUtil.errToObj(ba)})}length(ma,ba){return this._addCheck({kind:"length",value:ma,...errorUtil.errToObj(ba)})}nonempty(ma){return this.min(1,errorUtil.errToObj(ma))}trim(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $0t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(ma=>ma.kind==="datetime")}get isDate(){return!!this._def.checks.find(ma=>ma.kind==="date")}get isTime(){return!!this._def.checks.find(ma=>ma.kind==="time")}get isDuration(){return!!this._def.checks.find(ma=>ma.kind==="duration")}get isEmail(){return!!this._def.checks.find(ma=>ma.kind==="email")}get isURL(){return!!this._def.checks.find(ma=>ma.kind==="url")}get isEmoji(){return!!this._def.checks.find(ma=>ma.kind==="emoji")}get isUUID(){return!!this._def.checks.find(ma=>ma.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(ma=>ma.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(ma=>ma.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(ma=>ma.kind==="cuid2")}get isULID(){return!!this._def.checks.find(ma=>ma.kind==="ulid")}get isIP(){return!!this._def.checks.find(ma=>ma.kind==="ip")}get isCIDR(){return!!this._def.checks.find(ma=>ma.kind==="cidr")}get isBase64(){return!!this._def.checks.find(ma=>ma.kind==="base64")}get isBase64url(){return!!this._def.checks.find(ma=>ma.kind==="base64url")}get minLength(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxLength(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}};ZodString$1.create=ya=>new ZodString$1({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:ya?.coerce??!1,...processCreateParams(ya)});function floatSafeRemainder$1(ya,ma){const ba=(ya.toString().split(".")[1]||"").length,va=(ma.toString().split(".")[1]||"").length,Ma=ba>va?ba:va,wl=Number.parseInt(ya.toFixed(Ma).replace(".","")),El=Number.parseInt(ma.toFixed(Ma).replace(".",""));return wl%El/10**Ma}let ZodNumber$1=class QEt extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(ma){if(this._def.coerce&&(ma.data=Number(ma.data)),this._getType(ma)!==ZodParsedType.number){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.number,received:Ma.parsedType}),INVALID}let ba;const va=new ParseStatus;for(const Ma of this._def.checks)Ma.kind==="int"?util$2$1.isInteger(ma.data)||(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:"integer",received:"float",message:Ma.message}),va.dirty()):Ma.kind==="min"?(Ma.inclusive?ma.data<Ma.value:ma.data<=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_small,minimum:Ma.value,type:"number",inclusive:Ma.inclusive,exact:!1,message:Ma.message}),va.dirty()):Ma.kind==="max"?(Ma.inclusive?ma.data>Ma.value:ma.data>=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_big,maximum:Ma.value,type:"number",inclusive:Ma.inclusive,exact:!1,message:Ma.message}),va.dirty()):Ma.kind==="multipleOf"?floatSafeRemainder$1(ma.data,Ma.value)!==0&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_multiple_of,multipleOf:Ma.value,message:Ma.message}),va.dirty()):Ma.kind==="finite"?Number.isFinite(ma.data)||(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_finite,message:Ma.message}),va.dirty()):util$2$1.assertNever(Ma);return{status:va.value,value:ma.data}}gte(ma,ba){return this.setLimit("min",ma,!0,errorUtil.toString(ba))}gt(ma,ba){return this.setLimit("min",ma,!1,errorUtil.toString(ba))}lte(ma,ba){return this.setLimit("max",ma,!0,errorUtil.toString(ba))}lt(ma,ba){return this.setLimit("max",ma,!1,errorUtil.toString(ba))}setLimit(ma,ba,va,Ma){return new QEt({...this._def,checks:[...this._def.checks,{kind:ma,value:ba,inclusive:va,message:errorUtil.toString(Ma)}]})}_addCheck(ma){return new QEt({...this._def,checks:[...this._def.checks,ma]})}int(ma){return this._addCheck({kind:"int",message:errorUtil.toString(ma)})}positive(ma){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(ma)})}negative(ma){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(ma)})}nonpositive(ma){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(ma)})}nonnegative(ma){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(ma)})}multipleOf(ma,ba){return this._addCheck({kind:"multipleOf",value:ma,message:errorUtil.toString(ba)})}finite(ma){return this._addCheck({kind:"finite",message:errorUtil.toString(ma)})}safe(ma){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(ma)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(ma)})}get minValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}get isInt(){return!!this._def.checks.find(ma=>ma.kind==="int"||ma.kind==="multipleOf"&&util$2$1.isInteger(ma.value))}get isFinite(){let ma=null,ba=null;for(const va of this._def.checks){if(va.kind==="finite"||va.kind==="int"||va.kind==="multipleOf")return!0;va.kind==="min"?(ba===null||va.value>ba)&&(ba=va.value):va.kind==="max"&&(ma===null||va.value<ma)&&(ma=va.value)}return Number.isFinite(ba)&&Number.isFinite(ma)}};ZodNumber$1.create=ya=>new ZodNumber$1({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:ya?.coerce||!1,...processCreateParams(ya)});class ZodBigInt extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(ma){if(this._def.coerce)try{ma.data=BigInt(ma.data)}catch{return this._getInvalidInput(ma)}if(this._getType(ma)!==ZodParsedType.bigint)return this._getInvalidInput(ma);let ba;const va=new ParseStatus;for(const Ma of this._def.checks)Ma.kind==="min"?(Ma.inclusive?ma.data<Ma.value:ma.data<=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_small,type:"bigint",minimum:Ma.value,inclusive:Ma.inclusive,message:Ma.message}),va.dirty()):Ma.kind==="max"?(Ma.inclusive?ma.data>Ma.value:ma.data>=Ma.value)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.too_big,type:"bigint",maximum:Ma.value,inclusive:Ma.inclusive,message:Ma.message}),va.dirty()):Ma.kind==="multipleOf"?ma.data%Ma.value!==BigInt(0)&&(ba=this._getOrReturnCtx(ma,ba),addIssueToContext(ba,{code:ZodIssueCode$1.not_multiple_of,multipleOf:Ma.value,message:Ma.message}),va.dirty()):util$2$1.assertNever(Ma);return{status:va.value,value:ma.data}}_getInvalidInput(ma){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.bigint,received:ba.parsedType}),INVALID}gte(ma,ba){return this.setLimit("min",ma,!0,errorUtil.toString(ba))}gt(ma,ba){return this.setLimit("min",ma,!1,errorUtil.toString(ba))}lte(ma,ba){return this.setLimit("max",ma,!0,errorUtil.toString(ba))}lt(ma,ba){return this.setLimit("max",ma,!1,errorUtil.toString(ba))}setLimit(ma,ba,va,Ma){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:ma,value:ba,inclusive:va,message:errorUtil.toString(Ma)}]})}_addCheck(ma){return new ZodBigInt({...this._def,checks:[...this._def.checks,ma]})}positive(ma){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(ma)})}negative(ma){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(ma)})}nonpositive(ma){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(ma)})}nonnegative(ma){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(ma)})}multipleOf(ma,ba){return this._addCheck({kind:"multipleOf",value:ma,message:errorUtil.toString(ba)})}get minValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma}get maxValue(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma}}ZodBigInt.create=ya=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:ya?.coerce??!1,...processCreateParams(ya)});let ZodBoolean$1=class extends ZodType$1{_parse(ya){if(this._def.coerce&&(ya.data=!!ya.data),this._getType(ya)!==ZodParsedType.boolean){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.boolean,received:ma.parsedType}),INVALID}return OK(ya.data)}};ZodBoolean$1.create=ya=>new ZodBoolean$1({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:ya?.coerce||!1,...processCreateParams(ya)});class ZodDate extends ZodType$1{_parse(ma){if(this._def.coerce&&(ma.data=new Date(ma.data)),this._getType(ma)!==ZodParsedType.date){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.date,received:Ma.parsedType}),INVALID}if(Number.isNaN(ma.data.getTime())){const Ma=this._getOrReturnCtx(ma);return addIssueToContext(Ma,{code:ZodIssueCode$1.invalid_date}),INVALID}const ba=new ParseStatus;let va;for(const Ma of this._def.checks)Ma.kind==="min"?ma.data.getTime()<Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_small,message:Ma.message,inclusive:!0,exact:!1,minimum:Ma.value,type:"date"}),ba.dirty()):Ma.kind==="max"?ma.data.getTime()>Ma.value&&(va=this._getOrReturnCtx(ma,va),addIssueToContext(va,{code:ZodIssueCode$1.too_big,message:Ma.message,inclusive:!0,exact:!1,maximum:Ma.value,type:"date"}),ba.dirty()):util$2$1.assertNever(Ma);return{status:ba.value,value:new Date(ma.data.getTime())}}_addCheck(ma){return new ZodDate({...this._def,checks:[...this._def.checks,ma]})}min(ma,ba){return this._addCheck({kind:"min",value:ma.getTime(),message:errorUtil.toString(ba)})}max(ma,ba){return this._addCheck({kind:"max",value:ma.getTime(),message:errorUtil.toString(ba)})}get minDate(){let ma=null;for(const ba of this._def.checks)ba.kind==="min"&&(ma===null||ba.value>ma)&&(ma=ba.value);return ma!=null?new Date(ma):null}get maxDate(){let ma=null;for(const ba of this._def.checks)ba.kind==="max"&&(ma===null||ba.value<ma)&&(ma=ba.value);return ma!=null?new Date(ma):null}}ZodDate.create=ya=>new ZodDate({checks:[],coerce:ya?.coerce||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(ya)});class ZodSymbol extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.symbol){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.symbol,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodSymbol.create=ya=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(ya)});class ZodUndefined extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.undefined){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.undefined,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodUndefined.create=ya=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(ya)});let ZodNull$1=class extends ZodType$1{_parse(ya){if(this._getType(ya)!==ZodParsedType.null){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.null,received:ma.parsedType}),INVALID}return OK(ya.data)}};ZodNull$1.create=ya=>new ZodNull$1({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(ya)});let ZodAny$1=class extends ZodType$1{constructor(){super(...arguments),this._any=!0}_parse(ya){return OK(ya.data)}};ZodAny$1.create=ya=>new ZodAny$1({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(ya)});let ZodUnknown$1=class extends ZodType$1{constructor(){super(...arguments),this._unknown=!0}_parse(ya){return OK(ya.data)}};ZodUnknown$1.create=ya=>new ZodUnknown$1({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(ya)});let ZodNever$1=class extends ZodType$1{_parse(ya){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.never,received:ma.parsedType}),INVALID}};ZodNever$1.create=ya=>new ZodNever$1({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(ya)});class ZodVoid extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.undefined){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.void,received:ba.parsedType}),INVALID}return OK(ma.data)}}ZodVoid.create=ya=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(ya)});let ZodArray$1=class Pwt extends ZodType$1{_parse(ma){const{ctx:ba,status:va}=this._processInputParams(ma),Ma=this._def;if(ba.parsedType!==ZodParsedType.array)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.array,received:ba.parsedType}),INVALID;if(Ma.exactLength!==null){const El=ba.data.length>Ma.exactLength.value,Sl=ba.data.length<Ma.exactLength.value;(El||Sl)&&(addIssueToContext(ba,{code:El?ZodIssueCode$1.too_big:ZodIssueCode$1.too_small,minimum:Sl?Ma.exactLength.value:void 0,maximum:El?Ma.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Ma.exactLength.message}),va.dirty())}if(Ma.minLength!==null&&ba.data.length<Ma.minLength.value&&(addIssueToContext(ba,{code:ZodIssueCode$1.too_small,minimum:Ma.minLength.value,type:"array",inclusive:!0,exact:!1,message:Ma.minLength.message}),va.dirty()),Ma.maxLength!==null&&ba.data.length>Ma.maxLength.value&&(addIssueToContext(ba,{code:ZodIssueCode$1.too_big,maximum:Ma.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Ma.maxLength.message}),va.dirty()),ba.common.async)return Promise.all([...ba.data].map((El,Sl)=>Ma.type._parseAsync(new ParseInputLazyPath(ba,El,ba.path,Sl)))).then(El=>ParseStatus.mergeArray(va,El));const wl=[...ba.data].map((El,Sl)=>Ma.type._parseSync(new ParseInputLazyPath(ba,El,ba.path,Sl)));return ParseStatus.mergeArray(va,wl)}get element(){return this._def.type}min(ma,ba){return new Pwt({...this._def,minLength:{value:ma,message:errorUtil.toString(ba)}})}max(ma,ba){return new Pwt({...this._def,maxLength:{value:ma,message:errorUtil.toString(ba)}})}length(ma,ba){return new Pwt({...this._def,exactLength:{value:ma,message:errorUtil.toString(ba)}})}nonempty(ma){return this.min(1,ma)}};ZodArray$1.create=(ya,ma)=>new ZodArray$1({type:ya,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(ma)});function deepPartialify(ya){if(ya instanceof ZodObject$1){const ma={};for(const ba in ya.shape){const va=ya.shape[ba];ma[ba]=ZodOptional$1.create(deepPartialify(va))}return new ZodObject$1({...ya._def,shape:()=>ma})}else return ya instanceof ZodArray$1?new ZodArray$1({...ya._def,type:deepPartialify(ya.element)}):ya instanceof ZodOptional$1?ZodOptional$1.create(deepPartialify(ya.unwrap())):ya instanceof ZodNullable$1?ZodNullable$1.create(deepPartialify(ya.unwrap())):ya instanceof ZodTuple?ZodTuple.create(ya.items.map(ma=>deepPartialify(ma))):ya}let ZodObject$1=class Z$t extends ZodType$1{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const ma=this._def.shape(),ba=util$2$1.objectKeys(ma);return this._cached={shape:ma,keys:ba},this._cached}_parse(ma){if(this._getType(ma)!==ZodParsedType.object){const Cl=this._getOrReturnCtx(ma);return addIssueToContext(Cl,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:Cl.parsedType}),INVALID}const{status:ba,ctx:va}=this._processInputParams(ma),{shape:Ma,keys:wl}=this._getCached(),El=[];if(!(this._def.catchall instanceof ZodNever$1&&this._def.unknownKeys==="strip"))for(const Cl in va.data)wl.includes(Cl)||El.push(Cl);const Sl=[];for(const Cl of wl){const Mc=Ma[Cl],dp=va.data[Cl];Sl.push({key:{status:"valid",value:Cl},value:Mc._parse(new ParseInputLazyPath(va,dp,va.path,Cl)),alwaysSet:Cl in va.data})}if(this._def.catchall instanceof ZodNever$1){const Cl=this._def.unknownKeys;if(Cl==="passthrough")for(const Mc of El)Sl.push({key:{status:"valid",value:Mc},value:{status:"valid",value:va.data[Mc]}});else if(Cl==="strict")El.length>0&&(addIssueToContext(va,{code:ZodIssueCode$1.unrecognized_keys,keys:El}),ba.dirty());else if(Cl!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const Cl=this._def.catchall;for(const Mc of El){const dp=va.data[Mc];Sl.push({key:{status:"valid",value:Mc},value:Cl._parse(new ParseInputLazyPath(va,dp,va.path,Mc)),alwaysSet:Mc in va.data})}}return va.common.async?Promise.resolve().then(async()=>{const Cl=[];for(const Mc of Sl){const dp=await Mc.key,pp=await Mc.value;Cl.push({key:dp,value:pp,alwaysSet:Mc.alwaysSet})}return Cl}).then(Cl=>ParseStatus.mergeObjectSync(ba,Cl)):ParseStatus.mergeObjectSync(ba,Sl)}get shape(){return this._def.shape()}strict(ma){return errorUtil.errToObj,new Z$t({...this._def,unknownKeys:"strict",...ma!==void 0?{errorMap:(ba,va)=>{const Ma=this._def.errorMap?.(ba,va).message??va.defaultError;return ba.code==="unrecognized_keys"?{message:errorUtil.errToObj(ma).message??Ma}:{message:Ma}}}:{}})}strip(){return new Z$t({...this._def,unknownKeys:"strip"})}passthrough(){return new Z$t({...this._def,unknownKeys:"passthrough"})}extend(ma){return new Z$t({...this._def,shape:()=>({...this._def.shape(),...ma})})}merge(ma){return new Z$t({unknownKeys:ma._def.unknownKeys,catchall:ma._def.catchall,shape:()=>({...this._def.shape(),...ma._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(ma,ba){return this.augment({[ma]:ba})}catchall(ma){return new Z$t({...this._def,catchall:ma})}pick(ma){const ba={};for(const va of util$2$1.objectKeys(ma))ma[va]&&this.shape[va]&&(ba[va]=this.shape[va]);return new Z$t({...this._def,shape:()=>ba})}omit(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape))ma[va]||(ba[va]=this.shape[va]);return new Z$t({...this._def,shape:()=>ba})}deepPartial(){return deepPartialify(this)}partial(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape)){const Ma=this.shape[va];ma&&!ma[va]?ba[va]=Ma:ba[va]=Ma.optional()}return new Z$t({...this._def,shape:()=>ba})}required(ma){const ba={};for(const va of util$2$1.objectKeys(this.shape))if(ma&&!ma[va])ba[va]=this.shape[va];else{let Ma=this.shape[va];for(;Ma instanceof ZodOptional$1;)Ma=Ma._def.innerType;ba[va]=Ma}return new Z$t({...this._def,shape:()=>ba})}keyof(){return createZodEnum(util$2$1.objectKeys(this.shape))}};ZodObject$1.create=(ya,ma)=>new ZodObject$1({shape:()=>ya,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});ZodObject$1.strictCreate=(ya,ma)=>new ZodObject$1({shape:()=>ya,unknownKeys:"strict",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});ZodObject$1.lazycreate=(ya,ma)=>new ZodObject$1({shape:ya,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(ma)});let ZodUnion$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya),ba=this._def.options;function va(Ma){for(const El of Ma)if(El.result.status==="valid")return El.result;for(const El of Ma)if(El.result.status==="dirty")return ma.common.issues.push(...El.ctx.common.issues),El.result;const wl=Ma.map(El=>new ZodError(El.ctx.common.issues));return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_union,unionErrors:wl}),INVALID}if(ma.common.async)return Promise.all(ba.map(async Ma=>{const wl={...ma,common:{...ma.common,issues:[]},parent:null};return{result:await Ma._parseAsync({data:ma.data,path:ma.path,parent:wl}),ctx:wl}})).then(va);{let Ma;const wl=[];for(const Sl of ba){const Cl={...ma,common:{...ma.common,issues:[]},parent:null},Mc=Sl._parseSync({data:ma.data,path:ma.path,parent:Cl});if(Mc.status==="valid")return Mc;Mc.status==="dirty"&&!Ma&&(Ma={result:Mc,ctx:Cl}),Cl.common.issues.length&&wl.push(Cl.common.issues)}if(Ma)return ma.common.issues.push(...Ma.ctx.common.issues),Ma.result;const El=wl.map(Sl=>new ZodError(Sl));return addIssueToContext(ma,{code:ZodIssueCode$1.invalid_union,unionErrors:El}),INVALID}}get options(){return this._def.options}};ZodUnion$1.create=(ya,ma)=>new ZodUnion$1({options:ya,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(ma)});const getDiscriminator=ya=>ya instanceof ZodLazy?getDiscriminator(ya.schema):ya instanceof ZodEffects?getDiscriminator(ya.innerType()):ya instanceof ZodLiteral$1?[ya.value]:ya instanceof ZodEnum$1?ya.options:ya instanceof ZodNativeEnum?util$2$1.objectValues(ya.enum):ya instanceof ZodDefault$1?getDiscriminator(ya._def.innerType):ya instanceof ZodUndefined?[void 0]:ya instanceof ZodNull$1?[null]:ya instanceof ZodOptional$1?[void 0,...getDiscriminator(ya.unwrap())]:ya instanceof ZodNullable$1?[null,...getDiscriminator(ya.unwrap())]:ya instanceof ZodBranded||ya instanceof ZodReadonly$1?getDiscriminator(ya.unwrap()):ya instanceof ZodCatch$1?getDiscriminator(ya._def.innerType):[];let ZodDiscriminatedUnion$1=class LRt extends ZodType$1{_parse(ma){const{ctx:ba}=this._processInputParams(ma);if(ba.parsedType!==ZodParsedType.object)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:ba.parsedType}),INVALID;const va=this.discriminator,Ma=ba.data[va],wl=this.optionsMap.get(Ma);return wl?ba.common.async?wl._parseAsync({data:ba.data,path:ba.path,parent:ba}):wl._parseSync({data:ba.data,path:ba.path,parent:ba}):(addIssueToContext(ba,{code:ZodIssueCode$1.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[va]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(ma,ba,va){const Ma=new Map;for(const wl of ba){const El=getDiscriminator(wl.shape[ma]);if(!El.length)throw new Error(`A discriminator value for key \`${ma}\` could not be extracted from all schema options`);for(const Sl of El){if(Ma.has(Sl))throw new Error(`Discriminator property ${String(ma)} has duplicate value ${String(Sl)}`);Ma.set(Sl,wl)}}return new LRt({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:ma,options:ba,optionsMap:Ma,...processCreateParams(va)})}};function mergeValues$1(ya,ma){const ba=getParsedType(ya),va=getParsedType(ma);if(ya===ma)return{valid:!0,data:ya};if(ba===ZodParsedType.object&&va===ZodParsedType.object){const Ma=util$2$1.objectKeys(ma),wl=util$2$1.objectKeys(ya).filter(Sl=>Ma.indexOf(Sl)!==-1),El={...ya,...ma};for(const Sl of wl){const Cl=mergeValues$1(ya[Sl],ma[Sl]);if(!Cl.valid)return{valid:!1};El[Sl]=Cl.data}return{valid:!0,data:El}}else if(ba===ZodParsedType.array&&va===ZodParsedType.array){if(ya.length!==ma.length)return{valid:!1};const Ma=[];for(let wl=0;wl<ya.length;wl++){const El=ya[wl],Sl=ma[wl],Cl=mergeValues$1(El,Sl);if(!Cl.valid)return{valid:!1};Ma.push(Cl.data)}return{valid:!0,data:Ma}}else return ba===ZodParsedType.date&&va===ZodParsedType.date&&+ya==+ma?{valid:!0,data:ya}:{valid:!1}}let ZodIntersection$1=class extends ZodType$1{_parse(ya){const{status:ma,ctx:ba}=this._processInputParams(ya),va=(Ma,wl)=>{if(isAborted(Ma)||isAborted(wl))return INVALID;const El=mergeValues$1(Ma.value,wl.value);return El.valid?((isDirty(Ma)||isDirty(wl))&&ma.dirty(),{status:ma.value,value:El.data}):(addIssueToContext(ba,{code:ZodIssueCode$1.invalid_intersection_types}),INVALID)};return ba.common.async?Promise.all([this._def.left._parseAsync({data:ba.data,path:ba.path,parent:ba}),this._def.right._parseAsync({data:ba.data,path:ba.path,parent:ba})]).then(([Ma,wl])=>va(Ma,wl)):va(this._def.left._parseSync({data:ba.data,path:ba.path,parent:ba}),this._def.right._parseSync({data:ba.data,path:ba.path,parent:ba}))}};ZodIntersection$1.create=(ya,ma,ba)=>new ZodIntersection$1({left:ya,right:ma,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(ba)});class ZodTuple extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.array)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.array,received:va.parsedType}),INVALID;if(va.data.length<this._def.items.length)return addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&va.data.length>this._def.items.length&&(addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ba.dirty());const Ma=[...va.data].map((wl,El)=>{const Sl=this._def.items[El]||this._def.rest;return Sl?Sl._parse(new ParseInputLazyPath(va,wl,va.path,El)):null}).filter(wl=>!!wl);return va.common.async?Promise.all(Ma).then(wl=>ParseStatus.mergeArray(ba,wl)):ParseStatus.mergeArray(ba,Ma)}get items(){return this._def.items}rest(ma){return new ZodTuple({...this._def,rest:ma})}}ZodTuple.create=(ya,ma)=>{if(!Array.isArray(ya))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:ya,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(ma)})};let ZodRecord$1=class YEt extends ZodType$1{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.object)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.object,received:va.parsedType}),INVALID;const Ma=[],wl=this._def.keyType,El=this._def.valueType;for(const Sl in va.data)Ma.push({key:wl._parse(new ParseInputLazyPath(va,Sl,va.path,Sl)),value:El._parse(new ParseInputLazyPath(va,va.data[Sl],va.path,Sl)),alwaysSet:Sl in va.data});return va.common.async?ParseStatus.mergeObjectAsync(ba,Ma):ParseStatus.mergeObjectSync(ba,Ma)}get element(){return this._def.valueType}static create(ma,ba,va){return ba instanceof ZodType$1?new YEt({keyType:ma,valueType:ba,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(va)}):new YEt({keyType:ZodString$1.create(),valueType:ma,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ba)})}};class ZodMap extends ZodType$1{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.map)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.map,received:va.parsedType}),INVALID;const Ma=this._def.keyType,wl=this._def.valueType,El=[...va.data.entries()].map(([Sl,Cl],Mc)=>({key:Ma._parse(new ParseInputLazyPath(va,Sl,va.path,[Mc,"key"])),value:wl._parse(new ParseInputLazyPath(va,Cl,va.path,[Mc,"value"]))}));if(va.common.async){const Sl=new Map;return Promise.resolve().then(async()=>{for(const Cl of El){const Mc=await Cl.key,dp=await Cl.value;if(Mc.status==="aborted"||dp.status==="aborted")return INVALID;(Mc.status==="dirty"||dp.status==="dirty")&&ba.dirty(),Sl.set(Mc.value,dp.value)}return{status:ba.value,value:Sl}})}else{const Sl=new Map;for(const Cl of El){const Mc=Cl.key,dp=Cl.value;if(Mc.status==="aborted"||dp.status==="aborted")return INVALID;(Mc.status==="dirty"||dp.status==="dirty")&&ba.dirty(),Sl.set(Mc.value,dp.value)}return{status:ba.value,value:Sl}}}}ZodMap.create=(ya,ma,ba)=>new ZodMap({valueType:ma,keyType:ya,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(ba)});class ZodSet extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.parsedType!==ZodParsedType.set)return addIssueToContext(va,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.set,received:va.parsedType}),INVALID;const Ma=this._def;Ma.minSize!==null&&va.data.size<Ma.minSize.value&&(addIssueToContext(va,{code:ZodIssueCode$1.too_small,minimum:Ma.minSize.value,type:"set",inclusive:!0,exact:!1,message:Ma.minSize.message}),ba.dirty()),Ma.maxSize!==null&&va.data.size>Ma.maxSize.value&&(addIssueToContext(va,{code:ZodIssueCode$1.too_big,maximum:Ma.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Ma.maxSize.message}),ba.dirty());const wl=this._def.valueType;function El(Cl){const Mc=new Set;for(const dp of Cl){if(dp.status==="aborted")return INVALID;dp.status==="dirty"&&ba.dirty(),Mc.add(dp.value)}return{status:ba.value,value:Mc}}const Sl=[...va.data.values()].map((Cl,Mc)=>wl._parse(new ParseInputLazyPath(va,Cl,va.path,Mc)));return va.common.async?Promise.all(Sl).then(Cl=>El(Cl)):El(Sl)}min(ma,ba){return new ZodSet({...this._def,minSize:{value:ma,message:errorUtil.toString(ba)}})}max(ma,ba){return new ZodSet({...this._def,maxSize:{value:ma,message:errorUtil.toString(ba)}})}size(ma,ba){return this.min(ma,ba).max(ma,ba)}nonempty(ma){return this.min(1,ma)}}ZodSet.create=(ya,ma)=>new ZodSet({valueType:ya,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(ma)});class ZodLazy extends ZodType$1{get schema(){return this._def.getter()}_parse(ma){const{ctx:ba}=this._processInputParams(ma);return this._def.getter()._parse({data:ba.data,path:ba.path,parent:ba})}}ZodLazy.create=(ya,ma)=>new ZodLazy({getter:ya,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(ma)});let ZodLiteral$1=class extends ZodType$1{_parse(ya){if(ya.data!==this._def.value){const ma=this._getOrReturnCtx(ya);return addIssueToContext(ma,{received:ma.data,code:ZodIssueCode$1.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:ya.data}}get value(){return this._def.value}};ZodLiteral$1.create=(ya,ma)=>new ZodLiteral$1({value:ya,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(ma)});function createZodEnum(ya,ma){return new ZodEnum$1({values:ya,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(ma)})}let ZodEnum$1=class XEt extends ZodType$1{_parse(ma){if(typeof ma.data!="string"){const ba=this._getOrReturnCtx(ma),va=this._def.values;return addIssueToContext(ba,{expected:util$2$1.joinValues(va),received:ba.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(ma.data)){const ba=this._getOrReturnCtx(ma),va=this._def.values;return addIssueToContext(ba,{received:ba.data,code:ZodIssueCode$1.invalid_enum_value,options:va}),INVALID}return OK(ma.data)}get options(){return this._def.values}get enum(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}get Values(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}get Enum(){const ma={};for(const ba of this._def.values)ma[ba]=ba;return ma}extract(ma,ba=this._def){return XEt.create(ma,{...this._def,...ba})}exclude(ma,ba=this._def){return XEt.create(this.options.filter(va=>!ma.includes(va)),{...this._def,...ba})}};ZodEnum$1.create=createZodEnum;class ZodNativeEnum extends ZodType$1{_parse(ma){const ba=util$2$1.getValidEnumValues(this._def.values),va=this._getOrReturnCtx(ma);if(va.parsedType!==ZodParsedType.string&&va.parsedType!==ZodParsedType.number){const Ma=util$2$1.objectValues(ba);return addIssueToContext(va,{expected:util$2$1.joinValues(Ma),received:va.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(util$2$1.getValidEnumValues(this._def.values))),!this._cache.has(ma.data)){const Ma=util$2$1.objectValues(ba);return addIssueToContext(va,{received:va.data,code:ZodIssueCode$1.invalid_enum_value,options:Ma}),INVALID}return OK(ma.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(ya,ma)=>new ZodNativeEnum({values:ya,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(ma)});class ZodPromise extends ZodType$1{unwrap(){return this._def.type}_parse(ma){const{ctx:ba}=this._processInputParams(ma);if(ba.parsedType!==ZodParsedType.promise&&ba.common.async===!1)return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.promise,received:ba.parsedType}),INVALID;const va=ba.parsedType===ZodParsedType.promise?ba.data:Promise.resolve(ba.data);return OK(va.then(Ma=>this._def.type.parseAsync(Ma,{path:ba.path,errorMap:ba.common.contextualErrorMap})))}}ZodPromise.create=(ya,ma)=>new ZodPromise({type:ya,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(ma)});class ZodEffects extends ZodType$1{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma),Ma=this._def.effect||null,wl={addIssue:El=>{addIssueToContext(va,El),El.fatal?ba.abort():ba.dirty()},get path(){return va.path}};if(wl.addIssue=wl.addIssue.bind(wl),Ma.type==="preprocess"){const El=Ma.transform(va.data,wl);if(va.common.async)return Promise.resolve(El).then(async Sl=>{if(ba.value==="aborted")return INVALID;const Cl=await this._def.schema._parseAsync({data:Sl,path:va.path,parent:va});return Cl.status==="aborted"?INVALID:Cl.status==="dirty"||ba.value==="dirty"?DIRTY(Cl.value):Cl});{if(ba.value==="aborted")return INVALID;const Sl=this._def.schema._parseSync({data:El,path:va.path,parent:va});return Sl.status==="aborted"?INVALID:Sl.status==="dirty"||ba.value==="dirty"?DIRTY(Sl.value):Sl}}if(Ma.type==="refinement"){const El=Sl=>{const Cl=Ma.refinement(Sl,wl);if(va.common.async)return Promise.resolve(Cl);if(Cl instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Sl};if(va.common.async===!1){const Sl=this._def.schema._parseSync({data:va.data,path:va.path,parent:va});return Sl.status==="aborted"?INVALID:(Sl.status==="dirty"&&ba.dirty(),El(Sl.value),{status:ba.value,value:Sl.value})}else return this._def.schema._parseAsync({data:va.data,path:va.path,parent:va}).then(Sl=>Sl.status==="aborted"?INVALID:(Sl.status==="dirty"&&ba.dirty(),El(Sl.value).then(()=>({status:ba.value,value:Sl.value}))))}if(Ma.type==="transform")if(va.common.async===!1){const El=this._def.schema._parseSync({data:va.data,path:va.path,parent:va});if(!isValid(El))return INVALID;const Sl=Ma.transform(El.value,wl);if(Sl instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:ba.value,value:Sl}}else return this._def.schema._parseAsync({data:va.data,path:va.path,parent:va}).then(El=>isValid(El)?Promise.resolve(Ma.transform(El.value,wl)).then(Sl=>({status:ba.value,value:Sl})):INVALID);util$2$1.assertNever(Ma)}}ZodEffects.create=(ya,ma,ba)=>new ZodEffects({schema:ya,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:ma,...processCreateParams(ba)});ZodEffects.createWithPreprocess=(ya,ma,ba)=>new ZodEffects({schema:ma,effect:{type:"preprocess",transform:ya},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(ba)});let ZodOptional$1=class extends ZodType$1{_parse(ya){return this._getType(ya)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(ya)}unwrap(){return this._def.innerType}};ZodOptional$1.create=(ya,ma)=>new ZodOptional$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(ma)});let ZodNullable$1=class extends ZodType$1{_parse(ya){return this._getType(ya)===ZodParsedType.null?OK(null):this._def.innerType._parse(ya)}unwrap(){return this._def.innerType}};ZodNullable$1.create=(ya,ma)=>new ZodNullable$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(ma)});let ZodDefault$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya);let ba=ma.data;return ma.parsedType===ZodParsedType.undefined&&(ba=this._def.defaultValue()),this._def.innerType._parse({data:ba,path:ma.path,parent:ma})}removeDefault(){return this._def.innerType}};ZodDefault$1.create=(ya,ma)=>new ZodDefault$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof ma.default=="function"?ma.default:()=>ma.default,...processCreateParams(ma)});let ZodCatch$1=class extends ZodType$1{_parse(ya){const{ctx:ma}=this._processInputParams(ya),ba={...ma,common:{...ma.common,issues:[]}},va=this._def.innerType._parse({data:ba.data,path:ba.path,parent:{...ba}});return isAsync(va)?va.then(Ma=>({status:"valid",value:Ma.status==="valid"?Ma.value:this._def.catchValue({get error(){return new ZodError(ba.common.issues)},input:ba.data})})):{status:"valid",value:va.status==="valid"?va.value:this._def.catchValue({get error(){return new ZodError(ba.common.issues)},input:ba.data})}}removeCatch(){return this._def.innerType}};ZodCatch$1.create=(ya,ma)=>new ZodCatch$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof ma.catch=="function"?ma.catch:()=>ma.catch,...processCreateParams(ma)});class ZodNaN extends ZodType$1{_parse(ma){if(this._getType(ma)!==ZodParsedType.nan){const ba=this._getOrReturnCtx(ma);return addIssueToContext(ba,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType.nan,received:ba.parsedType}),INVALID}return{status:"valid",value:ma.data}}}ZodNaN.create=ya=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(ya)});class ZodBranded extends ZodType$1{_parse(ma){const{ctx:ba}=this._processInputParams(ma),va=ba.data;return this._def.type._parse({data:va,path:ba.path,parent:ba})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType$1{_parse(ma){const{status:ba,ctx:va}=this._processInputParams(ma);if(va.common.async)return(async()=>{const Ma=await this._def.in._parseAsync({data:va.data,path:va.path,parent:va});return Ma.status==="aborted"?INVALID:Ma.status==="dirty"?(ba.dirty(),DIRTY(Ma.value)):this._def.out._parseAsync({data:Ma.value,path:va.path,parent:va})})();{const Ma=this._def.in._parseSync({data:va.data,path:va.path,parent:va});return Ma.status==="aborted"?INVALID:Ma.status==="dirty"?(ba.dirty(),{status:"dirty",value:Ma.value}):this._def.out._parseSync({data:Ma.value,path:va.path,parent:va})}}static create(ma,ba){return new ZodPipeline({in:ma,out:ba,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}let ZodReadonly$1=class extends ZodType$1{_parse(ya){const ma=this._def.innerType._parse(ya),ba=va=>(isValid(va)&&(va.value=Object.freeze(va.value)),va);return isAsync(ma)?ma.then(va=>ba(va)):ba(ma)}unwrap(){return this._def.innerType}};ZodReadonly$1.create=(ya,ma)=>new ZodReadonly$1({innerType:ya,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(ma)});var ZodFirstPartyTypeKind;(function(ya){ya.ZodString="ZodString",ya.ZodNumber="ZodNumber",ya.ZodNaN="ZodNaN",ya.ZodBigInt="ZodBigInt",ya.ZodBoolean="ZodBoolean",ya.ZodDate="ZodDate",ya.ZodSymbol="ZodSymbol",ya.ZodUndefined="ZodUndefined",ya.ZodNull="ZodNull",ya.ZodAny="ZodAny",ya.ZodUnknown="ZodUnknown",ya.ZodNever="ZodNever",ya.ZodVoid="ZodVoid",ya.ZodArray="ZodArray",ya.ZodObject="ZodObject",ya.ZodUnion="ZodUnion",ya.ZodDiscriminatedUnion="ZodDiscriminatedUnion",ya.ZodIntersection="ZodIntersection",ya.ZodTuple="ZodTuple",ya.ZodRecord="ZodRecord",ya.ZodMap="ZodMap",ya.ZodSet="ZodSet",ya.ZodFunction="ZodFunction",ya.ZodLazy="ZodLazy",ya.ZodLiteral="ZodLiteral",ya.ZodEnum="ZodEnum",ya.ZodEffects="ZodEffects",ya.ZodNativeEnum="ZodNativeEnum",ya.ZodOptional="ZodOptional",ya.ZodNullable="ZodNullable",ya.ZodDefault="ZodDefault",ya.ZodCatch="ZodCatch",ya.ZodPromise="ZodPromise",ya.ZodBranded="ZodBranded",ya.ZodPipeline="ZodPipeline",ya.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const stringType=ZodString$1.create,numberType=ZodNumber$1.create,booleanType=ZodBoolean$1.create,anyType=ZodAny$1.create;ZodNever$1.create;const arrayType=ZodArray$1.create,objectType=ZodObject$1.create;ZodUnion$1.create;const discriminatedUnionType=ZodDiscriminatedUnion$1.create;ZodIntersection$1.create;ZodTuple.create;const recordType=ZodRecord$1.create,literalType=ZodLiteral$1.create,enumType=ZodEnum$1.create;ZodPromise.create;ZodOptional$1.create;ZodNullable$1.create;objectType({service:objectType({port:numberType(),host:stringType().optional(),httpFileHandling:booleanType().default(!1)}).default({port:8080,host:"localhost",httpFileHandling:!1}),store:discriminatedUnionType("type",[objectType({type:literalType("postgres"),host:stringType().default("localhost"),username:stringType().default("postgres"),password:stringType().default("postgres"),dbname:stringType().default("postgres"),port:numberType().default(5432)}),objectType({type:literalType("mysql"),host:stringType().default("localhost"),username:stringType().default("mysql"),password:stringType().default("mysql"),dbname:stringType().default("mysql"),port:numberType().default(3306)}),objectType({type:literalType("sqlite"),dbname:stringType().optional()})]).optional(),integrations:objectType({host:stringType(),username:stringType().optional(),password:stringType().optional(),connections:recordType(stringType(),stringType())}).optional(),graphql:objectType({enabled:booleanType().default(!1)}).optional(),rbac:objectType({enabled:booleanType().default(!1),roles:arrayType(stringType()).optional()}).optional(),auth:objectType({enabled:booleanType().default(!1)}).optional(),auditTrail:objectType({enabled:booleanType().default(!1)}).optional(),monitoring:objectType({enabled:booleanType().default(!1)}).optional(),authentication:discriminatedUnionType("service",[objectType({service:literalType("okta"),superuserEmail:stringType(),domain:stringType(),cookieDomain:stringType().optional(),authServer:stringType().default("default"),clientSecret:stringType(),apiToken:stringType(),scope:stringType().default("openid offline_access"),cookieTtlMs:numberType().default(12096e5),introspect:booleanType().default(!0),authorizeRedirectUrl:stringType(),clientUrl:stringType(),roleClaim:stringType().default("roles"),defaultRole:stringType().default("user"),clientId:stringType()}),objectType({service:literalType("cognito"),superuserEmail:stringType(),superuserPassword:stringType().optional(),isIdentityStore:booleanType().default(!1),userPoolId:stringType(),clientId:stringType(),whitelistEnabled:booleanType().default(!1),disableUserSessions:booleanType().default(!1)})]).optional(),openapi:arrayType(objectType({specUrl:stringType(),baseUrl:stringType().optional(),name:stringType()})).optional(),logging:objectType({level:enumType(["error","warn","info","debug"]).default("info")}).optional(),retry:arrayType(objectType({name:stringType(),attempts:numberType(),backoff:objectType({strategy:enumType(["linear","exponential","constant"]),delay:numberType(),magnitude:enumType(["seconds","milliSeconds","minutes"]),factor:numberType()})})).optional()});function isMonitoringEnabled(){var ya;return((ya=void 0)===null||ya===void 0?void 0:ya.enabled)===!0}class TtlCache{constructor(ma){this.store=new Map,this.ttlMs=ma}set(ma,ba,va){va=va||this.ttlMs;const Ma=Date.now()+va;return this.store.set(ma,{value:ba,expireTime:Ma}),setTimeout(()=>{const wl=this.store.get(ma);wl&&wl.expireTime===Ma&&this.store.delete(ma)},va),ba}get(ma){const ba=this.store.get(ma);if(ba!==void 0){if(Date.now()>ba.expireTime){this.store.delete(ma);return}return ba.value}}delete(ma){this.store.delete(ma)}}const AdminUserId="00000000-0000-0000-0000-000000000000";function isAuthEnabled(){var ya;return((ya=void 0)===null||ya===void 0?void 0:ya.enabled)==!0}function isRbacEnabled(){var ya;return isAuthEnabled()&&((ya=void 0)===null||ya===void 0?void 0:ya.enabled)==!0}const AdminSession={sessionId:crypto.randomUUID(),userId:AdminUserId},LocalEnv=new Map;function getLocalEnv$1(ya,ma){const ba=LocalEnv.get(ya);if(ba!==void 0)return ba;if(typeof E$c<"u"&&E$c.env){const va=E$c.env[ya];if(va!==void 0)return va}return ma}const PathAttributeName="__path__",PathAttributeNameQuery="__path__?",ParentAttributeName="__parent__",DeletedFlagAttributeName="__is_deleted__",TenantAttributeName="__tenant__";function asUnauthMessage(ya){return typeof ya=="string"?ya:`User not authorised to perform '${ya.opr}' on ${ya.entity}`}class UnauthorisedError extends Error{constructor(ma,ba){super(ma?asUnauthMessage(ma):"User not authorised to perform this operation",ba)}}let BadRequestError$2=class extends Error{constructor(ya,ma){super(ya?asUnauthMessage(ya):"BadRequest",ma)}};class UserNotFoundError extends Error{constructor(ma,ba){super(ma||"User not found",ba)}}class UserNotConfirmedError extends Error{constructor(ma,ba){super(ma||"User account is not confirmed. Please check your email for verification code.",ba)}}class PasswordResetRequiredError extends Error{constructor(ma,ba){super(ma||"Password reset is required for this account",ba)}}let TooManyRequestsError$1=class extends Error{constructor(ya,ma){super(ya||"Too many requests. Please try again later.",ma)}};class InvalidParameterError extends Error{constructor(ma,ba){super(ma||"Invalid parameters provided",ba)}}class ExpiredCodeError extends Error{constructor(ma,ba){super(ma||"The verification code has expired. Please request a new one.",ba)}}class CodeMismatchError extends Error{constructor(ma,ba){super(ma||"The verification code is incorrect. Please try again.",ba)}}let FetchModuleFn;function setModuleFnFetcher(ya){FetchModuleFn=ya}const ForceReadPermFlag="f-r-f",FlowSuspensionTag="--";var SubGraphType;(function(ya){ya[ya.EVENT=0]="EVENT",ya[ya.IF=1]="IF",ya[ya.IF_WITH_ALIAS=2]="IF_WITH_ALIAS",ya[ya.FOR_EACH=3]="FOR_EACH",ya[ya.DELETE=4]="DELETE",ya[ya.PURGE=5]="PURGE",ya[ya.RETURN=6]="RETURN",ya[ya.AGENT=7]="AGENT",ya[ya.THROW=8]="THROW",ya[ya.NONE=9]="NONE"})(SubGraphType||(SubGraphType={}));class ExecGraph{static isEmpty(ma){return Object.is(ExecGraph.Empty,ma)}constructor(){this.parentGraph=void 0,this.hasAgentsFlag=!1,this.loopBody=!1,this.rootNodes=new Array,this.subGraphs=new Array}pushNode(ma){return this.rootNodes.push(ma),this}pushSubGraph(ma){return ma.parentGraph=this,this.subGraphs.push(ma),this}getSubGraphsLength(){return this.subGraphs.length}getLastSubGraphIndex(){return this.subGraphs.length-1}fetchSubGraphAt(ma){if(ma<0||ma>=this.subGraphs.length)throw new Error(`Invalid sub-graph index: ${ma}`);return this.subGraphs[ma]}fetchForEachBodySubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfWithAliasSubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfConsequentSubGraph(){return this.subGraphs.length>=2?this.fetchSubGraphAt(this.subGraphs.length-2):this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfAlternativeSubGraph(){if(this.subGraphs.length>=2)return this.fetchSubGraphAt(this.subGraphs.length-1)}getRootNodes(){return this.rootNodes}setActiveModuleName(ma){return ma&&(this.activeModuleName=ma),this}getActiveModuleName(){return this.activeModuleName}getParentGraph(){return this.parentGraph}setEventName(ma){return ma!==void 0&&(this.eventName=ma),this}getEventName(){return this.eventName}setHasAgents(ma){return this.hasAgentsFlag=ma,this.parentGraph&&this.parentGraph.setHasAgents(ma),this}hasAgents(){return this.hasAgentsFlag}canCache(){return!this.hasAgentsFlag}setIsLoopBody(){return this.loopBody=!0,this}isLoopBody(){return this.loopBody}asObject(){const ma=new Array;return this.rootNodes.forEach(ba=>{var va;const Ma=ba.asObject();if(ba.subGraphIndex>=0){const wl=this.subGraphs[ba.subGraphIndex],El=wl.asObject();if(ba.subGraphType==SubGraphType.FOR_EACH){const Sl=ba.code;Ma.var=(va=Sl.pattern.forEach)===null||va===void 0?void 0:va.var,Ma.source=El,Ma.body=wl.fetchForEachBodySubGraph().asObject()}else if(ba.subGraphType==SubGraphType.IF){Ma.condition=El,Ma.body=wl.fetchIfConsequentSubGraph().asObject();const Sl=wl.fetchIfAlternativeSubGraph();Sl&&(Ma.else=Sl.asObject())}else Ma.subGraph=El}ma.push(Ma)}),ma}}ExecGraph.Empty=new ExecGraph;var RuntimeModeTag;(function(ya){ya[ya.DEV=0]="DEV",ya[ya.PROD=1]="PROD",ya[ya.TEST=2]="TEST",ya[ya.INIT_SCHEMA=3]="INIT_SCHEMA",ya[ya.RUN_MIGRATION=4]="RUN_MIGRATION",ya[ya.UNDO_MIGRATION=5]="UNDO_MIGRATION",ya[ya.GENERATE_MIGRATION=6]="GENERATE_MIGRATION"})(RuntimeModeTag||(RuntimeModeTag={}));RuntimeModeTag.DEV;const DefaultTenantId="00000000-0000-0000-0000-000000000000";let getUserTenantId$1=async function(ya,ma){return DefaultTenantId};function set_getUserTenantId(ya){getUserTenantId$1=ya}let DailyRotateFile,winston;isNodeEnv&&(await __vitePreload(()=>import("./index-D4z_hbl0-Bi21Cj4J.js"),__vite__mapDeps([12,11,13,1,3,9,5,14,15,16,17,18,19,10,20,21,4])).then(ya=>ya.i).then(ya=>{DailyRotateFile=ya.default}),await __vitePreload(()=>import("./winston-CtxF18qc-Bm9o0b6l.js"),__vite__mapDeps([22,11,13,1,3,9,5,14,15,16,18,19,10,20,21,17,4])).then(ya=>ya.w).then(ya=>{winston=ya.default}));let logger$1;function getLogLevel(){var ya;return isNodeEnv&&E$c.env&&E$c.env.DEBUG?"debug":((ya=void 0)===null||ya===void 0?void 0:ya.level)||"info"}function initializeLogger(){const ya=getLogLevel();if(isNodeEnv){const ma=new DailyRotateFile({level:ya,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$1=winston.createLogger({level:ya,format:winston.format.combine(winston.format.timestamp(),winston.format.printf(({timestamp:ba,level:va,message:Ma})=>`[${ba}] ${va}: ${Ma}`)),transports:[ma]})}else{let ma=function(ba){return va=>{console.log(`${ba}: ${va}`)}};logger$1={debug:ma("DEBUG"),info:ma("INFO"),warn:ma("WARN"),error:ma("ERROR")}}}initializeLogger();const PlannerInstructions=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
16619
16619
  The model of a business application consists of entity definitions and workflows defined in "modules".
16620
16620
  A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
16621
16621
 
@@ -17981,7 +17981,7 @@ ${mg}`),dp=`${dp}
17981
17981
  ${Cl} --> ${mg}
17982
17982
  `,Jf?Sl=await preprocessStep(mg,El,va):(va.setFlowContext(dp),await agentInvoke(ma,`${wl}
17983
17983
  ${dp}`,va),Sl=await preprocessStep(va.getLastResult(),El,va)),Cl=Sl.step,Mc=Sl.needAgentProcessing}}finally{va.decrementMonitor().revokeLastResult().setMonitorFlowResult()}console.debug(`No more flow steps, completed iteration ${hp} on flow:
17984
- ${ya}`)}async function preprocessStep(ya,ma,ba){let va=!0;if(ya=trimGeneratedCode(ya),ya.startsWith("{")||ya.indexOf(" ")>0){const Ma=Environment.from(ba,ba.name+"_flow_eval",!1,!0).setActiveModuleName(ma),wl=await parseAndEvaluateStatement(ya,void 0,Ma);ba.setLastResult(wl),va=!1}return{step:ya,needAgentProcessing:va}}async function handleOpenApiEvent(ya,ma){const ba=await invokeOpenApiEvent(ya.moduleName,ya.name,ya.attributesAsObject());ma.setLastResult(ba)}async function evaluateUpsert(ya,ma){ma.setInUpsertMode(!0);try{await evaluateCrudMap(ya,ma)}finally{ma.setInUpsertMode(!1)}}async function evaluateForEach(ya,ma){const ba=ya.var;await evaluatePattern(ya.src,ma);const va=ma.getLastResult();if(va instanceof Array&&va.length>0){const Ma=Environment.from(ma),wl=new Array;for(let El=0;El<va.length;++El)Ma.bind(ba,va[El]),await evaluateStatements(ya.statements,Ma),wl.push(Ma.getLastResult());ma.setLastResult(wl)}else ma.setLastResult(EmptyResult)}async function evaluateIf(ya,ma){await evaluateExpression(ya.cond,ma),ma.getLastResult()?await evaluateStatements(ya.statements,ma):ya.else!==void 0&&await evaluateStatements(ya.else.statements,ma)}async function evaluateIfWithAlias(ya,ma){await evaluateIf(ya.if,ma)}async function evaluateDeleteHelper(ya,ma,ba){const va=Environment.from(ba).setInDeleteMode(!0);await evaluatePattern(ya,va),await maybeDeleteQueriedInstances(va,ba,ma)}async function maybeDeleteQueriedInstances(ya,ma,ba=!1){const va=ya.getLastResult();let Ma=Resolver.Default;if(va instanceof Array)if(va.length>0){if(isOneToOneBetweenRelationship$1(va[0].name,va[0].moduleName)){ma.setLastResult(va);return}Ma=await getResolverForPath(va[0].name,va[0].moduleName,ya);const wl=new Array;for(let El=0;El<va.length;++El){await runPreDeleteEvents(va[El],ma);const Sl=await Ma.deleteInstance(va[El],ba);await runPostDeleteEvents(va[El],ma),wl.push(Sl)}ya.setLastResult(wl)}else ya.setLastResult(va);else{if(isOneToOneBetweenRelationship$1(va.name,va.moduleName)){ma.setLastResult([va]);return}Ma=await getResolverForPath(va.name,va.moduleName,ya),await runPreDeleteEvents(va,ma);const wl=await Ma.deleteInstance(va,ba);await runPostDeleteEvents(va,ma),ya.setLastResult(wl)}ma.setLastResult(ya.getLastResult())}async function evaluateDelete(ya,ma){await evaluateDeleteHelper(ya.pattern,!1,ma)}async function evaluatePurge(ya,ma){await evaluateDeleteHelper(ya.pattern,!0,ma)}async function evaluateExpression(ya,ma){let ba=EmptyResult;if(isBinExpr$1(ya)){await evaluateExpression(ya.e1,ma);const va=ma.getLastResult();if(ya.op=="or"){if(va)return;await evaluateExpression(ya.e2,ma);return}else if(ya.op=="and"){if(!va)return;await evaluateExpression(ya.e2,ma);return}if(va==null){ma.setLastResult(void 0);return}await evaluateExpression(ya.e2,ma);const Ma=ma.getLastResult();if(Ma==null){ma.setLastResult(void 0);return}switch(ya.op){case"+":ba=va+Ma;break;case"-":ba=va-Ma;break;case"*":ba=va*Ma;break;case"/":ba=va/Ma;break;case"==":ba=va==Ma;break;case"<":ba=va<Ma;break;case">":ba=va>Ma;break;case"<=":ba=va<=Ma;break;case">=":ba=va>=Ma;break;case"<>":case"!=":ba=va!=Ma;break;case"like":ba=va.startsWith(Ma);break;case"in":ba=Ma.find(wl=>{});break;default:throw new Error(`Unrecognized binary operator: ${ya.op}`)}}else if(isNegExpr$1(ya))await evaluateExpression(ya.ne,ma),ba=-1*ma.getLastResult();else if(isGroup$2(ya))await evaluateExpression(ya.ge,ma),ba=ma.getLastResult();else if(isLiteral$1(ya)){await evaluateLiteral(ya,ma);return}else isNotExpr$1(ya)&&(await evaluateExpression(ya.ne,ma),ba=!ma.getLastResult());ma.setLastResult(ba)}async function getRef(ya,ma,ba){return Instance$1.IsInstance(ma)?ma.lookup(ya):ma instanceof Map?ma.get(ya):ma instanceof Object?ma[ya]:isPath$1(ma)?await getRef(ya,await dereferencePath(ma,ba),ba):void 0}async function followReference(ya,ma){const ba=splitRefs$1(ma);let va=EmptyResult,Ma=ya;for(let wl=0;wl<ba.length;++wl){const El=ba[wl],Sl=await getRef(El,Ma,ya);if(Sl===void 0)return EmptyResult;va=Sl,Ma=va}return va}async function dereferencePath(ya,ma){const ba=fqNameFromPath$1(ya);if(ba===void 0)throw new Error(`Failed to deduce entry-name from path - ${ya}`);const va=new Environment("path-deref",ma);await parseAndEvaluateStatement(`{${ba} {${PathAttributeNameQuery$1} "${ya}"}}`,ma.getAuthContextUserId(),va);const Ma=va.getLastResult();if(Ma&&Ma instanceof Array&&Ma.length>0)return Ma[0]}async function applyFn(ya,ma,ba){const va=ya.name;if(va!==void 0){let Ma=null;if(ya.args!==void 0){Ma=new Array;for(let El=0;El<ya.args.length;++El){const Sl=ya.args[El];isLiteral$1(Sl)?await evaluateLiteral(Sl,ma):await evaluateExpression(Sl,ma),Ma.push(ma.getLastResult())}Ma.push(ma)}const wl=await invokeModuleFn(va,Ma,ba);ma.setLastResult(wl)}}async function realizeArray(ya,ma){const ba=new Array;for(let va=0;va<ya.vals.length;++va)await evaluateStatement(ya.vals[va],ma),ba.push(ma.getLastResult());ma.setLastResult(ba)}async function realizeMap(ya,ma){const ba=new Map;for(let va=0;va<ya.entries.length;++va){const Ma=ya.entries[va],wl=getMapKey(Ma.key);await evaluateExpression(Ma.value,ma),ba.set(wl,ma.getLastResult())}ma.setLastResult(Object.fromEntries(ba.entries()))}async function callPostEventOnSubscription(ya,ma,ba){const va=ba===void 0,Ma=new Environment("onSubs.env");try{return await runPrePostEvents(ya,!1,ma,Ma),va&&await Ma.commitAllTransactions(),Ma.getLastResult()}catch(wl){await Ma.rollbackAllTransactions(),logger$3.error(`callPostEventOnSubscription failed for ${ya} ${ma.getFqName()} - ${wl}`)}}async function runPrePostEvents(ya,ma,ba,va){const Ma=ma?ba.record.getPreTriggerInfo(ya):ba.record.getPostTriggerInfo(ya);if(Ma){const wl=nameToPath$1(Ma.eventName),El=wl.hasModule()?wl.getModuleName():ba.record.moduleName,Sl=makeInstance$1(El,wl.getEntryName(),newInstanceAttributes$1().set(ba.record.name,ba)),Cl=va.getActiveAuthContext();Cl&&Sl.setAuthContext(Cl);const Mc=`${ma?"Pre":"Post"}-${CrudType$1[ya]} ${ba.record.getFqName()}`,dp=hp=>{logger$3.debug(`${Mc}: ${hp}`)},pp=hp=>{throw va.hasHandlers()?hp:new Error(`${Mc}: ${hp}`)};Ma.async?evaluate$1(Sl,dp,bindAliasesForPrePost(va,ba,Mc)).catch(pp):await evaluate$1(Sl,dp,bindAliasesForPrePost(va,ba,Mc)).catch(pp)}}function bindAliasesForPrePost(ya,ma,ba){const va=new Environment(`${ba}.env`,ya),Ma=ma.getFqName();return va.bind("this",ma),va.bind(Ma,ma),va.bind(ma.name,ma),va}async function runPreCreateEvents(ya,ma){await runPrePostEvents(CrudType$1.CREATE,!0,ya,ma)}async function runPostCreateEvents(ya,ma){ya.requireAudit()&&await addCreateAudit(ya.getPath(),ma,{original:ya.userAttributesAsObject()}),await runPrePostEvents(CrudType$1.CREATE,!1,ya,ma)}async function runPreUpdateEvents(ya,ma){await runPrePostEvents(CrudType$1.UPDATE,!0,ya,ma)}async function runPostUpdateEvents(ya,ma,ba){if(ya.requireAudit()){let va;if(ma!==void 0){const Ma=ma.userAttributesAsObject(),wl=detailedDiff(Ma,ya.userAttributesAsObject());va={original:Ma,updated:wl.updated}}await addUpdateAudit(ya.getPath(),va,ba)}await runPrePostEvents(CrudType$1.UPDATE,!1,ya,ba)}async function runPreDeleteEvents(ya,ma){await runPrePostEvents(CrudType$1.DELETE,!0,ya,ma)}async function runPostDeleteEvents(ya,ma){ya.requireAudit()&&await addDeleteAudit(ya.getPath(),{deleted:ya.userAttributesAsObject()},ma),await runPrePostEvents(CrudType$1.DELETE,!1,ya,ma)}async function fetchConfig(ya){const ma=await parseAndEvaluateStatement(`{${ya}? {}}`);if(ma&&ma!==null&&ma.length>0)return preprocessRawConfig(Object.fromEntries(ma[0].attributes))}const interpreter=Object.freeze(Object.defineProperty({__proto__:null,DocEventName,Environment,GlobalEnvironment,PatternHandler,callPostEventOnSubscription,get evaluate(){return evaluate$1},evaluateAsEvent,evaluateExpression,evaluatePattern,evaluateStatement,evaluateStatements,fetchConfig,handleAgentInvocation,handleMcpEvent,handleOpenApiEvent,isMcpEventInstance,makeEventEvaluator,maybeBindStatementResultToAlias,maybeDeleteQueriedInstances,get parseAndEvaluateStatement(){return parseAndEvaluateStatement},restartFlow,runPostCreateEvents,runPostDeleteEvents,runPostUpdateEvents,setEvaluateFn,setParseAndEvaluateStatementFn},Symbol.toStringTag,{value:"Module"}));class JwtBaseError extends Error{}class FailedAssertionError extends JwtBaseError{constructor(ma,ba,va){super(ma),this.failedAssertion={actual:ba,expected:va}}}class JwtParseError extends JwtBaseError{constructor(ma,ba){const va=ba!=null?`${ma}: ${ba}`:ma;super(va)}}class ParameterValidationError extends JwtBaseError{}class JwtInvalidSignatureError extends JwtBaseError{}class JwtInvalidSignatureAlgorithmError extends FailedAssertionError{}class JwtInvalidClaimError extends FailedAssertionError{withRawJwt({header:ma,payload:ba}){return this.rawJwt={header:ma,payload:ba},this}}class JwtInvalidIssuerError extends JwtInvalidClaimError{}class JwtInvalidAudienceError extends JwtInvalidClaimError{}class JwtInvalidScopeError extends JwtInvalidClaimError{}class JwtExpiredError extends JwtInvalidClaimError{}class JwtNotBeforeError extends JwtInvalidClaimError{}class CognitoJwtInvalidGroupError extends JwtInvalidClaimError{}class CognitoJwtInvalidTokenUseError extends JwtInvalidClaimError{}class CognitoJwtInvalidClientIdError extends JwtInvalidClaimError{}class JwksValidationError extends JwtBaseError{}class JwkValidationError extends JwtBaseError{}class JwtWithoutValidKidError extends JwtBaseError{}class KidNotFoundInJwksError extends JwtBaseError{}class WaitPeriodNotYetEndedJwkError extends JwtBaseError{}class JwksNotAvailableInCacheError extends JwtBaseError{}class JwkInvalidUseError extends FailedAssertionError{}class JwkInvalidKtyError extends FailedAssertionError{}class FetchError extends JwtBaseError{constructor(ma,ba){super(`Failed to fetch ${ma}: ${ba}`)}}class NonRetryableFetchError extends FetchError{}class NotSupportedError extends JwtBaseError{}var NamedCurvesWebCrypto;(function(ya){ya.ES256="P-256",ya.ES384="P-384",ya.ES512="P-521"})(NamedCurvesWebCrypto||(NamedCurvesWebCrypto={}));const nodeWebCompat={fetch:async(ya,ma,ba)=>{const va=Number(ma?.responseTimeout);if(va){const wl=new AbortController;setTimeout(()=>wl.abort(new FetchError(ya,`Response time-out (after ${va} ms.)`)),va),ma={signal:wl.signal,...ma}}const Ma=await fetch(ya,{...ma,body:ba}).catch(wl=>{throw new FetchError(ya,wl.message)});if(Ma.status!==200)throw new NonRetryableFetchError(ya,`Status code is ${Ma.status}, expected 200`);return Ma.arrayBuffer()},defaultFetchTimeouts:{response:3e3},transformJwkToKeyObjectSync:()=>{throw new NotSupportedError("Synchronously transforming a JWK into a key object is not supported in the browser")},transformJwkToKeyObjectAsync:(ya,ma)=>{const ba=ya.alg??ma;if(!ba)throw new JwtInvalidSignatureAlgorithmError("Missing alg on both JWK and JWT header",ba);const va=ba.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ba.slice(2)}`}:ba.startsWith("ES")?{name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ba]}:ya.crv;return crypto.subtle.importKey("jwk",ya,va,!1,["verify"]).then(Ma=>({key:Ma,jwk:ya}))},verifySignatureSync:()=>{throw new NotSupportedError("Synchronously verifying a JWT signature is not supported in the browser")},verifySignatureAsync:({jwsSigningInput:ya,keyObject:ma,signature:ba,alg:va})=>crypto.subtle.verify(va.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5"}:va.startsWith("ES")?{name:"ECDSA",hash:`SHA-${va.slice(2)}`}:{name:ma.jwk.crv},ma.key,bufferFromBase64url(ba),new TextEncoder().encode(ya)),parseB64UrlString:ya=>new TextDecoder().decode(bufferFromBase64url(ya)),setTimeoutUnref:setTimeout.bind(void 0),transformPemToJwk:async(ya,ma)=>{let ba;switch(ma){case"RS256":case"RS384":case"RS512":ba={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ma.slice(2)}`};break;case"ES256":case"ES384":case"ES512":ba={name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ma]};break;default:throw new JwtInvalidSignatureAlgorithmError("Unsupported signature algorithm",ma)}const va=await crypto.subtle.importKey("spki",bufferFromBase64(new TextDecoder().decode(ya).replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,"")),ba,!0,["verify"]);return crypto.subtle.exportKey("jwk",va)}};function _bufferFromBase64(ya){const ma=ya.split("").reduce((ba,va,Ma)=>Object.assign(ba,{[va.charCodeAt(0)]:Ma}),{});return function(ba){ba=ba.replace(/={1,2}$/,"");let va,Ma,wl,El;return ba.match(/.{1,4}/g).reduce((Sl,Cl,Mc)=>(va=ma[Cl.charCodeAt(0)],Ma=ma[Cl.charCodeAt(1)],wl=ma[Cl.charCodeAt(2)],El=ma[Cl.charCodeAt(3)],Sl[3*Mc]=va<<2|Ma>>4,Sl[3*Mc+1]=(Ma&15)<<4|wl>>2,Sl[3*Mc+2]=(wl&3)<<6|El,Sl),new Uint8Array(ba.length*3/4))}}const bufferFromBase64url=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bufferFromBase64=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),fetch$1=nodeWebCompat.fetch.bind(void 0);class SimpleFetcher{constructor(ma){this.defaultRequestOptions={timeout:nodeWebCompat.defaultFetchTimeouts.socketIdle,responseTimeout:nodeWebCompat.defaultFetchTimeouts.response,...ma?.defaultRequestOptions}}async fetch(ma,ba,va){ba={...this.defaultRequestOptions,...ba};try{return await fetch$1(ma,ba,va)}catch(Ma){if(Ma instanceof NonRetryableFetchError)throw Ma;return fetch$1(ma,ba,va)}}}function isJsonObject(ya){return typeof ya=="object"&&!Array.isArray(ya)&&ya!==null}function safeJsonParse(ya){return JSON.parse(ya,(ma,ba)=>(typeof ba=="object"&&!Array.isArray(ba)&&ba!==null&&(delete ba.__proto__,delete ba.constructor),ba))}function assertStringEquals(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. Expected: ${ba}`,ma,ba);if(typeof ma!="string")throw new va(`${ya} is not of type string`,ma,ba);if(ba!==ma)throw new va(`${ya} not allowed: ${ma}. Expected: ${ba}`,ma,ba)}function assertStringArrayContainsString(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. ${expectationMessage(ba)}`,ma,ba);if(typeof ma!="string")throw new va(`${ya} is not of type string`,ma,ba);return assertStringArraysOverlap(ya,ma,ba,va)}function assertStringArraysOverlap(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. ${expectationMessage(ba)}`,ma,ba);const Ma=new Set(Array.isArray(ba)?ba:[ba]);if(typeof ma=="string"&&(ma=[ma]),!Array.isArray(ma))throw new va(`${ya} is not an array`,ma,ba);if(!ma.some(El=>{if(typeof El!="string")throw new va(`${ya} includes elements that are not of type string`,ma,ba);return Ma.has(El)}))throw new va(`${ya} not allowed: ${ma.join(", ")}. ${expectationMessage(ba)}`,ma,ba)}function expectationMessage(ya){return Array.isArray(ya)?ya.length>1?`Expected one of: ${ya.join(", ")}`:`Expected: ${ya[0]}`:`Expected: ${ya}`}function assertIsNotPromise(ya,ma){if(ya&&typeof ya.then=="function")throw ma()}const optionalJwkFieldNames=["use","alg","kid","n","e","x","y","crv"],mandatoryJwkFieldNames=["kty"];function findJwkInJwks(ya,ma){return ya.keys.find(ba=>ba.kid!=null&&ba.kid===ma)}const parseJwks=function(ya){let ma;try{const ba=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}).decode(ya);ma=safeJsonParse(ba)}catch(ba){throw new JwksValidationError(`JWKS could not be parsed as JSON: ${ba}`)}return assertIsJwks(ma),ma};function assertIsJwks(ya){if(!ya)throw new JwksValidationError("JWKS empty");if(!isJsonObject(ya))throw new JwksValidationError("JWKS should be an object");if(!Object.keys(ya).includes("keys"))throw new JwksValidationError("JWKS does not include keys");if(!Array.isArray(ya.keys))throw new JwksValidationError("JWKS keys should be an array");for(const ma of ya.keys)assertIsJwk(ma)}function assertIsSignatureJwk(ya){assertStringArrayContainsString("JWK kty",ya.kty,["EC","RSA","OKP"],JwkInvalidKtyError),ya.kty==="EC"?assertIsEsSignatureJwk(ya):ya.kty==="RSA"?assertIsRsaSignatureJwk(ya):ya.kty==="OKP"&&assertIsEdDSASignatureJwk(ya)}function assertIsEdDSASignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"OKP",JwkInvalidKtyError),!ya.crv)throw new JwkValidationError("Missing Curve (crv)");if(!ya.x)throw new JwkValidationError("Missing X Coordinate (x)")}function assertIsEsSignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"EC",JwkInvalidKtyError),!ya.crv)throw new JwkValidationError("Missing Curve (crv)");if(!ya.x)throw new JwkValidationError("Missing X Coordinate (x)");if(!ya.y)throw new JwkValidationError("Missing Y Coordinate (y)")}function assertIsRsaSignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"RSA",JwkInvalidKtyError),!ya.n)throw new JwkValidationError("Missing modulus (n)");if(!ya.e)throw new JwkValidationError("Missing exponent (e)")}function assertIsJwk(ya){if(!ya)throw new JwkValidationError("JWK empty");if(!isJsonObject(ya))throw new JwkValidationError("JWK should be an object");for(const ma of mandatoryJwkFieldNames)if(typeof ya[ma]!="string")throw new JwkValidationError(`JWK ${ma} should be a string`);for(const ma of optionalJwkFieldNames)if(ma in ya&&typeof ya[ma]!="string")throw new JwkValidationError(`JWK ${ma} should be a string`)}function isJwks(ya){try{return assertIsJwks(ya),!0}catch{return!1}}function isJwk(ya){try{return assertIsJwk(ya),!0}catch{return!1}}class SimplePenaltyBox{constructor(ma){this.waitingUris=new Map,this.waitSeconds=ma?.waitSeconds??10}async wait(ma){if(this.waitingUris.has(ma))throw new WaitPeriodNotYetEndedJwkError("Not allowed to fetch JWKS yet, still waiting for back off period to end")}release(ma){const ba=this.waitingUris.get(ma);ba&&(clearTimeout(ba),this.waitingUris.delete(ma))}registerFailedAttempt(ma){const ba=nodeWebCompat.setTimeoutUnref(()=>{this.waitingUris.delete(ma)},this.waitSeconds*1e3);this.waitingUris.set(ma,ba)}registerSuccessfulAttempt(ma){this.release(ma)}}class SimpleJwksCache{constructor(ma){this.jwksCache=new Map,this.fetchingJwks=new Map,this.penaltyBox=ma?.penaltyBox??new SimplePenaltyBox,this.fetcher=ma?.fetcher??new SimpleFetcher,this.jwksParser=ma?.jwksParser??parseJwks}addJwks(ma,ba){this.jwksCache.set(ma,ba)}async getJwks(ma){const ba=this.fetchingJwks.get(ma);if(ba)return ba;const va=this.fetcher.fetch(ma).then(this.jwksParser);this.fetchingJwks.set(ma,va);let Ma;try{Ma=await va}finally{this.fetchingJwks.delete(ma)}return this.jwksCache.set(ma,Ma),Ma}getCachedJwk(ma,ba){if(typeof ba.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");if(!this.jwksCache.has(ma))throw new JwksNotAvailableInCacheError(`JWKS for uri ${ma} not yet available in cache`);const va=findJwkInJwks(this.jwksCache.get(ma),ba.header.kid);if(!va)throw new KidNotFoundInJwksError(`JWK for kid ${ba.header.kid} not found in the JWKS`);return va}async getJwk(ma,ba){if(typeof ba.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");const va=this.jwksCache.get(ma);if(va){const El=findJwkInJwks(va,ba.header.kid);if(El)return El}await this.penaltyBox.wait(ma,ba.header.kid);const Ma=await this.getJwks(ma),wl=findJwkInJwks(Ma,ba.header.kid);if(wl)this.penaltyBox.registerSuccessfulAttempt(ma,ba.header.kid);else throw this.penaltyBox.registerFailedAttempt(ma,ba.header.kid),new KidNotFoundInJwksError(`JWK for kid "${ba.header.kid}" not found in the JWKS`);return wl}}function assertJwtHeader(ya){if(!isJsonObject(ya))throw new JwtParseError("JWT header is not an object");if(ya.alg!==void 0&&typeof ya.alg!="string")throw new JwtParseError("JWT header alg claim is not a string");if(ya.kid!==void 0&&typeof ya.kid!="string")throw new JwtParseError("JWT header kid claim is not a string")}function assertJwtPayload(ya){if(!isJsonObject(ya))throw new JwtParseError("JWT payload is not an object");if(ya.exp!==void 0&&!Number.isFinite(ya.exp))throw new JwtParseError("JWT payload exp claim is not a number");if(ya.iss!==void 0&&typeof ya.iss!="string")throw new JwtParseError("JWT payload iss claim is not a string");if(ya.sub!==void 0&&typeof ya.sub!="string")throw new JwtParseError("JWT payload sub claim is not a string");if(ya.aud!==void 0&&typeof ya.aud!="string"&&(!Array.isArray(ya.aud)||ya.aud.some(ma=>typeof ma!="string")))throw new JwtParseError("JWT payload aud claim is not a string or array of strings");if(ya.nbf!==void 0&&!Number.isFinite(ya.nbf))throw new JwtParseError("JWT payload nbf claim is not a number");if(ya.iat!==void 0&&!Number.isFinite(ya.iat))throw new JwtParseError("JWT payload iat claim is not a number");if(ya.scope!==void 0&&typeof ya.scope!="string")throw new JwtParseError("JWT payload scope claim is not a string");if(ya.jti!==void 0&&typeof ya.jti!="string")throw new JwtParseError("JWT payload jti claim is not a string")}const JWT_REGEX=/^[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}$/;function decomposeUnverifiedJwt(ya){if(!ya)throw new JwtParseError("Empty JWT");if(typeof ya!="string")throw new JwtParseError("JWT is not a string");if(!JWT_REGEX.test(ya))throw new JwtParseError("JWT string does not consist of exactly 3 parts (header, payload, signature)");const[ma,ba,va]=ya.split("."),[Ma,wl]=[ma,ba].map(nodeWebCompat.parseB64UrlString);let El;try{El=safeJsonParse(Ma)}catch(Cl){throw new JwtParseError("Invalid JWT. Header is not a valid JSON object",Cl)}assertJwtHeader(El);let Sl;try{Sl=safeJsonParse(wl)}catch(Cl){throw new JwtParseError("Invalid JWT. Payload is not a valid JSON object",Cl)}return assertJwtPayload(Sl),{header:El,headerB64:ma,payload:Sl,payloadB64:ba,signatureB64:va}}function validateJwtFields(ya,ma){if(ya.exp!==void 0&&ya.exp+(ma.graceSeconds??0)<Date.now()/1e3)throw new JwtExpiredError(`Token expired at ${new Date(ya.exp*1e3).toISOString()}`,ya.exp);if(ya.nbf!==void 0&&ya.nbf-(ma.graceSeconds??0)>Date.now()/1e3)throw new JwtNotBeforeError(`Token can't be used before ${new Date(ya.nbf*1e3).toISOString()}`,ya.nbf);if(ma.issuer!==null){if(ma.issuer===void 0)throw new ParameterValidationError("issuer must be provided or set to null explicitly");assertStringArrayContainsString("Issuer",ya.iss,ma.issuer,JwtInvalidIssuerError)}if(ma.audience!==null){if(ma.audience===void 0)throw new ParameterValidationError("audience must be provided or set to null explicitly");assertStringArraysOverlap("Audience",ya.aud,ma.audience,JwtInvalidAudienceError)}ma.scope!=null&&assertStringArraysOverlap("Scope",ya.scope?.split(" "),ma.scope,JwtInvalidScopeError)}const supportedSignatureAlgorithms=["RS256","RS384","RS512","ES256","ES384","ES512","EdDSA"];function validateJwtHeaderAndJwk(ya,ma){assertIsSignatureJwk(ma),ma.alg&&assertStringEquals("JWT signature algorithm",ya.alg,ma.alg,JwtInvalidSignatureAlgorithmError),assertStringArrayContainsString("JWT signature algorithm",ya.alg,supportedSignatureAlgorithms,JwtInvalidSignatureAlgorithmError)}async function verifyDecomposedJwt(ya,ma,ba,va,Ma){const{header:wl,headerB64:El,payload:Sl,payloadB64:Cl,signatureB64:Mc}=ya,dp=await va(ma,ya);validateJwtHeaderAndJwk(ya.header,dp);const pp=await Ma(dp,wl.alg,Sl.iss);if(!await nodeWebCompat.verifySignatureAsync({jwsSigningInput:`${El}.${Cl}`,signature:Mc,alg:wl.alg,keyObject:pp}))throw new JwtInvalidSignatureError("Invalid signature");try{validateJwtFields(Sl,ba),ba.customJwtCheck&&await ba.customJwtCheck({header:wl,payload:Sl,jwk:dp})}catch(Ef){throw ba.includeRawJwtInErrors&&Ef instanceof JwtInvalidClaimError?Ef.withRawJwt(ya):Ef}return Sl}function verifyDecomposedJwtSync(ya,ma,ba,va){const{header:Ma,headerB64:wl,payload:El,payloadB64:Sl,signatureB64:Cl}=ya;let Mc;if(isJwk(ma))Mc=ma;else if(isJwks(ma)){const hp=Ma.kid?findJwkInJwks(ma,Ma.kid):void 0;if(!hp)throw new KidNotFoundInJwksError(`JWK for kid ${Ma.kid} not found in the JWKS`);Mc=hp}else throw new ParameterValidationError([`Expected a valid JWK or JWKS (parsed as JavaScript object), but received: ${ma}.`,"If you're passing a JWKS URI, use the async verify() method instead, it will download and parse the JWKS for you"].join());validateJwtHeaderAndJwk(ya.header,Mc);const dp=va(Mc,Ma.alg,El.iss);if(!nodeWebCompat.verifySignatureSync({jwsSigningInput:`${wl}.${Sl}`,signature:Cl,alg:Ma.alg,keyObject:dp}))throw new JwtInvalidSignatureError("Invalid signature");try{if(validateJwtFields(El,ba),ba.customJwtCheck){const hp=ba.customJwtCheck({header:Ma,payload:El,jwk:Mc});assertIsNotPromise(hp,()=>new ParameterValidationError("Custom JWT checks must be synchronous but a promise was returned"))}}catch(hp){throw ba.includeRawJwtInErrors&&hp instanceof JwtInvalidClaimError?hp.withRawJwt(ya):hp}return El}class JwtVerifierBase{constructor(ma,ba=new SimpleJwksCache){if(this.jwksCache=ba,this.issuersConfig=new Map,this.publicKeyCache=new KeyObjectCache,Array.isArray(ma)){if(!ma.length)throw new ParameterValidationError("Provide at least one issuer configuration");ma.forEach((va,Ma)=>{if(this.issuersConfig.has(va.issuer))throw new ParameterValidationError(`issuer ${va.issuer} supplied multiple times`);if(va.issuer===null&&ma.length>=2)throw new ParameterValidationError(`issuer cannot be null when multiple issuers are supplied (at issuer: ${Ma})`);this.issuersConfig.set(va.issuer,this.withJwksUri(va))})}else this.issuersConfig.set(ma.issuer,this.withJwksUri(ma))}getIssuerConfig(ma){if(this.issuersConfig.size===1&&(ma=this.issuersConfig.keys().next().value),ma===void 0)throw new ParameterValidationError("issuer must be provided");const ba=this.issuersConfig.get(ma);if(!ba)throw new ParameterValidationError(`issuer not configured: ${ma}`);return ba}cacheJwks(...[ma,ba]){const va=this.getIssuerConfig(ba);this.jwksCache.addJwks(va.jwksUri,ma),this.publicKeyCache.clearCache(va.issuer)}async hydrate(){const ma=Array.from(this.issuersConfig.values()).map(({jwksUri:ba})=>this.jwksCache.getJwks(ba));await Promise.all(ma)}verifySync(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);return this.verifyDecomposedJwtSync(va,Ma,wl)}verifyDecomposedJwtSync(ma,ba,va){const Ma=this.jwksCache.getCachedJwk(ba,ma);return verifyDecomposedJwtSync(ma,Ma,va,this.publicKeyCache.transformJwkToKeyObjectSync.bind(this.publicKeyCache))}async verify(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);return this.verifyDecomposedJwt(va,Ma,wl)}verifyDecomposedJwt(ma,ba,va){return verifyDecomposedJwt(ma,ba,va,this.jwksCache.getJwk.bind(this.jwksCache),this.publicKeyCache.transformJwkToKeyObjectAsync.bind(this.publicKeyCache))}getVerifyParameters(ma,ba){const va=decomposeUnverifiedJwt(ma),Ma=this.getIssuerConfig(va.payload.iss);return{decomposedJwt:va,jwksUri:Ma.jwksUri,verifyProperties:{...Ma,...ba}}}withJwksUri(ma){if(ma.jwksUri)return ma;const ba=ma.issuer;if(!ba)throw new ParameterValidationError("jwksUri must be provided for issuer null");const va=new URL(ba).pathname.replace(/\/$/,"");return{jwksUri:new URL(`${va}/.well-known/jwks.json`,ba).href,...ma}}}class KeyObjectCache{constructor(ma=nodeWebCompat.transformJwkToKeyObjectSync,ba=nodeWebCompat.transformJwkToKeyObjectAsync){this.transformJwkToKeyObjectSyncFn=ma,this.transformJwkToKeyObjectAsyncFn=ba,this.publicKeys=new Map}transformJwkToKeyObjectSync(ma,ba,va){const Ma=ma.alg??ba;if(!va||!ma.kid||!Ma)return this.transformJwkToKeyObjectSyncFn(ma,Ma,va);const wl=this.publicKeys.get(va)?.get(ma.kid)?.get(Ma);if(wl)return wl;const El=this.transformJwkToKeyObjectSyncFn(ma,Ma,va);return this.putKeyObjectInCache(va,ma.kid,Ma,El),El}async transformJwkToKeyObjectAsync(ma,ba,va){const Ma=ma.alg??ba;if(!va||!ma.kid||!Ma)return this.transformJwkToKeyObjectAsyncFn(ma,Ma,va);const wl=this.publicKeys.get(va)?.get(ma.kid)?.get(Ma);if(wl)return wl;const El=await this.transformJwkToKeyObjectAsyncFn(ma,Ma,va);return this.putKeyObjectInCache(va,ma.kid,Ma,El),El}putKeyObjectInCache(ma,ba,va,Ma){const wl=this.publicKeys.get(ma),El=wl?.get(ba);El?El.set(va,Ma):wl?wl.set(ba,new Map([[va,Ma]])):this.publicKeys.set(ma,new Map([[ba,new Map([[va,Ma]])]]))}clearCache(ma){this.publicKeys.delete(ma)}}function validateCognitoJwtFields(ya,ma){if(ma.groups!=null&&assertStringArraysOverlap("Cognito group",ya["cognito:groups"],ma.groups,CognitoJwtInvalidGroupError),assertStringArrayContainsString("Token use",ya.token_use,["id","access"],CognitoJwtInvalidTokenUseError),ma.tokenUse!==null){if(ma.tokenUse===void 0)throw new ParameterValidationError("tokenUse must be provided or set to null explicitly");assertStringEquals("Token use",ya.token_use,ma.tokenUse,CognitoJwtInvalidTokenUseError)}if(ma.clientId!==null){if(ma.clientId===void 0)throw new ParameterValidationError("clientId must be provided or set to null explicitly");ya.token_use==="id"?assertStringArrayContainsString('Client ID ("audience")',ya.aud,ma.clientId,CognitoJwtInvalidClientIdError):assertStringArrayContainsString("Client ID",ya.client_id,ma.clientId,CognitoJwtInvalidClientIdError)}}class CognitoJwtVerifier extends JwtVerifierBase{constructor(ma,ba){const va=Array.isArray(ma)?ma.map(Ma=>({...Ma,...CognitoJwtVerifier.parseUserPoolId(Ma.userPoolId),audience:null})):{...ma,...CognitoJwtVerifier.parseUserPoolId(ma.userPoolId),audience:null};super(va,ba)}static parseUserPoolId(ma){const ba=ma.match(this.USER_POOL_ID_REGEX);if(!ba)throw new ParameterValidationError(`Invalid Cognito User Pool ID: ${ma}`);const Ma=`https://cognito-idp.${ba.groups.region}.amazonaws.com/${ma}`;return{issuer:Ma,jwksUri:`${Ma}/.well-known/jwks.json`}}static create(ma,ba){return new this(ma,ba?.jwksCache)}verifySync(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);this.verifyDecomposedJwtSync(va,Ma,wl);try{validateCognitoJwtFields(va.payload,wl)}catch(El){throw wl.includeRawJwtInErrors&&El instanceof JwtInvalidClaimError?El.withRawJwt(va):El}return va.payload}async verify(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);await this.verifyDecomposedJwt(va,Ma,wl);try{validateCognitoJwtFields(va.payload,wl)}catch(El){throw wl.includeRawJwtInErrors&&El instanceof JwtInvalidClaimError?El.withRawJwt(va):El}return va.payload}cacheJwks(...[ma,ba]){let va;if(ba!==void 0)va=CognitoJwtVerifier.parseUserPoolId(ba).issuer;else if(Array.from(this.issuersConfig).length>1)throw new ParameterValidationError("userPoolId must be provided");const Ma=this.getIssuerConfig(va);super.cacheJwks(ma,Ma.issuer)}}CognitoJwtVerifier.USER_POOL_ID_REGEX=/^(?<region>[a-z]{2}-(gov-)?[a-z]+-\d)_[a-zA-Z0-9]+$/;var __assign=function(){return __assign=Object.assign||function(ma){for(var ba,va=1,Ma=arguments.length;va<Ma;va++){ba=arguments[va];for(var wl in ba)Object.prototype.hasOwnProperty.call(ba,wl)&&(ma[wl]=ba[wl])}return ma},__assign.apply(this,arguments)};function __rest(ya,ma){var ba={};for(var va in ya)Object.prototype.hasOwnProperty.call(ya,va)&&ma.indexOf(va)<0&&(ba[va]=ya[va]);if(ya!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Ma=0,va=Object.getOwnPropertySymbols(ya);Ma<va.length;Ma++)ma.indexOf(va[Ma])<0&&Object.prototype.propertyIsEnumerable.call(ya,va[Ma])&&(ba[va[Ma]]=ya[va[Ma]]);return ba}function __awaiter(ya,ma,ba,va){function Ma(wl){return wl instanceof ba?wl:new ba(function(El){El(wl)})}return new(ba||(ba=Promise))(function(wl,El){function Sl(dp){try{Mc(va.next(dp))}catch(pp){El(pp)}}function Cl(dp){try{Mc(va.throw(dp))}catch(pp){El(pp)}}function Mc(dp){dp.done?wl(dp.value):Ma(dp.value).then(Sl,Cl)}Mc((va=va.apply(ya,ma||[])).next())})}function __generator(ya,ma){var ba={label:0,sent:function(){if(wl[0]&1)throw wl[1];return wl[1]},trys:[],ops:[]},va,Ma,wl,El=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return El.next=Sl(0),El.throw=Sl(1),El.return=Sl(2),typeof Symbol=="function"&&(El[Symbol.iterator]=function(){return this}),El;function Sl(Mc){return function(dp){return Cl([Mc,dp])}}function Cl(Mc){if(va)throw new TypeError("Generator is already executing.");for(;El&&(El=0,Mc[0]&&(ba=0)),ba;)try{if(va=1,Ma&&(wl=Mc[0]&2?Ma.return:Mc[0]?Ma.throw||((wl=Ma.return)&&wl.call(Ma),0):Ma.next)&&!(wl=wl.call(Ma,Mc[1])).done)return wl;switch(Ma=0,wl&&(Mc=[Mc[0]&2,wl.value]),Mc[0]){case 0:case 1:wl=Mc;break;case 4:return ba.label++,{value:Mc[1],done:!1};case 5:ba.label++,Ma=Mc[1],Mc=[0];continue;case 7:Mc=ba.ops.pop(),ba.trys.pop();continue;default:if(wl=ba.trys,!(wl=wl.length>0&&wl[wl.length-1])&&(Mc[0]===6||Mc[0]===2)){ba=0;continue}if(Mc[0]===3&&(!wl||Mc[1]>wl[0]&&Mc[1]<wl[3])){ba.label=Mc[1];break}if(Mc[0]===6&&ba.label<wl[1]){ba.label=wl[1],wl=Mc;break}if(wl&&ba.label<wl[2]){ba.label=wl[2],ba.ops.push(Mc);break}wl[2]&&ba.ops.pop(),ba.trys.pop();continue}Mc=ma.call(ya,ba)}catch(dp){Mc=[6,dp],Ma=0}finally{va=wl=0}if(Mc[0]&5)throw Mc[1];return{value:Mc[0]?Mc[1]:void 0,done:!0}}}function __spreadArray(ya,ma,ba){if(ba||arguments.length===2)for(var va=0,Ma=ma.length,wl;va<Ma;va++)(wl||!(va in ma))&&(wl||(wl=Array.prototype.slice.call(ma,0,va)),wl[va]=ma[va]);return ya.concat(wl||Array.prototype.slice.call(ma))}typeof SuppressedError=="function"&&SuppressedError;var define_process_env_default$2={};let fromEnv,CognitoIdentityProviderClient,SignUpCommand,ConfirmSignUp,ResendConfirmationCodeCommand,ForgotPasswordCommand,ConfirmForgotPasswordCommand,AdminGetUserCommand,InitiateAuthCommand,AdminCreateUserCommand,AdminDisableUserCommand,AdminEnableUserCommand,AdminDeleteUserCommand,RespondToAuthChallengeCommand,AuthenticationDetails,CognitoUser,CognitoUserPool,CognitoUserSession,CognitoIdToken,CognitoAccessToken,CognitoRefreshToken;if(isNodeEnv$1){fromEnv=(await __vitePreload(()=>import("./index.browser-CYbR8BA1.js"),__vite__mapDeps([26,19,27]))).fromEnv;const ma=await __vitePreload(()=>import("./index--s9Eldt5.js"),__vite__mapDeps([28,27,29,19,1,18,5,9,16,11,14,15,10,20,21,17,4]));CognitoIdentityProviderClient=ma.CognitoIdentityProviderClient,SignUpCommand=ma.SignUpCommand,ConfirmSignUp=ma.ConfirmSignUpCommand,ResendConfirmationCodeCommand=ma.ResendConfirmationCodeCommand,ForgotPasswordCommand=ma.ForgotPasswordCommand,ConfirmForgotPasswordCommand=ma.ConfirmForgotPasswordCommand,AdminGetUserCommand=ma.AdminGetUserCommand,InitiateAuthCommand=ma.InitiateAuthCommand,AdminCreateUserCommand=ma.AdminCreateUserCommand,AdminDisableUserCommand=ma.AdminDisableUserCommand,AdminEnableUserCommand=ma.AdminEnableUserCommand,AdminDeleteUserCommand=ma.AdminDeleteUserCommand,RespondToAuthChallengeCommand=ma.RespondToAuthChallengeCommand;const ba=await __vitePreload(()=>import("./index-BFv-M3PX.js"),__vite__mapDeps([30,1,4,5]));AuthenticationDetails=ba.AuthenticationDetails,CognitoUser=ba.CognitoUser,CognitoUserPool=ba.CognitoUserPool,CognitoUserSession=ba.CognitoUserSession,CognitoIdToken=ba.CognitoIdToken,CognitoAccessToken=ba.CognitoAccessToken,CognitoRefreshToken=ba.CognitoRefreshToken}const defaultConfig$1=isNodeEnv$1?new Map().set("UserPoolId",define_process_env_default$2.COGNITO_USER_POOL_ID).set("ClientId",define_process_env_default$2.COGNITO_CLIENT_ID):new Map;function handleCognitoError(ya,ma){var ba;const va=sanitizeErrorMessage(ya.message||"");switch(logger$3.error(`Cognito error in ${ma}: ${ya.name} - ${va}`,{errorName:ya.name,errorCode:ya.code,context:ma,statusCode:(ba=ya.$metadata)===null||ba===void 0?void 0:ba.httpStatusCode}),ya.name){case"UserNotFoundException":throw logger$3.debug(`User not found in context: ${ma}`),new UserNotFoundError$1("User account not found. Please check your email or sign up.");case"NotAuthorizedException":throw ya.message&&ya.message.includes("password")?(logger$3.debug(`Invalid password attempt in context: ${ma}`),new UnauthorisedError$1("Invalid password. Please try again.")):ya.message&&ya.message.includes("not confirmed")?(logger$3.debug(`User not confirmed in context: ${ma}`),new UserNotConfirmedError$1):(logger$3.debug(`Authentication failed in context: ${ma}`),new UnauthorisedError$1("Authentication failed. Please check your credentials."));case"UserNotConfirmedException":throw logger$3.debug(`User not confirmed in context: ${ma}`),new UserNotConfirmedError$1;case"PasswordResetRequiredException":throw logger$3.debug(`Password reset required in context: ${ma}`),new PasswordResetRequiredError$1;case"TooManyRequestsException":throw logger$3.warn(`Rate limit exceeded in context: ${ma}`),new TooManyRequestsError$3;case"TooManyFailedAttemptsException":throw logger$3.warn(`Too many failed attempts in context: ${ma}`),new TooManyRequestsError$3("Too many failed login attempts. Please try again later.");case"InvalidParameterException":throw logger$3.debug(`Invalid parameters in context: ${ma}`),new InvalidParameterError$1(sanitizeErrorMessage(ya.message)||"Invalid parameters provided");case"ExpiredCodeException":throw logger$3.debug(`Expired code in context: ${ma}`),new ExpiredCodeError$1;case"CodeMismatchException":throw logger$3.debug(`Code mismatch in context: ${ma}`),new CodeMismatchError$1;case"UsernameExistsException":throw logger$3.debug(`Username exists in context: ${ma}`),new BadRequestError$4("An account with this email already exists.");case"InvalidPasswordException":throw logger$3.debug(`Invalid password format in context: ${ma}`),new BadRequestError$4("Password does not meet requirements. It must be at least 8 characters long and contain uppercase, lowercase, numbers, and special characters.");case"LimitExceededException":throw logger$3.warn(`Service limit exceeded in context: ${ma}`),new TooManyRequestsError$3("Service limit exceeded. Please try again later.");case"InternalErrorException":throw logger$3.error(`Internal Cognito error in context: ${ma}`),new Error("Authentication service is temporarily unavailable. Please try again later.");case"ResourceNotFoundException":throw logger$3.error(`Resource not found in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");case"AliasExistsException":throw logger$3.debug(`Alias exists in context: ${ma}`),new BadRequestError$4("An account with this email already exists.");case"InvalidEmailRoleAccessPolicyException":throw logger$3.error(`Invalid email role access policy in context: ${ma}`),new Error("Email service configuration error. Please contact support.");case"UserLambdaValidationException":throw logger$3.error(`User lambda validation error in context: ${ma}`),new BadRequestError$4("User validation failed. Please check your input and try again.");case"UnsupportedUserStateException":throw logger$3.debug(`Unsupported user state in context: ${ma}`),new UserNotConfirmedError$1("User account is in an unsupported state. Please contact support.");case"MFAMethodNotFoundException":throw logger$3.debug(`MFA method not found in context: ${ma}`),new BadRequestError$4("MFA method not found. Please set up MFA and try again.");case"CodeDeliveryFailureException":throw logger$3.error(`Code delivery failure in context: ${ma}`),new Error("Unable to deliver verification code. Please try again later.");case"DuplicateProviderException":throw logger$3.error(`Duplicate provider in context: ${ma}`),new BadRequestError$4("Authentication provider already exists.");case"EnableSoftwareTokenMFAException":throw logger$3.debug(`Software token MFA required in context: ${ma}`),new BadRequestError$4("Software token MFA setup required.");case"ForbiddenException":throw logger$3.warn(`Forbidden access in context: ${ma}`),new UnauthorisedError$1("Access forbidden. Please check your permissions.");case"GroupExistsException":throw logger$3.debug(`Group exists in context: ${ma}`),new BadRequestError$4("Group already exists.");case"InvalidLambdaResponseException":throw logger$3.error(`Invalid lambda response in context: ${ma}`),new Error("Authentication service error. Please try again later.");case"InvalidOAuthFlowException":throw logger$3.error(`Invalid OAuth flow in context: ${ma}`),new BadRequestError$4("Invalid OAuth flow. Please try again.");case"InvalidSmsRoleAccessPolicyException":throw logger$3.error(`Invalid SMS role access policy in context: ${ma}`),new Error("SMS service configuration error. Please contact support.");case"InvalidSmsRoleTrustRelationshipException":throw logger$3.error(`Invalid SMS role trust relationship in context: ${ma}`),new Error("SMS service configuration error. Please contact support.");case"InvalidUserPoolConfigurationException":throw logger$3.error(`Invalid user pool configuration in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");case"PreconditionNotMetException":throw logger$3.debug(`Precondition not met in context: ${ma}`),new BadRequestError$4("Precondition not met. Please check your request and try again.");case"ScopeDoesNotExistException":throw logger$3.error(`Scope does not exist in context: ${ma}`),new BadRequestError$4("Invalid scope. Please check your request.");case"UnexpectedLambdaException":throw logger$3.error(`Unexpected lambda exception in context: ${ma}`),new Error("Authentication service error. Please try again later.");case"UserImportInProgressException":throw logger$3.warn(`User import in progress in context: ${ma}`),new TooManyRequestsError$3("User import in progress. Please try again later.");case"UserPoolTaggingException":throw logger$3.error(`User pool tagging exception in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");default:throw logger$3.error(`Unhandled Cognito error: ${ya.name}`,{errorName:ya.name,errorCode:ya.code,context:ma}),new Error(`Authentication error: ${sanitizeErrorMessage(ya.message)||"An unexpected error occurred"}`)}}function sanitizeErrorMessage(ya){return ya?ya.replace(/password/gi,"[REDACTED]").replace(/token/gi,"[REDACTED]").replace(/secret/gi,"[REDACTED]").replace(/key/gi,"[REDACTED]").replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,"[EMAIL_REDACTED]").replace(/\b[A-Fa-f0-9]{32,}\b/g,"[TOKEN_REDACTED]").replace(/\b\d{4,}\b/g,"[NUMBER_REDACTED]"):""}class CognitoAuth{constructor(ma){this.config=ma||defaultConfig$1;const ba=this.config.get("UserPoolId");ba&&(this.userPool=new CognitoUserPool({UserPoolId:ba,ClientId:this.fetchClientId()}))}fetchUserPoolId(){return this.fetchConfig("UserPoolId")}fetchClientId(){return this.fetchConfig("ClientId")}fetchConfig(ma){const ba=this.config.get(ma);if(ba)return ba;throw new Error(`${ma} is not set`)}async signUp(ma,ba,va,Ma,wl,El,Sl){const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Mc=[{Name:"email",Value:va},{Name:"name",Value:va},{Name:"given_name",Value:ma},{Name:"family_name",Value:ba}];wl&&wl.forEach((hp,Ef)=>{Mc.push({Name:Ef,Value:hp})});const dp={ClientId:this.config.get("ClientId"),Username:va,Password:Ma,UserAttributes:Mc,ValidationData:Mc},pp=new SignUpCommand(dp);try{logger$3.debug(`Attempting signup for user: ${va}`);const hp=await Cl.send(pp);if(hp.$metadata.httpStatusCode==200){logger$3.info(`Signup successful for user: ${va}`);const Ef=await ensureUser(va,ma,ba,El,"Active"),Zf={username:va,firstName:ma,lastName:ba,id:Ef.id,systemUserInfo:hp.UserSub};Sl(Zf)}else throw logger$3.error(`Signup failed with HTTP status ${hp.$metadata.httpStatusCode}`,{username:va,statusCode:hp.$metadata.httpStatusCode}),new BadRequestError$4(`Signup failed with status ${hp.$metadata.httpStatusCode}`)}catch(hp){if(hp instanceof BadRequestError$4)throw hp;logger$3.error(`Signup error for user ${va}:`,{errorName:hp.name,errorMessage:sanitizeErrorMessage(hp.message)}),handleCognitoError(hp,"signUp")}}async confirmSignup(ma,ba,va){try{const Ma=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wl=new ConfirmSignUp({ClientId:this.config.get("ClientId"),Username:ma,ConfirmationCode:ba});await Ma.send(wl)}catch(Ma){logger$3.error(`Failed to confirm signup: ${Ma.message}`),handleCognitoError(Ma,"confirmSignup")}}async resendConfirmationCode(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new ResendConfirmationCodeCommand({ClientId:this.config.get("ClientId"),Username:ma});await va.send(Ma)}catch(va){logger$3.error(`Failed to resend confirmation code: ${va.message}`),handleCognitoError(va,"resendConfirmationCode")}}async forgotPassword(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new ForgotPasswordCommand({ClientId:this.fetchClientId(),Username:ma});await va.send(Ma)}catch(va){logger$3.error(`Forgot password failed for ${ma}: ${sanitizeErrorMessage(va.message)}`),handleCognitoError(va,"forgotPassword")}}async confirmForgotPassword(ma,ba,va,Ma){try{const wl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),El=new ConfirmForgotPasswordCommand({ClientId:this.fetchClientId(),Username:ma,ConfirmationCode:ba,Password:va});await wl.send(El)}catch(wl){logger$3.error(`Confirm forgot password failed for ${ma}: ${sanitizeErrorMessage(wl.message)}`),handleCognitoError(wl,"confirmForgotPassword")}}async login(ma,ba,va,Ma){if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID){const El=new CognitoUser({Username:ma,Pool:this.fetchUserPool()}),Sl=new AuthenticationDetails({Username:ma,Password:ba});let Cl,Mc;for(El.authenticateUser(Sl,{onSuccess:dp=>{Cl=dp},onFailure:dp=>{logger$3.debug(`Cognito authentication failed for user ${ma}:`,{errorName:dp.name,errorMessage:sanitizeErrorMessage(dp.message)}),Mc=dp},mfaRequired:(dp,pp)=>{logger$3.info(`MFA required for user ${ma}: ${dp}`),Mc=new Error("MFA authentication required")},newPasswordRequired:(dp,pp)=>{logger$3.info(`New password required for user ${ma}`),Mc=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});Cl===void 0&&Mc===void 0;)await sleepMilliseconds$1(100);if(Mc){if(Mc instanceof PasswordResetRequiredError$1)throw Mc;logger$3.error(`Login failed for user ${ma}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),handleCognitoError(Mc,"login")}if(Cl){const dp=Cl.getIdToken(),pp=dp.getJwtToken(),hp=dp.decodePayload(),Ef=hp.given_name||hp.name||"",Zf=hp.family_name||"",Jf=hp["cognito:groups"];let pg=await findUserByEmail(ma,va);pg||(pg=await ensureUser(ma,Ef,Zf,va));const hg=pg.lookup("id");Jf&&await ensureUserRoles(hg,Jf,va);const mg=Cl.getAccessToken().getJwtToken(),gg=Cl.getRefreshToken().getToken(),ay={sessionId:(await ensureUserSession(hg,ma,pp,mg,gg,va)).lookup("id"),userId:hg,authToken:pp,idToken:pp,accessToken:mg,refreshToken:gg,systemSesionInfo:Cl};Ma(ay)}else throw logger$3.error(`Login failed for ${ma} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}else{let El=await findUserByEmail(ma,va);El||(logger$3.warn(`User ${ma} not found in local store`),El=await ensureUser(ma,"","",va));const Sl=new CognitoUser({Username:ma,Pool:this.fetchUserPool()}),Cl=new AuthenticationDetails({Username:ma,Password:ba});let Mc,dp;for(Sl.authenticateUser(Cl,{onSuccess:pp=>{Mc=pp},onFailure:pp=>{logger$3.debug(`Cognito authentication failed for user ${ma}:`,{errorName:pp.name,errorMessage:sanitizeErrorMessage(pp.message)}),dp=pp},mfaRequired:(pp,hp)=>{logger$3.info(`MFA required for user ${ma}: ${pp}`),dp=new Error("MFA authentication required")},newPasswordRequired:(pp,hp)=>{logger$3.info(`New password required for user ${ma}`),dp=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});Mc===void 0&&dp===void 0;)await sleepMilliseconds$1(100);if(dp){if(dp instanceof PasswordResetRequiredError$1)throw dp;logger$3.error(`Login failed for user ${ma}:`,{errorName:dp.name,errorMessage:sanitizeErrorMessage(dp.message)}),handleCognitoError(dp,"login")}if(Mc){const pp=El.lookup("id"),hp=Mc.getIdToken().getJwtToken(),Ef=Mc.getAccessToken().getJwtToken(),Zf=Mc.getRefreshToken().getToken(),pg={sessionId:(await ensureUserSession(pp,ma,hp,Ef,Zf,va)).lookup("id"),userId:pp,authToken:hp,idToken:hp,accessToken:Ef,refreshToken:Zf,systemSesionInfo:Mc};Ma(pg)}else throw logger$3.error(`Login failed for ${ma} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}}async logout(ma,ba,va){try{const Ma=await findUser(ma.userId,ba);if(!Ma){logger$3.warn(`User ${ma.userId} not found during logout`),va&&va(!0);return}const wl=new CognitoUser({Username:Ma.lookup("email"),Pool:this.fetchUserPool()});let El=!1,Sl;const Cl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:ma.idToken}),AccessToken:new CognitoAccessToken({AccessToken:ma.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:ma.refreshToken})});for(wl.setSignInUserSession(Cl),wl.globalSignOut({onSuccess:function(){El=!0},onFailure:function(Mc){El=!0,logger$3.error(`Cognito signOut error for user ${ma.userId}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),Sl=Mc}});!El;)await sleepMilliseconds$1(100);Sl&&logger$3.error(`Error during Cognito logout for user ${ma.userId}: ${Sl.message}`),logger$3.debug(`Successfully logged out user ${ma.userId}`),va&&va(!0)}catch(Ma){throw logger$3.error(`Logout failed for user ${ma.userId}: ${Ma.message}`),va&&va(!1),Ma}}async changePassword(ma,ba,va,Ma){const wl=await findUser(ma.userId,Ma);if(!wl)return logger$3.warn(`User ${ma.userId} not found for password-change`),!1;const El=wl.lookup("email"),Sl=new CognitoUser({Username:El,Pool:this.fetchUserPool()}),Cl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:ma.idToken}),AccessToken:new CognitoAccessToken({AccessToken:ma.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:ma.refreshToken})});Sl.setSignInUserSession(Cl);let Mc=!1,dp;for(Sl.changePassword(va,ba,(pp,hp)=>{pp?(Mc=!0,dp=pp):Mc=!0});!Mc;)await sleepMilliseconds$1(100);return dp?(logger$3.warn(`Failed to change the password for ${El} - ${dp.message}`),!1):!0}fetchUserPool(){if(this.userPool)return this.userPool;throw new Error("UserPool not initialized")}async verifyToken(ma){try{const va=await CognitoJwtVerifier.create({userPoolId:this.fetchUserPoolId(),tokenUse:"id",clientId:this.fetchClientId()}).verify(ma);logger$3.debug(`Decoded JWT for ${va.email}`)}catch(ba){throw logger$3.error("Token verification failed:",{errorName:ba.name,errorMessage:sanitizeErrorMessage(ba.message)}),ba.message&&ba.message.includes("expired")?new UnauthorisedError$1("Token has expired. Please login again."):ba.message&&ba.message.includes("invalid")?new UnauthorisedError$1("Invalid token format."):ba.message&&ba.message.includes("not before")?new UnauthorisedError$1("Token is not yet valid."):ba.message&&ba.message.includes("audience")?new UnauthorisedError$1("Token audience mismatch."):new UnauthorisedError$1(`Token verification failed: ${sanitizeErrorMessage(ba.message)||"Invalid token"}`)}}async getUser(ma,ba){const va=await findUser(ma,ba);if(!va)throw new UserNotFoundError$1(`User ${ma} not found in local database`);const Ma=va.lookup("email"),wl=va.lookup("firstName"),El=va.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID&&Ma)try{const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Mc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:Ma}),dp=await Cl.send(Mc);return{id:ma,username:Ma,firstName:wl,lastName:El,systemUserInfo:{localUser:va,cognitoData:{userAttributes:dp.UserAttributes,userCreateDate:dp.UserCreateDate,userLastModifiedDate:dp.UserLastModifiedDate,userStatus:dp.UserStatus,enabled:dp.Enabled,preferredMfaSetting:dp.PreferredMfaSetting,userMFASettingList:dp.UserMFASettingList}}}}catch(Cl){return logger$3.warn(`Failed to get Cognito user info for ${Ma}, using local data only:`,{errorName:Cl.name,errorMessage:sanitizeErrorMessage(Cl.message)}),{id:ma,username:Ma,firstName:wl,lastName:El,systemUserInfo:va}}else return{id:ma,username:Ma||ma,firstName:wl,lastName:El,systemUserInfo:va}}async getUserByEmail(ma,ba){const va=await findUserByEmail(ma,ba);if(!va)throw new UserNotFoundError$1(`User with email ${ma} not found in local database`);const Ma=va.lookup("id"),wl=va.lookup("firstName"),El=va.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID)try{const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Mc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),ClientId:this.fetchClientId(),Username:ma}),dp=await Cl.send(Mc);return{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:{localUser:va,cognitoData:{userAttributes:dp.UserAttributes,userCreateDate:dp.UserCreateDate,userLastModifiedDate:dp.UserLastModifiedDate,userStatus:dp.UserStatus,enabled:dp.Enabled,preferredMfaSetting:dp.PreferredMfaSetting,userMFASettingList:dp.UserMFASettingList}}}}catch(Cl){return console.log(`Failed to get Cognito user info for email ${ma}, using local data only:`,{errorName:Cl.name,errorMessage:sanitizeErrorMessage(Cl.message)}),{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:va}}else return{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:va}}async refreshToken(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new InitiateAuthCommand({AuthFlow:"REFRESH_TOKEN_AUTH",ClientId:this.fetchClientId(),AuthParameters:{REFRESH_TOKEN:ma}}),wl=await va.send(Ma);if(!wl.AuthenticationResult)throw new UnauthorisedError$1("Token refresh failed");const El=wl.AuthenticationResult.IdToken,Sl=wl.AuthenticationResult.AccessToken,Cl=wl.AuthenticationResult.RefreshToken||ma,dp=JSON.parse(atob(El.split(".")[1])).email;let pp=await findUserByEmail(dp,ba);pp||(pp=await ensureUser(dp,"","",ba));const hp=pp.lookup("id");return{sessionId:(await ensureUserSession(hp,dp,El,Sl,Cl,ba)).lookup("id"),userId:hp,authToken:El,idToken:El,accessToken:Sl,refreshToken:Cl,systemSesionInfo:wl.AuthenticationResult}}catch(va){throw logger$3.error(`Refresh token operation failed: ${va.message}`),va.name==="NotAuthorizedException"?new UnauthorisedError$1("Invalid or expired refresh token"):(handleCognitoError(va,"refreshToken"),va)}}async inviteUser(ma,ba,va,Ma,wl,El,Sl){var Cl;try{const Mc=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),dp=[{Name:"email",Value:ma},{Name:"email_verified",Value:"true"},{Name:"given_name",Value:ba},{Name:"family_name",Value:va}];Ma&&Ma.forEach((Zf,Jf)=>{dp.push({Name:Jf,Value:String(Zf)})});let pp=!1;try{const Zf=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});await Mc.send(Zf),pp=!0,logger$3.debug(`User ${ma} already exists, will resend invitation`)}catch(Zf){if(Zf.name!=="UserNotFoundException")throw Zf;logger$3.debug(`User ${ma} does not exist, will create new user`)}const hp=new AdminCreateUserCommand(Object.assign({UserPoolId:this.fetchUserPoolId(),Username:ma,UserAttributes:dp,DesiredDeliveryMediums:["EMAIL"],TemporaryPassword:generateUrlSafePassword$1()},pp?{MessageAction:"RESEND"}:{}));logger$3.debug(`Attempting to invite user: ${ma}`);const Ef=await Mc.send(hp);if(Ef.$metadata.httpStatusCode===200){logger$3.info(`User invitation successful for: ${ma}`);const Jf=(await ensureUser(ma,ba,va,El,"Invited")).lookup("id");await ensureUserRoles(Jf,[wl||"user"],El);const pg={email:ma,firstName:ba,lastName:va,invitationId:(Cl=Ef.User)===null||Cl===void 0?void 0:Cl.Username,systemInvitationInfo:Ef};Sl(pg)}else throw logger$3.error(`User invitation failed with HTTP status ${Ef.$metadata.httpStatusCode}`,{email:ma,statusCode:Ef.$metadata.httpStatusCode}),new BadRequestError$4(`User invitation failed with status ${Ef.$metadata.httpStatusCode}`)}catch(Mc){if(Mc instanceof BadRequestError$4)throw Mc;logger$3.error(`User invitation error for ${ma}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),handleCognitoError(Mc,"inviteUser")}}async resendInvitation(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"});try{const El=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});await va.send(El)}catch(El){throw El.name==="UserNotFoundException"?new UserNotFoundError$1(`User ${ma} not found. Cannot resend invitation.`):El}const Ma=new AdminCreateUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma,DesiredDeliveryMediums:["EMAIL"],MessageAction:"RESEND"});logger$3.debug(`Attempting to resend invitation for user: ${ma}`);const wl=await va.send(Ma);if(wl.$metadata.httpStatusCode===200)logger$3.info(`Invitation resent successfully for: ${ma}`);else throw logger$3.error(`Failed to resend invitation with HTTP status ${wl.$metadata.httpStatusCode}`,{email:ma,statusCode:wl.$metadata.httpStatusCode}),new BadRequestError$4(`Failed to resend invitation with status ${wl.$metadata.httpStatusCode}`)}catch(va){if(va instanceof BadRequestError$4||va instanceof UserNotFoundError$1)throw va;logger$3.error(`Resend invitation error for ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"resendInvitation")}}async acceptInvitation(ma,ba,va,Ma){try{const wl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),El=new InitiateAuthCommand({AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.fetchClientId(),AuthParameters:{USERNAME:ma,PASSWORD:ba}}),Sl=await wl.send(El);if(Sl.ChallengeName==="NEW_PASSWORD_REQUIRED"){const Cl=new RespondToAuthChallengeCommand({ClientId:this.fetchClientId(),ChallengeName:"NEW_PASSWORD_REQUIRED",Session:Sl.Session,ChallengeResponses:{USERNAME:ma,NEW_PASSWORD:va}});await wl.send(Cl),logger$3.info(`User invitation accepted successfully for: ${ma}`)}else throw new Error(`Unexpected challenge: ${Sl.ChallengeName}`)}catch(wl){logger$3.error(`Accept invitation failed for ${ma}: ${sanitizeErrorMessage(wl.message)}`),handleCognitoError(wl,"acceptInvitation")}}async callback(ma,ba,va){try{if(!isNodeEnv$1)throw new Error("Callback authentication is only supported in Node.js environment");const Ma=this.fetchConfig("ClientId"),wl=define_process_env_default$2.AWS_REGION||"us-east-1",El=define_process_env_default$2.COGNITO_REDIRECT_URI||"http://localhost:3000/auth/callback",Cl=`https://${define_process_env_default$2.COGNITO_HOSTED_DOMAIN}.auth.${wl}.amazoncognito.com/oauth2/token`,Mc=new URLSearchParams({grant_type:"authorization_code",client_id:Ma,code:ma,redirect_uri:El});logger$3.debug("Exchanging authorization code for tokens via OAuth2 endpoint"),console.log("te",Cl,Mc.toString());const dp=await fetch(Cl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:Mc.toString()});if(!dp.ok){const q1=await dp.text();throw new Error(`Token exchange failed: ${dp.status} ${q1}`)}const pp=await dp.json();if(!pp.access_token||!pp.id_token||!pp.refresh_token)throw new Error("Missing required tokens in response");const{access_token:hp,id_token:Ef,refresh_token:Zf}=pp,Jf=this.decodeJwtPayload(Ef),pg=Jf.email,hg=Jf.given_name||Jf.name||"",mg=Jf.family_name||"",gg=Jf["cognito:groups"];if(!pg)throw new Error("Email not found in ID attributes");let yg=await findUserByEmail(pg,ba);yg||(yg=await ensureUser(pg,hg,mg,ba));const ay=yg.lookup("id");gg&&await ensureUserRoles(ay,gg,ba);const cy={sessionId:(await ensureUserSession(ay,pg,Ef,hp,Zf,ba)).lookup("id"),userId:ay,authToken:Ef,idToken:Ef,accessToken:hp,refreshToken:Zf,systemSesionInfo:pp};logger$3.info(`Auth callback successful for user ${pg}`),va(cy)}catch(Ma){console.log(Ma),logger$3.error(`Auth callback failed: ${sanitizeErrorMessage(Ma.message)}`),handleCognitoError(Ma,"callback")}}decodeJwtPayload(ma){try{const va=ma.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),Ma=decodeURIComponent(atob(va).split("").map(wl=>"%"+("00"+wl.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(Ma)}catch(ba){throw logger$3.error(`Failed to decode JWT payload: ${ba}`),new Error("Invalid JWT token")}}async deleteUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminDeleteUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to delete user: ${ma}`),await va.send(Ma),logger$3.info(`User deleted successfully: ${ma}`)}catch(va){logger$3.error(`Failed to delete user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"deleteUser")}}async disableUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminDisableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to disable user: ${ma}`),await va.send(Ma),logger$3.info(`User disabled successfully: ${ma}`)}catch(va){logger$3.error(`Failed to disable user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"disableUser")}}async enableUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminEnableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to enable user: ${ma}`),await va.send(Ma),logger$3.info(`User enabled successfully: ${ma}`)}catch(va){logger$3.error(`Failed to enable user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"enableUser")}}}const CoreAuthModuleName=makeCoreModuleName$1("auth"),auth=`module ${CoreAuthModuleName}
17984
+ ${ya}`)}async function preprocessStep(ya,ma,ba){let va=!0;if(ya=trimGeneratedCode(ya),ya.startsWith("{")||ya.indexOf(" ")>0){const Ma=Environment.from(ba,ba.name+"_flow_eval",!1,!0).setActiveModuleName(ma),wl=await parseAndEvaluateStatement(ya,void 0,Ma);ba.setLastResult(wl),va=!1}return{step:ya,needAgentProcessing:va}}async function handleOpenApiEvent(ya,ma){const ba=await invokeOpenApiEvent(ya.moduleName,ya.name,ya.attributesAsObject());ma.setLastResult(ba)}async function evaluateUpsert(ya,ma){ma.setInUpsertMode(!0);try{await evaluateCrudMap(ya,ma)}finally{ma.setInUpsertMode(!1)}}async function evaluateForEach(ya,ma){const ba=ya.var;await evaluatePattern(ya.src,ma);const va=ma.getLastResult();if(va instanceof Array&&va.length>0){const Ma=Environment.from(ma),wl=new Array;for(let El=0;El<va.length;++El)Ma.bind(ba,va[El]),await evaluateStatements(ya.statements,Ma),wl.push(Ma.getLastResult());ma.setLastResult(wl)}else ma.setLastResult(EmptyResult)}async function evaluateIf(ya,ma){await evaluateExpression(ya.cond,ma),ma.getLastResult()?await evaluateStatements(ya.statements,ma):ya.else!==void 0&&await evaluateStatements(ya.else.statements,ma)}async function evaluateIfWithAlias(ya,ma){await evaluateIf(ya.if,ma)}async function evaluateDeleteHelper(ya,ma,ba){const va=Environment.from(ba).setInDeleteMode(!0);await evaluatePattern(ya,va),await maybeDeleteQueriedInstances(va,ba,ma)}async function maybeDeleteQueriedInstances(ya,ma,ba=!1){const va=ya.getLastResult();let Ma=Resolver.Default;if(va instanceof Array)if(va.length>0){if(isOneToOneBetweenRelationship$1(va[0].name,va[0].moduleName)){ma.setLastResult(va);return}Ma=await getResolverForPath(va[0].name,va[0].moduleName,ya);const wl=new Array;for(let El=0;El<va.length;++El){await runPreDeleteEvents(va[El],ma);const Sl=await Ma.deleteInstance(va[El],ba);await runPostDeleteEvents(va[El],ma),wl.push(Sl)}ya.setLastResult(wl)}else ya.setLastResult(va);else{if(isOneToOneBetweenRelationship$1(va.name,va.moduleName)){ma.setLastResult([va]);return}Ma=await getResolverForPath(va.name,va.moduleName,ya),await runPreDeleteEvents(va,ma);const wl=await Ma.deleteInstance(va,ba);await runPostDeleteEvents(va,ma),ya.setLastResult(wl)}ma.setLastResult(ya.getLastResult())}async function evaluateDelete(ya,ma){await evaluateDeleteHelper(ya.pattern,!1,ma)}async function evaluatePurge(ya,ma){await evaluateDeleteHelper(ya.pattern,!0,ma)}async function evaluateExpression(ya,ma){let ba=EmptyResult;if(isBinExpr$1(ya)){await evaluateExpression(ya.e1,ma);const va=ma.getLastResult();if(ya.op=="or"){if(va)return;await evaluateExpression(ya.e2,ma);return}else if(ya.op=="and"){if(!va)return;await evaluateExpression(ya.e2,ma);return}if(va==null){ma.setLastResult(void 0);return}await evaluateExpression(ya.e2,ma);const Ma=ma.getLastResult();if(Ma==null){ma.setLastResult(void 0);return}switch(ya.op){case"+":ba=va+Ma;break;case"-":ba=va-Ma;break;case"*":ba=va*Ma;break;case"/":ba=va/Ma;break;case"==":ba=va==Ma;break;case"<":ba=va<Ma;break;case">":ba=va>Ma;break;case"<=":ba=va<=Ma;break;case">=":ba=va>=Ma;break;case"<>":case"!=":ba=va!=Ma;break;case"like":ba=va.startsWith(Ma);break;case"in":ba=Ma.find(wl=>{});break;default:throw new Error(`Unrecognized binary operator: ${ya.op}`)}}else if(isNegExpr$1(ya))await evaluateExpression(ya.ne,ma),ba=-1*ma.getLastResult();else if(isGroup$2(ya))await evaluateExpression(ya.ge,ma),ba=ma.getLastResult();else if(isLiteral$1(ya)){await evaluateLiteral(ya,ma);return}else isNotExpr$1(ya)&&(await evaluateExpression(ya.ne,ma),ba=!ma.getLastResult());ma.setLastResult(ba)}async function getRef(ya,ma,ba){return Instance$1.IsInstance(ma)?ma.lookup(ya):ma instanceof Map?ma.get(ya):ma instanceof Object?ma[ya]:isPath$1(ma)?await getRef(ya,await dereferencePath(ma,ba),ba):void 0}async function followReference(ya,ma){const ba=splitRefs$1(ma);let va=EmptyResult,Ma=ya;for(let wl=0;wl<ba.length;++wl){const El=ba[wl],Sl=await getRef(El,Ma,ya);if(Sl===void 0)return EmptyResult;va=Sl,Ma=va}return va}async function dereferencePath(ya,ma){const ba=fqNameFromPath$1(ya);if(ba===void 0)throw new Error(`Failed to deduce entry-name from path - ${ya}`);const va=new Environment("path-deref",ma);await parseAndEvaluateStatement(`{${ba} {${PathAttributeNameQuery$1} "${ya}"}}`,ma.getAuthContextUserId(),va);const Ma=va.getLastResult();if(Ma&&Ma instanceof Array&&Ma.length>0)return Ma[0]}async function applyFn(ya,ma,ba){const va=ya.name;if(va!==void 0){let Ma=null;if(ya.args!==void 0){Ma=new Array;for(let El=0;El<ya.args.length;++El){const Sl=ya.args[El];isLiteral$1(Sl)?await evaluateLiteral(Sl,ma):await evaluateExpression(Sl,ma),Ma.push(ma.getLastResult())}Ma.push(ma)}const wl=await invokeModuleFn(va,Ma,ba);ma.setLastResult(wl)}}async function realizeArray(ya,ma){const ba=new Array;for(let va=0;va<ya.vals.length;++va)await evaluateStatement(ya.vals[va],ma),ba.push(ma.getLastResult());ma.setLastResult(ba)}async function realizeMap(ya,ma){const ba=new Map;for(let va=0;va<ya.entries.length;++va){const Ma=ya.entries[va],wl=getMapKey(Ma.key);await evaluateExpression(Ma.value,ma),ba.set(wl,ma.getLastResult())}ma.setLastResult(Object.fromEntries(ba.entries()))}async function callPostEventOnSubscription(ya,ma,ba){const va=ba===void 0,Ma=new Environment("onSubs.env");try{return await runPrePostEvents(ya,!1,ma,Ma),va&&await Ma.commitAllTransactions(),Ma.getLastResult()}catch(wl){await Ma.rollbackAllTransactions(),logger$3.error(`callPostEventOnSubscription failed for ${ya} ${ma.getFqName()} - ${wl}`)}}async function runPrePostEvents(ya,ma,ba,va){const Ma=ma?ba.record.getPreTriggerInfo(ya):ba.record.getPostTriggerInfo(ya);if(Ma){const wl=nameToPath$1(Ma.eventName),El=wl.hasModule()?wl.getModuleName():ba.record.moduleName,Sl=makeInstance$1(El,wl.getEntryName(),newInstanceAttributes$1().set(ba.record.name,ba)),Cl=va.getActiveAuthContext();Cl&&Sl.setAuthContext(Cl);const Mc=`${ma?"Pre":"Post"}-${CrudType$1[ya]} ${ba.record.getFqName()}`,dp=hp=>{logger$3.debug(`${Mc}: ${hp}`)},pp=hp=>{throw va.hasHandlers()?hp:new Error(`${Mc}: ${hp}`)};Ma.async?evaluate$1(Sl,dp,bindAliasesForPrePost(va,ba,Mc)).catch(pp):await evaluate$1(Sl,dp,bindAliasesForPrePost(va,ba,Mc)).catch(pp)}}function bindAliasesForPrePost(ya,ma,ba){const va=new Environment(`${ba}.env`,ya),Ma=ma.getFqName();return va.bind("this",ma),va.bind(Ma,ma),va.bind(ma.name,ma),va}async function runPreCreateEvents(ya,ma){await runPrePostEvents(CrudType$1.CREATE,!0,ya,ma)}async function runPostCreateEvents(ya,ma){ya.requireAudit()&&await addCreateAudit(ya.getPath(),ma,{original:ya.userAttributesAsObject()}),await runPrePostEvents(CrudType$1.CREATE,!1,ya,ma)}async function runPreUpdateEvents(ya,ma){await runPrePostEvents(CrudType$1.UPDATE,!0,ya,ma)}async function runPostUpdateEvents(ya,ma,ba){if(ya.requireAudit()){let va;if(ma!==void 0){const Ma=ma.userAttributesAsObject(),wl=detailedDiff(Ma,ya.userAttributesAsObject());va={original:Ma,updated:wl.updated}}await addUpdateAudit(ya.getPath(),va,ba)}await runPrePostEvents(CrudType$1.UPDATE,!1,ya,ba)}async function runPreDeleteEvents(ya,ma){await runPrePostEvents(CrudType$1.DELETE,!0,ya,ma)}async function runPostDeleteEvents(ya,ma){ya.requireAudit()&&await addDeleteAudit(ya.getPath(),{deleted:ya.userAttributesAsObject()},ma),await runPrePostEvents(CrudType$1.DELETE,!1,ya,ma)}async function fetchConfig(ya){const ma=await parseAndEvaluateStatement(`{${ya}? {}}`);if(ma&&ma!==null&&ma.length>0)return preprocessRawConfig(Object.fromEntries(ma[0].attributes))}const interpreter=Object.freeze(Object.defineProperty({__proto__:null,DocEventName,Environment,GlobalEnvironment,PatternHandler,callPostEventOnSubscription,get evaluate(){return evaluate$1},evaluateAsEvent,evaluateExpression,evaluatePattern,evaluateStatement,evaluateStatements,fetchConfig,handleAgentInvocation,handleMcpEvent,handleOpenApiEvent,isMcpEventInstance,makeEventEvaluator,maybeBindStatementResultToAlias,maybeDeleteQueriedInstances,get parseAndEvaluateStatement(){return parseAndEvaluateStatement},restartFlow,runPostCreateEvents,runPostDeleteEvents,runPostUpdateEvents,setEvaluateFn,setParseAndEvaluateStatementFn},Symbol.toStringTag,{value:"Module"}));class JwtBaseError extends Error{}class FailedAssertionError extends JwtBaseError{constructor(ma,ba,va){super(ma),this.failedAssertion={actual:ba,expected:va}}}class JwtParseError extends JwtBaseError{constructor(ma,ba){const va=ba!=null?`${ma}: ${ba}`:ma;super(va)}}class ParameterValidationError extends JwtBaseError{}class JwtInvalidSignatureError extends JwtBaseError{}class JwtInvalidSignatureAlgorithmError extends FailedAssertionError{}class JwtInvalidClaimError extends FailedAssertionError{withRawJwt({header:ma,payload:ba}){return this.rawJwt={header:ma,payload:ba},this}}class JwtInvalidIssuerError extends JwtInvalidClaimError{}class JwtInvalidAudienceError extends JwtInvalidClaimError{}class JwtInvalidScopeError extends JwtInvalidClaimError{}class JwtExpiredError extends JwtInvalidClaimError{}class JwtNotBeforeError extends JwtInvalidClaimError{}class CognitoJwtInvalidGroupError extends JwtInvalidClaimError{}class CognitoJwtInvalidTokenUseError extends JwtInvalidClaimError{}class CognitoJwtInvalidClientIdError extends JwtInvalidClaimError{}class JwksValidationError extends JwtBaseError{}class JwkValidationError extends JwtBaseError{}class JwtWithoutValidKidError extends JwtBaseError{}class KidNotFoundInJwksError extends JwtBaseError{}class WaitPeriodNotYetEndedJwkError extends JwtBaseError{}class JwksNotAvailableInCacheError extends JwtBaseError{}class JwkInvalidUseError extends FailedAssertionError{}class JwkInvalidKtyError extends FailedAssertionError{}class FetchError extends JwtBaseError{constructor(ma,ba){super(`Failed to fetch ${ma}: ${ba}`)}}class NonRetryableFetchError extends FetchError{}class NotSupportedError extends JwtBaseError{}var NamedCurvesWebCrypto;(function(ya){ya.ES256="P-256",ya.ES384="P-384",ya.ES512="P-521"})(NamedCurvesWebCrypto||(NamedCurvesWebCrypto={}));const nodeWebCompat={fetch:async(ya,ma,ba)=>{const va=Number(ma?.responseTimeout);if(va){const wl=new AbortController;setTimeout(()=>wl.abort(new FetchError(ya,`Response time-out (after ${va} ms.)`)),va),ma={signal:wl.signal,...ma}}const Ma=await fetch(ya,{...ma,body:ba}).catch(wl=>{throw new FetchError(ya,wl.message)});if(Ma.status!==200)throw new NonRetryableFetchError(ya,`Status code is ${Ma.status}, expected 200`);return Ma.arrayBuffer()},defaultFetchTimeouts:{response:3e3},transformJwkToKeyObjectSync:()=>{throw new NotSupportedError("Synchronously transforming a JWK into a key object is not supported in the browser")},transformJwkToKeyObjectAsync:(ya,ma)=>{const ba=ya.alg??ma;if(!ba)throw new JwtInvalidSignatureAlgorithmError("Missing alg on both JWK and JWT header",ba);const va=ba.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ba.slice(2)}`}:ba.startsWith("ES")?{name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ba]}:ya.crv;return crypto.subtle.importKey("jwk",ya,va,!1,["verify"]).then(Ma=>({key:Ma,jwk:ya}))},verifySignatureSync:()=>{throw new NotSupportedError("Synchronously verifying a JWT signature is not supported in the browser")},verifySignatureAsync:({jwsSigningInput:ya,keyObject:ma,signature:ba,alg:va})=>crypto.subtle.verify(va.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5"}:va.startsWith("ES")?{name:"ECDSA",hash:`SHA-${va.slice(2)}`}:{name:ma.jwk.crv},ma.key,bufferFromBase64url(ba),new TextEncoder().encode(ya)),parseB64UrlString:ya=>new TextDecoder().decode(bufferFromBase64url(ya)),setTimeoutUnref:setTimeout.bind(void 0),transformPemToJwk:async(ya,ma)=>{let ba;switch(ma){case"RS256":case"RS384":case"RS512":ba={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ma.slice(2)}`};break;case"ES256":case"ES384":case"ES512":ba={name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ma]};break;default:throw new JwtInvalidSignatureAlgorithmError("Unsupported signature algorithm",ma)}const va=await crypto.subtle.importKey("spki",bufferFromBase64(new TextDecoder().decode(ya).replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,"")),ba,!0,["verify"]);return crypto.subtle.exportKey("jwk",va)}};function _bufferFromBase64(ya){const ma=ya.split("").reduce((ba,va,Ma)=>Object.assign(ba,{[va.charCodeAt(0)]:Ma}),{});return function(ba){ba=ba.replace(/={1,2}$/,"");let va,Ma,wl,El;return ba.match(/.{1,4}/g).reduce((Sl,Cl,Mc)=>(va=ma[Cl.charCodeAt(0)],Ma=ma[Cl.charCodeAt(1)],wl=ma[Cl.charCodeAt(2)],El=ma[Cl.charCodeAt(3)],Sl[3*Mc]=va<<2|Ma>>4,Sl[3*Mc+1]=(Ma&15)<<4|wl>>2,Sl[3*Mc+2]=(wl&3)<<6|El,Sl),new Uint8Array(ba.length*3/4))}}const bufferFromBase64url=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bufferFromBase64=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),fetch$1=nodeWebCompat.fetch.bind(void 0);class SimpleFetcher{constructor(ma){this.defaultRequestOptions={timeout:nodeWebCompat.defaultFetchTimeouts.socketIdle,responseTimeout:nodeWebCompat.defaultFetchTimeouts.response,...ma?.defaultRequestOptions}}async fetch(ma,ba,va){ba={...this.defaultRequestOptions,...ba};try{return await fetch$1(ma,ba,va)}catch(Ma){if(Ma instanceof NonRetryableFetchError)throw Ma;return fetch$1(ma,ba,va)}}}function isJsonObject(ya){return typeof ya=="object"&&!Array.isArray(ya)&&ya!==null}function safeJsonParse(ya){return JSON.parse(ya,(ma,ba)=>(typeof ba=="object"&&!Array.isArray(ba)&&ba!==null&&(delete ba.__proto__,delete ba.constructor),ba))}function assertStringEquals(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. Expected: ${ba}`,ma,ba);if(typeof ma!="string")throw new va(`${ya} is not of type string`,ma,ba);if(ba!==ma)throw new va(`${ya} not allowed: ${ma}. Expected: ${ba}`,ma,ba)}function assertStringArrayContainsString(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. ${expectationMessage(ba)}`,ma,ba);if(typeof ma!="string")throw new va(`${ya} is not of type string`,ma,ba);return assertStringArraysOverlap(ya,ma,ba,va)}function assertStringArraysOverlap(ya,ma,ba,va=FailedAssertionError){if(!ma)throw new va(`Missing ${ya}. ${expectationMessage(ba)}`,ma,ba);const Ma=new Set(Array.isArray(ba)?ba:[ba]);if(typeof ma=="string"&&(ma=[ma]),!Array.isArray(ma))throw new va(`${ya} is not an array`,ma,ba);if(!ma.some(El=>{if(typeof El!="string")throw new va(`${ya} includes elements that are not of type string`,ma,ba);return Ma.has(El)}))throw new va(`${ya} not allowed: ${ma.join(", ")}. ${expectationMessage(ba)}`,ma,ba)}function expectationMessage(ya){return Array.isArray(ya)?ya.length>1?`Expected one of: ${ya.join(", ")}`:`Expected: ${ya[0]}`:`Expected: ${ya}`}function assertIsNotPromise(ya,ma){if(ya&&typeof ya.then=="function")throw ma()}const optionalJwkFieldNames=["use","alg","kid","n","e","x","y","crv"],mandatoryJwkFieldNames=["kty"];function findJwkInJwks(ya,ma){return ya.keys.find(ba=>ba.kid!=null&&ba.kid===ma)}const parseJwks=function(ya){let ma;try{const ba=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}).decode(ya);ma=safeJsonParse(ba)}catch(ba){throw new JwksValidationError(`JWKS could not be parsed as JSON: ${ba}`)}return assertIsJwks(ma),ma};function assertIsJwks(ya){if(!ya)throw new JwksValidationError("JWKS empty");if(!isJsonObject(ya))throw new JwksValidationError("JWKS should be an object");if(!Object.keys(ya).includes("keys"))throw new JwksValidationError("JWKS does not include keys");if(!Array.isArray(ya.keys))throw new JwksValidationError("JWKS keys should be an array");for(const ma of ya.keys)assertIsJwk(ma)}function assertIsSignatureJwk(ya){assertStringArrayContainsString("JWK kty",ya.kty,["EC","RSA","OKP"],JwkInvalidKtyError),ya.kty==="EC"?assertIsEsSignatureJwk(ya):ya.kty==="RSA"?assertIsRsaSignatureJwk(ya):ya.kty==="OKP"&&assertIsEdDSASignatureJwk(ya)}function assertIsEdDSASignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"OKP",JwkInvalidKtyError),!ya.crv)throw new JwkValidationError("Missing Curve (crv)");if(!ya.x)throw new JwkValidationError("Missing X Coordinate (x)")}function assertIsEsSignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"EC",JwkInvalidKtyError),!ya.crv)throw new JwkValidationError("Missing Curve (crv)");if(!ya.x)throw new JwkValidationError("Missing X Coordinate (x)");if(!ya.y)throw new JwkValidationError("Missing Y Coordinate (y)")}function assertIsRsaSignatureJwk(ya){if(ya.use&&assertStringEquals("JWK use",ya.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",ya.kty,"RSA",JwkInvalidKtyError),!ya.n)throw new JwkValidationError("Missing modulus (n)");if(!ya.e)throw new JwkValidationError("Missing exponent (e)")}function assertIsJwk(ya){if(!ya)throw new JwkValidationError("JWK empty");if(!isJsonObject(ya))throw new JwkValidationError("JWK should be an object");for(const ma of mandatoryJwkFieldNames)if(typeof ya[ma]!="string")throw new JwkValidationError(`JWK ${ma} should be a string`);for(const ma of optionalJwkFieldNames)if(ma in ya&&typeof ya[ma]!="string")throw new JwkValidationError(`JWK ${ma} should be a string`)}function isJwks(ya){try{return assertIsJwks(ya),!0}catch{return!1}}function isJwk(ya){try{return assertIsJwk(ya),!0}catch{return!1}}class SimplePenaltyBox{constructor(ma){this.waitingUris=new Map,this.waitSeconds=ma?.waitSeconds??10}async wait(ma){if(this.waitingUris.has(ma))throw new WaitPeriodNotYetEndedJwkError("Not allowed to fetch JWKS yet, still waiting for back off period to end")}release(ma){const ba=this.waitingUris.get(ma);ba&&(clearTimeout(ba),this.waitingUris.delete(ma))}registerFailedAttempt(ma){const ba=nodeWebCompat.setTimeoutUnref(()=>{this.waitingUris.delete(ma)},this.waitSeconds*1e3);this.waitingUris.set(ma,ba)}registerSuccessfulAttempt(ma){this.release(ma)}}class SimpleJwksCache{constructor(ma){this.jwksCache=new Map,this.fetchingJwks=new Map,this.penaltyBox=ma?.penaltyBox??new SimplePenaltyBox,this.fetcher=ma?.fetcher??new SimpleFetcher,this.jwksParser=ma?.jwksParser??parseJwks}addJwks(ma,ba){this.jwksCache.set(ma,ba)}async getJwks(ma){const ba=this.fetchingJwks.get(ma);if(ba)return ba;const va=this.fetcher.fetch(ma).then(this.jwksParser);this.fetchingJwks.set(ma,va);let Ma;try{Ma=await va}finally{this.fetchingJwks.delete(ma)}return this.jwksCache.set(ma,Ma),Ma}getCachedJwk(ma,ba){if(typeof ba.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");if(!this.jwksCache.has(ma))throw new JwksNotAvailableInCacheError(`JWKS for uri ${ma} not yet available in cache`);const va=findJwkInJwks(this.jwksCache.get(ma),ba.header.kid);if(!va)throw new KidNotFoundInJwksError(`JWK for kid ${ba.header.kid} not found in the JWKS`);return va}async getJwk(ma,ba){if(typeof ba.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");const va=this.jwksCache.get(ma);if(va){const El=findJwkInJwks(va,ba.header.kid);if(El)return El}await this.penaltyBox.wait(ma,ba.header.kid);const Ma=await this.getJwks(ma),wl=findJwkInJwks(Ma,ba.header.kid);if(wl)this.penaltyBox.registerSuccessfulAttempt(ma,ba.header.kid);else throw this.penaltyBox.registerFailedAttempt(ma,ba.header.kid),new KidNotFoundInJwksError(`JWK for kid "${ba.header.kid}" not found in the JWKS`);return wl}}function assertJwtHeader(ya){if(!isJsonObject(ya))throw new JwtParseError("JWT header is not an object");if(ya.alg!==void 0&&typeof ya.alg!="string")throw new JwtParseError("JWT header alg claim is not a string");if(ya.kid!==void 0&&typeof ya.kid!="string")throw new JwtParseError("JWT header kid claim is not a string")}function assertJwtPayload(ya){if(!isJsonObject(ya))throw new JwtParseError("JWT payload is not an object");if(ya.exp!==void 0&&!Number.isFinite(ya.exp))throw new JwtParseError("JWT payload exp claim is not a number");if(ya.iss!==void 0&&typeof ya.iss!="string")throw new JwtParseError("JWT payload iss claim is not a string");if(ya.sub!==void 0&&typeof ya.sub!="string")throw new JwtParseError("JWT payload sub claim is not a string");if(ya.aud!==void 0&&typeof ya.aud!="string"&&(!Array.isArray(ya.aud)||ya.aud.some(ma=>typeof ma!="string")))throw new JwtParseError("JWT payload aud claim is not a string or array of strings");if(ya.nbf!==void 0&&!Number.isFinite(ya.nbf))throw new JwtParseError("JWT payload nbf claim is not a number");if(ya.iat!==void 0&&!Number.isFinite(ya.iat))throw new JwtParseError("JWT payload iat claim is not a number");if(ya.scope!==void 0&&typeof ya.scope!="string")throw new JwtParseError("JWT payload scope claim is not a string");if(ya.jti!==void 0&&typeof ya.jti!="string")throw new JwtParseError("JWT payload jti claim is not a string")}const JWT_REGEX=/^[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}$/;function decomposeUnverifiedJwt(ya){if(!ya)throw new JwtParseError("Empty JWT");if(typeof ya!="string")throw new JwtParseError("JWT is not a string");if(!JWT_REGEX.test(ya))throw new JwtParseError("JWT string does not consist of exactly 3 parts (header, payload, signature)");const[ma,ba,va]=ya.split("."),[Ma,wl]=[ma,ba].map(nodeWebCompat.parseB64UrlString);let El;try{El=safeJsonParse(Ma)}catch(Cl){throw new JwtParseError("Invalid JWT. Header is not a valid JSON object",Cl)}assertJwtHeader(El);let Sl;try{Sl=safeJsonParse(wl)}catch(Cl){throw new JwtParseError("Invalid JWT. Payload is not a valid JSON object",Cl)}return assertJwtPayload(Sl),{header:El,headerB64:ma,payload:Sl,payloadB64:ba,signatureB64:va}}function validateJwtFields(ya,ma){if(ya.exp!==void 0&&ya.exp+(ma.graceSeconds??0)<Date.now()/1e3)throw new JwtExpiredError(`Token expired at ${new Date(ya.exp*1e3).toISOString()}`,ya.exp);if(ya.nbf!==void 0&&ya.nbf-(ma.graceSeconds??0)>Date.now()/1e3)throw new JwtNotBeforeError(`Token can't be used before ${new Date(ya.nbf*1e3).toISOString()}`,ya.nbf);if(ma.issuer!==null){if(ma.issuer===void 0)throw new ParameterValidationError("issuer must be provided or set to null explicitly");assertStringArrayContainsString("Issuer",ya.iss,ma.issuer,JwtInvalidIssuerError)}if(ma.audience!==null){if(ma.audience===void 0)throw new ParameterValidationError("audience must be provided or set to null explicitly");assertStringArraysOverlap("Audience",ya.aud,ma.audience,JwtInvalidAudienceError)}ma.scope!=null&&assertStringArraysOverlap("Scope",ya.scope?.split(" "),ma.scope,JwtInvalidScopeError)}const supportedSignatureAlgorithms=["RS256","RS384","RS512","ES256","ES384","ES512","EdDSA"];function validateJwtHeaderAndJwk(ya,ma){assertIsSignatureJwk(ma),ma.alg&&assertStringEquals("JWT signature algorithm",ya.alg,ma.alg,JwtInvalidSignatureAlgorithmError),assertStringArrayContainsString("JWT signature algorithm",ya.alg,supportedSignatureAlgorithms,JwtInvalidSignatureAlgorithmError)}async function verifyDecomposedJwt(ya,ma,ba,va,Ma){const{header:wl,headerB64:El,payload:Sl,payloadB64:Cl,signatureB64:Mc}=ya,dp=await va(ma,ya);validateJwtHeaderAndJwk(ya.header,dp);const pp=await Ma(dp,wl.alg,Sl.iss);if(!await nodeWebCompat.verifySignatureAsync({jwsSigningInput:`${El}.${Cl}`,signature:Mc,alg:wl.alg,keyObject:pp}))throw new JwtInvalidSignatureError("Invalid signature");try{validateJwtFields(Sl,ba),ba.customJwtCheck&&await ba.customJwtCheck({header:wl,payload:Sl,jwk:dp})}catch(Ef){throw ba.includeRawJwtInErrors&&Ef instanceof JwtInvalidClaimError?Ef.withRawJwt(ya):Ef}return Sl}function verifyDecomposedJwtSync(ya,ma,ba,va){const{header:Ma,headerB64:wl,payload:El,payloadB64:Sl,signatureB64:Cl}=ya;let Mc;if(isJwk(ma))Mc=ma;else if(isJwks(ma)){const hp=Ma.kid?findJwkInJwks(ma,Ma.kid):void 0;if(!hp)throw new KidNotFoundInJwksError(`JWK for kid ${Ma.kid} not found in the JWKS`);Mc=hp}else throw new ParameterValidationError([`Expected a valid JWK or JWKS (parsed as JavaScript object), but received: ${ma}.`,"If you're passing a JWKS URI, use the async verify() method instead, it will download and parse the JWKS for you"].join());validateJwtHeaderAndJwk(ya.header,Mc);const dp=va(Mc,Ma.alg,El.iss);if(!nodeWebCompat.verifySignatureSync({jwsSigningInput:`${wl}.${Sl}`,signature:Cl,alg:Ma.alg,keyObject:dp}))throw new JwtInvalidSignatureError("Invalid signature");try{if(validateJwtFields(El,ba),ba.customJwtCheck){const hp=ba.customJwtCheck({header:Ma,payload:El,jwk:Mc});assertIsNotPromise(hp,()=>new ParameterValidationError("Custom JWT checks must be synchronous but a promise was returned"))}}catch(hp){throw ba.includeRawJwtInErrors&&hp instanceof JwtInvalidClaimError?hp.withRawJwt(ya):hp}return El}class JwtVerifierBase{constructor(ma,ba=new SimpleJwksCache){if(this.jwksCache=ba,this.issuersConfig=new Map,this.publicKeyCache=new KeyObjectCache,Array.isArray(ma)){if(!ma.length)throw new ParameterValidationError("Provide at least one issuer configuration");ma.forEach((va,Ma)=>{if(this.issuersConfig.has(va.issuer))throw new ParameterValidationError(`issuer ${va.issuer} supplied multiple times`);if(va.issuer===null&&ma.length>=2)throw new ParameterValidationError(`issuer cannot be null when multiple issuers are supplied (at issuer: ${Ma})`);this.issuersConfig.set(va.issuer,this.withJwksUri(va))})}else this.issuersConfig.set(ma.issuer,this.withJwksUri(ma))}getIssuerConfig(ma){if(this.issuersConfig.size===1&&(ma=this.issuersConfig.keys().next().value),ma===void 0)throw new ParameterValidationError("issuer must be provided");const ba=this.issuersConfig.get(ma);if(!ba)throw new ParameterValidationError(`issuer not configured: ${ma}`);return ba}cacheJwks(...[ma,ba]){const va=this.getIssuerConfig(ba);this.jwksCache.addJwks(va.jwksUri,ma),this.publicKeyCache.clearCache(va.issuer)}async hydrate(){const ma=Array.from(this.issuersConfig.values()).map(({jwksUri:ba})=>this.jwksCache.getJwks(ba));await Promise.all(ma)}verifySync(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);return this.verifyDecomposedJwtSync(va,Ma,wl)}verifyDecomposedJwtSync(ma,ba,va){const Ma=this.jwksCache.getCachedJwk(ba,ma);return verifyDecomposedJwtSync(ma,Ma,va,this.publicKeyCache.transformJwkToKeyObjectSync.bind(this.publicKeyCache))}async verify(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);return this.verifyDecomposedJwt(va,Ma,wl)}verifyDecomposedJwt(ma,ba,va){return verifyDecomposedJwt(ma,ba,va,this.jwksCache.getJwk.bind(this.jwksCache),this.publicKeyCache.transformJwkToKeyObjectAsync.bind(this.publicKeyCache))}getVerifyParameters(ma,ba){const va=decomposeUnverifiedJwt(ma),Ma=this.getIssuerConfig(va.payload.iss);return{decomposedJwt:va,jwksUri:Ma.jwksUri,verifyProperties:{...Ma,...ba}}}withJwksUri(ma){if(ma.jwksUri)return ma;const ba=ma.issuer;if(!ba)throw new ParameterValidationError("jwksUri must be provided for issuer null");const va=new URL(ba).pathname.replace(/\/$/,"");return{jwksUri:new URL(`${va}/.well-known/jwks.json`,ba).href,...ma}}}class KeyObjectCache{constructor(ma=nodeWebCompat.transformJwkToKeyObjectSync,ba=nodeWebCompat.transformJwkToKeyObjectAsync){this.transformJwkToKeyObjectSyncFn=ma,this.transformJwkToKeyObjectAsyncFn=ba,this.publicKeys=new Map}transformJwkToKeyObjectSync(ma,ba,va){const Ma=ma.alg??ba;if(!va||!ma.kid||!Ma)return this.transformJwkToKeyObjectSyncFn(ma,Ma,va);const wl=this.publicKeys.get(va)?.get(ma.kid)?.get(Ma);if(wl)return wl;const El=this.transformJwkToKeyObjectSyncFn(ma,Ma,va);return this.putKeyObjectInCache(va,ma.kid,Ma,El),El}async transformJwkToKeyObjectAsync(ma,ba,va){const Ma=ma.alg??ba;if(!va||!ma.kid||!Ma)return this.transformJwkToKeyObjectAsyncFn(ma,Ma,va);const wl=this.publicKeys.get(va)?.get(ma.kid)?.get(Ma);if(wl)return wl;const El=await this.transformJwkToKeyObjectAsyncFn(ma,Ma,va);return this.putKeyObjectInCache(va,ma.kid,Ma,El),El}putKeyObjectInCache(ma,ba,va,Ma){const wl=this.publicKeys.get(ma),El=wl?.get(ba);El?El.set(va,Ma):wl?wl.set(ba,new Map([[va,Ma]])):this.publicKeys.set(ma,new Map([[ba,new Map([[va,Ma]])]]))}clearCache(ma){this.publicKeys.delete(ma)}}function validateCognitoJwtFields(ya,ma){if(ma.groups!=null&&assertStringArraysOverlap("Cognito group",ya["cognito:groups"],ma.groups,CognitoJwtInvalidGroupError),assertStringArrayContainsString("Token use",ya.token_use,["id","access"],CognitoJwtInvalidTokenUseError),ma.tokenUse!==null){if(ma.tokenUse===void 0)throw new ParameterValidationError("tokenUse must be provided or set to null explicitly");assertStringEquals("Token use",ya.token_use,ma.tokenUse,CognitoJwtInvalidTokenUseError)}if(ma.clientId!==null){if(ma.clientId===void 0)throw new ParameterValidationError("clientId must be provided or set to null explicitly");ya.token_use==="id"?assertStringArrayContainsString('Client ID ("audience")',ya.aud,ma.clientId,CognitoJwtInvalidClientIdError):assertStringArrayContainsString("Client ID",ya.client_id,ma.clientId,CognitoJwtInvalidClientIdError)}}class CognitoJwtVerifier extends JwtVerifierBase{constructor(ma,ba){const va=Array.isArray(ma)?ma.map(Ma=>({...Ma,...CognitoJwtVerifier.parseUserPoolId(Ma.userPoolId),audience:null})):{...ma,...CognitoJwtVerifier.parseUserPoolId(ma.userPoolId),audience:null};super(va,ba)}static parseUserPoolId(ma){const ba=ma.match(this.USER_POOL_ID_REGEX);if(!ba)throw new ParameterValidationError(`Invalid Cognito User Pool ID: ${ma}`);const Ma=`https://cognito-idp.${ba.groups.region}.amazonaws.com/${ma}`;return{issuer:Ma,jwksUri:`${Ma}/.well-known/jwks.json`}}static create(ma,ba){return new this(ma,ba?.jwksCache)}verifySync(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);this.verifyDecomposedJwtSync(va,Ma,wl);try{validateCognitoJwtFields(va.payload,wl)}catch(El){throw wl.includeRawJwtInErrors&&El instanceof JwtInvalidClaimError?El.withRawJwt(va):El}return va.payload}async verify(...[ma,ba]){const{decomposedJwt:va,jwksUri:Ma,verifyProperties:wl}=this.getVerifyParameters(ma,ba);await this.verifyDecomposedJwt(va,Ma,wl);try{validateCognitoJwtFields(va.payload,wl)}catch(El){throw wl.includeRawJwtInErrors&&El instanceof JwtInvalidClaimError?El.withRawJwt(va):El}return va.payload}cacheJwks(...[ma,ba]){let va;if(ba!==void 0)va=CognitoJwtVerifier.parseUserPoolId(ba).issuer;else if(Array.from(this.issuersConfig).length>1)throw new ParameterValidationError("userPoolId must be provided");const Ma=this.getIssuerConfig(va);super.cacheJwks(ma,Ma.issuer)}}CognitoJwtVerifier.USER_POOL_ID_REGEX=/^(?<region>[a-z]{2}-(gov-)?[a-z]+-\d)_[a-zA-Z0-9]+$/;var __assign=function(){return __assign=Object.assign||function(ma){for(var ba,va=1,Ma=arguments.length;va<Ma;va++){ba=arguments[va];for(var wl in ba)Object.prototype.hasOwnProperty.call(ba,wl)&&(ma[wl]=ba[wl])}return ma},__assign.apply(this,arguments)};function __rest(ya,ma){var ba={};for(var va in ya)Object.prototype.hasOwnProperty.call(ya,va)&&ma.indexOf(va)<0&&(ba[va]=ya[va]);if(ya!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Ma=0,va=Object.getOwnPropertySymbols(ya);Ma<va.length;Ma++)ma.indexOf(va[Ma])<0&&Object.prototype.propertyIsEnumerable.call(ya,va[Ma])&&(ba[va[Ma]]=ya[va[Ma]]);return ba}function __awaiter(ya,ma,ba,va){function Ma(wl){return wl instanceof ba?wl:new ba(function(El){El(wl)})}return new(ba||(ba=Promise))(function(wl,El){function Sl(dp){try{Mc(va.next(dp))}catch(pp){El(pp)}}function Cl(dp){try{Mc(va.throw(dp))}catch(pp){El(pp)}}function Mc(dp){dp.done?wl(dp.value):Ma(dp.value).then(Sl,Cl)}Mc((va=va.apply(ya,ma||[])).next())})}function __generator(ya,ma){var ba={label:0,sent:function(){if(wl[0]&1)throw wl[1];return wl[1]},trys:[],ops:[]},va,Ma,wl,El=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return El.next=Sl(0),El.throw=Sl(1),El.return=Sl(2),typeof Symbol=="function"&&(El[Symbol.iterator]=function(){return this}),El;function Sl(Mc){return function(dp){return Cl([Mc,dp])}}function Cl(Mc){if(va)throw new TypeError("Generator is already executing.");for(;El&&(El=0,Mc[0]&&(ba=0)),ba;)try{if(va=1,Ma&&(wl=Mc[0]&2?Ma.return:Mc[0]?Ma.throw||((wl=Ma.return)&&wl.call(Ma),0):Ma.next)&&!(wl=wl.call(Ma,Mc[1])).done)return wl;switch(Ma=0,wl&&(Mc=[Mc[0]&2,wl.value]),Mc[0]){case 0:case 1:wl=Mc;break;case 4:return ba.label++,{value:Mc[1],done:!1};case 5:ba.label++,Ma=Mc[1],Mc=[0];continue;case 7:Mc=ba.ops.pop(),ba.trys.pop();continue;default:if(wl=ba.trys,!(wl=wl.length>0&&wl[wl.length-1])&&(Mc[0]===6||Mc[0]===2)){ba=0;continue}if(Mc[0]===3&&(!wl||Mc[1]>wl[0]&&Mc[1]<wl[3])){ba.label=Mc[1];break}if(Mc[0]===6&&ba.label<wl[1]){ba.label=wl[1],wl=Mc;break}if(wl&&ba.label<wl[2]){ba.label=wl[2],ba.ops.push(Mc);break}wl[2]&&ba.ops.pop(),ba.trys.pop();continue}Mc=ma.call(ya,ba)}catch(dp){Mc=[6,dp],Ma=0}finally{va=wl=0}if(Mc[0]&5)throw Mc[1];return{value:Mc[0]?Mc[1]:void 0,done:!0}}}function __spreadArray(ya,ma,ba){if(ba||arguments.length===2)for(var va=0,Ma=ma.length,wl;va<Ma;va++)(wl||!(va in ma))&&(wl||(wl=Array.prototype.slice.call(ma,0,va)),wl[va]=ma[va]);return ya.concat(wl||Array.prototype.slice.call(ma))}typeof SuppressedError=="function"&&SuppressedError;var define_process_env_default$2={};let fromEnv,CognitoIdentityProviderClient,SignUpCommand,ConfirmSignUp,ResendConfirmationCodeCommand,ForgotPasswordCommand,ConfirmForgotPasswordCommand,AdminGetUserCommand,InitiateAuthCommand,AdminCreateUserCommand,AdminDisableUserCommand,AdminEnableUserCommand,AdminDeleteUserCommand,RespondToAuthChallengeCommand,AuthenticationDetails,CognitoUser,CognitoUserPool,CognitoUserSession,CognitoIdToken,CognitoAccessToken,CognitoRefreshToken;if(isNodeEnv$1){fromEnv=(await __vitePreload(()=>import("./index.browser-q8hb7jya.js"),__vite__mapDeps([26,19,27]))).fromEnv;const ma=await __vitePreload(()=>import("./index-CLtYN2zU.js"),__vite__mapDeps([28,27,29,19,1,18,5,9,16,11,14,15,10,20,21,17,4]));CognitoIdentityProviderClient=ma.CognitoIdentityProviderClient,SignUpCommand=ma.SignUpCommand,ConfirmSignUp=ma.ConfirmSignUpCommand,ResendConfirmationCodeCommand=ma.ResendConfirmationCodeCommand,ForgotPasswordCommand=ma.ForgotPasswordCommand,ConfirmForgotPasswordCommand=ma.ConfirmForgotPasswordCommand,AdminGetUserCommand=ma.AdminGetUserCommand,InitiateAuthCommand=ma.InitiateAuthCommand,AdminCreateUserCommand=ma.AdminCreateUserCommand,AdminDisableUserCommand=ma.AdminDisableUserCommand,AdminEnableUserCommand=ma.AdminEnableUserCommand,AdminDeleteUserCommand=ma.AdminDeleteUserCommand,RespondToAuthChallengeCommand=ma.RespondToAuthChallengeCommand;const ba=await __vitePreload(()=>import("./index-BFv-M3PX.js"),__vite__mapDeps([30,1,4,5]));AuthenticationDetails=ba.AuthenticationDetails,CognitoUser=ba.CognitoUser,CognitoUserPool=ba.CognitoUserPool,CognitoUserSession=ba.CognitoUserSession,CognitoIdToken=ba.CognitoIdToken,CognitoAccessToken=ba.CognitoAccessToken,CognitoRefreshToken=ba.CognitoRefreshToken}const defaultConfig$1=isNodeEnv$1?new Map().set("UserPoolId",define_process_env_default$2.COGNITO_USER_POOL_ID).set("ClientId",define_process_env_default$2.COGNITO_CLIENT_ID):new Map;function handleCognitoError(ya,ma){var ba;const va=sanitizeErrorMessage(ya.message||"");switch(logger$3.error(`Cognito error in ${ma}: ${ya.name} - ${va}`,{errorName:ya.name,errorCode:ya.code,context:ma,statusCode:(ba=ya.$metadata)===null||ba===void 0?void 0:ba.httpStatusCode}),ya.name){case"UserNotFoundException":throw logger$3.debug(`User not found in context: ${ma}`),new UserNotFoundError$1("User account not found. Please check your email or sign up.");case"NotAuthorizedException":throw ya.message&&ya.message.includes("password")?(logger$3.debug(`Invalid password attempt in context: ${ma}`),new UnauthorisedError$1("Invalid password. Please try again.")):ya.message&&ya.message.includes("not confirmed")?(logger$3.debug(`User not confirmed in context: ${ma}`),new UserNotConfirmedError$1):(logger$3.debug(`Authentication failed in context: ${ma}`),new UnauthorisedError$1("Authentication failed. Please check your credentials."));case"UserNotConfirmedException":throw logger$3.debug(`User not confirmed in context: ${ma}`),new UserNotConfirmedError$1;case"PasswordResetRequiredException":throw logger$3.debug(`Password reset required in context: ${ma}`),new PasswordResetRequiredError$1;case"TooManyRequestsException":throw logger$3.warn(`Rate limit exceeded in context: ${ma}`),new TooManyRequestsError$3;case"TooManyFailedAttemptsException":throw logger$3.warn(`Too many failed attempts in context: ${ma}`),new TooManyRequestsError$3("Too many failed login attempts. Please try again later.");case"InvalidParameterException":throw logger$3.debug(`Invalid parameters in context: ${ma}`),new InvalidParameterError$1(sanitizeErrorMessage(ya.message)||"Invalid parameters provided");case"ExpiredCodeException":throw logger$3.debug(`Expired code in context: ${ma}`),new ExpiredCodeError$1;case"CodeMismatchException":throw logger$3.debug(`Code mismatch in context: ${ma}`),new CodeMismatchError$1;case"UsernameExistsException":throw logger$3.debug(`Username exists in context: ${ma}`),new BadRequestError$4("An account with this email already exists.");case"InvalidPasswordException":throw logger$3.debug(`Invalid password format in context: ${ma}`),new BadRequestError$4("Password does not meet requirements. It must be at least 8 characters long and contain uppercase, lowercase, numbers, and special characters.");case"LimitExceededException":throw logger$3.warn(`Service limit exceeded in context: ${ma}`),new TooManyRequestsError$3("Service limit exceeded. Please try again later.");case"InternalErrorException":throw logger$3.error(`Internal Cognito error in context: ${ma}`),new Error("Authentication service is temporarily unavailable. Please try again later.");case"ResourceNotFoundException":throw logger$3.error(`Resource not found in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");case"AliasExistsException":throw logger$3.debug(`Alias exists in context: ${ma}`),new BadRequestError$4("An account with this email already exists.");case"InvalidEmailRoleAccessPolicyException":throw logger$3.error(`Invalid email role access policy in context: ${ma}`),new Error("Email service configuration error. Please contact support.");case"UserLambdaValidationException":throw logger$3.error(`User lambda validation error in context: ${ma}`),new BadRequestError$4("User validation failed. Please check your input and try again.");case"UnsupportedUserStateException":throw logger$3.debug(`Unsupported user state in context: ${ma}`),new UserNotConfirmedError$1("User account is in an unsupported state. Please contact support.");case"MFAMethodNotFoundException":throw logger$3.debug(`MFA method not found in context: ${ma}`),new BadRequestError$4("MFA method not found. Please set up MFA and try again.");case"CodeDeliveryFailureException":throw logger$3.error(`Code delivery failure in context: ${ma}`),new Error("Unable to deliver verification code. Please try again later.");case"DuplicateProviderException":throw logger$3.error(`Duplicate provider in context: ${ma}`),new BadRequestError$4("Authentication provider already exists.");case"EnableSoftwareTokenMFAException":throw logger$3.debug(`Software token MFA required in context: ${ma}`),new BadRequestError$4("Software token MFA setup required.");case"ForbiddenException":throw logger$3.warn(`Forbidden access in context: ${ma}`),new UnauthorisedError$1("Access forbidden. Please check your permissions.");case"GroupExistsException":throw logger$3.debug(`Group exists in context: ${ma}`),new BadRequestError$4("Group already exists.");case"InvalidLambdaResponseException":throw logger$3.error(`Invalid lambda response in context: ${ma}`),new Error("Authentication service error. Please try again later.");case"InvalidOAuthFlowException":throw logger$3.error(`Invalid OAuth flow in context: ${ma}`),new BadRequestError$4("Invalid OAuth flow. Please try again.");case"InvalidSmsRoleAccessPolicyException":throw logger$3.error(`Invalid SMS role access policy in context: ${ma}`),new Error("SMS service configuration error. Please contact support.");case"InvalidSmsRoleTrustRelationshipException":throw logger$3.error(`Invalid SMS role trust relationship in context: ${ma}`),new Error("SMS service configuration error. Please contact support.");case"InvalidUserPoolConfigurationException":throw logger$3.error(`Invalid user pool configuration in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");case"PreconditionNotMetException":throw logger$3.debug(`Precondition not met in context: ${ma}`),new BadRequestError$4("Precondition not met. Please check your request and try again.");case"ScopeDoesNotExistException":throw logger$3.error(`Scope does not exist in context: ${ma}`),new BadRequestError$4("Invalid scope. Please check your request.");case"UnexpectedLambdaException":throw logger$3.error(`Unexpected lambda exception in context: ${ma}`),new Error("Authentication service error. Please try again later.");case"UserImportInProgressException":throw logger$3.warn(`User import in progress in context: ${ma}`),new TooManyRequestsError$3("User import in progress. Please try again later.");case"UserPoolTaggingException":throw logger$3.error(`User pool tagging exception in context: ${ma}`),new Error("Authentication service configuration error. Please contact support.");default:throw logger$3.error(`Unhandled Cognito error: ${ya.name}`,{errorName:ya.name,errorCode:ya.code,context:ma}),new Error(`Authentication error: ${sanitizeErrorMessage(ya.message)||"An unexpected error occurred"}`)}}function sanitizeErrorMessage(ya){return ya?ya.replace(/password/gi,"[REDACTED]").replace(/token/gi,"[REDACTED]").replace(/secret/gi,"[REDACTED]").replace(/key/gi,"[REDACTED]").replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,"[EMAIL_REDACTED]").replace(/\b[A-Fa-f0-9]{32,}\b/g,"[TOKEN_REDACTED]").replace(/\b\d{4,}\b/g,"[NUMBER_REDACTED]"):""}class CognitoAuth{constructor(ma){this.config=ma||defaultConfig$1;const ba=this.config.get("UserPoolId");ba&&(this.userPool=new CognitoUserPool({UserPoolId:ba,ClientId:this.fetchClientId()}))}fetchUserPoolId(){return this.fetchConfig("UserPoolId")}fetchClientId(){return this.fetchConfig("ClientId")}fetchConfig(ma){const ba=this.config.get(ma);if(ba)return ba;throw new Error(`${ma} is not set`)}async signUp(ma,ba,va,Ma,wl,El,Sl){const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Mc=[{Name:"email",Value:va},{Name:"name",Value:va},{Name:"given_name",Value:ma},{Name:"family_name",Value:ba}];wl&&wl.forEach((hp,Ef)=>{Mc.push({Name:Ef,Value:hp})});const dp={ClientId:this.config.get("ClientId"),Username:va,Password:Ma,UserAttributes:Mc,ValidationData:Mc},pp=new SignUpCommand(dp);try{logger$3.debug(`Attempting signup for user: ${va}`);const hp=await Cl.send(pp);if(hp.$metadata.httpStatusCode==200){logger$3.info(`Signup successful for user: ${va}`);const Ef=await ensureUser(va,ma,ba,El,"Active"),Zf={username:va,firstName:ma,lastName:ba,id:Ef.id,systemUserInfo:hp.UserSub};Sl(Zf)}else throw logger$3.error(`Signup failed with HTTP status ${hp.$metadata.httpStatusCode}`,{username:va,statusCode:hp.$metadata.httpStatusCode}),new BadRequestError$4(`Signup failed with status ${hp.$metadata.httpStatusCode}`)}catch(hp){if(hp instanceof BadRequestError$4)throw hp;logger$3.error(`Signup error for user ${va}:`,{errorName:hp.name,errorMessage:sanitizeErrorMessage(hp.message)}),handleCognitoError(hp,"signUp")}}async confirmSignup(ma,ba,va){try{const Ma=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wl=new ConfirmSignUp({ClientId:this.config.get("ClientId"),Username:ma,ConfirmationCode:ba});await Ma.send(wl)}catch(Ma){logger$3.error(`Failed to confirm signup: ${Ma.message}`),handleCognitoError(Ma,"confirmSignup")}}async resendConfirmationCode(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new ResendConfirmationCodeCommand({ClientId:this.config.get("ClientId"),Username:ma});await va.send(Ma)}catch(va){logger$3.error(`Failed to resend confirmation code: ${va.message}`),handleCognitoError(va,"resendConfirmationCode")}}async forgotPassword(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new ForgotPasswordCommand({ClientId:this.fetchClientId(),Username:ma});await va.send(Ma)}catch(va){logger$3.error(`Forgot password failed for ${ma}: ${sanitizeErrorMessage(va.message)}`),handleCognitoError(va,"forgotPassword")}}async confirmForgotPassword(ma,ba,va,Ma){try{const wl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),El=new ConfirmForgotPasswordCommand({ClientId:this.fetchClientId(),Username:ma,ConfirmationCode:ba,Password:va});await wl.send(El)}catch(wl){logger$3.error(`Confirm forgot password failed for ${ma}: ${sanitizeErrorMessage(wl.message)}`),handleCognitoError(wl,"confirmForgotPassword")}}async login(ma,ba,va,Ma){if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID){const El=new CognitoUser({Username:ma,Pool:this.fetchUserPool()}),Sl=new AuthenticationDetails({Username:ma,Password:ba});let Cl,Mc;for(El.authenticateUser(Sl,{onSuccess:dp=>{Cl=dp},onFailure:dp=>{logger$3.debug(`Cognito authentication failed for user ${ma}:`,{errorName:dp.name,errorMessage:sanitizeErrorMessage(dp.message)}),Mc=dp},mfaRequired:(dp,pp)=>{logger$3.info(`MFA required for user ${ma}: ${dp}`),Mc=new Error("MFA authentication required")},newPasswordRequired:(dp,pp)=>{logger$3.info(`New password required for user ${ma}`),Mc=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});Cl===void 0&&Mc===void 0;)await sleepMilliseconds$1(100);if(Mc){if(Mc instanceof PasswordResetRequiredError$1)throw Mc;logger$3.error(`Login failed for user ${ma}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),handleCognitoError(Mc,"login")}if(Cl){const dp=Cl.getIdToken(),pp=dp.getJwtToken(),hp=dp.decodePayload(),Ef=hp.given_name||hp.name||"",Zf=hp.family_name||"",Jf=hp["cognito:groups"];let pg=await findUserByEmail(ma,va);pg||(pg=await ensureUser(ma,Ef,Zf,va));const hg=pg.lookup("id");Jf&&await ensureUserRoles(hg,Jf,va);const mg=Cl.getAccessToken().getJwtToken(),gg=Cl.getRefreshToken().getToken(),ay={sessionId:(await ensureUserSession(hg,ma,pp,mg,gg,va)).lookup("id"),userId:hg,authToken:pp,idToken:pp,accessToken:mg,refreshToken:gg,systemSesionInfo:Cl};Ma(ay)}else throw logger$3.error(`Login failed for ${ma} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}else{let El=await findUserByEmail(ma,va);El||(logger$3.warn(`User ${ma} not found in local store`),El=await ensureUser(ma,"","",va));const Sl=new CognitoUser({Username:ma,Pool:this.fetchUserPool()}),Cl=new AuthenticationDetails({Username:ma,Password:ba});let Mc,dp;for(Sl.authenticateUser(Cl,{onSuccess:pp=>{Mc=pp},onFailure:pp=>{logger$3.debug(`Cognito authentication failed for user ${ma}:`,{errorName:pp.name,errorMessage:sanitizeErrorMessage(pp.message)}),dp=pp},mfaRequired:(pp,hp)=>{logger$3.info(`MFA required for user ${ma}: ${pp}`),dp=new Error("MFA authentication required")},newPasswordRequired:(pp,hp)=>{logger$3.info(`New password required for user ${ma}`),dp=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});Mc===void 0&&dp===void 0;)await sleepMilliseconds$1(100);if(dp){if(dp instanceof PasswordResetRequiredError$1)throw dp;logger$3.error(`Login failed for user ${ma}:`,{errorName:dp.name,errorMessage:sanitizeErrorMessage(dp.message)}),handleCognitoError(dp,"login")}if(Mc){const pp=El.lookup("id"),hp=Mc.getIdToken().getJwtToken(),Ef=Mc.getAccessToken().getJwtToken(),Zf=Mc.getRefreshToken().getToken(),pg={sessionId:(await ensureUserSession(pp,ma,hp,Ef,Zf,va)).lookup("id"),userId:pp,authToken:hp,idToken:hp,accessToken:Ef,refreshToken:Zf,systemSesionInfo:Mc};Ma(pg)}else throw logger$3.error(`Login failed for ${ma} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}}async logout(ma,ba,va){try{const Ma=await findUser(ma.userId,ba);if(!Ma){logger$3.warn(`User ${ma.userId} not found during logout`),va&&va(!0);return}const wl=new CognitoUser({Username:Ma.lookup("email"),Pool:this.fetchUserPool()});let El=!1,Sl;const Cl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:ma.idToken}),AccessToken:new CognitoAccessToken({AccessToken:ma.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:ma.refreshToken})});for(wl.setSignInUserSession(Cl),wl.globalSignOut({onSuccess:function(){El=!0},onFailure:function(Mc){El=!0,logger$3.error(`Cognito signOut error for user ${ma.userId}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),Sl=Mc}});!El;)await sleepMilliseconds$1(100);Sl&&logger$3.error(`Error during Cognito logout for user ${ma.userId}: ${Sl.message}`),logger$3.debug(`Successfully logged out user ${ma.userId}`),va&&va(!0)}catch(Ma){throw logger$3.error(`Logout failed for user ${ma.userId}: ${Ma.message}`),va&&va(!1),Ma}}async changePassword(ma,ba,va,Ma){const wl=await findUser(ma.userId,Ma);if(!wl)return logger$3.warn(`User ${ma.userId} not found for password-change`),!1;const El=wl.lookup("email"),Sl=new CognitoUser({Username:El,Pool:this.fetchUserPool()}),Cl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:ma.idToken}),AccessToken:new CognitoAccessToken({AccessToken:ma.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:ma.refreshToken})});Sl.setSignInUserSession(Cl);let Mc=!1,dp;for(Sl.changePassword(va,ba,(pp,hp)=>{pp?(Mc=!0,dp=pp):Mc=!0});!Mc;)await sleepMilliseconds$1(100);return dp?(logger$3.warn(`Failed to change the password for ${El} - ${dp.message}`),!1):!0}fetchUserPool(){if(this.userPool)return this.userPool;throw new Error("UserPool not initialized")}async verifyToken(ma){try{const va=await CognitoJwtVerifier.create({userPoolId:this.fetchUserPoolId(),tokenUse:"id",clientId:this.fetchClientId()}).verify(ma);logger$3.debug(`Decoded JWT for ${va.email}`)}catch(ba){throw logger$3.error("Token verification failed:",{errorName:ba.name,errorMessage:sanitizeErrorMessage(ba.message)}),ba.message&&ba.message.includes("expired")?new UnauthorisedError$1("Token has expired. Please login again."):ba.message&&ba.message.includes("invalid")?new UnauthorisedError$1("Invalid token format."):ba.message&&ba.message.includes("not before")?new UnauthorisedError$1("Token is not yet valid."):ba.message&&ba.message.includes("audience")?new UnauthorisedError$1("Token audience mismatch."):new UnauthorisedError$1(`Token verification failed: ${sanitizeErrorMessage(ba.message)||"Invalid token"}`)}}async getUser(ma,ba){const va=await findUser(ma,ba);if(!va)throw new UserNotFoundError$1(`User ${ma} not found in local database`);const Ma=va.lookup("email"),wl=va.lookup("firstName"),El=va.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID&&Ma)try{const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Mc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:Ma}),dp=await Cl.send(Mc);return{id:ma,username:Ma,firstName:wl,lastName:El,systemUserInfo:{localUser:va,cognitoData:{userAttributes:dp.UserAttributes,userCreateDate:dp.UserCreateDate,userLastModifiedDate:dp.UserLastModifiedDate,userStatus:dp.UserStatus,enabled:dp.Enabled,preferredMfaSetting:dp.PreferredMfaSetting,userMFASettingList:dp.UserMFASettingList}}}}catch(Cl){return logger$3.warn(`Failed to get Cognito user info for ${Ma}, using local data only:`,{errorName:Cl.name,errorMessage:sanitizeErrorMessage(Cl.message)}),{id:ma,username:Ma,firstName:wl,lastName:El,systemUserInfo:va}}else return{id:ma,username:Ma||ma,firstName:wl,lastName:El,systemUserInfo:va}}async getUserByEmail(ma,ba){const va=await findUserByEmail(ma,ba);if(!va)throw new UserNotFoundError$1(`User with email ${ma} not found in local database`);const Ma=va.lookup("id"),wl=va.lookup("firstName"),El=va.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID)try{const Cl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Mc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),ClientId:this.fetchClientId(),Username:ma}),dp=await Cl.send(Mc);return{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:{localUser:va,cognitoData:{userAttributes:dp.UserAttributes,userCreateDate:dp.UserCreateDate,userLastModifiedDate:dp.UserLastModifiedDate,userStatus:dp.UserStatus,enabled:dp.Enabled,preferredMfaSetting:dp.PreferredMfaSetting,userMFASettingList:dp.UserMFASettingList}}}}catch(Cl){return console.log(`Failed to get Cognito user info for email ${ma}, using local data only:`,{errorName:Cl.name,errorMessage:sanitizeErrorMessage(Cl.message)}),{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:va}}else return{id:Ma,username:ma,firstName:wl,lastName:El,systemUserInfo:va}}async refreshToken(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Ma=new InitiateAuthCommand({AuthFlow:"REFRESH_TOKEN_AUTH",ClientId:this.fetchClientId(),AuthParameters:{REFRESH_TOKEN:ma}}),wl=await va.send(Ma);if(!wl.AuthenticationResult)throw new UnauthorisedError$1("Token refresh failed");const El=wl.AuthenticationResult.IdToken,Sl=wl.AuthenticationResult.AccessToken,Cl=wl.AuthenticationResult.RefreshToken||ma,dp=JSON.parse(atob(El.split(".")[1])).email;let pp=await findUserByEmail(dp,ba);pp||(pp=await ensureUser(dp,"","",ba));const hp=pp.lookup("id");return{sessionId:(await ensureUserSession(hp,dp,El,Sl,Cl,ba)).lookup("id"),userId:hp,authToken:El,idToken:El,accessToken:Sl,refreshToken:Cl,systemSesionInfo:wl.AuthenticationResult}}catch(va){throw logger$3.error(`Refresh token operation failed: ${va.message}`),va.name==="NotAuthorizedException"?new UnauthorisedError$1("Invalid or expired refresh token"):(handleCognitoError(va,"refreshToken"),va)}}async inviteUser(ma,ba,va,Ma,wl,El,Sl){var Cl;try{const Mc=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),dp=[{Name:"email",Value:ma},{Name:"email_verified",Value:"true"},{Name:"given_name",Value:ba},{Name:"family_name",Value:va}];Ma&&Ma.forEach((Zf,Jf)=>{dp.push({Name:Jf,Value:String(Zf)})});let pp=!1;try{const Zf=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});await Mc.send(Zf),pp=!0,logger$3.debug(`User ${ma} already exists, will resend invitation`)}catch(Zf){if(Zf.name!=="UserNotFoundException")throw Zf;logger$3.debug(`User ${ma} does not exist, will create new user`)}const hp=new AdminCreateUserCommand(Object.assign({UserPoolId:this.fetchUserPoolId(),Username:ma,UserAttributes:dp,DesiredDeliveryMediums:["EMAIL"],TemporaryPassword:generateUrlSafePassword$1()},pp?{MessageAction:"RESEND"}:{}));logger$3.debug(`Attempting to invite user: ${ma}`);const Ef=await Mc.send(hp);if(Ef.$metadata.httpStatusCode===200){logger$3.info(`User invitation successful for: ${ma}`);const Jf=(await ensureUser(ma,ba,va,El,"Invited")).lookup("id");await ensureUserRoles(Jf,[wl||"user"],El);const pg={email:ma,firstName:ba,lastName:va,invitationId:(Cl=Ef.User)===null||Cl===void 0?void 0:Cl.Username,systemInvitationInfo:Ef};Sl(pg)}else throw logger$3.error(`User invitation failed with HTTP status ${Ef.$metadata.httpStatusCode}`,{email:ma,statusCode:Ef.$metadata.httpStatusCode}),new BadRequestError$4(`User invitation failed with status ${Ef.$metadata.httpStatusCode}`)}catch(Mc){if(Mc instanceof BadRequestError$4)throw Mc;logger$3.error(`User invitation error for ${ma}:`,{errorName:Mc.name,errorMessage:sanitizeErrorMessage(Mc.message)}),handleCognitoError(Mc,"inviteUser")}}async resendInvitation(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"});try{const El=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});await va.send(El)}catch(El){throw El.name==="UserNotFoundException"?new UserNotFoundError$1(`User ${ma} not found. Cannot resend invitation.`):El}const Ma=new AdminCreateUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma,DesiredDeliveryMediums:["EMAIL"],MessageAction:"RESEND"});logger$3.debug(`Attempting to resend invitation for user: ${ma}`);const wl=await va.send(Ma);if(wl.$metadata.httpStatusCode===200)logger$3.info(`Invitation resent successfully for: ${ma}`);else throw logger$3.error(`Failed to resend invitation with HTTP status ${wl.$metadata.httpStatusCode}`,{email:ma,statusCode:wl.$metadata.httpStatusCode}),new BadRequestError$4(`Failed to resend invitation with status ${wl.$metadata.httpStatusCode}`)}catch(va){if(va instanceof BadRequestError$4||va instanceof UserNotFoundError$1)throw va;logger$3.error(`Resend invitation error for ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"resendInvitation")}}async acceptInvitation(ma,ba,va,Ma){try{const wl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),El=new InitiateAuthCommand({AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.fetchClientId(),AuthParameters:{USERNAME:ma,PASSWORD:ba}}),Sl=await wl.send(El);if(Sl.ChallengeName==="NEW_PASSWORD_REQUIRED"){const Cl=new RespondToAuthChallengeCommand({ClientId:this.fetchClientId(),ChallengeName:"NEW_PASSWORD_REQUIRED",Session:Sl.Session,ChallengeResponses:{USERNAME:ma,NEW_PASSWORD:va}});await wl.send(Cl),logger$3.info(`User invitation accepted successfully for: ${ma}`)}else throw new Error(`Unexpected challenge: ${Sl.ChallengeName}`)}catch(wl){logger$3.error(`Accept invitation failed for ${ma}: ${sanitizeErrorMessage(wl.message)}`),handleCognitoError(wl,"acceptInvitation")}}async callback(ma,ba,va){try{if(!isNodeEnv$1)throw new Error("Callback authentication is only supported in Node.js environment");const Ma=this.fetchConfig("ClientId"),wl=define_process_env_default$2.AWS_REGION||"us-east-1",El=define_process_env_default$2.COGNITO_REDIRECT_URI||"http://localhost:3000/auth/callback",Cl=`https://${define_process_env_default$2.COGNITO_HOSTED_DOMAIN}.auth.${wl}.amazoncognito.com/oauth2/token`,Mc=new URLSearchParams({grant_type:"authorization_code",client_id:Ma,code:ma,redirect_uri:El});logger$3.debug("Exchanging authorization code for tokens via OAuth2 endpoint"),console.log("te",Cl,Mc.toString());const dp=await fetch(Cl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:Mc.toString()});if(!dp.ok){const q1=await dp.text();throw new Error(`Token exchange failed: ${dp.status} ${q1}`)}const pp=await dp.json();if(!pp.access_token||!pp.id_token||!pp.refresh_token)throw new Error("Missing required tokens in response");const{access_token:hp,id_token:Ef,refresh_token:Zf}=pp,Jf=this.decodeJwtPayload(Ef),pg=Jf.email,hg=Jf.given_name||Jf.name||"",mg=Jf.family_name||"",gg=Jf["cognito:groups"];if(!pg)throw new Error("Email not found in ID attributes");let yg=await findUserByEmail(pg,ba);yg||(yg=await ensureUser(pg,hg,mg,ba));const ay=yg.lookup("id");gg&&await ensureUserRoles(ay,gg,ba);const cy={sessionId:(await ensureUserSession(ay,pg,Ef,hp,Zf,ba)).lookup("id"),userId:ay,authToken:Ef,idToken:Ef,accessToken:hp,refreshToken:Zf,systemSesionInfo:pp};logger$3.info(`Auth callback successful for user ${pg}`),va(cy)}catch(Ma){console.log(Ma),logger$3.error(`Auth callback failed: ${sanitizeErrorMessage(Ma.message)}`),handleCognitoError(Ma,"callback")}}decodeJwtPayload(ma){try{const va=ma.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),Ma=decodeURIComponent(atob(va).split("").map(wl=>"%"+("00"+wl.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(Ma)}catch(ba){throw logger$3.error(`Failed to decode JWT payload: ${ba}`),new Error("Invalid JWT token")}}async deleteUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminDeleteUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to delete user: ${ma}`),await va.send(Ma),logger$3.info(`User deleted successfully: ${ma}`)}catch(va){logger$3.error(`Failed to delete user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"deleteUser")}}async disableUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminDisableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to disable user: ${ma}`),await va.send(Ma),logger$3.info(`User disabled successfully: ${ma}`)}catch(va){logger$3.error(`Failed to disable user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"disableUser")}}async enableUser(ma,ba){try{const va=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Ma=new AdminEnableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:ma});logger$3.debug(`Attempting to enable user: ${ma}`),await va.send(Ma),logger$3.info(`User enabled successfully: ${ma}`)}catch(va){logger$3.error(`Failed to enable user ${ma}:`,{errorName:va.name,errorMessage:sanitizeErrorMessage(va.message)}),handleCognitoError(va,"enableUser")}}}const CoreAuthModuleName=makeCoreModuleName$1("auth"),auth=`module ${CoreAuthModuleName}
17985
17985
 
17986
17986
  import "./modules/auth.js" @as Auth
17987
17987
 
@@ -21259,7 +21259,7 @@ Use this context to understand the full application structure when making change
21259
21259
  +`).split(`
21260
21260
  `)),dp=Mc.reduce((pp,hp)=>pp.concat(...hp),[]);return[Mc,dp]}return[[],[]]},[ya]);return reactExports.useEffect(()=>{const Cl=ma?.target??defaultDoc,Mc=ma?.actInsideInputWithModifier??!0;if(ya!==null){const dp=Ef=>{if(Ma.current=Ef.ctrlKey||Ef.metaKey||Ef.shiftKey||Ef.altKey,(!Ma.current||Ma.current&&!Mc)&&isInputDOMNode(Ef))return!1;const Jf=useKeyOrCode(Ef.code,Sl);if(wl.current.add(Ef[Jf]),isMatchingKey(El,wl.current,!1)){const pg=Ef.composedPath?.()?.[0]||Ef.target,hg=pg?.nodeName==="BUTTON"||pg?.nodeName==="A";ma.preventDefault!==!1&&(Ma.current||!hg)&&Ef.preventDefault(),va(!0)}},pp=Ef=>{const Zf=useKeyOrCode(Ef.code,Sl);isMatchingKey(El,wl.current,!0)?(va(!1),wl.current.clear()):wl.current.delete(Ef[Zf]),Ef.key==="Meta"&&wl.current.clear(),Ma.current=!1},hp=()=>{wl.current.clear(),va(!1)};return Cl?.addEventListener("keydown",dp),Cl?.addEventListener("keyup",pp),window.addEventListener("blur",hp),window.addEventListener("contextmenu",hp),()=>{Cl?.removeEventListener("keydown",dp),Cl?.removeEventListener("keyup",pp),window.removeEventListener("blur",hp),window.removeEventListener("contextmenu",hp)}}},[ya,va]),ba}function isMatchingKey(ya,ma,ba){return ya.filter(va=>ba||va.length===ma.size).some(va=>va.every(Ma=>ma.has(Ma)))}function useKeyOrCode(ya,ma){return ma.includes(ya)?"code":"key"}const useViewportHelper=()=>{const ya=useStoreApi();return reactExports.useMemo(()=>({zoomIn:ma=>{const{panZoom:ba}=ya.getState();return ba?ba.scaleBy(1.2,{duration:ma?.duration}):Promise.resolve(!1)},zoomOut:ma=>{const{panZoom:ba}=ya.getState();return ba?ba.scaleBy(1/1.2,{duration:ma?.duration}):Promise.resolve(!1)},zoomTo:(ma,ba)=>{const{panZoom:va}=ya.getState();return va?va.scaleTo(ma,{duration:ba?.duration}):Promise.resolve(!1)},getZoom:()=>ya.getState().transform[2],setViewport:async(ma,ba)=>{const{transform:[va,Ma,wl],panZoom:El}=ya.getState();return El?(await El.setViewport({x:ma.x??va,y:ma.y??Ma,zoom:ma.zoom??wl},ba),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[ma,ba,va]=ya.getState().transform;return{x:ma,y:ba,zoom:va}},setCenter:async(ma,ba,va)=>ya.getState().setCenter(ma,ba,va),fitBounds:async(ma,ba)=>{const{width:va,height:Ma,minZoom:wl,maxZoom:El,panZoom:Sl}=ya.getState(),Cl=getViewportForBounds(ma,va,Ma,wl,El,ba?.padding??.1);return Sl?(await Sl.setViewport(Cl,{duration:ba?.duration,ease:ba?.ease,interpolate:ba?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(ma,ba={})=>{const{transform:va,snapGrid:Ma,snapToGrid:wl,domNode:El}=ya.getState();if(!El)return ma;const{x:Sl,y:Cl}=El.getBoundingClientRect(),Mc={x:ma.x-Sl,y:ma.y-Cl},dp=ba.snapGrid??Ma,pp=ba.snapToGrid??wl;return pointToRendererPoint(Mc,va,pp,dp)},flowToScreenPosition:ma=>{const{transform:ba,domNode:va}=ya.getState();if(!va)return ma;const{x:Ma,y:wl}=va.getBoundingClientRect(),El=rendererPointToPoint(ma,ba);return{x:El.x+Ma,y:El.y+wl}}}),[])};function applyChanges(ya,ma){const ba=[],va=new Map,Ma=[];for(const wl of ya)if(wl.type==="add"){Ma.push(wl);continue}else if(wl.type==="remove"||wl.type==="replace")va.set(wl.id,[wl]);else{const El=va.get(wl.id);El?El.push(wl):va.set(wl.id,[wl])}for(const wl of ma){const El=va.get(wl.id);if(!El){ba.push(wl);continue}if(El[0].type==="remove")continue;if(El[0].type==="replace"){ba.push({...El[0].item});continue}const Sl={...wl};for(const Cl of El)applyChange(Cl,Sl);ba.push(Sl)}return Ma.length&&Ma.forEach(wl=>{wl.index!==void 0?ba.splice(wl.index,0,{...wl.item}):ba.push({...wl.item})}),ba}function applyChange(ya,ma){switch(ya.type){case"select":{ma.selected=ya.selected;break}case"position":{typeof ya.position<"u"&&(ma.position=ya.position),typeof ya.dragging<"u"&&(ma.dragging=ya.dragging);break}case"dimensions":{typeof ya.dimensions<"u"&&(ma.measured={...ya.dimensions},ya.setAttributes&&((ya.setAttributes===!0||ya.setAttributes==="width")&&(ma.width=ya.dimensions.width),(ya.setAttributes===!0||ya.setAttributes==="height")&&(ma.height=ya.dimensions.height))),typeof ya.resizing=="boolean"&&(ma.resizing=ya.resizing);break}}}function applyNodeChanges(ya,ma){return applyChanges(ya,ma)}function applyEdgeChanges(ya,ma){return applyChanges(ya,ma)}function createSelectionChange(ya,ma){return{id:ya,type:"select",selected:ma}}function getSelectionChanges(ya,ma=new Set,ba=!1){const va=[];for(const[Ma,wl]of ya){const El=ma.has(Ma);!(wl.selected===void 0&&!El)&&wl.selected!==El&&(ba&&(wl.selected=El),va.push(createSelectionChange(wl.id,El)))}return va}function getElementsDiffChanges({items:ya=[],lookup:ma}){const ba=[],va=new Map(ya.map(Ma=>[Ma.id,Ma]));for(const[Ma,wl]of ya.entries()){const El=ma.get(wl.id),Sl=El?.internals?.userNode??El;Sl!==void 0&&Sl!==wl&&ba.push({id:wl.id,item:wl,type:"replace"}),Sl===void 0&&ba.push({item:wl,type:"add",index:Ma})}for(const[Ma]of ma)va.get(Ma)===void 0&&ba.push({id:Ma,type:"remove"});return ba}function elementToRemoveChange(ya){return{id:ya.id,type:"remove"}}const isNode$2=ya=>isNodeBase(ya),isEdge=ya=>isEdgeBase(ya);function fixedForwardRef(ya){return reactExports.forwardRef(ya)}const useIsomorphicLayoutEffect$4=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function useQueue(ya){const[ma,ba]=reactExports.useState(BigInt(0)),[va]=reactExports.useState(()=>createQueue(()=>ba(Ma=>Ma+BigInt(1))));return useIsomorphicLayoutEffect$4(()=>{const Ma=va.get();Ma.length&&(ya(Ma),va.reset())},[ma]),va}function createQueue(ya){let ma=[];return{get:()=>ma,reset:()=>{ma=[]},push:ba=>{ma.push(ba),ya()}}}const BatchContext=reactExports.createContext(null);function BatchProvider({children:ya}){const ma=useStoreApi(),ba=reactExports.useCallback(Sl=>{const{nodes:Cl=[],setNodes:Mc,hasDefaultNodes:dp,onNodesChange:pp,nodeLookup:hp,fitViewQueued:Ef,onNodesChangeMiddlewareMap:Zf}=ma.getState();let Jf=Cl;for(const hg of Sl)Jf=typeof hg=="function"?hg(Jf):hg;let pg=getElementsDiffChanges({items:Jf,lookup:hp});for(const hg of Zf.values())pg=hg(pg);dp&&Mc(Jf),pg.length>0?pp?.(pg):Ef&&window.requestAnimationFrame(()=>{const{fitViewQueued:hg,nodes:mg,setNodes:gg}=ma.getState();hg&&gg(mg)})},[]),va=useQueue(ba),Ma=reactExports.useCallback(Sl=>{const{edges:Cl=[],setEdges:Mc,hasDefaultEdges:dp,onEdgesChange:pp,edgeLookup:hp}=ma.getState();let Ef=Cl;for(const Zf of Sl)Ef=typeof Zf=="function"?Zf(Ef):Zf;dp?Mc(Ef):pp&&pp(getElementsDiffChanges({items:Ef,lookup:hp}))},[]),wl=useQueue(Ma),El=reactExports.useMemo(()=>({nodeQueue:va,edgeQueue:wl}),[]);return jsxRuntimeExports.jsx(BatchContext.Provider,{value:El,children:ya})}function useBatchContext(){const ya=reactExports.useContext(BatchContext);if(!ya)throw new Error("useBatchContext must be used within a BatchProvider");return ya}const selector$k=ya=>!!ya.panZoom;function useReactFlow(){const ya=useViewportHelper(),ma=useStoreApi(),ba=useBatchContext(),va=useStore$1(selector$k),Ma=reactExports.useMemo(()=>{const wl=pp=>ma.getState().nodeLookup.get(pp),El=pp=>{ba.nodeQueue.push(pp)},Sl=pp=>{ba.edgeQueue.push(pp)},Cl=pp=>{const{nodeLookup:hp,nodeOrigin:Ef}=ma.getState(),Zf=isNode$2(pp)?pp:hp.get(pp.id),Jf=Zf.parentId?evaluateAbsolutePosition(Zf.position,Zf.measured,Zf.parentId,hp,Ef):Zf.position,pg={...Zf,position:Jf,width:Zf.measured?.width??Zf.width,height:Zf.measured?.height??Zf.height};return nodeToRect(pg)},Mc=(pp,hp,Ef={replace:!1})=>{El(Zf=>Zf.map(Jf=>{if(Jf.id===pp){const pg=typeof hp=="function"?hp(Jf):hp;return Ef.replace&&isNode$2(pg)?pg:{...Jf,...pg}}return Jf}))},dp=(pp,hp,Ef={replace:!1})=>{Sl(Zf=>Zf.map(Jf=>{if(Jf.id===pp){const pg=typeof hp=="function"?hp(Jf):hp;return Ef.replace&&isEdge(pg)?pg:{...Jf,...pg}}return Jf}))};return{getNodes:()=>ma.getState().nodes.map(pp=>({...pp})),getNode:pp=>wl(pp)?.internals.userNode,getInternalNode:wl,getEdges:()=>{const{edges:pp=[]}=ma.getState();return pp.map(hp=>({...hp}))},getEdge:pp=>ma.getState().edgeLookup.get(pp),setNodes:El,setEdges:Sl,addNodes:pp=>{const hp=Array.isArray(pp)?pp:[pp];ba.nodeQueue.push(Ef=>[...Ef,...hp])},addEdges:pp=>{const hp=Array.isArray(pp)?pp:[pp];ba.edgeQueue.push(Ef=>[...Ef,...hp])},toObject:()=>{const{nodes:pp=[],edges:hp=[],transform:Ef}=ma.getState(),[Zf,Jf,pg]=Ef;return{nodes:pp.map(hg=>({...hg})),edges:hp.map(hg=>({...hg})),viewport:{x:Zf,y:Jf,zoom:pg}}},deleteElements:async({nodes:pp=[],edges:hp=[]})=>{const{nodes:Ef,edges:Zf,onNodesDelete:Jf,onEdgesDelete:pg,triggerNodeChanges:hg,triggerEdgeChanges:mg,onDelete:gg,onBeforeDelete:yg}=ma.getState(),{nodes:ay,edges:ly}=await getElementsToRemove({nodesToRemove:pp,edgesToRemove:hp,nodes:Ef,edges:Zf,onBeforeDelete:yg}),cy=ly.length>0,q1=ay.length>0;if(cy){const r0=ly.map(elementToRemoveChange);pg?.(ly),mg(r0)}if(q1){const r0=ay.map(elementToRemoveChange);Jf?.(ay),hg(r0)}return(q1||cy)&&gg?.({nodes:ay,edges:ly}),{deletedNodes:ay,deletedEdges:ly}},getIntersectingNodes:(pp,hp=!0,Ef)=>{const Zf=isRectObject(pp),Jf=Zf?pp:Cl(pp),pg=Ef!==void 0;return Jf?(Ef||ma.getState().nodes).filter(hg=>{const mg=ma.getState().nodeLookup.get(hg.id);if(mg&&!Zf&&(hg.id===pp.id||!mg.internals.positionAbsolute))return!1;const gg=nodeToRect(pg?hg:mg),yg=getOverlappingArea(gg,Jf);return hp&&yg>0||yg>=gg.width*gg.height||yg>=Jf.width*Jf.height}):[]},isNodeIntersecting:(pp,hp,Ef=!0)=>{const Jf=isRectObject(pp)?pp:Cl(pp);if(!Jf)return!1;const pg=getOverlappingArea(Jf,hp);return Ef&&pg>0||pg>=hp.width*hp.height||pg>=Jf.width*Jf.height},updateNode:Mc,updateNodeData:(pp,hp,Ef={replace:!1})=>{Mc(pp,Zf=>{const Jf=typeof hp=="function"?hp(Zf):hp;return Ef.replace?{...Zf,data:Jf}:{...Zf,data:{...Zf.data,...Jf}}},Ef)},updateEdge:dp,updateEdgeData:(pp,hp,Ef={replace:!1})=>{dp(pp,Zf=>{const Jf=typeof hp=="function"?hp(Zf):hp;return Ef.replace?{...Zf,data:Jf}:{...Zf,data:{...Zf.data,...Jf}}},Ef)},getNodesBounds:pp=>{const{nodeLookup:hp,nodeOrigin:Ef}=ma.getState();return getNodesBounds(pp,{nodeLookup:hp,nodeOrigin:Ef})},getHandleConnections:({type:pp,id:hp,nodeId:Ef})=>Array.from(ma.getState().connectionLookup.get(`${Ef}-${pp}${hp?`-${hp}`:""}`)?.values()??[]),getNodeConnections:({type:pp,handleId:hp,nodeId:Ef})=>Array.from(ma.getState().connectionLookup.get(`${Ef}${pp?hp?`-${pp}-${hp}`:`-${pp}`:""}`)?.values()??[]),fitView:async pp=>{const hp=ma.getState().fitViewResolver??withResolvers();return ma.setState({fitViewQueued:!0,fitViewOptions:pp,fitViewResolver:hp}),ba.nodeQueue.push(Ef=>[...Ef]),hp.promise}}},[]);return reactExports.useMemo(()=>({...Ma,...ya,viewportInitialized:va}),[va])}const selected=ya=>ya.selected,win$1=typeof window<"u"?window:void 0;function useGlobalKeyHandler({deleteKeyCode:ya,multiSelectionKeyCode:ma}){const ba=useStoreApi(),{deleteElements:va}=useReactFlow(),Ma=useKeyPress(ya,{actInsideInputWithModifier:!1}),wl=useKeyPress(ma,{target:win$1});reactExports.useEffect(()=>{if(Ma){const{edges:El,nodes:Sl}=ba.getState();va({nodes:Sl.filter(selected),edges:El.filter(selected)}),ba.setState({nodesSelectionActive:!1})}},[Ma]),reactExports.useEffect(()=>{ba.setState({multiSelectionActive:wl})},[wl])}function useResizeHandler(ya){const ma=useStoreApi();reactExports.useEffect(()=>{const ba=()=>{if(!ya.current||!(ya.current.checkVisibility?.()??!0))return!1;const va=getDimensions$1(ya.current);(va.height===0||va.width===0)&&ma.getState().onError?.("004",errorMessages$3.error004()),ma.setState({width:va.width||500,height:va.height||500})};if(ya.current){ba(),window.addEventListener("resize",ba);const va=new ResizeObserver(()=>ba());return va.observe(ya.current),()=>{window.removeEventListener("resize",ba),va&&ya.current&&va.unobserve(ya.current)}}},[])}const containerStyle={position:"absolute",width:"100%",height:"100%",top:0,left:0},selector$j=ya=>({userSelectionActive:ya.userSelectionActive,lib:ya.lib,connectionInProgress:ya.connection.inProgress});function ZoomPane({onPaneContextMenu:ya,zoomOnScroll:ma=!0,zoomOnPinch:ba=!0,panOnScroll:va=!1,panOnScrollSpeed:Ma=.5,panOnScrollMode:wl=PanOnScrollMode.Free,zoomOnDoubleClick:El=!0,panOnDrag:Sl=!0,defaultViewport:Cl,translateExtent:Mc,minZoom:dp,maxZoom:pp,zoomActivationKeyCode:hp,preventScrolling:Ef=!0,children:Zf,noWheelClassName:Jf,noPanClassName:pg,onViewportChange:hg,isControlledViewport:mg,paneClickDistance:gg,selectionOnDrag:yg}){const ay=useStoreApi(),ly=reactExports.useRef(null),{userSelectionActive:cy,lib:q1,connectionInProgress:r0}=useStore$1(selector$j,shallow$1),uE=useKeyPress(hp),V1=reactExports.useRef();useResizeHandler(ly);const H1=reactExports.useCallback(O_=>{hg?.({x:O_[0],y:O_[1],zoom:O_[2]}),mg||ay.setState({transform:O_})},[hg,mg]);return reactExports.useEffect(()=>{if(ly.current){V1.current=XYPanZoom({domNode:ly.current,minZoom:dp,maxZoom:pp,translateExtent:Mc,viewport:Cl,onDraggingChange:M_=>ay.setState({paneDragging:M_}),onPanZoomStart:(M_,sN)=>{const{onViewportChangeStart:AF,onMoveStart:$4}=ay.getState();$4?.(M_,sN),AF?.(sN)},onPanZoom:(M_,sN)=>{const{onViewportChange:AF,onMove:$4}=ay.getState();$4?.(M_,sN),AF?.(sN)},onPanZoomEnd:(M_,sN)=>{const{onViewportChangeEnd:AF,onMoveEnd:$4}=ay.getState();$4?.(M_,sN),AF?.(sN)}});const{x:O_,y:aE,zoom:P_}=V1.current.getViewport();return ay.setState({panZoom:V1.current,transform:[O_,aE,P_],domNode:ly.current.closest(".react-flow")}),()=>{V1.current?.destroy()}}},[]),reactExports.useEffect(()=>{V1.current?.update({onPaneContextMenu:ya,zoomOnScroll:ma,zoomOnPinch:ba,panOnScroll:va,panOnScrollSpeed:Ma,panOnScrollMode:wl,zoomOnDoubleClick:El,panOnDrag:Sl,zoomActivationKeyPressed:uE,preventScrolling:Ef,noPanClassName:pg,userSelectionActive:cy,noWheelClassName:Jf,lib:q1,onTransformChange:H1,connectionInProgress:r0,selectionOnDrag:yg,paneClickDistance:gg})},[ya,ma,ba,va,Ma,wl,El,Sl,uE,Ef,pg,cy,Jf,q1,H1,r0,yg,gg]),jsxRuntimeExports.jsx("div",{className:"react-flow__renderer",ref:ly,style:containerStyle,children:Zf})}const selector$i=ya=>({userSelectionActive:ya.userSelectionActive,userSelectionRect:ya.userSelectionRect});function UserSelection(){const{userSelectionActive:ya,userSelectionRect:ma}=useStore$1(selector$i,shallow$1);return ya&&ma?jsxRuntimeExports.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:ma.width,height:ma.height,transform:`translate(${ma.x}px, ${ma.y}px)`}}):null}const wrapHandler=(ya,ma)=>ba=>{ba.target===ma.current&&ya?.(ba)},selector$h=ya=>({userSelectionActive:ya.userSelectionActive,elementsSelectable:ya.elementsSelectable,connectionInProgress:ya.connection.inProgress,dragging:ya.paneDragging});function Pane({isSelecting:ya,selectionKeyPressed:ma,selectionMode:ba=SelectionMode.Full,panOnDrag:va,paneClickDistance:Ma,selectionOnDrag:wl,onSelectionStart:El,onSelectionEnd:Sl,onPaneClick:Cl,onPaneContextMenu:Mc,onPaneScroll:dp,onPaneMouseEnter:pp,onPaneMouseMove:hp,onPaneMouseLeave:Ef,children:Zf}){const Jf=useStoreApi(),{userSelectionActive:pg,elementsSelectable:hg,dragging:mg,connectionInProgress:gg}=useStore$1(selector$h,shallow$1),yg=hg&&(ya||pg),ay=reactExports.useRef(null),ly=reactExports.useRef(),cy=reactExports.useRef(new Set),q1=reactExports.useRef(new Set),r0=reactExports.useRef(!1),uE=AF=>{if(r0.current||gg){r0.current=!1;return}Cl?.(AF),Jf.getState().resetSelectedElements(),Jf.setState({nodesSelectionActive:!1})},V1=AF=>{if(Array.isArray(va)&&va?.includes(2)){AF.preventDefault();return}Mc?.(AF)},H1=dp?AF=>dp(AF):void 0,O_=AF=>{r0.current&&(AF.stopPropagation(),r0.current=!1)},aE=AF=>{const{domNode:$4}=Jf.getState();if(ly.current=$4?.getBoundingClientRect(),!ly.current)return;const cN=AF.target===ay.current;if(!cN&&!!AF.target.closest(".nokey")||!ya||!(wl&&cN||ma)||AF.button!==0||!AF.isPrimary)return;AF.target?.setPointerCapture?.(AF.pointerId),r0.current=!1;const{x:AQ,y:uN}=getEventPosition(AF.nativeEvent,ly.current);Jf.setState({userSelectionRect:{width:0,height:0,startX:AQ,startY:uN,x:AQ,y:uN}}),cN||(AF.stopPropagation(),AF.preventDefault())},P_=AF=>{const{userSelectionRect:$4,transform:cN,nodeLookup:R4,edgeLookup:k4,connectionLookup:AQ,triggerNodeChanges:uN,triggerEdgeChanges:uee,defaultEdgeOptions:$pe,resetSelectedElements:Ppe}=Jf.getState();if(!ly.current||!$4)return;const{x:e2e,y:Vpt}=getEventPosition(AF.nativeEvent,ly.current),{startX:Gpt,startY:xpe}=$4;if(!r0.current){const tmt=ma?0:Ma;if(Math.hypot(e2e-Gpt,Vpt-xpe)<=tmt)return;Ppe(),El?.(AF)}r0.current=!0;const wpe={startX:Gpt,startY:xpe,x:e2e<Gpt?e2e:Gpt,y:Vpt<xpe?Vpt:xpe,width:Math.abs(e2e-Gpt),height:Math.abs(Vpt-xpe)},t2e=cy.current,Q_e=q1.current;cy.current=new Set(getNodesInside(R4,wpe,cN,ba===SelectionMode.Partial,!0).map(tmt=>tmt.id)),q1.current=new Set;const Rht=$pe?.selectable??!0;for(const tmt of cy.current){const Sht=AQ.get(tmt);if(Sht)for(const{edgeId:bmt}of Sht.values()){const xmt=k4.get(bmt);xmt&&(xmt.selectable??Rht)&&q1.current.add(bmt)}}if(!areSetsEqual$1(t2e,cy.current)){const tmt=getSelectionChanges(R4,cy.current,!0);uN(tmt)}if(!areSetsEqual$1(Q_e,q1.current)){const tmt=getSelectionChanges(k4,q1.current);uee(tmt)}Jf.setState({userSelectionRect:wpe,userSelectionActive:!0,nodesSelectionActive:!1})},M_=AF=>{AF.button===0&&(AF.target?.releasePointerCapture?.(AF.pointerId),!pg&&AF.target===ay.current&&Jf.getState().userSelectionRect&&uE?.(AF),Jf.setState({userSelectionActive:!1,userSelectionRect:null}),r0.current&&(Sl?.(AF),Jf.setState({nodesSelectionActive:cy.current.size>0})))},sN=va===!0||Array.isArray(va)&&va.includes(0);return jsxRuntimeExports.jsxs("div",{className:cc(["react-flow__pane",{draggable:sN,dragging:mg,selection:ya}]),onClick:yg?void 0:wrapHandler(uE,ay),onContextMenu:wrapHandler(V1,ay),onWheel:wrapHandler(H1,ay),onPointerEnter:yg?void 0:pp,onPointerMove:yg?P_:hp,onPointerUp:yg?M_:void 0,onPointerDownCapture:yg?aE:void 0,onClickCapture:yg?O_:void 0,onPointerLeave:Ef,ref:ay,style:containerStyle,children:[Zf,jsxRuntimeExports.jsx(UserSelection,{})]})}function handleNodeClick({id:ya,store:ma,unselect:ba=!1,nodeRef:va}){const{addSelectedNodes:Ma,unselectNodesAndEdges:wl,multiSelectionActive:El,nodeLookup:Sl,onError:Cl}=ma.getState(),Mc=Sl.get(ya);if(!Mc){Cl?.("012",errorMessages$3.error012(ya));return}ma.setState({nodesSelectionActive:!1}),Mc.selected?(ba||Mc.selected&&El)&&(wl({nodes:[Mc],edges:[]}),requestAnimationFrame(()=>va?.current?.blur())):Ma([ya])}function useDrag({nodeRef:ya,disabled:ma=!1,noDragClassName:ba,handleSelector:va,nodeId:Ma,isSelectable:wl,nodeClickDistance:El}){const Sl=useStoreApi(),[Cl,Mc]=reactExports.useState(!1),dp=reactExports.useRef();return reactExports.useEffect(()=>{dp.current=XYDrag({getStoreItems:()=>Sl.getState(),onNodeMouseDown:pp=>{handleNodeClick({id:pp,store:Sl,nodeRef:ya})},onDragStart:()=>{Mc(!0)},onDragStop:()=>{Mc(!1)}})},[]),reactExports.useEffect(()=>{if(ma)dp.current?.destroy();else if(ya.current)return dp.current?.update({noDragClassName:ba,handleSelector:va,domNode:ya.current,isSelectable:wl,nodeId:Ma,nodeClickDistance:El}),()=>{dp.current?.destroy()}},[ba,va,ma,wl,ya,Ma]),Cl}const selectedAndDraggable=ya=>ma=>ma.selected&&(ma.draggable||ya&&typeof ma.draggable>"u");function useMoveSelectedNodes(){const ya=useStoreApi();return reactExports.useCallback(ba=>{const{nodeExtent:va,snapToGrid:Ma,snapGrid:wl,nodesDraggable:El,onError:Sl,updateNodePositions:Cl,nodeLookup:Mc,nodeOrigin:dp}=ya.getState(),pp=new Map,hp=selectedAndDraggable(El),Ef=Ma?wl[0]:5,Zf=Ma?wl[1]:5,Jf=ba.direction.x*Ef*ba.factor,pg=ba.direction.y*Zf*ba.factor;for(const[,hg]of Mc){if(!hp(hg))continue;let mg={x:hg.internals.positionAbsolute.x+Jf,y:hg.internals.positionAbsolute.y+pg};Ma&&(mg=snapPosition(mg,wl));const{position:gg,positionAbsolute:yg}=calculateNodePosition({nodeId:hg.id,nextPosition:mg,nodeLookup:Mc,nodeExtent:va,nodeOrigin:dp,onError:Sl});hg.position=gg,hg.internals.positionAbsolute=yg,pp.set(hg.id,hg)}Cl(pp)},[])}const NodeIdContext=reactExports.createContext(null),Provider$2=NodeIdContext.Provider;NodeIdContext.Consumer;const useNodeId=()=>reactExports.useContext(NodeIdContext),selector$g=ya=>({connectOnClick:ya.connectOnClick,noPanClassName:ya.noPanClassName,rfId:ya.rfId}),connectingSelector=(ya,ma,ba)=>va=>{const{connectionClickStartHandle:Ma,connectionMode:wl,connection:El}=va,{fromHandle:Sl,toHandle:Cl,isValid:Mc}=El,dp=Cl?.nodeId===ya&&Cl?.id===ma&&Cl?.type===ba;return{connectingFrom:Sl?.nodeId===ya&&Sl?.id===ma&&Sl?.type===ba,connectingTo:dp,clickConnecting:Ma?.nodeId===ya&&Ma?.id===ma&&Ma?.type===ba,isPossibleEndHandle:wl===ConnectionMode.Strict?Sl?.type!==ba:ya!==Sl?.nodeId||ma!==Sl?.id,connectionInProcess:!!Sl,clickConnectionInProcess:!!Ma,valid:dp&&Mc}};function HandleComponent({type:ya="source",position:ma=Position.Top,isValidConnection:ba,isConnectable:va=!0,isConnectableStart:Ma=!0,isConnectableEnd:wl=!0,id:El,onConnect:Sl,children:Cl,className:Mc,onMouseDown:dp,onTouchStart:pp,...hp},Ef){const Zf=El||null,Jf=ya==="target",pg=useStoreApi(),hg=useNodeId(),{connectOnClick:mg,noPanClassName:gg,rfId:yg}=useStore$1(selector$g,shallow$1),{connectingFrom:ay,connectingTo:ly,clickConnecting:cy,isPossibleEndHandle:q1,connectionInProcess:r0,clickConnectionInProcess:uE,valid:V1}=useStore$1(connectingSelector(hg,Zf,ya),shallow$1);hg||pg.getState().onError?.("010",errorMessages$3.error010());const H1=P_=>{const{defaultEdgeOptions:M_,onConnect:sN,hasDefaultEdges:AF}=pg.getState(),$4={...M_,...P_};if(AF){const{edges:cN,setEdges:R4}=pg.getState();R4(addEdge($4,cN))}sN?.($4),Sl?.($4)},O_=P_=>{if(!hg)return;const M_=isMouseEvent(P_.nativeEvent);if(Ma&&(M_&&P_.button===0||!M_)){const sN=pg.getState();XYHandle.onPointerDown(P_.nativeEvent,{handleDomNode:P_.currentTarget,autoPanOnConnect:sN.autoPanOnConnect,connectionMode:sN.connectionMode,connectionRadius:sN.connectionRadius,domNode:sN.domNode,nodeLookup:sN.nodeLookup,lib:sN.lib,isTarget:Jf,handleId:Zf,nodeId:hg,flowId:sN.rfId,panBy:sN.panBy,cancelConnection:sN.cancelConnection,onConnectStart:sN.onConnectStart,onConnectEnd:sN.onConnectEnd,updateConnection:sN.updateConnection,onConnect:H1,isValidConnection:ba||sN.isValidConnection,getTransform:()=>pg.getState().transform,getFromHandle:()=>pg.getState().connection.fromHandle,autoPanSpeed:sN.autoPanSpeed,dragThreshold:sN.connectionDragThreshold})}M_?dp?.(P_):pp?.(P_)},aE=P_=>{const{onClickConnectStart:M_,onClickConnectEnd:sN,connectionClickStartHandle:AF,connectionMode:$4,isValidConnection:cN,lib:R4,rfId:k4,nodeLookup:AQ,connection:uN}=pg.getState();if(!hg||!AF&&!Ma)return;if(!AF){M_?.(P_.nativeEvent,{nodeId:hg,handleId:Zf,handleType:ya}),pg.setState({connectionClickStartHandle:{nodeId:hg,type:ya,id:Zf}});return}const uee=getHostForElement(P_.target),$pe=ba||cN,{connection:Ppe,isValid:e2e}=XYHandle.isValid(P_.nativeEvent,{handle:{nodeId:hg,id:Zf,type:ya},connectionMode:$4,fromNodeId:AF.nodeId,fromHandleId:AF.id||null,fromType:AF.type,isValidConnection:$pe,flowId:k4,doc:uee,lib:R4,nodeLookup:AQ});e2e&&Ppe&&H1(Ppe);const Vpt=structuredClone(uN);delete Vpt.inProgress,Vpt.toPosition=Vpt.toHandle?Vpt.toHandle.position:null,sN?.(P_,Vpt),pg.setState({connectionClickStartHandle:null})};return jsxRuntimeExports.jsx("div",{"data-handleid":Zf,"data-nodeid":hg,"data-handlepos":ma,"data-id":`${yg}-${hg}-${Zf}-${ya}`,className:cc(["react-flow__handle",`react-flow__handle-${ma}`,"nodrag",gg,Mc,{source:!Jf,target:Jf,connectable:va,connectablestart:Ma,connectableend:wl,clickconnecting:cy,connectingfrom:ay,connectingto:ly,valid:V1,connectionindicator:va&&(!r0||q1)&&(r0||uE?wl:Ma)}]),onMouseDown:O_,onTouchStart:O_,onClick:mg?aE:void 0,ref:Ef,...hp,children:Cl})}const Handle=reactExports.memo(fixedForwardRef(HandleComponent));function InputNode({data:ya,isConnectable:ma,sourcePosition:ba=Position.Bottom}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[ya?.label,jsxRuntimeExports.jsx(Handle,{type:"source",position:ba,isConnectable:ma})]})}function DefaultNode({data:ya,isConnectable:ma,targetPosition:ba=Position.Top,sourcePosition:va=Position.Bottom}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:ba,isConnectable:ma}),ya?.label,jsxRuntimeExports.jsx(Handle,{type:"source",position:va,isConnectable:ma})]})}function GroupNode(){return null}function OutputNode({data:ya,isConnectable:ma,targetPosition:ba=Position.Top}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:ba,isConnectable:ma}),ya?.label]})}const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},builtinNodeTypes={input:InputNode,default:DefaultNode,output:OutputNode,group:GroupNode};function getNodeInlineStyleDimensions(ya){return ya.internals.handleBounds===void 0?{width:ya.width??ya.initialWidth??ya.style?.width,height:ya.height??ya.initialHeight??ya.style?.height}:{width:ya.width??ya.style?.width,height:ya.height??ya.style?.height}}const selector$f=ya=>{const{width:ma,height:ba,x:va,y:Ma}=getInternalNodesBounds(ya.nodeLookup,{filter:wl=>!!wl.selected});return{width:isNumeric(ma)?ma:null,height:isNumeric(ba)?ba:null,userSelectionActive:ya.userSelectionActive,transformString:`translate(${ya.transform[0]}px,${ya.transform[1]}px) scale(${ya.transform[2]}) translate(${va}px,${Ma}px)`}};function NodesSelection({onSelectionContextMenu:ya,noPanClassName:ma,disableKeyboardA11y:ba}){const va=useStoreApi(),{width:Ma,height:wl,transformString:El,userSelectionActive:Sl}=useStore$1(selector$f,shallow$1),Cl=useMoveSelectedNodes(),Mc=reactExports.useRef(null);if(reactExports.useEffect(()=>{ba||Mc.current?.focus({preventScroll:!0})},[ba]),useDrag({nodeRef:Mc}),Sl||!Ma||!wl)return null;const dp=ya?hp=>{const Ef=va.getState().nodes.filter(Zf=>Zf.selected);ya(hp,Ef)}:void 0,pp=hp=>{Object.prototype.hasOwnProperty.call(arrowKeyDiffs,hp.key)&&(hp.preventDefault(),Cl({direction:arrowKeyDiffs[hp.key],factor:hp.shiftKey?4:1}))};return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__nodesselection","react-flow__container",ma]),style:{transform:El},children:jsxRuntimeExports.jsx("div",{ref:Mc,className:"react-flow__nodesselection-rect",onContextMenu:dp,tabIndex:ba?void 0:-1,onKeyDown:ba?void 0:pp,style:{width:Ma,height:wl}})})}const win=typeof window<"u"?window:void 0,selector$e=ya=>({nodesSelectionActive:ya.nodesSelectionActive,userSelectionActive:ya.userSelectionActive});function FlowRendererComponent({children:ya,onPaneClick:ma,onPaneMouseEnter:ba,onPaneMouseMove:va,onPaneMouseLeave:Ma,onPaneContextMenu:wl,onPaneScroll:El,paneClickDistance:Sl,deleteKeyCode:Cl,selectionKeyCode:Mc,selectionOnDrag:dp,selectionMode:pp,onSelectionStart:hp,onSelectionEnd:Ef,multiSelectionKeyCode:Zf,panActivationKeyCode:Jf,zoomActivationKeyCode:pg,elementsSelectable:hg,zoomOnScroll:mg,zoomOnPinch:gg,panOnScroll:yg,panOnScrollSpeed:ay,panOnScrollMode:ly,zoomOnDoubleClick:cy,panOnDrag:q1,defaultViewport:r0,translateExtent:uE,minZoom:V1,maxZoom:H1,preventScrolling:O_,onSelectionContextMenu:aE,noWheelClassName:P_,noPanClassName:M_,disableKeyboardA11y:sN,onViewportChange:AF,isControlledViewport:$4}){const{nodesSelectionActive:cN,userSelectionActive:R4}=useStore$1(selector$e,shallow$1),k4=useKeyPress(Mc,{target:win}),AQ=useKeyPress(Jf,{target:win}),uN=AQ||q1,uee=AQ||yg,$pe=dp&&uN!==!0,Ppe=k4||R4||$pe;return useGlobalKeyHandler({deleteKeyCode:Cl,multiSelectionKeyCode:Zf}),jsxRuntimeExports.jsx(ZoomPane,{onPaneContextMenu:wl,elementsSelectable:hg,zoomOnScroll:mg,zoomOnPinch:gg,panOnScroll:uee,panOnScrollSpeed:ay,panOnScrollMode:ly,zoomOnDoubleClick:cy,panOnDrag:!k4&&uN,defaultViewport:r0,translateExtent:uE,minZoom:V1,maxZoom:H1,zoomActivationKeyCode:pg,preventScrolling:O_,noWheelClassName:P_,noPanClassName:M_,onViewportChange:AF,isControlledViewport:$4,paneClickDistance:Sl,selectionOnDrag:$pe,children:jsxRuntimeExports.jsxs(Pane,{onSelectionStart:hp,onSelectionEnd:Ef,onPaneClick:ma,onPaneMouseEnter:ba,onPaneMouseMove:va,onPaneMouseLeave:Ma,onPaneContextMenu:wl,onPaneScroll:El,panOnDrag:uN,isSelecting:!!Ppe,selectionMode:pp,selectionKeyPressed:k4,paneClickDistance:Sl,selectionOnDrag:$pe,children:[ya,cN&&jsxRuntimeExports.jsx(NodesSelection,{onSelectionContextMenu:aE,noPanClassName:M_,disableKeyboardA11y:sN})]})})}FlowRendererComponent.displayName="FlowRenderer";const FlowRenderer=reactExports.memo(FlowRendererComponent),selector$d=ya=>ma=>ya?getNodesInside(ma.nodeLookup,{x:0,y:0,width:ma.width,height:ma.height},ma.transform,!0).map(ba=>ba.id):Array.from(ma.nodeLookup.keys());function useVisibleNodeIds(ya){return useStore$1(reactExports.useCallback(selector$d(ya),[ya]),shallow$1)}const selector$c=ya=>ya.updateNodeInternals;function useResizeObserver$1(){const ya=useStore$1(selector$c),[ma]=reactExports.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(ba=>{const va=new Map;ba.forEach(Ma=>{const wl=Ma.target.getAttribute("data-id");va.set(wl,{id:wl,nodeElement:Ma.target,force:!0})}),ya(va)}));return reactExports.useEffect(()=>()=>{ma?.disconnect()},[ma]),ma}function useNodeObserver({node:ya,nodeType:ma,hasDimensions:ba,resizeObserver:va}){const Ma=useStoreApi(),wl=reactExports.useRef(null),El=reactExports.useRef(null),Sl=reactExports.useRef(ya.sourcePosition),Cl=reactExports.useRef(ya.targetPosition),Mc=reactExports.useRef(ma),dp=ba&&!!ya.internals.handleBounds;return reactExports.useEffect(()=>{wl.current&&!ya.hidden&&(!dp||El.current!==wl.current)&&(El.current&&va?.unobserve(El.current),va?.observe(wl.current),El.current=wl.current)},[dp,ya.hidden]),reactExports.useEffect(()=>()=>{El.current&&(va?.unobserve(El.current),El.current=null)},[]),reactExports.useEffect(()=>{if(wl.current){const pp=Mc.current!==ma,hp=Sl.current!==ya.sourcePosition,Ef=Cl.current!==ya.targetPosition;(pp||hp||Ef)&&(Mc.current=ma,Sl.current=ya.sourcePosition,Cl.current=ya.targetPosition,Ma.getState().updateNodeInternals(new Map([[ya.id,{id:ya.id,nodeElement:wl.current,force:!0}]])))}},[ya.id,ma,ya.sourcePosition,ya.targetPosition]),wl}function NodeWrapper({id:ya,onClick:ma,onMouseEnter:ba,onMouseMove:va,onMouseLeave:Ma,onContextMenu:wl,onDoubleClick:El,nodesDraggable:Sl,elementsSelectable:Cl,nodesConnectable:Mc,nodesFocusable:dp,resizeObserver:pp,noDragClassName:hp,noPanClassName:Ef,disableKeyboardA11y:Zf,rfId:Jf,nodeTypes:pg,nodeClickDistance:hg,onError:mg}){const{node:gg,internals:yg,isParent:ay}=useStore$1(e2e=>{const Vpt=e2e.nodeLookup.get(ya),Gpt=e2e.parentLookup.has(ya);return{node:Vpt,internals:Vpt.internals,isParent:Gpt}},shallow$1);let ly=gg.type||"default",cy=pg?.[ly]||builtinNodeTypes[ly];cy===void 0&&(mg?.("003",errorMessages$3.error003(ly)),ly="default",cy=pg?.default||builtinNodeTypes.default);const q1=!!(gg.draggable||Sl&&typeof gg.draggable>"u"),r0=!!(gg.selectable||Cl&&typeof gg.selectable>"u"),uE=!!(gg.connectable||Mc&&typeof gg.connectable>"u"),V1=!!(gg.focusable||dp&&typeof gg.focusable>"u"),H1=useStoreApi(),O_=nodeHasDimensions(gg),aE=useNodeObserver({node:gg,nodeType:ly,hasDimensions:O_,resizeObserver:pp}),P_=useDrag({nodeRef:aE,disabled:gg.hidden||!q1,noDragClassName:hp,handleSelector:gg.dragHandle,nodeId:ya,isSelectable:r0,nodeClickDistance:hg}),M_=useMoveSelectedNodes();if(gg.hidden)return null;const sN=getNodeDimensions(gg),AF=getNodeInlineStyleDimensions(gg),$4=r0||q1||ma||ba||va||Ma,cN=ba?e2e=>ba(e2e,{...yg.userNode}):void 0,R4=va?e2e=>va(e2e,{...yg.userNode}):void 0,k4=Ma?e2e=>Ma(e2e,{...yg.userNode}):void 0,AQ=wl?e2e=>wl(e2e,{...yg.userNode}):void 0,uN=El?e2e=>El(e2e,{...yg.userNode}):void 0,uee=e2e=>{const{selectNodesOnDrag:Vpt,nodeDragThreshold:Gpt}=H1.getState();r0&&(!Vpt||!q1||Gpt>0)&&handleNodeClick({id:ya,store:H1,nodeRef:aE}),ma&&ma(e2e,{...yg.userNode})},$pe=e2e=>{if(!(isInputDOMNode(e2e.nativeEvent)||Zf)){if(elementSelectionKeys.includes(e2e.key)&&r0){const Vpt=e2e.key==="Escape";handleNodeClick({id:ya,store:H1,unselect:Vpt,nodeRef:aE})}else if(q1&&gg.selected&&Object.prototype.hasOwnProperty.call(arrowKeyDiffs,e2e.key)){e2e.preventDefault();const{ariaLabelConfig:Vpt}=H1.getState();H1.setState({ariaLiveMessage:Vpt["node.a11yDescription.ariaLiveMessage"]({direction:e2e.key.replace("Arrow","").toLowerCase(),x:~~yg.positionAbsolute.x,y:~~yg.positionAbsolute.y})}),M_({direction:arrowKeyDiffs[e2e.key],factor:e2e.shiftKey?4:1})}}},Ppe=()=>{if(Zf||!aE.current?.matches(":focus-visible"))return;const{transform:e2e,width:Vpt,height:Gpt,autoPanOnNodeFocus:xpe,setCenter:wpe}=H1.getState();if(!xpe)return;getNodesInside(new Map([[ya,gg]]),{x:0,y:0,width:Vpt,height:Gpt},e2e,!0).length>0||wpe(gg.position.x+sN.width/2,gg.position.y+sN.height/2,{zoom:e2e[2]})};return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__node",`react-flow__node-${ly}`,{[Ef]:q1},gg.className,{selected:gg.selected,selectable:r0,parent:ay,draggable:q1,dragging:P_}]),ref:aE,style:{zIndex:yg.z,transform:`translate(${yg.positionAbsolute.x}px,${yg.positionAbsolute.y}px)`,pointerEvents:$4?"all":"none",visibility:O_?"visible":"hidden",...gg.style,...AF},"data-id":ya,"data-testid":`rf__node-${ya}`,onMouseEnter:cN,onMouseMove:R4,onMouseLeave:k4,onContextMenu:AQ,onClick:uee,onDoubleClick:uN,onKeyDown:V1?$pe:void 0,tabIndex:V1?0:void 0,onFocus:V1?Ppe:void 0,role:gg.ariaRole??(V1?"group":void 0),"aria-roledescription":"node","aria-describedby":Zf?void 0:`${ARIA_NODE_DESC_KEY}-${Jf}`,"aria-label":gg.ariaLabel,...gg.domAttributes,children:jsxRuntimeExports.jsx(Provider$2,{value:ya,children:jsxRuntimeExports.jsx(cy,{id:ya,data:gg.data,type:ly,positionAbsoluteX:yg.positionAbsolute.x,positionAbsoluteY:yg.positionAbsolute.y,selected:gg.selected??!1,selectable:r0,draggable:q1,deletable:gg.deletable??!0,isConnectable:uE,sourcePosition:gg.sourcePosition,targetPosition:gg.targetPosition,dragging:P_,dragHandle:gg.dragHandle,zIndex:yg.z,parentId:gg.parentId,...sN})})})}var NodeWrapper$1=reactExports.memo(NodeWrapper);const selector$b=ya=>({nodesDraggable:ya.nodesDraggable,nodesConnectable:ya.nodesConnectable,nodesFocusable:ya.nodesFocusable,elementsSelectable:ya.elementsSelectable,onError:ya.onError});function NodeRendererComponent(ya){const{nodesDraggable:ma,nodesConnectable:ba,nodesFocusable:va,elementsSelectable:Ma,onError:wl}=useStore$1(selector$b,shallow$1),El=useVisibleNodeIds(ya.onlyRenderVisibleElements),Sl=useResizeObserver$1();return jsxRuntimeExports.jsx("div",{className:"react-flow__nodes",style:containerStyle,children:El.map(Cl=>jsxRuntimeExports.jsx(NodeWrapper$1,{id:Cl,nodeTypes:ya.nodeTypes,nodeExtent:ya.nodeExtent,onClick:ya.onNodeClick,onMouseEnter:ya.onNodeMouseEnter,onMouseMove:ya.onNodeMouseMove,onMouseLeave:ya.onNodeMouseLeave,onContextMenu:ya.onNodeContextMenu,onDoubleClick:ya.onNodeDoubleClick,noDragClassName:ya.noDragClassName,noPanClassName:ya.noPanClassName,rfId:ya.rfId,disableKeyboardA11y:ya.disableKeyboardA11y,resizeObserver:Sl,nodesDraggable:ma,nodesConnectable:ba,nodesFocusable:va,elementsSelectable:Ma,nodeClickDistance:ya.nodeClickDistance,onError:wl},Cl))})}NodeRendererComponent.displayName="NodeRenderer";const NodeRenderer=reactExports.memo(NodeRendererComponent);function useVisibleEdgeIds(ya){return useStore$1(reactExports.useCallback(ba=>{if(!ya)return ba.edges.map(Ma=>Ma.id);const va=[];if(ba.width&&ba.height)for(const Ma of ba.edges){const wl=ba.nodeLookup.get(Ma.source),El=ba.nodeLookup.get(Ma.target);wl&&El&&isEdgeVisible({sourceNode:wl,targetNode:El,width:ba.width,height:ba.height,transform:ba.transform})&&va.push(Ma.id)}return va},[ya]),shallow$1)}const ArrowSymbol=({color:ya="none",strokeWidth:ma=1})=>{const ba={strokeWidth:ma,...ya&&{stroke:ya}};return jsxRuntimeExports.jsx("polyline",{className:"arrow",style:ba,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},ArrowClosedSymbol=({color:ya="none",strokeWidth:ma=1})=>{const ba={strokeWidth:ma,...ya&&{stroke:ya,fill:ya}};return jsxRuntimeExports.jsx("polyline",{className:"arrowclosed",style:ba,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},MarkerSymbols={[MarkerType.Arrow]:ArrowSymbol,[MarkerType.ArrowClosed]:ArrowClosedSymbol};function useMarkerSymbol(ya){const ma=useStoreApi();return reactExports.useMemo(()=>Object.prototype.hasOwnProperty.call(MarkerSymbols,ya)?MarkerSymbols[ya]:(ma.getState().onError?.("009",errorMessages$3.error009(ya)),null),[ya])}const Marker=({id:ya,type:ma,color:ba,width:va=12.5,height:Ma=12.5,markerUnits:wl="strokeWidth",strokeWidth:El,orient:Sl="auto-start-reverse"})=>{const Cl=useMarkerSymbol(ma);return Cl?jsxRuntimeExports.jsx("marker",{className:"react-flow__arrowhead",id:ya,markerWidth:`${va}`,markerHeight:`${Ma}`,viewBox:"-10 -10 20 20",markerUnits:wl,orient:Sl,refX:"0",refY:"0",children:jsxRuntimeExports.jsx(Cl,{color:ba,strokeWidth:El})}):null},MarkerDefinitions=({defaultColor:ya,rfId:ma})=>{const ba=useStore$1(wl=>wl.edges),va=useStore$1(wl=>wl.defaultEdgeOptions),Ma=reactExports.useMemo(()=>createMarkerIds(ba,{id:ma,defaultColor:ya,defaultMarkerStart:va?.markerStart,defaultMarkerEnd:va?.markerEnd}),[ba,va,ma,ya]);return Ma.length?jsxRuntimeExports.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:jsxRuntimeExports.jsx("defs",{children:Ma.map(wl=>jsxRuntimeExports.jsx(Marker,{id:wl.id,type:wl.type,color:wl.color,width:wl.width,height:wl.height,markerUnits:wl.markerUnits,strokeWidth:wl.strokeWidth,orient:wl.orient},wl.id))})}):null};MarkerDefinitions.displayName="MarkerDefinitions";var MarkerDefinitions$1=reactExports.memo(MarkerDefinitions);function EdgeTextComponent({x:ya,y:ma,label:ba,labelStyle:va,labelShowBg:Ma=!0,labelBgStyle:wl,labelBgPadding:El=[2,4],labelBgBorderRadius:Sl=2,children:Cl,className:Mc,...dp}){const[pp,hp]=reactExports.useState({x:1,y:0,width:0,height:0}),Ef=cc(["react-flow__edge-textwrapper",Mc]),Zf=reactExports.useRef(null);return reactExports.useEffect(()=>{if(Zf.current){const Jf=Zf.current.getBBox();hp({x:Jf.x,y:Jf.y,width:Jf.width,height:Jf.height})}},[ba]),ba?jsxRuntimeExports.jsxs("g",{transform:`translate(${ya-pp.width/2} ${ma-pp.height/2})`,className:Ef,visibility:pp.width?"visible":"hidden",...dp,children:[Ma&&jsxRuntimeExports.jsx("rect",{width:pp.width+2*El[0],x:-El[0],y:-El[1],height:pp.height+2*El[1],className:"react-flow__edge-textbg",style:wl,rx:Sl,ry:Sl}),jsxRuntimeExports.jsx("text",{className:"react-flow__edge-text",y:pp.height/2,dy:"0.3em",ref:Zf,style:va,children:ba}),Cl]}):null}EdgeTextComponent.displayName="EdgeText";const EdgeText=reactExports.memo(EdgeTextComponent);function BaseEdge({path:ya,labelX:ma,labelY:ba,label:va,labelStyle:Ma,labelShowBg:wl,labelBgStyle:El,labelBgPadding:Sl,labelBgBorderRadius:Cl,interactionWidth:Mc=20,...dp}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{...dp,d:ya,fill:"none",className:cc(["react-flow__edge-path",dp.className])}),Mc?jsxRuntimeExports.jsx("path",{d:ya,fill:"none",strokeOpacity:0,strokeWidth:Mc,className:"react-flow__edge-interaction"}):null,va&&isNumeric(ma)&&isNumeric(ba)?jsxRuntimeExports.jsx(EdgeText,{x:ma,y:ba,label:va,labelStyle:Ma,labelShowBg:wl,labelBgStyle:El,labelBgPadding:Sl,labelBgBorderRadius:Cl}):null]})}function getControl({pos:ya,x1:ma,y1:ba,x2:va,y2:Ma}){return ya===Position.Left||ya===Position.Right?[.5*(ma+va),ba]:[ma,.5*(ba+Ma)]}function getSimpleBezierPath({sourceX:ya,sourceY:ma,sourcePosition:ba=Position.Bottom,targetX:va,targetY:Ma,targetPosition:wl=Position.Top}){const[El,Sl]=getControl({pos:ba,x1:ya,y1:ma,x2:va,y2:Ma}),[Cl,Mc]=getControl({pos:wl,x1:va,y1:Ma,x2:ya,y2:ma}),[dp,pp,hp,Ef]=getBezierEdgeCenter({sourceX:ya,sourceY:ma,targetX:va,targetY:Ma,sourceControlX:El,sourceControlY:Sl,targetControlX:Cl,targetControlY:Mc});return[`M${ya},${ma} C${El},${Sl} ${Cl},${Mc} ${va},${Ma}`,dp,pp,hp,Ef]}function createSimpleBezierEdge(ya){return reactExports.memo(({id:ma,sourceX:ba,sourceY:va,targetX:Ma,targetY:wl,sourcePosition:El,targetPosition:Sl,label:Cl,labelStyle:Mc,labelShowBg:dp,labelBgStyle:pp,labelBgPadding:hp,labelBgBorderRadius:Ef,style:Zf,markerEnd:Jf,markerStart:pg,interactionWidth:hg})=>{const[mg,gg,yg]=getSimpleBezierPath({sourceX:ba,sourceY:va,sourcePosition:El,targetX:Ma,targetY:wl,targetPosition:Sl}),ay=ya.isInternal?void 0:ma;return jsxRuntimeExports.jsx(BaseEdge,{id:ay,path:mg,labelX:gg,labelY:yg,label:Cl,labelStyle:Mc,labelShowBg:dp,labelBgStyle:pp,labelBgPadding:hp,labelBgBorderRadius:Ef,style:Zf,markerEnd:Jf,markerStart:pg,interactionWidth:hg})})}const SimpleBezierEdge=createSimpleBezierEdge({isInternal:!1}),SimpleBezierEdgeInternal=createSimpleBezierEdge({isInternal:!0});SimpleBezierEdge.displayName="SimpleBezierEdge";SimpleBezierEdgeInternal.displayName="SimpleBezierEdgeInternal";function createSmoothStepEdge(ya){return reactExports.memo(({id:ma,sourceX:ba,sourceY:va,targetX:Ma,targetY:wl,label:El,labelStyle:Sl,labelShowBg:Cl,labelBgStyle:Mc,labelBgPadding:dp,labelBgBorderRadius:pp,style:hp,sourcePosition:Ef=Position.Bottom,targetPosition:Zf=Position.Top,markerEnd:Jf,markerStart:pg,pathOptions:hg,interactionWidth:mg})=>{const[gg,yg,ay]=getSmoothStepPath({sourceX:ba,sourceY:va,sourcePosition:Ef,targetX:Ma,targetY:wl,targetPosition:Zf,borderRadius:hg?.borderRadius,offset:hg?.offset,stepPosition:hg?.stepPosition}),ly=ya.isInternal?void 0:ma;return jsxRuntimeExports.jsx(BaseEdge,{id:ly,path:gg,labelX:yg,labelY:ay,label:El,labelStyle:Sl,labelShowBg:Cl,labelBgStyle:Mc,labelBgPadding:dp,labelBgBorderRadius:pp,style:hp,markerEnd:Jf,markerStart:pg,interactionWidth:mg})})}const SmoothStepEdge=createSmoothStepEdge({isInternal:!1}),SmoothStepEdgeInternal=createSmoothStepEdge({isInternal:!0});SmoothStepEdge.displayName="SmoothStepEdge";SmoothStepEdgeInternal.displayName="SmoothStepEdgeInternal";function createStepEdge(ya){return reactExports.memo(({id:ma,...ba})=>{const va=ya.isInternal?void 0:ma;return jsxRuntimeExports.jsx(SmoothStepEdge,{...ba,id:va,pathOptions:reactExports.useMemo(()=>({borderRadius:0,offset:ba.pathOptions?.offset}),[ba.pathOptions?.offset])})})}const StepEdge=createStepEdge({isInternal:!1}),StepEdgeInternal=createStepEdge({isInternal:!0});StepEdge.displayName="StepEdge";StepEdgeInternal.displayName="StepEdgeInternal";function createStraightEdge(ya){return reactExports.memo(({id:ma,sourceX:ba,sourceY:va,targetX:Ma,targetY:wl,label:El,labelStyle:Sl,labelShowBg:Cl,labelBgStyle:Mc,labelBgPadding:dp,labelBgBorderRadius:pp,style:hp,markerEnd:Ef,markerStart:Zf,interactionWidth:Jf})=>{const[pg,hg,mg]=getStraightPath({sourceX:ba,sourceY:va,targetX:Ma,targetY:wl}),gg=ya.isInternal?void 0:ma;return jsxRuntimeExports.jsx(BaseEdge,{id:gg,path:pg,labelX:hg,labelY:mg,label:El,labelStyle:Sl,labelShowBg:Cl,labelBgStyle:Mc,labelBgPadding:dp,labelBgBorderRadius:pp,style:hp,markerEnd:Ef,markerStart:Zf,interactionWidth:Jf})})}const StraightEdge=createStraightEdge({isInternal:!1}),StraightEdgeInternal=createStraightEdge({isInternal:!0});StraightEdge.displayName="StraightEdge";StraightEdgeInternal.displayName="StraightEdgeInternal";function createBezierEdge(ya){return reactExports.memo(({id:ma,sourceX:ba,sourceY:va,targetX:Ma,targetY:wl,sourcePosition:El=Position.Bottom,targetPosition:Sl=Position.Top,label:Cl,labelStyle:Mc,labelShowBg:dp,labelBgStyle:pp,labelBgPadding:hp,labelBgBorderRadius:Ef,style:Zf,markerEnd:Jf,markerStart:pg,pathOptions:hg,interactionWidth:mg})=>{const[gg,yg,ay]=getBezierPath({sourceX:ba,sourceY:va,sourcePosition:El,targetX:Ma,targetY:wl,targetPosition:Sl,curvature:hg?.curvature}),ly=ya.isInternal?void 0:ma;return jsxRuntimeExports.jsx(BaseEdge,{id:ly,path:gg,labelX:yg,labelY:ay,label:Cl,labelStyle:Mc,labelShowBg:dp,labelBgStyle:pp,labelBgPadding:hp,labelBgBorderRadius:Ef,style:Zf,markerEnd:Jf,markerStart:pg,interactionWidth:mg})})}const BezierEdge=createBezierEdge({isInternal:!1}),BezierEdgeInternal=createBezierEdge({isInternal:!0});BezierEdge.displayName="BezierEdge";BezierEdgeInternal.displayName="BezierEdgeInternal";const builtinEdgeTypes={default:BezierEdgeInternal,straight:StraightEdgeInternal,step:StepEdgeInternal,smoothstep:SmoothStepEdgeInternal,simplebezier:SimpleBezierEdgeInternal},nullPosition={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},shiftX=(ya,ma,ba)=>ba===Position.Left?ya-ma:ba===Position.Right?ya+ma:ya,shiftY=(ya,ma,ba)=>ba===Position.Top?ya-ma:ba===Position.Bottom?ya+ma:ya,EdgeUpdaterClassName="react-flow__edgeupdater";function EdgeAnchor({position:ya,centerX:ma,centerY:ba,radius:va=10,onMouseDown:Ma,onMouseEnter:wl,onMouseOut:El,type:Sl}){return jsxRuntimeExports.jsx("circle",{onMouseDown:Ma,onMouseEnter:wl,onMouseOut:El,className:cc([EdgeUpdaterClassName,`${EdgeUpdaterClassName}-${Sl}`]),cx:shiftX(ma,va,ya),cy:shiftY(ba,va,ya),r:va,stroke:"transparent",fill:"transparent"})}function EdgeUpdateAnchors({isReconnectable:ya,reconnectRadius:ma,edge:ba,sourceX:va,sourceY:Ma,targetX:wl,targetY:El,sourcePosition:Sl,targetPosition:Cl,onReconnect:Mc,onReconnectStart:dp,onReconnectEnd:pp,setReconnecting:hp,setUpdateHover:Ef}){const Zf=useStoreApi(),Jf=(yg,ay)=>{if(yg.button!==0)return;const{autoPanOnConnect:ly,domNode:cy,isValidConnection:q1,connectionMode:r0,connectionRadius:uE,lib:V1,onConnectStart:H1,onConnectEnd:O_,cancelConnection:aE,nodeLookup:P_,rfId:M_,panBy:sN,updateConnection:AF}=Zf.getState(),$4=ay.type==="target",cN=(AQ,uN)=>{hp(!1),pp?.(AQ,ba,ay.type,uN)},R4=AQ=>Mc?.(ba,AQ),k4=(AQ,uN)=>{hp(!0),dp?.(yg,ba,ay.type),H1?.(AQ,uN)};XYHandle.onPointerDown(yg.nativeEvent,{autoPanOnConnect:ly,connectionMode:r0,connectionRadius:uE,domNode:cy,handleId:ay.id,nodeId:ay.nodeId,nodeLookup:P_,isTarget:$4,edgeUpdaterType:ay.type,lib:V1,flowId:M_,cancelConnection:aE,panBy:sN,isValidConnection:q1,onConnect:R4,onConnectStart:k4,onConnectEnd:O_,onReconnectEnd:cN,updateConnection:AF,getTransform:()=>Zf.getState().transform,getFromHandle:()=>Zf.getState().connection.fromHandle,dragThreshold:Zf.getState().connectionDragThreshold,handleDomNode:yg.currentTarget})},pg=yg=>Jf(yg,{nodeId:ba.target,id:ba.targetHandle??null,type:"target"}),hg=yg=>Jf(yg,{nodeId:ba.source,id:ba.sourceHandle??null,type:"source"}),mg=()=>Ef(!0),gg=()=>Ef(!1);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[(ya===!0||ya==="source")&&jsxRuntimeExports.jsx(EdgeAnchor,{position:Sl,centerX:va,centerY:Ma,radius:ma,onMouseDown:pg,onMouseEnter:mg,onMouseOut:gg,type:"source"}),(ya===!0||ya==="target")&&jsxRuntimeExports.jsx(EdgeAnchor,{position:Cl,centerX:wl,centerY:El,radius:ma,onMouseDown:hg,onMouseEnter:mg,onMouseOut:gg,type:"target"})]})}function EdgeWrapper({id:ya,edgesFocusable:ma,edgesReconnectable:ba,elementsSelectable:va,onClick:Ma,onDoubleClick:wl,onContextMenu:El,onMouseEnter:Sl,onMouseMove:Cl,onMouseLeave:Mc,reconnectRadius:dp,onReconnect:pp,onReconnectStart:hp,onReconnectEnd:Ef,rfId:Zf,edgeTypes:Jf,noPanClassName:pg,onError:hg,disableKeyboardA11y:mg}){let gg=useStore$1(wpe=>wpe.edgeLookup.get(ya));const yg=useStore$1(wpe=>wpe.defaultEdgeOptions);gg=yg?{...yg,...gg}:gg;let ay=gg.type||"default",ly=Jf?.[ay]||builtinEdgeTypes[ay];ly===void 0&&(hg?.("011",errorMessages$3.error011(ay)),ay="default",ly=Jf?.default||builtinEdgeTypes.default);const cy=!!(gg.focusable||ma&&typeof gg.focusable>"u"),q1=typeof pp<"u"&&(gg.reconnectable||ba&&typeof gg.reconnectable>"u"),r0=!!(gg.selectable||va&&typeof gg.selectable>"u"),uE=reactExports.useRef(null),[V1,H1]=reactExports.useState(!1),[O_,aE]=reactExports.useState(!1),P_=useStoreApi(),{zIndex:M_,sourceX:sN,sourceY:AF,targetX:$4,targetY:cN,sourcePosition:R4,targetPosition:k4}=useStore$1(reactExports.useCallback(wpe=>{const t2e=wpe.nodeLookup.get(gg.source),Q_e=wpe.nodeLookup.get(gg.target);if(!t2e||!Q_e)return{zIndex:gg.zIndex,...nullPosition};const Rht=getEdgePosition({id:ya,sourceNode:t2e,targetNode:Q_e,sourceHandle:gg.sourceHandle||null,targetHandle:gg.targetHandle||null,connectionMode:wpe.connectionMode,onError:hg});return{zIndex:getElevatedEdgeZIndex({selected:gg.selected,zIndex:gg.zIndex,sourceNode:t2e,targetNode:Q_e,elevateOnSelect:wpe.elevateEdgesOnSelect,zIndexMode:wpe.zIndexMode}),...Rht||nullPosition}},[gg.source,gg.target,gg.sourceHandle,gg.targetHandle,gg.selected,gg.zIndex]),shallow$1),AQ=reactExports.useMemo(()=>gg.markerStart?`url('#${getMarkerId(gg.markerStart,Zf)}')`:void 0,[gg.markerStart,Zf]),uN=reactExports.useMemo(()=>gg.markerEnd?`url('#${getMarkerId(gg.markerEnd,Zf)}')`:void 0,[gg.markerEnd,Zf]);if(gg.hidden||sN===null||AF===null||$4===null||cN===null)return null;const uee=wpe=>{const{addSelectedEdges:t2e,unselectNodesAndEdges:Q_e,multiSelectionActive:Rht}=P_.getState();r0&&(P_.setState({nodesSelectionActive:!1}),gg.selected&&Rht?(Q_e({nodes:[],edges:[gg]}),uE.current?.blur()):t2e([ya])),Ma&&Ma(wpe,gg)},$pe=wl?wpe=>{wl(wpe,{...gg})}:void 0,Ppe=El?wpe=>{El(wpe,{...gg})}:void 0,e2e=Sl?wpe=>{Sl(wpe,{...gg})}:void 0,Vpt=Cl?wpe=>{Cl(wpe,{...gg})}:void 0,Gpt=Mc?wpe=>{Mc(wpe,{...gg})}:void 0,xpe=wpe=>{if(!mg&&elementSelectionKeys.includes(wpe.key)&&r0){const{unselectNodesAndEdges:t2e,addSelectedEdges:Q_e}=P_.getState();wpe.key==="Escape"?(uE.current?.blur(),t2e({edges:[gg]})):Q_e([ya])}};return jsxRuntimeExports.jsx("svg",{style:{zIndex:M_},children:jsxRuntimeExports.jsxs("g",{className:cc(["react-flow__edge",`react-flow__edge-${ay}`,gg.className,pg,{selected:gg.selected,animated:gg.animated,inactive:!r0&&!Ma,updating:V1,selectable:r0}]),onClick:uee,onDoubleClick:$pe,onContextMenu:Ppe,onMouseEnter:e2e,onMouseMove:Vpt,onMouseLeave:Gpt,onKeyDown:cy?xpe:void 0,tabIndex:cy?0:void 0,role:gg.ariaRole??(cy?"group":"img"),"aria-roledescription":"edge","data-id":ya,"data-testid":`rf__edge-${ya}`,"aria-label":gg.ariaLabel===null?void 0:gg.ariaLabel||`Edge from ${gg.source} to ${gg.target}`,"aria-describedby":cy?`${ARIA_EDGE_DESC_KEY}-${Zf}`:void 0,ref:uE,...gg.domAttributes,children:[!O_&&jsxRuntimeExports.jsx(ly,{id:ya,source:gg.source,target:gg.target,type:gg.type,selected:gg.selected,animated:gg.animated,selectable:r0,deletable:gg.deletable??!0,label:gg.label,labelStyle:gg.labelStyle,labelShowBg:gg.labelShowBg,labelBgStyle:gg.labelBgStyle,labelBgPadding:gg.labelBgPadding,labelBgBorderRadius:gg.labelBgBorderRadius,sourceX:sN,sourceY:AF,targetX:$4,targetY:cN,sourcePosition:R4,targetPosition:k4,data:gg.data,style:gg.style,sourceHandleId:gg.sourceHandle,targetHandleId:gg.targetHandle,markerStart:AQ,markerEnd:uN,pathOptions:"pathOptions"in gg?gg.pathOptions:void 0,interactionWidth:gg.interactionWidth}),q1&&jsxRuntimeExports.jsx(EdgeUpdateAnchors,{edge:gg,isReconnectable:q1,reconnectRadius:dp,onReconnect:pp,onReconnectStart:hp,onReconnectEnd:Ef,sourceX:sN,sourceY:AF,targetX:$4,targetY:cN,sourcePosition:R4,targetPosition:k4,setUpdateHover:H1,setReconnecting:aE})]})})}var EdgeWrapper$1=reactExports.memo(EdgeWrapper);const selector$a=ya=>({edgesFocusable:ya.edgesFocusable,edgesReconnectable:ya.edgesReconnectable,elementsSelectable:ya.elementsSelectable,connectionMode:ya.connectionMode,onError:ya.onError});function EdgeRendererComponent({defaultMarkerColor:ya,onlyRenderVisibleElements:ma,rfId:ba,edgeTypes:va,noPanClassName:Ma,onReconnect:wl,onEdgeContextMenu:El,onEdgeMouseEnter:Sl,onEdgeMouseMove:Cl,onEdgeMouseLeave:Mc,onEdgeClick:dp,reconnectRadius:pp,onEdgeDoubleClick:hp,onReconnectStart:Ef,onReconnectEnd:Zf,disableKeyboardA11y:Jf}){const{edgesFocusable:pg,edgesReconnectable:hg,elementsSelectable:mg,onError:gg}=useStore$1(selector$a,shallow$1),yg=useVisibleEdgeIds(ma);return jsxRuntimeExports.jsxs("div",{className:"react-flow__edges",children:[jsxRuntimeExports.jsx(MarkerDefinitions$1,{defaultColor:ya,rfId:ba}),yg.map(ay=>jsxRuntimeExports.jsx(EdgeWrapper$1,{id:ay,edgesFocusable:pg,edgesReconnectable:hg,elementsSelectable:mg,noPanClassName:Ma,onReconnect:wl,onContextMenu:El,onMouseEnter:Sl,onMouseMove:Cl,onMouseLeave:Mc,onClick:dp,reconnectRadius:pp,onDoubleClick:hp,onReconnectStart:Ef,onReconnectEnd:Zf,rfId:ba,onError:gg,edgeTypes:va,disableKeyboardA11y:Jf},ay))]})}EdgeRendererComponent.displayName="EdgeRenderer";const EdgeRenderer=reactExports.memo(EdgeRendererComponent),selector$9=ya=>`translate(${ya.transform[0]}px,${ya.transform[1]}px) scale(${ya.transform[2]})`;function Viewport({children:ya}){const ma=useStore$1(selector$9);return jsxRuntimeExports.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:ma},children:ya})}function useOnInitHandler(ya){const ma=useReactFlow(),ba=reactExports.useRef(!1);reactExports.useEffect(()=>{!ba.current&&ma.viewportInitialized&&ya&&(setTimeout(()=>ya(ma),1),ba.current=!0)},[ya,ma.viewportInitialized])}const selector$8=ya=>ya.panZoom?.syncViewport;function useViewportSync(ya){const ma=useStore$1(selector$8),ba=useStoreApi();return reactExports.useEffect(()=>{ya&&(ma?.(ya),ba.setState({transform:[ya.x,ya.y,ya.zoom]}))},[ya,ma]),null}function storeSelector$1(ya){return ya.connection.inProgress?{...ya.connection,to:pointToRendererPoint(ya.connection.to,ya.transform)}:{...ya.connection}}function getSelector(ya){return storeSelector$1}function useConnection(ya){const ma=getSelector();return useStore$1(ma,shallow$1)}const selector$7=ya=>({nodesConnectable:ya.nodesConnectable,isValid:ya.connection.isValid,inProgress:ya.connection.inProgress,width:ya.width,height:ya.height});function ConnectionLineWrapper({containerStyle:ya,style:ma,type:ba,component:va}){const{nodesConnectable:Ma,width:wl,height:El,isValid:Sl,inProgress:Cl}=useStore$1(selector$7,shallow$1);return!(wl&&Ma&&Cl)?null:jsxRuntimeExports.jsx("svg",{style:ya,width:wl,height:El,className:"react-flow__connectionline react-flow__container",children:jsxRuntimeExports.jsx("g",{className:cc(["react-flow__connection",getConnectionStatus(Sl)]),children:jsxRuntimeExports.jsx(ConnectionLine,{style:ma,type:ba,CustomComponent:va,isValid:Sl})})})}const ConnectionLine=({style:ya,type:ma=ConnectionLineType.Bezier,CustomComponent:ba,isValid:va})=>{const{inProgress:Ma,from:wl,fromNode:El,fromHandle:Sl,fromPosition:Cl,to:Mc,toNode:dp,toHandle:pp,toPosition:hp,pointer:Ef}=useConnection();if(!Ma)return;if(ba)return jsxRuntimeExports.jsx(ba,{connectionLineType:ma,connectionLineStyle:ya,fromNode:El,fromHandle:Sl,fromX:wl.x,fromY:wl.y,toX:Mc.x,toY:Mc.y,fromPosition:Cl,toPosition:hp,connectionStatus:getConnectionStatus(va),toNode:dp,toHandle:pp,pointer:Ef});let Zf="";const Jf={sourceX:wl.x,sourceY:wl.y,sourcePosition:Cl,targetX:Mc.x,targetY:Mc.y,targetPosition:hp};switch(ma){case ConnectionLineType.Bezier:[Zf]=getBezierPath(Jf);break;case ConnectionLineType.SimpleBezier:[Zf]=getSimpleBezierPath(Jf);break;case ConnectionLineType.Step:[Zf]=getSmoothStepPath({...Jf,borderRadius:0});break;case ConnectionLineType.SmoothStep:[Zf]=getSmoothStepPath(Jf);break;default:[Zf]=getStraightPath(Jf)}return jsxRuntimeExports.jsx("path",{d:Zf,fill:"none",className:"react-flow__connection-path",style:ya})};ConnectionLine.displayName="ConnectionLine";const emptyTypes={};function useNodeOrEdgeTypesWarning(ya=emptyTypes){reactExports.useRef(ya),useStoreApi(),reactExports.useEffect(()=>{},[ya])}function useStylesLoadedWarning(){useStoreApi(),reactExports.useRef(!1),reactExports.useEffect(()=>{},[])}function GraphViewComponent({nodeTypes:ya,edgeTypes:ma,onInit:ba,onNodeClick:va,onEdgeClick:Ma,onNodeDoubleClick:wl,onEdgeDoubleClick:El,onNodeMouseEnter:Sl,onNodeMouseMove:Cl,onNodeMouseLeave:Mc,onNodeContextMenu:dp,onSelectionContextMenu:pp,onSelectionStart:hp,onSelectionEnd:Ef,connectionLineType:Zf,connectionLineStyle:Jf,connectionLineComponent:pg,connectionLineContainerStyle:hg,selectionKeyCode:mg,selectionOnDrag:gg,selectionMode:yg,multiSelectionKeyCode:ay,panActivationKeyCode:ly,zoomActivationKeyCode:cy,deleteKeyCode:q1,onlyRenderVisibleElements:r0,elementsSelectable:uE,defaultViewport:V1,translateExtent:H1,minZoom:O_,maxZoom:aE,preventScrolling:P_,defaultMarkerColor:M_,zoomOnScroll:sN,zoomOnPinch:AF,panOnScroll:$4,panOnScrollSpeed:cN,panOnScrollMode:R4,zoomOnDoubleClick:k4,panOnDrag:AQ,onPaneClick:uN,onPaneMouseEnter:uee,onPaneMouseMove:$pe,onPaneMouseLeave:Ppe,onPaneScroll:e2e,onPaneContextMenu:Vpt,paneClickDistance:Gpt,nodeClickDistance:xpe,onEdgeContextMenu:wpe,onEdgeMouseEnter:t2e,onEdgeMouseMove:Q_e,onEdgeMouseLeave:Rht,reconnectRadius:tmt,onReconnect:Sht,onReconnectStart:bmt,onReconnectEnd:xmt,noDragClassName:Rmt,noWheelClassName:mmt,noPanClassName:rmt,disableKeyboardA11y:pmt,nodeExtent:Tmt,rfId:Cmt,viewport:jmt,onViewportChange:Zpt}){return useNodeOrEdgeTypesWarning(ya),useNodeOrEdgeTypesWarning(ma),useStylesLoadedWarning(),useOnInitHandler(ba),useViewportSync(jmt),jsxRuntimeExports.jsx(FlowRenderer,{onPaneClick:uN,onPaneMouseEnter:uee,onPaneMouseMove:$pe,onPaneMouseLeave:Ppe,onPaneContextMenu:Vpt,onPaneScroll:e2e,paneClickDistance:Gpt,deleteKeyCode:q1,selectionKeyCode:mg,selectionOnDrag:gg,selectionMode:yg,onSelectionStart:hp,onSelectionEnd:Ef,multiSelectionKeyCode:ay,panActivationKeyCode:ly,zoomActivationKeyCode:cy,elementsSelectable:uE,zoomOnScroll:sN,zoomOnPinch:AF,zoomOnDoubleClick:k4,panOnScroll:$4,panOnScrollSpeed:cN,panOnScrollMode:R4,panOnDrag:AQ,defaultViewport:V1,translateExtent:H1,minZoom:O_,maxZoom:aE,onSelectionContextMenu:pp,preventScrolling:P_,noDragClassName:Rmt,noWheelClassName:mmt,noPanClassName:rmt,disableKeyboardA11y:pmt,onViewportChange:Zpt,isControlledViewport:!!jmt,children:jsxRuntimeExports.jsxs(Viewport,{children:[jsxRuntimeExports.jsx(EdgeRenderer,{edgeTypes:ma,onEdgeClick:Ma,onEdgeDoubleClick:El,onReconnect:Sht,onReconnectStart:bmt,onReconnectEnd:xmt,onlyRenderVisibleElements:r0,onEdgeContextMenu:wpe,onEdgeMouseEnter:t2e,onEdgeMouseMove:Q_e,onEdgeMouseLeave:Rht,reconnectRadius:tmt,defaultMarkerColor:M_,noPanClassName:rmt,disableKeyboardA11y:pmt,rfId:Cmt}),jsxRuntimeExports.jsx(ConnectionLineWrapper,{style:Jf,type:Zf,component:pg,containerStyle:hg}),jsxRuntimeExports.jsx("div",{className:"react-flow__edgelabel-renderer"}),jsxRuntimeExports.jsx(NodeRenderer,{nodeTypes:ya,onNodeClick:va,onNodeDoubleClick:wl,onNodeMouseEnter:Sl,onNodeMouseMove:Cl,onNodeMouseLeave:Mc,onNodeContextMenu:dp,nodeClickDistance:xpe,onlyRenderVisibleElements:r0,noPanClassName:rmt,noDragClassName:Rmt,disableKeyboardA11y:pmt,nodeExtent:Tmt,rfId:Cmt}),jsxRuntimeExports.jsx("div",{className:"react-flow__viewport-portal"})]})})}GraphViewComponent.displayName="GraphView";const GraphView=reactExports.memo(GraphViewComponent),getInitialState$1=({nodes:ya,edges:ma,defaultNodes:ba,defaultEdges:va,width:Ma,height:wl,fitView:El,fitViewOptions:Sl,minZoom:Cl=.5,maxZoom:Mc=2,nodeOrigin:dp,nodeExtent:pp,zIndexMode:hp="basic"}={})=>{const Ef=new Map,Zf=new Map,Jf=new Map,pg=new Map,hg=va??ma??[],mg=ba??ya??[],gg=dp??[0,0],yg=pp??infiniteExtent;updateConnectionLookup(Jf,pg,hg);const ay=adoptUserNodes(mg,Ef,Zf,{nodeOrigin:gg,nodeExtent:yg,zIndexMode:hp});let ly=[0,0,1];if(El&&Ma&&wl){const cy=getInternalNodesBounds(Ef,{filter:V1=>!!((V1.width||V1.initialWidth)&&(V1.height||V1.initialHeight))}),{x:q1,y:r0,zoom:uE}=getViewportForBounds(cy,Ma,wl,Cl,Mc,Sl?.padding??.1);ly=[q1,r0,uE]}return{rfId:"1",width:Ma??0,height:wl??0,transform:ly,nodes:mg,nodesInitialized:ay,nodeLookup:Ef,parentLookup:Zf,edges:hg,edgeLookup:pg,connectionLookup:Jf,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:ba!==void 0,hasDefaultEdges:va!==void 0,panZoom:null,minZoom:Cl,maxZoom:Mc,translateExtent:infiniteExtent,nodeExtent:yg,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:gg,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:El??!1,fitViewOptions:Sl,fitViewResolver:null,connection:{...initialConnection},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:devWarn,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:defaultAriaLabelConfig,zIndexMode:hp,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},createStore=({nodes:ya,edges:ma,defaultNodes:ba,defaultEdges:va,width:Ma,height:wl,fitView:El,fitViewOptions:Sl,minZoom:Cl,maxZoom:Mc,nodeOrigin:dp,nodeExtent:pp,zIndexMode:hp})=>createWithEqualityFn((Ef,Zf)=>{async function Jf(){const{nodeLookup:pg,panZoom:hg,fitViewOptions:mg,fitViewResolver:gg,width:yg,height:ay,minZoom:ly,maxZoom:cy}=Zf();hg&&(await fitViewport({nodes:pg,width:yg,height:ay,panZoom:hg,minZoom:ly,maxZoom:cy},mg),gg?.resolve(!0),Ef({fitViewResolver:null}))}return{...getInitialState$1({nodes:ya,edges:ma,width:Ma,height:wl,fitView:El,fitViewOptions:Sl,minZoom:Cl,maxZoom:Mc,nodeOrigin:dp,nodeExtent:pp,defaultNodes:ba,defaultEdges:va,zIndexMode:hp}),setNodes:pg=>{const{nodeLookup:hg,parentLookup:mg,nodeOrigin:gg,elevateNodesOnSelect:yg,fitViewQueued:ay,zIndexMode:ly}=Zf(),cy=adoptUserNodes(pg,hg,mg,{nodeOrigin:gg,nodeExtent:pp,elevateNodesOnSelect:yg,checkEquality:!0,zIndexMode:ly});ay&&cy?(Jf(),Ef({nodes:pg,nodesInitialized:cy,fitViewQueued:!1,fitViewOptions:void 0})):Ef({nodes:pg,nodesInitialized:cy})},setEdges:pg=>{const{connectionLookup:hg,edgeLookup:mg}=Zf();updateConnectionLookup(hg,mg,pg),Ef({edges:pg})},setDefaultNodesAndEdges:(pg,hg)=>{if(pg){const{setNodes:mg}=Zf();mg(pg),Ef({hasDefaultNodes:!0})}if(hg){const{setEdges:mg}=Zf();mg(hg),Ef({hasDefaultEdges:!0})}},updateNodeInternals:pg=>{const{triggerNodeChanges:hg,nodeLookup:mg,parentLookup:gg,domNode:yg,nodeOrigin:ay,nodeExtent:ly,debug:cy,fitViewQueued:q1,zIndexMode:r0}=Zf(),{changes:uE,updatedInternals:V1}=updateNodeInternals(pg,mg,gg,yg,ay,ly,r0);V1&&(updateAbsolutePositions(mg,gg,{nodeOrigin:ay,nodeExtent:ly,zIndexMode:r0}),q1?(Jf(),Ef({fitViewQueued:!1,fitViewOptions:void 0})):Ef({}),uE?.length>0&&(cy&&console.log("React Flow: trigger node changes",uE),hg?.(uE)))},updateNodePositions:(pg,hg=!1)=>{const mg=[];let gg=[];const{nodeLookup:yg,triggerNodeChanges:ay,connection:ly,updateConnection:cy,onNodesChangeMiddlewareMap:q1}=Zf();for(const[r0,uE]of pg){const V1=yg.get(r0),H1=!!(V1?.expandParent&&V1?.parentId&&uE?.position),O_={id:r0,type:"position",position:H1?{x:Math.max(0,uE.position.x),y:Math.max(0,uE.position.y)}:uE.position,dragging:hg};if(V1&&ly.inProgress&&ly.fromNode.id===V1.id){const aE=getHandlePosition(V1,ly.fromHandle,Position.Left,!0);cy({...ly,from:aE})}H1&&V1.parentId&&mg.push({id:r0,parentId:V1.parentId,rect:{...uE.internals.positionAbsolute,width:uE.measured.width??0,height:uE.measured.height??0}}),gg.push(O_)}if(mg.length>0){const{parentLookup:r0,nodeOrigin:uE}=Zf(),V1=handleExpandParent(mg,yg,r0,uE);gg.push(...V1)}for(const r0 of q1.values())gg=r0(gg);ay(gg)},triggerNodeChanges:pg=>{const{onNodesChange:hg,setNodes:mg,nodes:gg,hasDefaultNodes:yg,debug:ay}=Zf();if(pg?.length){if(yg){const ly=applyNodeChanges(pg,gg);mg(ly)}ay&&console.log("React Flow: trigger node changes",pg),hg?.(pg)}},triggerEdgeChanges:pg=>{const{onEdgesChange:hg,setEdges:mg,edges:gg,hasDefaultEdges:yg,debug:ay}=Zf();if(pg?.length){if(yg){const ly=applyEdgeChanges(pg,gg);mg(ly)}ay&&console.log("React Flow: trigger edge changes",pg),hg?.(pg)}},addSelectedNodes:pg=>{const{multiSelectionActive:hg,edgeLookup:mg,nodeLookup:gg,triggerNodeChanges:yg,triggerEdgeChanges:ay}=Zf();if(hg){const ly=pg.map(cy=>createSelectionChange(cy,!0));yg(ly);return}yg(getSelectionChanges(gg,new Set([...pg]),!0)),ay(getSelectionChanges(mg))},addSelectedEdges:pg=>{const{multiSelectionActive:hg,edgeLookup:mg,nodeLookup:gg,triggerNodeChanges:yg,triggerEdgeChanges:ay}=Zf();if(hg){const ly=pg.map(cy=>createSelectionChange(cy,!0));ay(ly);return}ay(getSelectionChanges(mg,new Set([...pg]))),yg(getSelectionChanges(gg,new Set,!0))},unselectNodesAndEdges:({nodes:pg,edges:hg}={})=>{const{edges:mg,nodes:gg,nodeLookup:yg,triggerNodeChanges:ay,triggerEdgeChanges:ly}=Zf(),cy=pg||gg,q1=hg||mg,r0=cy.map(V1=>{const H1=yg.get(V1.id);return H1&&(H1.selected=!1),createSelectionChange(V1.id,!1)}),uE=q1.map(V1=>createSelectionChange(V1.id,!1));ay(r0),ly(uE)},setMinZoom:pg=>{const{panZoom:hg,maxZoom:mg}=Zf();hg?.setScaleExtent([pg,mg]),Ef({minZoom:pg})},setMaxZoom:pg=>{const{panZoom:hg,minZoom:mg}=Zf();hg?.setScaleExtent([mg,pg]),Ef({maxZoom:pg})},setTranslateExtent:pg=>{Zf().panZoom?.setTranslateExtent(pg),Ef({translateExtent:pg})},resetSelectedElements:()=>{const{edges:pg,nodes:hg,triggerNodeChanges:mg,triggerEdgeChanges:gg,elementsSelectable:yg}=Zf();if(!yg)return;const ay=hg.reduce((cy,q1)=>q1.selected?[...cy,createSelectionChange(q1.id,!1)]:cy,[]),ly=pg.reduce((cy,q1)=>q1.selected?[...cy,createSelectionChange(q1.id,!1)]:cy,[]);mg(ay),gg(ly)},setNodeExtent:pg=>{const{nodes:hg,nodeLookup:mg,parentLookup:gg,nodeOrigin:yg,elevateNodesOnSelect:ay,nodeExtent:ly,zIndexMode:cy}=Zf();pg[0][0]===ly[0][0]&&pg[0][1]===ly[0][1]&&pg[1][0]===ly[1][0]&&pg[1][1]===ly[1][1]||(adoptUserNodes(hg,mg,gg,{nodeOrigin:yg,nodeExtent:pg,elevateNodesOnSelect:ay,checkEquality:!1,zIndexMode:cy}),Ef({nodeExtent:pg}))},panBy:pg=>{const{transform:hg,width:mg,height:gg,panZoom:yg,translateExtent:ay}=Zf();return panBy({delta:pg,panZoom:yg,transform:hg,translateExtent:ay,width:mg,height:gg})},setCenter:async(pg,hg,mg)=>{const{width:gg,height:yg,maxZoom:ay,panZoom:ly}=Zf();if(!ly)return Promise.resolve(!1);const cy=typeof mg?.zoom<"u"?mg.zoom:ay;return await ly.setViewport({x:gg/2-pg*cy,y:yg/2-hg*cy,zoom:cy},{duration:mg?.duration,ease:mg?.ease,interpolate:mg?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{Ef({connection:{...initialConnection}})},updateConnection:pg=>{Ef({connection:pg})},reset:()=>Ef({...getInitialState$1()})}},Object.is);function ReactFlowProvider({initialNodes:ya,initialEdges:ma,defaultNodes:ba,defaultEdges:va,initialWidth:Ma,initialHeight:wl,initialMinZoom:El,initialMaxZoom:Sl,initialFitViewOptions:Cl,fitView:Mc,nodeOrigin:dp,nodeExtent:pp,zIndexMode:hp,children:Ef}){const[Zf]=reactExports.useState(()=>createStore({nodes:ya,edges:ma,defaultNodes:ba,defaultEdges:va,width:Ma,height:wl,fitView:Mc,minZoom:El,maxZoom:Sl,fitViewOptions:Cl,nodeOrigin:dp,nodeExtent:pp,zIndexMode:hp}));return jsxRuntimeExports.jsx(Provider$1,{value:Zf,children:jsxRuntimeExports.jsx(BatchProvider,{children:Ef})})}function Wrapper({children:ya,nodes:ma,edges:ba,defaultNodes:va,defaultEdges:Ma,width:wl,height:El,fitView:Sl,fitViewOptions:Cl,minZoom:Mc,maxZoom:dp,nodeOrigin:pp,nodeExtent:hp,zIndexMode:Ef}){return reactExports.useContext(StoreContext)?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:ya}):jsxRuntimeExports.jsx(ReactFlowProvider,{initialNodes:ma,initialEdges:ba,defaultNodes:va,defaultEdges:Ma,initialWidth:wl,initialHeight:El,fitView:Sl,initialFitViewOptions:Cl,initialMinZoom:Mc,initialMaxZoom:dp,nodeOrigin:pp,nodeExtent:hp,zIndexMode:Ef,children:ya})}const wrapperStyle={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function ReactFlow({nodes:ya,edges:ma,defaultNodes:ba,defaultEdges:va,className:Ma,nodeTypes:wl,edgeTypes:El,onNodeClick:Sl,onEdgeClick:Cl,onInit:Mc,onMove:dp,onMoveStart:pp,onMoveEnd:hp,onConnect:Ef,onConnectStart:Zf,onConnectEnd:Jf,onClickConnectStart:pg,onClickConnectEnd:hg,onNodeMouseEnter:mg,onNodeMouseMove:gg,onNodeMouseLeave:yg,onNodeContextMenu:ay,onNodeDoubleClick:ly,onNodeDragStart:cy,onNodeDrag:q1,onNodeDragStop:r0,onNodesDelete:uE,onEdgesDelete:V1,onDelete:H1,onSelectionChange:O_,onSelectionDragStart:aE,onSelectionDrag:P_,onSelectionDragStop:M_,onSelectionContextMenu:sN,onSelectionStart:AF,onSelectionEnd:$4,onBeforeDelete:cN,connectionMode:R4,connectionLineType:k4=ConnectionLineType.Bezier,connectionLineStyle:AQ,connectionLineComponent:uN,connectionLineContainerStyle:uee,deleteKeyCode:$pe="Backspace",selectionKeyCode:Ppe="Shift",selectionOnDrag:e2e=!1,selectionMode:Vpt=SelectionMode.Full,panActivationKeyCode:Gpt="Space",multiSelectionKeyCode:xpe=isMacOs()?"Meta":"Control",zoomActivationKeyCode:wpe=isMacOs()?"Meta":"Control",snapToGrid:t2e,snapGrid:Q_e,onlyRenderVisibleElements:Rht=!1,selectNodesOnDrag:tmt,nodesDraggable:Sht,autoPanOnNodeFocus:bmt,nodesConnectable:xmt,nodesFocusable:Rmt,nodeOrigin:mmt=defaultNodeOrigin,edgesFocusable:rmt,edgesReconnectable:pmt,elementsSelectable:Tmt=!0,defaultViewport:Cmt=defaultViewport,minZoom:jmt=.5,maxZoom:Zpt=2,translateExtent:Epe=infiniteExtent,preventScrolling:Tpe=!0,nodeExtent:Ypt,defaultMarkerColor:ipt="#b1b1b7",zoomOnScroll:Mpe=!0,zoomOnPinch:Ope=!0,panOnScroll:Wpt=!1,panOnScrollSpeed:Qpt=.5,panOnScrollMode:Aht=PanOnScrollMode.Free,zoomOnDoubleClick:Kpt=!0,panOnDrag:imt=!0,onPaneClick:hmt,onPaneMouseEnter:Rpe,onPaneMouseMove:Jpt,onPaneMouseLeave:Cht,onPaneScroll:Hpt,onPaneContextMenu:Xpt,paneClickDistance:Jht=1,nodeClickDistance:fmt=0,children:lmt,onReconnect:Smt,onReconnectStart:Bmt,onReconnectEnd:egt,onEdgeContextMenu:sgt,onEdgeDoubleClick:emt,onEdgeMouseEnter:amt,onEdgeMouseMove:Ape,onEdgeMouseLeave:wmt,reconnectRadius:Imt=10,onNodesChange:_mt,onEdgesChange:opt,noDragClassName:Xht="nodrag",noWheelClassName:omt="nowheel",noPanClassName:gmt="nopan",fitView:Fmt,fitViewOptions:Lmt,connectOnClick:Gmt,attributionPosition:ngt,proOptions:Ymt,defaultEdgeOptions:igt,elevateNodesOnSelect:Xmt=!0,elevateEdgesOnSelect:Jmt=!1,disableKeyboardA11y:mgt=!1,autoPanOnConnect:kgt,autoPanOnNodeDrag:ayt,autoPanSpeed:Kgt,connectionRadius:cgt,isValidConnection:xgt,onError:Hgt,style:Ngt,id:Ogt,nodeDragThreshold:eyt,connectionDragThreshold:wgt,viewport:Lgt,onViewportChange:hyt,width:Egt,height:dgt,colorMode:oyt="light",debug:lyt,onScroll:_yt,ariaLabelConfig:myt,zIndexMode:Nyt="basic",...ryt},qyt){const gyt=Ogt||"1",o$t=useColorModeClass(oyt),Wyt=reactExports.useCallback(R$t=>{R$t.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),_yt?.(R$t)},[_yt]);return jsxRuntimeExports.jsx("div",{"data-testid":"rf__wrapper",...ryt,onScroll:Wyt,style:{...Ngt,...wrapperStyle},ref:qyt,className:cc(["react-flow",Ma,o$t]),id:Ogt,role:"application",children:jsxRuntimeExports.jsxs(Wrapper,{nodes:ya,edges:ma,width:Egt,height:dgt,fitView:Fmt,fitViewOptions:Lmt,minZoom:jmt,maxZoom:Zpt,nodeOrigin:mmt,nodeExtent:Ypt,zIndexMode:Nyt,children:[jsxRuntimeExports.jsx(GraphView,{onInit:Mc,onNodeClick:Sl,onEdgeClick:Cl,onNodeMouseEnter:mg,onNodeMouseMove:gg,onNodeMouseLeave:yg,onNodeContextMenu:ay,onNodeDoubleClick:ly,nodeTypes:wl,edgeTypes:El,connectionLineType:k4,connectionLineStyle:AQ,connectionLineComponent:uN,connectionLineContainerStyle:uee,selectionKeyCode:Ppe,selectionOnDrag:e2e,selectionMode:Vpt,deleteKeyCode:$pe,multiSelectionKeyCode:xpe,panActivationKeyCode:Gpt,zoomActivationKeyCode:wpe,onlyRenderVisibleElements:Rht,defaultViewport:Cmt,translateExtent:Epe,minZoom:jmt,maxZoom:Zpt,preventScrolling:Tpe,zoomOnScroll:Mpe,zoomOnPinch:Ope,zoomOnDoubleClick:Kpt,panOnScroll:Wpt,panOnScrollSpeed:Qpt,panOnScrollMode:Aht,panOnDrag:imt,onPaneClick:hmt,onPaneMouseEnter:Rpe,onPaneMouseMove:Jpt,onPaneMouseLeave:Cht,onPaneScroll:Hpt,onPaneContextMenu:Xpt,paneClickDistance:Jht,nodeClickDistance:fmt,onSelectionContextMenu:sN,onSelectionStart:AF,onSelectionEnd:$4,onReconnect:Smt,onReconnectStart:Bmt,onReconnectEnd:egt,onEdgeContextMenu:sgt,onEdgeDoubleClick:emt,onEdgeMouseEnter:amt,onEdgeMouseMove:Ape,onEdgeMouseLeave:wmt,reconnectRadius:Imt,defaultMarkerColor:ipt,noDragClassName:Xht,noWheelClassName:omt,noPanClassName:gmt,rfId:gyt,disableKeyboardA11y:mgt,nodeExtent:Ypt,viewport:Lgt,onViewportChange:hyt}),jsxRuntimeExports.jsx(StoreUpdater,{nodes:ya,edges:ma,defaultNodes:ba,defaultEdges:va,onConnect:Ef,onConnectStart:Zf,onConnectEnd:Jf,onClickConnectStart:pg,onClickConnectEnd:hg,nodesDraggable:Sht,autoPanOnNodeFocus:bmt,nodesConnectable:xmt,nodesFocusable:Rmt,edgesFocusable:rmt,edgesReconnectable:pmt,elementsSelectable:Tmt,elevateNodesOnSelect:Xmt,elevateEdgesOnSelect:Jmt,minZoom:jmt,maxZoom:Zpt,nodeExtent:Ypt,onNodesChange:_mt,onEdgesChange:opt,snapToGrid:t2e,snapGrid:Q_e,connectionMode:R4,translateExtent:Epe,connectOnClick:Gmt,defaultEdgeOptions:igt,fitView:Fmt,fitViewOptions:Lmt,onNodesDelete:uE,onEdgesDelete:V1,onDelete:H1,onNodeDragStart:cy,onNodeDrag:q1,onNodeDragStop:r0,onSelectionDrag:P_,onSelectionDragStart:aE,onSelectionDragStop:M_,onMove:dp,onMoveStart:pp,onMoveEnd:hp,noPanClassName:gmt,nodeOrigin:mmt,rfId:gyt,autoPanOnConnect:kgt,autoPanOnNodeDrag:ayt,autoPanSpeed:Kgt,onError:Hgt,connectionRadius:cgt,isValidConnection:xgt,selectNodesOnDrag:tmt,nodeDragThreshold:eyt,connectionDragThreshold:wgt,onBeforeDelete:cN,debug:lyt,ariaLabelConfig:myt,zIndexMode:Nyt}),jsxRuntimeExports.jsx(SelectionListener,{onSelectionChange:O_}),lmt,jsxRuntimeExports.jsx(Attribution,{proOptions:Ymt,position:ngt}),jsxRuntimeExports.jsx(A11yDescriptions,{rfId:gyt,disableKeyboardA11y:mgt})]})})}var index$4=fixedForwardRef(ReactFlow);function useNodesState(ya){const[ma,ba]=reactExports.useState(ya),va=reactExports.useCallback(Ma=>ba(wl=>applyNodeChanges(Ma,wl)),[]);return[ma,ba,va]}function useEdgesState(ya){const[ma,ba]=reactExports.useState(ya),va=reactExports.useCallback(Ma=>ba(wl=>applyEdgeChanges(Ma,wl)),[]);return[ma,ba,va]}function LinePattern({dimensions:ya,lineWidth:ma,variant:ba,className:va}){return jsxRuntimeExports.jsx("path",{strokeWidth:ma,d:`M${ya[0]/2} 0 V${ya[1]} M0 ${ya[1]/2} H${ya[0]}`,className:cc(["react-flow__background-pattern",ba,va])})}function DotPattern({radius:ya,className:ma}){return jsxRuntimeExports.jsx("circle",{cx:ya,cy:ya,r:ya,className:cc(["react-flow__background-pattern","dots",ma])})}var BackgroundVariant;(function(ya){ya.Lines="lines",ya.Dots="dots",ya.Cross="cross"})(BackgroundVariant||(BackgroundVariant={}));const defaultSize={[BackgroundVariant.Dots]:1,[BackgroundVariant.Lines]:1,[BackgroundVariant.Cross]:6},selector$3=ya=>({transform:ya.transform,patternId:`pattern-${ya.rfId}`});function BackgroundComponent({id:ya,variant:ma=BackgroundVariant.Dots,gap:ba=20,size:va,lineWidth:Ma=1,offset:wl=0,color:El,bgColor:Sl,style:Cl,className:Mc,patternClassName:dp}){const pp=reactExports.useRef(null),{transform:hp,patternId:Ef}=useStore$1(selector$3,shallow$1),Zf=va||defaultSize[ma],Jf=ma===BackgroundVariant.Dots,pg=ma===BackgroundVariant.Cross,hg=Array.isArray(ba)?ba:[ba,ba],mg=[hg[0]*hp[2]||1,hg[1]*hp[2]||1],gg=Zf*hp[2],yg=Array.isArray(wl)?wl:[wl,wl],ay=pg?[gg,gg]:mg,ly=[yg[0]*hp[2]||1+ay[0]/2,yg[1]*hp[2]||1+ay[1]/2],cy=`${Ef}${ya||""}`;return jsxRuntimeExports.jsxs("svg",{className:cc(["react-flow__background",Mc]),style:{...Cl,...containerStyle,"--xy-background-color-props":Sl,"--xy-background-pattern-color-props":El},ref:pp,"data-testid":"rf__background",children:[jsxRuntimeExports.jsx("pattern",{id:cy,x:hp[0]%mg[0],y:hp[1]%mg[1],width:mg[0],height:mg[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${ly[0]},-${ly[1]})`,children:Jf?jsxRuntimeExports.jsx(DotPattern,{radius:gg/2,className:dp}):jsxRuntimeExports.jsx(LinePattern,{dimensions:ay,lineWidth:Ma,variant:ma,className:dp})}),jsxRuntimeExports.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${cy})`})]})}BackgroundComponent.displayName="Background";const Background=reactExports.memo(BackgroundComponent);function PlusIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:jsxRuntimeExports.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function MinusIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:jsxRuntimeExports.jsx("path",{d:"M0 0h32v4.2H0z"})})}function FitViewIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:jsxRuntimeExports.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function LockIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntimeExports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function UnlockIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntimeExports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function ControlButton({children:ya,className:ma,...ba}){return jsxRuntimeExports.jsx("button",{type:"button",className:cc(["react-flow__controls-button",ma]),...ba,children:ya})}const selector$2=ya=>({isInteractive:ya.nodesDraggable||ya.nodesConnectable||ya.elementsSelectable,minZoomReached:ya.transform[2]<=ya.minZoom,maxZoomReached:ya.transform[2]>=ya.maxZoom,ariaLabelConfig:ya.ariaLabelConfig});function ControlsComponent({style:ya,showZoom:ma=!0,showFitView:ba=!0,showInteractive:va=!0,fitViewOptions:Ma,onZoomIn:wl,onZoomOut:El,onFitView:Sl,onInteractiveChange:Cl,className:Mc,children:dp,position:pp="bottom-left",orientation:hp="vertical","aria-label":Ef}){const Zf=useStoreApi(),{isInteractive:Jf,minZoomReached:pg,maxZoomReached:hg,ariaLabelConfig:mg}=useStore$1(selector$2,shallow$1),{zoomIn:gg,zoomOut:yg,fitView:ay}=useReactFlow(),ly=()=>{gg(),wl?.()},cy=()=>{yg(),El?.()},q1=()=>{ay(Ma),Sl?.()},r0=()=>{Zf.setState({nodesDraggable:!Jf,nodesConnectable:!Jf,elementsSelectable:!Jf}),Cl?.(!Jf)},uE=hp==="horizontal"?"horizontal":"vertical";return jsxRuntimeExports.jsxs(Panel,{className:cc(["react-flow__controls",uE,Mc]),position:pp,style:ya,"data-testid":"rf__controls","aria-label":Ef??mg["controls.ariaLabel"],children:[ma&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(ControlButton,{onClick:ly,className:"react-flow__controls-zoomin",title:mg["controls.zoomIn.ariaLabel"],"aria-label":mg["controls.zoomIn.ariaLabel"],disabled:hg,children:jsxRuntimeExports.jsx(PlusIcon,{})}),jsxRuntimeExports.jsx(ControlButton,{onClick:cy,className:"react-flow__controls-zoomout",title:mg["controls.zoomOut.ariaLabel"],"aria-label":mg["controls.zoomOut.ariaLabel"],disabled:pg,children:jsxRuntimeExports.jsx(MinusIcon,{})})]}),ba&&jsxRuntimeExports.jsx(ControlButton,{className:"react-flow__controls-fitview",onClick:q1,title:mg["controls.fitView.ariaLabel"],"aria-label":mg["controls.fitView.ariaLabel"],children:jsxRuntimeExports.jsx(FitViewIcon,{})}),va&&jsxRuntimeExports.jsx(ControlButton,{className:"react-flow__controls-interactive",onClick:r0,title:mg["controls.interactive.ariaLabel"],"aria-label":mg["controls.interactive.ariaLabel"],children:Jf?jsxRuntimeExports.jsx(UnlockIcon,{}):jsxRuntimeExports.jsx(LockIcon,{})}),dp]})}ControlsComponent.displayName="Controls";reactExports.memo(ControlsComponent);function MiniMapNodeComponent({id:ya,x:ma,y:ba,width:va,height:Ma,style:wl,color:El,strokeColor:Sl,strokeWidth:Cl,className:Mc,borderRadius:dp,shapeRendering:pp,selected:hp,onClick:Ef}){const{background:Zf,backgroundColor:Jf}=wl||{},pg=El||Zf||Jf;return jsxRuntimeExports.jsx("rect",{className:cc(["react-flow__minimap-node",{selected:hp},Mc]),x:ma,y:ba,rx:dp,ry:dp,width:va,height:Ma,style:{fill:pg,stroke:Sl,strokeWidth:Cl},shapeRendering:pp,onClick:Ef?hg=>Ef(hg,ya):void 0})}const MiniMapNode=reactExports.memo(MiniMapNodeComponent),selectorNodeIds=ya=>ya.nodes.map(ma=>ma.id),getAttrFunction=ya=>ya instanceof Function?ya:()=>ya;function MiniMapNodes({nodeStrokeColor:ya,nodeColor:ma,nodeClassName:ba="",nodeBorderRadius:va=5,nodeStrokeWidth:Ma,nodeComponent:wl=MiniMapNode,onClick:El}){const Sl=useStore$1(selectorNodeIds,shallow$1),Cl=getAttrFunction(ma),Mc=getAttrFunction(ya),dp=getAttrFunction(ba),pp=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Sl.map(hp=>jsxRuntimeExports.jsx(NodeComponentWrapper,{id:hp,nodeColorFunc:Cl,nodeStrokeColorFunc:Mc,nodeClassNameFunc:dp,nodeBorderRadius:va,nodeStrokeWidth:Ma,NodeComponent:wl,onClick:El,shapeRendering:pp},hp))})}function NodeComponentWrapperInner({id:ya,nodeColorFunc:ma,nodeStrokeColorFunc:ba,nodeClassNameFunc:va,nodeBorderRadius:Ma,nodeStrokeWidth:wl,shapeRendering:El,NodeComponent:Sl,onClick:Cl}){const{node:Mc,x:dp,y:pp,width:hp,height:Ef}=useStore$1(Zf=>{const{internals:Jf}=Zf.nodeLookup.get(ya),pg=Jf.userNode,{x:hg,y:mg}=Jf.positionAbsolute,{width:gg,height:yg}=getNodeDimensions(pg);return{node:pg,x:hg,y:mg,width:gg,height:yg}},shallow$1);return!Mc||Mc.hidden||!nodeHasDimensions(Mc)?null:jsxRuntimeExports.jsx(Sl,{x:dp,y:pp,width:hp,height:Ef,style:Mc.style,selected:!!Mc.selected,className:va(Mc),color:ma(Mc),borderRadius:Ma,strokeColor:ba(Mc),strokeWidth:wl,shapeRendering:El,onClick:Cl,id:Mc.id})}const NodeComponentWrapper=reactExports.memo(NodeComponentWrapperInner);var MiniMapNodes$1=reactExports.memo(MiniMapNodes);const defaultWidth=200,defaultHeight=150,filterHidden=ya=>!ya.hidden,selector$1=ya=>{const ma={x:-ya.transform[0]/ya.transform[2],y:-ya.transform[1]/ya.transform[2],width:ya.width/ya.transform[2],height:ya.height/ya.transform[2]};return{viewBB:ma,boundingRect:ya.nodeLookup.size>0?getBoundsOfRects(getInternalNodesBounds(ya.nodeLookup,{filter:filterHidden}),ma):ma,rfId:ya.rfId,panZoom:ya.panZoom,translateExtent:ya.translateExtent,flowWidth:ya.width,flowHeight:ya.height,ariaLabelConfig:ya.ariaLabelConfig}},ARIA_LABEL_KEY="react-flow__minimap-desc";function MiniMapComponent({style:ya,className:ma,nodeStrokeColor:ba,nodeColor:va,nodeClassName:Ma="",nodeBorderRadius:wl=5,nodeStrokeWidth:El,nodeComponent:Sl,bgColor:Cl,maskColor:Mc,maskStrokeColor:dp,maskStrokeWidth:pp,position:hp="bottom-right",onClick:Ef,onNodeClick:Zf,pannable:Jf=!1,zoomable:pg=!1,ariaLabel:hg,inversePan:mg,zoomStep:gg=1,offsetScale:yg=5}){const ay=useStoreApi(),ly=reactExports.useRef(null),{boundingRect:cy,viewBB:q1,rfId:r0,panZoom:uE,translateExtent:V1,flowWidth:H1,flowHeight:O_,ariaLabelConfig:aE}=useStore$1(selector$1,shallow$1),P_=ya?.width??defaultWidth,M_=ya?.height??defaultHeight,sN=cy.width/P_,AF=cy.height/M_,$4=Math.max(sN,AF),cN=$4*P_,R4=$4*M_,k4=yg*$4,AQ=cy.x-(cN-cy.width)/2-k4,uN=cy.y-(R4-cy.height)/2-k4,uee=cN+k4*2,$pe=R4+k4*2,Ppe=`${ARIA_LABEL_KEY}-${r0}`,e2e=reactExports.useRef(0),Vpt=reactExports.useRef();e2e.current=$4,reactExports.useEffect(()=>{if(ly.current&&uE)return Vpt.current=XYMinimap({domNode:ly.current,panZoom:uE,getTransform:()=>ay.getState().transform,getViewScale:()=>e2e.current}),()=>{Vpt.current?.destroy()}},[uE]),reactExports.useEffect(()=>{Vpt.current?.update({translateExtent:V1,width:H1,height:O_,inversePan:mg,pannable:Jf,zoomStep:gg,zoomable:pg})},[Jf,pg,mg,gg,V1,H1,O_]);const Gpt=Ef?t2e=>{const[Q_e,Rht]=Vpt.current?.pointer(t2e)||[0,0];Ef(t2e,{x:Q_e,y:Rht})}:void 0,xpe=Zf?reactExports.useCallback((t2e,Q_e)=>{const Rht=ay.getState().nodeLookup.get(Q_e).internals.userNode;Zf(t2e,Rht)},[]):void 0,wpe=hg??aE["minimap.ariaLabel"];return jsxRuntimeExports.jsx(Panel,{position:hp,style:{...ya,"--xy-minimap-background-color-props":typeof Cl=="string"?Cl:void 0,"--xy-minimap-mask-background-color-props":typeof Mc=="string"?Mc:void 0,"--xy-minimap-mask-stroke-color-props":typeof dp=="string"?dp:void 0,"--xy-minimap-mask-stroke-width-props":typeof pp=="number"?pp*$4:void 0,"--xy-minimap-node-background-color-props":typeof va=="string"?va:void 0,"--xy-minimap-node-stroke-color-props":typeof ba=="string"?ba:void 0,"--xy-minimap-node-stroke-width-props":typeof El=="number"?El:void 0},className:cc(["react-flow__minimap",ma]),"data-testid":"rf__minimap",children:jsxRuntimeExports.jsxs("svg",{width:P_,height:M_,viewBox:`${AQ} ${uN} ${uee} ${$pe}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Ppe,ref:ly,onClick:Gpt,children:[wpe&&jsxRuntimeExports.jsx("title",{id:Ppe,children:wpe}),jsxRuntimeExports.jsx(MiniMapNodes$1,{onClick:xpe,nodeColor:va,nodeStrokeColor:ba,nodeBorderRadius:wl,nodeClassName:Ma,nodeStrokeWidth:El,nodeComponent:Sl}),jsxRuntimeExports.jsx("path",{className:"react-flow__minimap-mask",d:`M${AQ-k4},${uN-k4}h${uee+k4*2}v${$pe+k4*2}h${-uee-k4*2}z
21261
21261
  M${q1.x},${q1.y}h${q1.width}v${q1.height}h${-q1.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}MiniMapComponent.displayName="MiniMap";reactExports.memo(MiniMapComponent);const scaleSelector=ya=>ma=>ya?`${Math.max(1/ma.transform[2],1)}`:void 0,defaultPositions={[ResizeControlVariant.Line]:"right",[ResizeControlVariant.Handle]:"bottom-right"};function ResizeControl({nodeId:ya,position:ma,variant:ba=ResizeControlVariant.Handle,className:va,style:Ma=void 0,children:wl,color:El,minWidth:Sl=10,minHeight:Cl=10,maxWidth:Mc=Number.MAX_VALUE,maxHeight:dp=Number.MAX_VALUE,keepAspectRatio:pp=!1,resizeDirection:hp,autoScale:Ef=!0,shouldResize:Zf,onResizeStart:Jf,onResize:pg,onResizeEnd:hg}){const mg=useNodeId(),gg=typeof ya=="string"?ya:mg,yg=useStoreApi(),ay=reactExports.useRef(null),ly=ba===ResizeControlVariant.Handle,cy=useStore$1(reactExports.useCallback(scaleSelector(ly&&Ef),[ly,Ef]),shallow$1),q1=reactExports.useRef(null),r0=ma??defaultPositions[ba];reactExports.useEffect(()=>{if(!(!ay.current||!gg))return q1.current||(q1.current=XYResizer({domNode:ay.current,nodeId:gg,getStoreItems:()=>{const{nodeLookup:V1,transform:H1,snapGrid:O_,snapToGrid:aE,nodeOrigin:P_,domNode:M_}=yg.getState();return{nodeLookup:V1,transform:H1,snapGrid:O_,snapToGrid:aE,nodeOrigin:P_,paneDomNode:M_}},onChange:(V1,H1)=>{const{triggerNodeChanges:O_,nodeLookup:aE,parentLookup:P_,nodeOrigin:M_}=yg.getState(),sN=[],AF={x:V1.x,y:V1.y},$4=aE.get(gg);if($4&&$4.expandParent&&$4.parentId){const cN=$4.origin??M_,R4=V1.width??$4.measured.width??0,k4=V1.height??$4.measured.height??0,AQ={id:$4.id,parentId:$4.parentId,rect:{width:R4,height:k4,...evaluateAbsolutePosition({x:V1.x??$4.position.x,y:V1.y??$4.position.y},{width:R4,height:k4},$4.parentId,aE,cN)}},uN=handleExpandParent([AQ],aE,P_,M_);sN.push(...uN),AF.x=V1.x?Math.max(cN[0]*R4,V1.x):void 0,AF.y=V1.y?Math.max(cN[1]*k4,V1.y):void 0}if(AF.x!==void 0&&AF.y!==void 0){const cN={id:gg,type:"position",position:{...AF}};sN.push(cN)}if(V1.width!==void 0&&V1.height!==void 0){const R4={id:gg,type:"dimensions",resizing:!0,setAttributes:hp?hp==="horizontal"?"width":"height":!0,dimensions:{width:V1.width,height:V1.height}};sN.push(R4)}for(const cN of H1){const R4={...cN,type:"position"};sN.push(R4)}O_(sN)},onEnd:({width:V1,height:H1})=>{const O_={id:gg,type:"dimensions",resizing:!1,dimensions:{width:V1,height:H1}};yg.getState().triggerNodeChanges([O_])}})),q1.current.update({controlPosition:r0,boundaries:{minWidth:Sl,minHeight:Cl,maxWidth:Mc,maxHeight:dp},keepAspectRatio:pp,resizeDirection:hp,onResizeStart:Jf,onResize:pg,onResizeEnd:hg,shouldResize:Zf}),()=>{q1.current?.destroy()}},[r0,Sl,Cl,Mc,dp,pp,Jf,pg,hg,Zf]);const uE=r0.split("-");return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__resize-control","nodrag",...uE,ba,va]),ref:ay,style:{...Ma,scale:cy,...El&&{[ly?"backgroundColor":"borderColor"]:El}},children:wl})}reactExports.memo(ResizeControl);const INITIAL_VIEWPORT_NODE_ID="__INITIAL_VIEWPORT__",useZoomHandler=()=>{const{getNode:ya,setCenter:ma,fitView:ba,getNodes:va,setViewport:Ma,getEdges:wl}=useReactFlow(),{moduleName:El}=useParams(),Sl=useAppStore(hg=>hg.setPreviouslyFocusedNode),Cl=useAppStore(hg=>hg.currentFocusedNode),Mc=useAppStore(hg=>hg.setCurrentFocusedNode),dp=useAppStore(hg=>hg.setSelectedAgentId),pp=useAppStore(hg=>hg.setSelectedDecisionId),hp=useAppStore(hg=>hg.setLastFocusedAgentId),Ef=useAppStore(hg=>hg.pushFocusedNode),Zf=useAppStore(hg=>hg.clearFocusedForward);return{zoomHandler:(hg,mg,gg)=>{const yg=mg?.mode||"normal";Cl&&Cl!==hg&&(yg==="normal"?(Ef(Cl),Sl(Cl),Zf()):yg==="back"?useAppStore.getState().pushFocusedForward(Cl):yg==="forward"&&Ef(Cl)),Mc(hg);const ay=ya(hg);if(ay){if(ay.type==="event")try{const cy=fetchModule$2(El||"").getWorkflowForEvent(hg);if(!cy)return;const q1=cy.name,r0=ya(q1);if(r0){const uE=ay.width||0,V1=ay.height||0,H1=ay.position.x+uE/2,O_=ay.position.y+V1/2,aE=r0.width||0,P_=r0.height||0,M_=r0.position.x+aE/2,sN=r0.position.y+P_/2,AF=(H1+M_)/2,$4=(O_+sN)/2,cN=Math.abs(H1-M_)+(uE+aE)/2,R4=Math.abs(O_-sN)+(V1+P_),k4=Math.max(cN,R4);let AQ=.9;k4>1200?AQ=.5:k4>800?AQ=.65:k4>500?AQ=.8:k4>300&&(AQ=.85),requestAnimationFrame(()=>{ma(AF,$4,{zoom:AQ,duration:1200})})}else{const uE=ay.width||0,V1=ay.height||0,H1=ay.position.x+uE/2,O_=ay.position.y+V1/2;requestAnimationFrame(()=>{ma(H1,O_,{zoom:1.15,duration:700})})}}catch(ly){console.error("Error getting workflow for event:",ly);const cy=ay.width||0,q1=ay.height||0,r0=ay.position.x+cy/2,uE=ay.position.y+q1/2;requestAnimationFrame(()=>{ma(r0,uE,{zoom:1.15,duration:700})})}else if(ay.type==="agent")try{if(fetchModule$2(El||"").getAgent(hg)){const r0=va().filter(uE=>uE.type==="swimlane"&&uE.data.name.includes(hg)).map(uE=>({id:uE.id}));if(r0.length>0)requestAnimationFrame(()=>{ba({nodes:[{id:hg},...r0],duration:700,padding:.1})});else{const uE=ay.width||0,V1=ay.height||0,H1=ay.position.x+uE/2,O_=ay.position.y+V1/2;requestAnimationFrame(()=>{ma(H1,O_,{zoom:1.15,duration:700})})}}else{const q1=ay.width||0,r0=ay.height||0,uE=ay.position.x+q1/2,V1=ay.position.y+r0/2;requestAnimationFrame(()=>{ma(uE,V1,{zoom:1.15,duration:700})})}hp(hg),mg?.openForm&&dp(hg)}catch(ly){console.error("Error getting flows for agent:",ly);const cy=ay.width||0,q1=ay.height||0,r0=ay.position.x+cy/2,uE=ay.position.y+q1/2;requestAnimationFrame(()=>{ma(r0,uE,{zoom:1.15,duration:700})})}else if(ay.type==="relationship"){const q1=wl().filter(V1=>V1.source===hg||V1.target===hg).flatMap(V1=>[V1.source,V1.target]),uE=Array.from(new Set([...q1,hg])).map(V1=>({id:V1}));if(uE.length>1)requestAnimationFrame(()=>{ba({nodes:uE,duration:1200,padding:.2})});else{const V1=ay.width||0,H1=ay.height||0,O_=ay.position.x+V1/2,aE=ay.position.y+H1/2;requestAnimationFrame(()=>{ma(O_,aE,{zoom:1.15,duration:700})})}}else if(ay.type==="decision"){const ly=ay.width||0,cy=ay.height||0,q1=ay.position.x+ly/2,r0=ay.position.y+cy/2;requestAnimationFrame(()=>{ma(q1,r0,{zoom:1.15,duration:700})}),mg?.openForm&&(pp(hg),dp(null))}else if(ay.type==="decisionNode"){const ly=ay.width||0,cy=ay.height||0,q1=ay.position.x+ly/2,r0=ay.position.y+cy/2;if(requestAnimationFrame(()=>{ma(q1,r0,{zoom:1.15,duration:700})}),mg?.openForm){const uE=hg.replace("decision-node-","");pp(uE),dp(null)}}else{const ly=ay.width||0,cy=ay.height||0,q1=ay.position.x+ly/2,r0=ay.position.y+cy/2;requestAnimationFrame(()=>{ma(q1,r0,{zoom:1.15,duration:700})})}gg&&gg()}},restoreInitialViewport:hg=>{const mg=hg||{x:100,y:50,zoom:.6};requestAnimationFrame(()=>{typeof Ma=="function"?Ma(mg,{duration:700}):ma(mg.x,mg.y,{zoom:mg.zoom,duration:700})}),Mc(null)}}},useSaveUISpec=()=>{const ya=$ht(),{teamName:ma,githubOrg:ba}=useParams(),va=useAppStore(Cl=>Cl.user),Ma=va.GitHub.Token,wl=va.GitHub.Username,El=isMarketplaceRepo(ma||"",ba);return{saveUISpec:(Cl,Mc)=>{if(!ma)throw new Error("Team name is required to save UI spec");ya(Cl),saveUISpecToGit(ma,JSON.stringify(Cl,null,2),Mc,wl,Ma,El)}}},useAgent=()=>{const{fitView:ya}=useReactFlow(),{incrementModuleDbChangeCount:ma,setSelectedAgentId:ba}=useAppStore(),{zoomHandler:va}=useZoomHandler(),{teamName:Ma,githubOrg:wl,moduleName:El}=useParams(),Sl=useAppStore($pe=>$pe.user),Cl=Sl.GitHub.Token,Mc=Sl.GitHub.Username,dp=isMarketplaceRepo(Ma||"",wl),pp=Wn$1(),{saveUISpec:hp}=useSaveUISpec(),Ef=()=>{if(!Ma)throw new Error("teamName is undefined");if(!El)throw new Error("moduleName is undefined");return{teamName:Ma,moduleName:El,githubToken:Cl,githubUsername:Mc}},Zf=$pe=>{const Ppe=Ef(),e2e=fetchModule$2(Ppe.moduleName),Vpt=e2e.getAgent($pe);if(!Vpt)throw new Error(`Agent ${$pe} not found`);return{module:e2e,agent:Vpt,moduleName:Ppe.moduleName}},Jf=async $pe=>{const{teamName:Ppe,moduleName:e2e,githubToken:Vpt,githubUsername:Gpt}=Ef(),xpe=fetchModule$2(e2e).toString();ma(),await saveModuleToGit(Ppe,e2e,xpe,$pe,Gpt,Vpt,dp)},pg=()=>{requestAnimationFrame(()=>{ya()})};return{addAgent:async $pe=>{const Ppe=Ef(),e2e=fetchModule$2(Ppe.moduleName),Vpt=new Agent$2($pe,e2e.name);if(e2e.addAgent(Vpt),pp&&hp)try{const Gpt=`${El}/${$pe}`,xpe=repopulateUISchemaForNewAgent(pp,Gpt);hp(xpe,`Update UI schema for new agent ${$pe}`)}catch(Gpt){console.error("Failed to repopulate UI schema for new agent:",Gpt)}Jf(`Add Agent ${$pe}`).catch(Gpt=>{console.error("Failed to save module changes (non-blocking):",Gpt)}),setTimeout(()=>{ba($pe)},50),setTimeout(()=>{va($pe,{openForm:!1})},500),pg()},removeAgent:async $pe=>{const Ppe=Ef();if(fetchModule$2(Ppe.moduleName).removeAgent($pe),pp&&hp)try{const Vpt=`${El}/${$pe}`,Gpt=repopulateUISchemaAfterAgentDeletion(pp,Vpt);hp(Gpt,`Update UI schema after deleting agent ${$pe}`)}catch(Vpt){console.error("[useAgent] Failed to repopulate UI schema after agent deletion:",Vpt)}Jf(`Remove Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)}),pg()},getAgents:()=>{const $pe=Ef();try{const Ppe=fetchModule$2($pe.moduleName);return Ppe?Ppe.getAgentNames():[]}catch(Ppe){return console.error("Failed to get agents:",Ppe),[]}},setAgentInstruction:async($pe,Ppe)=>{Ef();const{agent:e2e}=Zf($pe);if(Ppe.length>0){const Vpt=e$b(Ppe);e2e.setInstruction(Vpt)}else e2e.removeInstruction();Jf(`Set Instruction for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},setAgentLLM:async($pe,Ppe)=>{Ef();const{agent:e2e}=Zf($pe);Ppe.length>0?e2e.setLLM(Ppe):e2e.removeLLM(),Jf(`Set LLM for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},setAgentTools:async($pe,Ppe)=>{Ef(),console.log("setAgentTools",$pe,Ppe);const{agent:e2e}=Zf($pe);Ppe.length>0?e2e.setTools(Ppe):e2e.removeTools(),Jf(`Set Tools for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},setAgentIntegration:async($pe,Ppe)=>{Ef();const{agent:e2e}=Zf($pe);Ppe.length>0?e2e.attributes.set("integration",Ppe):e2e.attributes.delete("integration"),Jf(`Set Integration for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},getAgent:$pe=>{const Ppe=Ef(),e2e=fetchModule$2(Ppe.moduleName);if(!e2e)throw new Error("Module not found");return e2e.getAgent($pe)},getAgentDirectives:$pe=>{const{module:Ppe}=Zf($pe);return Ppe.getAllDirectives().filter(e2e=>e2e.name.startsWith(`${$pe}.`))},getAgentScenarios:$pe=>{const{module:Ppe}=Zf($pe);return Ppe.getAllScenarios().filter(e2e=>e2e.name.startsWith(`${$pe}.`))},getAgentGlossary:$pe=>{const{module:Ppe}=Zf($pe);return Ppe.getAllGlossaryEntries().filter(e2e=>e2e.name.startsWith(`${$pe}.`))},getAgentFlows:$pe=>{const{module:Ppe}=Zf($pe);return Ppe.getAllFlows().filter(e2e=>e2e.name.startsWith(`${$pe}.`))},setAgentRole:async($pe,Ppe)=>{Ef();const{agent:e2e}=Zf($pe);if(Ppe.length>0){const Vpt=e$b(Ppe);e2e.attributes.set("role",Vpt)}else e2e.removeAttribute("role");Jf(`Set Role for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},setAgentResponseSchema:async($pe,Ppe)=>{Ef();const{agent:e2e}=Zf($pe);Ppe.length>0?e2e.setResponseSchema(Ppe):(console.log("removeAgentResponseSchema",e2e.getAgentFqName()),removeAgentResponseSchema$1(e2e.getAgentFqName())),Jf(`Set Response Schema for Agent ${$pe}`).catch(Vpt=>{console.error("Failed to save module changes (non-blocking):",Vpt)})},removeAgentDirective:async $pe=>{Ef();const{module:Ppe}=Zf($pe.split(".")[0]);Ppe.removeDirective($pe),Jf(`Remove directive ${$pe}`).catch(e2e=>{console.error("Failed to save module changes (non-blocking):",e2e)})},addAgentDirective:async $pe=>{Ef();const{module:Ppe}=Zf($pe.split(".")[0]);Ppe.addDirective($pe,newAgentDirectiveFromIf(new IfPattern$1)),Jf(`Add directive ${$pe}`).catch(e2e=>{console.error("Failed to save module changes (non-blocking):",e2e)})},updateAgentDirective:async($pe,Ppe,e2e)=>{Ef();const{module:Vpt}=Zf($pe.split(".")[0]);Vpt.removeDirective($pe);const Gpt=e$b(Ppe),xpe=e$b(e2e),wpe=new IfPattern$1(LiteralPattern$1.String(Gpt)).addPattern(LiteralPattern$1.String(xpe));Vpt.addDirective($pe,newAgentDirectiveFromIf(wpe)),Jf(`Update directive ${$pe}`).catch(t2e=>{console.error("Failed to save module changes (non-blocking):",t2e)})},removeAgentScenario:async $pe=>{Ef();const{module:Ppe}=Zf($pe.split(".")[0]);Ppe.removeScenario($pe),Jf(`Remove scenario ${$pe}`).catch(e2e=>{console.error("Failed to save module changes (non-blocking):",e2e)})},removeAgentGlossary:async $pe=>{Ef();const{module:Ppe}=Zf($pe.split(".")[0]);Ppe.removeGlossaryEntry($pe),Jf(`Remove glossary ${$pe}`).catch(e2e=>{console.error("Failed to save module changes (non-blocking):",e2e)})},addAgentScenario:async $pe=>{Ef();const{module:Ppe}=Zf($pe.split(".")[0]);Ppe.addScenario($pe,newAgentScenarioFromIf(new IfPattern$1)),Jf(`Add scenario ${$pe}`).catch(e2e=>{console.error("Failed to save module changes (non-blocking):",e2e)})},updateAgentScenario:async($pe,Ppe,e2e)=>{Ef();const{module:Vpt}=Zf($pe.split(".")[0]);Vpt.removeScenario($pe);const Gpt=e$b(Ppe),xpe=new IfPattern$1(LiteralPattern$1.String(Gpt)).addPattern(LiteralPattern$1.Id(e2e));Vpt.addScenario($pe,newAgentScenarioFromIf(xpe)),Jf(`Update scenario ${$pe}`).catch(wpe=>{console.error("Failed to save module changes (non-blocking):",wpe)})},addAgentGlossaryEntry:async($pe,Ppe,e2e)=>{Ef();const{module:Vpt}=Zf($pe.split(".")[0]),Gpt=e$b(Ppe),xpe=e2e?e$b(e2e):"";Vpt.addGlossaryEntry($pe,{name:xpe,meaning:Gpt,synonyms:[],internal:!1}),Jf(`Add glossary ${$pe}`).catch(wpe=>{console.error("Failed to save module changes (non-blocking):",wpe)})},updateAgentGlossaryEntry:async($pe,Ppe,e2e,Vpt)=>{Ef();const{module:Gpt}=Zf($pe.split(".")[0]);Gpt.removeGlossaryEntry($pe);const xpe=e$b(Ppe),wpe=Vpt?e$b(Vpt):"",t2e=Array.isArray(e2e)?e2e.map(Q_e=>e$b(Q_e)).join(", "):e$b(e2e);Gpt.addGlossaryEntry($pe,{name:wpe,meaning:xpe,synonyms:t2e,internal:!1}),Jf(`Update glossary ${$pe}`).catch(Q_e=>{console.error("Failed to save module changes (non-blocking):",Q_e)})},setAgentPublic:async($pe,Ppe)=>{Ef();const{agent:e2e,moduleName:Vpt}=Zf($pe);if(e2e.setPublic(Ppe),pp&&hp)try{const Gpt=`${Vpt}/${$pe}`,xpe=repopulateUISchemaForNewAgent(pp,Gpt);hp(xpe,`Update UI schema - agent ${$pe} ${Ppe?"made public":"made private"}`)}catch(Gpt){console.error("Failed to repopulate UI schema after agent public status change:",Gpt)}Jf(`Set Public status for Agent ${$pe}`).catch(Gpt=>{console.error("Failed to save module changes (non-blocking):",Gpt)})},getAgentPublic:$pe=>{const{agent:Ppe}=Zf($pe);return Ppe.isPublic()}}};function r$e(ya){var ma,ba,va="";if(typeof ya=="string"||typeof ya=="number")va+=ya;else if(typeof ya=="object")if(Array.isArray(ya)){var Ma=ya.length;for(ma=0;ma<Ma;ma++)ya[ma]&&(ba=r$e(ya[ma]))&&(va&&(va+=" "),va+=ba)}else for(ba in ya)ya[ba]&&(va&&(va+=" "),va+=ba);return va}function clsx(){for(var ya,ma,ba=0,va="",Ma=arguments.length;ba<Ma;ba++)(ya=arguments[ba])&&(ma=r$e(ya))&&(va&&(va+=" "),va+=ma);return va}function Mt$2(ya){if(typeof document>"u")return;let ma=document.head||document.getElementsByTagName("head")[0],ba=document.createElement("style");ba.type="text/css",ma.firstChild?ma.insertBefore(ba,ma.firstChild):ma.appendChild(ba),ba.styleSheet?ba.styleSheet.cssText=ya:ba.appendChild(document.createTextNode(ya))}Mt$2(`:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
21262
- `);var L$8=ya=>typeof ya=="number"&&!isNaN(ya),N$8=ya=>typeof ya=="string",P$a=ya=>typeof ya=="function",mt$1=ya=>N$8(ya)||L$8(ya),B$7=ya=>N$8(ya)||P$a(ya)?ya:null,pt$1=(ya,ma)=>ya===!1||L$8(ya)&&ya>0?ya:ma,z$7=ya=>reactExports.isValidElement(ya)||N$8(ya)||P$a(ya)||L$8(ya);function Z$6(ya,ma,ba=300){let{scrollHeight:va,style:Ma}=ya;requestAnimationFrame(()=>{Ma.minHeight="initial",Ma.height=va+"px",Ma.transition=`all ${ba}ms`,requestAnimationFrame(()=>{Ma.height="0",Ma.padding="0",Ma.margin="0",setTimeout(ma,ba)})})}function $$7({enter:ya,exit:ma,appendPosition:ba=!1,collapse:va=!0,collapseDuration:Ma=300}){return function({children:wl,position:El,preventExitTransition:Sl,done:Cl,nodeRef:Mc,isIn:dp,playToast:pp}){let hp=ba?`${ya}--${El}`:ya,Ef=ba?`${ma}--${El}`:ma,Zf=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{let Jf=Mc.current,pg=hp.split(" "),hg=mg=>{mg.target===Mc.current&&(pp(),Jf.removeEventListener("animationend",hg),Jf.removeEventListener("animationcancel",hg),Zf.current===0&&mg.type!=="animationcancel"&&Jf.classList.remove(...pg))};Jf.classList.add(...pg),Jf.addEventListener("animationend",hg),Jf.addEventListener("animationcancel",hg)},[]),reactExports.useEffect(()=>{let Jf=Mc.current,pg=()=>{Jf.removeEventListener("animationend",pg),va?Z$6(Jf,Cl,Ma):Cl()};dp||(Sl?pg():(Zf.current=1,Jf.className+=` ${Ef}`,Jf.addEventListener("animationend",pg)))},[dp]),React.createElement(React.Fragment,null,wl)}}function J$7(ya,ma){return{content:tt$2(ya.content,ya.props),containerId:ya.props.containerId,id:ya.props.toastId,theme:ya.props.theme,type:ya.props.type,data:ya.props.data||{},isLoading:ya.props.isLoading,icon:ya.props.icon,reason:ya.removalReason,status:ma}}function tt$2(ya,ma,ba=!1){return reactExports.isValidElement(ya)&&!N$8(ya.type)?reactExports.cloneElement(ya,{closeToast:ma.closeToast,toastProps:ma,data:ma.data,isPaused:ba}):P$a(ya)?ya({closeToast:ma.closeToast,toastProps:ma,data:ma.data,isPaused:ba}):ya}function yt$1({closeToast:ya,theme:ma,ariaLabel:ba="close"}){return React.createElement("button",{className:`Toastify__close-button Toastify__close-button--${ma}`,type:"button",onClick:va=>{va.stopPropagation(),ya(!0)},"aria-label":ba},React.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},React.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function gt$2({delay:ya,isRunning:ma,closeToast:ba,type:va="default",hide:Ma,className:wl,controlledProgress:El,progress:Sl,rtl:Cl,isIn:Mc,theme:dp}){let pp=Ma||El&&Sl===0,hp={animationDuration:`${ya}ms`,animationPlayState:ma?"running":"paused"};El&&(hp.transform=`scaleX(${Sl})`);let Ef=clsx("Toastify__progress-bar",El?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${dp}`,`Toastify__progress-bar--${va}`,{"Toastify__progress-bar--rtl":Cl}),Zf=P$a(wl)?wl({rtl:Cl,type:va,defaultClassName:Ef}):clsx(Ef,wl),Jf={[El&&Sl>=1?"onTransitionEnd":"onAnimationEnd"]:El&&Sl<1?null:()=>{Mc&&ba()}};return React.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":pp},React.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${dp} Toastify__progress-bar--${va}`}),React.createElement("div",{role:"progressbar","aria-hidden":pp?"true":"false","aria-label":"notification timer",className:Zf,style:hp,...Jf}))}var Xt$1=1,at$1=()=>`${Xt$1++}`;function _t$2(ya,ma,ba){let va=1,Ma=0,wl=[],El=[],Sl=ma,Cl=new Map,Mc=new Set,dp=mg=>(Mc.add(mg),()=>Mc.delete(mg)),pp=()=>{El=Array.from(Cl.values()),Mc.forEach(mg=>mg())},hp=({containerId:mg,toastId:gg,updateId:yg})=>{let ay=mg?mg!==ya:ya!==1,ly=Cl.has(gg)&&yg==null;return ay||ly},Ef=(mg,gg)=>{Cl.forEach(yg=>{var ay;(gg==null||gg===yg.props.toastId)&&((ay=yg.toggle)==null||ay.call(yg,mg))})},Zf=mg=>{var gg,yg;(yg=(gg=mg.props)==null?void 0:gg.onClose)==null||yg.call(gg,mg.removalReason),mg.isActive=!1},Jf=mg=>{if(mg==null)Cl.forEach(Zf);else{let gg=Cl.get(mg);gg&&Zf(gg)}pp()},pg=()=>{Ma-=wl.length,wl=[]},hg=mg=>{var gg,yg;let{toastId:ay,updateId:ly}=mg.props,cy=ly==null;mg.staleId&&Cl.delete(mg.staleId),mg.isActive=!0,Cl.set(ay,mg),pp(),ba(J$7(mg,cy?"added":"updated")),cy&&((yg=(gg=mg.props).onOpen)==null||yg.call(gg))};return{id:ya,props:Sl,observe:dp,toggle:Ef,removeToast:Jf,toasts:Cl,clearQueue:pg,buildToast:(mg,gg)=>{if(hp(gg))return;let{toastId:yg,updateId:ay,data:ly,staleId:cy,delay:q1}=gg,r0=ay==null;r0&&Ma++;let uE={...Sl,style:Sl.toastStyle,key:va++,...Object.fromEntries(Object.entries(gg).filter(([H1,O_])=>O_!=null)),toastId:yg,updateId:ay,data:ly,isIn:!1,className:B$7(gg.className||Sl.toastClassName),progressClassName:B$7(gg.progressClassName||Sl.progressClassName),autoClose:gg.isLoading?!1:pt$1(gg.autoClose,Sl.autoClose),closeToast(H1){Cl.get(yg).removalReason=H1,Jf(yg)},deleteToast(){let H1=Cl.get(yg);if(H1!=null){if(ba(J$7(H1,"removed")),Cl.delete(yg),Ma--,Ma<0&&(Ma=0),wl.length>0){hg(wl.shift());return}pp()}}};uE.closeButton=Sl.closeButton,gg.closeButton===!1||z$7(gg.closeButton)?uE.closeButton=gg.closeButton:gg.closeButton===!0&&(uE.closeButton=z$7(Sl.closeButton)?Sl.closeButton:!0);let V1={content:mg,props:uE,staleId:cy};Sl.limit&&Sl.limit>0&&Ma>Sl.limit&&r0?wl.push(V1):L$8(q1)?setTimeout(()=>{hg(V1)},q1):hg(V1)},setProps(mg){Sl=mg},setToggle:(mg,gg)=>{let yg=Cl.get(mg);yg&&(yg.toggle=gg)},isToastActive:mg=>{var gg;return(gg=Cl.get(mg))==null?void 0:gg.isActive},getSnapshot:()=>El}}var I$a=new Map,F$9=[],st$1=new Set,Vt$1=ya=>st$1.forEach(ma=>ma(ya)),bt$1=()=>I$a.size>0;function Qt$1(){F$9.forEach(ya=>nt$1(ya.content,ya.options)),F$9=[]}var vt$2=(ya,{containerId:ma})=>{var ba;return(ba=I$a.get(ma||1))==null?void 0:ba.toasts.get(ya)};function X$6(ya,ma){var ba;if(ma)return!!((ba=I$a.get(ma))!=null&&ba.isToastActive(ya));let va=!1;return I$a.forEach(Ma=>{Ma.isToastActive(ya)&&(va=!0)}),va}function ht$2(ya){if(!bt$1()){F$9=F$9.filter(ma=>ya!=null&&ma.options.toastId!==ya);return}if(ya==null||mt$1(ya))I$a.forEach(ma=>{ma.removeToast(ya)});else if(ya&&("containerId"in ya||"id"in ya)){let ma=I$a.get(ya.containerId);ma?ma.removeToast(ya.id):I$a.forEach(ba=>{ba.removeToast(ya.id)})}}var Ct$2=(ya={})=>{I$a.forEach(ma=>{ma.props.limit&&(!ya.containerId||ma.id===ya.containerId)&&ma.clearQueue()})};function nt$1(ya,ma){z$7(ya)&&(bt$1()||F$9.push({content:ya,options:ma}),I$a.forEach(ba=>{ba.buildToast(ya,ma)}))}function xt$1(ya){var ma;(ma=I$a.get(ya.containerId||1))==null||ma.setToggle(ya.id,ya.fn)}function rt$1(ya,ma){I$a.forEach(ba=>{(ma==null||!(ma!=null&&ma.containerId)||ma?.containerId===ba.id)&&ba.toggle(ya,ma?.id)})}function Et$2(ya){let ma=ya.containerId||1;return{subscribe(ba){let va=_t$2(ma,ya,Vt$1);I$a.set(ma,va);let Ma=va.observe(ba);return Qt$1(),()=>{Ma(),I$a.delete(ma)}},setProps(ba){var va;(va=I$a.get(ma))==null||va.setProps(ba)},getSnapshot(){var ba;return(ba=I$a.get(ma))==null?void 0:ba.getSnapshot()}}}function Pt$2(ya){return st$1.add(ya),()=>{st$1.delete(ya)}}function Wt$1(ya){return ya&&(N$8(ya.toastId)||L$8(ya.toastId))?ya.toastId:at$1()}function U$6(ya,ma){return nt$1(ya,ma),ma.toastId}function V$8(ya,ma){return{...ma,type:ma&&ma.type||ya,toastId:Wt$1(ma)}}function Q$7(ya){return(ma,ba)=>U$6(ma,V$8(ya,ba))}function y$b(ya,ma){return U$6(ya,V$8("default",ma))}y$b.loading=(ya,ma)=>U$6(ya,V$8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...ma}));function Gt$1(ya,{pending:ma,error:ba,success:va},Ma){let wl;ma&&(wl=N$8(ma)?y$b.loading(ma,Ma):y$b.loading(ma.render,{...Ma,...ma}));let El={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},Sl=(Mc,dp,pp)=>{if(dp==null){y$b.dismiss(wl);return}let hp={type:Mc,...El,...Ma,data:pp},Ef=N$8(dp)?{render:dp}:dp;return wl?y$b.update(wl,{...hp,...Ef}):y$b(Ef.render,{...hp,...Ef}),pp},Cl=P$a(ya)?ya():ya;return Cl.then(Mc=>Sl("success",va,Mc)).catch(Mc=>Sl("error",ba,Mc)),Cl}y$b.promise=Gt$1;y$b.success=Q$7("success");y$b.info=Q$7("info");y$b.error=Q$7("error");y$b.warning=Q$7("warning");y$b.warn=y$b.warning;y$b.dark=(ya,ma)=>U$6(ya,V$8("default",{theme:"dark",...ma}));function qt$1(ya){ht$2(ya)}y$b.dismiss=qt$1;y$b.clearWaitingQueue=Ct$2;y$b.isActive=X$6;y$b.update=(ya,ma={})=>{let ba=vt$2(ya,ma);if(ba){let{props:va,content:Ma}=ba,wl={delay:100,...va,...ma,toastId:ma.toastId||ya,updateId:at$1()};wl.toastId!==ya&&(wl.staleId=ya);let El=wl.render||Ma;delete wl.render,U$6(El,wl)}};y$b.done=ya=>{y$b.update(ya,{progress:1})};y$b.onChange=Pt$2;y$b.play=ya=>rt$1(!0,ya);y$b.pause=ya=>rt$1(!1,ya);function It$2(ya){var ma;let{subscribe:ba,getSnapshot:va,setProps:Ma}=reactExports.useRef(Et$2(ya)).current;Ma(ya);let wl=(ma=reactExports.useSyncExternalStore(ba,va,va))==null?void 0:ma.slice();function El(Sl){if(!wl)return[];let Cl=new Map;return ya.newestOnTop&&wl.reverse(),wl.forEach(Mc=>{let{position:dp}=Mc.props;Cl.has(dp)||Cl.set(dp,[]),Cl.get(dp).push(Mc)}),Array.from(Cl,Mc=>Sl(Mc[0],Mc[1]))}return{getToastToRender:El,isToastActive:X$6,count:wl?.length}}function At$2(ya){let[ma,ba]=reactExports.useState(!1),[va,Ma]=reactExports.useState(!1),wl=reactExports.useRef(null),El=reactExports.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:Sl,pauseOnHover:Cl,closeToast:Mc,onClick:dp,closeOnClick:pp}=ya;xt$1({id:ya.toastId,containerId:ya.containerId,fn:ba}),reactExports.useEffect(()=>{if(ya.pauseOnFocusLoss)return hp(),()=>{Ef()}},[ya.pauseOnFocusLoss]);function hp(){document.hasFocus()||hg(),window.addEventListener("focus",pg),window.addEventListener("blur",hg)}function Ef(){window.removeEventListener("focus",pg),window.removeEventListener("blur",hg)}function Zf(cy){if(ya.draggable===!0||ya.draggable===cy.pointerType){mg();let q1=wl.current;El.canCloseOnClick=!0,El.canDrag=!0,q1.style.transition="none",ya.draggableDirection==="x"?(El.start=cy.clientX,El.removalDistance=q1.offsetWidth*(ya.draggablePercent/100)):(El.start=cy.clientY,El.removalDistance=q1.offsetHeight*(ya.draggablePercent===80?ya.draggablePercent*1.5:ya.draggablePercent)/100)}}function Jf(cy){let{top:q1,bottom:r0,left:uE,right:V1}=wl.current.getBoundingClientRect();cy.nativeEvent.type!=="touchend"&&ya.pauseOnHover&&cy.clientX>=uE&&cy.clientX<=V1&&cy.clientY>=q1&&cy.clientY<=r0?hg():pg()}function pg(){ba(!0)}function hg(){ba(!1)}function mg(){El.didMove=!1,document.addEventListener("pointermove",yg),document.addEventListener("pointerup",ay)}function gg(){document.removeEventListener("pointermove",yg),document.removeEventListener("pointerup",ay)}function yg(cy){let q1=wl.current;if(El.canDrag&&q1){El.didMove=!0,ma&&hg(),ya.draggableDirection==="x"?El.delta=cy.clientX-El.start:El.delta=cy.clientY-El.start,El.start!==cy.clientX&&(El.canCloseOnClick=!1);let r0=ya.draggableDirection==="x"?`${El.delta}px, var(--y)`:`0, calc(${El.delta}px + var(--y))`;q1.style.transform=`translate3d(${r0},0)`,q1.style.opacity=`${1-Math.abs(El.delta/El.removalDistance)}`}}function ay(){gg();let cy=wl.current;if(El.canDrag&&El.didMove&&cy){if(El.canDrag=!1,Math.abs(El.delta)>El.removalDistance){Ma(!0),ya.closeToast(!0),ya.collapseAll();return}cy.style.transition="transform 0.2s, opacity 0.2s",cy.style.removeProperty("transform"),cy.style.removeProperty("opacity")}}let ly={onPointerDown:Zf,onPointerUp:Jf};return Sl&&Cl&&(ly.onMouseEnter=hg,ya.stacked||(ly.onMouseLeave=pg)),pp&&(ly.onClick=cy=>{dp&&dp(cy),El.canCloseOnClick&&Mc(!0)}),{playToast:pg,pauseToast:hg,isRunning:ma,preventExitTransition:va,toastRef:wl,eventHandlers:ly}}var Ot$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,G$7=({theme:ya,type:ma,isLoading:ba,...va})=>React.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:ya==="colored"?"currentColor":`var(--toastify-icon-color-${ma})`,...va});function ao$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function so$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function no$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function ro$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function io$1(){return React.createElement("div",{className:"Toastify__spinner"})}var W$6={info:so$1,warning:ao$1,success:no$1,error:ro$1,spinner:io$1},lo$1=ya=>ya in W$6;function Nt$1({theme:ya,type:ma,isLoading:ba,icon:va}){let Ma=null,wl={theme:ya,type:ma};return va===!1||(P$a(va)?Ma=va({...wl,isLoading:ba}):reactExports.isValidElement(va)?Ma=reactExports.cloneElement(va,wl):ba?Ma=W$6.spinner():lo$1(ma)&&(Ma=W$6[ma](wl))),Ma}var wt$2=ya=>{let{isRunning:ma,preventExitTransition:ba,toastRef:va,eventHandlers:Ma,playToast:wl}=At$2(ya),{closeButton:El,children:Sl,autoClose:Cl,onClick:Mc,type:dp,hideProgressBar:pp,closeToast:hp,transition:Ef,position:Zf,className:Jf,style:pg,progressClassName:hg,updateId:mg,role:gg,progress:yg,rtl:ay,toastId:ly,deleteToast:cy,isIn:q1,isLoading:r0,closeOnClick:uE,theme:V1,ariaLabel:H1}=ya,O_=clsx("Toastify__toast",`Toastify__toast-theme--${V1}`,`Toastify__toast--${dp}`,{"Toastify__toast--rtl":ay},{"Toastify__toast--close-on-click":uE}),aE=P$a(Jf)?Jf({rtl:ay,position:Zf,type:dp,defaultClassName:O_}):clsx(O_,Jf),P_=Nt$1(ya),M_=!!yg||!Cl,sN={closeToast:hp,type:dp,theme:V1},AF=null;return El===!1||(P$a(El)?AF=El(sN):reactExports.isValidElement(El)?AF=reactExports.cloneElement(El,sN):AF=yt$1(sN)),React.createElement(Ef,{isIn:q1,done:cy,position:Zf,preventExitTransition:ba,nodeRef:va,playToast:wl},React.createElement("div",{id:ly,tabIndex:0,onClick:Mc,"data-in":q1,className:aE,...Ma,style:pg,ref:va,...q1&&{role:gg,"aria-label":H1}},P_!=null&&React.createElement("div",{className:clsx("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!r0})},P_),tt$2(Sl,ya,!ma),AF,!ya.customProgressBar&&React.createElement(gt$2,{...mg&&!M_?{key:`p-${mg}`}:{},rtl:ay,theme:V1,delay:Cl,isRunning:ma,isIn:q1,closeToast:hp,hide:pp,type:dp,className:hg,controlledProgress:M_,progress:yg||0})))},K$7=(ya,ma=!1)=>({enter:`Toastify--animate Toastify__${ya}-enter`,exit:`Toastify--animate Toastify__${ya}-exit`,appendPosition:ma}),lt$1=$$7(K$7("bounce",!0)),_o$1={position:"top-right",transition:lt$1,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:ya=>ya.altKey&&ya.code==="KeyT"};function Lt$1(ya){let ma={..._o$1,...ya},ba=ya.stacked,[va,Ma]=reactExports.useState(!0),wl=reactExports.useRef(null),{getToastToRender:El,isToastActive:Sl,count:Cl}=It$2(ma),{className:Mc,style:dp,rtl:pp,containerId:hp,hotKeys:Ef}=ma;function Zf(pg){let hg=clsx("Toastify__toast-container",`Toastify__toast-container--${pg}`,{"Toastify__toast-container--rtl":pp});return P$a(Mc)?Mc({position:pg,rtl:pp,defaultClassName:hg}):clsx(hg,B$7(Mc))}function Jf(){ba&&(Ma(!0),y$b.play())}return Ot$1(()=>{var pg;if(ba){let hg=wl.current.querySelectorAll('[data-in="true"]'),mg=12,gg=(pg=ma.position)==null?void 0:pg.includes("top"),yg=0,ay=0;Array.from(hg).reverse().forEach((ly,cy)=>{let q1=ly;q1.classList.add("Toastify__toast--stacked"),cy>0&&(q1.dataset.collapsed=`${va}`),q1.dataset.pos||(q1.dataset.pos=gg?"top":"bot");let r0=yg*(va?.2:1)+(va?0:mg*cy);q1.style.setProperty("--y",`${gg?r0:r0*-1}px`),q1.style.setProperty("--g",`${mg}`),q1.style.setProperty("--s",`${1-(va?ay:0)}`),yg+=q1.offsetHeight,ay+=.025})}},[va,Cl,ba]),reactExports.useEffect(()=>{function pg(hg){var mg;let gg=wl.current;Ef(hg)&&((mg=gg.querySelector('[tabIndex="0"]'))==null||mg.focus(),Ma(!1),y$b.pause()),hg.key==="Escape"&&(document.activeElement===gg||gg!=null&&gg.contains(document.activeElement))&&(Ma(!0),y$b.play())}return document.addEventListener("keydown",pg),()=>{document.removeEventListener("keydown",pg)}},[Ef]),React.createElement("section",{ref:wl,className:"Toastify",id:hp,onMouseEnter:()=>{ba&&(Ma(!1),y$b.pause())},onMouseLeave:Jf,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":ma["aria-label"]},El((pg,hg)=>{let mg=hg.length?{...dp}:{...dp,pointerEvents:"none"};return React.createElement("div",{tabIndex:-1,className:Zf(pg),"data-stacked":ba,style:mg,key:`c-${pg}`},hg.map(({content:gg,props:yg})=>React.createElement(wt$2,{...yg,stacked:ba,collapseAll:Jf,isIn:Sl(yg.toastId,yg.containerId),key:`t-${yg.key}`},gg)))}))}const RECENTLY_VISITED_TEAMS_KEY="recently-visited-teams",MAX_RECENTLY_VISITED=10;function transformSimpleTeamToTeam(ya){return{Branch:ya.branch||"",Config:ya.config||{},CreatedAt:ya.createdAt||"",Dependencies:ya.dependencies||{FractlModels:[],ClojureLibraries:[]},Description:ya.description||"",EntityType:ya.entityType||"",GitHubOrg:ya.gitHubOrg||"",GitHubRepo:ya.gitHubRepo||"",GithubUrl:ya.githubUrl||"",Id:ya.id||"",__Id__:ya.__Id__||ya.id||"",LastUpdatedAt:ya.lastUpdatedAt||"",Name:ya.name||"",Owner:ya.owner||"",Tags:ya.tags||null,Type:ya.type||"",Version:ya.version||"",isEditable:ya.isEditable||!1,isPin:ya.isPin==="true"||ya.isPin===!0}}function getRecentlyVisitedTeams(){try{const ya=localStorage.getItem(RECENTLY_VISITED_TEAMS_KEY);return ya?JSON.parse(ya):[]}catch{return[]}}function addRecentlyVisitedTeam(ya){try{const ba=getRecentlyVisitedTeams().filter(Ma=>Ma!==ya),va=[ya,...ba].slice(0,MAX_RECENTLY_VISITED);localStorage.setItem(RECENTLY_VISITED_TEAMS_KEY,JSON.stringify(va))}catch(ma){console.warn("Failed to save recently visited team:",ma)}}function filterAndSortTeams(ya,ma){return Object.values(ya).filter(va=>va.Name!==void 0).filter(va=>(va.Name??"").toLowerCase().includes(ma.toLowerCase())).sort((va,Ma)=>{const wl=Number(Ma.isPin??!1)-Number(va.isPin??!1);if(wl!==0)return wl;const El=(va.Name??"").toLowerCase(),Sl=(Ma.Name??"").toLowerCase();return El.localeCompare(Sl)})}function getIconsTree(ya,ma){const ba=ya.icons,va=ya.aliases||Object.create(null),Ma=Object.create(null);function wl(El){if(ba[El])return Ma[El]=[];if(!(El in Ma)){Ma[El]=null;const Sl=va[El]&&va[El].parent,Cl=Sl&&wl(Sl);Cl&&(Ma[El]=[Sl].concat(Cl))}return Ma[El]}return Object.keys(ba).concat(Object.keys(va)).forEach(wl),Ma}const defaultIconDimensions=Object.freeze({left:0,top:0,width:16,height:16}),defaultIconTransformations=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),defaultIconProps=Object.freeze({...defaultIconDimensions,...defaultIconTransformations}),defaultExtendedIconProps=Object.freeze({...defaultIconProps,body:"",hidden:!1});function mergeIconTransformations(ya,ma){const ba={};!ya.hFlip!=!ma.hFlip&&(ba.hFlip=!0),!ya.vFlip!=!ma.vFlip&&(ba.vFlip=!0);const va=((ya.rotate||0)+(ma.rotate||0))%4;return va&&(ba.rotate=va),ba}function mergeIconData(ya,ma){const ba=mergeIconTransformations(ya,ma);for(const va in defaultExtendedIconProps)va in defaultIconTransformations?va in ya&&!(va in ba)&&(ba[va]=defaultIconTransformations[va]):va in ma?ba[va]=ma[va]:va in ya&&(ba[va]=ya[va]);return ba}function internalGetIconData(ya,ma,ba){const va=ya.icons,Ma=ya.aliases||Object.create(null);let wl={};function El(Sl){wl=mergeIconData(va[Sl]||Ma[Sl],wl)}return El(ma),ba.forEach(El),mergeIconData(ya,wl)}function parseIconSet(ya,ma){const ba=[];if(typeof ya!="object"||typeof ya.icons!="object")return ba;ya.not_found instanceof Array&&ya.not_found.forEach(Ma=>{ma(Ma,null),ba.push(Ma)});const va=getIconsTree(ya);for(const Ma in va){const wl=va[Ma];wl&&(ma(Ma,internalGetIconData(ya,Ma,wl)),ba.push(Ma))}return ba}const optionalPropertyDefaults={provider:"",aliases:{},not_found:{},...defaultIconDimensions};function checkOptionalProps(ya,ma){for(const ba in ma)if(ba in ya&&typeof ya[ba]!=typeof ma[ba])return!1;return!0}function quicklyValidateIconSet(ya){if(typeof ya!="object"||ya===null)return null;const ma=ya;if(typeof ma.prefix!="string"||!ya.icons||typeof ya.icons!="object"||!checkOptionalProps(ya,optionalPropertyDefaults))return null;const ba=ma.icons;for(const Ma in ba){const wl=ba[Ma];if(!Ma||typeof wl.body!="string"||!checkOptionalProps(wl,defaultExtendedIconProps))return null}const va=ma.aliases||Object.create(null);for(const Ma in va){const wl=va[Ma],El=wl.parent;if(!Ma||typeof El!="string"||!ba[El]&&!va[El]||!checkOptionalProps(wl,defaultExtendedIconProps))return null}return ma}const dataStorage=Object.create(null);function newStorage(ya,ma){return{provider:ya,prefix:ma,icons:Object.create(null),missing:new Set}}function getStorage(ya,ma){const ba=dataStorage[ya]||(dataStorage[ya]=Object.create(null));return ba[ma]||(ba[ma]=newStorage(ya,ma))}function addIconSet(ya,ma){return quicklyValidateIconSet(ma)?parseIconSet(ma,(ba,va)=>{va?ya.icons[ba]=va:ya.missing.add(ba)}):[]}function addIconToStorage(ya,ma,ba){try{if(typeof ba.body=="string")return ya.icons[ma]={...ba},!0}catch{}return!1}const matchIconName=/^[a-z0-9]+(-[a-z0-9]+)*$/,stringToIcon=(ya,ma,ba,va="")=>{const Ma=ya.split(":");if(ya.slice(0,1)==="@"){if(Ma.length<2||Ma.length>3)return null;va=Ma.shift().slice(1)}if(Ma.length>3||!Ma.length)return null;if(Ma.length>1){const Sl=Ma.pop(),Cl=Ma.pop(),Mc={provider:Ma.length>0?Ma[0]:va,prefix:Cl,name:Sl};return ma&&!validateIconName(Mc)?null:Mc}const wl=Ma[0],El=wl.split("-");if(El.length>1){const Sl={provider:va,prefix:El.shift(),name:El.join("-")};return ma&&!validateIconName(Sl)?null:Sl}if(ba&&va===""){const Sl={provider:va,prefix:"",name:wl};return ma&&!validateIconName(Sl,ba)?null:Sl}return null},validateIconName=(ya,ma)=>ya?!!((ma&&ya.prefix===""||ya.prefix)&&ya.name):!1;let simpleNames=!1;function allowSimpleNames(ya){return typeof ya=="boolean"&&(simpleNames=ya),simpleNames}function getIconData(ya){const ma=typeof ya=="string"?stringToIcon(ya,!0,simpleNames):ya;if(ma){const ba=getStorage(ma.provider,ma.prefix),va=ma.name;return ba.icons[va]||(ba.missing.has(va)?null:void 0)}}function addIcon(ya,ma){const ba=stringToIcon(ya,!0,simpleNames);if(!ba)return!1;const va=getStorage(ba.provider,ba.prefix);return ma?addIconToStorage(va,ba.name,ma):(va.missing.add(ba.name),!0)}function addCollection(ya,ma){if(typeof ya!="object")return!1;if(typeof ma!="string"&&(ma=ya.provider||""),simpleNames&&!ma&&!ya.prefix){let Ma=!1;return quicklyValidateIconSet(ya)&&(ya.prefix="",parseIconSet(ya,(wl,El)=>{addIcon(wl,El)&&(Ma=!0)})),Ma}const ba=ya.prefix;if(!validateIconName({prefix:ba,name:"a"}))return!1;const va=getStorage(ma,ba);return!!addIconSet(va,ya)}const defaultIconSizeCustomisations=Object.freeze({width:null,height:null}),defaultIconCustomisations=Object.freeze({...defaultIconSizeCustomisations,...defaultIconTransformations}),unitsSplit=/(-?[0-9.]*[0-9]+[0-9.]*)/g,unitsTest=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function calculateSize(ya,ma,ba){if(ma===1)return ya;if(ba=ba||100,typeof ya=="number")return Math.ceil(ya*ma*ba)/ba;if(typeof ya!="string")return ya;const va=ya.split(unitsSplit);if(va===null||!va.length)return ya;const Ma=[];let wl=va.shift(),El=unitsTest.test(wl);for(;;){if(El){const Sl=parseFloat(wl);isNaN(Sl)?Ma.push(wl):Ma.push(Math.ceil(Sl*ma*ba)/ba)}else Ma.push(wl);if(wl=va.shift(),wl===void 0)return Ma.join("");El=!El}}function splitSVGDefs(ya,ma="defs"){let ba="";const va=ya.indexOf("<"+ma);for(;va>=0;){const Ma=ya.indexOf(">",va),wl=ya.indexOf("</"+ma);if(Ma===-1||wl===-1)break;const El=ya.indexOf(">",wl);if(El===-1)break;ba+=ya.slice(Ma+1,wl).trim(),ya=ya.slice(0,va).trim()+ya.slice(El+1)}return{defs:ba,content:ya}}function mergeDefsAndContent(ya,ma){return ya?"<defs>"+ya+"</defs>"+ma:ma}function wrapSVGContent(ya,ma,ba){const va=splitSVGDefs(ya);return mergeDefsAndContent(va.defs,ma+va.content+ba)}const isUnsetKeyword=ya=>ya==="unset"||ya==="undefined"||ya==="none";function iconToSVG(ya,ma){const ba={...defaultIconProps,...ya},va={...defaultIconCustomisations,...ma},Ma={left:ba.left,top:ba.top,width:ba.width,height:ba.height};let wl=ba.body;[ba,va].forEach(Jf=>{const pg=[],hg=Jf.hFlip,mg=Jf.vFlip;let gg=Jf.rotate;hg?mg?gg+=2:(pg.push("translate("+(Ma.width+Ma.left).toString()+" "+(0-Ma.top).toString()+")"),pg.push("scale(-1 1)"),Ma.top=Ma.left=0):mg&&(pg.push("translate("+(0-Ma.left).toString()+" "+(Ma.height+Ma.top).toString()+")"),pg.push("scale(1 -1)"),Ma.top=Ma.left=0);let yg;switch(gg<0&&(gg-=Math.floor(gg/4)*4),gg=gg%4,gg){case 1:yg=Ma.height/2+Ma.top,pg.unshift("rotate(90 "+yg.toString()+" "+yg.toString()+")");break;case 2:pg.unshift("rotate(180 "+(Ma.width/2+Ma.left).toString()+" "+(Ma.height/2+Ma.top).toString()+")");break;case 3:yg=Ma.width/2+Ma.left,pg.unshift("rotate(-90 "+yg.toString()+" "+yg.toString()+")");break}gg%2===1&&(Ma.left!==Ma.top&&(yg=Ma.left,Ma.left=Ma.top,Ma.top=yg),Ma.width!==Ma.height&&(yg=Ma.width,Ma.width=Ma.height,Ma.height=yg)),pg.length&&(wl=wrapSVGContent(wl,'<g transform="'+pg.join(" ")+'">',"</g>"))});const El=va.width,Sl=va.height,Cl=Ma.width,Mc=Ma.height;let dp,pp;El===null?(pp=Sl===null?"1em":Sl==="auto"?Mc:Sl,dp=calculateSize(pp,Cl/Mc)):(dp=El==="auto"?Cl:El,pp=Sl===null?calculateSize(dp,Mc/Cl):Sl==="auto"?Mc:Sl);const hp={},Ef=(Jf,pg)=>{isUnsetKeyword(pg)||(hp[Jf]=pg.toString())};Ef("width",dp),Ef("height",pp);const Zf=[Ma.left,Ma.top,Cl,Mc];return hp.viewBox=Zf.join(" "),{attributes:hp,viewBox:Zf,body:wl}}const regex=/\sid="(\S+)"/g,randomPrefix="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let counter=0;function replaceIDs(ya,ma=randomPrefix){const ba=[];let va;for(;va=regex.exec(ya);)ba.push(va[1]);if(!ba.length)return ya;const Ma="suffix"+(Math.random()*16777216|Date.now()).toString(16);return ba.forEach(wl=>{const El=typeof ma=="function"?ma(wl):ma+(counter++).toString(),Sl=wl.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");ya=ya.replace(new RegExp('([#;"])('+Sl+')([")]|\\.[a-z])',"g"),"$1"+El+Ma+"$3")}),ya=ya.replace(new RegExp(Ma,"g"),""),ya}const storage=Object.create(null);function setAPIModule(ya,ma){storage[ya]=ma}function getAPIModule(ya){return storage[ya]||storage[""]}function createAPIConfig(ya){let ma;if(typeof ya.resources=="string")ma=[ya.resources];else if(ma=ya.resources,!(ma instanceof Array)||!ma.length)return null;return{resources:ma,path:ya.path||"/",maxURL:ya.maxURL||500,rotate:ya.rotate||750,timeout:ya.timeout||5e3,random:ya.random===!0,index:ya.index||0,dataAfterTimeout:ya.dataAfterTimeout!==!1}}const configStorage=Object.create(null),fallBackAPISources=["https://api.simplesvg.com","https://api.unisvg.com"],fallBackAPI=[];for(;fallBackAPISources.length>0;)fallBackAPISources.length===1||Math.random()>.5?fallBackAPI.push(fallBackAPISources.shift()):fallBackAPI.push(fallBackAPISources.pop());configStorage[""]=createAPIConfig({resources:["https://api.iconify.design"].concat(fallBackAPI)});function addAPIProvider(ya,ma){const ba=createAPIConfig(ma);return ba===null?!1:(configStorage[ya]=ba,!0)}function getAPIConfig(ya){return configStorage[ya]}const detectFetch=()=>{let ya;try{if(ya=fetch,typeof ya=="function")return ya}catch{}};let fetchModule=detectFetch();function calculateMaxLength(ya,ma){const ba=getAPIConfig(ya);if(!ba)return 0;let va;if(!ba.maxURL)va=0;else{let Ma=0;ba.resources.forEach(El=>{Ma=Math.max(Ma,El.length)});const wl=ma+".json?icons=";va=ba.maxURL-Ma-ba.path.length-wl.length}return va}function shouldAbort(ya){return ya===404}const prepare=(ya,ma,ba)=>{const va=[],Ma=calculateMaxLength(ya,ma),wl="icons";let El={type:wl,provider:ya,prefix:ma,icons:[]},Sl=0;return ba.forEach((Cl,Mc)=>{Sl+=Cl.length+1,Sl>=Ma&&Mc>0&&(va.push(El),El={type:wl,provider:ya,prefix:ma,icons:[]},Sl=Cl.length),El.icons.push(Cl)}),va.push(El),va};function getPath$2(ya){if(typeof ya=="string"){const ma=getAPIConfig(ya);if(ma)return ma.path}return"/"}const send=(ya,ma,ba)=>{if(!fetchModule){ba("abort",424);return}let va=getPath$2(ma.provider);switch(ma.type){case"icons":{const wl=ma.prefix,Sl=ma.icons.join(","),Cl=new URLSearchParams({icons:Sl});va+=wl+".json?"+Cl.toString();break}case"custom":{const wl=ma.uri;va+=wl.slice(0,1)==="/"?wl.slice(1):wl;break}default:ba("abort",400);return}let Ma=503;fetchModule(ya+va).then(wl=>{const El=wl.status;if(El!==200){setTimeout(()=>{ba(shouldAbort(El)?"abort":"next",El)});return}return Ma=501,wl.json()}).then(wl=>{if(typeof wl!="object"||wl===null){setTimeout(()=>{wl===404?ba("abort",wl):ba("next",Ma)});return}setTimeout(()=>{ba("success",wl)})}).catch(()=>{ba("next",Ma)})},fetchAPIModule={prepare,send};function removeCallback(ya,ma){ya.forEach(ba=>{const va=ba.loaderCallbacks;va&&(ba.loaderCallbacks=va.filter(Ma=>Ma.id!==ma))})}function updateCallbacks(ya){ya.pendingCallbacksFlag||(ya.pendingCallbacksFlag=!0,setTimeout(()=>{ya.pendingCallbacksFlag=!1;const ma=ya.loaderCallbacks?ya.loaderCallbacks.slice(0):[];if(!ma.length)return;let ba=!1;const va=ya.provider,Ma=ya.prefix;ma.forEach(wl=>{const El=wl.icons,Sl=El.pending.length;El.pending=El.pending.filter(Cl=>{if(Cl.prefix!==Ma)return!0;const Mc=Cl.name;if(ya.icons[Mc])El.loaded.push({provider:va,prefix:Ma,name:Mc});else if(ya.missing.has(Mc))El.missing.push({provider:va,prefix:Ma,name:Mc});else return ba=!0,!0;return!1}),El.pending.length!==Sl&&(ba||removeCallback([ya],wl.id),wl.callback(El.loaded.slice(0),El.missing.slice(0),El.pending.slice(0),wl.abort))})}))}let idCounter$1=0;function storeCallback(ya,ma,ba){const va=idCounter$1++,Ma=removeCallback.bind(null,ba,va);if(!ma.pending.length)return Ma;const wl={id:va,icons:ma,callback:ya,abort:Ma};return ba.forEach(El=>{(El.loaderCallbacks||(El.loaderCallbacks=[])).push(wl)}),Ma}function sortIcons(ya){const ma={loaded:[],missing:[],pending:[]},ba=Object.create(null);ya.sort((Ma,wl)=>Ma.provider!==wl.provider?Ma.provider.localeCompare(wl.provider):Ma.prefix!==wl.prefix?Ma.prefix.localeCompare(wl.prefix):Ma.name.localeCompare(wl.name));let va={provider:"",prefix:"",name:""};return ya.forEach(Ma=>{if(va.name===Ma.name&&va.prefix===Ma.prefix&&va.provider===Ma.provider)return;va=Ma;const wl=Ma.provider,El=Ma.prefix,Sl=Ma.name,Cl=ba[wl]||(ba[wl]=Object.create(null)),Mc=Cl[El]||(Cl[El]=getStorage(wl,El));let dp;Sl in Mc.icons?dp=ma.loaded:El===""||Mc.missing.has(Sl)?dp=ma.missing:dp=ma.pending;const pp={provider:wl,prefix:El,name:Sl};dp.push(pp)}),ma}function listToIcons(ya,ma=!0,ba=!1){const va=[];return ya.forEach(Ma=>{const wl=typeof Ma=="string"?stringToIcon(Ma,ma,ba):Ma;wl&&va.push(wl)}),va}const defaultConfig={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function sendQuery(ya,ma,ba,va){const Ma=ya.resources.length,wl=ya.random?Math.floor(Math.random()*Ma):ya.index;let El;if(ya.random){let ly=ya.resources.slice(0);for(El=[];ly.length>1;){const cy=Math.floor(Math.random()*ly.length);El.push(ly[cy]),ly=ly.slice(0,cy).concat(ly.slice(cy+1))}El=El.concat(ly)}else El=ya.resources.slice(wl).concat(ya.resources.slice(0,wl));const Sl=Date.now();let Cl="pending",Mc=0,dp,pp=null,hp=[],Ef=[];typeof va=="function"&&Ef.push(va);function Zf(){pp&&(clearTimeout(pp),pp=null)}function Jf(){Cl==="pending"&&(Cl="aborted"),Zf(),hp.forEach(ly=>{ly.status==="pending"&&(ly.status="aborted")}),hp=[]}function pg(ly,cy){cy&&(Ef=[]),typeof ly=="function"&&Ef.push(ly)}function hg(){return{startTime:Sl,payload:ma,status:Cl,queriesSent:Mc,queriesPending:hp.length,subscribe:pg,abort:Jf}}function mg(){Cl="failed",Ef.forEach(ly=>{ly(void 0,dp)})}function gg(){hp.forEach(ly=>{ly.status==="pending"&&(ly.status="aborted")}),hp=[]}function yg(ly,cy,q1){const r0=cy!=="success";switch(hp=hp.filter(uE=>uE!==ly),Cl){case"pending":break;case"failed":if(r0||!ya.dataAfterTimeout)return;break;default:return}if(cy==="abort"){dp=q1,mg();return}if(r0){dp=q1,hp.length||(El.length?ay():mg());return}if(Zf(),gg(),!ya.random){const uE=ya.resources.indexOf(ly.resource);uE!==-1&&uE!==ya.index&&(ya.index=uE)}Cl="completed",Ef.forEach(uE=>{uE(q1)})}function ay(){if(Cl!=="pending")return;Zf();const ly=El.shift();if(ly===void 0){if(hp.length){pp=setTimeout(()=>{Zf(),Cl==="pending"&&(gg(),mg())},ya.timeout);return}mg();return}const cy={status:"pending",resource:ly,callback:(q1,r0)=>{yg(cy,q1,r0)}};hp.push(cy),Mc++,pp=setTimeout(ay,ya.rotate),ba(ly,ma,cy.callback)}return setTimeout(ay),hg}function initRedundancy(ya){const ma={...defaultConfig,...ya};let ba=[];function va(){ba=ba.filter(Sl=>Sl().status==="pending")}function Ma(Sl,Cl,Mc){const dp=sendQuery(ma,Sl,Cl,(pp,hp)=>{va(),Mc&&Mc(pp,hp)});return ba.push(dp),dp}function wl(Sl){return ba.find(Cl=>Sl(Cl))||null}return{query:Ma,find:wl,setIndex:Sl=>{ma.index=Sl},getIndex:()=>ma.index,cleanup:va}}function emptyCallback$1(){}const redundancyCache=Object.create(null);function getRedundancyCache(ya){if(!redundancyCache[ya]){const ma=getAPIConfig(ya);if(!ma)return;const ba=initRedundancy(ma),va={config:ma,redundancy:ba};redundancyCache[ya]=va}return redundancyCache[ya]}function sendAPIQuery(ya,ma,ba){let va,Ma;if(typeof ya=="string"){const wl=getAPIModule(ya);if(!wl)return ba(void 0,424),emptyCallback$1;Ma=wl.send;const El=getRedundancyCache(ya);El&&(va=El.redundancy)}else{const wl=createAPIConfig(ya);if(wl){va=initRedundancy(wl);const El=ya.resources?ya.resources[0]:"",Sl=getAPIModule(El);Sl&&(Ma=Sl.send)}}return!va||!Ma?(ba(void 0,424),emptyCallback$1):va.query(ma,Ma,ba)().abort}function emptyCallback(){}function loadedNewIcons(ya){ya.iconsLoaderFlag||(ya.iconsLoaderFlag=!0,setTimeout(()=>{ya.iconsLoaderFlag=!1,updateCallbacks(ya)}))}function checkIconNamesForAPI(ya){const ma=[],ba=[];return ya.forEach(va=>{(va.match(matchIconName)?ma:ba).push(va)}),{valid:ma,invalid:ba}}function parseLoaderResponse(ya,ma,ba){function va(){const Ma=ya.pendingIcons;ma.forEach(wl=>{Ma&&Ma.delete(wl),ya.icons[wl]||ya.missing.add(wl)})}if(ba&&typeof ba=="object")try{if(!addIconSet(ya,ba).length){va();return}}catch(Ma){console.error(Ma)}va(),loadedNewIcons(ya)}function parsePossiblyAsyncResponse(ya,ma){ya instanceof Promise?ya.then(ba=>{ma(ba)}).catch(()=>{ma(null)}):ma(ya)}function loadNewIcons(ya,ma){ya.iconsToLoad?ya.iconsToLoad=ya.iconsToLoad.concat(ma).sort():ya.iconsToLoad=ma,ya.iconsQueueFlag||(ya.iconsQueueFlag=!0,setTimeout(()=>{ya.iconsQueueFlag=!1;const{provider:ba,prefix:va}=ya,Ma=ya.iconsToLoad;if(delete ya.iconsToLoad,!Ma||!Ma.length)return;const wl=ya.loadIcon;if(ya.loadIcons&&(Ma.length>1||!wl)){parsePossiblyAsyncResponse(ya.loadIcons(Ma,va,ba),dp=>{parseLoaderResponse(ya,Ma,dp)});return}if(wl){Ma.forEach(dp=>{const pp=wl(dp,va,ba);parsePossiblyAsyncResponse(pp,hp=>{const Ef=hp?{prefix:va,icons:{[dp]:hp}}:null;parseLoaderResponse(ya,[dp],Ef)})});return}const{valid:El,invalid:Sl}=checkIconNamesForAPI(Ma);if(Sl.length&&parseLoaderResponse(ya,Sl,null),!El.length)return;const Cl=va.match(matchIconName)?getAPIModule(ba):null;if(!Cl){parseLoaderResponse(ya,El,null);return}Cl.prepare(ba,va,El).forEach(dp=>{sendAPIQuery(ba,dp,pp=>{parseLoaderResponse(ya,dp.icons,pp)})})}))}const loadIcons=(ya,ma)=>{const ba=listToIcons(ya,!0,allowSimpleNames()),va=sortIcons(ba);if(!va.pending.length){let Cl=!0;return ma&&setTimeout(()=>{Cl&&ma(va.loaded,va.missing,va.pending,emptyCallback)}),()=>{Cl=!1}}const Ma=Object.create(null),wl=[];let El,Sl;return va.pending.forEach(Cl=>{const{provider:Mc,prefix:dp}=Cl;if(dp===Sl&&Mc===El)return;El=Mc,Sl=dp,wl.push(getStorage(Mc,dp));const pp=Ma[Mc]||(Ma[Mc]=Object.create(null));pp[dp]||(pp[dp]=[])}),va.pending.forEach(Cl=>{const{provider:Mc,prefix:dp,name:pp}=Cl,hp=getStorage(Mc,dp),Ef=hp.pendingIcons||(hp.pendingIcons=new Set);Ef.has(pp)||(Ef.add(pp),Ma[Mc][dp].push(pp))}),wl.forEach(Cl=>{const Mc=Ma[Cl.provider][Cl.prefix];Mc.length&&loadNewIcons(Cl,Mc)}),ma?storeCallback(ma,va,wl):emptyCallback};function mergeCustomisations(ya,ma){const ba={...ya};for(const va in ma){const Ma=ma[va],wl=typeof Ma;va in defaultIconSizeCustomisations?(Ma===null||Ma&&(wl==="string"||wl==="number"))&&(ba[va]=Ma):wl===typeof ba[va]&&(ba[va]=va==="rotate"?Ma%4:Ma)}return ba}const separator$1=/[\s,]+/;function flipFromString(ya,ma){ma.split(separator$1).forEach(ba=>{switch(ba.trim()){case"horizontal":ya.hFlip=!0;break;case"vertical":ya.vFlip=!0;break}})}function rotateFromString(ya,ma=0){const ba=ya.replace(/^-?[0-9.]*/,"");function va(Ma){for(;Ma<0;)Ma+=4;return Ma%4}if(ba===""){const Ma=parseInt(ya);return isNaN(Ma)?0:va(Ma)}else if(ba!==ya){let Ma=0;switch(ba){case"%":Ma=25;break;case"deg":Ma=90}if(Ma){let wl=parseFloat(ya.slice(0,ya.length-ba.length));return isNaN(wl)?0:(wl=wl/Ma,wl%1===0?va(wl):0)}}return ma}function iconToHTML(ya,ma){let ba=ya.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const va in ma)ba+=" "+va+'="'+ma[va]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+ba+">"+ya+"</svg>"}function encodeSVGforURL(ya){return ya.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function svgToData(ya){return"data:image/svg+xml,"+encodeSVGforURL(ya)}function svgToURL(ya){return'url("'+svgToData(ya)+'")'}let policy;function createPolicy(){try{policy=window.trustedTypes.createPolicy("iconify",{createHTML:ya=>ya})}catch{policy=null}}function cleanUpInnerHTML(ya){return policy===void 0&&createPolicy(),policy?policy.createHTML(ya):ya}const defaultExtendedIconCustomisations={...defaultIconCustomisations,inline:!1},svgDefaults={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},commonProps={display:"inline-block"},monotoneProps={backgroundColor:"currentColor"},coloredProps={backgroundColor:"transparent"},propsToAdd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},propsToAddTo={WebkitMask:monotoneProps,mask:monotoneProps,background:coloredProps};for(const ya in propsToAddTo){const ma=propsToAddTo[ya];for(const ba in propsToAdd)ma[ya+ba]=propsToAdd[ba]}const inlineDefaults={...defaultExtendedIconCustomisations,inline:!0};function fixSize(ya){return ya+(ya.match(/^[-0-9.]+$/)?"px":"")}const render=(ya,ma,ba)=>{const va=ma.inline?inlineDefaults:defaultExtendedIconCustomisations,Ma=mergeCustomisations(va,ma),wl=ma.mode||"svg",El={},Sl=ma.style||{},Cl={...wl==="svg"?svgDefaults:{}};if(ba){const pg=stringToIcon(ba,!1,!0);if(pg){const hg=["iconify"],mg=["provider","prefix"];for(const gg of mg)pg[gg]&&hg.push("iconify--"+pg[gg]);Cl.className=hg.join(" ")}}for(let pg in ma){const hg=ma[pg];if(hg!==void 0)switch(pg){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":Cl.ref=hg;break;case"className":Cl[pg]=(Cl[pg]?Cl[pg]+" ":"")+hg;break;case"inline":case"hFlip":case"vFlip":Ma[pg]=hg===!0||hg==="true"||hg===1;break;case"flip":typeof hg=="string"&&flipFromString(Ma,hg);break;case"color":El.color=hg;break;case"rotate":typeof hg=="string"?Ma[pg]=rotateFromString(hg):typeof hg=="number"&&(Ma[pg]=hg);break;case"ariaHidden":case"aria-hidden":hg!==!0&&hg!=="true"&&delete Cl["aria-hidden"];break;default:va[pg]===void 0&&(Cl[pg]=hg)}}const Mc=iconToSVG(ya,Ma),dp=Mc.attributes;if(Ma.inline&&(El.verticalAlign="-0.125em"),wl==="svg"){Cl.style={...El,...Sl},Object.assign(Cl,dp);let pg=0,hg=ma.id;return typeof hg=="string"&&(hg=hg.replace(/-/g,"_")),Cl.dangerouslySetInnerHTML={__html:cleanUpInnerHTML(replaceIDs(Mc.body,hg?()=>hg+"ID"+pg++:"iconifyReact"))},reactExports.createElement("svg",Cl)}const{body:pp,width:hp,height:Ef}=ya,Zf=wl==="mask"||(wl==="bg"?!1:pp.indexOf("currentColor")!==-1),Jf=iconToHTML(pp,{...dp,width:hp+"",height:Ef+""});return Cl.style={...El,"--svg":svgToURL(Jf),width:fixSize(dp.width),height:fixSize(dp.height),...commonProps,...Zf?monotoneProps:coloredProps,...Sl},reactExports.createElement("span",Cl)};allowSimpleNames(!0);setAPIModule("",fetchAPIModule);if(typeof document<"u"&&typeof window<"u"){const ya=window;if(ya.IconifyPreload!==void 0){const ma=ya.IconifyPreload,ba="Invalid IconifyPreload syntax.";typeof ma=="object"&&ma!==null&&(ma instanceof Array?ma:[ma]).forEach(va=>{try{(typeof va!="object"||va===null||va instanceof Array||typeof va.icons!="object"||typeof va.prefix!="string"||!addCollection(va))&&console.error(ba)}catch{console.error(ba)}})}if(ya.IconifyProviders!==void 0){const ma=ya.IconifyProviders;if(typeof ma=="object"&&ma!==null)for(let ba in ma){const va="IconifyProviders["+ba+"] is invalid.";try{const Ma=ma[ba];if(typeof Ma!="object"||!Ma||Ma.resources===void 0)continue;addAPIProvider(ba,Ma)||console.error(va)}catch{console.error(va)}}}}function IconComponent(ya){const[ma,ba]=reactExports.useState(!!ya.ssr),[va,Ma]=reactExports.useState({});function wl(Ef){if(Ef){const Zf=ya.icon;if(typeof Zf=="object")return{name:"",data:Zf};const Jf=getIconData(Zf);if(Jf)return{name:Zf,data:Jf}}return{name:""}}const[El,Sl]=reactExports.useState(wl(!!ya.ssr));function Cl(){const Ef=va.callback;Ef&&(Ef(),Ma({}))}function Mc(Ef){if(JSON.stringify(El)!==JSON.stringify(Ef))return Cl(),Sl(Ef),!0}function dp(){var Ef;const Zf=ya.icon;if(typeof Zf=="object"){Mc({name:"",data:Zf});return}const Jf=getIconData(Zf);if(Mc({name:Zf,data:Jf}))if(Jf===void 0){const pg=loadIcons([Zf],dp);Ma({callback:pg})}else Jf&&((Ef=ya.onLoad)===null||Ef===void 0||Ef.call(ya,Zf))}reactExports.useEffect(()=>(ba(!0),Cl),[]),reactExports.useEffect(()=>{ma&&dp()},[ya.icon,ma]);const{name:pp,data:hp}=El;return hp?render({...defaultIconProps,...hp},ya,pp):ya.children?ya.children:ya.fallback?ya.fallback:reactExports.createElement("span",{})}const Icon=reactExports.forwardRef((ya,ma)=>IconComponent({...ya,_ref:ma}));reactExports.forwardRef((ya,ma)=>IconComponent({inline:!0,...ya,_ref:ma}));const getDate=ya=>{const ma=new Date(ya),ba=ma.getMonth()+1,va=ma.getDate(),Ma=ma.getFullYear(),wl=ma.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0});return`${ba}/${va}/${Ma} ${wl}`},registerBase64Icon=(ya,ma)=>{try{const ba=ma.replace(/^data:image\/svg\+xml;base64,/,""),va=atob(ba),Ma=va.match(/width="([^"]+)"/),wl=va.match(/height="([^"]+)"/),El=Ma?Ma[1]:"1536",Sl=wl?wl[1]:"1280",Cl=va.replace(/^.*?<svg[^>]*>(.*)<\/svg>.*$/,"$1");addIcon(ya,{body:Cl,width:parseInt(El,10),height:parseInt(Sl,10)})}catch(ba){console.error(`Failed to register icon: ${ya}`,ba)}};function extractRepoNameFromUrl(ya){const ma=ya.split("/");return ma[ma.length-1]}function scrollIntoView$1(ya,ma=!0){const ba=document.getElementById(ya);ba&&ba.scrollIntoView({behavior:ma?"smooth":"auto",block:"start",inline:"center"})}function roundTo3Decimals(ya){return ya.toFixed(3)}function convertBytes(ya){return ya<1024?`${ya} bytes`:ya<1024*1024?`${roundTo3Decimals(ya/1024)} KB`:ya<1024*1024*1024?`${roundTo3Decimals(ya/(1024*1024))} MB`:`${roundTo3Decimals(ya/(1024*1024*1024))} GB`}function generateGitHubUrl(ya,ma,ba,va){if(!ya||!ma)throw new Error("GitHub organization and repository name are required");if(ba&&va){const Ma=ba.trim(),wl=va.trim();return!Ma||!wl?(console.warn("GitHub credentials contain only whitespace - falling back to public URL"),`https://github.com/${ya}/${ma}.git`):`https://${Ma}:${wl}@github.com/${ya}/${ma}.git`}return console.warn(`No GitHub credentials provided for ${ya}/${ma} - using public URL (may fail for private repositories)`),`https://github.com/${ya}/${ma}.git`}async function checkRepoVisibility(ya,ma){try{const ba=await fetch(`https://api.github.com/repos/${ya}/${ma}`,{headers:{Accept:"application/vnd.github.v3+json"}});return ba.status===404?"not_found":ba.ok?(await ba.json()).private?"private":"public":"not_found"}catch{return"not_found"}}const useWorkspace=()=>{const ya=axiosInstance("meta"),ma=useAppStore(dp=>dp.user),ba=useAppStore(dp=>dp.authData.userProfileId),va=useAppStore(dp=>dp.authData.username),Ma=useAppStore(dp=>dp.setUser),wl=useAppStore(dp=>dp.setWorkspace),El=async()=>{let dp=ma?.user_profile_id;if(dp||(dp=ba||void 0),!dp){const pp=localStorage.getItem("user_profile_id");pp&&(dp=pp)}if(!dp){y$b.error("User Profile ID not found. Please re-login.");return}return dp},Sl=async()=>{try{if(!await El())throw new Error("User Profile ID not found. Please re-login.");const hp=await ya.get("/AgentMeta/Workspace");if(console.log("fetchWorkspace response:",hp.data),!hp.data||Array.isArray(hp.data)&&hp.data.length===0)return console.log("GetWorkspace returned empty or null response - workspace does not exist"),null;let Ef;if(hp.data.id||hp.data.Id)Ef=hp.data;else if(Array.isArray(hp.data)&&hp.data.length>0){const Zf=hp.data[0];Zf?.Workspace?Ef=Zf.Workspace:Zf?.result&&Array.isArray(Zf.result)&&Zf.result.length>0?Ef=Zf.result[0]:Zf&&(Zf.id||Zf.Id)&&(Ef=Zf)}return Ef||(console.log("No workspace found in response"),null)}catch(dp){return console.error("fetchWorkspace error:",dp),null}};return{fetchWorkspace:Sl,createWorkspace:async(dp,pp)=>{try{if(!await El())throw new Error("User Profile ID not found. Please re-login.");const Zf=await ya.post("/AgentMeta/Workspace",{name:dp,createdBy:pp});let Jf;if(Zf.data.UserWorkspace?.Workspace)Jf=Zf.data.UserWorkspace.Workspace;else if(Zf.data.id)Jf=Zf.data;else if(Array.isArray(Zf.data)&&Zf.data.length>0){const pg=Zf.data[0];pg?.result&&Array.isArray(pg.result)&&pg.result.length>0?Jf=pg.result[0]:pg?.Workspace?Jf=pg.Workspace:Jf=pg}else if(Zf.data.Workspace)Jf=Zf.data.Workspace;else{const pg=Object.keys(Zf.data);pg.length>0&&(Jf=Zf.data[pg[0]])}return Jf||(console.error("Failed to parse workspace from create response"),null)}catch(hp){throw console.error("createWorkspace error:",hp),y$b.error(hp?.response?.data?.reason||"Failed to create workspace"),hp}},fetchOrCreateWorkspace:async dp=>{if(!(va||ma?.Email))throw new Error("No username found in store");let hp=await Sl();if(hp){const Ef=hp.id||hp.Id;if(Ef&&!localStorage.getItem("workspace_id")){localStorage.setItem("workspace_id",Ef);try{ma?Ma({...ma,CurrentWorkspace:{Id:Ef}}):wl(Ef)}catch{}}}else{console.error(`Workspace '${dp}' not found - workspace creation disabled`);try{if(await El()){const Jf=await ya.get("/AgentMeta/Workspace");if(Jf.data&&Array.isArray(Jf.data)&&Jf.data.length>0){const pg=Jf.data[Jf.data.length-1];if(hp=pg.Workspace||pg,hp){const hg=hp.id||hp.Id;if(hg){localStorage.setItem("workspace_id",hg);try{ma?Ma({...ma,CurrentWorkspace:{Id:hg}}):wl(hg)}catch{}console.log("Using existing workspace instead:",hg)}}}}}catch(Ef){console.error("Failed to fetch all workspaces:",Ef)}if(!hp)throw new Error(`Workspace '${dp}' not found and creation is disabled`)}return hp}}},deletePlaygroundTeam=ya=>[],STORAGE_KEY="playground-workspace-apps",ID_COUNTER_KEY="playground-workspace-id-counter";class PlaygroundWorkspaceStorage{apps=new Map;idCounter=0;constructor(){this.loadFromLocalStorage()}loadFromLocalStorage(){try{const ma=localStorage.getItem(STORAGE_KEY);if(ma){const va=JSON.parse(ma);va.forEach(Ma=>{this.apps.set(Ma.Id,Ma)}),console.log(`[PLAYGROUND] Loaded ${va.length} workspace apps from localStorage`)}const ba=localStorage.getItem(ID_COUNTER_KEY);ba&&(this.idCounter=parseInt(ba,10))}catch(ma){console.error("[PLAYGROUND] Error loading workspace apps from localStorage:",ma)}}saveToLocalStorage(){try{const ma=Array.from(this.apps.values());localStorage.setItem(STORAGE_KEY,JSON.stringify(ma)),localStorage.setItem(ID_COUNTER_KEY,this.idCounter.toString()),console.log(`[PLAYGROUND] Saved ${ma.length} workspace apps to localStorage`)}catch(ma){console.error("[PLAYGROUND] Error saving workspace apps to localStorage:",ma)}}getApps(){return Array.from(this.apps.values())}addApp(ma){const ba=ma.Id||`playground-app-${++this.idCounter}`,va={...ma,Id:ba};return this.apps.set(ba,va),this.saveToLocalStorage(),va}updateApp(ma,ba){const va=this.apps.get(ma);if(!va)return null;const Ma={...va,...ba};return this.apps.set(ma,Ma),this.saveToLocalStorage(),Ma}deleteApp(ma){const ba=this.apps.delete(ma);return ba&&this.saveToLocalStorage(),ba}getApp(ma){return this.apps.get(ma)||null}clearApps(){this.apps.clear(),this.idCounter=0,this.saveToLocalStorage()}hasApp(ma){return this.apps.has(ma)}}const playgroundWorkspaceStorage=new PlaygroundWorkspaceStorage,getTeamModules=ya=>{if(!ya)return[];const ma=getUserModuleNames(),ba=ya.toLowerCase(),va=ba.replace(/_/g,"");return ma.filter(Ma=>{const wl=Ma.toLowerCase(),El=wl.split(".")[0],Sl=El.replace(/_/g,"");return wl.startsWith(ba)||El===va||va.startsWith(Sl)||Sl.startsWith(va)})},CLI_URL="http://localhost:4000";async function fetchDependenciesFromLocalServer(ya,ma,ba){ba&&ba("Installing dependencies in local mode...",0,ma.length);try{const va=await fetch(`${CLI_URL}/install`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!va.ok){const Ma=await va.json().catch(()=>({error:"Unknown error"}));throw new Error(Ma.error||`Failed to install dependencies: ${va.statusText}`)}return console.log("✓ Dependencies installed successfully in local mode"),ma.map((Ma,wl)=>(ba&&ba(`Installed ${Ma.appName}`,wl+1,ma.length),{appName:Ma.appName,success:!0,message:"Dependency installed successfully",path:`${ya}/node_modules/${Ma.appName}`}))}catch(va){return console.error("Failed to install dependencies:",va),ma.map(Ma=>({appName:Ma.appName,success:!1,message:va instanceof Error?va.message:"Failed to install dependency",error:va}))}}const useDependencyProcessor=()=>{const ya=reactExports.useCallback(ba=>{if(!ba.dependencies)return[];const va=[];for(const[Ma,wl]of Object.entries(ba.dependencies))typeof wl=="string"&&wl.startsWith("git+http")&&va.push({appName:Ma,url:wl});return va},[]),ma=reactExports.useCallback(async(ba,va,Ma,wl)=>{const El=detectAppType();let Sl;if(El==="marketplace")try{Sl=await readAppFile("package.json")}catch(Ef){if(Ef?.code==="ENOENT"||Ef?.message?.includes("not found"))return console.log("No package.json found, skipping dependency processing"),[];throw Ef}else{const Ef=await fetch(`${CLI_URL}/file?path=${encodeURIComponent("package.json")}`);if(!Ef.ok){if(Ef.status===404)return console.log("No package.json found, skipping dependency processing"),[];throw new Error(`Failed to fetch package.json from CLI backend at ${CLI_URL}: ${Ef.statusText}`)}const{content:Zf}=await Ef.json();Sl=Zf}const Cl=JSON.parse(Sl),Mc=ya(Cl);if(Mc.length===0)return[];wl&&wl(`Installing ${Mc.length} dependencies...`,0,Mc.length);let dp;El==="regular"?dp=await fetchDependenciesFromLocalServer(ba,Mc,(Ef,Zf,Jf)=>{wl&&wl(`[${Zf}/${Jf}] ${Ef}`,Zf,Jf)}):dp=await cloneDependencies(ba,Mc,va,Ma,(Ef,Zf,Jf)=>{wl&&wl(`[${Zf}/${Jf}] ${Ef}`,Zf,Jf)});const pp=dp.filter(Ef=>!Ef.success),hp=dp.filter(Ef=>Ef.success);if(hp.length>0&&console.log(`✓ Successfully fetched ${hp.length} dependencies:`,hp.map(Ef=>Ef.appName).join(", ")),pp.length>0&&console.warn(`⚠ Failed to install ${pp.length} of ${Mc.length} dependencies:`,pp.map(Ef=>`${Ef.appName} (${Ef.message})`).join(", ")),hp.length>0){const Ef=await getAppInfo(),Zf=await getAppFileSystem$1(Ef);for(const Jf of hp)if(Jf.path)try{const pg=`${Jf.path}/package.json`;await Zf.exists(pg)?console.log(`✓ ${Jf.appName}: Verified package.json exists`):console.error(`✗ ${Jf.appName}: package.json missing at ${pg}`)}catch(pg){console.error(`✗ ${Jf.appName}: Verification failed:`,pg)}}return dp},[ya]);return{extractGitDependencies:ya,processDependencies:ma}},IS_LOCAL_MODE$b=!0,useConfigLoader=()=>{const ya=useAppStore(va=>va.setAppConfig),ma=useAppStore(va=>va.setAppConfigError);return{loadConfig:reactExports.useCallback(async va=>{console.log("loadConfig",va),ma(null);try{const Ma=await loadAppConfig(va);console.log("validatedConfig from agentlang",Ma);let wl={};try{let Sl;if(IS_LOCAL_MODE$b){const{getFileSystem:Cl}=await __vitePreload(async()=>{const{getFileSystem:pp}=await Promise.resolve().then(()=>fsUtils);return{getFileSystem:pp}},void 0),Mc=await Cl(),dp=`${va}/config.al`;Sl=await Mc.readFile(dp)}wl=parseAppConfig(Sl),console.log("fullConfig from parseAppConfig",wl)}catch(Sl){console.warn("Could not read config.al for full config:",Sl.message),wl=Ma}const El={...wl,...Ma};return console.log("mergedConfig (final)",El),ya(El),El}catch(Ma){const wl=Ma instanceof Error?Ma.message:String(Ma);return console.error("Failed to load config.al:",wl),ma(wl),ya({}),{}}},[ya,ma])}},IS_LOCAL_MODE$a=!0,accessedKeys=new Map,getLocalEnv=ya=>{const ma=getLocalEnv$2(ya);return console.log(`🔍 getLocalEnv("${ya}") called, returning:`,ma?`${ma.substring(0,10)}...`:"undefined"),accessedKeys.set(ya,{value:ma,timestamp:Date.now()}),ma||console.warn(`⚠️ Key "${ya}" not found in LocalEnv`),ma};typeof window<"u"&&(window.debugResolverKeys={getAccessedKeys:()=>Array.from(accessedKeys.entries()),listAccessedKeys:()=>{console.log("📋 Keys accessed by resolvers:"),accessedKeys.forEach(({value:ya},ma)=>{console.log(` ${ma}: ${ya?"found":"NOT FOUND"}`)})}});const API_DOMAIN_TO_PROVIDER={"api.hubapi.com":"hubspot","slack.com":"slack","api.github.com":"github","api.stripe.com":"stripe","api.airtable.com":"airtable","api.notion.com":"notion","api.openai.com":"openai","api.anthropic.com":"anthropic","www.googleapis.com":"google"};function createProxiedAxios(){const ya=getURL("api-cors-proxy"),ma=axios.create({timeout:3e4});return ma.interceptors.request.use(ba=>{const va=ba.url;if(va&&(va.startsWith("http://")||va.startsWith("https://")))try{const Ma=new URL(va),wl=Ma.hostname,El=Ma.pathname+Ma.search,Sl=API_DOMAIN_TO_PROVIDER[wl];if(!Sl)return console.warn(`⚠️ No CORS proxy provider configured for domain: ${wl}`),console.warn(` Add '${wl}' to API_DOMAIN_TO_PROVIDER in browserResolvers.ts`),ba;console.log(`🔄 Proxying API call: ${va}`),console.log(` → Provider: ${Sl}`),console.log(" → Original headers:",ba.headers),ba.url=`${ya}/proxy/${Sl}${El}`,console.log(` → New URL: ${ba.url}`),console.log(" → Final headers:",ba.headers)}catch(Ma){console.error("Failed to parse URL for proxying:",va,Ma)}return ba}),ma.interceptors.response.use(ba=>ba,ba=>(ba.code==="ERR_NETWORK"?console.error("❌ Network error - Check if CORS proxy is running on",ya):ba.response?.status===401?console.error("❌ 401 Unauthorized - Check API credentials"):ba.response?.status===403&&console.error("❌ 403 Forbidden - Check API permissions"),Promise.reject(ba))),ma}const proxiedAxios=createProxiedAxios(),COMMON_DEPENDENCIES=new Map([["agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["@fractl/agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["agentlang/out/runtime/module.js",{makeInstance:makeInstance$1}],["agentlang/out/runtime/auth/defs.js",{getLocalEnv}],["axios",{default:proxiedAxios}]]);function asInstance(ya,ma){const ba=ma.split("/"),va=ba.length===2?ba[0]:"hubspot",Ma=ba.length===2?ba[1]:ma,wl=new Map(Object.entries(ya));return makeInstance$1(va,Ma,wl)}function getDependency(ya){if(COMMON_DEPENDENCIES.has(ya))return COMMON_DEPENDENCIES.get(ya);for(const[ma,ba]of COMMON_DEPENDENCIES)if(ya.includes(`/${ma}`)||ya.endsWith(`/${ma}`))return ba}const BUILTIN_MODULE_PATHS=["./modules/core.js","./modules/auth.js"];async function setupResolverLoader(ya){try{console.log("⚙️ Configuring AgentLang module loader for:",ya);let ma=null;IS_LOCAL_MODE$a&&(ma=await getAppFileSystem$1()),setModuleLoader({fileReader:async va=>{if(console.log(`📖 Reading file: ${va}`),BUILTIN_MODULE_PATHS.includes(va))return console.log(`📦 Built-in module: ${va} (using global registration)`),"";let Ma=va;if(va.startsWith(ya+"/")?Ma=va.substring(ya.length+1):va.startsWith(ya)&&(Ma=va.substring(ya.length)),Ma.startsWith("/")&&(Ma=Ma.substring(1)),console.log(`📖 Resolved to relative path: ${Ma}`),IS_LOCAL_MODE$a&&ma){const wl=`${ya}/${Ma}`,El=await ma.readFile(wl);return typeof El=="string"?El:El.toString()}return await readRepoFile(ya,Ma)},dependencyProvider:va=>{const Ma=getDependency(va);return Ma?console.log(`✅ Resolved dependency: ${va}`):console.warn(`⚠️ Unknown dependency: ${va}`),Ma},basePath:""}),console.log("✅ Module loader configured successfully"),console.log("ℹ️ Resolvers will be loaded automatically when AgentLang parses .al files")}catch(ma){console.error("❌ Failed to setup resolver loader:",ma)}}const RESOLVER_CONFIGS={hsr:{initFunctionName:"initializeHubSpotConfig",envKeyMapping:{HUBSPOT_ACCESS_TOKEN:"accessToken"},configBuilder:ya=>({accessToken:ya.HUBSPOT_ACCESS_TOKEN})},gmr:{initFunctionName:"initializeGmailConfig",envKeyMapping:{GMAIL_CLIENT_ID:"clientId",GMAIL_CLIENT_SECRET:"clientSecret",GMAIL_REFRESH_TOKEN:"refreshToken",GMAIL_POLL_INTERVAL_MINUTES:"pollIntervalMinutes"},configBuilder:ya=>({clientId:ya.GMAIL_CLIENT_ID,clientSecret:ya.GMAIL_CLIENT_SECRET,refreshToken:ya.GMAIL_REFRESH_TOKEN,pollIntervalMinutes:ya.GMAIL_POLL_INTERVAL_MINUTES})},gsr:{initFunctionName:"initializeGoogleConfig",envKeyMapping:{GOOGLE_API_KEY:"apiKey",GOOGLE_CLIENT_ID:"clientId",GOOGLE_CLIENT_SECRET:"clientSecret"},configBuilder:ya=>({apiKey:ya.GOOGLE_API_KEY,clientId:ya.GOOGLE_CLIENT_ID,clientSecret:ya.GOOGLE_CLIENT_SECRET})},slackr:{initFunctionName:"initializeSlackConfig",envKeyMapping:{SLACK_BOT_TOKEN:"botToken",SLACK_APP_TOKEN:"appToken"},configBuilder:ya=>({botToken:ya.SLACK_BOT_TOKEN,appToken:ya.SLACK_APP_TOKEN})},ghr:{initFunctionName:"initializeGitHubConfig",envKeyMapping:{GITHUB_TOKEN:"token",GITHUB_API_KEY:"apiKey"},configBuilder:ya=>({token:ya.GITHUB_TOKEN||ya.GITHUB_API_KEY})}};async function initializeResolverConfigs(){try{const{getEnvironmentKeysAsObject:ya}=await __vitePreload(async()=>{const{getEnvironmentKeysAsObject:va}=await Promise.resolve().then(()=>playgroundEnvKeys);return{getEnvironmentKeysAsObject:va}},void 0),ma=ya();console.log("🔑 Available environment keys:",Object.keys(ma));const ba=getImportedModuleNames();console.log("📦 Imported modules:",ba);for(const[va,Ma]of Object.entries(RESOLVER_CONFIGS)){const wl=getImportedModule(va);if(!wl){console.log(`ℹ️ Resolver "${va}" not loaded - skipping initialization`);continue}console.log(`📋 Found resolver module: ${va}`);const El=wl[Ma.initFunctionName];if(typeof El!="function"){console.warn(`⚠️ Resolver "${va}" found but "${Ma.initFunctionName}" function is missing`);continue}const Sl=Object.keys(Ma.envKeyMapping);if(Sl.filter(pp=>ma[pp]).length===0){console.warn(`⚠️ No environment keys found for resolver "${va}". Expected: ${Sl.join(", ")}`);continue}const Mc=Ma.configBuilder(ma),dp=Object.fromEntries(Object.entries(Mc).filter(([pp,hp])=>hp!==void 0));if(Object.keys(dp).length===0){console.warn(`⚠️ No valid configuration could be built for resolver "${va}"`);continue}console.log(`🔑 Initializing resolver "${va}" with config:`,{...dp,...Object.keys(dp).reduce((pp,hp)=>{const Ef=dp[hp],Zf=typeof Ef=="string"?`***${Ef.slice(-4)}`:"***";return{...pp,[hp]:Zf}},{})});try{await El(dp),console.log(`✅ Resolver "${va}" configured successfully`),wl.config&&console.log(" Configuration stored in resolver.config")}catch(pp){console.error(`❌ Failed to initialize resolver "${va}":`,pp)}}console.log("✅ Resolver initialization complete")}catch(ya){console.error("❌ Failed to initialize resolver configs:",ya)}}const browserResolvers=Object.freeze(Object.defineProperty({__proto__:null,initializeResolverConfigs,setupResolverLoader},Symbol.toStringTag,{value:"Module"})),useRepositoryClone=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(!1),[va,Ma]=reactExports.useState(""),[wl,El]=reactExports.useState(""),Sl=$ht(),Cl=useAppStore(mg=>mg.user),{processDependencies:Mc}=useDependencyProcessor(),{loadConfig:dp}=useConfigLoader(),pp=Cl.GitHub?.Token,hp=Cl.GitHub?.Username,Ef=reactExports.useCallback(()=>{const mg=hp&&hp.trim().length>0,gg=pp&&pp.trim().length>0;(!mg||!gg)&&console.warn("GitHub credentials missing - clone may fail for private repositories")},[pp,hp]),Zf=reactExports.useCallback(async(mg,gg,yg,ay,ly,cy)=>{Ma("Checking and installing dependencies..."),await Mc(mg,hp,pp,uN=>{Ma(uN)}),Ma("Scanning repository for AgentLang modules..."),Ma("Setting up runtime environment...");{const{inBrowserREPL:uN}=await __vitePreload(async()=>{const{inBrowserREPL:uee}=await Promise.resolve().then(()=>inBrowserREPL$1);return{inBrowserREPL:uee}},void 0);await uN.initializeRuntime()}Ma("Configuring module resolver system..."),await setupResolverLoader(mg),Ma("Preparing AgentLang runtime...");const{prepareRuntimeForAppLoad:q1}=await __vitePreload(async()=>{const{prepareRuntimeForAppLoad:uN}=await Promise.resolve().then(()=>index$5);return{prepareRuntimeForAppLoad:uN}},void 0);await q1(mg);{Ma("Connecting to local filesystem...");const{setFileSystem:uN}=await __vitePreload(async()=>{const{setFileSystem:e2e}=await Promise.resolve().then(()=>fsUtils);return{setFileSystem:e2e}},void 0),$pe=detectAppType()==="marketplace"?{type:"marketplace"}:await getAppInfo(),Ppe=await getAppFileSystem($pe);uN(Ppe)}Ma("Loading AgentLang modules and parsing code...");const uE=detectAppType()==="regular";await flushAllAndLoad(mg,{name:"studio",useCliBackend:uE}),Ma("Loading core AgentLang modules...");const{loadCoreModules:V1}=await __vitePreload(async()=>{const{loadCoreModules:uN}=await Promise.resolve().then(()=>loader$1);return{loadCoreModules:uN}},void 0);await V1(),Ma("Loading application configuration..."),await dp(mg),Ma("Initializing agents and registering modules..."),await runInitFunctions(),await runStandaloneStatements(),Ma("Configuring AI/LLM services...");const{queryLLMEntities:H1}=await __vitePreload(async()=>{const{queryLLMEntities:uN}=await Promise.resolve().then(()=>index$5);return{queryLLMEntities:uN}},void 0),O_=await H1(),aE=useAppStore.getState().appConfig;useAppStore.getState().setAppConfig({...aE,llms:O_}),Ma("Setting up resolver integrations..."),await initializeResolverConfigs(),console.log("Reading package.json...");let P_;try{const uee=detectAppType()==="marketplace"?{type:"marketplace",org:ay,repo:gg,branch:ly}:await getAppInfo();if(uee)P_=await readPackageJson(uee);else if(cy)P_=cy;else throw new Error("Could not read package.json and none provided")}catch(uN){if(cy)P_=cy;else throw uN}const M_=P_?.name||yg,sN=getTeamModules(M_),AF=sN.flatMap(uN=>{try{const uee=fetchModule$2(uN);return uee?uee.getAgentNames().filter($pe=>uee.getAgent($pe)?.isPublic()??!1).map($pe=>`${uN}/${$pe}`):[]}catch(uee){return console.warn(`Failed to fetch module ${uN} for public agents:`,uee),[]}});console.log(`[LOCAL] Found ${sN.length} modules:`,sN),console.log(`[LOCAL] Found ${AF.length} public agents:`,AF);const $4=sN.flatMap(uN=>fetchModule$2(uN).getEntityNames().map(uee=>`${uN}/${uee}`)),cN=sN.flatMap(uN=>buildGraph(uN).getRoots().map($pe=>`${$pe.entity.getModuleName()}/${$pe.entity.getEntryName()}`)),R4={Name:M_,Description:P_.description||"An application generated from "+M_};Ma("Generating UI schema and interface...");const k4=await loadUISchema(M_,mg,$4,cN,AF,R4);k4.appInfo||(k4.appInfo={}),k4.appInfo.apiUrl="http://localhost:8080",Sl(k4);const AQ={githubOrg:ay,teamName:M_,branch:ly,projectPath:mg};return __vitePreload(()=>import("./replService-BJ7jMWR-.js"),__vite__mapDeps([32,1,18,19,5,9,16,11,14,15,10,20,21,17,4])).then(async({default:uN})=>{try{await uN.ensureReplSession(AQ),await uN.initializeFileTracking(mg)}catch(uee){console.error("❌ Failed to setup REPL deployment:",uee)}}),sN[0]},[hp,pp,Ma,Sl,Mc,dp]),Jf=reactExports.useCallback(async mg=>{ba(!0),El("");try{Ef();const{GitHubOrg:gg,GitHubRepo:yg,Name:ay,Branch:ly}=mg,cy=`/${yg}`,q1=generateGitHubUrl(gg,yg,hp,pp);await pathExists(cy)?Ma("Repository already exists. Loading modules..."):(Ma("Cloning repository..."),await cloneRepository(q1,cy,ly,pp));let uE;try{const H1=await readRepoFile(cy,"package.json");uE=JSON.parse(H1)}catch(H1){console.warn("Failed to read package.json, using team name as fallback:",H1),uE=null}const V1=uE?.name||ay;await Zf(cy,yg,V1,gg,ly,uE)}catch(gg){const yg=gg instanceof Error?gg.message:"Failed to clone repository";El(yg),console.error("Error during repository clone:",gg);try{const ay=`/${mg.GitHubRepo}`;await pathExists(ay)&&(console.log(`Cleaning up failed clone: removing ${ay} from IndexedDB`),await removeDirectory(ay))}catch(ay){console.error("Error cleaning up failed clone:",ay)}}finally{ba(!1)}},[Ef,hp,pp,Zf]),pg=reactExports.useCallback((mg,gg,yg,ay,ly)=>{const cy=`/design/${mg?"agents":"data-model"}/${gg}/${yg}/${ay}`;ly?ya(cy,{state:ly.state}):ya(cy)},[ya]),hg=reactExports.useCallback(async(mg,gg,yg,ay,ly,cy)=>{ba(!0),Ma("Fetching repository..."),El("");try{return await Zf(mg,gg,yg,ay,ly,cy)}catch(q1){const r0=q1 instanceof Error?q1.message:"Failed to process repository";throw El(r0),q1}finally{ba(!1)}},[Zf]);return{isCloning:ma,error:wl,loadingMessage:va,cloneAndProcess:Jf,navigateToDesign:pg,processRepository:Zf,processRepositoryForLocalMode:hg}},IS_PLAYGROUND$a=!1,IS_LOCAL_MODE$9=!0,metaAxiosInstance$2=axiosInstance("meta");async function fetchBranch(){const ya="http://localhost:4000";try{const ma=await fetch(`${ya}/branch`);return ma.ok&&(await ma.json()).branch||"main"}catch(ma){return console.warn("Failed to fetch branch:",ma),"main"}}const useTeams=()=>{const ya=useNavigate(),ma=useQueryClient(),{navigateToDesign:ba}=useRepositoryClone(),{teamName:va,githubOrg:Ma}=useParams(),wl=isMarketplaceRepo(va||"",Ma),El=useAppStore(P_=>P_.authData.username),Sl=useAppStore(P_=>P_.authData.userProfileId),Cl=useAppStore(P_=>P_.user.CurrentWorkspace?.Id),Mc=useAppStore(P_=>P_.user.GitHub.Token)||"",dp=useAppStore(P_=>P_.user.GitHub.Username)||"",{fetchOrCreateWorkspace:pp}=useWorkspace();useAppStore(P_=>P_.authReady),useAppStore(P_=>P_.isAuthenticated);const{data:hp}=useQuery({queryKey:["localBranch"],queryFn:fetchBranch,enabled:IS_LOCAL_MODE$9,staleTime:1/0,refetchOnMount:"always"}),{data:Ef,isLoading:Zf,error:Jf,refetch:pg}=useQuery({queryKey:["workspace",Cl,"apps",Sl],queryFn:async()=>{{const P_="http://localhost:4000";try{const M_=await fetch(`${P_}/apps`);if(M_.ok)return(await M_.json()).map(AF=>({Name:AF.name,isEditable:!0,Type:"Local",path:AF.path,Id:AF.path,__Id__:AF.path,Branch:"main",Config:{},CreatedAt:new Date().toISOString(),Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"Local",GitHubOrg:"file",GitHubRepo:AF.name,GithubUrl:"",LastUpdatedAt:new Date().toISOString(),Owner:"local",createdAt:new Date().toISOString(),isPin:!1,Version:"0.0.1",Description:"",Tags:[]}))}catch(M_){console.error("Failed to fetch local apps",M_)}return[]}},enabled:IS_LOCAL_MODE$9,staleTime:120*1e3,gcTime:300*1e3,refetchOnMount:"always",retry:(P_,M_)=>M_?.response?.status===401||M_?.response?.status===403?!1:P_<2}),{mutate:hg}=useMutation({mutationFn:async({appId:P_,isEditable:M_})=>{const sN=await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`,{isEditable:M_});return transformSimpleTeamToTeam(sN.data)},onMutate:async P_=>{const{appId:M_,isEditable:sN}=P_;await ma.cancelQueries({queryKey:["workspace",Cl,"apps",Sl]});const AF=ma.getQueryData(["workspace",Cl,"apps",Sl]);if(AF){const $4=AF.map(cN=>cN.Id===M_?{...cN,isEditable:sN}:cN);ma.setQueryData(["workspace",Cl,"apps",Sl],$4)}return{previousApps:AF}},onError:(P_,M_,sN)=>{sN?.previousApps&&ma.setQueryData(["workspace",Cl,"apps",Sl],sN.previousApps),y$b.error("Failed to update status. Please try again.")},onSettled:()=>{ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]})}}),mg=reactExports.useMemo(()=>wl?marketplaceTeams.find(M_=>M_.GitHubRepo.toLowerCase()===va?.toLowerCase()):!Ef||!va?void 0:{...Ef.find(M_=>M_.GitHubRepo.toLowerCase()===va.toLowerCase()||M_.Name.toLowerCase()===va.toLowerCase()),Branch:hp||"main"},[wl,Ef,va,hp]);if(Jf){console.error("fetchWorkspaceApps: Query failed",Jf);let P_="Failed to fetch workspace apps";const M_=Jf;M_?.response?.status===401?P_="Authentication expired. Please sign in again.":M_?.response?.status===403?P_="Access denied. Please check your workspace permissions.":M_?.response?.status===404?P_="Workspace not found. Please verify your workspace access.":M_?.response?.data?.reason?P_=M_.response.data.reason:M_?.message&&(P_=`Network error: ${M_.message}`),y$b.error(P_)}const gg=async(P_,M_)=>{try{const AF=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${M_}`,P_)).data,$4=transformSimpleTeamToTeam(AF);return ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg(),{...$4}}catch(sN){throw console.error("Error editing workspace app:",sN),sN}},yg=async(P_,M_)=>{try{const AF=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`,{branch:M_})).data,$4=transformSimpleTeamToTeam(AF);return ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg(),{...$4,Branch:M_}}catch(sN){throw console.error("Error switching workspace app branch:",sN),sN}},ay=async P_=>{{const M_="http://localhost:4000";try{const sN=await fetch(`${M_}/app/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:P_.name})});if(!sN.ok){const AF=await sN.json();throw new Error(AF.error||"Failed to create app")}await pg(),y$b.success(`App "${P_.name}" created successfully.`);return}catch(sN){console.error("Failed to create local app",sN),y$b.error(sN instanceof Error?sN.message:"Failed to create app");return}}try{let M_=Cl;if(!M_){const sN=await pp("Default");if(sN)M_=sN.id||sN.Id;else throw new Error("Failed to create or fetch Default workspace")}if(!M_)throw new Error("No workspace ID available after all attempts");await metaAxiosInstance$2.post(`/AgentMeta/Workspace/${M_}/WorkspaceApp/App`,P_),ma.invalidateQueries({queryKey:["workspace",M_,"apps",Sl]}),ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg()}catch(M_){console.error("Error occurred:",M_),y$b.error(M_?.response?.data?.["status-text"]||M_?.response?.data?.reason||M_?.message||"Operation failed")}},ly=async P_=>{try{if(IS_LOCAL_MODE$9){const sN=await fetch("http://localhost:4000/app/delete",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_})});if(!sN.ok){const AF=await sN.json();throw new Error(AF.error||"Failed to delete app")}await pg(),y$b.success("Team deleted successfully");return}await metaAxiosInstance$2.delete(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`),ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg()}catch(M_){console.error("Error occurred:",M_),y$b.error(M_?.response?.data?.["status-text"]||M_?.response?.data?.reason||M_?.message||"Operation failed")}},cy=async(P_,M_,sN)=>{try{const AF=`/${P_.githubRepo}`,$4=P_.branchSelected&&P_.githubBranch?P_.githubBranch:"main",cN=dp&&dp.trim().length>0,R4=Mc&&Mc.trim().length>0,k4=generateGitHubUrl(P_.githubOrg,P_.githubRepo,dp,Mc);if((!cN||!R4)&&M_("⚠️ GitHub credentials missing. Clone may fail for private repositories. Please set your GitHub username and token in Settings.",!1,!1),await pathExists(AF)){sN("checking"),M_("Repository exists, checking for updates...",!1,!1);try{const uN=await updateExistingRepository(AF,Mc,{branch:$4,checkOnly:!0});if(!uN.success)M_(`Warning: Could not check for updates - ${uN.message}. Using existing repository.`,!1,!1);else if(uN.hasUpdates){sN("updating"),M_("Fetching latest changes...",!1,!1);const uee=await updateExistingRepository(AF,Mc,{branch:$4,force:!0});uee.success?M_("Repository updated successfully!",!0,!1):M_(`Warning: Could not update repository - ${uee.message}. Using existing version.`,!1,!1)}else M_("No updates available",!0,!1)}catch(uN){console.error("Failed to update repository:",uN),M_(`Warning: Could not check for updates - ${uN.message}. Using existing repository.`,!1,!1)}}else{sN("cloning"),M_("Cloning repository...",!1,!1);try{await cloneRepository(k4,AF,$4,Mc),M_("Repository cloned successfully!",!0,!1)}catch(uN){console.error("Failed to clone repository:",uN),M_(`Failed to clone repository: ${uN.message}`,!1,!0);try{await pathExists(AF)&&(console.log(`Cleaning up failed clone: removing ${AF} from IndexedDB`),await removeDirectory(AF))}catch(uee){console.error("Error cleaning up failed clone:",uee)}return sN("error"),{path:null,fileContent:null}}}try{sN("processing"),M_("Searching for .al files...",!1,!1);const uN=await findFilesWithExtension(AF,"al");if(uN.length===0)return M_("No .al files found in the repository.",!1,!0),sN("error"),{path:null,fileContent:null};M_(`Found ${uN.length} .al file(s).`,!0,!1);const uee=uN[0];M_(`Reading file: ${uee}...`,!1,!1);const $pe=await readRepoFile(AF,uee);try{await readRepoFile(AF,"package.json")}catch{M_("Warning: package.json not found in repository",!1,!1)}try{return sN("creating"),await flushAllAndLoad(AF,{name:"studio"}),M_(`${uee} loaded successfully!`,!0,!1),sN("complete"),{path:AF,fileContent:$pe}}catch(Ppe){return console.error(`Failed to load ${uee}:`,Ppe),M_(`Failed to load ${uee}: ${Ppe.message}`,!1,!0),sN("error"),{path:null,fileContent:null}}}catch(uN){return console.error("Failed to process .al files:",uN),M_(`Note: .al files not found or could not be read: ${uN.message}`,!1,!0),sN("error"),{path:AF,fileContent:null}}}catch(AF){return console.error("Failed to execute Git operation:",AF),M_(`Failed to execute Git operation: ${AF.message}`,!1,!0),sN("error"),{path:null,fileContent:null}}},q1=async(P_,M_,sN)=>{try{if(wl)return sN("Marketplace mode: Changes not saved",!1,!1),console.log("[MARKETPLACE] saveReadmeChanges skipped - marketplace mode"),!1;sN("Saving changes...",!1,!1);const AF=await openRepository(P_);return await writeRepoFile(P_,"README.md",M_),await commitChanges(AF,"README.md","Update README.md",{name:"Fractl Studio User",email:El||"user@fractl.studio"}),sN("Changes saved successfully!",!0,!1),!0}catch(AF){return console.error("Failed to save README:",AF),sN(`Failed to save: ${AF.message}`,!1,!0),!1}},r0=async(P_,M_)=>{try{if(wl)return M_("Marketplace mode: Push skipped",!1,!1),console.log("[MARKETPLACE] pushChanges skipped - marketplace mode"),!1;M_("Pushing changes to repository...",!1,!1);const sN=await openRepository(P_);return await pushChanges(sN,"origin","main",Mc),M_("Changes pushed successfully!",!0,!1),!0}catch(sN){return console.error("Failed to push changes:",sN),M_(`Failed to push: ${sN.message}`,!1,!0),!1}},uE=reactExports.useCallback(async(P_,M_,sN=!1)=>{sN&&await pg()},[pg]),V1=mg?.isEditable??!0,H1=async(P_,M_)=>{const sN="http://localhost:4000";try{await fetch(`${sN}/app/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_})}),await new Promise(AF=>setTimeout(AF,500)),ba(!1,"file",M_,"data-model",{state:{from:"/design/dashboard"}})}catch(AF){console.error("Failed to launch app",AF),y$b.error("Failed to launch app"),ya("/design/dashboard")}},O_=async()=>{const P_="http://localhost:4000";try{await fetch(`${P_}/app/stop`,{method:"POST"}),ya("/design/dashboard")}catch(M_){console.error("Failed to stop app",M_)}},aE=async(P_,M_,sN)=>{const AF="http://localhost:4000";try{const $4=await fetch(`${AF}/app/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_,name:M_,branch:sN?.branch,githubUsername:sN?.credentials?.username,githubToken:sN?.credentials?.token})});if(!$4.ok){const R4=await $4.json();throw new Error(R4.error||"Failed to import app")}const cN=await $4.json();return await pg(),cN}catch($4){throw console.error("Failed to import app",$4),$4}};return{currentTeam:mg,workspaceApps:Ef,isLoadingApps:Zf,appsError:Jf,fetchWorkspaceApps:uE,editWorkspaceApp:gg,switchWorkspaceAppBranch:yg,updateWorkspaceAppEditable:hg,addWorkspaceApp:ay,cloneGitRepository:cy,saveReadmeChanges:reactExports.useCallback(q1,[wl,El]),pushChanges:reactExports.useCallback(r0,[wl,Mc]),deleteWorkspaceApp:ly,isEditable:V1,launchApp:H1,stopApp:O_,importApp:aE}},integrationAxiosInstance$1=axiosInstance("connection-manager"),useLLM=()=>{const ya=useQueryClient(),ma=useAppStore(Ef=>Ef.authReady),ba=useAppStore(Ef=>Ef.isAuthenticated),va=Ef=>{const{__parent__:Zf,__path__:Jf,...pg}=Ef;return pg},{data:Ma,isLoading:wl,isError:El,error:Sl,refetch:Cl}=useQuery({queryKey:["llms"],queryFn:async()=>{const Ef=await integrationAxiosInstance$1.get("/integmanager.core/llm"),{data:Zf,status:Jf}=Ef;if(Jf!==200)throw new Error("Failed to fetch llms");return Zf.map(hg=>({...hg.llm,config:JSON.parse(hg.llm.config)}))},enabled:ma&&ba&&!0});El&&Sl&&y$b.error(Sl?.response?.data?.reason||Sl.message);const Mc=reactExports.useCallback(async Ef=>{await Cl()},[Cl]),dp=reactExports.useCallback(async Ef=>{try{const Zf=va(Ef),Jf=await integrationAxiosInstance$1.post("/integmanager.core/llm",Zf);if(Jf.status===200||Jf.status===201)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM created successfully");else{const pg=Jf.data?.reason||Jf.data?.message||`Failed to create LLM (Status: ${Jf.status})`;throw y$b.error(pg),new Error(pg)}}catch(Zf){const Jf=Zf?.response?.data?.reason||Zf?.response?.data?.message||Zf?.message||"Failed to create LLM";throw y$b.error(Jf),Zf}},[ya]),pp=reactExports.useCallback(async Ef=>{try{const Zf=await integrationAxiosInstance$1.delete(`/integmanager.core/llm/${Ef}`);if(Zf.status===200||Zf.status===204)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM deleted successfully");else{const Jf=Zf.data?.reason||Zf.data?.message||`Failed to delete LLM (Status: ${Zf.status})`;throw y$b.error(Jf),new Error(Jf)}}catch(Zf){const Jf=Zf?.response?.data?.reason||Zf?.response?.data?.message||Zf?.message||"Failed to delete LLM";throw y$b.error(Jf),Zf}},[ya]),hp=reactExports.useCallback(async(Ef,Zf)=>{try{const Jf=va(Zf),pg=await integrationAxiosInstance$1.put(`/integmanager.core/llm/${Ef}`,Jf);if(pg.status===200||pg.status===201||pg.status===204)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM updated successfully");else{const hg=pg.data?.reason||pg.data?.message||`Failed to update LLM (Status: ${pg.status})`;throw y$b.error(hg),new Error(hg)}}catch(Jf){const pg=Jf?.response?.data?.reason||Jf?.response?.data?.message||Jf?.message||"Failed to update LLM";throw y$b.error(pg),Jf}},[ya]);return{llmData:Ma,isLoadingLLMs:wl,isErrorLLMs:El,llmError:Sl,fetchLLMs:Mc,createLLM:dp,deleteLLM:pp,updateLLM:hp}},IS_LOCAL_MODE$8=!0,integrationAxiosInstance=axiosInstance("connection-manager"),useIntegration=(ya="api")=>{const{currentTeam:ma}=useTeams(),ba=ma?.GitHubRepo,va=useQueryClient();useAppStore(yg=>yg.authReady),useAppStore(yg=>yg.isAuthenticated);const Ma=useAppStore(yg=>yg.user),wl=Ma.GitHub.Token,El=Ma.GitHub.Username,{processDependencies:Sl}=useDependencyProcessor(),{data:Cl,isLoading:Mc,isError:dp,error:pp,refetch:hp}=useQuery({queryKey:["integrations",ba,ya],queryFn:async()=>{if(ya!=="config")return console.log("[LOCAL_MODE] Skipping API integrations fetch - use config mode instead"),[];if(ba)try{const r0=(await readPackageJsonFromGit(ba,!0)).dependencies||{};let uE={};try{const O_=await readProjectFile(ba,"config.al");uE=parseAppConfig(O_),console.log("parsedConfig",uE)}catch{console.log("config.al does not exist yet")}const V1=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,H1=[];return Object.entries(r0).forEach(([O_,aE])=>{const P_=aE.match(V1);if(P_){const[,M_,sN]=P_;let AF,$4=null;uE[sN]&&uE[sN].isRemoteIntegration!==void 0?($4=uE[sN],AF=$4.isRemoteIntegration):uE[O_]&&typeof uE[O_].isRemoteIntegration=="boolean"&&($4=uE[O_],AF=$4.isRemoteIntegration);const R4={name:$4?.name||O_,userData:{GitHubOrg:M_,GitHubRepo:sN}};AF!==void 0&&(R4.userData.isRemoteIntegration=AF),H1.push(R4)}else aE.startsWith("file:")}),H1}catch(q1){return console.warn("Failed to read integrations from package.json",q1),[]}const yg=await integrationAxiosInstance.get("/integmanager.core/integration"),{data:ay,status:ly}=yg;if(ly!==200)throw new Error("Failed to fetch integrations");return ay.map(q1=>({...q1.integration,userData:JSON.parse(q1.integration.userData)}))},enabled:IS_LOCAL_MODE$8,staleTime:0,refetchOnWindowFocus:!0});dp&&pp&&y$b.error(pp?.response?.data?.reason||pp.message);const Ef=reactExports.useCallback(async()=>{await hp()},[hp]),Zf=reactExports.useCallback(async(yg,ay)=>{const ly=`/temp-validation/${yg}/${ay}`;let cy=!1;try{if(!await pathExists(ly)){const H1=generateGitHubUrl(yg,ay,El,wl);await cloneRepository(H1,ly,"main",wl||""),cy=!0}let r0;if(IS_LOCAL_MODE$8){const{createGitUtils:H1}=await __vitePreload(async()=>{const{createGitUtils:P_}=await Promise.resolve().then(()=>index$8);return{createGitUtils:P_}},void 0),{fs:O_}=await H1({useCliBackend:!1}),aE=`${ly}/package.json`;r0=(await O_.readFile(aE)).toString()}const uE=JSON.parse(r0),V1=uE?.agentlang?.config&&Array.isArray(uE.agentlang.config);if(cy)try{await removeDirectory(ly)}catch(H1){console.warn("Failed to cleanup temporary clone:",H1)}return V1}catch(q1){if(cy)try{await removeDirectory(ly)}catch(r0){console.warn("Failed to cleanup temporary clone:",r0)}throw q1}},[El,wl]),Jf=reactExports.useCallback(async yg=>{if(ya==="config"&&ba){const ay=El&&El.trim().length>0,ly=wl&&wl.trim().length>0;if(!ay||!ly){const aE=new Error("GitHub credentials are required for local mode");throw aE.code="GITHUB_CREDENTIALS_REQUIRED",aE}const cy=yg.userData.GitHubRepo,q1=yg.name,r0=yg.userData.GitHubOrg;if(!cy||!r0)throw new Error("GitHub organization and repository name are required");if(!await Zf(r0,cy))throw new Error("The repository is not a valid AgentLang project. It must have a package.json with an agentlang.config field.");const V1=await readPackageJsonFromGit(ba);V1.dependencies||(V1.dependencies={});const H1=generateGitHubUrl(r0,cy,El,wl);V1.dependencies[q1]=`git+${H1}#main`,await savePackageJsonToGit(ba,JSON.stringify(V1,null,2),`Add dependency for ${q1}`,El,wl);const O_=`/${ba}`;try{await Sl(O_,El,wl)}catch(aE){throw console.error(`Failed to process dependencies for ${q1}:`,aE),y$b.error(`Failed to clone dependency: ${aE.message}`),aE}try{const aE=`${O_}/node_modules/${q1}`,P_=await readRepoFile(aE,"package.json"),M_=JSON.parse(P_);if(M_?.agentlang?.config&&Array.isArray(M_.agentlang.config)&&M_.agentlang.config.length>0){let sN="";try{sN=await readProjectFile(ba,"config.al")}catch{}const AF=sN?parseAppConfig(sN):{};AF[q1]||(AF[q1]={}),M_.agentlang.config.forEach($4=>{AF[q1][$4]||(AF[q1][$4]=null)}),await saveConfigToGit(ba,formatAppConfig(AF),`Add config for integration ${q1}`,El,wl)}}catch(aE){console.warn(`Failed to create config maps for integration ${q1}:`,aE)}try{await flushAllAndLoad(O_,{name:"studio",useCliBackend:IS_LOCAL_MODE$8}),await va.invalidateQueries({queryKey:["dependencies"]})}catch(aE){console.warn(`Failed to load modules for ${q1}:`,aE)}await va.invalidateQueries({queryKey:["integrations",ba,ya]}),await hp(),y$b.success("Integration created successfully");return}try{const ay=await integrationAxiosInstance.post("/integmanager.core/integration",yg);if(ay.status===200||ay.status===201)await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration created successfully");else throw new Error(ay.data?.reason||ay.data?.message||"Failed to create integration")}catch(ay){const ly=ay?.response?.data?.reason||ay?.response?.data?.message||ay?.message||"Failed to create integration";throw new Error(ly)}},[va,ba,El,wl,ya,Zf,Sl,hp]),pg=reactExports.useCallback(async yg=>{if(ya==="config"&&ba)try{const ay=await readPackageJsonFromGit(ba);if(ay.dependencies&&ay.dependencies[yg]){const ly=ay.dependencies[yg],cy=/(?:git\+)?https:\/\/github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,q1=ly.match(cy),r0=q1?q1[2]:null;let uE=null;if(r0)try{const V1=await readDependencyPackageJsonFromGit(ba,yg);V1?.name&&(uE=V1.name.split("/").pop()?.split("@").pop()||null)}catch{console.log(`Could not read package.json for ${yg}, will try to remove by repo name`)}delete ay.dependencies[yg],await savePackageJsonToGit(ba,JSON.stringify(ay,null,2),`Remove dependency ${yg}`,El,wl);try{const V1=await readProjectFile(ba,"config.al"),H1=parseAppConfig(V1);let O_=!1;if(r0&&H1[r0]&&(delete H1[r0],O_=!0),uE&&H1[uE]&&(delete H1[uE],O_=!0),H1[yg]&&(delete H1[yg],O_=!0),O_){const aE=formatAppConfig(H1);await saveConfigToGit(ba,aE,`Remove integration ${yg} from config.al`,El,wl)}}catch{console.log("config.al does not exist or error reading it")}await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");return}else{y$b.info("Integration not found in dependencies");return}}catch(ay){throw console.error("Failed to delete integration:",ay),y$b.error(`Failed to delete integration: ${ay.message}`),ay}try{const ay=await integrationAxiosInstance.delete(`/integmanager.core/integration/${yg}`);if(console.log(ay.data),ay.status===200||ay.status===204)await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");else{const ly=ay.data?.reason||ay.data?.message||`Failed to delete integration (Status: ${ay.status})`;throw y$b.error(ly),new Error(ly)}}catch(ay){const ly=ay?.response?.data?.reason||ay?.response?.data?.message||ay?.message||"Failed to delete integration";throw y$b.error(ly),ay}},[va,ba,El,wl,ya]),hg=reactExports.useCallback(async(yg,ay)=>{if(ya==="config"&&ba)try{const ly=ay.userData?.GitHubRepo,cy=ay.userData?.GitHubOrg;if(!ly||!cy)throw new Error("Missing GitHub info for update");const q1=await readPackageJsonFromGit(ba);q1.dependencies||(q1.dependencies={}),q1.dependencies[yg]=`git+https://github.com/${cy}/${ly}.git#main`,await savePackageJsonToGit(ba,JSON.stringify(q1,null,2),`Update dependency ${yg}`,El,wl),await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");return}catch(ly){throw console.error("Failed to update integration:",ly),y$b.error(`Failed to update integration: ${ly.message}`),ly}try{const ly=await integrationAxiosInstance.put(`/integmanager.core/integration/${yg}`,ay);if(console.log(ly.data),ly.status===200)va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");else{const cy=ly.data?.reason||ly.data?.message||`Failed to update integration (Status: ${ly.status})`;throw y$b.error(cy),new Error(cy)}}catch(ly){const cy=ly?.response?.data?.reason||ly?.response?.data?.message||ly?.message||"Failed to update integration";throw y$b.error(cy),ly}},[va,ba,El,wl,ya]),mg=reactExports.useCallback(async yg=>{if(ya!=="api"||!ba){console.warn("addIntegrationToConfig only supported in 'api' mode with a valid githubRepo");return}try{const ay=yg.userData?.GitHubRepo,ly=yg.userData?.GitHubOrg,cy=yg.name;if(!ay||!ly)throw new Error("GitHub organization and repository name are required");const q1=`git+https://github.com/${ly}/${ay}.git#main`,r0=await readPackageJsonFromGit(ba);r0.dependencies||(r0.dependencies=null),r0.dependencies[ay]=q1,await savePackageJsonToGit(ba,JSON.stringify(r0,null,2),`Add integration ${cy} from API`,El,wl);const uE=`/${ba}`;try{await Sl(uE,El,wl),await flushAllAndLoad(uE,{name:"studio",useCliBackend:IS_LOCAL_MODE$8}),await va.invalidateQueries({queryKey:["dependencies"]})}catch(O_){console.warn(`Failed to process dependencies for ${cy}:`,O_)}let V1={};try{const O_=await readProjectFile(ba,"config.al");V1=parseAppConfig(O_)}catch{console.log("config.al does not exist yet, will create it")}V1[ay]={isRemoteIntegration:!0,name:cy,url:q1};const H1=formatAppConfig(V1);await saveConfigToGit(ba,H1,`Add integration ${cy} to config.al`,El,wl),await va.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${cy} added successfully`)}catch(ay){throw console.error("Error adding integration to config:",ay),y$b.error(`Failed to add integration: ${ay.message}`),ay}},[ba,El,wl,ya,va,Sl]),gg=reactExports.useCallback(async yg=>{if(ya!=="api"||!ba){console.warn("removeIntegrationFromConfig only supported in 'api' mode with a valid githubRepo");return}try{const ay=yg.userData?.GitHubRepo,ly=yg.name;if(!ay)throw new Error("GitHub repository name is required");const cy=await readPackageJsonFromGit(ba);cy.dependencies&&cy.dependencies[ly]&&(delete cy.dependencies[ly],await savePackageJsonToGit(ba,JSON.stringify(cy,null,2),`Remove integration ${ly} from API`,El,wl));try{const q1=await readProjectFile(ba,"config.al"),r0=parseAppConfig(q1);if(r0[ay]){delete r0[ay];const uE=formatAppConfig(r0);await saveConfigToGit(ba,uE,`Remove integration ${ly} from config.al`,El,wl)}}catch{console.log("config.al does not exist or error reading it")}await va.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${ly} removed successfully`)}catch(ay){throw console.error("Error removing integration from config:",ay),y$b.error(`Failed to remove integration: ${ay.message}`),ay}},[ba,El,wl,ya,va]);return{integrationData:Cl,isLoadingIntegrations:Mc,isErrorIntegrations:dp,integrationsError:pp,fetchIntegrations:Ef,createIntegration:Jf,deleteIntegration:pg,updateIntegration:hg,addIntegrationToConfig:mg,removeIntegrationFromConfig:gg}},IS_PLAYGROUND$9=!1,IS_LOCAL_MODE$7=!0,useDeployments=()=>{const ya=useQueryClient(),ma=useAppStore(hp=>hp.authReady),ba=useAppStore(hp=>hp.isAuthenticated),{data:va,isLoading:Ma,isError:wl,error:El,refetch:Sl}=useQuery({queryKey:["deployments"],queryFn:async()=>(await axiosInstance("deployment").get("/Deployment/App")).data.reduce((Zf,Jf)=>{const pg=Jf.App,hg=pg.Repo;return Zf[hg]||(Zf[hg]=[]),Zf[hg].push({Repo:pg.Repo,Organization:pg.Organization,Branch:pg.Branch,Config:pg.Config,DeploymentId:pg.DeploymentId,ExternalUrl:pg.ExternalUrl,CreatedOn:pg.CreatedOn,CreatedBy:pg.CreatedBy,Status:pg.Status,Type:pg.Type,__path__:pg.__path__,__parent__:pg.__parent__}),Zf},{}),enabled:ma&&ba&&!IS_PLAYGROUND$9});wl&&El&&y$b.error(El?.response?.data?.reason||El.message);const Cl=reactExports.useCallback(async()=>{await Sl()},[Sl]),Mc=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app config creation`),"mock-config-id";const Zf=(await axiosInstance("deployment").post("/Deployment/AppConfig",hp)).data?.AppConfigId;if(!Zf)throw new Error("AppConfigId not found in response");return console.log("✅ App config created:",Zf),Zf}catch(Ef){throw console.error("❌ Failed to create app config:",Ef),y$b.error(Ef?.response?.data?.reason||"Failed to create app config"),Ef}},[]),dp=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app deployment`),y$b.success(`App deployed successfully! (${IS_PLAYGROUND$9?"playground":"serve"} mode)`),{success:!0};const Ef=await axiosInstance("deployment").post("/Deployment/DeployApp",hp);return y$b.success("App deployed successfully!"),ya.invalidateQueries({queryKey:["deployments"]}),Ef.data}catch(Ef){throw y$b.error(Ef?.response?.data?.reason||"Failed to deploy app"),Ef}},[ya]),pp=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app undeployment`),y$b.success(`App undeployed successfully! (${IS_PLAYGROUND$9?"playground":"serve"} mode)`),{success:!0};const Ef=await axiosInstance("deployment").post("/Deployment/UndeployApp",hp);return y$b.success("App undeployed successfully!"),ya.invalidateQueries({queryKey:["deployments"]}),Ef.data}catch(Ef){throw y$b.error(Ef?.response?.data?.reason||"Failed to undeploy app"),Ef}},[ya]);return{deploymentsData:va,isLoadingDeployments:Ma,isErrorDeployments:wl,deploymentsError:El,fetchDeployments:Cl,createAppConfig:Mc,deployApp:dp,undeployApp:pp}};let globalInitializationState={isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}};const listeners=new Set,updateGlobalState=ya=>{globalInitializationState={...globalInitializationState,...ya},listeners.forEach(ma=>ma(globalInitializationState))},useAppInitialization=()=>{const[ya,ma]=reactExports.useState(globalInitializationState),ba=reactExports.useRef(!1),{setUser:va,user:Ma,lastDataFetch:wl,setLastDataFetch:El}=useAppStore(),Sl=axiosInstance("meta"),{fetchWorkspaceApps:Cl}=useTeams(),{fetchIntegrations:Mc}=useIntegration(),{fetchDeployments:dp}=useDeployments(),{fetchLLMs:pp}=useLLM();reactExports.useEffect(()=>{const ay=ly=>{ma(ly)};return listeners.add(ay),()=>{listeners.delete(ay)}},[]);const hp=reactExports.useCallback(ay=>{const ly={...globalInitializationState,progress:{...globalInitializationState.progress,...ay}};updateGlobalState(ly)},[]),Ef=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("agentlang-studio-store");if(!ay)return!1;try{const ly=JSON.parse(ay),cy=ly.state&&ly.state.user&&ly.state.user.Email,q1=ly.state&&ly.state.workspace&&ly.state.workspace.Id,r0=ly.state&&ly.state.lastDataFetch&&ly.state.lastDataFetch>0;return cy&&q1&&r0}catch(ly){return console.warn("Failed to parse cached store:",ly),!1}},[]),Zf=reactExports.useCallback(()=>{if(wl===0)return!0;const ay=Date.now()-600*1e3;if(wl>ay)return!1;const ly=Date.now()-300*1e3;return wl<ly},[wl]),Jf=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("agentlang-studio-store");if(!ay)return!1;try{const ly=JSON.parse(ay);if(ly.state&&ly.state.user&&ly.state.user.Email)return hp({userLoaded:!0}),!0}catch(ly){console.warn("Failed to parse cached store:",ly)}return!1},[hp]),pg=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("workspace_id"),ly=localStorage.getItem("username");return ay&&ly?(hp({workspaceLoaded:!0}),!0):!1},[hp]),hg=reactExports.useCallback(async(ay,ly,cy=!1)=>{{console.log("[DEV MODE] Skipping app data initialization - no API calls needed"),hp({dataLoaded:!0});return}},[Cl,Mc,dp,pp,hp,El]),mg=reactExports.useCallback(async(ay=0)=>{if(!ba.current){console.log("[DEV MODE] Skipping app initialization - no API calls needed"),El(Date.now()),updateGlobalState({isInitializing:!1,isInitialized:!0,retryCount:0,progress:{userLoaded:!0,workspaceLoaded:!0,dataLoaded:!0}});return}},[Sl,va,Ma,hg,hp,Ef,Jf,pg,Zf,El]),gg=reactExports.useCallback(()=>{updateGlobalState({retryCount:0}),ba.current=!1,mg()},[mg]),yg=reactExports.useCallback(()=>{updateGlobalState({isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}}),ba.current=!1},[]);return reactExports.useEffect(()=>()=>{ba.current=!1},[]),{...ya,initializeApp:mg,retryInitialization:gg,resetInitialization:yg}};var t$9=typeof window<"u"?window:void 0,i$b=typeof globalThis<"u"?globalThis:t$9;typeof self>"u"&&(i$b.self=i$b),typeof File>"u"&&(i$b.File=function(){});var e$a=Array.prototype,r$d=e$a.forEach,s$e=e$a.indexOf,n$9=i$b?.navigator,o$d=i$b?.document,a$h=i$b?.location,l$9=i$b?.fetch,u$h=i$b!=null&&i$b.XMLHttpRequest&&"withCredentials"in new i$b.XMLHttpRequest?i$b.XMLHttpRequest:void 0,h$c=i$b?.AbortController,d$7=n$9?.userAgent,v$8=t$9??{},c$e={DEBUG:!1,LIB_VERSION:"1.319.0"};function f$g(ya,ma,ba,va,Ma,wl,El){try{var Sl=ya[wl](El),Cl=Sl.value}catch(Mc){return void ba(Mc)}Sl.done?ma(Cl):Promise.resolve(Cl).then(va,Ma)}function p$b(ya){return function(){var ma=this,ba=arguments;return new Promise((function(va,Ma){var wl=ya.apply(ma,ba);function El(Cl){f$g(wl,va,Ma,El,Sl,"next",Cl)}function Sl(Cl){f$g(wl,va,Ma,El,Sl,"throw",Cl)}El(void 0)}))}}function g$8(){return g$8=Object.assign?Object.assign.bind():function(ya){for(var ma=1;ma<arguments.length;ma++){var ba=arguments[ma];for(var va in ba)({}).hasOwnProperty.call(ba,va)&&(ya[va]=ba[va])}return ya},g$8.apply(null,arguments)}function _$8(ya,ma){if(ya==null)return{};var ba={};for(var va in ya)if({}.hasOwnProperty.call(ya,va)){if(ma.indexOf(va)!==-1)continue;ba[va]=ya[va]}return ba}var m$9=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y$a=function(ya,ma){if(ma===void 0&&(ma=[]),!ya)return!1;var ba=ya.toLowerCase();return m$9.concat(ma).some((va=>{var Ma=va.toLowerCase();return ba.indexOf(Ma)!==-1}))},b$9=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"];function w$9(ya,ma){return ya.indexOf(ma)!==-1}var x$6=function(ya){return ya.trim()},E$8=function(ya){return ya.replace(/^\$/,"")},S$a=Array.isArray,k$a=Object.prototype,P$9=k$a.hasOwnProperty,T$b=k$a.toString,I$9=S$a||function(ya){return T$b.call(ya)==="[object Array]"},C$c=ya=>typeof ya=="function",R$3=ya=>ya===Object(ya)&&!I$9(ya),F$8=ya=>{if(R$3(ya)){for(var ma in ya)if(P$9.call(ya,ma))return!1;return!0}return!1},M$6=ya=>ya===void 0,O$5=ya=>T$b.call(ya)=="[object String]",A$7=ya=>O$5(ya)&&ya.trim().length===0,D$b=ya=>ya===null,j$b=ya=>M$6(ya)||D$b(ya),L$7=ya=>T$b.call(ya)=="[object Number]"&&ya==ya,N$7=ya=>L$7(ya)&&ya>0,U$5=ya=>T$b.call(ya)==="[object Boolean]",z$6=ya=>ya instanceof FormData,H$8=ya=>w$9(b$9,ya);function B$6(ya){return ya===null||typeof ya!="object"}function q$7(ya,ma){return Object.prototype.toString.call(ya)==="[object "+ma+"]"}function W$5(ya){return!M$6(Event)&&(function(ma,ba){try{return ma instanceof ba}catch{return!1}})(ya,Event)}var G$6=[!0,"true",1,"1","yes"],V$7=ya=>w$9(G$6,ya),J$6=[!1,"false",0,"0","no"];function K$6(ya,ma,ba,va,Ma){return ma>ba&&(va.warn("min cannot be greater than max."),ma=ba),L$7(ya)?ya>ba?(va.warn(" cannot be greater than max: "+ba+". Using max value instead."),ba):ya<ma?(va.warn(" cannot be less than min: "+ma+". Using min value instead."),ma):ya:(va.warn(" must be a number. using max or fallback. max: "+ba+", fallback: "+Ma),K$6(Ma||ba,ma,ba,va))}let Y$3=class{constructor(ma){this.t={},this.i=ma.i,this.o=K$6(ma.bucketSize,0,100,ma.h),this.m=K$6(ma.refillRate,0,this.o,ma.h),this.$=K$6(ma.refillInterval,0,864e5,ma.h)}S(ma,ba){var va=ba-ma.lastAccess,Ma=Math.floor(va/this.$);if(Ma>0){var wl=Ma*this.m;ma.tokens=Math.min(ma.tokens+wl,this.o),ma.lastAccess=ma.lastAccess+Ma*this.$}}consumeRateLimit(ma){var ba,va=Date.now(),Ma=String(ma),wl=this.t[Ma];return wl?this.S(wl,va):(wl={tokens:this.o,lastAccess:va},this.t[Ma]=wl),wl.tokens===0||(wl.tokens--,wl.tokens===0&&((ba=this.i)==null||ba.call(this,ma)),wl.tokens===0)}stop(){this.t={}}};var X$5="Mobile",Q$6="iOS",Z$5="Android",tt$1="Tablet",it=Z$5+" "+tt$1,et="iPad",rt="Apple",st=rt+" Watch",nt="Safari",ot="BlackBerry",at="Samsung",lt=at+"Browser",ut=at+" Internet",ht$1="Chrome",dt$1=ht$1+" OS",vt$1=ht$1+" "+Q$6,ct="Internet Explorer",ft=ct+" "+X$5,pt="Opera",gt$1=pt+" Mini",_t$1="Edge",mt="Microsoft "+_t$1,yt="Firefox",bt=yt+" "+Q$6,wt$1="Nintendo",xt="PlayStation",Et$1="Xbox",$t=Z$5+" "+X$5,St$1=X$5+" "+nt,kt$1="Windows",Pt$1=kt$1+" Phone",Tt="Nokia",It$1="Ouya",Ct$1="Generic",Rt$1=Ct$1+" "+X$5.toLowerCase(),Ft$2=Ct$1+" "+tt$1.toLowerCase(),Mt$1="Konqueror",Ot="(\\d+(\\.\\d+)?)",At$1=new RegExp("Version/"+Ot),Dt$1=new RegExp(Et$1,"i"),jt=new RegExp(xt+" \\w+","i"),Lt=new RegExp(wt$1+" \\w+","i"),Nt=new RegExp(ot+"|PlayBook|BB10","i"),Ut={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},zt,Ht,Bt$1,qt=(ya,ma)=>ma&&w$9(ma,rt)||(function(ba){return w$9(ba,nt)&&!w$9(ba,ht$1)&&!w$9(ba,Z$5)})(ya),Wt=function(ya,ma){return ma=ma||"",w$9(ya," OPR/")&&w$9(ya,"Mini")?gt$1:w$9(ya," OPR/")?pt:Nt.test(ya)?ot:w$9(ya,"IE"+X$5)||w$9(ya,"WPDesktop")?ft:w$9(ya,lt)?ut:w$9(ya,_t$1)||w$9(ya,"Edg/")?mt:w$9(ya,"FBIOS")?"Facebook "+X$5:w$9(ya,"UCWEB")||w$9(ya,"UCBrowser")?"UC Browser":w$9(ya,"CriOS")?vt$1:w$9(ya,"CrMo")||w$9(ya,ht$1)?ht$1:w$9(ya,Z$5)&&w$9(ya,nt)?$t:w$9(ya,"FxiOS")?bt:w$9(ya.toLowerCase(),Mt$1.toLowerCase())?Mt$1:qt(ya,ma)?w$9(ya,X$5)?St$1:nt:w$9(ya,yt)?yt:w$9(ya,"MSIE")||w$9(ya,"Trident/")?ct:w$9(ya,"Gecko")?yt:""},Gt={[ft]:[new RegExp("rv:"+Ot)],[mt]:[new RegExp(_t$1+"?\\/"+Ot)],[ht$1]:[new RegExp("("+ht$1+"|CrMo)\\/"+Ot)],[vt$1]:[new RegExp("CriOS\\/"+Ot)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Ot)],[nt]:[At$1],[St$1]:[At$1],[pt]:[new RegExp("(Opera|OPR)\\/"+Ot)],[yt]:[new RegExp(yt+"\\/"+Ot)],[bt]:[new RegExp("FxiOS\\/"+Ot)],[Mt$1]:[new RegExp("Konqueror[:/]?"+Ot,"i")],[ot]:[new RegExp(ot+" "+Ot),At$1],[$t]:[new RegExp("android\\s"+Ot,"i")],[ut]:[new RegExp(lt+"\\/"+Ot)],[ct]:[new RegExp("(rv:|MSIE )"+Ot)],Mozilla:[new RegExp("rv:"+Ot)]},Vt=function(ya,ma){var ba=Wt(ya,ma),va=Gt[ba];if(M$6(va))return null;for(var Ma=0;Ma<va.length;Ma++){var wl=va[Ma],El=ya.match(wl);if(El)return parseFloat(El[El.length-2])}return null},Jt=[[new RegExp(Et$1+"; "+Et$1+" (.*?)[);]","i"),ya=>[Et$1,ya&&ya[1]||""]],[new RegExp(wt$1,"i"),[wt$1,""]],[new RegExp(xt,"i"),[xt,""]],[Nt,[ot,""]],[new RegExp(kt$1,"i"),(ya,ma)=>{if(/Phone/.test(ma)||/WPDesktop/.test(ma))return[Pt$1,""];if(new RegExp(X$5).test(ma)&&!/IEMobile\b/.test(ma))return[kt$1+" "+X$5,""];var ba=/Windows NT ([0-9.]+)/i.exec(ma);if(ba&&ba[1]){var va=ba[1],Ma=Ut[va]||"";return/arm/i.test(ma)&&(Ma="RT"),[kt$1,Ma]}return[kt$1,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,ya=>{if(ya&&ya[3]){var ma=[ya[3],ya[4],ya[5]||"0"];return[Q$6,ma.join(".")]}return[Q$6,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,ya=>{var ma="";return ya&&ya.length>=3&&(ma=M$6(ya[2])?ya[3]:ya[2]),["watchOS",ma]}],[new RegExp("("+Z$5+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Z$5+")","i"),ya=>{if(ya&&ya[2]){var ma=[ya[2],ya[3],ya[4]||"0"];return[Z$5,ma.join(".")]}return[Z$5,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,ya=>{var ma=["Mac OS X",""];if(ya&&ya[1]){var ba=[ya[1],ya[2],ya[3]||"0"];ma[1]=ba.join(".")}return ma}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[dt$1,""]],[/Linux|debian/i,["Linux",""]]],Kt=function(ya){return Lt.test(ya)?wt$1:jt.test(ya)?xt:Dt$1.test(ya)?Et$1:new RegExp(It$1,"i").test(ya)?It$1:new RegExp("("+Pt$1+"|WPDesktop)","i").test(ya)?Pt$1:/iPad/.test(ya)?et:/iPod/.test(ya)?"iPod Touch":/iPhone/.test(ya)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(ya)?st:Nt.test(ya)?ot:/(kobo)\s(ereader|touch)/i.test(ya)?"Kobo":new RegExp(Tt,"i").test(ya)?Tt:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(ya)||/(kf[a-z]+)( bui|\)).+silk\//i.test(ya)?"Kindle Fire":/(Android|ZTE)/i.test(ya)?new RegExp(X$5).test(ya)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(ya)||/pixel[\daxl ]{1,6}/i.test(ya)&&!/pixel c/i.test(ya)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(ya)||/lmy47v/i.test(ya)&&!/QTAQZ3/i.test(ya)?Z$5:it:new RegExp("(pda|"+X$5+")","i").test(ya)?Rt$1:new RegExp(tt$1,"i").test(ya)&&!new RegExp(tt$1+" pc","i").test(ya)?Ft$2:""},Yt=ya=>ya instanceof Error;function Xt(ya){var ma=globalThis._posthogChunkIds;if(ma){var ba=Object.keys(ma);return Bt$1&&ba.length===Ht||(Ht=ba.length,Bt$1=ba.reduce(((va,Ma)=>{zt||(zt={});var wl=zt[Ma];if(wl)va[wl[0]]=wl[1];else for(var El=ya(Ma),Sl=El.length-1;Sl>=0;Sl--){var Cl=El[Sl],Mc=Cl?.filename,dp=ma[Ma];if(Mc&&dp){va[Mc]=dp,zt[Ma]=[Mc,dp];break}}return va}),{})),Bt$1}}class Qt{constructor(ma,ba,va){va===void 0&&(va=[]),this.coercers=ma,this.stackParser=ba,this.modifiers=va}buildFromUnknown(ma,ba){ba===void 0&&(ba={});var va=ba&&ba.mechanism||{handled:!0,type:"generic"},Ma=this.buildCoercingContext(va,ba,0).apply(ma),wl=this.buildParsingContext(),El=this.parseStacktrace(Ma,wl);return{$exception_list:this.convertToExceptionList(El,va),$exception_level:"error"}}modifyFrames(ma){var ba=this;return p$b((function*(){for(var va of ma)va.stacktrace&&va.stacktrace.frames&&I$9(va.stacktrace.frames)&&(va.stacktrace.frames=yield ba.applyModifiers(va.stacktrace.frames));return ma}))()}coerceFallback(ma){var ba;return{type:"Error",value:"Unknown error",stack:(ba=ma.syntheticException)==null?void 0:ba.stack,synthetic:!0}}parseStacktrace(ma,ba){var va,Ma;return ma.cause!=null&&(va=this.parseStacktrace(ma.cause,ba)),ma.stack!=""&&ma.stack!=null&&(Ma=this.applyChunkIds(this.stackParser(ma.stack,ma.synthetic?1:0),ba.chunkIdMap)),g$8({},ma,{cause:va,stack:Ma})}applyChunkIds(ma,ba){return ma.map((va=>(va.filename&&ba&&(va.chunk_id=ba[va.filename]),va)))}applyCoercers(ma,ba){for(var va of this.coercers)if(va.match(ma))return va.coerce(ma,ba);return this.coerceFallback(ba)}applyModifiers(ma){var ba=this;return p$b((function*(){var va=ma;for(var Ma of ba.modifiers)va=yield Ma(va);return va}))()}convertToExceptionList(ma,ba){var va,Ma,wl,El={type:ma.type,value:ma.value,mechanism:{type:(va=ba.type)!==null&&va!==void 0?va:"generic",handled:(Ma=ba.handled)===null||Ma===void 0||Ma,synthetic:(wl=ma.synthetic)!==null&&wl!==void 0&&wl}};ma.stack&&(El.stacktrace={type:"raw",frames:ma.stack});var Sl=[El];return ma.cause!=null&&Sl.push(...this.convertToExceptionList(ma.cause,g$8({},ba,{handled:!0}))),Sl}buildParsingContext(){return{chunkIdMap:Xt(this.stackParser)}}buildCoercingContext(ma,ba,va){va===void 0&&(va=0);var Ma=(wl,El)=>{if(El<=4){var Sl=this.buildCoercingContext(ma,ba,El);return this.applyCoercers(wl,Sl)}};return g$8({},ba,{syntheticException:va==0?ba.syntheticException:void 0,mechanism:ma,apply:wl=>Ma(wl,va),next:wl=>Ma(wl,va+1)})}}var Zt="?";function ti(ya,ma,ba,va,Ma){var wl={platform:ya,filename:ma,function:ba==="<anonymous>"?Zt:ba,in_app:!0};return M$6(va)||(wl.lineno=va),M$6(Ma)||(wl.colno=Ma),wl}var ii=(ya,ma)=>{var ba=ya.indexOf("safari-extension")!==-1,va=ya.indexOf("safari-web-extension")!==-1;return ba||va?[ya.indexOf("@")!==-1?ya.split("@")[0]:Zt,ba?"safari-extension:"+ma:"safari-web-extension:"+ma]:[ya,ma]},ei=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ri=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,si=/\((\S*)(?::(\d+))(?::(\d+))\)/,ni=(ya,ma)=>{var ba=ei.exec(ya);if(ba){var[,va,Ma,wl]=ba;return ti(ma,va,Zt,+Ma,+wl)}var El=ri.exec(ya);if(El){if(El[2]&&El[2].indexOf("eval")===0){var Sl=si.exec(El[2]);Sl&&(El[2]=Sl[1],El[3]=Sl[2],El[4]=Sl[3])}var[Cl,Mc]=ii(El[1]||Zt,El[2]);return ti(ma,Mc,Cl,El[3]?+El[3]:void 0,El[4]?+El[4]:void 0)}},oi=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ai=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,li=(ya,ma)=>{var ba=oi.exec(ya);if(ba){if(ba[3]&&ba[3].indexOf(" > eval")>-1){var va=ai.exec(ba[3]);va&&(ba[1]=ba[1]||"eval",ba[3]=va[1],ba[4]=va[2],ba[5]="")}var Ma=ba[3],wl=ba[1]||Zt;return[wl,Ma]=ii(wl,Ma),ti(ma,Ma,wl,ba[4]?+ba[4]:void 0,ba[5]?+ba[5]:void 0)}},ui=/\(error: (.*)\)/,hi=50;function di(){return(function(ya){for(var ma=arguments.length,ba=new Array(ma>1?ma-1:0),va=1;va<ma;va++)ba[va-1]=arguments[va];return function(Ma,wl){wl===void 0&&(wl=0);for(var El=[],Sl=Ma.split(`
21262
+ `);var L$8=ya=>typeof ya=="number"&&!isNaN(ya),N$8=ya=>typeof ya=="string",P$a=ya=>typeof ya=="function",mt$1=ya=>N$8(ya)||L$8(ya),B$7=ya=>N$8(ya)||P$a(ya)?ya:null,pt$1=(ya,ma)=>ya===!1||L$8(ya)&&ya>0?ya:ma,z$7=ya=>reactExports.isValidElement(ya)||N$8(ya)||P$a(ya)||L$8(ya);function Z$6(ya,ma,ba=300){let{scrollHeight:va,style:Ma}=ya;requestAnimationFrame(()=>{Ma.minHeight="initial",Ma.height=va+"px",Ma.transition=`all ${ba}ms`,requestAnimationFrame(()=>{Ma.height="0",Ma.padding="0",Ma.margin="0",setTimeout(ma,ba)})})}function $$7({enter:ya,exit:ma,appendPosition:ba=!1,collapse:va=!0,collapseDuration:Ma=300}){return function({children:wl,position:El,preventExitTransition:Sl,done:Cl,nodeRef:Mc,isIn:dp,playToast:pp}){let hp=ba?`${ya}--${El}`:ya,Ef=ba?`${ma}--${El}`:ma,Zf=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{let Jf=Mc.current,pg=hp.split(" "),hg=mg=>{mg.target===Mc.current&&(pp(),Jf.removeEventListener("animationend",hg),Jf.removeEventListener("animationcancel",hg),Zf.current===0&&mg.type!=="animationcancel"&&Jf.classList.remove(...pg))};Jf.classList.add(...pg),Jf.addEventListener("animationend",hg),Jf.addEventListener("animationcancel",hg)},[]),reactExports.useEffect(()=>{let Jf=Mc.current,pg=()=>{Jf.removeEventListener("animationend",pg),va?Z$6(Jf,Cl,Ma):Cl()};dp||(Sl?pg():(Zf.current=1,Jf.className+=` ${Ef}`,Jf.addEventListener("animationend",pg)))},[dp]),React.createElement(React.Fragment,null,wl)}}function J$7(ya,ma){return{content:tt$2(ya.content,ya.props),containerId:ya.props.containerId,id:ya.props.toastId,theme:ya.props.theme,type:ya.props.type,data:ya.props.data||{},isLoading:ya.props.isLoading,icon:ya.props.icon,reason:ya.removalReason,status:ma}}function tt$2(ya,ma,ba=!1){return reactExports.isValidElement(ya)&&!N$8(ya.type)?reactExports.cloneElement(ya,{closeToast:ma.closeToast,toastProps:ma,data:ma.data,isPaused:ba}):P$a(ya)?ya({closeToast:ma.closeToast,toastProps:ma,data:ma.data,isPaused:ba}):ya}function yt$1({closeToast:ya,theme:ma,ariaLabel:ba="close"}){return React.createElement("button",{className:`Toastify__close-button Toastify__close-button--${ma}`,type:"button",onClick:va=>{va.stopPropagation(),ya(!0)},"aria-label":ba},React.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},React.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function gt$2({delay:ya,isRunning:ma,closeToast:ba,type:va="default",hide:Ma,className:wl,controlledProgress:El,progress:Sl,rtl:Cl,isIn:Mc,theme:dp}){let pp=Ma||El&&Sl===0,hp={animationDuration:`${ya}ms`,animationPlayState:ma?"running":"paused"};El&&(hp.transform=`scaleX(${Sl})`);let Ef=clsx("Toastify__progress-bar",El?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${dp}`,`Toastify__progress-bar--${va}`,{"Toastify__progress-bar--rtl":Cl}),Zf=P$a(wl)?wl({rtl:Cl,type:va,defaultClassName:Ef}):clsx(Ef,wl),Jf={[El&&Sl>=1?"onTransitionEnd":"onAnimationEnd"]:El&&Sl<1?null:()=>{Mc&&ba()}};return React.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":pp},React.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${dp} Toastify__progress-bar--${va}`}),React.createElement("div",{role:"progressbar","aria-hidden":pp?"true":"false","aria-label":"notification timer",className:Zf,style:hp,...Jf}))}var Xt$1=1,at$1=()=>`${Xt$1++}`;function _t$2(ya,ma,ba){let va=1,Ma=0,wl=[],El=[],Sl=ma,Cl=new Map,Mc=new Set,dp=mg=>(Mc.add(mg),()=>Mc.delete(mg)),pp=()=>{El=Array.from(Cl.values()),Mc.forEach(mg=>mg())},hp=({containerId:mg,toastId:gg,updateId:yg})=>{let ay=mg?mg!==ya:ya!==1,ly=Cl.has(gg)&&yg==null;return ay||ly},Ef=(mg,gg)=>{Cl.forEach(yg=>{var ay;(gg==null||gg===yg.props.toastId)&&((ay=yg.toggle)==null||ay.call(yg,mg))})},Zf=mg=>{var gg,yg;(yg=(gg=mg.props)==null?void 0:gg.onClose)==null||yg.call(gg,mg.removalReason),mg.isActive=!1},Jf=mg=>{if(mg==null)Cl.forEach(Zf);else{let gg=Cl.get(mg);gg&&Zf(gg)}pp()},pg=()=>{Ma-=wl.length,wl=[]},hg=mg=>{var gg,yg;let{toastId:ay,updateId:ly}=mg.props,cy=ly==null;mg.staleId&&Cl.delete(mg.staleId),mg.isActive=!0,Cl.set(ay,mg),pp(),ba(J$7(mg,cy?"added":"updated")),cy&&((yg=(gg=mg.props).onOpen)==null||yg.call(gg))};return{id:ya,props:Sl,observe:dp,toggle:Ef,removeToast:Jf,toasts:Cl,clearQueue:pg,buildToast:(mg,gg)=>{if(hp(gg))return;let{toastId:yg,updateId:ay,data:ly,staleId:cy,delay:q1}=gg,r0=ay==null;r0&&Ma++;let uE={...Sl,style:Sl.toastStyle,key:va++,...Object.fromEntries(Object.entries(gg).filter(([H1,O_])=>O_!=null)),toastId:yg,updateId:ay,data:ly,isIn:!1,className:B$7(gg.className||Sl.toastClassName),progressClassName:B$7(gg.progressClassName||Sl.progressClassName),autoClose:gg.isLoading?!1:pt$1(gg.autoClose,Sl.autoClose),closeToast(H1){Cl.get(yg).removalReason=H1,Jf(yg)},deleteToast(){let H1=Cl.get(yg);if(H1!=null){if(ba(J$7(H1,"removed")),Cl.delete(yg),Ma--,Ma<0&&(Ma=0),wl.length>0){hg(wl.shift());return}pp()}}};uE.closeButton=Sl.closeButton,gg.closeButton===!1||z$7(gg.closeButton)?uE.closeButton=gg.closeButton:gg.closeButton===!0&&(uE.closeButton=z$7(Sl.closeButton)?Sl.closeButton:!0);let V1={content:mg,props:uE,staleId:cy};Sl.limit&&Sl.limit>0&&Ma>Sl.limit&&r0?wl.push(V1):L$8(q1)?setTimeout(()=>{hg(V1)},q1):hg(V1)},setProps(mg){Sl=mg},setToggle:(mg,gg)=>{let yg=Cl.get(mg);yg&&(yg.toggle=gg)},isToastActive:mg=>{var gg;return(gg=Cl.get(mg))==null?void 0:gg.isActive},getSnapshot:()=>El}}var I$a=new Map,F$9=[],st$1=new Set,Vt$1=ya=>st$1.forEach(ma=>ma(ya)),bt$1=()=>I$a.size>0;function Qt$1(){F$9.forEach(ya=>nt$1(ya.content,ya.options)),F$9=[]}var vt$2=(ya,{containerId:ma})=>{var ba;return(ba=I$a.get(ma||1))==null?void 0:ba.toasts.get(ya)};function X$6(ya,ma){var ba;if(ma)return!!((ba=I$a.get(ma))!=null&&ba.isToastActive(ya));let va=!1;return I$a.forEach(Ma=>{Ma.isToastActive(ya)&&(va=!0)}),va}function ht$2(ya){if(!bt$1()){F$9=F$9.filter(ma=>ya!=null&&ma.options.toastId!==ya);return}if(ya==null||mt$1(ya))I$a.forEach(ma=>{ma.removeToast(ya)});else if(ya&&("containerId"in ya||"id"in ya)){let ma=I$a.get(ya.containerId);ma?ma.removeToast(ya.id):I$a.forEach(ba=>{ba.removeToast(ya.id)})}}var Ct$2=(ya={})=>{I$a.forEach(ma=>{ma.props.limit&&(!ya.containerId||ma.id===ya.containerId)&&ma.clearQueue()})};function nt$1(ya,ma){z$7(ya)&&(bt$1()||F$9.push({content:ya,options:ma}),I$a.forEach(ba=>{ba.buildToast(ya,ma)}))}function xt$1(ya){var ma;(ma=I$a.get(ya.containerId||1))==null||ma.setToggle(ya.id,ya.fn)}function rt$1(ya,ma){I$a.forEach(ba=>{(ma==null||!(ma!=null&&ma.containerId)||ma?.containerId===ba.id)&&ba.toggle(ya,ma?.id)})}function Et$2(ya){let ma=ya.containerId||1;return{subscribe(ba){let va=_t$2(ma,ya,Vt$1);I$a.set(ma,va);let Ma=va.observe(ba);return Qt$1(),()=>{Ma(),I$a.delete(ma)}},setProps(ba){var va;(va=I$a.get(ma))==null||va.setProps(ba)},getSnapshot(){var ba;return(ba=I$a.get(ma))==null?void 0:ba.getSnapshot()}}}function Pt$2(ya){return st$1.add(ya),()=>{st$1.delete(ya)}}function Wt$1(ya){return ya&&(N$8(ya.toastId)||L$8(ya.toastId))?ya.toastId:at$1()}function U$6(ya,ma){return nt$1(ya,ma),ma.toastId}function V$8(ya,ma){return{...ma,type:ma&&ma.type||ya,toastId:Wt$1(ma)}}function Q$7(ya){return(ma,ba)=>U$6(ma,V$8(ya,ba))}function y$b(ya,ma){return U$6(ya,V$8("default",ma))}y$b.loading=(ya,ma)=>U$6(ya,V$8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...ma}));function Gt$1(ya,{pending:ma,error:ba,success:va},Ma){let wl;ma&&(wl=N$8(ma)?y$b.loading(ma,Ma):y$b.loading(ma.render,{...Ma,...ma}));let El={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},Sl=(Mc,dp,pp)=>{if(dp==null){y$b.dismiss(wl);return}let hp={type:Mc,...El,...Ma,data:pp},Ef=N$8(dp)?{render:dp}:dp;return wl?y$b.update(wl,{...hp,...Ef}):y$b(Ef.render,{...hp,...Ef}),pp},Cl=P$a(ya)?ya():ya;return Cl.then(Mc=>Sl("success",va,Mc)).catch(Mc=>Sl("error",ba,Mc)),Cl}y$b.promise=Gt$1;y$b.success=Q$7("success");y$b.info=Q$7("info");y$b.error=Q$7("error");y$b.warning=Q$7("warning");y$b.warn=y$b.warning;y$b.dark=(ya,ma)=>U$6(ya,V$8("default",{theme:"dark",...ma}));function qt$1(ya){ht$2(ya)}y$b.dismiss=qt$1;y$b.clearWaitingQueue=Ct$2;y$b.isActive=X$6;y$b.update=(ya,ma={})=>{let ba=vt$2(ya,ma);if(ba){let{props:va,content:Ma}=ba,wl={delay:100,...va,...ma,toastId:ma.toastId||ya,updateId:at$1()};wl.toastId!==ya&&(wl.staleId=ya);let El=wl.render||Ma;delete wl.render,U$6(El,wl)}};y$b.done=ya=>{y$b.update(ya,{progress:1})};y$b.onChange=Pt$2;y$b.play=ya=>rt$1(!0,ya);y$b.pause=ya=>rt$1(!1,ya);function It$2(ya){var ma;let{subscribe:ba,getSnapshot:va,setProps:Ma}=reactExports.useRef(Et$2(ya)).current;Ma(ya);let wl=(ma=reactExports.useSyncExternalStore(ba,va,va))==null?void 0:ma.slice();function El(Sl){if(!wl)return[];let Cl=new Map;return ya.newestOnTop&&wl.reverse(),wl.forEach(Mc=>{let{position:dp}=Mc.props;Cl.has(dp)||Cl.set(dp,[]),Cl.get(dp).push(Mc)}),Array.from(Cl,Mc=>Sl(Mc[0],Mc[1]))}return{getToastToRender:El,isToastActive:X$6,count:wl?.length}}function At$2(ya){let[ma,ba]=reactExports.useState(!1),[va,Ma]=reactExports.useState(!1),wl=reactExports.useRef(null),El=reactExports.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:Sl,pauseOnHover:Cl,closeToast:Mc,onClick:dp,closeOnClick:pp}=ya;xt$1({id:ya.toastId,containerId:ya.containerId,fn:ba}),reactExports.useEffect(()=>{if(ya.pauseOnFocusLoss)return hp(),()=>{Ef()}},[ya.pauseOnFocusLoss]);function hp(){document.hasFocus()||hg(),window.addEventListener("focus",pg),window.addEventListener("blur",hg)}function Ef(){window.removeEventListener("focus",pg),window.removeEventListener("blur",hg)}function Zf(cy){if(ya.draggable===!0||ya.draggable===cy.pointerType){mg();let q1=wl.current;El.canCloseOnClick=!0,El.canDrag=!0,q1.style.transition="none",ya.draggableDirection==="x"?(El.start=cy.clientX,El.removalDistance=q1.offsetWidth*(ya.draggablePercent/100)):(El.start=cy.clientY,El.removalDistance=q1.offsetHeight*(ya.draggablePercent===80?ya.draggablePercent*1.5:ya.draggablePercent)/100)}}function Jf(cy){let{top:q1,bottom:r0,left:uE,right:V1}=wl.current.getBoundingClientRect();cy.nativeEvent.type!=="touchend"&&ya.pauseOnHover&&cy.clientX>=uE&&cy.clientX<=V1&&cy.clientY>=q1&&cy.clientY<=r0?hg():pg()}function pg(){ba(!0)}function hg(){ba(!1)}function mg(){El.didMove=!1,document.addEventListener("pointermove",yg),document.addEventListener("pointerup",ay)}function gg(){document.removeEventListener("pointermove",yg),document.removeEventListener("pointerup",ay)}function yg(cy){let q1=wl.current;if(El.canDrag&&q1){El.didMove=!0,ma&&hg(),ya.draggableDirection==="x"?El.delta=cy.clientX-El.start:El.delta=cy.clientY-El.start,El.start!==cy.clientX&&(El.canCloseOnClick=!1);let r0=ya.draggableDirection==="x"?`${El.delta}px, var(--y)`:`0, calc(${El.delta}px + var(--y))`;q1.style.transform=`translate3d(${r0},0)`,q1.style.opacity=`${1-Math.abs(El.delta/El.removalDistance)}`}}function ay(){gg();let cy=wl.current;if(El.canDrag&&El.didMove&&cy){if(El.canDrag=!1,Math.abs(El.delta)>El.removalDistance){Ma(!0),ya.closeToast(!0),ya.collapseAll();return}cy.style.transition="transform 0.2s, opacity 0.2s",cy.style.removeProperty("transform"),cy.style.removeProperty("opacity")}}let ly={onPointerDown:Zf,onPointerUp:Jf};return Sl&&Cl&&(ly.onMouseEnter=hg,ya.stacked||(ly.onMouseLeave=pg)),pp&&(ly.onClick=cy=>{dp&&dp(cy),El.canCloseOnClick&&Mc(!0)}),{playToast:pg,pauseToast:hg,isRunning:ma,preventExitTransition:va,toastRef:wl,eventHandlers:ly}}var Ot$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,G$7=({theme:ya,type:ma,isLoading:ba,...va})=>React.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:ya==="colored"?"currentColor":`var(--toastify-icon-color-${ma})`,...va});function ao$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function so$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function no$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function ro$1(ya){return React.createElement(G$7,{...ya},React.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function io$1(){return React.createElement("div",{className:"Toastify__spinner"})}var W$6={info:so$1,warning:ao$1,success:no$1,error:ro$1,spinner:io$1},lo$1=ya=>ya in W$6;function Nt$1({theme:ya,type:ma,isLoading:ba,icon:va}){let Ma=null,wl={theme:ya,type:ma};return va===!1||(P$a(va)?Ma=va({...wl,isLoading:ba}):reactExports.isValidElement(va)?Ma=reactExports.cloneElement(va,wl):ba?Ma=W$6.spinner():lo$1(ma)&&(Ma=W$6[ma](wl))),Ma}var wt$2=ya=>{let{isRunning:ma,preventExitTransition:ba,toastRef:va,eventHandlers:Ma,playToast:wl}=At$2(ya),{closeButton:El,children:Sl,autoClose:Cl,onClick:Mc,type:dp,hideProgressBar:pp,closeToast:hp,transition:Ef,position:Zf,className:Jf,style:pg,progressClassName:hg,updateId:mg,role:gg,progress:yg,rtl:ay,toastId:ly,deleteToast:cy,isIn:q1,isLoading:r0,closeOnClick:uE,theme:V1,ariaLabel:H1}=ya,O_=clsx("Toastify__toast",`Toastify__toast-theme--${V1}`,`Toastify__toast--${dp}`,{"Toastify__toast--rtl":ay},{"Toastify__toast--close-on-click":uE}),aE=P$a(Jf)?Jf({rtl:ay,position:Zf,type:dp,defaultClassName:O_}):clsx(O_,Jf),P_=Nt$1(ya),M_=!!yg||!Cl,sN={closeToast:hp,type:dp,theme:V1},AF=null;return El===!1||(P$a(El)?AF=El(sN):reactExports.isValidElement(El)?AF=reactExports.cloneElement(El,sN):AF=yt$1(sN)),React.createElement(Ef,{isIn:q1,done:cy,position:Zf,preventExitTransition:ba,nodeRef:va,playToast:wl},React.createElement("div",{id:ly,tabIndex:0,onClick:Mc,"data-in":q1,className:aE,...Ma,style:pg,ref:va,...q1&&{role:gg,"aria-label":H1}},P_!=null&&React.createElement("div",{className:clsx("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!r0})},P_),tt$2(Sl,ya,!ma),AF,!ya.customProgressBar&&React.createElement(gt$2,{...mg&&!M_?{key:`p-${mg}`}:{},rtl:ay,theme:V1,delay:Cl,isRunning:ma,isIn:q1,closeToast:hp,hide:pp,type:dp,className:hg,controlledProgress:M_,progress:yg||0})))},K$7=(ya,ma=!1)=>({enter:`Toastify--animate Toastify__${ya}-enter`,exit:`Toastify--animate Toastify__${ya}-exit`,appendPosition:ma}),lt$1=$$7(K$7("bounce",!0)),_o$1={position:"top-right",transition:lt$1,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:ya=>ya.altKey&&ya.code==="KeyT"};function Lt$1(ya){let ma={..._o$1,...ya},ba=ya.stacked,[va,Ma]=reactExports.useState(!0),wl=reactExports.useRef(null),{getToastToRender:El,isToastActive:Sl,count:Cl}=It$2(ma),{className:Mc,style:dp,rtl:pp,containerId:hp,hotKeys:Ef}=ma;function Zf(pg){let hg=clsx("Toastify__toast-container",`Toastify__toast-container--${pg}`,{"Toastify__toast-container--rtl":pp});return P$a(Mc)?Mc({position:pg,rtl:pp,defaultClassName:hg}):clsx(hg,B$7(Mc))}function Jf(){ba&&(Ma(!0),y$b.play())}return Ot$1(()=>{var pg;if(ba){let hg=wl.current.querySelectorAll('[data-in="true"]'),mg=12,gg=(pg=ma.position)==null?void 0:pg.includes("top"),yg=0,ay=0;Array.from(hg).reverse().forEach((ly,cy)=>{let q1=ly;q1.classList.add("Toastify__toast--stacked"),cy>0&&(q1.dataset.collapsed=`${va}`),q1.dataset.pos||(q1.dataset.pos=gg?"top":"bot");let r0=yg*(va?.2:1)+(va?0:mg*cy);q1.style.setProperty("--y",`${gg?r0:r0*-1}px`),q1.style.setProperty("--g",`${mg}`),q1.style.setProperty("--s",`${1-(va?ay:0)}`),yg+=q1.offsetHeight,ay+=.025})}},[va,Cl,ba]),reactExports.useEffect(()=>{function pg(hg){var mg;let gg=wl.current;Ef(hg)&&((mg=gg.querySelector('[tabIndex="0"]'))==null||mg.focus(),Ma(!1),y$b.pause()),hg.key==="Escape"&&(document.activeElement===gg||gg!=null&&gg.contains(document.activeElement))&&(Ma(!0),y$b.play())}return document.addEventListener("keydown",pg),()=>{document.removeEventListener("keydown",pg)}},[Ef]),React.createElement("section",{ref:wl,className:"Toastify",id:hp,onMouseEnter:()=>{ba&&(Ma(!1),y$b.pause())},onMouseLeave:Jf,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":ma["aria-label"]},El((pg,hg)=>{let mg=hg.length?{...dp}:{...dp,pointerEvents:"none"};return React.createElement("div",{tabIndex:-1,className:Zf(pg),"data-stacked":ba,style:mg,key:`c-${pg}`},hg.map(({content:gg,props:yg})=>React.createElement(wt$2,{...yg,stacked:ba,collapseAll:Jf,isIn:Sl(yg.toastId,yg.containerId),key:`t-${yg.key}`},gg)))}))}const RECENTLY_VISITED_TEAMS_KEY="recently-visited-teams",MAX_RECENTLY_VISITED=10;function transformSimpleTeamToTeam(ya){return{Branch:ya.branch||"",Config:ya.config||{},CreatedAt:ya.createdAt||"",Dependencies:ya.dependencies||{FractlModels:[],ClojureLibraries:[]},Description:ya.description||"",EntityType:ya.entityType||"",GitHubOrg:ya.gitHubOrg||"",GitHubRepo:ya.gitHubRepo||"",GithubUrl:ya.githubUrl||"",Id:ya.id||"",__Id__:ya.__Id__||ya.id||"",LastUpdatedAt:ya.lastUpdatedAt||"",Name:ya.name||"",Owner:ya.owner||"",Tags:ya.tags||null,Type:ya.type||"",Version:ya.version||"",isEditable:ya.isEditable||!1,isPin:ya.isPin==="true"||ya.isPin===!0}}function getRecentlyVisitedTeams(){try{const ya=localStorage.getItem(RECENTLY_VISITED_TEAMS_KEY);return ya?JSON.parse(ya):[]}catch{return[]}}function addRecentlyVisitedTeam(ya){try{const ba=getRecentlyVisitedTeams().filter(Ma=>Ma!==ya),va=[ya,...ba].slice(0,MAX_RECENTLY_VISITED);localStorage.setItem(RECENTLY_VISITED_TEAMS_KEY,JSON.stringify(va))}catch(ma){console.warn("Failed to save recently visited team:",ma)}}function filterAndSortTeams(ya,ma){return Object.values(ya).filter(va=>va.Name!==void 0).filter(va=>(va.Name??"").toLowerCase().includes(ma.toLowerCase())).sort((va,Ma)=>{const wl=Number(Ma.isPin??!1)-Number(va.isPin??!1);if(wl!==0)return wl;const El=(va.Name??"").toLowerCase(),Sl=(Ma.Name??"").toLowerCase();return El.localeCompare(Sl)})}function getIconsTree(ya,ma){const ba=ya.icons,va=ya.aliases||Object.create(null),Ma=Object.create(null);function wl(El){if(ba[El])return Ma[El]=[];if(!(El in Ma)){Ma[El]=null;const Sl=va[El]&&va[El].parent,Cl=Sl&&wl(Sl);Cl&&(Ma[El]=[Sl].concat(Cl))}return Ma[El]}return Object.keys(ba).concat(Object.keys(va)).forEach(wl),Ma}const defaultIconDimensions=Object.freeze({left:0,top:0,width:16,height:16}),defaultIconTransformations=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),defaultIconProps=Object.freeze({...defaultIconDimensions,...defaultIconTransformations}),defaultExtendedIconProps=Object.freeze({...defaultIconProps,body:"",hidden:!1});function mergeIconTransformations(ya,ma){const ba={};!ya.hFlip!=!ma.hFlip&&(ba.hFlip=!0),!ya.vFlip!=!ma.vFlip&&(ba.vFlip=!0);const va=((ya.rotate||0)+(ma.rotate||0))%4;return va&&(ba.rotate=va),ba}function mergeIconData(ya,ma){const ba=mergeIconTransformations(ya,ma);for(const va in defaultExtendedIconProps)va in defaultIconTransformations?va in ya&&!(va in ba)&&(ba[va]=defaultIconTransformations[va]):va in ma?ba[va]=ma[va]:va in ya&&(ba[va]=ya[va]);return ba}function internalGetIconData(ya,ma,ba){const va=ya.icons,Ma=ya.aliases||Object.create(null);let wl={};function El(Sl){wl=mergeIconData(va[Sl]||Ma[Sl],wl)}return El(ma),ba.forEach(El),mergeIconData(ya,wl)}function parseIconSet(ya,ma){const ba=[];if(typeof ya!="object"||typeof ya.icons!="object")return ba;ya.not_found instanceof Array&&ya.not_found.forEach(Ma=>{ma(Ma,null),ba.push(Ma)});const va=getIconsTree(ya);for(const Ma in va){const wl=va[Ma];wl&&(ma(Ma,internalGetIconData(ya,Ma,wl)),ba.push(Ma))}return ba}const optionalPropertyDefaults={provider:"",aliases:{},not_found:{},...defaultIconDimensions};function checkOptionalProps(ya,ma){for(const ba in ma)if(ba in ya&&typeof ya[ba]!=typeof ma[ba])return!1;return!0}function quicklyValidateIconSet(ya){if(typeof ya!="object"||ya===null)return null;const ma=ya;if(typeof ma.prefix!="string"||!ya.icons||typeof ya.icons!="object"||!checkOptionalProps(ya,optionalPropertyDefaults))return null;const ba=ma.icons;for(const Ma in ba){const wl=ba[Ma];if(!Ma||typeof wl.body!="string"||!checkOptionalProps(wl,defaultExtendedIconProps))return null}const va=ma.aliases||Object.create(null);for(const Ma in va){const wl=va[Ma],El=wl.parent;if(!Ma||typeof El!="string"||!ba[El]&&!va[El]||!checkOptionalProps(wl,defaultExtendedIconProps))return null}return ma}const dataStorage=Object.create(null);function newStorage(ya,ma){return{provider:ya,prefix:ma,icons:Object.create(null),missing:new Set}}function getStorage(ya,ma){const ba=dataStorage[ya]||(dataStorage[ya]=Object.create(null));return ba[ma]||(ba[ma]=newStorage(ya,ma))}function addIconSet(ya,ma){return quicklyValidateIconSet(ma)?parseIconSet(ma,(ba,va)=>{va?ya.icons[ba]=va:ya.missing.add(ba)}):[]}function addIconToStorage(ya,ma,ba){try{if(typeof ba.body=="string")return ya.icons[ma]={...ba},!0}catch{}return!1}const matchIconName=/^[a-z0-9]+(-[a-z0-9]+)*$/,stringToIcon=(ya,ma,ba,va="")=>{const Ma=ya.split(":");if(ya.slice(0,1)==="@"){if(Ma.length<2||Ma.length>3)return null;va=Ma.shift().slice(1)}if(Ma.length>3||!Ma.length)return null;if(Ma.length>1){const Sl=Ma.pop(),Cl=Ma.pop(),Mc={provider:Ma.length>0?Ma[0]:va,prefix:Cl,name:Sl};return ma&&!validateIconName(Mc)?null:Mc}const wl=Ma[0],El=wl.split("-");if(El.length>1){const Sl={provider:va,prefix:El.shift(),name:El.join("-")};return ma&&!validateIconName(Sl)?null:Sl}if(ba&&va===""){const Sl={provider:va,prefix:"",name:wl};return ma&&!validateIconName(Sl,ba)?null:Sl}return null},validateIconName=(ya,ma)=>ya?!!((ma&&ya.prefix===""||ya.prefix)&&ya.name):!1;let simpleNames=!1;function allowSimpleNames(ya){return typeof ya=="boolean"&&(simpleNames=ya),simpleNames}function getIconData(ya){const ma=typeof ya=="string"?stringToIcon(ya,!0,simpleNames):ya;if(ma){const ba=getStorage(ma.provider,ma.prefix),va=ma.name;return ba.icons[va]||(ba.missing.has(va)?null:void 0)}}function addIcon(ya,ma){const ba=stringToIcon(ya,!0,simpleNames);if(!ba)return!1;const va=getStorage(ba.provider,ba.prefix);return ma?addIconToStorage(va,ba.name,ma):(va.missing.add(ba.name),!0)}function addCollection(ya,ma){if(typeof ya!="object")return!1;if(typeof ma!="string"&&(ma=ya.provider||""),simpleNames&&!ma&&!ya.prefix){let Ma=!1;return quicklyValidateIconSet(ya)&&(ya.prefix="",parseIconSet(ya,(wl,El)=>{addIcon(wl,El)&&(Ma=!0)})),Ma}const ba=ya.prefix;if(!validateIconName({prefix:ba,name:"a"}))return!1;const va=getStorage(ma,ba);return!!addIconSet(va,ya)}const defaultIconSizeCustomisations=Object.freeze({width:null,height:null}),defaultIconCustomisations=Object.freeze({...defaultIconSizeCustomisations,...defaultIconTransformations}),unitsSplit=/(-?[0-9.]*[0-9]+[0-9.]*)/g,unitsTest=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function calculateSize(ya,ma,ba){if(ma===1)return ya;if(ba=ba||100,typeof ya=="number")return Math.ceil(ya*ma*ba)/ba;if(typeof ya!="string")return ya;const va=ya.split(unitsSplit);if(va===null||!va.length)return ya;const Ma=[];let wl=va.shift(),El=unitsTest.test(wl);for(;;){if(El){const Sl=parseFloat(wl);isNaN(Sl)?Ma.push(wl):Ma.push(Math.ceil(Sl*ma*ba)/ba)}else Ma.push(wl);if(wl=va.shift(),wl===void 0)return Ma.join("");El=!El}}function splitSVGDefs(ya,ma="defs"){let ba="";const va=ya.indexOf("<"+ma);for(;va>=0;){const Ma=ya.indexOf(">",va),wl=ya.indexOf("</"+ma);if(Ma===-1||wl===-1)break;const El=ya.indexOf(">",wl);if(El===-1)break;ba+=ya.slice(Ma+1,wl).trim(),ya=ya.slice(0,va).trim()+ya.slice(El+1)}return{defs:ba,content:ya}}function mergeDefsAndContent(ya,ma){return ya?"<defs>"+ya+"</defs>"+ma:ma}function wrapSVGContent(ya,ma,ba){const va=splitSVGDefs(ya);return mergeDefsAndContent(va.defs,ma+va.content+ba)}const isUnsetKeyword=ya=>ya==="unset"||ya==="undefined"||ya==="none";function iconToSVG(ya,ma){const ba={...defaultIconProps,...ya},va={...defaultIconCustomisations,...ma},Ma={left:ba.left,top:ba.top,width:ba.width,height:ba.height};let wl=ba.body;[ba,va].forEach(Jf=>{const pg=[],hg=Jf.hFlip,mg=Jf.vFlip;let gg=Jf.rotate;hg?mg?gg+=2:(pg.push("translate("+(Ma.width+Ma.left).toString()+" "+(0-Ma.top).toString()+")"),pg.push("scale(-1 1)"),Ma.top=Ma.left=0):mg&&(pg.push("translate("+(0-Ma.left).toString()+" "+(Ma.height+Ma.top).toString()+")"),pg.push("scale(1 -1)"),Ma.top=Ma.left=0);let yg;switch(gg<0&&(gg-=Math.floor(gg/4)*4),gg=gg%4,gg){case 1:yg=Ma.height/2+Ma.top,pg.unshift("rotate(90 "+yg.toString()+" "+yg.toString()+")");break;case 2:pg.unshift("rotate(180 "+(Ma.width/2+Ma.left).toString()+" "+(Ma.height/2+Ma.top).toString()+")");break;case 3:yg=Ma.width/2+Ma.left,pg.unshift("rotate(-90 "+yg.toString()+" "+yg.toString()+")");break}gg%2===1&&(Ma.left!==Ma.top&&(yg=Ma.left,Ma.left=Ma.top,Ma.top=yg),Ma.width!==Ma.height&&(yg=Ma.width,Ma.width=Ma.height,Ma.height=yg)),pg.length&&(wl=wrapSVGContent(wl,'<g transform="'+pg.join(" ")+'">',"</g>"))});const El=va.width,Sl=va.height,Cl=Ma.width,Mc=Ma.height;let dp,pp;El===null?(pp=Sl===null?"1em":Sl==="auto"?Mc:Sl,dp=calculateSize(pp,Cl/Mc)):(dp=El==="auto"?Cl:El,pp=Sl===null?calculateSize(dp,Mc/Cl):Sl==="auto"?Mc:Sl);const hp={},Ef=(Jf,pg)=>{isUnsetKeyword(pg)||(hp[Jf]=pg.toString())};Ef("width",dp),Ef("height",pp);const Zf=[Ma.left,Ma.top,Cl,Mc];return hp.viewBox=Zf.join(" "),{attributes:hp,viewBox:Zf,body:wl}}const regex=/\sid="(\S+)"/g,randomPrefix="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let counter=0;function replaceIDs(ya,ma=randomPrefix){const ba=[];let va;for(;va=regex.exec(ya);)ba.push(va[1]);if(!ba.length)return ya;const Ma="suffix"+(Math.random()*16777216|Date.now()).toString(16);return ba.forEach(wl=>{const El=typeof ma=="function"?ma(wl):ma+(counter++).toString(),Sl=wl.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");ya=ya.replace(new RegExp('([#;"])('+Sl+')([")]|\\.[a-z])',"g"),"$1"+El+Ma+"$3")}),ya=ya.replace(new RegExp(Ma,"g"),""),ya}const storage=Object.create(null);function setAPIModule(ya,ma){storage[ya]=ma}function getAPIModule(ya){return storage[ya]||storage[""]}function createAPIConfig(ya){let ma;if(typeof ya.resources=="string")ma=[ya.resources];else if(ma=ya.resources,!(ma instanceof Array)||!ma.length)return null;return{resources:ma,path:ya.path||"/",maxURL:ya.maxURL||500,rotate:ya.rotate||750,timeout:ya.timeout||5e3,random:ya.random===!0,index:ya.index||0,dataAfterTimeout:ya.dataAfterTimeout!==!1}}const configStorage=Object.create(null),fallBackAPISources=["https://api.simplesvg.com","https://api.unisvg.com"],fallBackAPI=[];for(;fallBackAPISources.length>0;)fallBackAPISources.length===1||Math.random()>.5?fallBackAPI.push(fallBackAPISources.shift()):fallBackAPI.push(fallBackAPISources.pop());configStorage[""]=createAPIConfig({resources:["https://api.iconify.design"].concat(fallBackAPI)});function addAPIProvider(ya,ma){const ba=createAPIConfig(ma);return ba===null?!1:(configStorage[ya]=ba,!0)}function getAPIConfig(ya){return configStorage[ya]}const detectFetch=()=>{let ya;try{if(ya=fetch,typeof ya=="function")return ya}catch{}};let fetchModule=detectFetch();function calculateMaxLength(ya,ma){const ba=getAPIConfig(ya);if(!ba)return 0;let va;if(!ba.maxURL)va=0;else{let Ma=0;ba.resources.forEach(El=>{Ma=Math.max(Ma,El.length)});const wl=ma+".json?icons=";va=ba.maxURL-Ma-ba.path.length-wl.length}return va}function shouldAbort(ya){return ya===404}const prepare=(ya,ma,ba)=>{const va=[],Ma=calculateMaxLength(ya,ma),wl="icons";let El={type:wl,provider:ya,prefix:ma,icons:[]},Sl=0;return ba.forEach((Cl,Mc)=>{Sl+=Cl.length+1,Sl>=Ma&&Mc>0&&(va.push(El),El={type:wl,provider:ya,prefix:ma,icons:[]},Sl=Cl.length),El.icons.push(Cl)}),va.push(El),va};function getPath$2(ya){if(typeof ya=="string"){const ma=getAPIConfig(ya);if(ma)return ma.path}return"/"}const send=(ya,ma,ba)=>{if(!fetchModule){ba("abort",424);return}let va=getPath$2(ma.provider);switch(ma.type){case"icons":{const wl=ma.prefix,Sl=ma.icons.join(","),Cl=new URLSearchParams({icons:Sl});va+=wl+".json?"+Cl.toString();break}case"custom":{const wl=ma.uri;va+=wl.slice(0,1)==="/"?wl.slice(1):wl;break}default:ba("abort",400);return}let Ma=503;fetchModule(ya+va).then(wl=>{const El=wl.status;if(El!==200){setTimeout(()=>{ba(shouldAbort(El)?"abort":"next",El)});return}return Ma=501,wl.json()}).then(wl=>{if(typeof wl!="object"||wl===null){setTimeout(()=>{wl===404?ba("abort",wl):ba("next",Ma)});return}setTimeout(()=>{ba("success",wl)})}).catch(()=>{ba("next",Ma)})},fetchAPIModule={prepare,send};function removeCallback(ya,ma){ya.forEach(ba=>{const va=ba.loaderCallbacks;va&&(ba.loaderCallbacks=va.filter(Ma=>Ma.id!==ma))})}function updateCallbacks(ya){ya.pendingCallbacksFlag||(ya.pendingCallbacksFlag=!0,setTimeout(()=>{ya.pendingCallbacksFlag=!1;const ma=ya.loaderCallbacks?ya.loaderCallbacks.slice(0):[];if(!ma.length)return;let ba=!1;const va=ya.provider,Ma=ya.prefix;ma.forEach(wl=>{const El=wl.icons,Sl=El.pending.length;El.pending=El.pending.filter(Cl=>{if(Cl.prefix!==Ma)return!0;const Mc=Cl.name;if(ya.icons[Mc])El.loaded.push({provider:va,prefix:Ma,name:Mc});else if(ya.missing.has(Mc))El.missing.push({provider:va,prefix:Ma,name:Mc});else return ba=!0,!0;return!1}),El.pending.length!==Sl&&(ba||removeCallback([ya],wl.id),wl.callback(El.loaded.slice(0),El.missing.slice(0),El.pending.slice(0),wl.abort))})}))}let idCounter$1=0;function storeCallback(ya,ma,ba){const va=idCounter$1++,Ma=removeCallback.bind(null,ba,va);if(!ma.pending.length)return Ma;const wl={id:va,icons:ma,callback:ya,abort:Ma};return ba.forEach(El=>{(El.loaderCallbacks||(El.loaderCallbacks=[])).push(wl)}),Ma}function sortIcons(ya){const ma={loaded:[],missing:[],pending:[]},ba=Object.create(null);ya.sort((Ma,wl)=>Ma.provider!==wl.provider?Ma.provider.localeCompare(wl.provider):Ma.prefix!==wl.prefix?Ma.prefix.localeCompare(wl.prefix):Ma.name.localeCompare(wl.name));let va={provider:"",prefix:"",name:""};return ya.forEach(Ma=>{if(va.name===Ma.name&&va.prefix===Ma.prefix&&va.provider===Ma.provider)return;va=Ma;const wl=Ma.provider,El=Ma.prefix,Sl=Ma.name,Cl=ba[wl]||(ba[wl]=Object.create(null)),Mc=Cl[El]||(Cl[El]=getStorage(wl,El));let dp;Sl in Mc.icons?dp=ma.loaded:El===""||Mc.missing.has(Sl)?dp=ma.missing:dp=ma.pending;const pp={provider:wl,prefix:El,name:Sl};dp.push(pp)}),ma}function listToIcons(ya,ma=!0,ba=!1){const va=[];return ya.forEach(Ma=>{const wl=typeof Ma=="string"?stringToIcon(Ma,ma,ba):Ma;wl&&va.push(wl)}),va}const defaultConfig={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function sendQuery(ya,ma,ba,va){const Ma=ya.resources.length,wl=ya.random?Math.floor(Math.random()*Ma):ya.index;let El;if(ya.random){let ly=ya.resources.slice(0);for(El=[];ly.length>1;){const cy=Math.floor(Math.random()*ly.length);El.push(ly[cy]),ly=ly.slice(0,cy).concat(ly.slice(cy+1))}El=El.concat(ly)}else El=ya.resources.slice(wl).concat(ya.resources.slice(0,wl));const Sl=Date.now();let Cl="pending",Mc=0,dp,pp=null,hp=[],Ef=[];typeof va=="function"&&Ef.push(va);function Zf(){pp&&(clearTimeout(pp),pp=null)}function Jf(){Cl==="pending"&&(Cl="aborted"),Zf(),hp.forEach(ly=>{ly.status==="pending"&&(ly.status="aborted")}),hp=[]}function pg(ly,cy){cy&&(Ef=[]),typeof ly=="function"&&Ef.push(ly)}function hg(){return{startTime:Sl,payload:ma,status:Cl,queriesSent:Mc,queriesPending:hp.length,subscribe:pg,abort:Jf}}function mg(){Cl="failed",Ef.forEach(ly=>{ly(void 0,dp)})}function gg(){hp.forEach(ly=>{ly.status==="pending"&&(ly.status="aborted")}),hp=[]}function yg(ly,cy,q1){const r0=cy!=="success";switch(hp=hp.filter(uE=>uE!==ly),Cl){case"pending":break;case"failed":if(r0||!ya.dataAfterTimeout)return;break;default:return}if(cy==="abort"){dp=q1,mg();return}if(r0){dp=q1,hp.length||(El.length?ay():mg());return}if(Zf(),gg(),!ya.random){const uE=ya.resources.indexOf(ly.resource);uE!==-1&&uE!==ya.index&&(ya.index=uE)}Cl="completed",Ef.forEach(uE=>{uE(q1)})}function ay(){if(Cl!=="pending")return;Zf();const ly=El.shift();if(ly===void 0){if(hp.length){pp=setTimeout(()=>{Zf(),Cl==="pending"&&(gg(),mg())},ya.timeout);return}mg();return}const cy={status:"pending",resource:ly,callback:(q1,r0)=>{yg(cy,q1,r0)}};hp.push(cy),Mc++,pp=setTimeout(ay,ya.rotate),ba(ly,ma,cy.callback)}return setTimeout(ay),hg}function initRedundancy(ya){const ma={...defaultConfig,...ya};let ba=[];function va(){ba=ba.filter(Sl=>Sl().status==="pending")}function Ma(Sl,Cl,Mc){const dp=sendQuery(ma,Sl,Cl,(pp,hp)=>{va(),Mc&&Mc(pp,hp)});return ba.push(dp),dp}function wl(Sl){return ba.find(Cl=>Sl(Cl))||null}return{query:Ma,find:wl,setIndex:Sl=>{ma.index=Sl},getIndex:()=>ma.index,cleanup:va}}function emptyCallback$1(){}const redundancyCache=Object.create(null);function getRedundancyCache(ya){if(!redundancyCache[ya]){const ma=getAPIConfig(ya);if(!ma)return;const ba=initRedundancy(ma),va={config:ma,redundancy:ba};redundancyCache[ya]=va}return redundancyCache[ya]}function sendAPIQuery(ya,ma,ba){let va,Ma;if(typeof ya=="string"){const wl=getAPIModule(ya);if(!wl)return ba(void 0,424),emptyCallback$1;Ma=wl.send;const El=getRedundancyCache(ya);El&&(va=El.redundancy)}else{const wl=createAPIConfig(ya);if(wl){va=initRedundancy(wl);const El=ya.resources?ya.resources[0]:"",Sl=getAPIModule(El);Sl&&(Ma=Sl.send)}}return!va||!Ma?(ba(void 0,424),emptyCallback$1):va.query(ma,Ma,ba)().abort}function emptyCallback(){}function loadedNewIcons(ya){ya.iconsLoaderFlag||(ya.iconsLoaderFlag=!0,setTimeout(()=>{ya.iconsLoaderFlag=!1,updateCallbacks(ya)}))}function checkIconNamesForAPI(ya){const ma=[],ba=[];return ya.forEach(va=>{(va.match(matchIconName)?ma:ba).push(va)}),{valid:ma,invalid:ba}}function parseLoaderResponse(ya,ma,ba){function va(){const Ma=ya.pendingIcons;ma.forEach(wl=>{Ma&&Ma.delete(wl),ya.icons[wl]||ya.missing.add(wl)})}if(ba&&typeof ba=="object")try{if(!addIconSet(ya,ba).length){va();return}}catch(Ma){console.error(Ma)}va(),loadedNewIcons(ya)}function parsePossiblyAsyncResponse(ya,ma){ya instanceof Promise?ya.then(ba=>{ma(ba)}).catch(()=>{ma(null)}):ma(ya)}function loadNewIcons(ya,ma){ya.iconsToLoad?ya.iconsToLoad=ya.iconsToLoad.concat(ma).sort():ya.iconsToLoad=ma,ya.iconsQueueFlag||(ya.iconsQueueFlag=!0,setTimeout(()=>{ya.iconsQueueFlag=!1;const{provider:ba,prefix:va}=ya,Ma=ya.iconsToLoad;if(delete ya.iconsToLoad,!Ma||!Ma.length)return;const wl=ya.loadIcon;if(ya.loadIcons&&(Ma.length>1||!wl)){parsePossiblyAsyncResponse(ya.loadIcons(Ma,va,ba),dp=>{parseLoaderResponse(ya,Ma,dp)});return}if(wl){Ma.forEach(dp=>{const pp=wl(dp,va,ba);parsePossiblyAsyncResponse(pp,hp=>{const Ef=hp?{prefix:va,icons:{[dp]:hp}}:null;parseLoaderResponse(ya,[dp],Ef)})});return}const{valid:El,invalid:Sl}=checkIconNamesForAPI(Ma);if(Sl.length&&parseLoaderResponse(ya,Sl,null),!El.length)return;const Cl=va.match(matchIconName)?getAPIModule(ba):null;if(!Cl){parseLoaderResponse(ya,El,null);return}Cl.prepare(ba,va,El).forEach(dp=>{sendAPIQuery(ba,dp,pp=>{parseLoaderResponse(ya,dp.icons,pp)})})}))}const loadIcons=(ya,ma)=>{const ba=listToIcons(ya,!0,allowSimpleNames()),va=sortIcons(ba);if(!va.pending.length){let Cl=!0;return ma&&setTimeout(()=>{Cl&&ma(va.loaded,va.missing,va.pending,emptyCallback)}),()=>{Cl=!1}}const Ma=Object.create(null),wl=[];let El,Sl;return va.pending.forEach(Cl=>{const{provider:Mc,prefix:dp}=Cl;if(dp===Sl&&Mc===El)return;El=Mc,Sl=dp,wl.push(getStorage(Mc,dp));const pp=Ma[Mc]||(Ma[Mc]=Object.create(null));pp[dp]||(pp[dp]=[])}),va.pending.forEach(Cl=>{const{provider:Mc,prefix:dp,name:pp}=Cl,hp=getStorage(Mc,dp),Ef=hp.pendingIcons||(hp.pendingIcons=new Set);Ef.has(pp)||(Ef.add(pp),Ma[Mc][dp].push(pp))}),wl.forEach(Cl=>{const Mc=Ma[Cl.provider][Cl.prefix];Mc.length&&loadNewIcons(Cl,Mc)}),ma?storeCallback(ma,va,wl):emptyCallback};function mergeCustomisations(ya,ma){const ba={...ya};for(const va in ma){const Ma=ma[va],wl=typeof Ma;va in defaultIconSizeCustomisations?(Ma===null||Ma&&(wl==="string"||wl==="number"))&&(ba[va]=Ma):wl===typeof ba[va]&&(ba[va]=va==="rotate"?Ma%4:Ma)}return ba}const separator$1=/[\s,]+/;function flipFromString(ya,ma){ma.split(separator$1).forEach(ba=>{switch(ba.trim()){case"horizontal":ya.hFlip=!0;break;case"vertical":ya.vFlip=!0;break}})}function rotateFromString(ya,ma=0){const ba=ya.replace(/^-?[0-9.]*/,"");function va(Ma){for(;Ma<0;)Ma+=4;return Ma%4}if(ba===""){const Ma=parseInt(ya);return isNaN(Ma)?0:va(Ma)}else if(ba!==ya){let Ma=0;switch(ba){case"%":Ma=25;break;case"deg":Ma=90}if(Ma){let wl=parseFloat(ya.slice(0,ya.length-ba.length));return isNaN(wl)?0:(wl=wl/Ma,wl%1===0?va(wl):0)}}return ma}function iconToHTML(ya,ma){let ba=ya.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const va in ma)ba+=" "+va+'="'+ma[va]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+ba+">"+ya+"</svg>"}function encodeSVGforURL(ya){return ya.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function svgToData(ya){return"data:image/svg+xml,"+encodeSVGforURL(ya)}function svgToURL(ya){return'url("'+svgToData(ya)+'")'}let policy;function createPolicy(){try{policy=window.trustedTypes.createPolicy("iconify",{createHTML:ya=>ya})}catch{policy=null}}function cleanUpInnerHTML(ya){return policy===void 0&&createPolicy(),policy?policy.createHTML(ya):ya}const defaultExtendedIconCustomisations={...defaultIconCustomisations,inline:!1},svgDefaults={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},commonProps={display:"inline-block"},monotoneProps={backgroundColor:"currentColor"},coloredProps={backgroundColor:"transparent"},propsToAdd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},propsToAddTo={WebkitMask:monotoneProps,mask:monotoneProps,background:coloredProps};for(const ya in propsToAddTo){const ma=propsToAddTo[ya];for(const ba in propsToAdd)ma[ya+ba]=propsToAdd[ba]}const inlineDefaults={...defaultExtendedIconCustomisations,inline:!0};function fixSize(ya){return ya+(ya.match(/^[-0-9.]+$/)?"px":"")}const render=(ya,ma,ba)=>{const va=ma.inline?inlineDefaults:defaultExtendedIconCustomisations,Ma=mergeCustomisations(va,ma),wl=ma.mode||"svg",El={},Sl=ma.style||{},Cl={...wl==="svg"?svgDefaults:{}};if(ba){const pg=stringToIcon(ba,!1,!0);if(pg){const hg=["iconify"],mg=["provider","prefix"];for(const gg of mg)pg[gg]&&hg.push("iconify--"+pg[gg]);Cl.className=hg.join(" ")}}for(let pg in ma){const hg=ma[pg];if(hg!==void 0)switch(pg){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":Cl.ref=hg;break;case"className":Cl[pg]=(Cl[pg]?Cl[pg]+" ":"")+hg;break;case"inline":case"hFlip":case"vFlip":Ma[pg]=hg===!0||hg==="true"||hg===1;break;case"flip":typeof hg=="string"&&flipFromString(Ma,hg);break;case"color":El.color=hg;break;case"rotate":typeof hg=="string"?Ma[pg]=rotateFromString(hg):typeof hg=="number"&&(Ma[pg]=hg);break;case"ariaHidden":case"aria-hidden":hg!==!0&&hg!=="true"&&delete Cl["aria-hidden"];break;default:va[pg]===void 0&&(Cl[pg]=hg)}}const Mc=iconToSVG(ya,Ma),dp=Mc.attributes;if(Ma.inline&&(El.verticalAlign="-0.125em"),wl==="svg"){Cl.style={...El,...Sl},Object.assign(Cl,dp);let pg=0,hg=ma.id;return typeof hg=="string"&&(hg=hg.replace(/-/g,"_")),Cl.dangerouslySetInnerHTML={__html:cleanUpInnerHTML(replaceIDs(Mc.body,hg?()=>hg+"ID"+pg++:"iconifyReact"))},reactExports.createElement("svg",Cl)}const{body:pp,width:hp,height:Ef}=ya,Zf=wl==="mask"||(wl==="bg"?!1:pp.indexOf("currentColor")!==-1),Jf=iconToHTML(pp,{...dp,width:hp+"",height:Ef+""});return Cl.style={...El,"--svg":svgToURL(Jf),width:fixSize(dp.width),height:fixSize(dp.height),...commonProps,...Zf?monotoneProps:coloredProps,...Sl},reactExports.createElement("span",Cl)};allowSimpleNames(!0);setAPIModule("",fetchAPIModule);if(typeof document<"u"&&typeof window<"u"){const ya=window;if(ya.IconifyPreload!==void 0){const ma=ya.IconifyPreload,ba="Invalid IconifyPreload syntax.";typeof ma=="object"&&ma!==null&&(ma instanceof Array?ma:[ma]).forEach(va=>{try{(typeof va!="object"||va===null||va instanceof Array||typeof va.icons!="object"||typeof va.prefix!="string"||!addCollection(va))&&console.error(ba)}catch{console.error(ba)}})}if(ya.IconifyProviders!==void 0){const ma=ya.IconifyProviders;if(typeof ma=="object"&&ma!==null)for(let ba in ma){const va="IconifyProviders["+ba+"] is invalid.";try{const Ma=ma[ba];if(typeof Ma!="object"||!Ma||Ma.resources===void 0)continue;addAPIProvider(ba,Ma)||console.error(va)}catch{console.error(va)}}}}function IconComponent(ya){const[ma,ba]=reactExports.useState(!!ya.ssr),[va,Ma]=reactExports.useState({});function wl(Ef){if(Ef){const Zf=ya.icon;if(typeof Zf=="object")return{name:"",data:Zf};const Jf=getIconData(Zf);if(Jf)return{name:Zf,data:Jf}}return{name:""}}const[El,Sl]=reactExports.useState(wl(!!ya.ssr));function Cl(){const Ef=va.callback;Ef&&(Ef(),Ma({}))}function Mc(Ef){if(JSON.stringify(El)!==JSON.stringify(Ef))return Cl(),Sl(Ef),!0}function dp(){var Ef;const Zf=ya.icon;if(typeof Zf=="object"){Mc({name:"",data:Zf});return}const Jf=getIconData(Zf);if(Mc({name:Zf,data:Jf}))if(Jf===void 0){const pg=loadIcons([Zf],dp);Ma({callback:pg})}else Jf&&((Ef=ya.onLoad)===null||Ef===void 0||Ef.call(ya,Zf))}reactExports.useEffect(()=>(ba(!0),Cl),[]),reactExports.useEffect(()=>{ma&&dp()},[ya.icon,ma]);const{name:pp,data:hp}=El;return hp?render({...defaultIconProps,...hp},ya,pp):ya.children?ya.children:ya.fallback?ya.fallback:reactExports.createElement("span",{})}const Icon=reactExports.forwardRef((ya,ma)=>IconComponent({...ya,_ref:ma}));reactExports.forwardRef((ya,ma)=>IconComponent({inline:!0,...ya,_ref:ma}));const getDate=ya=>{const ma=new Date(ya),ba=ma.getMonth()+1,va=ma.getDate(),Ma=ma.getFullYear(),wl=ma.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0});return`${ba}/${va}/${Ma} ${wl}`},registerBase64Icon=(ya,ma)=>{try{const ba=ma.replace(/^data:image\/svg\+xml;base64,/,""),va=atob(ba),Ma=va.match(/width="([^"]+)"/),wl=va.match(/height="([^"]+)"/),El=Ma?Ma[1]:"1536",Sl=wl?wl[1]:"1280",Cl=va.replace(/^.*?<svg[^>]*>(.*)<\/svg>.*$/,"$1");addIcon(ya,{body:Cl,width:parseInt(El,10),height:parseInt(Sl,10)})}catch(ba){console.error(`Failed to register icon: ${ya}`,ba)}};function extractRepoNameFromUrl(ya){const ma=ya.split("/");return ma[ma.length-1]}function scrollIntoView$1(ya,ma=!0){const ba=document.getElementById(ya);ba&&ba.scrollIntoView({behavior:ma?"smooth":"auto",block:"start",inline:"center"})}function roundTo3Decimals(ya){return ya.toFixed(3)}function convertBytes(ya){return ya<1024?`${ya} bytes`:ya<1024*1024?`${roundTo3Decimals(ya/1024)} KB`:ya<1024*1024*1024?`${roundTo3Decimals(ya/(1024*1024))} MB`:`${roundTo3Decimals(ya/(1024*1024*1024))} GB`}function generateGitHubUrl(ya,ma,ba,va){if(!ya||!ma)throw new Error("GitHub organization and repository name are required");if(ba&&va){const Ma=ba.trim(),wl=va.trim();return!Ma||!wl?(console.warn("GitHub credentials contain only whitespace - falling back to public URL"),`https://github.com/${ya}/${ma}.git`):`https://${Ma}:${wl}@github.com/${ya}/${ma}.git`}return console.warn(`No GitHub credentials provided for ${ya}/${ma} - using public URL (may fail for private repositories)`),`https://github.com/${ya}/${ma}.git`}async function checkRepoVisibility(ya,ma){try{const ba=await fetch(`https://api.github.com/repos/${ya}/${ma}`,{headers:{Accept:"application/vnd.github.v3+json"}});return ba.status===404?"not_found":ba.ok?(await ba.json()).private?"private":"public":"not_found"}catch{return"not_found"}}const useWorkspace=()=>{const ya=axiosInstance("meta"),ma=useAppStore(dp=>dp.user),ba=useAppStore(dp=>dp.authData.userProfileId),va=useAppStore(dp=>dp.authData.username),Ma=useAppStore(dp=>dp.setUser),wl=useAppStore(dp=>dp.setWorkspace),El=async()=>{let dp=ma?.user_profile_id;if(dp||(dp=ba||void 0),!dp){const pp=localStorage.getItem("user_profile_id");pp&&(dp=pp)}if(!dp){y$b.error("User Profile ID not found. Please re-login.");return}return dp},Sl=async()=>{try{if(!await El())throw new Error("User Profile ID not found. Please re-login.");const hp=await ya.get("/AgentMeta/Workspace");if(console.log("fetchWorkspace response:",hp.data),!hp.data||Array.isArray(hp.data)&&hp.data.length===0)return console.log("GetWorkspace returned empty or null response - workspace does not exist"),null;let Ef;if(hp.data.id||hp.data.Id)Ef=hp.data;else if(Array.isArray(hp.data)&&hp.data.length>0){const Zf=hp.data[0];Zf?.Workspace?Ef=Zf.Workspace:Zf?.result&&Array.isArray(Zf.result)&&Zf.result.length>0?Ef=Zf.result[0]:Zf&&(Zf.id||Zf.Id)&&(Ef=Zf)}return Ef||(console.log("No workspace found in response"),null)}catch(dp){return console.error("fetchWorkspace error:",dp),null}};return{fetchWorkspace:Sl,createWorkspace:async(dp,pp)=>{try{if(!await El())throw new Error("User Profile ID not found. Please re-login.");const Zf=await ya.post("/AgentMeta/Workspace",{name:dp,createdBy:pp});let Jf;if(Zf.data.UserWorkspace?.Workspace)Jf=Zf.data.UserWorkspace.Workspace;else if(Zf.data.id)Jf=Zf.data;else if(Array.isArray(Zf.data)&&Zf.data.length>0){const pg=Zf.data[0];pg?.result&&Array.isArray(pg.result)&&pg.result.length>0?Jf=pg.result[0]:pg?.Workspace?Jf=pg.Workspace:Jf=pg}else if(Zf.data.Workspace)Jf=Zf.data.Workspace;else{const pg=Object.keys(Zf.data);pg.length>0&&(Jf=Zf.data[pg[0]])}return Jf||(console.error("Failed to parse workspace from create response"),null)}catch(hp){throw console.error("createWorkspace error:",hp),y$b.error(hp?.response?.data?.reason||"Failed to create workspace"),hp}},fetchOrCreateWorkspace:async dp=>{if(!(va||ma?.Email))throw new Error("No username found in store");let hp=await Sl();if(hp){const Ef=hp.id||hp.Id;if(Ef&&!localStorage.getItem("workspace_id")){localStorage.setItem("workspace_id",Ef);try{ma?Ma({...ma,CurrentWorkspace:{Id:Ef}}):wl(Ef)}catch{}}}else{console.error(`Workspace '${dp}' not found - workspace creation disabled`);try{if(await El()){const Jf=await ya.get("/AgentMeta/Workspace");if(Jf.data&&Array.isArray(Jf.data)&&Jf.data.length>0){const pg=Jf.data[Jf.data.length-1];if(hp=pg.Workspace||pg,hp){const hg=hp.id||hp.Id;if(hg){localStorage.setItem("workspace_id",hg);try{ma?Ma({...ma,CurrentWorkspace:{Id:hg}}):wl(hg)}catch{}console.log("Using existing workspace instead:",hg)}}}}}catch(Ef){console.error("Failed to fetch all workspaces:",Ef)}if(!hp)throw new Error(`Workspace '${dp}' not found and creation is disabled`)}return hp}}},deletePlaygroundTeam=ya=>[],STORAGE_KEY="playground-workspace-apps",ID_COUNTER_KEY="playground-workspace-id-counter";class PlaygroundWorkspaceStorage{apps=new Map;idCounter=0;constructor(){this.loadFromLocalStorage()}loadFromLocalStorage(){try{const ma=localStorage.getItem(STORAGE_KEY);if(ma){const va=JSON.parse(ma);va.forEach(Ma=>{this.apps.set(Ma.Id,Ma)}),console.log(`[PLAYGROUND] Loaded ${va.length} workspace apps from localStorage`)}const ba=localStorage.getItem(ID_COUNTER_KEY);ba&&(this.idCounter=parseInt(ba,10))}catch(ma){console.error("[PLAYGROUND] Error loading workspace apps from localStorage:",ma)}}saveToLocalStorage(){try{const ma=Array.from(this.apps.values());localStorage.setItem(STORAGE_KEY,JSON.stringify(ma)),localStorage.setItem(ID_COUNTER_KEY,this.idCounter.toString()),console.log(`[PLAYGROUND] Saved ${ma.length} workspace apps to localStorage`)}catch(ma){console.error("[PLAYGROUND] Error saving workspace apps to localStorage:",ma)}}getApps(){return Array.from(this.apps.values())}addApp(ma){const ba=ma.Id||`playground-app-${++this.idCounter}`,va={...ma,Id:ba};return this.apps.set(ba,va),this.saveToLocalStorage(),va}updateApp(ma,ba){const va=this.apps.get(ma);if(!va)return null;const Ma={...va,...ba};return this.apps.set(ma,Ma),this.saveToLocalStorage(),Ma}deleteApp(ma){const ba=this.apps.delete(ma);return ba&&this.saveToLocalStorage(),ba}getApp(ma){return this.apps.get(ma)||null}clearApps(){this.apps.clear(),this.idCounter=0,this.saveToLocalStorage()}hasApp(ma){return this.apps.has(ma)}}const playgroundWorkspaceStorage=new PlaygroundWorkspaceStorage,getTeamModules=ya=>{if(!ya)return[];const ma=getUserModuleNames(),ba=ya.toLowerCase(),va=ba.replace(/_/g,"");return ma.filter(Ma=>{const wl=Ma.toLowerCase(),El=wl.split(".")[0],Sl=El.replace(/_/g,"");return wl.startsWith(ba)||El===va||va.startsWith(Sl)||Sl.startsWith(va)})},CLI_URL="http://localhost:4000";async function fetchDependenciesFromLocalServer(ya,ma,ba){ba&&ba("Installing dependencies in local mode...",0,ma.length);try{const va=await fetch(`${CLI_URL}/install`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!va.ok){const Ma=await va.json().catch(()=>({error:"Unknown error"}));throw new Error(Ma.error||`Failed to install dependencies: ${va.statusText}`)}return console.log("✓ Dependencies installed successfully in local mode"),ma.map((Ma,wl)=>(ba&&ba(`Installed ${Ma.appName}`,wl+1,ma.length),{appName:Ma.appName,success:!0,message:"Dependency installed successfully",path:`${ya}/node_modules/${Ma.appName}`}))}catch(va){return console.error("Failed to install dependencies:",va),ma.map(Ma=>({appName:Ma.appName,success:!1,message:va instanceof Error?va.message:"Failed to install dependency",error:va}))}}const useDependencyProcessor=()=>{const ya=reactExports.useCallback(ba=>{if(!ba.dependencies)return[];const va=[];for(const[Ma,wl]of Object.entries(ba.dependencies))typeof wl=="string"&&wl.startsWith("git+http")&&va.push({appName:Ma,url:wl});return va},[]),ma=reactExports.useCallback(async(ba,va,Ma,wl)=>{const El=detectAppType();let Sl;if(El==="marketplace")try{Sl=await readAppFile("package.json")}catch(Ef){if(Ef?.code==="ENOENT"||Ef?.message?.includes("not found"))return console.log("No package.json found, skipping dependency processing"),[];throw Ef}else{const Ef=await fetch(`${CLI_URL}/file?path=${encodeURIComponent("package.json")}`);if(!Ef.ok){if(Ef.status===404)return console.log("No package.json found, skipping dependency processing"),[];throw new Error(`Failed to fetch package.json from CLI backend at ${CLI_URL}: ${Ef.statusText}`)}const{content:Zf}=await Ef.json();Sl=Zf}const Cl=JSON.parse(Sl),Mc=ya(Cl);if(Mc.length===0)return[];wl&&wl(`Installing ${Mc.length} dependencies...`,0,Mc.length);let dp;El==="regular"?dp=await fetchDependenciesFromLocalServer(ba,Mc,(Ef,Zf,Jf)=>{wl&&wl(`[${Zf}/${Jf}] ${Ef}`,Zf,Jf)}):dp=await cloneDependencies(ba,Mc,va,Ma,(Ef,Zf,Jf)=>{wl&&wl(`[${Zf}/${Jf}] ${Ef}`,Zf,Jf)});const pp=dp.filter(Ef=>!Ef.success),hp=dp.filter(Ef=>Ef.success);if(hp.length>0&&console.log(`✓ Successfully fetched ${hp.length} dependencies:`,hp.map(Ef=>Ef.appName).join(", ")),pp.length>0&&console.warn(`⚠ Failed to install ${pp.length} of ${Mc.length} dependencies:`,pp.map(Ef=>`${Ef.appName} (${Ef.message})`).join(", ")),hp.length>0){const Ef=await getAppInfo(),Zf=await getAppFileSystem$1(Ef);for(const Jf of hp)if(Jf.path)try{const pg=`${Jf.path}/package.json`;await Zf.exists(pg)?console.log(`✓ ${Jf.appName}: Verified package.json exists`):console.error(`✗ ${Jf.appName}: package.json missing at ${pg}`)}catch(pg){console.error(`✗ ${Jf.appName}: Verification failed:`,pg)}}return dp},[ya]);return{extractGitDependencies:ya,processDependencies:ma}},IS_LOCAL_MODE$b=!0,useConfigLoader=()=>{const ya=useAppStore(va=>va.setAppConfig),ma=useAppStore(va=>va.setAppConfigError);return{loadConfig:reactExports.useCallback(async va=>{console.log("loadConfig",va),ma(null);try{const Ma=await loadAppConfig(va);console.log("validatedConfig from agentlang",Ma);let wl={};try{let Sl;if(IS_LOCAL_MODE$b){const{getFileSystem:Cl}=await __vitePreload(async()=>{const{getFileSystem:pp}=await Promise.resolve().then(()=>fsUtils);return{getFileSystem:pp}},void 0),Mc=await Cl(),dp=`${va}/config.al`;Sl=await Mc.readFile(dp)}wl=parseAppConfig(Sl),console.log("fullConfig from parseAppConfig",wl)}catch(Sl){console.warn("Could not read config.al for full config:",Sl.message),wl=Ma}const El={...wl,...Ma};return console.log("mergedConfig (final)",El),ya(El),El}catch(Ma){const wl=Ma instanceof Error?Ma.message:String(Ma);return console.error("Failed to load config.al:",wl),ma(wl),ya({}),{}}},[ya,ma])}},IS_LOCAL_MODE$a=!0,accessedKeys=new Map,getLocalEnv=ya=>{const ma=getLocalEnv$2(ya);return console.log(`🔍 getLocalEnv("${ya}") called, returning:`,ma?`${ma.substring(0,10)}...`:"undefined"),accessedKeys.set(ya,{value:ma,timestamp:Date.now()}),ma||console.warn(`⚠️ Key "${ya}" not found in LocalEnv`),ma};typeof window<"u"&&(window.debugResolverKeys={getAccessedKeys:()=>Array.from(accessedKeys.entries()),listAccessedKeys:()=>{console.log("📋 Keys accessed by resolvers:"),accessedKeys.forEach(({value:ya},ma)=>{console.log(` ${ma}: ${ya?"found":"NOT FOUND"}`)})}});const API_DOMAIN_TO_PROVIDER={"api.hubapi.com":"hubspot","slack.com":"slack","api.github.com":"github","api.stripe.com":"stripe","api.airtable.com":"airtable","api.notion.com":"notion","api.openai.com":"openai","api.anthropic.com":"anthropic","www.googleapis.com":"google"};function createProxiedAxios(){const ya=getURL("api-cors-proxy"),ma=axios.create({timeout:3e4});return ma.interceptors.request.use(ba=>{const va=ba.url;if(va&&(va.startsWith("http://")||va.startsWith("https://")))try{const Ma=new URL(va),wl=Ma.hostname,El=Ma.pathname+Ma.search,Sl=API_DOMAIN_TO_PROVIDER[wl];if(!Sl)return console.warn(`⚠️ No CORS proxy provider configured for domain: ${wl}`),console.warn(` Add '${wl}' to API_DOMAIN_TO_PROVIDER in browserResolvers.ts`),ba;console.log(`🔄 Proxying API call: ${va}`),console.log(` → Provider: ${Sl}`),console.log(" → Original headers:",ba.headers),ba.url=`${ya}/proxy/${Sl}${El}`,console.log(` → New URL: ${ba.url}`),console.log(" → Final headers:",ba.headers)}catch(Ma){console.error("Failed to parse URL for proxying:",va,Ma)}return ba}),ma.interceptors.response.use(ba=>ba,ba=>(ba.code==="ERR_NETWORK"?console.error("❌ Network error - Check if CORS proxy is running on",ya):ba.response?.status===401?console.error("❌ 401 Unauthorized - Check API credentials"):ba.response?.status===403&&console.error("❌ 403 Forbidden - Check API permissions"),Promise.reject(ba))),ma}const proxiedAxios=createProxiedAxios(),COMMON_DEPENDENCIES=new Map([["agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["@fractl/agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["agentlang/out/runtime/module.js",{makeInstance:makeInstance$1}],["agentlang/out/runtime/auth/defs.js",{getLocalEnv}],["axios",{default:proxiedAxios}]]);function asInstance(ya,ma){const ba=ma.split("/"),va=ba.length===2?ba[0]:"hubspot",Ma=ba.length===2?ba[1]:ma,wl=new Map(Object.entries(ya));return makeInstance$1(va,Ma,wl)}function getDependency(ya){if(COMMON_DEPENDENCIES.has(ya))return COMMON_DEPENDENCIES.get(ya);for(const[ma,ba]of COMMON_DEPENDENCIES)if(ya.includes(`/${ma}`)||ya.endsWith(`/${ma}`))return ba}const BUILTIN_MODULE_PATHS=["./modules/core.js","./modules/auth.js"];async function setupResolverLoader(ya){try{console.log("⚙️ Configuring AgentLang module loader for:",ya);let ma=null;IS_LOCAL_MODE$a&&(ma=await getAppFileSystem$1()),setModuleLoader({fileReader:async va=>{if(console.log(`📖 Reading file: ${va}`),BUILTIN_MODULE_PATHS.includes(va))return console.log(`📦 Built-in module: ${va} (using global registration)`),"";let Ma=va;if(va.startsWith(ya+"/")?Ma=va.substring(ya.length+1):va.startsWith(ya)&&(Ma=va.substring(ya.length)),Ma.startsWith("/")&&(Ma=Ma.substring(1)),console.log(`📖 Resolved to relative path: ${Ma}`),IS_LOCAL_MODE$a&&ma){const wl=`${ya}/${Ma}`,El=await ma.readFile(wl);return typeof El=="string"?El:El.toString()}return await readRepoFile(ya,Ma)},dependencyProvider:va=>{const Ma=getDependency(va);return Ma?console.log(`✅ Resolved dependency: ${va}`):console.warn(`⚠️ Unknown dependency: ${va}`),Ma},basePath:""}),console.log("✅ Module loader configured successfully"),console.log("ℹ️ Resolvers will be loaded automatically when AgentLang parses .al files")}catch(ma){console.error("❌ Failed to setup resolver loader:",ma)}}const RESOLVER_CONFIGS={hsr:{initFunctionName:"initializeHubSpotConfig",envKeyMapping:{HUBSPOT_ACCESS_TOKEN:"accessToken"},configBuilder:ya=>({accessToken:ya.HUBSPOT_ACCESS_TOKEN})},gmr:{initFunctionName:"initializeGmailConfig",envKeyMapping:{GMAIL_CLIENT_ID:"clientId",GMAIL_CLIENT_SECRET:"clientSecret",GMAIL_REFRESH_TOKEN:"refreshToken",GMAIL_POLL_INTERVAL_MINUTES:"pollIntervalMinutes"},configBuilder:ya=>({clientId:ya.GMAIL_CLIENT_ID,clientSecret:ya.GMAIL_CLIENT_SECRET,refreshToken:ya.GMAIL_REFRESH_TOKEN,pollIntervalMinutes:ya.GMAIL_POLL_INTERVAL_MINUTES})},gsr:{initFunctionName:"initializeGoogleConfig",envKeyMapping:{GOOGLE_API_KEY:"apiKey",GOOGLE_CLIENT_ID:"clientId",GOOGLE_CLIENT_SECRET:"clientSecret"},configBuilder:ya=>({apiKey:ya.GOOGLE_API_KEY,clientId:ya.GOOGLE_CLIENT_ID,clientSecret:ya.GOOGLE_CLIENT_SECRET})},slackr:{initFunctionName:"initializeSlackConfig",envKeyMapping:{SLACK_BOT_TOKEN:"botToken",SLACK_APP_TOKEN:"appToken"},configBuilder:ya=>({botToken:ya.SLACK_BOT_TOKEN,appToken:ya.SLACK_APP_TOKEN})},ghr:{initFunctionName:"initializeGitHubConfig",envKeyMapping:{GITHUB_TOKEN:"token",GITHUB_API_KEY:"apiKey"},configBuilder:ya=>({token:ya.GITHUB_TOKEN||ya.GITHUB_API_KEY})}};async function initializeResolverConfigs(){try{const{getEnvironmentKeysAsObject:ya}=await __vitePreload(async()=>{const{getEnvironmentKeysAsObject:va}=await Promise.resolve().then(()=>playgroundEnvKeys);return{getEnvironmentKeysAsObject:va}},void 0),ma=ya();console.log("🔑 Available environment keys:",Object.keys(ma));const ba=getImportedModuleNames();console.log("📦 Imported modules:",ba);for(const[va,Ma]of Object.entries(RESOLVER_CONFIGS)){const wl=getImportedModule(va);if(!wl){console.log(`ℹ️ Resolver "${va}" not loaded - skipping initialization`);continue}console.log(`📋 Found resolver module: ${va}`);const El=wl[Ma.initFunctionName];if(typeof El!="function"){console.warn(`⚠️ Resolver "${va}" found but "${Ma.initFunctionName}" function is missing`);continue}const Sl=Object.keys(Ma.envKeyMapping);if(Sl.filter(pp=>ma[pp]).length===0){console.warn(`⚠️ No environment keys found for resolver "${va}". Expected: ${Sl.join(", ")}`);continue}const Mc=Ma.configBuilder(ma),dp=Object.fromEntries(Object.entries(Mc).filter(([pp,hp])=>hp!==void 0));if(Object.keys(dp).length===0){console.warn(`⚠️ No valid configuration could be built for resolver "${va}"`);continue}console.log(`🔑 Initializing resolver "${va}" with config:`,{...dp,...Object.keys(dp).reduce((pp,hp)=>{const Ef=dp[hp],Zf=typeof Ef=="string"?`***${Ef.slice(-4)}`:"***";return{...pp,[hp]:Zf}},{})});try{await El(dp),console.log(`✅ Resolver "${va}" configured successfully`),wl.config&&console.log(" Configuration stored in resolver.config")}catch(pp){console.error(`❌ Failed to initialize resolver "${va}":`,pp)}}console.log("✅ Resolver initialization complete")}catch(ya){console.error("❌ Failed to initialize resolver configs:",ya)}}const browserResolvers=Object.freeze(Object.defineProperty({__proto__:null,initializeResolverConfigs,setupResolverLoader},Symbol.toStringTag,{value:"Module"})),useRepositoryClone=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(!1),[va,Ma]=reactExports.useState(""),[wl,El]=reactExports.useState(""),Sl=$ht(),Cl=useAppStore(mg=>mg.user),{processDependencies:Mc}=useDependencyProcessor(),{loadConfig:dp}=useConfigLoader(),pp=Cl.GitHub?.Token,hp=Cl.GitHub?.Username,Ef=reactExports.useCallback(()=>{const mg=hp&&hp.trim().length>0,gg=pp&&pp.trim().length>0;(!mg||!gg)&&console.warn("GitHub credentials missing - clone may fail for private repositories")},[pp,hp]),Zf=reactExports.useCallback(async(mg,gg,yg,ay,ly,cy)=>{Ma("Checking and installing dependencies..."),await Mc(mg,hp,pp,uN=>{Ma(uN)}),Ma("Scanning repository for AgentLang modules..."),Ma("Setting up runtime environment...");{const{inBrowserREPL:uN}=await __vitePreload(async()=>{const{inBrowserREPL:uee}=await Promise.resolve().then(()=>inBrowserREPL$1);return{inBrowserREPL:uee}},void 0);await uN.initializeRuntime()}Ma("Configuring module resolver system..."),await setupResolverLoader(mg),Ma("Preparing AgentLang runtime...");const{prepareRuntimeForAppLoad:q1}=await __vitePreload(async()=>{const{prepareRuntimeForAppLoad:uN}=await Promise.resolve().then(()=>index$5);return{prepareRuntimeForAppLoad:uN}},void 0);await q1(mg);{Ma("Connecting to local filesystem...");const{setFileSystem:uN}=await __vitePreload(async()=>{const{setFileSystem:e2e}=await Promise.resolve().then(()=>fsUtils);return{setFileSystem:e2e}},void 0),$pe=detectAppType()==="marketplace"?{type:"marketplace"}:await getAppInfo(),Ppe=await getAppFileSystem($pe);uN(Ppe)}Ma("Loading AgentLang modules and parsing code...");const uE=detectAppType()==="regular";await flushAllAndLoad(mg,{name:"studio",useCliBackend:uE}),Ma("Loading core AgentLang modules...");const{loadCoreModules:V1}=await __vitePreload(async()=>{const{loadCoreModules:uN}=await Promise.resolve().then(()=>loader$1);return{loadCoreModules:uN}},void 0);await V1(),Ma("Loading application configuration..."),await dp(mg),Ma("Initializing agents and registering modules..."),await runInitFunctions(),await runStandaloneStatements(),Ma("Configuring AI/LLM services...");const{queryLLMEntities:H1}=await __vitePreload(async()=>{const{queryLLMEntities:uN}=await Promise.resolve().then(()=>index$5);return{queryLLMEntities:uN}},void 0),O_=await H1(),aE=useAppStore.getState().appConfig;useAppStore.getState().setAppConfig({...aE,llms:O_}),Ma("Setting up resolver integrations..."),await initializeResolverConfigs(),console.log("Reading package.json...");let P_;try{const uee=detectAppType()==="marketplace"?{type:"marketplace",org:ay,repo:gg,branch:ly}:await getAppInfo();if(uee)P_=await readPackageJson(uee);else if(cy)P_=cy;else throw new Error("Could not read package.json and none provided")}catch(uN){if(cy)P_=cy;else throw uN}const M_=P_?.name||yg,sN=getTeamModules(M_),AF=sN.flatMap(uN=>{try{const uee=fetchModule$2(uN);return uee?uee.getAgentNames().filter($pe=>uee.getAgent($pe)?.isPublic()??!1).map($pe=>`${uN}/${$pe}`):[]}catch(uee){return console.warn(`Failed to fetch module ${uN} for public agents:`,uee),[]}});console.log(`[LOCAL] Found ${sN.length} modules:`,sN),console.log(`[LOCAL] Found ${AF.length} public agents:`,AF);const $4=sN.flatMap(uN=>fetchModule$2(uN).getEntityNames().map(uee=>`${uN}/${uee}`)),cN=sN.flatMap(uN=>buildGraph(uN).getRoots().map($pe=>`${$pe.entity.getModuleName()}/${$pe.entity.getEntryName()}`)),R4={Name:M_,Description:P_.description||"An application generated from "+M_};Ma("Generating UI schema and interface...");const k4=await loadUISchema(M_,mg,$4,cN,AF,R4);k4.appInfo||(k4.appInfo={}),k4.appInfo.apiUrl="http://localhost:8080",Sl(k4);const AQ={githubOrg:ay,teamName:M_,branch:ly,projectPath:mg};return __vitePreload(()=>import("./replService-DI2pw8YC.js"),__vite__mapDeps([32,1,18,19,5,9,16,11,14,15,10,20,21,17,4])).then(async({default:uN})=>{try{await uN.ensureReplSession(AQ),await uN.initializeFileTracking(mg)}catch(uee){console.error("❌ Failed to setup REPL deployment:",uee)}}),sN[0]},[hp,pp,Ma,Sl,Mc,dp]),Jf=reactExports.useCallback(async mg=>{ba(!0),El("");try{Ef();const{GitHubOrg:gg,GitHubRepo:yg,Name:ay,Branch:ly}=mg,cy=`/${yg}`,q1=generateGitHubUrl(gg,yg,hp,pp);await pathExists(cy)?Ma("Repository already exists. Loading modules..."):(Ma("Cloning repository..."),await cloneRepository(q1,cy,ly,pp));let uE;try{const H1=await readRepoFile(cy,"package.json");uE=JSON.parse(H1)}catch(H1){console.warn("Failed to read package.json, using team name as fallback:",H1),uE=null}const V1=uE?.name||ay;await Zf(cy,yg,V1,gg,ly,uE)}catch(gg){const yg=gg instanceof Error?gg.message:"Failed to clone repository";El(yg),console.error("Error during repository clone:",gg);try{const ay=`/${mg.GitHubRepo}`;await pathExists(ay)&&(console.log(`Cleaning up failed clone: removing ${ay} from IndexedDB`),await removeDirectory(ay))}catch(ay){console.error("Error cleaning up failed clone:",ay)}}finally{ba(!1)}},[Ef,hp,pp,Zf]),pg=reactExports.useCallback((mg,gg,yg,ay,ly)=>{const cy=`/design/${mg?"agents":"data-model"}/${gg}/${yg}/${ay}`;ly?ya(cy,{state:ly.state}):ya(cy)},[ya]),hg=reactExports.useCallback(async(mg,gg,yg,ay,ly,cy)=>{ba(!0),Ma("Fetching repository..."),El("");try{return await Zf(mg,gg,yg,ay,ly,cy)}catch(q1){const r0=q1 instanceof Error?q1.message:"Failed to process repository";throw El(r0),q1}finally{ba(!1)}},[Zf]);return{isCloning:ma,error:wl,loadingMessage:va,cloneAndProcess:Jf,navigateToDesign:pg,processRepository:Zf,processRepositoryForLocalMode:hg}},IS_PLAYGROUND$a=!1,IS_LOCAL_MODE$9=!0,metaAxiosInstance$2=axiosInstance("meta");async function fetchBranch(){const ya="http://localhost:4000";try{const ma=await fetch(`${ya}/branch`);return ma.ok&&(await ma.json()).branch||"main"}catch(ma){return console.warn("Failed to fetch branch:",ma),"main"}}const useTeams=()=>{const ya=useNavigate(),ma=useQueryClient(),{navigateToDesign:ba}=useRepositoryClone(),{teamName:va,githubOrg:Ma}=useParams(),wl=isMarketplaceRepo(va||"",Ma),El=useAppStore(P_=>P_.authData.username),Sl=useAppStore(P_=>P_.authData.userProfileId),Cl=useAppStore(P_=>P_.user.CurrentWorkspace?.Id),Mc=useAppStore(P_=>P_.user.GitHub.Token)||"",dp=useAppStore(P_=>P_.user.GitHub.Username)||"",{fetchOrCreateWorkspace:pp}=useWorkspace();useAppStore(P_=>P_.authReady),useAppStore(P_=>P_.isAuthenticated);const{data:hp}=useQuery({queryKey:["localBranch"],queryFn:fetchBranch,enabled:IS_LOCAL_MODE$9,staleTime:1/0,refetchOnMount:"always"}),{data:Ef,isLoading:Zf,error:Jf,refetch:pg}=useQuery({queryKey:["workspace",Cl,"apps",Sl],queryFn:async()=>{{const P_="http://localhost:4000";try{const M_=await fetch(`${P_}/apps`);if(M_.ok)return(await M_.json()).map(AF=>({Name:AF.name,isEditable:!0,Type:"Local",path:AF.path,Id:AF.path,__Id__:AF.path,Branch:"main",Config:{},CreatedAt:new Date().toISOString(),Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"Local",GitHubOrg:"file",GitHubRepo:AF.name,GithubUrl:"",LastUpdatedAt:new Date().toISOString(),Owner:"local",createdAt:new Date().toISOString(),isPin:!1,Version:"0.0.1",Description:"",Tags:[]}))}catch(M_){console.error("Failed to fetch local apps",M_)}return[]}},enabled:IS_LOCAL_MODE$9,staleTime:120*1e3,gcTime:300*1e3,refetchOnMount:"always",retry:(P_,M_)=>M_?.response?.status===401||M_?.response?.status===403?!1:P_<2}),{mutate:hg}=useMutation({mutationFn:async({appId:P_,isEditable:M_})=>{const sN=await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`,{isEditable:M_});return transformSimpleTeamToTeam(sN.data)},onMutate:async P_=>{const{appId:M_,isEditable:sN}=P_;await ma.cancelQueries({queryKey:["workspace",Cl,"apps",Sl]});const AF=ma.getQueryData(["workspace",Cl,"apps",Sl]);if(AF){const $4=AF.map(cN=>cN.Id===M_?{...cN,isEditable:sN}:cN);ma.setQueryData(["workspace",Cl,"apps",Sl],$4)}return{previousApps:AF}},onError:(P_,M_,sN)=>{sN?.previousApps&&ma.setQueryData(["workspace",Cl,"apps",Sl],sN.previousApps),y$b.error("Failed to update status. Please try again.")},onSettled:()=>{ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]})}}),mg=reactExports.useMemo(()=>wl?marketplaceTeams.find(M_=>M_.GitHubRepo.toLowerCase()===va?.toLowerCase()):!Ef||!va?void 0:{...Ef.find(M_=>M_.GitHubRepo.toLowerCase()===va.toLowerCase()||M_.Name.toLowerCase()===va.toLowerCase()),Branch:hp||"main"},[wl,Ef,va,hp]);if(Jf){console.error("fetchWorkspaceApps: Query failed",Jf);let P_="Failed to fetch workspace apps";const M_=Jf;M_?.response?.status===401?P_="Authentication expired. Please sign in again.":M_?.response?.status===403?P_="Access denied. Please check your workspace permissions.":M_?.response?.status===404?P_="Workspace not found. Please verify your workspace access.":M_?.response?.data?.reason?P_=M_.response.data.reason:M_?.message&&(P_=`Network error: ${M_.message}`),y$b.error(P_)}const gg=async(P_,M_)=>{try{const AF=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${M_}`,P_)).data,$4=transformSimpleTeamToTeam(AF);return ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg(),{...$4}}catch(sN){throw console.error("Error editing workspace app:",sN),sN}},yg=async(P_,M_)=>{try{const AF=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`,{branch:M_})).data,$4=transformSimpleTeamToTeam(AF);return ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg(),{...$4,Branch:M_}}catch(sN){throw console.error("Error switching workspace app branch:",sN),sN}},ay=async P_=>{{const M_="http://localhost:4000";try{const sN=await fetch(`${M_}/app/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:P_.name})});if(!sN.ok){const AF=await sN.json();throw new Error(AF.error||"Failed to create app")}await pg(),y$b.success(`App "${P_.name}" created successfully.`);return}catch(sN){console.error("Failed to create local app",sN),y$b.error(sN instanceof Error?sN.message:"Failed to create app");return}}try{let M_=Cl;if(!M_){const sN=await pp("Default");if(sN)M_=sN.id||sN.Id;else throw new Error("Failed to create or fetch Default workspace")}if(!M_)throw new Error("No workspace ID available after all attempts");await metaAxiosInstance$2.post(`/AgentMeta/Workspace/${M_}/WorkspaceApp/App`,P_),ma.invalidateQueries({queryKey:["workspace",M_,"apps",Sl]}),ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg()}catch(M_){console.error("Error occurred:",M_),y$b.error(M_?.response?.data?.["status-text"]||M_?.response?.data?.reason||M_?.message||"Operation failed")}},ly=async P_=>{try{if(IS_LOCAL_MODE$9){const sN=await fetch("http://localhost:4000/app/delete",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_})});if(!sN.ok){const AF=await sN.json();throw new Error(AF.error||"Failed to delete app")}await pg(),y$b.success("Team deleted successfully");return}await metaAxiosInstance$2.delete(`/AgentMeta/Workspace/${Cl}/WorkspaceApp/App/${P_}`),ma.invalidateQueries({queryKey:["workspace",Cl,"apps",Sl]}),await pg()}catch(M_){console.error("Error occurred:",M_),y$b.error(M_?.response?.data?.["status-text"]||M_?.response?.data?.reason||M_?.message||"Operation failed")}},cy=async(P_,M_,sN)=>{try{const AF=`/${P_.githubRepo}`,$4=P_.branchSelected&&P_.githubBranch?P_.githubBranch:"main",cN=dp&&dp.trim().length>0,R4=Mc&&Mc.trim().length>0,k4=generateGitHubUrl(P_.githubOrg,P_.githubRepo,dp,Mc);if((!cN||!R4)&&M_("⚠️ GitHub credentials missing. Clone may fail for private repositories. Please set your GitHub username and token in Settings.",!1,!1),await pathExists(AF)){sN("checking"),M_("Repository exists, checking for updates...",!1,!1);try{const uN=await updateExistingRepository(AF,Mc,{branch:$4,checkOnly:!0});if(!uN.success)M_(`Warning: Could not check for updates - ${uN.message}. Using existing repository.`,!1,!1);else if(uN.hasUpdates){sN("updating"),M_("Fetching latest changes...",!1,!1);const uee=await updateExistingRepository(AF,Mc,{branch:$4,force:!0});uee.success?M_("Repository updated successfully!",!0,!1):M_(`Warning: Could not update repository - ${uee.message}. Using existing version.`,!1,!1)}else M_("No updates available",!0,!1)}catch(uN){console.error("Failed to update repository:",uN),M_(`Warning: Could not check for updates - ${uN.message}. Using existing repository.`,!1,!1)}}else{sN("cloning"),M_("Cloning repository...",!1,!1);try{await cloneRepository(k4,AF,$4,Mc),M_("Repository cloned successfully!",!0,!1)}catch(uN){console.error("Failed to clone repository:",uN),M_(`Failed to clone repository: ${uN.message}`,!1,!0);try{await pathExists(AF)&&(console.log(`Cleaning up failed clone: removing ${AF} from IndexedDB`),await removeDirectory(AF))}catch(uee){console.error("Error cleaning up failed clone:",uee)}return sN("error"),{path:null,fileContent:null}}}try{sN("processing"),M_("Searching for .al files...",!1,!1);const uN=await findFilesWithExtension(AF,"al");if(uN.length===0)return M_("No .al files found in the repository.",!1,!0),sN("error"),{path:null,fileContent:null};M_(`Found ${uN.length} .al file(s).`,!0,!1);const uee=uN[0];M_(`Reading file: ${uee}...`,!1,!1);const $pe=await readRepoFile(AF,uee);try{await readRepoFile(AF,"package.json")}catch{M_("Warning: package.json not found in repository",!1,!1)}try{return sN("creating"),await flushAllAndLoad(AF,{name:"studio"}),M_(`${uee} loaded successfully!`,!0,!1),sN("complete"),{path:AF,fileContent:$pe}}catch(Ppe){return console.error(`Failed to load ${uee}:`,Ppe),M_(`Failed to load ${uee}: ${Ppe.message}`,!1,!0),sN("error"),{path:null,fileContent:null}}}catch(uN){return console.error("Failed to process .al files:",uN),M_(`Note: .al files not found or could not be read: ${uN.message}`,!1,!0),sN("error"),{path:AF,fileContent:null}}}catch(AF){return console.error("Failed to execute Git operation:",AF),M_(`Failed to execute Git operation: ${AF.message}`,!1,!0),sN("error"),{path:null,fileContent:null}}},q1=async(P_,M_,sN)=>{try{if(wl)return sN("Marketplace mode: Changes not saved",!1,!1),console.log("[MARKETPLACE] saveReadmeChanges skipped - marketplace mode"),!1;sN("Saving changes...",!1,!1);const AF=await openRepository(P_);return await writeRepoFile(P_,"README.md",M_),await commitChanges(AF,"README.md","Update README.md",{name:"Fractl Studio User",email:El||"user@fractl.studio"}),sN("Changes saved successfully!",!0,!1),!0}catch(AF){return console.error("Failed to save README:",AF),sN(`Failed to save: ${AF.message}`,!1,!0),!1}},r0=async(P_,M_)=>{try{if(wl)return M_("Marketplace mode: Push skipped",!1,!1),console.log("[MARKETPLACE] pushChanges skipped - marketplace mode"),!1;M_("Pushing changes to repository...",!1,!1);const sN=await openRepository(P_);return await pushChanges(sN,"origin","main",Mc),M_("Changes pushed successfully!",!0,!1),!0}catch(sN){return console.error("Failed to push changes:",sN),M_(`Failed to push: ${sN.message}`,!1,!0),!1}},uE=reactExports.useCallback(async(P_,M_,sN=!1)=>{sN&&await pg()},[pg]),V1=mg?.isEditable??!0,H1=async(P_,M_)=>{const sN="http://localhost:4000";try{await fetch(`${sN}/app/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_})}),await new Promise(AF=>setTimeout(AF,500)),ba(!1,"file",M_,"data-model",{state:{from:"/design/dashboard"}})}catch(AF){console.error("Failed to launch app",AF),y$b.error("Failed to launch app"),ya("/design/dashboard")}},O_=async()=>{const P_="http://localhost:4000";try{await fetch(`${P_}/app/stop`,{method:"POST"}),ya("/design/dashboard")}catch(M_){console.error("Failed to stop app",M_)}},aE=async(P_,M_,sN)=>{const AF="http://localhost:4000";try{const $4=await fetch(`${AF}/app/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:P_,name:M_,branch:sN?.branch,githubUsername:sN?.credentials?.username,githubToken:sN?.credentials?.token})});if(!$4.ok){const R4=await $4.json();throw new Error(R4.error||"Failed to import app")}const cN=await $4.json();return await pg(),cN}catch($4){throw console.error("Failed to import app",$4),$4}};return{currentTeam:mg,workspaceApps:Ef,isLoadingApps:Zf,appsError:Jf,fetchWorkspaceApps:uE,editWorkspaceApp:gg,switchWorkspaceAppBranch:yg,updateWorkspaceAppEditable:hg,addWorkspaceApp:ay,cloneGitRepository:cy,saveReadmeChanges:reactExports.useCallback(q1,[wl,El]),pushChanges:reactExports.useCallback(r0,[wl,Mc]),deleteWorkspaceApp:ly,isEditable:V1,launchApp:H1,stopApp:O_,importApp:aE}},integrationAxiosInstance$1=axiosInstance("connection-manager"),useLLM=()=>{const ya=useQueryClient(),ma=useAppStore(Ef=>Ef.authReady),ba=useAppStore(Ef=>Ef.isAuthenticated),va=Ef=>{const{__parent__:Zf,__path__:Jf,...pg}=Ef;return pg},{data:Ma,isLoading:wl,isError:El,error:Sl,refetch:Cl}=useQuery({queryKey:["llms"],queryFn:async()=>{const Ef=await integrationAxiosInstance$1.get("/integmanager.core/llm"),{data:Zf,status:Jf}=Ef;if(Jf!==200)throw new Error("Failed to fetch llms");return Zf.map(hg=>({...hg.llm,config:JSON.parse(hg.llm.config)}))},enabled:ma&&ba&&!0});El&&Sl&&y$b.error(Sl?.response?.data?.reason||Sl.message);const Mc=reactExports.useCallback(async Ef=>{await Cl()},[Cl]),dp=reactExports.useCallback(async Ef=>{try{const Zf=va(Ef),Jf=await integrationAxiosInstance$1.post("/integmanager.core/llm",Zf);if(Jf.status===200||Jf.status===201)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM created successfully");else{const pg=Jf.data?.reason||Jf.data?.message||`Failed to create LLM (Status: ${Jf.status})`;throw y$b.error(pg),new Error(pg)}}catch(Zf){const Jf=Zf?.response?.data?.reason||Zf?.response?.data?.message||Zf?.message||"Failed to create LLM";throw y$b.error(Jf),Zf}},[ya]),pp=reactExports.useCallback(async Ef=>{try{const Zf=await integrationAxiosInstance$1.delete(`/integmanager.core/llm/${Ef}`);if(Zf.status===200||Zf.status===204)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM deleted successfully");else{const Jf=Zf.data?.reason||Zf.data?.message||`Failed to delete LLM (Status: ${Zf.status})`;throw y$b.error(Jf),new Error(Jf)}}catch(Zf){const Jf=Zf?.response?.data?.reason||Zf?.response?.data?.message||Zf?.message||"Failed to delete LLM";throw y$b.error(Jf),Zf}},[ya]),hp=reactExports.useCallback(async(Ef,Zf)=>{try{const Jf=va(Zf),pg=await integrationAxiosInstance$1.put(`/integmanager.core/llm/${Ef}`,Jf);if(pg.status===200||pg.status===201||pg.status===204)ya.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM updated successfully");else{const hg=pg.data?.reason||pg.data?.message||`Failed to update LLM (Status: ${pg.status})`;throw y$b.error(hg),new Error(hg)}}catch(Jf){const pg=Jf?.response?.data?.reason||Jf?.response?.data?.message||Jf?.message||"Failed to update LLM";throw y$b.error(pg),Jf}},[ya]);return{llmData:Ma,isLoadingLLMs:wl,isErrorLLMs:El,llmError:Sl,fetchLLMs:Mc,createLLM:dp,deleteLLM:pp,updateLLM:hp}},IS_LOCAL_MODE$8=!0,integrationAxiosInstance=axiosInstance("connection-manager"),useIntegration=(ya="api")=>{const{currentTeam:ma}=useTeams(),ba=ma?.GitHubRepo,va=useQueryClient();useAppStore(yg=>yg.authReady),useAppStore(yg=>yg.isAuthenticated);const Ma=useAppStore(yg=>yg.user),wl=Ma.GitHub.Token,El=Ma.GitHub.Username,{processDependencies:Sl}=useDependencyProcessor(),{data:Cl,isLoading:Mc,isError:dp,error:pp,refetch:hp}=useQuery({queryKey:["integrations",ba,ya],queryFn:async()=>{if(ya!=="config")return console.log("[LOCAL_MODE] Skipping API integrations fetch - use config mode instead"),[];if(ba)try{const r0=(await readPackageJsonFromGit(ba,!0)).dependencies||{};let uE={};try{const O_=await readProjectFile(ba,"config.al");uE=parseAppConfig(O_),console.log("parsedConfig",uE)}catch{console.log("config.al does not exist yet")}const V1=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,H1=[];return Object.entries(r0).forEach(([O_,aE])=>{const P_=aE.match(V1);if(P_){const[,M_,sN]=P_;let AF,$4=null;uE[sN]&&uE[sN].isRemoteIntegration!==void 0?($4=uE[sN],AF=$4.isRemoteIntegration):uE[O_]&&typeof uE[O_].isRemoteIntegration=="boolean"&&($4=uE[O_],AF=$4.isRemoteIntegration);const R4={name:$4?.name||O_,userData:{GitHubOrg:M_,GitHubRepo:sN}};AF!==void 0&&(R4.userData.isRemoteIntegration=AF),H1.push(R4)}else aE.startsWith("file:")}),H1}catch(q1){return console.warn("Failed to read integrations from package.json",q1),[]}const yg=await integrationAxiosInstance.get("/integmanager.core/integration"),{data:ay,status:ly}=yg;if(ly!==200)throw new Error("Failed to fetch integrations");return ay.map(q1=>({...q1.integration,userData:JSON.parse(q1.integration.userData)}))},enabled:IS_LOCAL_MODE$8,staleTime:0,refetchOnWindowFocus:!0});dp&&pp&&y$b.error(pp?.response?.data?.reason||pp.message);const Ef=reactExports.useCallback(async()=>{await hp()},[hp]),Zf=reactExports.useCallback(async(yg,ay)=>{const ly=`/temp-validation/${yg}/${ay}`;let cy=!1;try{if(!await pathExists(ly)){const H1=generateGitHubUrl(yg,ay,El,wl);await cloneRepository(H1,ly,"main",wl||""),cy=!0}let r0;if(IS_LOCAL_MODE$8){const{createGitUtils:H1}=await __vitePreload(async()=>{const{createGitUtils:P_}=await Promise.resolve().then(()=>index$8);return{createGitUtils:P_}},void 0),{fs:O_}=await H1({useCliBackend:!1}),aE=`${ly}/package.json`;r0=(await O_.readFile(aE)).toString()}const uE=JSON.parse(r0),V1=uE?.agentlang?.config&&Array.isArray(uE.agentlang.config);if(cy)try{await removeDirectory(ly)}catch(H1){console.warn("Failed to cleanup temporary clone:",H1)}return V1}catch(q1){if(cy)try{await removeDirectory(ly)}catch(r0){console.warn("Failed to cleanup temporary clone:",r0)}throw q1}},[El,wl]),Jf=reactExports.useCallback(async yg=>{if(ya==="config"&&ba){const ay=El&&El.trim().length>0,ly=wl&&wl.trim().length>0;if(!ay||!ly){const aE=new Error("GitHub credentials are required for local mode");throw aE.code="GITHUB_CREDENTIALS_REQUIRED",aE}const cy=yg.userData.GitHubRepo,q1=yg.name,r0=yg.userData.GitHubOrg;if(!cy||!r0)throw new Error("GitHub organization and repository name are required");if(!await Zf(r0,cy))throw new Error("The repository is not a valid AgentLang project. It must have a package.json with an agentlang.config field.");const V1=await readPackageJsonFromGit(ba);V1.dependencies||(V1.dependencies={});const H1=generateGitHubUrl(r0,cy,El,wl);V1.dependencies[q1]=`git+${H1}#main`,await savePackageJsonToGit(ba,JSON.stringify(V1,null,2),`Add dependency for ${q1}`,El,wl);const O_=`/${ba}`;try{await Sl(O_,El,wl)}catch(aE){throw console.error(`Failed to process dependencies for ${q1}:`,aE),y$b.error(`Failed to clone dependency: ${aE.message}`),aE}try{const aE=`${O_}/node_modules/${q1}`,P_=await readRepoFile(aE,"package.json"),M_=JSON.parse(P_);if(M_?.agentlang?.config&&Array.isArray(M_.agentlang.config)&&M_.agentlang.config.length>0){let sN="";try{sN=await readProjectFile(ba,"config.al")}catch{}const AF=sN?parseAppConfig(sN):{};AF[q1]||(AF[q1]={}),M_.agentlang.config.forEach($4=>{AF[q1][$4]||(AF[q1][$4]=null)}),await saveConfigToGit(ba,formatAppConfig(AF),`Add config for integration ${q1}`,El,wl)}}catch(aE){console.warn(`Failed to create config maps for integration ${q1}:`,aE)}try{await flushAllAndLoad(O_,{name:"studio",useCliBackend:IS_LOCAL_MODE$8}),await va.invalidateQueries({queryKey:["dependencies"]})}catch(aE){console.warn(`Failed to load modules for ${q1}:`,aE)}await va.invalidateQueries({queryKey:["integrations",ba,ya]}),await hp(),y$b.success("Integration created successfully");return}try{const ay=await integrationAxiosInstance.post("/integmanager.core/integration",yg);if(ay.status===200||ay.status===201)await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration created successfully");else throw new Error(ay.data?.reason||ay.data?.message||"Failed to create integration")}catch(ay){const ly=ay?.response?.data?.reason||ay?.response?.data?.message||ay?.message||"Failed to create integration";throw new Error(ly)}},[va,ba,El,wl,ya,Zf,Sl,hp]),pg=reactExports.useCallback(async yg=>{if(ya==="config"&&ba)try{const ay=await readPackageJsonFromGit(ba);if(ay.dependencies&&ay.dependencies[yg]){const ly=ay.dependencies[yg],cy=/(?:git\+)?https:\/\/github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,q1=ly.match(cy),r0=q1?q1[2]:null;let uE=null;if(r0)try{const V1=await readDependencyPackageJsonFromGit(ba,yg);V1?.name&&(uE=V1.name.split("/").pop()?.split("@").pop()||null)}catch{console.log(`Could not read package.json for ${yg}, will try to remove by repo name`)}delete ay.dependencies[yg],await savePackageJsonToGit(ba,JSON.stringify(ay,null,2),`Remove dependency ${yg}`,El,wl);try{const V1=await readProjectFile(ba,"config.al"),H1=parseAppConfig(V1);let O_=!1;if(r0&&H1[r0]&&(delete H1[r0],O_=!0),uE&&H1[uE]&&(delete H1[uE],O_=!0),H1[yg]&&(delete H1[yg],O_=!0),O_){const aE=formatAppConfig(H1);await saveConfigToGit(ba,aE,`Remove integration ${yg} from config.al`,El,wl)}}catch{console.log("config.al does not exist or error reading it")}await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");return}else{y$b.info("Integration not found in dependencies");return}}catch(ay){throw console.error("Failed to delete integration:",ay),y$b.error(`Failed to delete integration: ${ay.message}`),ay}try{const ay=await integrationAxiosInstance.delete(`/integmanager.core/integration/${yg}`);if(console.log(ay.data),ay.status===200||ay.status===204)await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");else{const ly=ay.data?.reason||ay.data?.message||`Failed to delete integration (Status: ${ay.status})`;throw y$b.error(ly),new Error(ly)}}catch(ay){const ly=ay?.response?.data?.reason||ay?.response?.data?.message||ay?.message||"Failed to delete integration";throw y$b.error(ly),ay}},[va,ba,El,wl,ya]),hg=reactExports.useCallback(async(yg,ay)=>{if(ya==="config"&&ba)try{const ly=ay.userData?.GitHubRepo,cy=ay.userData?.GitHubOrg;if(!ly||!cy)throw new Error("Missing GitHub info for update");const q1=await readPackageJsonFromGit(ba);q1.dependencies||(q1.dependencies={}),q1.dependencies[yg]=`git+https://github.com/${cy}/${ly}.git#main`,await savePackageJsonToGit(ba,JSON.stringify(q1,null,2),`Update dependency ${yg}`,El,wl),await va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");return}catch(ly){throw console.error("Failed to update integration:",ly),y$b.error(`Failed to update integration: ${ly.message}`),ly}try{const ly=await integrationAxiosInstance.put(`/integmanager.core/integration/${yg}`,ay);if(console.log(ly.data),ly.status===200)va.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");else{const cy=ly.data?.reason||ly.data?.message||`Failed to update integration (Status: ${ly.status})`;throw y$b.error(cy),new Error(cy)}}catch(ly){const cy=ly?.response?.data?.reason||ly?.response?.data?.message||ly?.message||"Failed to update integration";throw y$b.error(cy),ly}},[va,ba,El,wl,ya]),mg=reactExports.useCallback(async yg=>{if(ya!=="api"||!ba){console.warn("addIntegrationToConfig only supported in 'api' mode with a valid githubRepo");return}try{const ay=yg.userData?.GitHubRepo,ly=yg.userData?.GitHubOrg,cy=yg.name;if(!ay||!ly)throw new Error("GitHub organization and repository name are required");const q1=`git+https://github.com/${ly}/${ay}.git#main`,r0=await readPackageJsonFromGit(ba);r0.dependencies||(r0.dependencies=null),r0.dependencies[ay]=q1,await savePackageJsonToGit(ba,JSON.stringify(r0,null,2),`Add integration ${cy} from API`,El,wl);const uE=`/${ba}`;try{await Sl(uE,El,wl),await flushAllAndLoad(uE,{name:"studio",useCliBackend:IS_LOCAL_MODE$8}),await va.invalidateQueries({queryKey:["dependencies"]})}catch(O_){console.warn(`Failed to process dependencies for ${cy}:`,O_)}let V1={};try{const O_=await readProjectFile(ba,"config.al");V1=parseAppConfig(O_)}catch{console.log("config.al does not exist yet, will create it")}V1[ay]={isRemoteIntegration:!0,name:cy,url:q1};const H1=formatAppConfig(V1);await saveConfigToGit(ba,H1,`Add integration ${cy} to config.al`,El,wl),await va.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${cy} added successfully`)}catch(ay){throw console.error("Error adding integration to config:",ay),y$b.error(`Failed to add integration: ${ay.message}`),ay}},[ba,El,wl,ya,va,Sl]),gg=reactExports.useCallback(async yg=>{if(ya!=="api"||!ba){console.warn("removeIntegrationFromConfig only supported in 'api' mode with a valid githubRepo");return}try{const ay=yg.userData?.GitHubRepo,ly=yg.name;if(!ay)throw new Error("GitHub repository name is required");const cy=await readPackageJsonFromGit(ba);cy.dependencies&&cy.dependencies[ly]&&(delete cy.dependencies[ly],await savePackageJsonToGit(ba,JSON.stringify(cy,null,2),`Remove integration ${ly} from API`,El,wl));try{const q1=await readProjectFile(ba,"config.al"),r0=parseAppConfig(q1);if(r0[ay]){delete r0[ay];const uE=formatAppConfig(r0);await saveConfigToGit(ba,uE,`Remove integration ${ly} from config.al`,El,wl)}}catch{console.log("config.al does not exist or error reading it")}await va.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${ly} removed successfully`)}catch(ay){throw console.error("Error removing integration from config:",ay),y$b.error(`Failed to remove integration: ${ay.message}`),ay}},[ba,El,wl,ya,va]);return{integrationData:Cl,isLoadingIntegrations:Mc,isErrorIntegrations:dp,integrationsError:pp,fetchIntegrations:Ef,createIntegration:Jf,deleteIntegration:pg,updateIntegration:hg,addIntegrationToConfig:mg,removeIntegrationFromConfig:gg}},IS_PLAYGROUND$9=!1,IS_LOCAL_MODE$7=!0,useDeployments=()=>{const ya=useQueryClient(),ma=useAppStore(hp=>hp.authReady),ba=useAppStore(hp=>hp.isAuthenticated),{data:va,isLoading:Ma,isError:wl,error:El,refetch:Sl}=useQuery({queryKey:["deployments"],queryFn:async()=>(await axiosInstance("deployment").get("/Deployment/App")).data.reduce((Zf,Jf)=>{const pg=Jf.App,hg=pg.Repo;return Zf[hg]||(Zf[hg]=[]),Zf[hg].push({Repo:pg.Repo,Organization:pg.Organization,Branch:pg.Branch,Config:pg.Config,DeploymentId:pg.DeploymentId,ExternalUrl:pg.ExternalUrl,CreatedOn:pg.CreatedOn,CreatedBy:pg.CreatedBy,Status:pg.Status,Type:pg.Type,__path__:pg.__path__,__parent__:pg.__parent__}),Zf},{}),enabled:ma&&ba&&!IS_PLAYGROUND$9});wl&&El&&y$b.error(El?.response?.data?.reason||El.message);const Cl=reactExports.useCallback(async()=>{await Sl()},[Sl]),Mc=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app config creation`),"mock-config-id";const Zf=(await axiosInstance("deployment").post("/Deployment/AppConfig",hp)).data?.AppConfigId;if(!Zf)throw new Error("AppConfigId not found in response");return console.log("✅ App config created:",Zf),Zf}catch(Ef){throw console.error("❌ Failed to create app config:",Ef),y$b.error(Ef?.response?.data?.reason||"Failed to create app config"),Ef}},[]),dp=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app deployment`),y$b.success(`App deployed successfully! (${IS_PLAYGROUND$9?"playground":"serve"} mode)`),{success:!0};const Ef=await axiosInstance("deployment").post("/Deployment/DeployApp",hp);return y$b.success("App deployed successfully!"),ya.invalidateQueries({queryKey:["deployments"]}),Ef.data}catch(Ef){throw y$b.error(Ef?.response?.data?.reason||"Failed to deploy app"),Ef}},[ya]),pp=reactExports.useCallback(async hp=>{try{if(IS_PLAYGROUND$9||IS_LOCAL_MODE$7)return console.log(`[${IS_PLAYGROUND$9?"PLAYGROUND":"SERVE_MODE"}] Skipping app undeployment`),y$b.success(`App undeployed successfully! (${IS_PLAYGROUND$9?"playground":"serve"} mode)`),{success:!0};const Ef=await axiosInstance("deployment").post("/Deployment/UndeployApp",hp);return y$b.success("App undeployed successfully!"),ya.invalidateQueries({queryKey:["deployments"]}),Ef.data}catch(Ef){throw y$b.error(Ef?.response?.data?.reason||"Failed to undeploy app"),Ef}},[ya]);return{deploymentsData:va,isLoadingDeployments:Ma,isErrorDeployments:wl,deploymentsError:El,fetchDeployments:Cl,createAppConfig:Mc,deployApp:dp,undeployApp:pp}};let globalInitializationState={isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}};const listeners=new Set,updateGlobalState=ya=>{globalInitializationState={...globalInitializationState,...ya},listeners.forEach(ma=>ma(globalInitializationState))},useAppInitialization=()=>{const[ya,ma]=reactExports.useState(globalInitializationState),ba=reactExports.useRef(!1),{setUser:va,user:Ma,lastDataFetch:wl,setLastDataFetch:El}=useAppStore(),Sl=axiosInstance("meta"),{fetchWorkspaceApps:Cl}=useTeams(),{fetchIntegrations:Mc}=useIntegration(),{fetchDeployments:dp}=useDeployments(),{fetchLLMs:pp}=useLLM();reactExports.useEffect(()=>{const ay=ly=>{ma(ly)};return listeners.add(ay),()=>{listeners.delete(ay)}},[]);const hp=reactExports.useCallback(ay=>{const ly={...globalInitializationState,progress:{...globalInitializationState.progress,...ay}};updateGlobalState(ly)},[]),Ef=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("agentlang-studio-store");if(!ay)return!1;try{const ly=JSON.parse(ay),cy=ly.state&&ly.state.user&&ly.state.user.Email,q1=ly.state&&ly.state.workspace&&ly.state.workspace.Id,r0=ly.state&&ly.state.lastDataFetch&&ly.state.lastDataFetch>0;return cy&&q1&&r0}catch(ly){return console.warn("Failed to parse cached store:",ly),!1}},[]),Zf=reactExports.useCallback(()=>{if(wl===0)return!0;const ay=Date.now()-600*1e3;if(wl>ay)return!1;const ly=Date.now()-300*1e3;return wl<ly},[wl]),Jf=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("agentlang-studio-store");if(!ay)return!1;try{const ly=JSON.parse(ay);if(ly.state&&ly.state.user&&ly.state.user.Email)return hp({userLoaded:!0}),!0}catch(ly){console.warn("Failed to parse cached store:",ly)}return!1},[hp]),pg=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ay=localStorage.getItem("workspace_id"),ly=localStorage.getItem("username");return ay&&ly?(hp({workspaceLoaded:!0}),!0):!1},[hp]),hg=reactExports.useCallback(async(ay,ly,cy=!1)=>{{console.log("[DEV MODE] Skipping app data initialization - no API calls needed"),hp({dataLoaded:!0});return}},[Cl,Mc,dp,pp,hp,El]),mg=reactExports.useCallback(async(ay=0)=>{if(!ba.current){console.log("[DEV MODE] Skipping app initialization - no API calls needed"),El(Date.now()),updateGlobalState({isInitializing:!1,isInitialized:!0,retryCount:0,progress:{userLoaded:!0,workspaceLoaded:!0,dataLoaded:!0}});return}},[Sl,va,Ma,hg,hp,Ef,Jf,pg,Zf,El]),gg=reactExports.useCallback(()=>{updateGlobalState({retryCount:0}),ba.current=!1,mg()},[mg]),yg=reactExports.useCallback(()=>{updateGlobalState({isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}}),ba.current=!1},[]);return reactExports.useEffect(()=>()=>{ba.current=!1},[]),{...ya,initializeApp:mg,retryInitialization:gg,resetInitialization:yg}};var t$9=typeof window<"u"?window:void 0,i$b=typeof globalThis<"u"?globalThis:t$9;typeof self>"u"&&(i$b.self=i$b),typeof File>"u"&&(i$b.File=function(){});var e$a=Array.prototype,r$d=e$a.forEach,s$e=e$a.indexOf,n$9=i$b?.navigator,o$d=i$b?.document,a$h=i$b?.location,l$9=i$b?.fetch,u$h=i$b!=null&&i$b.XMLHttpRequest&&"withCredentials"in new i$b.XMLHttpRequest?i$b.XMLHttpRequest:void 0,h$c=i$b?.AbortController,d$7=n$9?.userAgent,v$8=t$9??{},c$e={DEBUG:!1,LIB_VERSION:"1.319.0"};function f$g(ya,ma,ba,va,Ma,wl,El){try{var Sl=ya[wl](El),Cl=Sl.value}catch(Mc){return void ba(Mc)}Sl.done?ma(Cl):Promise.resolve(Cl).then(va,Ma)}function p$b(ya){return function(){var ma=this,ba=arguments;return new Promise((function(va,Ma){var wl=ya.apply(ma,ba);function El(Cl){f$g(wl,va,Ma,El,Sl,"next",Cl)}function Sl(Cl){f$g(wl,va,Ma,El,Sl,"throw",Cl)}El(void 0)}))}}function g$8(){return g$8=Object.assign?Object.assign.bind():function(ya){for(var ma=1;ma<arguments.length;ma++){var ba=arguments[ma];for(var va in ba)({}).hasOwnProperty.call(ba,va)&&(ya[va]=ba[va])}return ya},g$8.apply(null,arguments)}function _$8(ya,ma){if(ya==null)return{};var ba={};for(var va in ya)if({}.hasOwnProperty.call(ya,va)){if(ma.indexOf(va)!==-1)continue;ba[va]=ya[va]}return ba}var m$9=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y$a=function(ya,ma){if(ma===void 0&&(ma=[]),!ya)return!1;var ba=ya.toLowerCase();return m$9.concat(ma).some((va=>{var Ma=va.toLowerCase();return ba.indexOf(Ma)!==-1}))},b$9=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"];function w$9(ya,ma){return ya.indexOf(ma)!==-1}var x$6=function(ya){return ya.trim()},E$8=function(ya){return ya.replace(/^\$/,"")},S$a=Array.isArray,k$a=Object.prototype,P$9=k$a.hasOwnProperty,T$b=k$a.toString,I$9=S$a||function(ya){return T$b.call(ya)==="[object Array]"},C$c=ya=>typeof ya=="function",R$3=ya=>ya===Object(ya)&&!I$9(ya),F$8=ya=>{if(R$3(ya)){for(var ma in ya)if(P$9.call(ya,ma))return!1;return!0}return!1},M$6=ya=>ya===void 0,O$5=ya=>T$b.call(ya)=="[object String]",A$7=ya=>O$5(ya)&&ya.trim().length===0,D$b=ya=>ya===null,j$b=ya=>M$6(ya)||D$b(ya),L$7=ya=>T$b.call(ya)=="[object Number]"&&ya==ya,N$7=ya=>L$7(ya)&&ya>0,U$5=ya=>T$b.call(ya)==="[object Boolean]",z$6=ya=>ya instanceof FormData,H$8=ya=>w$9(b$9,ya);function B$6(ya){return ya===null||typeof ya!="object"}function q$7(ya,ma){return Object.prototype.toString.call(ya)==="[object "+ma+"]"}function W$5(ya){return!M$6(Event)&&(function(ma,ba){try{return ma instanceof ba}catch{return!1}})(ya,Event)}var G$6=[!0,"true",1,"1","yes"],V$7=ya=>w$9(G$6,ya),J$6=[!1,"false",0,"0","no"];function K$6(ya,ma,ba,va,Ma){return ma>ba&&(va.warn("min cannot be greater than max."),ma=ba),L$7(ya)?ya>ba?(va.warn(" cannot be greater than max: "+ba+". Using max value instead."),ba):ya<ma?(va.warn(" cannot be less than min: "+ma+". Using min value instead."),ma):ya:(va.warn(" must be a number. using max or fallback. max: "+ba+", fallback: "+Ma),K$6(Ma||ba,ma,ba,va))}let Y$3=class{constructor(ma){this.t={},this.i=ma.i,this.o=K$6(ma.bucketSize,0,100,ma.h),this.m=K$6(ma.refillRate,0,this.o,ma.h),this.$=K$6(ma.refillInterval,0,864e5,ma.h)}S(ma,ba){var va=ba-ma.lastAccess,Ma=Math.floor(va/this.$);if(Ma>0){var wl=Ma*this.m;ma.tokens=Math.min(ma.tokens+wl,this.o),ma.lastAccess=ma.lastAccess+Ma*this.$}}consumeRateLimit(ma){var ba,va=Date.now(),Ma=String(ma),wl=this.t[Ma];return wl?this.S(wl,va):(wl={tokens:this.o,lastAccess:va},this.t[Ma]=wl),wl.tokens===0||(wl.tokens--,wl.tokens===0&&((ba=this.i)==null||ba.call(this,ma)),wl.tokens===0)}stop(){this.t={}}};var X$5="Mobile",Q$6="iOS",Z$5="Android",tt$1="Tablet",it=Z$5+" "+tt$1,et="iPad",rt="Apple",st=rt+" Watch",nt="Safari",ot="BlackBerry",at="Samsung",lt=at+"Browser",ut=at+" Internet",ht$1="Chrome",dt$1=ht$1+" OS",vt$1=ht$1+" "+Q$6,ct="Internet Explorer",ft=ct+" "+X$5,pt="Opera",gt$1=pt+" Mini",_t$1="Edge",mt="Microsoft "+_t$1,yt="Firefox",bt=yt+" "+Q$6,wt$1="Nintendo",xt="PlayStation",Et$1="Xbox",$t=Z$5+" "+X$5,St$1=X$5+" "+nt,kt$1="Windows",Pt$1=kt$1+" Phone",Tt="Nokia",It$1="Ouya",Ct$1="Generic",Rt$1=Ct$1+" "+X$5.toLowerCase(),Ft$2=Ct$1+" "+tt$1.toLowerCase(),Mt$1="Konqueror",Ot="(\\d+(\\.\\d+)?)",At$1=new RegExp("Version/"+Ot),Dt$1=new RegExp(Et$1,"i"),jt=new RegExp(xt+" \\w+","i"),Lt=new RegExp(wt$1+" \\w+","i"),Nt=new RegExp(ot+"|PlayBook|BB10","i"),Ut={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},zt,Ht,Bt$1,qt=(ya,ma)=>ma&&w$9(ma,rt)||(function(ba){return w$9(ba,nt)&&!w$9(ba,ht$1)&&!w$9(ba,Z$5)})(ya),Wt=function(ya,ma){return ma=ma||"",w$9(ya," OPR/")&&w$9(ya,"Mini")?gt$1:w$9(ya," OPR/")?pt:Nt.test(ya)?ot:w$9(ya,"IE"+X$5)||w$9(ya,"WPDesktop")?ft:w$9(ya,lt)?ut:w$9(ya,_t$1)||w$9(ya,"Edg/")?mt:w$9(ya,"FBIOS")?"Facebook "+X$5:w$9(ya,"UCWEB")||w$9(ya,"UCBrowser")?"UC Browser":w$9(ya,"CriOS")?vt$1:w$9(ya,"CrMo")||w$9(ya,ht$1)?ht$1:w$9(ya,Z$5)&&w$9(ya,nt)?$t:w$9(ya,"FxiOS")?bt:w$9(ya.toLowerCase(),Mt$1.toLowerCase())?Mt$1:qt(ya,ma)?w$9(ya,X$5)?St$1:nt:w$9(ya,yt)?yt:w$9(ya,"MSIE")||w$9(ya,"Trident/")?ct:w$9(ya,"Gecko")?yt:""},Gt={[ft]:[new RegExp("rv:"+Ot)],[mt]:[new RegExp(_t$1+"?\\/"+Ot)],[ht$1]:[new RegExp("("+ht$1+"|CrMo)\\/"+Ot)],[vt$1]:[new RegExp("CriOS\\/"+Ot)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Ot)],[nt]:[At$1],[St$1]:[At$1],[pt]:[new RegExp("(Opera|OPR)\\/"+Ot)],[yt]:[new RegExp(yt+"\\/"+Ot)],[bt]:[new RegExp("FxiOS\\/"+Ot)],[Mt$1]:[new RegExp("Konqueror[:/]?"+Ot,"i")],[ot]:[new RegExp(ot+" "+Ot),At$1],[$t]:[new RegExp("android\\s"+Ot,"i")],[ut]:[new RegExp(lt+"\\/"+Ot)],[ct]:[new RegExp("(rv:|MSIE )"+Ot)],Mozilla:[new RegExp("rv:"+Ot)]},Vt=function(ya,ma){var ba=Wt(ya,ma),va=Gt[ba];if(M$6(va))return null;for(var Ma=0;Ma<va.length;Ma++){var wl=va[Ma],El=ya.match(wl);if(El)return parseFloat(El[El.length-2])}return null},Jt=[[new RegExp(Et$1+"; "+Et$1+" (.*?)[);]","i"),ya=>[Et$1,ya&&ya[1]||""]],[new RegExp(wt$1,"i"),[wt$1,""]],[new RegExp(xt,"i"),[xt,""]],[Nt,[ot,""]],[new RegExp(kt$1,"i"),(ya,ma)=>{if(/Phone/.test(ma)||/WPDesktop/.test(ma))return[Pt$1,""];if(new RegExp(X$5).test(ma)&&!/IEMobile\b/.test(ma))return[kt$1+" "+X$5,""];var ba=/Windows NT ([0-9.]+)/i.exec(ma);if(ba&&ba[1]){var va=ba[1],Ma=Ut[va]||"";return/arm/i.test(ma)&&(Ma="RT"),[kt$1,Ma]}return[kt$1,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,ya=>{if(ya&&ya[3]){var ma=[ya[3],ya[4],ya[5]||"0"];return[Q$6,ma.join(".")]}return[Q$6,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,ya=>{var ma="";return ya&&ya.length>=3&&(ma=M$6(ya[2])?ya[3]:ya[2]),["watchOS",ma]}],[new RegExp("("+Z$5+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Z$5+")","i"),ya=>{if(ya&&ya[2]){var ma=[ya[2],ya[3],ya[4]||"0"];return[Z$5,ma.join(".")]}return[Z$5,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,ya=>{var ma=["Mac OS X",""];if(ya&&ya[1]){var ba=[ya[1],ya[2],ya[3]||"0"];ma[1]=ba.join(".")}return ma}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[dt$1,""]],[/Linux|debian/i,["Linux",""]]],Kt=function(ya){return Lt.test(ya)?wt$1:jt.test(ya)?xt:Dt$1.test(ya)?Et$1:new RegExp(It$1,"i").test(ya)?It$1:new RegExp("("+Pt$1+"|WPDesktop)","i").test(ya)?Pt$1:/iPad/.test(ya)?et:/iPod/.test(ya)?"iPod Touch":/iPhone/.test(ya)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(ya)?st:Nt.test(ya)?ot:/(kobo)\s(ereader|touch)/i.test(ya)?"Kobo":new RegExp(Tt,"i").test(ya)?Tt:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(ya)||/(kf[a-z]+)( bui|\)).+silk\//i.test(ya)?"Kindle Fire":/(Android|ZTE)/i.test(ya)?new RegExp(X$5).test(ya)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(ya)||/pixel[\daxl ]{1,6}/i.test(ya)&&!/pixel c/i.test(ya)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(ya)||/lmy47v/i.test(ya)&&!/QTAQZ3/i.test(ya)?Z$5:it:new RegExp("(pda|"+X$5+")","i").test(ya)?Rt$1:new RegExp(tt$1,"i").test(ya)&&!new RegExp(tt$1+" pc","i").test(ya)?Ft$2:""},Yt=ya=>ya instanceof Error;function Xt(ya){var ma=globalThis._posthogChunkIds;if(ma){var ba=Object.keys(ma);return Bt$1&&ba.length===Ht||(Ht=ba.length,Bt$1=ba.reduce(((va,Ma)=>{zt||(zt={});var wl=zt[Ma];if(wl)va[wl[0]]=wl[1];else for(var El=ya(Ma),Sl=El.length-1;Sl>=0;Sl--){var Cl=El[Sl],Mc=Cl?.filename,dp=ma[Ma];if(Mc&&dp){va[Mc]=dp,zt[Ma]=[Mc,dp];break}}return va}),{})),Bt$1}}class Qt{constructor(ma,ba,va){va===void 0&&(va=[]),this.coercers=ma,this.stackParser=ba,this.modifiers=va}buildFromUnknown(ma,ba){ba===void 0&&(ba={});var va=ba&&ba.mechanism||{handled:!0,type:"generic"},Ma=this.buildCoercingContext(va,ba,0).apply(ma),wl=this.buildParsingContext(),El=this.parseStacktrace(Ma,wl);return{$exception_list:this.convertToExceptionList(El,va),$exception_level:"error"}}modifyFrames(ma){var ba=this;return p$b((function*(){for(var va of ma)va.stacktrace&&va.stacktrace.frames&&I$9(va.stacktrace.frames)&&(va.stacktrace.frames=yield ba.applyModifiers(va.stacktrace.frames));return ma}))()}coerceFallback(ma){var ba;return{type:"Error",value:"Unknown error",stack:(ba=ma.syntheticException)==null?void 0:ba.stack,synthetic:!0}}parseStacktrace(ma,ba){var va,Ma;return ma.cause!=null&&(va=this.parseStacktrace(ma.cause,ba)),ma.stack!=""&&ma.stack!=null&&(Ma=this.applyChunkIds(this.stackParser(ma.stack,ma.synthetic?1:0),ba.chunkIdMap)),g$8({},ma,{cause:va,stack:Ma})}applyChunkIds(ma,ba){return ma.map((va=>(va.filename&&ba&&(va.chunk_id=ba[va.filename]),va)))}applyCoercers(ma,ba){for(var va of this.coercers)if(va.match(ma))return va.coerce(ma,ba);return this.coerceFallback(ba)}applyModifiers(ma){var ba=this;return p$b((function*(){var va=ma;for(var Ma of ba.modifiers)va=yield Ma(va);return va}))()}convertToExceptionList(ma,ba){var va,Ma,wl,El={type:ma.type,value:ma.value,mechanism:{type:(va=ba.type)!==null&&va!==void 0?va:"generic",handled:(Ma=ba.handled)===null||Ma===void 0||Ma,synthetic:(wl=ma.synthetic)!==null&&wl!==void 0&&wl}};ma.stack&&(El.stacktrace={type:"raw",frames:ma.stack});var Sl=[El];return ma.cause!=null&&Sl.push(...this.convertToExceptionList(ma.cause,g$8({},ba,{handled:!0}))),Sl}buildParsingContext(){return{chunkIdMap:Xt(this.stackParser)}}buildCoercingContext(ma,ba,va){va===void 0&&(va=0);var Ma=(wl,El)=>{if(El<=4){var Sl=this.buildCoercingContext(ma,ba,El);return this.applyCoercers(wl,Sl)}};return g$8({},ba,{syntheticException:va==0?ba.syntheticException:void 0,mechanism:ma,apply:wl=>Ma(wl,va),next:wl=>Ma(wl,va+1)})}}var Zt="?";function ti(ya,ma,ba,va,Ma){var wl={platform:ya,filename:ma,function:ba==="<anonymous>"?Zt:ba,in_app:!0};return M$6(va)||(wl.lineno=va),M$6(Ma)||(wl.colno=Ma),wl}var ii=(ya,ma)=>{var ba=ya.indexOf("safari-extension")!==-1,va=ya.indexOf("safari-web-extension")!==-1;return ba||va?[ya.indexOf("@")!==-1?ya.split("@")[0]:Zt,ba?"safari-extension:"+ma:"safari-web-extension:"+ma]:[ya,ma]},ei=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ri=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,si=/\((\S*)(?::(\d+))(?::(\d+))\)/,ni=(ya,ma)=>{var ba=ei.exec(ya);if(ba){var[,va,Ma,wl]=ba;return ti(ma,va,Zt,+Ma,+wl)}var El=ri.exec(ya);if(El){if(El[2]&&El[2].indexOf("eval")===0){var Sl=si.exec(El[2]);Sl&&(El[2]=Sl[1],El[3]=Sl[2],El[4]=Sl[3])}var[Cl,Mc]=ii(El[1]||Zt,El[2]);return ti(ma,Mc,Cl,El[3]?+El[3]:void 0,El[4]?+El[4]:void 0)}},oi=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ai=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,li=(ya,ma)=>{var ba=oi.exec(ya);if(ba){if(ba[3]&&ba[3].indexOf(" > eval")>-1){var va=ai.exec(ba[3]);va&&(ba[1]=ba[1]||"eval",ba[3]=va[1],ba[4]=va[2],ba[5]="")}var Ma=ba[3],wl=ba[1]||Zt;return[wl,Ma]=ii(wl,Ma),ti(ma,Ma,wl,ba[4]?+ba[4]:void 0,ba[5]?+ba[5]:void 0)}},ui=/\(error: (.*)\)/,hi=50;function di(){return(function(ya){for(var ma=arguments.length,ba=new Array(ma>1?ma-1:0),va=1;va<ma;va++)ba[va-1]=arguments[va];return function(Ma,wl){wl===void 0&&(wl=0);for(var El=[],Sl=Ma.split(`
21263
21263
  `),Cl=wl;Cl<Sl.length;Cl++){var Mc=Sl[Cl];if(!(Mc.length>1024)){var dp=ui.test(Mc)?Mc.replace(ui,"$1"):Mc;if(!dp.match(/\S*Error: /)){for(var pp of ba){var hp=pp(dp,ya);if(hp){El.push(hp);break}}if(El.length>=hi)break}}}return(function(Ef){if(!Ef.length)return[];var Zf=Array.from(Ef);return Zf.reverse(),Zf.slice(0,hi).map((Jf=>{return g$8({},Jf,{filename:Jf.filename||(pg=Zf,pg[pg.length-1]||{}).filename,function:Jf.function||Zt});var pg}))})(El)}})("web:javascript",ni,li)}class vi{match(ma){return this.isDOMException(ma)||this.isDOMError(ma)}coerce(ma,ba){var va=O$5(ma.stack);return{type:this.getType(ma),value:this.getValue(ma),stack:va?ma.stack:void 0,cause:ma.cause?ba.next(ma.cause):void 0,synthetic:!1}}getType(ma){return this.isDOMError(ma)?"DOMError":"DOMException"}getValue(ma){var ba=ma.name||(this.isDOMError(ma)?"DOMError":"DOMException");return ma.message?ba+": "+ma.message:ba}isDOMException(ma){return q$7(ma,"DOMException")}isDOMError(ma){return q$7(ma,"DOMError")}}class ci{match(ma){return(ba=>ba instanceof Error)(ma)}coerce(ma,ba){return{type:this.getType(ma),value:this.getMessage(ma,ba),stack:this.getStack(ma),cause:ma.cause?ba.next(ma.cause):void 0,synthetic:!1}}getType(ma){return ma.name||ma.constructor.name}getMessage(ma,ba){var va=ma.message;return va.error&&typeof va.error.message=="string"?String(va.error.message):String(va)}getStack(ma){return ma.stacktrace||ma.stack||void 0}}class fi{constructor(){}match(ma){return q$7(ma,"ErrorEvent")&&ma.error!=null}coerce(ma,ba){var va,Ma=ba.apply(ma.error);return Ma||{type:"ErrorEvent",value:ma.message,stack:(va=ba.syntheticException)==null?void 0:va.stack,synthetic:!0}}}var pi=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class gi{match(ma){return typeof ma=="string"}coerce(ma,ba){var va,[Ma,wl]=this.getInfos(ma);return{type:Ma??"Error",value:wl??ma,stack:(va=ba.syntheticException)==null?void 0:va.stack,synthetic:!0}}getInfos(ma){var ba="Error",va=ma,Ma=ma.match(pi);return Ma&&(ba=Ma[1],va=Ma[2]),[ba,va]}}var _i=["fatal","error","warning","log","info","debug"];function mi(ya,ma){ma===void 0&&(ma=40);var ba=Object.keys(ya);if(ba.sort(),!ba.length)return"[object has no keys]";for(var va=ba.length;va>0;va--){var Ma=ba.slice(0,va).join(", ");if(!(Ma.length>ma))return va===ba.length||Ma.length<=ma?Ma:Ma.slice(0,ma)+"..."}return""}class yi{match(ma){return typeof ma=="object"&&ma!==null}coerce(ma,ba){var va,Ma=this.getErrorPropertyFromObject(ma);return Ma?ba.apply(Ma):{type:this.getType(ma),value:this.getValue(ma),stack:(va=ba.syntheticException)==null?void 0:va.stack,level:this.isSeverityLevel(ma.level)?ma.level:"error",synthetic:!0}}getType(ma){return W$5(ma)?ma.constructor.name:"Error"}getValue(ma){if("name"in ma&&typeof ma.name=="string"){var ba="'"+ma.name+"' captured as exception";return"message"in ma&&typeof ma.message=="string"&&(ba+=" with message: '"+ma.message+"'"),ba}if("message"in ma&&typeof ma.message=="string")return ma.message;var va=this.getObjectClassName(ma);return(va&&va!=="Object"?"'"+va+"'":"Object")+" captured as exception with keys: "+mi(ma)}isSeverityLevel(ma){return O$5(ma)&&!A$7(ma)&&_i.indexOf(ma)>=0}getErrorPropertyFromObject(ma){for(var ba in ma)if(Object.prototype.hasOwnProperty.call(ma,ba)){var va=ma[ba];if(Yt(va))return va}}getObjectClassName(ma){try{var ba=Object.getPrototypeOf(ma);return ba?ba.constructor.name:void 0}catch{return}}}class bi{match(ma){return W$5(ma)}coerce(ma,ba){var va,Ma=ma.constructor.name;return{type:Ma,value:Ma+" captured as exception with keys: "+mi(ma),stack:(va=ba.syntheticException)==null?void 0:va.stack,synthetic:!0}}}class wi{match(ma){return B$6(ma)}coerce(ma,ba){var va;return{type:"Error",value:"Primitive value captured as exception: "+String(ma),stack:(va=ba.syntheticException)==null?void 0:va.stack,synthetic:!0}}}class xi{match(ma){return q$7(ma,"PromiseRejectionEvent")}coerce(ma,ba){var va,Ma=this.getUnhandledRejectionReason(ma);return B$6(Ma)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(Ma),stack:(va=ba.syntheticException)==null?void 0:va.stack,synthetic:!0}:ba.apply(Ma)}getUnhandledRejectionReason(ma){if(B$6(ma))return ma;try{if("reason"in ma)return ma.reason;if("detail"in ma&&"reason"in ma.detail)return ma.detail.reason}catch{}return ma}}var Ei=function(ya,ma){var{debugEnabled:ba}=ma===void 0?{}:ma,va={k:function(Ma){if(t$9&&(c$e.DEBUG||v$8.POSTHOG_DEBUG||ba)&&!M$6(t$9.console)&&t$9.console){for(var wl=("__rrweb_original__"in t$9.console[Ma])?t$9.console[Ma].__rrweb_original__:t$9.console[Ma],El=arguments.length,Sl=new Array(El>1?El-1:0),Cl=1;Cl<El;Cl++)Sl[Cl-1]=arguments[Cl];wl(ya,...Sl)}},info:function(){for(var Ma=arguments.length,wl=new Array(Ma),El=0;El<Ma;El++)wl[El]=arguments[El];va.k("log",...wl)},warn:function(){for(var Ma=arguments.length,wl=new Array(Ma),El=0;El<Ma;El++)wl[El]=arguments[El];va.k("warn",...wl)},error:function(){for(var Ma=arguments.length,wl=new Array(Ma),El=0;El<Ma;El++)wl[El]=arguments[El];va.k("error",...wl)},critical:function(){for(var Ma=arguments.length,wl=new Array(Ma),El=0;El<Ma;El++)wl[El]=arguments[El];console.error(ya,...wl)},uninitializedWarning:Ma=>{va.error("You must initialize PostHog before calling "+Ma)},createLogger:(Ma,wl)=>Ei(ya+" "+Ma,wl)};return va},$i=Ei("[PostHog.js]"),Si=$i.createLogger,ki=Si("[ExternalScriptsLoader]"),Pi=(ya,ma,ba)=>{if(ya.config.disable_external_dependency_loading)return ki.warn(ma+" was requested but loading of external scripts is disabled."),ba("Loading of external scripts is disabled");var va=o$d?.querySelectorAll("script");if(va){for(var Ma,wl=function(){if(va[El].src===ma){var Cl=va[El];return Cl.__posthog_loading_callback_fired?{v:ba()}:(Cl.addEventListener("load",(Mc=>{Cl.__posthog_loading_callback_fired=!0,ba(void 0,Mc)})),Cl.onerror=Mc=>ba(Mc),{v:void 0})}},El=0;El<va.length;El++)if(Ma=wl())return Ma.v}var Sl=()=>{if(!o$d)return ba("document not found");var Cl=o$d.createElement("script");if(Cl.type="text/javascript",Cl.crossOrigin="anonymous",Cl.src=ma,Cl.onload=pp=>{Cl.__posthog_loading_callback_fired=!0,ba(void 0,pp)},Cl.onerror=pp=>ba(pp),ya.config.prepare_external_dependency_script&&(Cl=ya.config.prepare_external_dependency_script(Cl)),!Cl)return ba("prepare_external_dependency_script returned null");var Mc,dp=o$d.querySelectorAll("body > script");dp.length>0?(Mc=dp[0].parentNode)==null||Mc.insertBefore(Cl,dp[0]):o$d.body.appendChild(Cl)};o$d!=null&&o$d.body?Sl():o$d?.addEventListener("DOMContentLoaded",Sl)};v$8.__PosthogExtensions__=v$8.__PosthogExtensions__||{},v$8.__PosthogExtensions__.loadExternalDependency=(ya,ma,ba)=>{var va="/static/"+ma+".js?v="+ya.version;if(ma==="remote-config"&&(va="/array/"+ya.config.token+"/config.js"),ma==="toolbar"){var Ma=3e5;va=va+"&t="+Math.floor(Date.now()/Ma)*Ma}var wl=ya.requestRouter.endpointFor("assets",va);Pi(ya,wl,ba)},v$8.__PosthogExtensions__.loadSiteApp=(ya,ma,ba)=>{var va=ya.requestRouter.endpointFor("api",ma);Pi(ya,va,ba)};var Ti={};function Ii(ya,ma,ba){if(I$9(ya)){if(r$d&&ya.forEach===r$d)ya.forEach(ma,ba);else if("length"in ya&&ya.length===+ya.length){for(var va=0,Ma=ya.length;va<Ma;va++)if(va in ya&&ma.call(ba,ya[va],va)===Ti)return}}}function Ci(ya,ma,ba){if(!j$b(ya)){if(I$9(ya))return Ii(ya,ma,ba);if(z$6(ya)){for(var va of ya.entries())if(ma.call(ba,va[1],va[0])===Ti)return}else for(var Ma in ya)if(P$9.call(ya,Ma)&&ma.call(ba,ya[Ma],Ma)===Ti)return}}var Ri=function(ya){for(var ma=arguments.length,ba=new Array(ma>1?ma-1:0),va=1;va<ma;va++)ba[va-1]=arguments[va];return Ii(ba,(function(Ma){for(var wl in Ma)Ma[wl]!==void 0&&(ya[wl]=Ma[wl])})),ya},Fi=function(ya){for(var ma=arguments.length,ba=new Array(ma>1?ma-1:0),va=1;va<ma;va++)ba[va-1]=arguments[va];return Ii(ba,(function(Ma){Ii(Ma,(function(wl){ya.push(wl)}))})),ya};function Mi(ya){for(var ma=Object.keys(ya),ba=ma.length,va=new Array(ba);ba--;)va[ba]=[ma[ba],ya[ma[ba]]];return va}var Oi=function(ya){try{return ya()}catch{return}},Ai=function(ya){return function(){try{for(var ma=arguments.length,ba=new Array(ma),va=0;va<ma;va++)ba[va]=arguments[va];return ya.apply(this,ba)}catch(Ma){$i.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),$i.critical(Ma)}}},Di=function(ya){var ma={};return Ci(ya,(function(ba,va){(O$5(ba)&&ba.length>0||L$7(ba))&&(ma[va]=ba)})),ma};function ji(ya,ma){return ba=ya,va=wl=>O$5(wl)&&!D$b(ma)?wl.slice(0,ma):wl,Ma=new Set,(function wl(El,Sl){return El!==Object(El)?va?va(El,Sl):El:Ma.has(El)?void 0:(Ma.add(El),I$9(El)?(Cl=[],Ii(El,(Mc=>{Cl.push(wl(Mc))}))):(Cl={},Ci(El,((Mc,dp)=>{Ma.has(Mc)||(Cl[dp]=wl(Mc,dp))}))),Cl);var Cl})(ba);var ba,va,Ma}var Li=["herokuapp.com","vercel.app","netlify.app"];function Ni(ya){var ma=ya?.hostname;if(!O$5(ma))return!1;var ba=ma.split(".").slice(-2).join(".");for(var va of Li)if(ba===va)return!1;return!0}function Ui(ya,ma){for(var ba=0;ba<ya.length;ba++)if(ma(ya[ba]))return ya[ba]}function zi(ya,ma,ba,va){var{capture:Ma=!1,passive:wl=!0}=va??{};ya?.addEventListener(ma,ba,{capture:Ma,passive:wl})}var Hi="$people_distinct_id",Bi="__alias",qi="__timers",Wi="$autocapture_disabled_server_side",Gi="$heatmaps_enabled_server_side",Vi="$exception_capture_enabled_server_side",Ji="$error_tracking_suppression_rules",Ki="$error_tracking_capture_extension_exceptions",Yi="$web_vitals_enabled_server_side",Xi="$dead_clicks_enabled_server_side",Qi="$product_tours_enabled_server_side",Zi="$web_vitals_allowed_metrics",te$5="$session_recording_remote_config",ie$6="$sesid",ee$4="$session_is_sampled",re$2="$enabled_feature_flags",se$4="$early_access_features",ne$3="$feature_flag_details",oe$3="$stored_person_properties",ae$4="$stored_group_properties",le$3="$surveys",ue$2="$flag_call_reported",he$4="$user_state",de$4="$client_session_props",ve$3="$capture_rate_limit",ce$4="$initial_campaign_params",fe$2="$initial_referrer_info",pe$3="$initial_person_info",ge$4="$epp",_e$2="__POSTHOG_TOOLBAR__",me$3="$posthog_cookieless",ye$4=[Hi,Bi,"__cmpns",qi,"$session_recording_enabled_server_side",Gi,ie$6,re$2,Ji,he$4,se$4,ne$3,ae$4,oe$3,le$3,ue$2,de$4,ve$3,ce$4,fe$2,ge$4,pe$3,"$conversations_widget_session_id","$conversations_ticket_id","$conversations_widget_state","$conversations_user_traits"];function be$5(ya){return ya instanceof Element&&(ya.id===_e$2||!(ya.closest==null||!ya.closest(".toolbar-global-fade-container")))}function we$4(ya){return!!ya&&ya.nodeType===1}function xe$2(ya,ma){return!!ya&&!!ya.tagName&&ya.tagName.toLowerCase()===ma.toLowerCase()}function Ee$3(ya){return!!ya&&ya.nodeType===3}function $e$1(ya){return!!ya&&ya.nodeType===11}function Se$3(ya){return ya?x$6(ya).split(/\s+/):[]}function ke$4(ya){var ma=t$9?.location.href;return!!(ma&&ya&&ya.some((ba=>ma.match(ba))))}function Pe$1(ya){var ma="";switch(typeof ya.className){case"string":ma=ya.className;break;case"object":ma=(ya.className&&"baseVal"in ya.className?ya.className.baseVal:null)||ya.getAttribute("class")||"";break;default:ma=""}return Se$3(ma)}function Te$3(ya){return j$b(ya)?null:x$6(ya).split(/(\s+)/).filter((ma=>Ke$2(ma))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function Ie$2(ya){var ma="";return ze$1(ya)&&!He$3(ya)&&ya.childNodes&&ya.childNodes.length&&Ci(ya.childNodes,(function(ba){var va;Ee$3(ba)&&ba.textContent&&(ma+=(va=Te$3(ba.textContent))!==null&&va!==void 0?va:"")})),x$6(ma)}function Ce$4(ya){return M$6(ya.target)?ya.srcElement||null:(ma=ya.target)!=null&&ma.shadowRoot?ya.composedPath()[0]||null:ya.target||null;var ma}var Re$2=["a","button","form","input","select","textarea","label"];function Fe$3(ya,ma){if(M$6(ma))return!0;var ba,va=function(wl){if(ma.some((El=>wl.matches(El))))return{v:!0}};for(var Ma of ya)if(ba=va(Ma))return ba.v;return!1}function Me$3(ya){var ma=ya.parentNode;return!(!ma||!we$4(ma))&&ma}var Oe$6=["next","previous","prev",">","<"],Ae$2=10,De$4=[".ph-no-rageclick",".ph-no-capture"];function je$3(ya,ma){if(!t$9||Le$2(ya))return!1;var ba,va,Ma;if(U$5(ma)?(ba=!!ma&&De$4,va=void 0):(ba=(Ma=ma?.css_selector_ignorelist)!==null&&Ma!==void 0?Ma:De$4,va=ma?.content_ignorelist),ba===!1)return!1;var{targetElementList:wl}=Ne$3(ya,!1);return!(function(El,Sl){if(El===!1||M$6(El))return!1;var Cl;if(El===!0)Cl=Oe$6;else{if(!I$9(El))return!1;if(El.length>Ae$2)return $i.error("[PostHog] content_ignorelist array cannot exceed "+Ae$2+" items. Use css_selector_ignorelist for more complex matching."),!1;Cl=El.map((Mc=>Mc.toLowerCase()))}return Sl.some((Mc=>{var{safeText:dp,ariaLabel:pp}=Mc;return Cl.some((hp=>dp.includes(hp)||pp.includes(hp)))}))})(va,wl.map((El=>{var Sl;return{safeText:Ie$2(El).toLowerCase(),ariaLabel:((Sl=El.getAttribute("aria-label"))==null?void 0:Sl.toLowerCase().trim())||""}})))&&!Fe$3(wl,ba)}var Le$2=ya=>!ya||xe$2(ya,"html")||!we$4(ya),Ne$3=(ya,ma)=>{if(!t$9||Le$2(ya))return{parentIsUsefulElement:!1,targetElementList:[]};for(var ba=!1,va=[ya],Ma=ya;Ma.parentNode&&!xe$2(Ma,"body");)if($e$1(Ma.parentNode))va.push(Ma.parentNode.host),Ma=Ma.parentNode.host;else{var wl=Me$3(Ma);if(!wl)break;if(ma||Re$2.indexOf(wl.tagName.toLowerCase())>-1)ba=!0;else{var El=t$9.getComputedStyle(wl);El&&El.getPropertyValue("cursor")==="pointer"&&(ba=!0)}va.push(wl),Ma=wl}return{parentIsUsefulElement:ba,targetElementList:va}};function Ue$2(ya,ma,ba,va,Ma){var wl,El,Sl,Cl;if(ba===void 0&&(ba=void 0),!t$9||Le$2(ya)||(wl=ba)!=null&&wl.url_allowlist&&!ke$4(ba.url_allowlist)||(El=ba)!=null&&El.url_ignorelist&&ke$4(ba.url_ignorelist))return!1;if((Sl=ba)!=null&&Sl.dom_event_allowlist){var Mc=ba.dom_event_allowlist;if(Mc&&!Mc.some((Zf=>ma.type===Zf)))return!1}var{parentIsUsefulElement:dp,targetElementList:pp}=Ne$3(ya,va);if(!(function(Zf,Jf){var pg=Jf?.element_allowlist;if(M$6(pg))return!0;var hg,mg=function(yg){if(pg.some((ay=>yg.tagName.toLowerCase()===ay)))return{v:!0}};for(var gg of Zf)if(hg=mg(gg))return hg.v;return!1})(pp,ba)||!Fe$3(pp,(Cl=ba)==null?void 0:Cl.css_selector_allowlist))return!1;var hp=t$9.getComputedStyle(ya);if(hp&&hp.getPropertyValue("cursor")==="pointer"&&ma.type==="click")return!0;var Ef=ya.tagName.toLowerCase();switch(Ef){case"html":return!1;case"form":return(Ma||["submit"]).indexOf(ma.type)>=0;case"input":case"select":case"textarea":return(Ma||["change","click"]).indexOf(ma.type)>=0;default:return dp?(Ma||["click"]).indexOf(ma.type)>=0:(Ma||["click"]).indexOf(ma.type)>=0&&(Re$2.indexOf(Ef)>-1||ya.getAttribute("contenteditable")==="true")}}function ze$1(ya){for(var ma=ya;ma.parentNode&&!xe$2(ma,"body");ma=ma.parentNode){var ba=Pe$1(ma);if(w$9(ba,"ph-sensitive")||w$9(ba,"ph-no-capture"))return!1}if(w$9(Pe$1(ya),"ph-include"))return!0;var va=ya.type||"";if(O$5(va))switch(va.toLowerCase()){case"hidden":case"password":return!1}var Ma=ya.name||ya.id||"";return!(O$5(Ma)&&/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(Ma.replace(/[^a-zA-Z0-9]/g,"")))}function He$3(ya){return!!(xe$2(ya,"input")&&!["button","checkbox","submit","reset"].includes(ya.type)||xe$2(ya,"select")||xe$2(ya,"textarea")||ya.getAttribute("contenteditable")==="true")}var Be$2="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",qe$1=new RegExp("^(?:"+Be$2+")$"),We$2=new RegExp(Be$2),Ge$2="\\d{3}-?\\d{2}-?\\d{4}",Ve$1=new RegExp("^("+Ge$2+")$"),Je$1=new RegExp("("+Ge$2+")");function Ke$2(ya,ma){return ma===void 0&&(ma=!0),!(j$b(ya)||O$5(ya)&&(ya=x$6(ya),(ma?qe$1:We$2).test((ya||"").replace(/[- ]/g,""))||(ma?Ve$1:Je$1).test(ya)))}function Ye(ya){var ma=Ie$2(ya);return Ke$2(ma=(ma+" "+Xe$1(ya)).trim())?ma:""}function Xe$1(ya){var ma="";return ya&&ya.childNodes&&ya.childNodes.length&&Ci(ya.childNodes,(function(ba){var va;if(ba&&((va=ba.tagName)==null?void 0:va.toLowerCase())==="span")try{var Ma=Ie$2(ba);ma=(ma+" "+Ma).trim(),ba.childNodes&&ba.childNodes.length&&(ma=(ma+" "+Xe$1(ba)).trim())}catch(wl){$i.error("[AutoCapture]",wl)}})),ma}function Qe$1(ya){return(function(ma){var ba=ma.map((va=>{var Ma,wl,El="";if(va.tag_name&&(El+=va.tag_name),va.attr_class)for(var Sl of(va.attr_class.sort(),va.attr_class))El+="."+Sl.replace(/"/g,"");var Cl=g$8({},va.text?{text:va.text}:{},{"nth-child":(Ma=va.nth_child)!==null&&Ma!==void 0?Ma:0,"nth-of-type":(wl=va.nth_of_type)!==null&&wl!==void 0?wl:0},va.href?{href:va.href}:{},va.attr_id?{attr_id:va.attr_id}:{},va.attributes),Mc={};return Mi(Cl).sort(((dp,pp)=>{var[hp]=dp,[Ef]=pp;return hp.localeCompare(Ef)})).forEach((dp=>{var[pp,hp]=dp;return Mc[Ze$1(pp.toString())]=Ze$1(hp.toString())})),El+=":",El+=Mi(Mc).map((dp=>{var[pp,hp]=dp;return pp+'="'+hp+'"'})).join("")}));return ba.join(";")})((function(ma){return ma.map((ba=>{var va,Ma,wl={text:(va=ba.$el_text)==null?void 0:va.slice(0,400),tag_name:ba.tag_name,href:(Ma=ba.attr__href)==null?void 0:Ma.slice(0,2048),attr_class:tr$1(ba),attr_id:ba.attr__id,nth_child:ba.nth_child,nth_of_type:ba.nth_of_type,attributes:{}};return Mi(ba).filter((El=>{var[Sl]=El;return Sl.indexOf("attr__")===0})).forEach((El=>{var[Sl,Cl]=El;return wl.attributes[Sl]=Cl})),wl}))})(ya))}function Ze$1(ya){return ya.replace(/"|\\"/g,'\\"')}function tr$1(ya){var ma=ya.attr__class;return ma?I$9(ma)?ma:Se$3(ma):void 0}class ir{constructor(ma){this.disabled=ma===!1;var ba=R$3(ma)?ma:{};this.thresholdPx=ba.threshold_px||30,this.timeoutMs=ba.timeout_ms||1e3,this.clickCount=ba.click_count||3,this.clicks=[]}isRageClick(ma,ba,va){if(this.disabled)return!1;var Ma=this.clicks[this.clicks.length-1];if(Ma&&Math.abs(ma-Ma.x)+Math.abs(ba-Ma.y)<this.thresholdPx&&va-Ma.timestamp<this.timeoutMs){if(this.clicks.push({x:ma,y:ba,timestamp:va}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:ma,y:ba,timestamp:va}];return!1}}var er=ya=>{var ma=o$d?.createElement("a");return M$6(ma)?null:(ma.href=ya,ma)},rr=function(ya,ma){var ba,va;ma===void 0&&(ma="&");var Ma=[];return Ci(ya,(function(wl,El){M$6(wl)||M$6(El)||El==="undefined"||(ba=encodeURIComponent((Sl=>Sl instanceof File)(wl)?wl.name:wl.toString()),va=encodeURIComponent(El),Ma[Ma.length]=va+"="+ba)})),Ma.join(ma)},sr=function(ya,ma){for(var ba,va=((ya.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),Ma=0;Ma<va.length;Ma++){var wl=va[Ma].split("=");if(wl[0]===ma){ba=wl;break}}if(!I$9(ba)||ba.length<2)return"";var El=ba[1];try{El=decodeURIComponent(El)}catch{$i.error("Skipping decoding for malformed query param: "+El)}return El.replace(/\+/g," ")},nr=function(ya,ma,ba){if(!ya||!ma||!ma.length)return ya;for(var va=ya.split("#"),Ma=va[0]||"",wl=va[1],El=Ma.split("?"),Sl=El[1],Cl=El[0],Mc=(Sl||"").split("&"),dp=[],pp=0;pp<Mc.length;pp++){var hp=Mc[pp].split("=");I$9(hp)&&(ma.includes(hp[0])?dp.push(hp[0]+"="+ba):dp.push(Mc[pp]))}var Ef=Cl;return Sl!=null&&(Ef+="?"+dp.join("&")),wl!=null&&(Ef+="#"+wl),Ef},or=function(ya,ma){var ba=ya.match(new RegExp(ma+"=([^&]*)"));return ba?ba[1]:null},ar="$copy_autocapture",lr=Si("[AutoCapture]");function ur(ya,ma){return ma.length>ya?ma.slice(0,ya)+"...":ma}function hr(ya){if(ya.previousElementSibling)return ya.previousElementSibling;var ma=ya;do ma=ma.previousSibling;while(ma&&!we$4(ma));return ma}function dr(ya,ma,ba,va){var Ma=ya.tagName.toLowerCase(),wl={tag_name:Ma};Re$2.indexOf(Ma)>-1&&!ba&&(Ma.toLowerCase()==="a"||Ma.toLowerCase()==="button"?wl.$el_text=ur(1024,Ye(ya)):wl.$el_text=ur(1024,Ie$2(ya)));var El=Pe$1(ya);El.length>0&&(wl.classes=El.filter((function(dp){return dp!==""}))),Ci(ya.attributes,(function(dp){var pp;if((!He$3(ya)||["name","id","class","aria-label"].indexOf(dp.name)!==-1)&&(va==null||!va.includes(dp.name))&&!ma&&Ke$2(dp.value)&&(pp=dp.name,!O$5(pp)||pp.substring(0,10)!=="_ngcontent"&&pp.substring(0,7)!=="_nghost")){var hp=dp.value;dp.name==="class"&&(hp=Se$3(hp).join(" ")),wl["attr__"+dp.name]=ur(1024,hp)}}));for(var Sl=1,Cl=1,Mc=ya;Mc=hr(Mc);)Sl++,Mc.tagName===ya.tagName&&Cl++;return wl.nth_child=Sl,wl.nth_of_type=Cl,wl}function vr(ya,ma){for(var ba,va,{e:Ma,maskAllElementAttributes:wl,maskAllText:El,elementAttributeIgnoreList:Sl,elementsChainAsString:Cl}=ma,Mc=[ya],dp=ya;dp.parentNode&&!xe$2(dp,"body");)$e$1(dp.parentNode)?(Mc.push(dp.parentNode.host),dp=dp.parentNode.host):(Mc.push(dp.parentNode),dp=dp.parentNode);var pp,hp=[],Ef={},Zf=!1,Jf=!1;if(Ci(Mc,(yg=>{var ay=ze$1(yg);yg.tagName.toLowerCase()==="a"&&(Zf=yg.getAttribute("href"),Zf=ay&&Zf&&Ke$2(Zf)&&Zf),w$9(Pe$1(yg),"ph-no-capture")&&(Jf=!0),hp.push(dr(yg,wl,El,Sl));var ly=(function(cy){if(!ze$1(cy))return{};var q1={};return Ci(cy.attributes,(function(r0){if(r0.name&&r0.name.indexOf("data-ph-capture-attribute")===0){var uE=r0.name.replace("data-ph-capture-attribute-",""),V1=r0.value;uE&&V1&&Ke$2(V1)&&(q1[uE]=V1)}})),q1})(yg);Ri(Ef,ly)})),Jf)return{props:{},explicitNoCapture:Jf};if(El||(ya.tagName.toLowerCase()==="a"||ya.tagName.toLowerCase()==="button"?hp[0].$el_text=Ye(ya):hp[0].$el_text=Ie$2(ya)),Zf){var pg,hg;hp[0].attr__href=Zf;var mg=(pg=er(Zf))==null?void 0:pg.host,gg=t$9==null||(hg=t$9.location)==null?void 0:hg.host;mg&&gg&&mg!==gg&&(pp=Zf)}return{props:Ri({$event_type:Ma.type,$ce_version:1},Cl?{}:{$elements:hp},{$elements_chain:Qe$1(hp)},(ba=hp[0])!=null&&ba.$el_text?{$el_text:(va=hp[0])==null?void 0:va.$el_text}:{},pp&&Ma.type==="click"?{$external_click_url:pp}:{},Ef)}}class cr{constructor(ma){this.P=!1,this.T=null,this.I=!1,this.instance=ma,this.rageclicks=new ir(ma.config.rageclick),this.C=null}get R(){var ma,ba,va=R$3(this.instance.config.autocapture)?this.instance.config.autocapture:{};return va.url_allowlist=(ma=va.url_allowlist)==null?void 0:ma.map((Ma=>new RegExp(Ma))),va.url_ignorelist=(ba=va.url_ignorelist)==null?void 0:ba.map((Ma=>new RegExp(Ma))),va}F(){if(this.isBrowserSupported()){if(t$9&&o$d){var ma=va=>{va=va||t$9?.event;try{this.M(va)}catch(Ma){lr.error("Failed to capture event",Ma)}};if(zi(o$d,"submit",ma,{capture:!0}),zi(o$d,"change",ma,{capture:!0}),zi(o$d,"click",ma,{capture:!0}),this.R.capture_copied_text){var ba=va=>{va=va||t$9?.event,this.M(va,ar)};zi(o$d,"copy",ba,{capture:!0}),zi(o$d,"cut",ba,{capture:!0})}}}else lr.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this.P&&(this.F(),this.P=!0)}onRemoteConfig(ma){ma.elementsChainAsString&&(this.I=ma.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[Wi]:!!ma.autocapture_opt_out}),this.T=!!ma.autocapture_opt_out,this.startIfEnabled()}setElementSelectors(ma){this.C=ma}getElementSelectors(ma){var ba,va=[];return(ba=this.C)==null||ba.forEach((Ma=>{var wl=o$d?.querySelectorAll(Ma);wl?.forEach((El=>{ma===El&&va.push(Ma)}))})),va}get isEnabled(){var ma,ba,va=(ma=this.instance.persistence)==null?void 0:ma.props[Wi],Ma=this.T;if(D$b(Ma)&&!U$5(va)&&!this.instance.O())return!1;var wl=(ba=this.T)!==null&&ba!==void 0?ba:!!va;return!!this.instance.config.autocapture&&!wl}M(ma,ba){if(ba===void 0&&(ba="$autocapture"),this.isEnabled){var va,Ma=Ce$4(ma);Ee$3(Ma)&&(Ma=Ma.parentNode||null),ba==="$autocapture"&&ma.type==="click"&&ma instanceof MouseEvent&&this.instance.config.rageclick&&(va=this.rageclicks)!=null&&va.isRageClick(ma.clientX,ma.clientY,ma.timeStamp||new Date().getTime())&&je$3(Ma,this.instance.config.rageclick)&&this.M(ma,"$rageclick");var wl=ba===ar;if(Ma&&Ue$2(Ma,ma,this.R,wl,wl?["copy","cut"]:void 0)){var{props:El,explicitNoCapture:Sl}=vr(Ma,{e:ma,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.R.element_attribute_ignorelist,elementsChainAsString:this.I});if(Sl)return!1;var Cl=this.getElementSelectors(Ma);if(Cl&&Cl.length>0&&(El.$element_selectors=Cl),ba===ar){var Mc,dp=Te$3(t$9==null||(Mc=t$9.getSelection())==null?void 0:Mc.toString()),pp=ma.type||"clipboard";if(!dp)return!1;El.$selected_content=dp,El.$copy_type=pp}return this.instance.capture(ba,El),!0}}}isBrowserSupported(){return C$c(o$d?.querySelectorAll)}}Math.trunc||(Math.trunc=function(ya){return ya<0?Math.ceil(ya):Math.floor(ya)}),Number.isInteger||(Number.isInteger=function(ya){return L$7(ya)&&isFinite(ya)&&Math.floor(ya)===ya});var fr="0123456789abcdef";class pr{constructor(ma){if(this.bytes=ma,ma.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7(ma,ba,va,Ma){if(!Number.isInteger(ma)||!Number.isInteger(ba)||!Number.isInteger(va)||!Number.isInteger(Ma)||ma<0||ba<0||va<0||Ma<0||ma>0xffffffffffff||ba>4095||va>1073741823||Ma>4294967295)throw new RangeError("invalid field value");var wl=new Uint8Array(16);return wl[0]=ma/Math.pow(2,40),wl[1]=ma/Math.pow(2,32),wl[2]=ma/Math.pow(2,24),wl[3]=ma/Math.pow(2,16),wl[4]=ma/Math.pow(2,8),wl[5]=ma,wl[6]=112|ba>>>8,wl[7]=ba,wl[8]=128|va>>>24,wl[9]=va>>>16,wl[10]=va>>>8,wl[11]=va,wl[12]=Ma>>>24,wl[13]=Ma>>>16,wl[14]=Ma>>>8,wl[15]=Ma,new pr(wl)}toString(){for(var ma="",ba=0;ba<this.bytes.length;ba++)ma=ma+fr.charAt(this.bytes[ba]>>>4)+fr.charAt(15&this.bytes[ba]),ba!==3&&ba!==5&&ba!==7&&ba!==9||(ma+="-");if(ma.length!==36)throw new Error("Invalid UUIDv7 was generated");return ma}clone(){return new pr(this.bytes.slice(0))}equals(ma){return this.compareTo(ma)===0}compareTo(ma){for(var ba=0;ba<16;ba++){var va=this.bytes[ba]-ma.bytes[ba];if(va!==0)return Math.sign(va)}return 0}}class gr{constructor(){this.A=0,this.D=0,this.j=new yr}generate(){var ma=this.generateOrAbort();if(M$6(ma)){this.A=0;var ba=this.generateOrAbort();if(M$6(ba))throw new Error("Could not generate UUID after timestamp reset");return ba}return ma}generateOrAbort(){var ma=Date.now();if(ma>this.A)this.A=ma,this.L();else{if(!(ma+1e4>this.A))return;this.D++,this.D>4398046511103&&(this.A++,this.L())}return pr.fromFieldsV7(this.A,Math.trunc(this.D/Math.pow(2,30)),this.D&Math.pow(2,30)-1,this.j.nextUint32())}L(){this.D=1024*this.j.nextUint32()+(1023&this.j.nextUint32())}}var _r,mr=ya=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var ma=0;ma<ya.length;ma++)ya[ma]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return ya};t$9&&!M$6(t$9.crypto)&&crypto.getRandomValues&&(mr=ya=>crypto.getRandomValues(ya));class yr{constructor(){this.N=new Uint32Array(8),this.U=1/0}nextUint32(){return this.U>=this.N.length&&(mr(this.N),this.U=0),this.N[this.U++]}}var br=()=>wr().toString(),wr=()=>(_r||(_r=new gr)).generate(),xr="",Er=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;function $r(ya,ma){if(ma){var ba=(function(Ma,wl){if(wl===void 0&&(wl=o$d),xr)return xr;if(!wl||["localhost","127.0.0.1"].includes(Ma))return"";for(var El=Ma.split("."),Sl=Math.min(El.length,8),Cl="dmn_chk_"+br();!xr&&Sl--;){var Mc=El.slice(Sl).join("."),dp=Cl+"=1;domain=."+Mc+";path=/";wl.cookie=dp+";max-age=3",wl.cookie.includes(Cl)&&(wl.cookie=dp+";max-age=0",xr=Mc)}return xr})(ya);if(!ba){var va=(Ma=>{var wl=Ma.match(Er);return wl?wl[0]:""})(ya);va!==ba&&$i.info("Warning: cookie subdomain discovery mismatch",va,ba),ba=va}return ba?"; domain=."+ba:""}return""}var Sr={H:()=>!!o$d,B:function(ya){$i.error("cookieStore error: "+ya)},q:function(ya){if(o$d){try{for(var ma=ya+"=",ba=o$d.cookie.split(";").filter((wl=>wl.length)),va=0;va<ba.length;va++){for(var Ma=ba[va];Ma.charAt(0)==" ";)Ma=Ma.substring(1,Ma.length);if(Ma.indexOf(ma)===0)return decodeURIComponent(Ma.substring(ma.length,Ma.length))}}catch{}return null}},W:function(ya){var ma;try{ma=JSON.parse(Sr.q(ya))||{}}catch{}return ma},G:function(ya,ma,ba,va,Ma){if(o$d)try{var wl="",El="",Sl=$r(o$d.location.hostname,va);if(ba){var Cl=new Date;Cl.setTime(Cl.getTime()+24*ba*60*60*1e3),wl="; expires="+Cl.toUTCString()}Ma&&(El="; secure");var Mc=ya+"="+encodeURIComponent(JSON.stringify(ma))+wl+"; SameSite=Lax; path=/"+Sl+El;return Mc.length>3686.4&&$i.warn("cookieStore warning: large cookie, len="+Mc.length),o$d.cookie=Mc,Mc}catch{return}},V:function(ya,ma){if(o$d!=null&&o$d.cookie)try{Sr.G(ya,"",-1,ma)}catch{return}}},kr=null,Pr={H:function(){if(!D$b(kr))return kr;var ya=!0;if(M$6(t$9))ya=!1;else try{var ma="__mplssupport__";Pr.G(ma,"xyz"),Pr.q(ma)!=='"xyz"'&&(ya=!1),Pr.V(ma)}catch{ya=!1}return ya||$i.error("localStorage unsupported; falling back to cookie store"),kr=ya,ya},B:function(ya){$i.error("localStorage error: "+ya)},q:function(ya){try{return t$9?.localStorage.getItem(ya)}catch(ma){Pr.B(ma)}return null},W:function(ya){try{return JSON.parse(Pr.q(ya))||{}}catch{}return null},G:function(ya,ma){try{t$9?.localStorage.setItem(ya,JSON.stringify(ma))}catch(ba){Pr.B(ba)}},V:function(ya){try{t$9?.localStorage.removeItem(ya)}catch(ma){Pr.B(ma)}}},Tr=["$device_id","distinct_id",ie$6,ee$4,ge$4,pe$3],Ir={},Cr={H:function(){return!0},B:function(ya){$i.error("memoryStorage error: "+ya)},q:function(ya){return Ir[ya]||null},W:function(ya){return Ir[ya]||null},G:function(ya,ma){Ir[ya]=ma},V:function(ya){delete Ir[ya]}},Rr=null,Fr={H:function(){if(!D$b(Rr))return Rr;if(Rr=!0,M$6(t$9))Rr=!1;else try{var ya="__support__";Fr.G(ya,"xyz"),Fr.q(ya)!=='"xyz"'&&(Rr=!1),Fr.V(ya)}catch{Rr=!1}return Rr},B:function(ya){$i.error("sessionStorage error: ",ya)},q:function(ya){try{return t$9?.sessionStorage.getItem(ya)}catch(ma){Fr.B(ma)}return null},W:function(ya){try{return JSON.parse(Fr.q(ya))||null}catch{}return null},G:function(ya,ma){try{t$9?.sessionStorage.setItem(ya,JSON.stringify(ma))}catch(ba){Fr.B(ba)}},V:function(ya){try{t$9?.sessionStorage.removeItem(ya)}catch(ma){Fr.B(ma)}}},Mr=(function(ya){return ya[ya.PENDING=-1]="PENDING",ya[ya.DENIED=0]="DENIED",ya[ya.GRANTED=1]="GRANTED",ya})({});class Or{constructor(ma){this._instance=ma}get R(){return this._instance.config}get consent(){return this.J()?Mr.DENIED:this.K}isOptedOut(){return this.R.cookieless_mode==="always"||this.consent===Mr.DENIED||this.consent===Mr.PENDING&&(this.R.opt_out_capturing_by_default||this.R.cookieless_mode==="on_reject")}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===Mr.DENIED}optInOut(ma){this.Y.G(this.X,ma?1:0,this.R.cookie_expiration,this.R.cross_subdomain_cookie,this.R.secure_cookie)}reset(){this.Y.V(this.X,this.R.cross_subdomain_cookie)}get X(){var{token:ma,opt_out_capturing_cookie_prefix:ba,consent_persistence_name:va}=this._instance.config;return va||(ba?ba+ma:"__ph_opt_in_out_"+ma)}get K(){var ma=this.Y.q(this.X);return V$7(ma)?Mr.GRANTED:w$9(J$6,ma)?Mr.DENIED:Mr.PENDING}get Y(){if(!this.Z){var ma=this.R.opt_out_capturing_persistence_type;this.Z=ma==="localStorage"?Pr:Sr;var ba=ma==="localStorage"?Sr:Pr;ba.q(this.X)&&(this.Z.q(this.X)||this.optInOut(V$7(ba.q(this.X))),ba.V(this.X,this.R.cross_subdomain_cookie))}return this.Z}J(){return!!this.R.respect_dnt&&!!Ui([n$9?.doNotTrack,n$9?.msDoNotTrack,v$8.doNotTrack],(ma=>V$7(ma)))}}var Ar=Si("[Dead Clicks]"),Dr=()=>!0,jr=ya=>{var ma,ba=!((ma=ya.instance.persistence)==null||!ma.get_property(Xi)),va=ya.instance.config.capture_dead_clicks;return U$5(va)?va:!!R$3(va)||ba};class Lr{get lazyLoadedDeadClicksAutocapture(){return this.tt}constructor(ma,ba,va){this.instance=ma,this.isEnabled=ba,this.onCapture=va,this.startIfEnabled()}onRemoteConfig(ma){this.instance.persistence&&this.instance.persistence.register({[Xi]:ma?.captureDeadClicks}),this.startIfEnabled()}startIfEnabled(){this.isEnabled(this)&&this.it((()=>{this.et()}))}it(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.initDeadClicksAutocapture&&ma(),(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this.instance,"dead-clicks-autocapture",(Ma=>{Ma?Ar.error("failed to load script",Ma):ma()}))}et(){var ma;if(o$d){if(!this.tt&&(ma=v$8.__PosthogExtensions__)!=null&&ma.initDeadClicksAutocapture){var ba=R$3(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};ba.__onCapture=this.onCapture,this.tt=v$8.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,ba),this.tt.start(o$d),Ar.info("starting...")}}else Ar.error("`document` not found. Cannot start.")}stop(){this.tt&&(this.tt.stop(),this.tt=void 0,Ar.info("stopping..."))}}var Nr=Si("[ExceptionAutocapture]");class Ur{constructor(ma){var ba,va,Ma;this.rt=()=>{var wl;if(t$9&&this.isEnabled&&(wl=v$8.__PosthogExtensions__)!=null&&wl.errorWrappingFunctions){var El=v$8.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,Sl=v$8.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,Cl=v$8.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.st&&this.R.capture_unhandled_errors&&(this.st=El(this.captureException.bind(this))),!this.nt&&this.R.capture_unhandled_rejections&&(this.nt=Sl(this.captureException.bind(this))),!this.ot&&this.R.capture_console_errors&&(this.ot=Cl(this.captureException.bind(this)))}catch(Mc){Nr.error("failed to start",Mc),this.ut()}}},this._instance=ma,this.ht=!((ba=this._instance.persistence)==null||!ba.props[Vi]),this.dt=new Y$3({refillRate:(va=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&va!==void 0?va:1,bucketSize:(Ma=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&Ma!==void 0?Ma:10,refillInterval:1e4,h:Nr}),this.R=this.vt(),this.startIfEnabledOrStop()}vt(){var ma=this._instance.config.capture_exceptions,ba={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return R$3(ma)?ba=g$8({},ba,ma):(M$6(ma)?this.ht:ma)&&(ba=g$8({},ba,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),ba}get isEnabled(){return this.R.capture_console_errors||this.R.capture_unhandled_errors||this.R.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(Nr.info("enabled"),this.ut(),this.it(this.rt)):this.ut()}it(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.errorWrappingFunctions&&ma(),(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,"exception-autocapture",(Ma=>{if(Ma)return Nr.error("failed to load script",Ma);ma()}))}ut(){var ma,ba,va;(ma=this.st)==null||ma.call(this),this.st=void 0,(ba=this.nt)==null||ba.call(this),this.nt=void 0,(va=this.ot)==null||va.call(this),this.ot=void 0}onRemoteConfig(ma){var ba=ma.autocaptureExceptions;this.ht=!!ba||!1,this._instance.persistence&&this._instance.persistence.register({[Vi]:this.ht}),this.R=this.vt(),this.startIfEnabledOrStop()}onConfigChange(){this.R=this.vt()}captureException(ma){var ba,va,Ma=(ba=ma==null||(va=ma.$exception_list)==null||(va=va[0])==null?void 0:va.type)!==null&&ba!==void 0?ba:"Exception";this.dt.consumeRateLimit(Ma)?Nr.info("Skipping exception capture because of client rate limiting.",{exception:Ma}):this._instance.exceptions.sendExceptionEvent(ma)}}function zr(ya,ma,ba){try{if(!(ma in ya))return()=>{};var va=ya[ma],Ma=ba(va);return C$c(Ma)&&(Ma.prototype=Ma.prototype||{},Object.defineProperties(Ma,{__posthog_wrapped__:{enumerable:!1,value:!0}})),ya[ma]=Ma,()=>{ya[ma]=va}}catch{return()=>{}}}class Hr{constructor(ma){var ba;this._instance=ma,this.ct=(t$9==null||(ba=t$9.location)==null?void 0:ba.pathname)||""}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&($i.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.ft&&this.ft(),this.ft=void 0,$i.info("History API monitoring stopped")}monitorHistoryChanges(){var ma,ba;if(t$9&&t$9.history){var va=this;(ma=t$9.history.pushState)!=null&&ma.__posthog_wrapped__||zr(t$9.history,"pushState",(Ma=>function(wl,El,Sl){Ma.call(this,wl,El,Sl),va._t("pushState")})),(ba=t$9.history.replaceState)!=null&&ba.__posthog_wrapped__||zr(t$9.history,"replaceState",(Ma=>function(wl,El,Sl){Ma.call(this,wl,El,Sl),va._t("replaceState")})),this.yt()}}_t(ma){try{var ba,va=t$9==null||(ba=t$9.location)==null?void 0:ba.pathname;if(!va)return;va!==this.ct&&this.isEnabled&&this._instance.capture("$pageview",{navigation_type:ma}),this.ct=va}catch(Ma){$i.error("Error capturing "+ma+" pageview",Ma)}}yt(){if(!this.ft){var ma=()=>{this._t("popstate")};zi(t$9,"popstate",ma),this.ft=()=>{t$9&&t$9.removeEventListener("popstate",ma)}}}}var Br=Si("[SegmentIntegration]");function qr(ya,ma){var ba=ya.config.segment;if(!ba)return ma();(function(va,Ma){var wl=va.config.segment;if(!wl)return Ma();var El=Cl=>{var Mc=()=>Cl.anonymousId()||br();va.config.get_device_id=Mc,Cl.id()&&(va.register({distinct_id:Cl.id(),$device_id:Mc()}),va.persistence.set_property(he$4,"identified")),Ma()},Sl=wl.user();"then"in Sl&&C$c(Sl.then)?Sl.then(El):El(Sl)})(ya,(()=>{ba.register((va=>{Promise&&Promise.resolve||Br.warn("This browser does not have Promise support, and can not use the segment integration");var Ma=(wl,El)=>{if(!El)return wl;wl.event.userId||wl.event.anonymousId===va.get_distinct_id()||(Br.info("No userId set, resetting PostHog"),va.reset()),wl.event.userId&&wl.event.userId!==va.get_distinct_id()&&(Br.info("UserId set, identifying with PostHog"),va.identify(wl.event.userId));var Sl=va.calculateEventProperties(El,wl.event.properties);return wl.event.properties=Object.assign({},Sl,wl.event.properties),wl};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:wl=>Ma(wl,wl.event.event),page:wl=>Ma(wl,"$pageview"),identify:wl=>Ma(wl,"$identify"),screen:wl=>Ma(wl,"$screen")}})(ya)).then((()=>{ma()}))}))}var Wr="posthog-js";function Gr(ya,ma){var{organization:ba,projectId:va,prefix:Ma,severityAllowList:wl=["error"],sendExceptionsToPostHog:El=!0}=ma===void 0?{}:ma;return Sl=>{var Cl,Mc,dp,pp,hp;if(!(wl==="*"||wl.includes(Sl.level))||!ya.__loaded)return Sl;Sl.tags||(Sl.tags={});var Ef=ya.requestRouter.endpointFor("ui","/project/"+ya.config.token+"/person/"+ya.get_distinct_id());Sl.tags["PostHog Person URL"]=Ef,ya.sessionRecordingStarted()&&(Sl.tags["PostHog Recording URL"]=ya.get_session_replay_url({withTimestamp:!0}));var Zf=((Cl=Sl.exception)==null?void 0:Cl.values)||[],Jf=Zf.map((hg=>g$8({},hg,{stacktrace:hg.stacktrace?g$8({},hg.stacktrace,{type:"raw",frames:(hg.stacktrace.frames||[]).map((mg=>g$8({},mg,{platform:"web:javascript"})))}):void 0}))),pg={$exception_message:((Mc=Zf[0])==null?void 0:Mc.value)||Sl.message,$exception_type:(dp=Zf[0])==null?void 0:dp.type,$exception_level:Sl.level,$exception_list:Jf,$sentry_event_id:Sl.event_id,$sentry_exception:Sl.exception,$sentry_exception_message:((pp=Zf[0])==null?void 0:pp.value)||Sl.message,$sentry_exception_type:(hp=Zf[0])==null?void 0:hp.type,$sentry_tags:Sl.tags};return ba&&va&&(pg.$sentry_url=(Ma||"https://sentry.io/organizations/")+ba+"/issues/?project="+va+"&query="+Sl.event_id),El&&ya.exceptions.sendExceptionEvent(pg),Sl}}class Vr{constructor(ma,ba,va,Ma,wl,El){this.name=Wr,this.setupOnce=function(Sl){Sl(Gr(ma,{organization:ba,projectId:va,prefix:Ma,severityAllowList:wl,sendExceptionsToPostHog:El==null||El}))}}}var Jr=t$9!=null&&t$9.location?or(t$9.location.hash,"__posthog")||or(location.hash,"state"):null,Kr="_postHogToolbarParams",Yr=Si("[Toolbar]"),Xr=(function(ya){return ya[ya.UNINITIALIZED=0]="UNINITIALIZED",ya[ya.LOADING=1]="LOADING",ya[ya.LOADED=2]="LOADED",ya})(Xr||{});class Qr{constructor(ma){this.instance=ma}bt(ma){v$8.ph_toolbar_state=ma}wt(){var ma;return(ma=v$8.ph_toolbar_state)!==null&&ma!==void 0?ma:Xr.UNINITIALIZED}maybeLoadToolbar(ma,ba,va){if(ma===void 0&&(ma=void 0),ba===void 0&&(ba=void 0),va===void 0&&(va=void 0),!t$9||!o$d)return!1;ma=ma??t$9.location,va=va??t$9.history;try{if(!ba){try{t$9.localStorage.setItem("test","test"),t$9.localStorage.removeItem("test")}catch{return!1}ba=t$9?.localStorage}var Ma,wl=Jr||or(ma.hash,"__posthog")||or(ma.hash,"state"),El=wl?Oi((()=>JSON.parse(atob(decodeURIComponent(wl)))))||Oi((()=>JSON.parse(decodeURIComponent(wl)))):null;return El&&El.action==="ph_authorize"?((Ma=El).source="url",Ma&&Object.keys(Ma).length>0&&(El.desiredHash?ma.hash=El.desiredHash:va?va.replaceState(va.state,"",ma.pathname+ma.search):ma.hash="")):((Ma=JSON.parse(ba.getItem(Kr)||"{}")).source="localstorage",delete Ma.userIntent),!(!Ma.token||this.instance.config.token!==Ma.token)&&(this.loadToolbar(Ma),!0)}catch{return!1}}xt(ma){var ba=v$8.ph_load_toolbar||v$8.ph_load_editor;!j$b(ba)&&C$c(ba)?ba(ma,this.instance):Yr.warn("No toolbar load function found")}loadToolbar(ma){var ba=!(o$d==null||!o$d.getElementById(_e$2));if(!t$9||ba)return!1;var va=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,Ma=g$8({token:this.instance.config.token},ma,{apiURL:this.instance.requestRouter.endpointFor("ui")},va?{instrument:!1}:{});if(t$9.localStorage.setItem(Kr,JSON.stringify(g$8({},Ma,{source:void 0}))),this.wt()===Xr.LOADED)this.xt(Ma);else if(this.wt()===Xr.UNINITIALIZED){var wl;this.bt(Xr.LOADING),(wl=v$8.__PosthogExtensions__)==null||wl.loadExternalDependency==null||wl.loadExternalDependency(this.instance,"toolbar",(El=>{if(El)return Yr.error("[Toolbar] Failed to load",El),void this.bt(Xr.UNINITIALIZED);this.bt(Xr.LOADED),this.xt(Ma)})),zi(t$9,"turbolinks:load",(()=>{this.bt(Xr.UNINITIALIZED),this.loadToolbar(Ma)}))}return!0}Et(ma){return this.loadToolbar(ma)}maybeLoadEditor(ma,ba,va){return ma===void 0&&(ma=void 0),ba===void 0&&(ba=void 0),va===void 0&&(va=void 0),this.maybeLoadToolbar(ma,ba,va)}}var Zr=Si("[TracingHeaders]");let ts$1=class{constructor(ma){this.$t=void 0,this.St=void 0,this.rt=()=>{var ba,va;M$6(this.$t)&&((ba=v$8.__PosthogExtensions__)==null||(ba=ba.tracingHeadersPatchFns)==null||ba._patchXHR(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager)),M$6(this.St)&&((va=v$8.__PosthogExtensions__)==null||(va=va.tracingHeadersPatchFns)==null||va._patchFetch(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=ma}it(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.tracingHeadersPatchFns&&ma(),(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,"tracing-headers",(Ma=>{if(Ma)return Zr.error("failed to load script",Ma);ma()}))}startIfEnabledOrStop(){var ma,ba;this._instance.config.__add_tracing_headers?this.it(this.rt):((ma=this.$t)==null||ma.call(this),(ba=this.St)==null||ba.call(this),this.$t=void 0,this.St=void 0)}};var is="https?://(.*)",es=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],rs=Fi(["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid"],es),ss="<masked>",ns=["li_fat_id"];function os$1(ya,ma,ba){if(!o$d)return{};var va,Ma=ma?Fi([],es,ba||[]):[],wl=as(nr(o$d.URL,Ma,ss),ya),El=(va={},Ci(ns,(function(Sl){var Cl=Sr.q(Sl);va[Sl]=Cl||null})),va);return Ri(El,wl)}function as(ya,ma){var ba=rs.concat(ma||[]),va={};return Ci(ba,(function(Ma){var wl=sr(ya,Ma);va[Ma]=wl||null})),va}function ls(ya){var ma=(function(wl){return wl?wl.search(is+"google.([^/?]*)")===0?"google":wl.search(is+"bing.com")===0?"bing":wl.search(is+"yahoo.com")===0?"yahoo":wl.search(is+"duckduckgo.com")===0?"duckduckgo":null:null})(ya),ba=ma!="yahoo"?"q":"p",va={};if(!D$b(ma)){va.$search_engine=ma;var Ma=o$d?sr(o$d.referrer,ba):"";Ma.length&&(va.ph_keyword=Ma)}return va}function us(){return navigator.language||navigator.userLanguage}function hs(){return o$d?.referrer||"$direct"}function ds(ya,ma){var ba=ya?Fi([],es,ma||[]):[],va=a$h?.href.substring(0,1e3);return{r:hs().substring(0,1e3),u:va?nr(va,ba,ss):void 0}}function vs(ya){var ma,{r:ba,u:va}=ya,Ma={$referrer:ba,$referring_domain:ba==null?void 0:ba=="$direct"?"$direct":(ma=er(ba))==null?void 0:ma.host};if(va){Ma.$current_url=va;var wl=er(va);Ma.$host=wl?.host,Ma.$pathname=wl?.pathname;var El=as(va);Ri(Ma,El)}if(ba){var Sl=ls(ba);Ri(Ma,Sl)}return Ma}function cs(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function fs(){try{return new Date().getTimezoneOffset()}catch{return}}function ps(ya,ma){if(!d$7)return{};var ba,va,Ma,wl=ya?Fi([],es,ma||[]):[],[El,Sl]=(function(Cl){for(var Mc=0;Mc<Jt.length;Mc++){var[dp,pp]=Jt[Mc],hp=dp.exec(Cl),Ef=hp&&(C$c(pp)?pp(hp,Cl):pp);if(Ef)return Ef}return["",""]})(d$7);return Ri(Di({$os:El,$os_version:Sl,$browser:Wt(d$7,navigator.vendor),$device:Kt(d$7),$device_type:(va=d$7,Ma=Kt(va),Ma===et||Ma===it||Ma==="Kobo"||Ma==="Kindle Fire"||Ma===Ft$2?tt$1:Ma===wt$1||Ma===Et$1||Ma===xt||Ma===It$1?"Console":Ma===st?"Wearable":Ma?X$5:"Desktop"),$timezone:cs(),$timezone_offset:fs()}),{$current_url:nr(a$h?.href,wl,ss),$host:a$h?.host,$pathname:a$h?.pathname,$raw_user_agent:d$7.length>1e3?d$7.substring(0,997)+"...":d$7,$browser_version:Vt(d$7,navigator.vendor),$browser_language:us(),$browser_language_prefix:(ba=us(),typeof ba=="string"?ba.split("-")[0]:void 0),$screen_height:t$9?.screen.height,$screen_width:t$9?.screen.width,$viewport_height:t$9?.innerHeight,$viewport_width:t$9?.innerWidth,$lib:"web",$lib_version:c$e.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})}var gs=Si("[Web Vitals]"),_s=9e5;class ms{constructor(ma){var ba;this.kt=!1,this.P=!1,this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.Pt=()=>{clearTimeout(this.Tt),this.N.metrics.length!==0&&(this._instance.capture("$web_vitals",this.N.metrics.reduce(((va,Ma)=>g$8({},va,{["$web_vitals_"+Ma.name+"_event"]:g$8({},Ma),["$web_vitals_"+Ma.name+"_value"]:Ma.value})),{})),this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.It=va=>{var Ma,wl=(Ma=this._instance.sessionManager)==null?void 0:Ma.checkAndGetSessionAndWindowId(!0);if(M$6(wl))gs.error("Could not read session ID. Dropping metrics!");else{this.N=this.N||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var El=this.Ct();M$6(El)||(j$b(va?.name)||j$b(va?.value)?gs.error("Invalid metric received",va):this.Rt&&va.value>=this.Rt?gs.error("Ignoring metric with value >= "+this.Rt,va):(this.N.url!==El&&(this.Pt(),this.Tt=setTimeout(this.Pt,this.flushToCaptureTimeoutMs)),M$6(this.N.url)&&(this.N.url=El),this.N.firstMetricTimestamp=M$6(this.N.firstMetricTimestamp)?Date.now():this.N.firstMetricTimestamp,va.attribution&&va.attribution.interactionTargetElement&&(va.attribution.interactionTargetElement=void 0),this.N.metrics.push(g$8({},va,{$current_url:El,$session_id:wl.sessionId,$window_id:wl.windowId,timestamp:Date.now()})),this.N.metrics.length===this.allowedMetrics.length&&this.Pt()))}},this.rt=()=>{var va,Ma,wl,El,Sl=v$8.__PosthogExtensions__;M$6(Sl)||M$6(Sl.postHogWebVitalsCallbacks)||({onLCP:va,onCLS:Ma,onFCP:wl,onINP:El}=Sl.postHogWebVitalsCallbacks),va&&Ma&&wl&&El?(this.allowedMetrics.indexOf("LCP")>-1&&va(this.It.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&Ma(this.It.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&wl(this.It.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&El(this.It.bind(this)),this.P=!0):gs.error("web vitals callbacks not loaded - not starting")},this._instance=ma,this.kt=!((ba=this._instance.persistence)==null||!ba.props[Yi]),this.startIfEnabled()}get allowedMetrics(){var ma,ba,va=R$3(this._instance.config.capture_performance)?(ma=this._instance.config.capture_performance)==null?void 0:ma.web_vitals_allowed_metrics:void 0;return M$6(va)?((ba=this._instance.persistence)==null?void 0:ba.props[Zi])||["CLS","FCP","INP","LCP"]:va}get flushToCaptureTimeoutMs(){return(R$3(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals_delayed_flush_ms:void 0)||5e3}get Rt(){var ma=R$3(this._instance.config.capture_performance)&&L$7(this._instance.config.capture_performance.__web_vitals_max_value)?this._instance.config.capture_performance.__web_vitals_max_value:_s;return 0<ma&&ma<=6e4?_s:ma}get isEnabled(){var ma=a$h?.protocol;if(ma!=="http:"&&ma!=="https:")return gs.info("Web Vitals are disabled on non-http/https protocols"),!1;var ba=R$3(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals:U$5(this._instance.config.capture_performance)?this._instance.config.capture_performance:void 0;return U$5(ba)?ba:this.kt}startIfEnabled(){this.isEnabled&&!this.P&&(gs.info("enabled, starting..."),this.it(this.rt))}onRemoteConfig(ma){var ba=R$3(ma.capturePerformance)&&!!ma.capturePerformance.web_vitals,va=R$3(ma.capturePerformance)?ma.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[Yi]:ba}),this._instance.persistence.register({[Zi]:va})),this.kt=ba,this.startIfEnabled()}it(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.postHogWebVitalsCallbacks&&ma(),(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,"web-vitals",(Ma=>{Ma?gs.error("failed to load script",Ma):ma()}))}Ct(){var ma=t$9?t$9.location.href:void 0;if(ma){var ba=this._instance.config.mask_personal_data_properties,va=this._instance.config.custom_personal_data_properties,Ma=ba?Fi([],es,va||[]):[];return nr(ma,Ma,ss)}gs.error("Could not determine current URL")}}var ys=Si("[Heatmaps]");function bs(ya){return R$3(ya)&&"clientX"in ya&&"clientY"in ya&&L$7(ya.clientX)&&L$7(ya.clientY)}class ws{constructor(ma){var ba;this.kt=!1,this.P=!1,this.Ft=null,this.instance=ma,this.kt=!((ba=this.instance.persistence)==null||!ba.props[Gi]),this.rageclicks=new ir(ma.config.rageclick)}get flushIntervalMilliseconds(){var ma=5e3;return R$3(this.instance.config.capture_heatmaps)&&this.instance.config.capture_heatmaps.flush_interval_milliseconds&&(ma=this.instance.config.capture_heatmaps.flush_interval_milliseconds),ma}get isEnabled(){return M$6(this.instance.config.capture_heatmaps)?M$6(this.instance.config.enable_heatmaps)?this.kt:this.instance.config.enable_heatmaps:this.instance.config.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this.P)return;ys.info("starting..."),this.Mt(),this.Ot()}else{var ma;clearInterval((ma=this.Ft)!==null&&ma!==void 0?ma:void 0),this.At(),this.getAndClearBuffer()}}onRemoteConfig(ma){var ba=!!ma.heatmaps;this.instance.persistence&&this.instance.persistence.register({[Gi]:ba}),this.kt=ba,this.startIfEnabled()}getAndClearBuffer(){var ma=this.N;return this.N=void 0,ma}Dt(ma){this.jt(ma.originalEvent,"deadclick")}Ot(){this.Ft&&clearInterval(this.Ft),this.Ft=(function(ma){return ma?.visibilityState==="visible"})(o$d)?setInterval(this.Lt.bind(this),this.flushIntervalMilliseconds):null}Mt(){t$9&&o$d&&(this.Nt=this.Lt.bind(this),zi(t$9,"beforeunload",this.Nt),this.Ut=ma=>this.jt(ma||t$9?.event),zi(o$d,"click",this.Ut,{capture:!0}),this.zt=ma=>this.Ht(ma||t$9?.event),zi(o$d,"mousemove",this.zt,{capture:!0}),this.Bt=new Lr(this.instance,Dr,this.Dt.bind(this)),this.Bt.startIfEnabled(),this.qt=this.Ot.bind(this),zi(o$d,"visibilitychange",this.qt),this.P=!0)}At(){var ma;t$9&&o$d&&(this.Nt&&t$9.removeEventListener("beforeunload",this.Nt),this.Ut&&o$d.removeEventListener("click",this.Ut,{capture:!0}),this.zt&&o$d.removeEventListener("mousemove",this.zt,{capture:!0}),this.qt&&o$d.removeEventListener("visibilitychange",this.qt),clearTimeout(this.Wt),(ma=this.Bt)==null||ma.stop(),this.P=!1)}Gt(ma,ba){var va=this.instance.scrollManager.scrollY(),Ma=this.instance.scrollManager.scrollX(),wl=this.instance.scrollManager.scrollElement(),El=(function(Sl,Cl,Mc){for(var dp=Sl;dp&&we$4(dp)&&!xe$2(dp,"body");){if(dp===Mc)return!1;if(w$9(Cl,t$9?.getComputedStyle(dp).position))return!0;dp=Me$3(dp)}return!1})(Ce$4(ma),["fixed","sticky"],wl);return{x:ma.clientX+(El?0:Ma),y:ma.clientY+(El?0:va),target_fixed:El,type:ba}}jt(ma,ba){var va;if(ba===void 0&&(ba="click"),!be$5(ma.target)&&bs(ma)){var Ma=this.Gt(ma,ba);(va=this.rageclicks)!=null&&va.isRageClick(ma.clientX,ma.clientY,new Date().getTime())&&this.Vt(g$8({},Ma,{type:"rageclick"})),this.Vt(Ma)}}Ht(ma){!be$5(ma.target)&&bs(ma)&&(clearTimeout(this.Wt),this.Wt=setTimeout((()=>{this.Vt(this.Gt(ma,"mousemove"))}),500))}Vt(ma){if(t$9){var ba=t$9.location.href,va=this.instance.config.mask_personal_data_properties,Ma=this.instance.config.custom_personal_data_properties,wl=va?Fi([],es,Ma||[]):[],El=nr(ba,wl,ss);this.N=this.N||{},this.N[El]||(this.N[El]=[]),this.N[El].push(ma)}}Lt(){this.N&&!F$8(this.N)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}}class xs{constructor(ma){this.Jt=(ba,va,Ma)=>{Ma&&(Ma.noSessionId||Ma.activityTimeout||Ma.sessionPastMaximumLength)&&($i.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:ba,changeReason:Ma}),this.Kt=void 0,this._instance.scrollManager.resetContext())},this._instance=ma,this.Yt()}Yt(){var ma;this.Xt=(ma=this._instance.sessionManager)==null?void 0:ma.onSessionId(this.Jt)}destroy(){var ma;(ma=this.Xt)==null||ma.call(this),this.Xt=void 0}doPageView(ma,ba){var va,Ma=this.Qt(ma,ba);return this.Kt={pathname:(va=t$9?.location.pathname)!==null&&va!==void 0?va:"",pageViewId:ba,timestamp:ma},this._instance.scrollManager.resetContext(),Ma}doPageLeave(ma){var ba;return this.Qt(ma,(ba=this.Kt)==null?void 0:ba.pageViewId)}doEvent(){var ma;return{$pageview_id:(ma=this.Kt)==null?void 0:ma.pageViewId}}Qt(ma,ba){var va=this.Kt;if(!va)return{$pageview_id:ba};var Ma={$pageview_id:ba,$prev_pageview_id:va.pageViewId},wl=this._instance.scrollManager.getContext();if(wl&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:El,lastScrollY:Sl,maxScrollY:Cl,maxContentHeight:Mc,lastContentY:dp,maxContentY:pp}=wl;if(!(M$6(El)||M$6(Sl)||M$6(Cl)||M$6(Mc)||M$6(dp)||M$6(pp))){El=Math.ceil(El),Sl=Math.ceil(Sl),Cl=Math.ceil(Cl),Mc=Math.ceil(Mc),dp=Math.ceil(dp),pp=Math.ceil(pp);var hp=El<=1?1:K$6(Sl/El,0,1,$i),Ef=El<=1?1:K$6(Cl/El,0,1,$i),Zf=Mc<=1?1:K$6(dp/Mc,0,1,$i),Jf=Mc<=1?1:K$6(pp/Mc,0,1,$i);Ma=Ri(Ma,{$prev_pageview_last_scroll:Sl,$prev_pageview_last_scroll_percentage:hp,$prev_pageview_max_scroll:Cl,$prev_pageview_max_scroll_percentage:Ef,$prev_pageview_last_content:dp,$prev_pageview_last_content_percentage:Zf,$prev_pageview_max_content:pp,$prev_pageview_max_content_percentage:Jf})}}return va.pathname&&(Ma.$prev_pageview_pathname=va.pathname),va.timestamp&&(Ma.$prev_pageview_duration=(ma.getTime()-va.timestamp.getTime())/1e3),Ma}}var Es=(function(ya){return ya.GZipJS="gzip-js",ya.Base64="base64",ya})({}),Ss=Uint8Array,ks=Uint16Array,Ps=Uint32Array,Ts=new Ss([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Is=new Ss([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Cs=new Ss([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Rs=function(ya,ma){for(var ba=new ks(31),va=0;va<31;++va)ba[va]=ma+=1<<ya[va-1];var Ma=new Ps(ba[30]);for(va=1;va<30;++va)for(var wl=ba[va];wl<ba[va+1];++wl)Ma[wl]=wl-ba[va]<<5|va;return[ba,Ma]},Fs=Rs(Ts,2),Ms=Fs[0],Os=Fs[1];Ms[28]=258,Os[258]=28;for(var As=Rs(Is,0)[1],Ds=new ks(32768),js=0;js<32768;++js){var Ls=(43690&js)>>>1|(21845&js)<<1;Ls=(61680&(Ls=(52428&Ls)>>>2|(13107&Ls)<<2))>>>4|(3855&Ls)<<4,Ds[js]=((65280&Ls)>>>8|(255&Ls)<<8)>>>1}var Ns=function(ya,ma,ba){for(var va=ya.length,Ma=0,wl=new ks(ma);Ma<va;++Ma)++wl[ya[Ma]-1];var El,Sl=new ks(ma);for(Ma=0;Ma<ma;++Ma)Sl[Ma]=Sl[Ma-1]+wl[Ma-1]<<1;for(El=new ks(va),Ma=0;Ma<va;++Ma)El[Ma]=Ds[Sl[ya[Ma]-1]++]>>>15-ya[Ma];return El},Us=new Ss(288);for(js=0;js<144;++js)Us[js]=8;for(js=144;js<256;++js)Us[js]=9;for(js=256;js<280;++js)Us[js]=7;for(js=280;js<288;++js)Us[js]=8;var zs=new Ss(32);for(js=0;js<32;++js)zs[js]=5;var Hs=Ns(Us,9),Bs=Ns(zs,5),qs=function(ya){return(ya/8>>0)+(7&ya&&1)},Ws=function(ya,ma,ba){(ba==null||ba>ya.length)&&(ba=ya.length);var va=new(ya instanceof ks?ks:ya instanceof Ps?Ps:Ss)(ba-ma);return va.set(ya.subarray(ma,ba)),va},Gs=function(ya,ma,ba){ba<<=7&ma;var va=ma/8>>0;ya[va]|=ba,ya[va+1]|=ba>>>8},Vs=function(ya,ma,ba){ba<<=7&ma;var va=ma/8>>0;ya[va]|=ba,ya[va+1]|=ba>>>8,ya[va+2]|=ba>>>16},Js=function(ya,ma){for(var ba=[],va=0;va<ya.length;++va)ya[va]&&ba.push({s:va,f:ya[va]});var Ma=ba.length,wl=ba.slice();if(!Ma)return[new Ss(0),0];if(Ma==1){var El=new Ss(ba[0].s+1);return El[ba[0].s]=1,[El,1]}ba.sort((function(ay,ly){return ay.f-ly.f})),ba.push({s:-1,f:25001});var Sl=ba[0],Cl=ba[1],Mc=0,dp=1,pp=2;for(ba[0]={s:-1,f:Sl.f+Cl.f,l:Sl,r:Cl};dp!=Ma-1;)Sl=ba[ba[Mc].f<ba[pp].f?Mc++:pp++],Cl=ba[Mc!=dp&&ba[Mc].f<ba[pp].f?Mc++:pp++],ba[dp++]={s:-1,f:Sl.f+Cl.f,l:Sl,r:Cl};var hp=wl[0].s;for(va=1;va<Ma;++va)wl[va].s>hp&&(hp=wl[va].s);var Ef=new ks(hp+1),Zf=Ks(ba[dp-1],Ef,0);if(Zf>ma){va=0;var Jf=0,pg=Zf-ma,hg=1<<pg;for(wl.sort((function(ay,ly){return Ef[ly.s]-Ef[ay.s]||ay.f-ly.f}));va<Ma;++va){var mg=wl[va].s;if(!(Ef[mg]>ma))break;Jf+=hg-(1<<Zf-Ef[mg]),Ef[mg]=ma}for(Jf>>>=pg;Jf>0;){var gg=wl[va].s;Ef[gg]<ma?Jf-=1<<ma-Ef[gg]++-1:++va}for(;va>=0&&Jf;--va){var yg=wl[va].s;Ef[yg]==ma&&(--Ef[yg],++Jf)}Zf=ma}return[new Ss(Ef),Zf]},Ks=function(ya,ma,ba){return ya.s==-1?Math.max(Ks(ya.l,ma,ba+1),Ks(ya.r,ma,ba+1)):ma[ya.s]=ba},Ys=function(ya){for(var ma=ya.length;ma&&!ya[--ma];);for(var ba=new ks(++ma),va=0,Ma=ya[0],wl=1,El=function(Cl){ba[va++]=Cl},Sl=1;Sl<=ma;++Sl)if(ya[Sl]==Ma&&Sl!=ma)++wl;else{if(!Ma&&wl>2){for(;wl>138;wl-=138)El(32754);wl>2&&(El(wl>10?wl-11<<5|28690:wl-3<<5|12305),wl=0)}else if(wl>3){for(El(Ma),--wl;wl>6;wl-=6)El(8304);wl>2&&(El(wl-3<<5|8208),wl=0)}for(;wl--;)El(Ma);wl=1,Ma=ya[Sl]}return[ba.subarray(0,va),ma]},Xs=function(ya,ma){for(var ba=0,va=0;va<ma.length;++va)ba+=ya[va]*ma[va];return ba},Qs=function(ya,ma,ba){var va=ba.length,Ma=qs(ma+2);ya[Ma]=255&va,ya[Ma+1]=va>>>8,ya[Ma+2]=255^ya[Ma],ya[Ma+3]=255^ya[Ma+1];for(var wl=0;wl<va;++wl)ya[Ma+wl+4]=ba[wl];return 8*(Ma+4+va)},Zs=function(ya,ma,ba,va,Ma,wl,El,Sl,Cl,Mc,dp){Gs(ma,dp++,ba),++Ma[256];for(var pp=Js(Ma,15),hp=pp[0],Ef=pp[1],Zf=Js(wl,15),Jf=Zf[0],pg=Zf[1],hg=Ys(hp),mg=hg[0],gg=hg[1],yg=Ys(Jf),ay=yg[0],ly=yg[1],cy=new ks(19),q1=0;q1<mg.length;++q1)cy[31&mg[q1]]++;for(q1=0;q1<ay.length;++q1)cy[31&ay[q1]]++;for(var r0=Js(cy,7),uE=r0[0],V1=r0[1],H1=19;H1>4&&!uE[Cs[H1-1]];--H1);var O_,aE,P_,M_,sN=Mc+5<<3,AF=Xs(Ma,Us)+Xs(wl,zs)+El,$4=Xs(Ma,hp)+Xs(wl,Jf)+El+14+3*H1+Xs(cy,uE)+(2*cy[16]+3*cy[17]+7*cy[18]);if(sN<=AF&&sN<=$4)return Qs(ma,dp,ya.subarray(Cl,Cl+Mc));if(Gs(ma,dp,1+($4<AF)),dp+=2,$4<AF){O_=Ns(hp,Ef),aE=hp,P_=Ns(Jf,pg),M_=Jf;var cN=Ns(uE,V1);for(Gs(ma,dp,gg-257),Gs(ma,dp+5,ly-1),Gs(ma,dp+10,H1-4),dp+=14,q1=0;q1<H1;++q1)Gs(ma,dp+3*q1,uE[Cs[q1]]);dp+=3*H1;for(var R4=[mg,ay],k4=0;k4<2;++k4){var AQ=R4[k4];for(q1=0;q1<AQ.length;++q1){var uN=31&AQ[q1];Gs(ma,dp,cN[uN]),dp+=uE[uN],uN>15&&(Gs(ma,dp,AQ[q1]>>>5&127),dp+=AQ[q1]>>>12)}}}else O_=Hs,aE=Us,P_=Bs,M_=zs;for(q1=0;q1<Sl;++q1)if(va[q1]>255){uN=va[q1]>>>18&31,Vs(ma,dp,O_[uN+257]),dp+=aE[uN+257],uN>7&&(Gs(ma,dp,va[q1]>>>23&31),dp+=Ts[uN]);var uee=31&va[q1];Vs(ma,dp,P_[uee]),dp+=M_[uee],uee>3&&(Vs(ma,dp,va[q1]>>>5&8191),dp+=Is[uee])}else Vs(ma,dp,O_[va[q1]]),dp+=aE[va[q1]];return Vs(ma,dp,O_[256]),dp+aE[256]},tn=new Ps([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),en$1=(function(){for(var ya=new Ps(256),ma=0;ma<256;++ma){for(var ba=ma,va=9;--va;)ba=(1&ba&&3988292384)^ba>>>1;ya[ma]=ba}return ya})(),rn$1=function(ya,ma,ba,va,Ma){return(function(wl,El,Sl,Cl,Mc,dp){var pp=wl.length,hp=new Ss(Cl+pp+5*(1+Math.floor(pp/7e3))+Mc),Ef=hp.subarray(Cl,hp.length-Mc),Zf=0;if(!El||pp<8)for(var Jf=0;Jf<=pp;Jf+=65535){var pg=Jf+65535;pg<pp?Zf=Qs(Ef,Zf,wl.subarray(Jf,pg)):(Ef[Jf]=dp,Zf=Qs(Ef,Zf,wl.subarray(Jf,pp)))}else{for(var hg=tn[El-1],mg=hg>>>13,gg=8191&hg,yg=(1<<Sl)-1,ay=new ks(32768),ly=new ks(yg+1),cy=Math.ceil(Sl/3),q1=2*cy,r0=function(Sht){return(wl[Sht]^wl[Sht+1]<<cy^wl[Sht+2]<<q1)&yg},uE=new Ps(25e3),V1=new ks(288),H1=new ks(32),O_=0,aE=0,P_=(Jf=0,0),M_=0,sN=0;Jf<pp;++Jf){var AF=r0(Jf),$4=32767&Jf,cN=ly[AF];if(ay[$4]=cN,ly[AF]=$4,M_<=Jf){var R4=pp-Jf;if((O_>7e3||P_>24576)&&R4>423){Zf=Zs(wl,Ef,0,uE,V1,H1,aE,P_,sN,Jf-sN,Zf),P_=O_=aE=0,sN=Jf;for(var k4=0;k4<286;++k4)V1[k4]=0;for(k4=0;k4<30;++k4)H1[k4]=0}var AQ=2,uN=0,uee=gg,$pe=$4-cN&32767;if(R4>2&&AF==r0(Jf-$pe))for(var Ppe=Math.min(mg,R4)-1,e2e=Math.min(32767,Jf),Vpt=Math.min(258,R4);$pe<=e2e&&--uee&&$4!=cN;){if(wl[Jf+AQ]==wl[Jf+AQ-$pe]){for(var Gpt=0;Gpt<Vpt&&wl[Jf+Gpt]==wl[Jf+Gpt-$pe];++Gpt);if(Gpt>AQ){if(AQ=Gpt,uN=$pe,Gpt>Ppe)break;var xpe=Math.min($pe,Gpt-2),wpe=0;for(k4=0;k4<xpe;++k4){var t2e=Jf-$pe+k4+32768&32767,Q_e=t2e-ay[t2e]+32768&32767;Q_e>wpe&&(wpe=Q_e,cN=t2e)}}}$pe+=($4=cN)-(cN=ay[$4])+32768&32767}if(uN){uE[P_++]=268435456|Os[AQ]<<18|As[uN];var Rht=31&Os[AQ],tmt=31&As[uN];aE+=Ts[Rht]+Is[tmt],++V1[257+Rht],++H1[tmt],M_=Jf+AQ,++O_}else uE[P_++]=wl[Jf],++V1[wl[Jf]]}}Zf=Zs(wl,Ef,dp,uE,V1,H1,aE,P_,sN,Jf-sN,Zf)}return Ws(hp,0,Cl+qs(Zf)+Mc)})(ya,ma.level==null?6:ma.level,ma.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(ya.length)))):12+ma.mem,ba,va,!0)},sn$1=function(ya,ma,ba){for(;ba;++ma)ya[ma]=ba,ba>>>=8};function nn$1(ya,ma){ma===void 0&&(ma={});var ba=(function(){var Sl=4294967295;return{p:function(Cl){for(var Mc=Sl,dp=0;dp<Cl.length;++dp)Mc=en$1[255&Mc^Cl[dp]]^Mc>>>8;Sl=Mc},d:function(){return 4294967295^Sl}}})(),va=ya.length;ba.p(ya);var Ma,wl=rn$1(ya,ma,10+((Ma=ma).filename&&Ma.filename.length+1||0),8),El=wl.length;return(function(Sl,Cl){var Mc=Cl.filename;if(Sl[0]=31,Sl[1]=139,Sl[2]=8,Sl[8]=Cl.level<2?4:Cl.level==9?2:0,Sl[9]=3,Cl.mtime!=0&&sn$1(Sl,4,Math.floor(new Date(Cl.mtime||Date.now())/1e3)),Mc){Sl[3]=8;for(var dp=0;dp<=Mc.length;++dp)Sl[dp+10]=Mc.charCodeAt(dp)}})(wl,ma),sn$1(wl,El-8,ba.d()),sn$1(wl,El-4,va),wl}var on$1=function(ya){var ma,ba,va,Ma,wl="";for(ma=ba=0,va=(ya=(ya+"").replace(/\r\n/g,`
21264
21264
  `).replace(/\r/g,`
21265
21265
  `)).length,Ma=0;Ma<va;Ma++){var El=ya.charCodeAt(Ma),Sl=null;El<128?ba++:Sl=El>127&&El<2048?String.fromCharCode(El>>6|192,63&El|128):String.fromCharCode(El>>12|224,El>>6&63|128,63&El|128),D$b(Sl)||(ba>ma&&(wl+=ya.substring(ma,ba)),wl+=Sl,ma=ba=Ma+1)}return ba>ma&&(wl+=ya.substring(ma,ya.length)),wl},an$1=!!u$h||!!l$9,ln="text/plain",un$1=function(ya,ma,ba){var va;ba===void 0&&(ba=!0);var[Ma,wl]=ya.split("?"),El=g$8({},ma),Sl=(va=wl?.split("&").map((Mc=>{var dp,[pp,hp]=Mc.split("="),Ef=ba&&(dp=El[pp])!==null&&dp!==void 0?dp:hp;return delete El[pp],pp+"="+Ef})))!==null&&va!==void 0?va:[],Cl=rr(El);return Cl&&Sl.push(Cl),Ma+"?"+Sl.join("&")},hn=(ya,ma)=>JSON.stringify(ya,((ba,va)=>typeof va=="bigint"?va.toString():va),ma),dn=ya=>{var{data:ma,compression:ba}=ya;if(ma){if(ba===Es.GZipJS){var va=nn$1((function(Cl,Mc){var dp=Cl.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(Cl);for(var pp=new Ss(Cl.length+(Cl.length>>>1)),hp=0,Ef=function(hg){pp[hp++]=hg},Zf=0;Zf<dp;++Zf){if(hp+5>pp.length){var Jf=new Ss(hp+8+(dp-Zf<<1));Jf.set(pp),pp=Jf}var pg=Cl.charCodeAt(Zf);pg<128||Mc?Ef(pg):pg<2048?(Ef(192|pg>>>6),Ef(128|63&pg)):pg>55295&&pg<57344?(Ef(240|(pg=65536+(1047552&pg)|1023&Cl.charCodeAt(++Zf))>>>18),Ef(128|pg>>>12&63),Ef(128|pg>>>6&63),Ef(128|63&pg)):(Ef(224|pg>>>12),Ef(128|pg>>>6&63),Ef(128|63&pg))}return Ws(pp,0,hp)})(hn(ma)),{mtime:0}),Ma=new Blob([va],{type:ln});return{contentType:ln,body:Ma,estimatedSize:Ma.size}}if(ba===Es.Base64){var wl=(function(Cl){var Mc,dp,pp,hp,Ef,Zf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Jf=0,pg=0,hg="",mg=[];if(!Cl)return Cl;Cl=on$1(Cl);do Mc=(Ef=Cl.charCodeAt(Jf++)<<16|Cl.charCodeAt(Jf++)<<8|Cl.charCodeAt(Jf++))>>18&63,dp=Ef>>12&63,pp=Ef>>6&63,hp=63&Ef,mg[pg++]=Zf.charAt(Mc)+Zf.charAt(dp)+Zf.charAt(pp)+Zf.charAt(hp);while(Jf<Cl.length);switch(hg=mg.join(""),Cl.length%3){case 1:hg=hg.slice(0,-2)+"==";break;case 2:hg=hg.slice(0,-1)+"="}return hg})(hn(ma)),El=(Cl=>"data="+encodeURIComponent(typeof Cl=="string"?Cl:hn(Cl)))(wl);return{contentType:"application/x-www-form-urlencoded",body:El,estimatedSize:new Blob([El]).size}}var Sl=hn(ma);return{contentType:"application/json",body:Sl,estimatedSize:new Blob([Sl]).size}}},vn=[];l$9&&vn.push({transport:"fetch",method:ya=>{var ma,ba,{contentType:va,body:Ma,estimatedSize:wl}=(ma=dn(ya))!==null&&ma!==void 0?ma:{},El=new Headers;Ci(ya.headers,(function(dp,pp){El.append(pp,dp)})),va&&El.append("Content-Type",va);var Sl=ya.url,Cl=null;if(h$c){var Mc=new h$c;Cl={signal:Mc.signal,timeout:setTimeout((()=>Mc.abort()),ya.timeout)}}l$9(Sl,g$8({method:ya?.method||"GET",headers:El,keepalive:ya.method==="POST"&&(wl||0)<52428.8,body:Ma,signal:(ba=Cl)==null?void 0:ba.signal},ya.fetchOptions)).then((dp=>dp.text().then((pp=>{var hp={statusCode:dp.status,text:pp};if(dp.status===200)try{hp.json=JSON.parse(pp)}catch(Ef){$i.error(Ef)}ya.callback==null||ya.callback(hp)})))).catch((dp=>{$i.error(dp),ya.callback==null||ya.callback({statusCode:0,text:dp})})).finally((()=>Cl?clearTimeout(Cl.timeout):null))}}),u$h&&vn.push({transport:"XHR",method:ya=>{var ma,ba=new u$h;ba.open(ya.method||"GET",ya.url,!0);var{contentType:va,body:Ma}=(ma=dn(ya))!==null&&ma!==void 0?ma:{};Ci(ya.headers,(function(wl,El){ba.setRequestHeader(El,wl)})),va&&ba.setRequestHeader("Content-Type",va),ya.timeout&&(ba.timeout=ya.timeout),ya.disableXHRCredentials||(ba.withCredentials=!0),ba.onreadystatechange=()=>{if(ba.readyState===4){var wl={statusCode:ba.status,text:ba.responseText};if(ba.status===200)try{wl.json=JSON.parse(ba.responseText)}catch{}ya.callback==null||ya.callback(wl)}},ba.send(Ma)}}),n$9!=null&&n$9.sendBeacon&&vn.push({transport:"sendBeacon",method:ya=>{var ma=un$1(ya.url,{beacon:"1"});try{var ba,{contentType:va,body:Ma}=(ba=dn(ya))!==null&&ba!==void 0?ba:{},wl=typeof Ma=="string"?new Blob([Ma],{type:va}):Ma;n$9.sendBeacon(ma,wl)}catch{}}});var cn$1=function(ya,ma){if(!(function(ba){try{new RegExp(ba)}catch{return!1}return!0})(ma))return!1;try{return new RegExp(ma).test(ya)}catch{return!1}};function fn$1(ya,ma,ba){return hn({distinct_id:ya,userPropertiesToSet:ma,userPropertiesToSetOnce:ba})}var pn={exact:(ya,ma)=>ma.some((ba=>ya.some((va=>ba===va)))),is_not:(ya,ma)=>ma.every((ba=>ya.every((va=>ba!==va)))),regex:(ya,ma)=>ma.some((ba=>ya.some((va=>cn$1(ba,va))))),not_regex:(ya,ma)=>ma.every((ba=>ya.every((va=>!cn$1(ba,va))))),icontains:(ya,ma)=>ma.map(gn).some((ba=>ya.map(gn).some((va=>ba.includes(va))))),not_icontains:(ya,ma)=>ma.map(gn).every((ba=>ya.map(gn).every((va=>!ba.includes(va))))),gt:(ya,ma)=>ma.some((ba=>{var va=parseFloat(ba);return!isNaN(va)&&ya.some((Ma=>va>parseFloat(Ma)))})),lt:(ya,ma)=>ma.some((ba=>{var va=parseFloat(ba);return!isNaN(va)&&ya.some((Ma=>va<parseFloat(Ma)))}))},gn=ya=>ya.toLowerCase();function _n(ya,ma){return!ya||Object.entries(ya).every((ba=>{var[va,Ma]=ba,wl=ma?.[va];if(M$6(wl)||D$b(wl))return!1;var El=[String(wl)],Sl=pn[Ma.operator];return!!Sl&&Sl(Ma.values,El)}))}var mn=Si("[Error tracking]");class yn{constructor(ma){var ba,va;this.Zt=[],this.ti=new Qt([new vi,new xi,new fi,new ci,new bi,new yi,new gi,new wi],di()),this._instance=ma,this.Zt=(ba=(va=this._instance.persistence)==null?void 0:va.get_property(Ji))!==null&&ba!==void 0?ba:[]}onRemoteConfig(ma){var ba,va,Ma,wl=(ba=(va=ma.errorTracking)==null?void 0:va.suppressionRules)!==null&&ba!==void 0?ba:[],El=(Ma=ma.errorTracking)==null?void 0:Ma.captureExtensionExceptions;this.Zt=wl,this._instance.persistence&&this._instance.persistence.register({[Ji]:this.Zt,[Ki]:El})}get ii(){var ma,ba=!!this._instance.get_property(Ki),va=this._instance.config.error_tracking.captureExtensionExceptions;return(ma=va??ba)!==null&&ma!==void 0&&ma}buildProperties(ma,ba){return this.ti.buildFromUnknown(ma,{syntheticException:ba?.syntheticException,mechanism:{handled:ba?.handled}})}sendExceptionEvent(ma){var ba=ma.$exception_list;if(this.ei(ba)){if(this.ri(ba))return void mn.info("Skipping exception capture because a suppression rule matched");if(!this.ii&&this.si(ba))return void mn.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ni(ba))return void mn.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",ma,{_noTruncate:!0,_batchKey:"exceptionEvent"})}ri(ma){if(ma.length===0)return!1;var ba=ma.reduce(((va,Ma)=>{var{type:wl,value:El}=Ma;return O$5(wl)&&wl.length>0&&va.$exception_types.push(wl),O$5(El)&&El.length>0&&va.$exception_values.push(El),va}),{$exception_types:[],$exception_values:[]});return this.Zt.some((va=>{var Ma=va.values.map((wl=>{var El,Sl=pn[wl.operator],Cl=I$9(wl.value)?wl.value:[wl.value],Mc=(El=ba[wl.key])!==null&&El!==void 0?El:[];return Cl.length>0&&Sl(Cl,Mc)}));return va.type==="OR"?Ma.some(Boolean):Ma.every(Boolean)}))}si(ma){return ma.flatMap((ba=>{var va,Ma;return(va=(Ma=ba.stacktrace)==null?void 0:Ma.frames)!==null&&va!==void 0?va:[]})).some((ba=>ba.filename&&ba.filename.startsWith("chrome-extension://")))}ni(ma){if(ma.length>0){var ba,va,Ma,wl,El=(ba=(va=ma[0].stacktrace)==null?void 0:va.frames)!==null&&ba!==void 0?ba:[],Sl=El[El.length-1];return(Ma=Sl==null||(wl=Sl.filename)==null?void 0:wl.includes("posthog.com/static"))!==null&&Ma!==void 0&&Ma}return!1}ei(ma){return!j$b(ma)&&I$9(ma)}}var bn=Si("[FeatureFlags]"),wn=Si("[FeatureFlags]",{debugEnabled:!0}),xn="$active_feature_flags",En="$override_feature_flags",$n="$feature_flag_payloads",Sn="$override_feature_flag_payloads",kn="$feature_flag_request_id",Pn="$feature_flag_evaluated_at",Tn=ya=>{var ma={};for(var[ba,va]of Mi(ya||{}))va&&(ma[ba]=va);return ma},In=ya=>{var ma=ya.flags;return ma?(ya.featureFlags=Object.fromEntries(Object.keys(ma).map((ba=>{var va;return[ba,(va=ma[ba].variant)!==null&&va!==void 0?va:ma[ba].enabled]}))),ya.featureFlagPayloads=Object.fromEntries(Object.keys(ma).filter((ba=>ma[ba].enabled)).filter((ba=>{var va;return(va=ma[ba].metadata)==null?void 0:va.payload})).map((ba=>{var va;return[ba,(va=ma[ba].metadata)==null?void 0:va.payload]})))):bn.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),ya},Cn=(function(ya){return ya.FeatureFlags="feature_flags",ya.Recordings="recordings",ya})({});class Rn{constructor(ma){this.oi=!1,this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this._instance=ma,this.featureFlagEventHandlers=[]}ci(){var ma=this._instance.config.evaluation_environments;return ma!=null&&ma.length?ma.filter((ba=>{var va=ba&&typeof ba=="string"&&ba.trim().length>0;return va||bn.error("Invalid evaluation environment found:",ba,"Expected non-empty string"),va})):[]}fi(){return this.ci().length>0}flags(){if(this._instance.config.__preview_remote_config)this.di=!0;else{var ma=!this.pi&&(this._instance.config.advanced_disable_feature_flags||this._instance.config.advanced_disable_feature_flags_on_first_load);this.gi({disableFlags:ma})}}get hasLoadedFlags(){return this.ai}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var ma=this._instance.get_property(ne$3),ba=this._instance.get_property(En),va=this._instance.get_property(Sn);if(!va&&!ba)return ma||{};var Ma=Ri({},ma||{}),wl=[...new Set([...Object.keys(va||{}),...Object.keys(ba||{})])];for(var El of wl){var Sl,Cl,Mc=Ma[El],dp=ba?.[El],pp=M$6(dp)?(Sl=Mc?.enabled)!==null&&Sl!==void 0&&Sl:!!dp,hp=M$6(dp)?Mc.variant:typeof dp=="string"?dp:void 0,Ef=va?.[El],Zf=g$8({},Mc,{enabled:pp,variant:pp?hp??Mc?.variant:void 0});pp!==Mc?.enabled&&(Zf.original_enabled=Mc?.enabled),hp!==Mc?.variant&&(Zf.original_variant=Mc?.variant),Ef&&(Zf.metadata=g$8({},Mc?.metadata,{payload:Ef,original_payload:Mc==null||(Cl=Mc.metadata)==null?void 0:Cl.payload})),Ma[El]=Zf}return this.oi||(bn.warn(" Overriding feature flag details!",{flagDetails:ma,overriddenPayloads:va,finalDetails:Ma}),this.oi=!0),Ma}getFlagVariants(){var ma=this._instance.get_property(re$2),ba=this._instance.get_property(En);if(!ba)return ma||{};for(var va=Ri({},ma),Ma=Object.keys(ba),wl=0;wl<Ma.length;wl++)va[Ma[wl]]=ba[Ma[wl]];return this.oi||(bn.warn(" Overriding feature flags!",{enabledFlags:ma,overriddenFlags:ba,finalFlags:va}),this.oi=!0),va}getFlagPayloads(){var ma=this._instance.get_property($n),ba=this._instance.get_property(Sn);if(!ba)return ma||{};for(var va=Ri({},ma||{}),Ma=Object.keys(ba),wl=0;wl<Ma.length;wl++)va[Ma[wl]]=ba[Ma[wl]];return this.oi||(bn.warn(" Overriding feature flag payloads!",{flagPayloads:ma,overriddenPayloads:ba,finalPayloads:va}),this.oi=!0),va}reloadFeatureFlags(){this.ui||this._instance.config.advanced_disable_feature_flags||this.pi||(this.pi=setTimeout((()=>{this.gi()}),5))}mi(){clearTimeout(this.pi),this.pi=void 0}ensureFlagsLoaded(){this.ai||this.li||this.pi||this.reloadFeatureFlags()}setAnonymousDistinctId(ma){this.$anon_distinct_id=ma}setReloadingPaused(ma){this.ui=ma}gi(ma){var ba;if(this.mi(),!this._instance.O())if(this.li)this.hi=!0;else{var va=this._instance.config.token,Ma=this._instance.get_property("$device_id"),wl={token:va,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:g$8({},((ba=this._instance.persistence)==null?void 0:ba.get_initial_props())||{},this._instance.get_property(oe$3)||{}),group_properties:this._instance.get_property(ae$4)};D$b(Ma)||M$6(Ma)||(wl.$device_id=Ma),(ma!=null&&ma.disableFlags||this._instance.config.advanced_disable_feature_flags)&&(wl.disable_flags=!0),this.fi()&&(wl.evaluation_environments=this.ci());var El=this._instance.config.__preview_remote_config,Sl=El?"/flags/?v=2":"/flags/?v=2&config=true",Cl=this._instance.config.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":"",Mc=this._instance.requestRouter.endpointFor("flags",Sl+Cl);El&&(wl.timezone=cs()),this.li=!0,this._instance._send_request({method:"POST",url:Mc,data:wl,compression:this._instance.config.disable_compression?void 0:Es.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:dp=>{var pp,hp,Ef=!0;if(dp.statusCode===200&&(this.hi||(this.$anon_distinct_id=void 0),Ef=!1),this.li=!1,this.di||(this.di=!0,this._instance.yi((hp=dp.json)!==null&&hp!==void 0?hp:{})),!wl.disable_flags||this.hi)if(this.vi=!Ef,dp.json&&(pp=dp.json.quotaLimited)!=null&&pp.includes(Cn.FeatureFlags))bn.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.");else{var Zf;wl.disable_flags||this.receivedFeatureFlags((Zf=dp.json)!==null&&Zf!==void 0?Zf:{},Ef),this.hi&&(this.hi=!1,this.gi())}}})}}getFeatureFlag(ma,ba){if(ba===void 0&&(ba={}),this.ai||this.getFlags()&&this.getFlags().length>0){var va=this.getFlagVariants()[ma],Ma=""+va,wl=this._instance.get_property(kn)||void 0,El=this._instance.get_property(Pn)||void 0,Sl=this._instance.get_property(ue$2)||{};if((ba.send_event||!("send_event"in ba))&&(!(ma in Sl)||!Sl[ma].includes(Ma))){var Cl,Mc,dp,pp,hp,Ef,Zf,Jf,pg;I$9(Sl[ma])?Sl[ma].push(Ma):Sl[ma]=[Ma],(Cl=this._instance.persistence)==null||Cl.register({[ue$2]:Sl});var hg=this.getFeatureFlagDetails(ma),mg={$feature_flag:ma,$feature_flag_response:va,$feature_flag_payload:this.getFeatureFlagPayload(ma)||null,$feature_flag_request_id:wl,$feature_flag_evaluated_at:El,$feature_flag_bootstrapped_response:((Mc=this._instance.config.bootstrap)==null||(Mc=Mc.featureFlags)==null?void 0:Mc[ma])||null,$feature_flag_bootstrapped_payload:((dp=this._instance.config.bootstrap)==null||(dp=dp.featureFlagPayloads)==null?void 0:dp[ma])||null,$used_bootstrap_value:!this.vi};M$6(hg==null||(pp=hg.metadata)==null?void 0:pp.version)||(mg.$feature_flag_version=hg.metadata.version);var gg,yg=(hp=hg==null||(Ef=hg.reason)==null?void 0:Ef.description)!==null&&hp!==void 0?hp:hg==null||(Zf=hg.reason)==null?void 0:Zf.code;yg&&(mg.$feature_flag_reason=yg),hg!=null&&(Jf=hg.metadata)!=null&&Jf.id&&(mg.$feature_flag_id=hg.metadata.id),M$6(hg?.original_variant)&&M$6(hg?.original_enabled)||(mg.$feature_flag_original_response=M$6(hg.original_variant)?hg.original_enabled:hg.original_variant),hg!=null&&(pg=hg.metadata)!=null&&pg.original_payload&&(mg.$feature_flag_original_payload=hg==null||(gg=hg.metadata)==null?void 0:gg.original_payload),this._instance.capture("$feature_flag_called",mg)}return va}bn.warn('getFeatureFlag for key "'+ma+`" failed. Feature flags didn't load in time.`)}getFeatureFlagDetails(ma){return this.getFlagsWithDetails()[ma]}getFeatureFlagPayload(ma){return this.getFlagPayloads()[ma]}getRemoteConfigPayload(ma,ba){var va=this._instance.config.token,Ma={distinct_id:this._instance.get_distinct_id(),token:va};this.fi()&&(Ma.evaluation_environments=this.ci()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2&config=true"),data:Ma,compression:this._instance.config.disable_compression?void 0:Es.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:wl=>{var El,Sl=(El=wl.json)==null?void 0:El.featureFlagPayloads;ba(Sl?.[ma]||void 0)}})}isFeatureEnabled(ma,ba){if(ba===void 0&&(ba={}),this.ai||this.getFlags()&&this.getFlags().length>0){var va=this.getFeatureFlag(ma,ba);return M$6(va)?void 0:!!va}bn.warn('isFeatureEnabled for key "'+ma+`" failed. Feature flags didn't load in time.`)}addFeatureFlagsHandler(ma){this.featureFlagEventHandlers.push(ma)}removeFeatureFlagsHandler(ma){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((ba=>ba!==ma))}receivedFeatureFlags(ma,ba){if(this._instance.persistence){this.ai=!0;var va=this.getFlagVariants(),Ma=this.getFlagPayloads(),wl=this.getFlagsWithDetails();(function(El,Sl,Cl,Mc,dp){Cl===void 0&&(Cl={}),Mc===void 0&&(Mc={}),dp===void 0&&(dp={});var pp=In(El),hp=pp.flags,Ef=pp.featureFlags,Zf=pp.featureFlagPayloads;if(Ef){var Jf=El.requestId,pg=El.evaluatedAt;if(I$9(Ef)){bn.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var hg={};if(Ef)for(var mg=0;mg<Ef.length;mg++)hg[Ef[mg]]=!0;Sl&&Sl.register({[xn]:Ef,[re$2]:hg})}else{var gg=Ef,yg=Zf,ay=hp;El.errorsWhileComputingFlags&&(gg=g$8({},Cl,gg),yg=g$8({},Mc,yg),ay=g$8({},dp,ay)),Sl&&Sl.register(g$8({[xn]:Object.keys(Tn(gg)),[re$2]:gg||{},[$n]:yg||{},[ne$3]:ay||{}},Jf?{[kn]:Jf}:{},pg?{[Pn]:pg}:{}))}}})(ma,this._instance.persistence,va,Ma,wl),this.bi(ba)}}override(ma,ba){ba===void 0&&(ba=!1),bn.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:ma,suppressWarning:ba})}overrideFeatureFlags(ma){if(!this._instance.__loaded||!this._instance.persistence)return bn.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if(ma===!1)return this._instance.persistence.unregister(En),this._instance.persistence.unregister(Sn),this.bi(),wn.info("All overrides cleared");if(ma&&typeof ma=="object"&&("flags"in ma||"payloads"in ma)){var ba,va=ma;if(this.oi=!!((ba=va.suppressWarning)!==null&&ba!==void 0&&ba),"flags"in va){if(va.flags===!1)this._instance.persistence.unregister(En),wn.info("Flag overrides cleared");else if(va.flags){if(I$9(va.flags)){for(var Ma={},wl=0;wl<va.flags.length;wl++)Ma[va.flags[wl]]=!0;this._instance.persistence.register({[En]:Ma})}else this._instance.persistence.register({[En]:va.flags});wn.info("Flag overrides set",{flags:va.flags})}}return"payloads"in va&&(va.payloads===!1?(this._instance.persistence.unregister(Sn),wn.info("Payload overrides cleared")):va.payloads&&(this._instance.persistence.register({[Sn]:va.payloads}),wn.info("Payload overrides set",{payloads:va.payloads}))),void this.bi()}this.bi()}onFeatureFlags(ma){if(this.addFeatureFlagsHandler(ma),this.ai){var{flags:ba,flagVariants:va}=this.wi();ma(ba,va)}return()=>this.removeFeatureFlagsHandler(ma)}updateEarlyAccessFeatureEnrollment(ma,ba,va){var Ma,wl=(this._instance.get_property(se$4)||[]).find((Mc=>Mc.flagKey===ma)),El={["$feature_enrollment/"+ma]:ba},Sl={$feature_flag:ma,$feature_enrollment:ba,$set:El};wl&&(Sl.$early_access_feature_name=wl.name),va&&(Sl.$feature_enrollment_stage=va),this._instance.capture("$feature_enrollment_update",Sl),this.setPersonPropertiesForFlags(El,!1);var Cl=g$8({},this.getFlagVariants(),{[ma]:ba});(Ma=this._instance.persistence)==null||Ma.register({[xn]:Object.keys(Tn(Cl)),[re$2]:Cl}),this.bi()}getEarlyAccessFeatures(ma,ba,va){ba===void 0&&(ba=!1);var Ma=this._instance.get_property(se$4),wl=va?"&"+va.map((El=>"stage="+El)).join("&"):"";if(Ma&&!ba)return ma(Ma);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this._instance.config.token+wl),method:"GET",callback:El=>{var Sl,Cl;if(El.json){var Mc=El.json.earlyAccessFeatures;return(Sl=this._instance.persistence)==null||Sl.unregister(se$4),(Cl=this._instance.persistence)==null||Cl.register({[se$4]:Mc}),ma(Mc)}}})}wi(){var ma=this.getFlags(),ba=this.getFlagVariants();return{flags:ma.filter((va=>ba[va])),flagVariants:Object.keys(ba).filter((va=>ba[va])).reduce(((va,Ma)=>(va[Ma]=ba[Ma],va)),{})}}bi(ma){var{flags:ba,flagVariants:va}=this.wi();this.featureFlagEventHandlers.forEach((Ma=>Ma(ba,va,{errorsLoading:ma})))}setPersonPropertiesForFlags(ma,ba){ba===void 0&&(ba=!0);var va=this._instance.get_property(oe$3)||{};this._instance.register({[oe$3]:g$8({},va,ma)}),ba&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(oe$3)}setGroupPropertiesForFlags(ma,ba){ba===void 0&&(ba=!0);var va=this._instance.get_property(ae$4)||{};Object.keys(va).length!==0&&Object.keys(va).forEach((Ma=>{va[Ma]=g$8({},va[Ma],ma[Ma]),delete ma[Ma]})),this._instance.register({[ae$4]:g$8({},va,ma)}),ba&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(ma){if(ma){var ba=this._instance.get_property(ae$4)||{};this._instance.register({[ae$4]:g$8({},ba,{[ma]:{}})})}else this._instance.unregister(ae$4)}reset(){this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this.$anon_distinct_id=void 0,this.mi(),this.oi=!1}}var Fn=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Mn{constructor(ma,ba){this.R=ma,this.props={},this.xi=!1,this.Ei=(va=>{var Ma="";return va.token&&(Ma=va.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),va.persistence_name?"ph_"+va.persistence_name:"ph_"+Ma+"_posthog"})(ma),this.Y=this.$i(ma),this.load(),ma.debug&&$i.info("Persistence loaded",ma.persistence,g$8({},this.props)),this.update_config(ma,ma,ba),this.save()}isDisabled(){return!!this.Si}$i(ma){Fn.indexOf(ma.persistence.toLowerCase())===-1&&($i.critical("Unknown persistence type "+ma.persistence+"; falling back to localStorage+cookie"),ma.persistence="localStorage+cookie");var ba=(function(Ma){Ma===void 0&&(Ma=[]);var wl=[...Tr,...Ma];return g$8({},Pr,{W:function(El){try{var Sl={};try{Sl=Sr.W(El)||{}}catch{}var Cl=Ri(Sl,JSON.parse(Pr.q(El)||"{}"));return Pr.G(El,Cl),Cl}catch{}return null},G:function(El,Sl,Cl,Mc,dp,pp){try{Pr.G(El,Sl,void 0,void 0,pp);var hp={};wl.forEach((Ef=>{Sl[Ef]&&(hp[Ef]=Sl[Ef])})),Object.keys(hp).length&&Sr.G(El,hp,Cl,Mc,dp,pp)}catch(Ef){Pr.B(Ef)}},V:function(El,Sl){try{t$9?.localStorage.removeItem(El),Sr.V(El,Sl)}catch(Cl){Pr.B(Cl)}}})})(ma.cookie_persisted_properties||[]),va=ma.persistence.toLowerCase();return va==="localstorage"&&Pr.H()?Pr:va==="localstorage+cookie"&&ba.H()?ba:va==="sessionstorage"&&Fr.H()?Fr:va==="memory"?Cr:va==="cookie"?Sr:ba.H()?ba:Sr}properties(){var ma={};return Ci(this.props,(function(ba,va){if(va===re$2&&R$3(ba))for(var Ma=Object.keys(ba),wl=0;wl<Ma.length;wl++)ma["$feature/"+Ma[wl]]=ba[Ma[wl]];else Sl=va,Cl=!1,(D$b(El=ye$4)?Cl:s$e&&El.indexOf===s$e?El.indexOf(Sl)!=-1:(Ci(El,(function(Mc){if(Cl||(Cl=Mc===Sl))return Ti})),Cl))||(ma[va]=ba);var El,Sl,Cl})),ma}load(){if(!this.Si){var ma=this.Y.W(this.Ei);ma&&(this.props=Ri({},ma))}}save(){this.Si||this.Y.G(this.Ei,this.props,this.ki,this.Pi,this.Ti,this.R.debug)}remove(){this.Y.V(this.Ei,!1),this.Y.V(this.Ei,!0)}clear(){this.remove(),this.props={}}register_once(ma,ba,va){if(R$3(ma)){M$6(ba)&&(ba="None"),this.ki=M$6(va)?this.Ii:va;var Ma=!1;if(Ci(ma,((wl,El)=>{this.props.hasOwnProperty(El)&&this.props[El]!==ba||(this.props[El]=wl,Ma=!0)})),Ma)return this.save(),!0}return!1}register(ma,ba){if(R$3(ma)){this.ki=M$6(ba)?this.Ii:ba;var va=!1;if(Ci(ma,((Ma,wl)=>{ma.hasOwnProperty(wl)&&this.props[wl]!==Ma&&(this.props[wl]=Ma,va=!0)})),va)return this.save(),!0}return!1}unregister(ma){ma in this.props&&(delete this.props[ma],this.save())}update_campaign_params(){if(!this.xi){var ma=os$1(this.R.custom_campaign_params,this.R.mask_personal_data_properties,this.R.custom_personal_data_properties);F$8(Di(ma))||this.register(ma),this.xi=!0}}update_search_keyword(){var ma;this.register((ma=o$d?.referrer)?ls(ma):{})}update_referrer_info(){var ma;this.register_once({$referrer:hs(),$referring_domain:o$d!=null&&o$d.referrer&&((ma=er(o$d.referrer))==null?void 0:ma.host)||"$direct"},void 0)}set_initial_person_info(){this.props[ce$4]||this.props[fe$2]||this.register_once({[pe$3]:ds(this.R.mask_personal_data_properties,this.R.custom_personal_data_properties)},void 0)}get_initial_props(){var ma={};Ci([fe$2,ce$4],(El=>{var Sl=this.props[El];Sl&&Ci(Sl,(function(Cl,Mc){ma["$initial_"+E$8(Mc)]=Cl}))}));var ba,va,Ma=this.props[pe$3];if(Ma){var wl=(ba=vs(Ma),va={},Ci(ba,(function(El,Sl){va["$initial_"+E$8(Sl)]=El})),va);Ri(ma,wl)}return ma}safe_merge(ma){return Ci(this.props,(function(ba,va){va in ma||(ma[va]=ba)})),ma}update_config(ma,ba,va){if(this.Ii=this.ki=ma.cookie_expiration,this.set_disabled(ma.disable_persistence||!!va),this.set_cross_subdomain(ma.cross_subdomain_cookie),this.set_secure(ma.secure_cookie),ma.persistence!==ba.persistence||!((El,Sl)=>{if(El.length!==Sl.length)return!1;var Cl=[...El].sort(),Mc=[...Sl].sort();return Cl.every(((dp,pp)=>dp===Mc[pp]))})(ma.cookie_persisted_properties||[],ba.cookie_persisted_properties||[])){var Ma=this.$i(ma),wl=this.props;this.clear(),this.Y=Ma,this.props=wl,this.save()}}set_disabled(ma){this.Si=ma,this.Si?this.remove():this.save()}set_cross_subdomain(ma){ma!==this.Pi&&(this.Pi=ma,this.remove(),this.save())}set_secure(ma){ma!==this.Ti&&(this.Ti=ma,this.remove(),this.save())}set_event_timer(ma,ba){var va=this.props[qi]||{};va[ma]=ba,this.props[qi]=va,this.save()}remove_event_timer(ma){var ba=(this.props[qi]||{})[ma];return M$6(ba)||(delete this.props[qi][ma],this.save()),ba}get_property(ma){return this.props[ma]}set_property(ma,ba){this.props[ma]=ba,this.save()}}var On=Si("[Product Tours]"),An="ph_product_tours";class Dn{constructor(ma){this.Ci=null,this.Ri=null,this._instance=ma}onRemoteConfig(ma){this._instance.persistence&&this._instance.persistence.register({[Qi]:!(ma==null||!ma.productTours)}),this.loadIfEnabled()}loadIfEnabled(){var ma,ba;this.Ci||(ma=this._instance).config.disable_product_tours||(ba=ma.persistence)==null||!ba.get_property(Qi)||this.it((()=>this.Fi()))}it(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.generateProductTours?ma():(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,"product-tours",(Ma=>{Ma?On.error("Could not load product tours script",Ma):ma()}))}Fi(){var ma;!this.Ci&&(ma=v$8.__PosthogExtensions__)!=null&&ma.generateProductTours&&(this.Ci=v$8.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(ma,ba){if(ba===void 0&&(ba=!1),!I$9(this.Ri)||ba){var va=this._instance.persistence;if(va){var Ma=va.props[An];if(I$9(Ma)&&!ba)return this.Ri=Ma,void ma(Ma,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:wl=>{var El=wl.statusCode;if(El!==200||!wl.json){var Sl="Product Tours API could not be loaded, status: "+El;return On.error(Sl),void ma([],{isLoaded:!1,error:Sl})}var Cl=I$9(wl.json.product_tours)?wl.json.product_tours:[];this.Ri=Cl,va&&va.register({[An]:Cl}),ma(Cl,{isLoaded:!0})}})}else ma(this.Ri,{isLoaded:!0})}getActiveProductTours(ma){j$b(this.Ci)?ma([],{isLoaded:!1,error:"Product tours not loaded"}):this.Ci.getActiveProductTours(ma)}showProductTour(ma){var ba;(ba=this.Ci)==null||ba.showTourById(ma)}previewTour(ma){this.Ci?this.Ci.previewTour(ma):this.it((()=>{var ba;this.Fi(),(ba=this.Ci)==null||ba.previewTour(ma)}))}dismissProductTour(){var ma;(ma=this.Ci)==null||ma.dismissTour("user_clicked_skip")}nextStep(){var ma;(ma=this.Ci)==null||ma.nextStep()}previousStep(){var ma;(ma=this.Ci)==null||ma.previousStep()}clearCache(){var ma;this.Ri=null,(ma=this._instance.persistence)==null||ma.unregister(An)}resetTour(ma){var ba;(ba=this.Ci)==null||ba.resetTour(ma)}resetAllTours(){var ma;(ma=this.Ci)==null||ma.resetAllTours()}cancelPendingTour(ma){var ba;(ba=this.Ci)==null||ba.cancelPendingTour(ma)}}var jn=(function(ya){return ya.Activation="events",ya.Cancellation="cancelEvents",ya})({});(function(ya){return ya.Button="button",ya.Tab="tab",ya.Selector="selector",ya})({});(function(ya){return ya.TopLeft="top_left",ya.TopRight="top_right",ya.TopCenter="top_center",ya.MiddleLeft="middle_left",ya.MiddleRight="middle_right",ya.MiddleCenter="middle_center",ya.Left="left",ya.Center="center",ya.Right="right",ya.NextToTrigger="next_to_trigger",ya})({});(function(ya){return ya.Top="top",ya.Left="left",ya.Right="right",ya.Bottom="bottom",ya})({});var zn=(function(ya){return ya.Popover="popover",ya.API="api",ya.Widget="widget",ya.ExternalSurvey="external_survey",ya})({});(function(ya){return ya.Open="open",ya.MultipleChoice="multiple_choice",ya.SingleChoice="single_choice",ya.Rating="rating",ya.Link="link",ya})({});(function(ya){return ya.NextQuestion="next_question",ya.End="end",ya.ResponseBased="response_based",ya.SpecificQuestion="specific_question",ya})({});(function(ya){return ya.Once="once",ya.Recurring="recurring",ya.Always="always",ya})({});var Wn=(function(ya){return ya.SHOWN="survey shown",ya.DISMISSED="survey dismissed",ya.SENT="survey sent",ya.ABANDONED="survey abandoned",ya})({}),Gn=(function(ya){return ya.SURVEY_ID="$survey_id",ya.SURVEY_NAME="$survey_name",ya.SURVEY_RESPONSE="$survey_response",ya.SURVEY_ITERATION="$survey_iteration",ya.SURVEY_ITERATION_START_DATE="$survey_iteration_start_date",ya.SURVEY_PARTIALLY_COMPLETED="$survey_partially_completed",ya.SURVEY_SUBMISSION_ID="$survey_submission_id",ya.SURVEY_QUESTIONS="$survey_questions",ya.SURVEY_COMPLETED="$survey_completed",ya.PRODUCT_TOUR_ID="$product_tour_id",ya.SURVEY_LAST_SEEN_DATE="$survey_last_seen_date",ya})({}),Vn=(function(ya){return ya.Popover="popover",ya.Inline="inline",ya})({}),Jn=Si("[Surveys]"),Kn="seenSurvey_",Yn=(ya,ma)=>{var ba="$survey_"+ma+"/"+ya.id;return ya.current_iteration&&ya.current_iteration>0&&(ba="$survey_"+ma+"/"+ya.id+"/"+ya.current_iteration),ba},Xn=ya=>((ma,ba)=>{var va=""+ma+ba.id;return ba.current_iteration&&ba.current_iteration>0&&(va=""+ma+ba.id+"_"+ba.current_iteration),va})(Kn,ya),Qn=[zn.Popover,zn.Widget,zn.API],Zn={ignoreConditions:!1,ignoreDelay:!1,displayType:Vn.Popover};class to{constructor(){this.Mi={},this.Mi={}}on(ma,ba){return this.Mi[ma]||(this.Mi[ma]=[]),this.Mi[ma].push(ba),()=>{this.Mi[ma]=this.Mi[ma].filter((va=>va!==ba))}}emit(ma,ba){for(var va of this.Mi[ma]||[])va(ba);for(var Ma of this.Mi["*"]||[])Ma(ma,ba)}}function io(ya,ma,ba){if(j$b(ya))return!1;switch(ba){case"exact":return ya===ma;case"contains":var va=ma.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(va,"i").test(ya);case"regex":try{return new RegExp(ma).test(ya)}catch{return!1}default:return!1}}class eo{constructor(ma){this.Oi=new to,this.Ai=(ba,va)=>this.Di(ba,va)&&this.ji(ba,va)&&this.Li(ba,va)&&this.Ni(ba,va),this.Di=(ba,va)=>va==null||!va.event||ba?.event===va?.event,this._instance=ma,this.Ui=new Set,this.zi=new Set}init(){var ma;if(!M$6((ma=this._instance)==null?void 0:ma.Hi)){var ba;(ba=this._instance)==null||ba.Hi(((va,Ma)=>{this.on(va,Ma)}))}}register(ma){var ba,va;if(!M$6((ba=this._instance)==null?void 0:ba.Hi)&&(ma.forEach((El=>{var Sl,Cl;(Sl=this.zi)==null||Sl.add(El),(Cl=El.steps)==null||Cl.forEach((Mc=>{var dp;(dp=this.Ui)==null||dp.add(Mc?.event||"")}))})),(va=this._instance)!=null&&va.autocapture)){var Ma,wl=new Set;ma.forEach((El=>{var Sl;(Sl=El.steps)==null||Sl.forEach((Cl=>{Cl!=null&&Cl.selector&&wl.add(Cl?.selector)}))})),(Ma=this._instance)==null||Ma.autocapture.setElementSelectors(wl)}}on(ma,ba){var va;ba!=null&&ma.length!=0&&(this.Ui.has(ma)||this.Ui.has(ba?.event))&&this.zi&&((va=this.zi)==null?void 0:va.size)>0&&this.zi.forEach((Ma=>{this.Bi(ba,Ma)&&this.Oi.emit("actionCaptured",Ma.name)}))}qi(ma){this.onAction("actionCaptured",(ba=>ma(ba)))}Bi(ma,ba){if(ba?.steps==null)return!1;for(var va of ba.steps)if(this.Ai(ma,va))return!0;return!1}onAction(ma,ba){return this.Oi.on(ma,ba)}ji(ma,ba){if(ba!=null&&ba.url){var va,Ma=ma==null||(va=ma.properties)==null?void 0:va.$current_url;if(!Ma||typeof Ma!="string"||!io(Ma,ba.url,ba.url_matching||"contains"))return!1}return!0}Li(ma,ba){return!!this.Wi(ma,ba)&&!!this.Gi(ma,ba)&&!!this.Vi(ma,ba)}Wi(ma,ba){var va;if(ba==null||!ba.href)return!0;var Ma=this.Ji(ma);if(Ma.length>0)return Ma.some((Sl=>io(Sl.href,ba.href,ba.href_matching||"exact")));var wl,El=(ma==null||(va=ma.properties)==null?void 0:va.$elements_chain)||"";return!!El&&io((wl=El.match(/(?::|")href="(.*?)"/))?wl[1]:"",ba.href,ba.href_matching||"exact")}Gi(ma,ba){var va;if(ba==null||!ba.text)return!0;var Ma=this.Ji(ma);if(Ma.length>0)return Ma.some((Mc=>io(Mc.text,ba.text,ba.text_matching||"exact")||io(Mc.$el_text,ba.text,ba.text_matching||"exact")));var wl,El,Sl,Cl=(ma==null||(va=ma.properties)==null?void 0:va.$elements_chain)||"";return!!Cl&&(wl=(function(Mc){for(var dp,pp=[],hp=/(?::|")text="(.*?)"/g;!j$b(dp=hp.exec(Mc));)pp.includes(dp[1])||pp.push(dp[1]);return pp})(Cl),El=ba.text,Sl=ba.text_matching||"exact",wl.some((Mc=>io(Mc,El,Sl))))}Vi(ma,ba){var va,Ma;if(ba==null||!ba.selector)return!0;var wl=ma==null||(va=ma.properties)==null?void 0:va.$element_selectors;if(wl!=null&&wl.includes(ba.selector))return!0;var El=(ma==null||(Ma=ma.properties)==null?void 0:Ma.$elements_chain)||"";if(ba.selector_regex&&El)try{return new RegExp(ba.selector_regex).test(El)}catch{return!1}return!1}Ji(ma){var ba;return(ma==null||(ba=ma.properties)==null?void 0:ba.$elements)==null?[]:ma?.properties.$elements}Ni(ma,ba){return ba==null||!ba.properties||ba.properties.length===0||_n(ba.properties.reduce(((va,Ma)=>{var wl=I$9(Ma.value)?Ma.value.map(String):Ma.value!=null?[String(Ma.value)]:[];return va[Ma.key]={values:wl,operator:Ma.operator||"exact"},va}),{}),ma?.properties)}}class ro{constructor(ma){this._instance=ma,this.Ki=new Map,this.Yi=new Map,this.Xi=new Map}Qi(ma,ba){return!!ma&&_n(ma.propertyFilters,ba?.properties)}Zi(ma,ba){var va=new Map;return ma.forEach((Ma=>{var wl;(wl=Ma.conditions)==null||(wl=wl[ba])==null||(wl=wl.values)==null||wl.forEach((El=>{if(El!=null&&El.name){var Sl=va.get(El.name)||[];Sl.push(Ma.id),va.set(El.name,Sl)}}))})),va}te(ma,ba,va){var Ma=(va===jn.Activation?this.Ki:this.Yi).get(ma),wl=[];return this.ie((El=>{wl=El.filter((Sl=>Ma?.includes(Sl.id)))})),wl.filter((El=>{var Sl,Cl=(Sl=El.conditions)==null||(Sl=Sl[va])==null||(Sl=Sl.values)==null?void 0:Sl.find((Mc=>Mc.name===ma));return this.Qi(Cl,ba)}))}register(ma){var ba;M$6((ba=this._instance)==null?void 0:ba.Hi)||(this.ee(ma),this.re(ma))}re(ma){var ba=ma.filter((va=>{var Ma,wl;return((Ma=va.conditions)==null?void 0:Ma.actions)&&((wl=va.conditions)==null||(wl=wl.actions)==null||(wl=wl.values)==null?void 0:wl.length)>0}));ba.length!==0&&(this.se==null&&(this.se=new eo(this._instance),this.se.init(),this.se.qi((va=>{this.onAction(va)}))),ba.forEach((va=>{var Ma,wl,El,Sl,Cl;va.conditions&&(Ma=va.conditions)!=null&&Ma.actions&&(wl=va.conditions)!=null&&(wl=wl.actions)!=null&&wl.values&&((El=va.conditions)==null||(El=El.actions)==null||(El=El.values)==null?void 0:El.length)>0&&((Sl=this.se)==null||Sl.register(va.conditions.actions.values),(Cl=va.conditions)==null||(Cl=Cl.actions)==null||(Cl=Cl.values)==null||Cl.forEach((Mc=>{if(Mc&&Mc.name){var dp=this.Xi.get(Mc.name);dp&&dp.push(va.id),this.Xi.set(Mc.name,dp||[va.id])}})))})))}ee(ma){var ba,va=ma.filter((wl=>{var El,Sl;return((El=wl.conditions)==null?void 0:El.events)&&((Sl=wl.conditions)==null||(Sl=Sl.events)==null||(Sl=Sl.values)==null?void 0:Sl.length)>0})),Ma=ma.filter((wl=>{var El,Sl;return((El=wl.conditions)==null?void 0:El.cancelEvents)&&((Sl=wl.conditions)==null||(Sl=Sl.cancelEvents)==null||(Sl=Sl.values)==null?void 0:Sl.length)>0}));(va.length!==0||Ma.length!==0)&&((ba=this._instance)==null||ba.Hi(((wl,El)=>{this.onEvent(wl,El)})),this.Ki=this.Zi(ma,jn.Activation),this.Yi=this.Zi(ma,jn.Cancellation))}onEvent(ma,ba){var va,Ma=this.ne(),wl=this.oe(),El=this.ae(),Sl=((va=this._instance)==null||(va=va.persistence)==null?void 0:va.props[wl])||[];if(El===ma&&ba&&Sl.length>0){var Cl,Mc;Ma.info("event matched, removing item from activated items",{event:ma,eventPayload:ba,existingActivatedItems:Sl});var dp=(ba==null||(Cl=ba.properties)==null?void 0:Cl.$survey_id)||(ba==null||(Mc=ba.properties)==null?void 0:Mc.$product_tour_id);if(dp){var pp=Sl.indexOf(dp);pp>=0&&(Sl.splice(pp,1),this.le(Sl))}}else{if(this.Yi.has(ma)){var hp=this.te(ma,ba,jn.Cancellation);hp.length>0&&(Ma.info("cancel event matched, cancelling items",{event:ma,itemsToCancel:hp.map((Zf=>Zf.id))}),hp.forEach((Zf=>{var Jf=Sl.indexOf(Zf.id);Jf>=0&&Sl.splice(Jf,1),this.ue(Zf.id)})),this.le(Sl))}if(this.Ki.has(ma)){Ma.info("event name matched",{event:ma,eventPayload:ba,items:this.Ki.get(ma)});var Ef=this.te(ma,ba,jn.Activation);this.le(Sl.concat(Ef.map((Zf=>Zf.id))||[]))}}}onAction(ma){var ba,va=this.oe(),Ma=((ba=this._instance)==null||(ba=ba.persistence)==null?void 0:ba.props[va])||[];this.Xi.has(ma)&&this.le(Ma.concat(this.Xi.get(ma)||[]))}le(ma){var ba,va=this.ne(),Ma=this.oe(),wl=[...new Set(ma)].filter((El=>!this.he(El)));va.info("updating activated items",{activatedItems:wl}),(ba=this._instance)==null||(ba=ba.persistence)==null||ba.register({[Ma]:wl})}getActivatedIds(){var ma,ba=this.oe(),va=(ma=this._instance)==null||(ma=ma.persistence)==null?void 0:ma.props[ba];return va||[]}getEventToItemsMap(){return this.Ki}de(){return this.se}}class so extends ro{constructor(ma){super(ma)}oe(){return"$surveys_activated"}ae(){return Wn.SHOWN}ie(ma){var ba;(ba=this._instance)==null||ba.getSurveys(ma)}ue(ma){var ba;(ba=this._instance)==null||ba.cancelPendingSurvey(ma)}ne(){return Jn}he(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}class no{constructor(ma){this.ve=void 0,this._surveyManager=null,this.ce=!1,this.fe=[],this.pe=null,this._instance=ma,this._surveyEventReceiver=null}onRemoteConfig(ma){if(!this._instance.config.disable_surveys){var ba=ma.surveys;if(j$b(ba))return Jn.warn("Flags not loaded yet. Not loading surveys.");var va=I$9(ba);this.ve=va?ba.length>0:ba,Jn.info("flags response received, isSurveysEnabled: "+this.ve),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var ma=[],ba=0;ba<localStorage.length;ba++){var va=localStorage.key(ba);(va!=null&&va.startsWith(Kn)||va!=null&&va.startsWith("inProgressSurvey_"))&&ma.push(va)}ma.forEach((Ma=>localStorage.removeItem(Ma)))}loadIfEnabled(){if(!this._surveyManager)if(this.ce)Jn.info("Already initializing surveys, skipping...");else if(this._instance.config.disable_surveys)Jn.info("Disabled. Not loading surveys.");else if(this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())Jn.info("Not loading surveys in cookieless mode without consent.");else{var ma=v$8?.__PosthogExtensions__;if(ma){if(!M$6(this.ve)||this._instance.config.advanced_enable_surveys){var ba=this.ve||this._instance.config.advanced_enable_surveys;this.ce=!0;try{var va=ma.generateSurveys;if(va)return void this.ge(va,ba);var Ma=ma.loadExternalDependency;if(!Ma)return void this._e("PostHog loadExternalDependency extension not found.");Ma(this._instance,"surveys",(wl=>{wl||!ma.generateSurveys?this._e("Could not load surveys script",wl):this.ge(ma.generateSurveys,ba)}))}catch(wl){throw this._e("Error initializing surveys",wl),wl}finally{this.ce=!1}}}else Jn.error("PostHog Extensions not found.")}}ge(ma,ba){this._surveyManager=ma(this._instance,ba),this._surveyEventReceiver=new so(this._instance),Jn.info("Surveys loaded successfully"),this.me({isLoaded:!0})}_e(ma,ba){Jn.error(ma,ba),this.me({isLoaded:!1,error:ma})}onSurveysLoaded(ma){return this.fe.push(ma),this._surveyManager&&this.me({isLoaded:!0}),()=>{this.fe=this.fe.filter((ba=>ba!==ma))}}getSurveys(ma,ba){if(ba===void 0&&(ba=!1),this._instance.config.disable_surveys)return Jn.info("Disabled. Not loading surveys."),ma([]);var va,Ma=this._instance.get_property(le$3);if(Ma&&!ba)return ma(Ma,{isLoaded:!0});typeof Promise<"u"&&this.pe?this.pe.then((wl=>{var{surveys:El,context:Sl}=wl;return ma(El,Sl)})):(typeof Promise<"u"&&(this.pe=new Promise((wl=>{va=wl}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this._instance.config.token),method:"GET",timeout:this._instance.config.surveys_request_timeout_ms,callback:wl=>{var El;this.pe=null;var Sl=wl.statusCode;if(Sl!==200||!wl.json){var Cl="Surveys API could not be loaded, status: "+Sl;Jn.error(Cl);var Mc={isLoaded:!1,error:Cl};return ma([],Mc),void(va==null||va({surveys:[],context:Mc}))}var dp,pp=wl.json.surveys||[],hp=pp.filter((Zf=>(function(Jf){return!(!Jf.start_date||Jf.end_date)})(Zf)&&((function(Jf){var pg;return!((pg=Jf.conditions)==null||(pg=pg.events)==null||(pg=pg.values)==null||!pg.length)})(Zf)||(function(Jf){var pg;return!((pg=Jf.conditions)==null||(pg=pg.actions)==null||(pg=pg.values)==null||!pg.length)})(Zf))));hp.length>0&&((dp=this._surveyEventReceiver)==null||dp.register(hp)),(El=this._instance.persistence)==null||El.register({[le$3]:pp});var Ef={isLoaded:!0};ma(pp,Ef),va?.({surveys:pp,context:Ef})}}))}me(ma){for(var ba of this.fe)try{if(!ma.isLoaded)return ba([],ma);this.getSurveys(ba)}catch(va){Jn.error("Error in survey callback",va)}}getActiveMatchingSurveys(ma,ba){if(ba===void 0&&(ba=!1),!j$b(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(ma,ba);Jn.warn("init was not called")}ye(ma){var ba=null;return this.getSurveys((va=>{var Ma;ba=(Ma=va.find((wl=>wl.id===ma)))!==null&&Ma!==void 0?Ma:null})),ba}be(ma){if(j$b(this._surveyManager))return{eligible:!1,reason:"SDK is not enabled or survey functionality is not yet loaded"};var ba=typeof ma=="string"?this.ye(ma):ma;return ba?this._surveyManager.checkSurveyEligibility(ba):{eligible:!1,reason:"Survey not found"}}canRenderSurvey(ma){if(j$b(this._surveyManager))return Jn.warn("init was not called"),{visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"};var ba=this.be(ma);return{visible:ba.eligible,disabledReason:ba.reason}}canRenderSurveyAsync(ma,ba){return j$b(this._surveyManager)?(Jn.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"})):new Promise((va=>{this.getSurveys((Ma=>{var wl,El=(wl=Ma.find((Cl=>Cl.id===ma)))!==null&&wl!==void 0?wl:null;if(El){var Sl=this.be(El);va({visible:Sl.eligible,disabledReason:Sl.reason})}else va({visible:!1,disabledReason:"Survey not found"})}),ba)}))}renderSurvey(ma,ba){var va;if(j$b(this._surveyManager))Jn.warn("init was not called");else{var Ma=typeof ma=="string"?this.ye(ma):ma;if(Ma!=null&&Ma.id)if(Qn.includes(Ma.type)){var wl=o$d?.querySelector(ba);if(wl)return(va=Ma.appearance)!=null&&va.surveyPopupDelaySeconds?(Jn.info("Rendering survey "+Ma.id+" with delay of "+Ma.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var El,Sl;Jn.info("Rendering survey "+Ma.id+" with delay of "+((El=Ma.appearance)==null?void 0:El.surveyPopupDelaySeconds)+" seconds"),(Sl=this._surveyManager)==null||Sl.renderSurvey(Ma,wl),Jn.info("Survey "+Ma.id+" rendered")}),1e3*Ma.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Ma,wl);Jn.warn("Survey element not found")}else Jn.warn("Surveys of type "+Ma.type+" cannot be rendered in the app");else Jn.warn("Survey not found")}}displaySurvey(ma,ba){var va;if(j$b(this._surveyManager))Jn.warn("init was not called");else{var Ma=this.ye(ma);if(Ma){var wl=Ma;if((va=Ma.appearance)!=null&&va.surveyPopupDelaySeconds&&ba.ignoreDelay&&(wl=g$8({},Ma,{appearance:g$8({},Ma.appearance,{surveyPopupDelaySeconds:0})})),ba.ignoreConditions===!1){var El=this.canRenderSurvey(Ma);if(!El.visible)return void Jn.warn("Survey is not eligible to be displayed: ",El.disabledReason)}ba.displayType!==Vn.Inline?this._surveyManager.handlePopoverSurvey(wl):this.renderSurvey(wl,ba.selector)}else Jn.warn("Survey not found")}}cancelPendingSurvey(ma){j$b(this._surveyManager)?Jn.warn("init was not called"):this._surveyManager.cancelSurvey(ma)}handlePageUnload(){var ma;(ma=this._surveyManager)==null||ma.handlePageUnload()}}var oo=Si("[Conversations]");class ao{constructor(ma){this.we=void 0,this._conversationsManager=null,this.xe=!1,this.Ee=null,this._instance=ma}onRemoteConfig(ma){if(!this._instance.config.disable_conversations){var ba=ma.conversations;j$b(ba)||(U$5(ba)?this.we=ba:(this.we=ba.enabled,this.Ee=ba),this.loadIfEnabled())}}reset(){var ma;(ma=this._conversationsManager)==null||ma.reset(),this._conversationsManager=null,this.we=void 0,this.Ee=null}loadIfEnabled(){if(!this._conversationsManager&&!this.xe&&!(this._instance.config.disable_conversations||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var ma=v$8?.__PosthogExtensions__;if(ma&&!M$6(this.we)&&this.we)if(this.Ee&&this.Ee.token){this.xe=!0;try{var ba=ma.initConversations;if(ba)return this.$e(ba),void(this.xe=!1);var va=ma.loadExternalDependency;if(!va)return void this.Se("PostHog loadExternalDependency extension not found.");va(this._instance,"conversations",(Ma=>{Ma||!ma.initConversations?this.Se("Could not load conversations script",Ma):this.$e(ma.initConversations),this.xe=!1}))}catch(Ma){this.Se("Error initializing conversations",Ma),this.xe=!1}}else oo.error("Conversations enabled but missing token in remote config.")}}$e(ma){if(this.Ee)try{this._conversationsManager=ma(this.Ee,this._instance),oo.info("Conversations loaded successfully")}catch(ba){this.Se("Error completing conversations initialization",ba)}else oo.error("Cannot complete initialization: remote config is null")}Se(ma,ba){oo.error(ma,ba),this._conversationsManager=null,this.xe=!1}show(){this._conversationsManager?this._conversationsManager.show():oo.warn("Conversations not loaded yet.")}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return this.we===!0&&!D$b(this._conversationsManager)}isVisible(){var ma,ba;return(ma=(ba=this._conversationsManager)==null?void 0:ba.isVisible())!==null&&ma!==void 0&&ma}sendMessage(ma,ba,va){var Ma=this;return p$b((function*(){return Ma._conversationsManager?Ma._conversationsManager.sendMessage(ma,ba,va):(oo.warn("Conversations not available yet."),null)}))()}getMessages(ma,ba){var va=this;return p$b((function*(){return va._conversationsManager?va._conversationsManager.getMessages(ma,ba):(oo.warn("Conversations not available yet."),null)}))()}markAsRead(ma){var ba=this;return p$b((function*(){return ba._conversationsManager?ba._conversationsManager.markAsRead(ma):(oo.warn("Conversations not available yet."),null)}))()}getTickets(ma){var ba=this;return p$b((function*(){return ba._conversationsManager?ba._conversationsManager.getTickets(ma):(oo.warn("Conversations not available yet."),null)}))()}getCurrentTicketId(){var ma,ba;return(ma=(ba=this._conversationsManager)==null?void 0:ba.getCurrentTicketId())!==null&&ma!==void 0?ma:null}getWidgetSessionId(){var ma,ba;return(ma=(ba=this._conversationsManager)==null?void 0:ba.getWidgetSessionId())!==null&&ma!==void 0?ma:null}}class lo{constructor(ma){var ba;this.ke=!1,this.Pe=!1,this._instance=ma,this._instance&&(ba=this._instance.config.logs)!=null&&ba.captureConsoleLogs&&(this.ke=!0)}onRemoteConfig(ma){var ba,va=(ba=ma.logs)==null?void 0:ba.captureConsoleLogs;!j$b(va)&&va&&(this.ke=!0,this.loadIfEnabled())}reset(){}loadIfEnabled(){if(this.ke&&!this.Pe){var ma=Si("[logs]"),ba=v$8?.__PosthogExtensions__;if(ba){var va=ba.loadExternalDependency;va?va(this._instance,"logs",(Ma=>{var wl;Ma||(wl=ba.logs)==null||!wl.initializeLogs?ma.error("Could not load logs script",Ma):(ba.logs.initializeLogs(this._instance),this.Pe=!0)})):ma.error("PostHog loadExternalDependency extension not found.")}else ma.error("PostHog Extensions not found.")}}}var uo=Si("[RateLimiter]");class ho{constructor(ma){var ba,va;this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=Ma=>{var wl=Ma.text;if(wl&&wl.length)try{(JSON.parse(wl).quota_limited||[]).forEach((El=>{uo.info((El||"events")+" is quota limited."),this.serverLimits[El]=new Date().getTime()+6e4}))}catch(El){return void uo.warn('could not rate limit - continuing. Error: "'+El?.message+'"',{text:wl})}},this.instance=ma,this.captureEventsPerSecond=((ba=ma.config.rate_limiting)==null?void 0:ba.events_per_second)||10,this.captureEventsBurstLimit=Math.max(((va=ma.config.rate_limiting)==null?void 0:va.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond),this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}clientRateLimitContext(ma){var ba,va,Ma;ma===void 0&&(ma=!1);var wl=new Date().getTime(),El=(ba=(va=this.instance.persistence)==null?void 0:va.get_property(ve$3))!==null&&ba!==void 0?ba:{tokens:this.captureEventsBurstLimit,last:wl};El.tokens+=(wl-El.last)/1e3*this.captureEventsPerSecond,El.last=wl,El.tokens>this.captureEventsBurstLimit&&(El.tokens=this.captureEventsBurstLimit);var Sl=El.tokens<1;return Sl||ma||(El.tokens=Math.max(0,El.tokens-1)),!Sl||this.lastEventRateLimited||ma||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+this.captureEventsPerSecond+" events per second and "+this.captureEventsBurstLimit+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=Sl,(Ma=this.instance.persistence)==null||Ma.set_property(ve$3,El),{isRateLimited:Sl,remainingTokens:El.tokens}}isServerRateLimited(ma){var ba=this.serverLimits[ma||"events"]||!1;return ba!==!1&&new Date().getTime()<ba}}var vo=Si("[RemoteConfig]");class co{constructor(ma){this._instance=ma}get remoteConfig(){var ma;return(ma=v$8._POSTHOG_REMOTE_CONFIG)==null||(ma=ma[this._instance.config.token])==null?void 0:ma.config}Te(ma){var ba,va;(ba=v$8.__PosthogExtensions__)!=null&&ba.loadExternalDependency?(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,"remote-config",(()=>ma(this.remoteConfig))):(vo.error("PostHog Extensions not found. Cannot load remote config."),ma())}Ie(ma){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback:ba=>{ma(ba.json)}})}load(){try{if(this.remoteConfig)return vo.info("Using preloaded remote config",this.remoteConfig),void this.yi(this.remoteConfig);if(this._instance.O())return void vo.warn("Remote config is disabled. Falling back to local config.");this.Te((ma=>{if(!ma)return vo.info("No config found after loading remote JS config. Falling back to JSON."),void this.Ie((ba=>{this.yi(ba)}));this.yi(ma)}))}catch(ma){vo.error("Error loading remote config",ma)}}yi(ma){ma?this._instance.config.__preview_remote_config?(this._instance.yi(ma),ma.hasFeatureFlags!==!1&&this._instance.featureFlags.ensureFlagsLoaded()):vo.info("__preview_remote_config is disabled. Logging config instead",ma):vo.error("Failed to fetch remote config from PostHog.")}}var fo=3e3;class po{constructor(ma,ba){this.Ce=!0,this.Re=[],this.Fe=K$6(ba?.flush_interval_ms||fo,250,5e3,$i.createLogger("flush interval"),fo),this.Me=ma}enqueue(ma){this.Re.push(ma),this.Oe||this.Ae()}unload(){this.De();var ma=this.Re.length>0?this.je():{},ba=Object.values(ma);[...ba.filter((va=>va.url.indexOf("/e")===0)),...ba.filter((va=>va.url.indexOf("/e")!==0))].map((va=>{this.Me(g$8({},va,{transport:"sendBeacon"}))}))}enable(){this.Ce=!1,this.Ae()}Ae(){var ma=this;this.Ce||(this.Oe=setTimeout((()=>{if(this.De(),this.Re.length>0){var ba=this.je(),va=function(){var wl=ba[Ma],El=new Date().getTime();wl.data&&I$9(wl.data)&&Ci(wl.data,(Sl=>{Sl.offset=Math.abs(Sl.timestamp-El),delete Sl.timestamp})),ma.Me(wl)};for(var Ma in ba)va()}}),this.Fe))}De(){clearTimeout(this.Oe),this.Oe=void 0}je(){var ma={};return Ci(this.Re,(ba=>{var va,Ma=ba,wl=(Ma?Ma.batchKey:null)||Ma.url;M$6(ma[wl])&&(ma[wl]=g$8({},Ma,{data:[]})),(va=ma[wl].data)==null||va.push(Ma.data)})),this.Re=[],ma}}var go=["retriesPerformedSoFar"];class _o{constructor(ma){this.Le=!1,this.Ne=3e3,this.Re=[],this._instance=ma,this.Re=[],this.Ue=!0,!M$6(t$9)&&"onLine"in t$9.navigator&&(this.Ue=t$9.navigator.onLine,this.ze=()=>{this.Ue=!0,this.Lt()},this.He=()=>{this.Ue=!1},zi(t$9,"online",this.ze),zi(t$9,"offline",this.He))}get length(){return this.Re.length}retriableRequest(ma){var{retriesPerformedSoFar:ba}=ma,va=_$8(ma,go);N$7(ba)&&(va.url=un$1(va.url,{retry_count:ba})),this._instance._send_request(g$8({},va,{callback:Ma=>{Ma.statusCode!==200&&(Ma.statusCode<400||Ma.statusCode>=500)&&(ba??0)<10?this.Be(g$8({retriesPerformedSoFar:ba},va)):va.callback==null||va.callback(Ma)}}))}Be(ma){var ba=ma.retriesPerformedSoFar||0;ma.retriesPerformedSoFar=ba+1;var va=(function(El){var Sl=3e3*Math.pow(2,El),Cl=Sl/2,Mc=Math.min(18e5,Sl),dp=(Math.random()-.5)*(Mc-Cl);return Math.ceil(Mc+dp)})(ba),Ma=Date.now()+va;this.Re.push({retryAt:Ma,requestOptions:ma});var wl="Enqueued failed request for retry in "+va;navigator.onLine||(wl+=" (Browser is offline)"),$i.warn(wl),this.Le||(this.Le=!0,this.qe())}qe(){if(this.We&&clearTimeout(this.We),this.Re.length===0)return this.Le=!1,void(this.We=void 0);this.We=setTimeout((()=>{this.Ue&&this.Re.length>0&&this.Lt(),this.qe()}),this.Ne)}Lt(){var ma=Date.now(),ba=[],va=this.Re.filter((wl=>wl.retryAt<ma||(ba.push(wl),!1)));if(this.Re=ba,va.length>0)for(var{requestOptions:Ma}of va)this.retriableRequest(Ma)}unload(){for(var{requestOptions:ma}of(this.We&&(clearTimeout(this.We),this.We=void 0),this.Le=!1,M$6(t$9)||(this.ze&&(t$9.removeEventListener("online",this.ze),this.ze=void 0),this.He&&(t$9.removeEventListener("offline",this.He),this.He=void 0)),this.Re))try{this._instance._send_request(g$8({},ma,{transport:"sendBeacon"}))}catch(ba){$i.error(ba)}this.Re=[]}}class mo{constructor(ma){this.Ge=()=>{var ba,va,Ma,wl;this.Ve||(this.Ve={});var El=this.scrollElement(),Sl=this.scrollY(),Cl=El?Math.max(0,El.scrollHeight-El.clientHeight):0,Mc=Sl+(El?.clientHeight||0),dp=El?.scrollHeight||0;this.Ve.lastScrollY=Math.ceil(Sl),this.Ve.maxScrollY=Math.max(Sl,(ba=this.Ve.maxScrollY)!==null&&ba!==void 0?ba:0),this.Ve.maxScrollHeight=Math.max(Cl,(va=this.Ve.maxScrollHeight)!==null&&va!==void 0?va:0),this.Ve.lastContentY=Mc,this.Ve.maxContentY=Math.max(Mc,(Ma=this.Ve.maxContentY)!==null&&Ma!==void 0?Ma:0),this.Ve.maxContentHeight=Math.max(dp,(wl=this.Ve.maxContentHeight)!==null&&wl!==void 0?wl:0)},this._instance=ma}getContext(){return this.Ve}resetContext(){var ma=this.Ve;return setTimeout(this.Ge,0),ma}startMeasuringScrollPosition(){zi(t$9,"scroll",this.Ge,{capture:!0}),zi(t$9,"scrollend",this.Ge,{capture:!0}),zi(t$9,"resize",this.Ge)}scrollElement(){if(!this._instance.config.scroll_root_selector)return t$9?.document.documentElement;var ma=I$9(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector];for(var ba of ma){var va=t$9?.document.querySelector(ba);if(va)return va}}scrollY(){if(this._instance.config.scroll_root_selector){var ma=this.scrollElement();return ma&&ma.scrollTop||0}return t$9&&(t$9.scrollY||t$9.pageYOffset||t$9.document.documentElement.scrollTop)||0}scrollX(){if(this._instance.config.scroll_root_selector){var ma=this.scrollElement();return ma&&ma.scrollLeft||0}return t$9&&(t$9.scrollX||t$9.pageXOffset||t$9.document.documentElement.scrollLeft)||0}}var yo=ya=>ds(ya?.config.mask_personal_data_properties,ya?.config.custom_personal_data_properties);class bo{constructor(ma,ba,va,Ma){this.Je=wl=>{var El=this.Ke();if(!El||El.sessionId!==wl){var Sl={sessionId:wl,props:this.Ye(this._instance)};this.Xe.register({[de$4]:Sl})}},this._instance=ma,this.Qe=ba,this.Xe=va,this.Ye=Ma||yo,this.Qe.onSessionId(this.Je)}Ke(){return this.Xe.props[de$4]}getSetOnceProps(){var ma,ba=(ma=this.Ke())==null?void 0:ma.props;return ba?"r"in ba?vs(ba):{$referring_domain:ba.referringDomain,$pathname:ba.initialPathName,utm_source:ba.utm_source,utm_campaign:ba.utm_campaign,utm_medium:ba.utm_medium,utm_content:ba.utm_content,utm_term:ba.utm_term}:{}}getSessionProps(){var ma={};return Ci(Di(this.getSetOnceProps()),((ba,va)=>{va==="$current_url"&&(va="url"),ma["$session_entry_"+E$8(va)]=ba})),ma}}var wo=Si("[SessionId]");class xo{on(ma,ba){return this.Ze.on(ma,ba)}constructor(ma,ba,va){var Ma;if(this.tr=[],this.ir=void 0,this.Ze=new to,this.er=(dp,pp)=>!(!N$7(dp)||!N$7(pp))&&Math.abs(dp-pp)>this.sessionTimeoutMs,!ma.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(ma.config.cookieless_mode==="always")throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.R=ma.config,this.Xe=ma.persistence,this.rr=void 0,this.sr=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.nr=ba||br,this.ar=va||br;var wl=this.R.persistence_name||this.R.token,El=this.R.session_idle_timeout_seconds||1800;if(this._sessionTimeoutMs=1e3*K$6(El,60,36e3,wo.createLogger("session_idle_timeout_seconds"),1800),ma.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.lr(),this.ur="ph_"+wl+"_window_id",this.hr="ph_"+wl+"_primary_window_exists",this.dr()){var Sl=Fr.W(this.ur),Cl=Fr.W(this.hr);Sl&&!Cl?this.rr=Sl:Fr.V(this.ur),Fr.G(this.hr,!0)}if((Ma=this.R.bootstrap)!=null&&Ma.sessionID)try{var Mc=(dp=>{var pp=dp.replace(/-/g,"");if(pp.length!==32)throw new Error("Not a valid UUID");if(pp[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(pp.substring(0,12),16)})(this.R.bootstrap.sessionID);this.vr(this.R.bootstrap.sessionID,new Date().getTime(),Mc)}catch(dp){wo.error("Invalid sessionID in bootstrap",dp)}this.cr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(ma){return M$6(this.tr)&&(this.tr=[]),this.tr.push(ma),this.sr&&ma(this.sr,this.rr),()=>{this.tr=this.tr.filter((ba=>ba!==ma))}}dr(){return this.R.persistence!=="memory"&&!this.Xe.Si&&Fr.H()}pr(ma){ma!==this.rr&&(this.rr=ma,this.dr()&&Fr.G(this.ur,ma))}gr(){return this.rr?this.rr:this.dr()?Fr.W(this.ur):null}vr(ma,ba,va){ma===this.sr&&ba===this._sessionActivityTimestamp&&va===this._sessionStartTimestamp||(this._sessionStartTimestamp=va,this._sessionActivityTimestamp=ba,this.sr=ma,this.Xe.register({[ie$6]:[ba,ma,va]}))}_r(){var ma=this.Xe.props[ie$6];return I$9(ma)&&ma.length===2&&ma.push(ma[0]),ma||[0,null,0]}resetSessionId(){this.vr(null,null,null)}destroy(){clearTimeout(this.mr),this.mr=void 0,this.ir&&t$9&&(t$9.removeEventListener("beforeunload",this.ir,{capture:!1}),this.ir=void 0),this.tr=[]}cr(){this.ir=()=>{this.dr()&&Fr.V(this.hr)},zi(t$9,"beforeunload",this.ir,{capture:!1})}checkAndGetSessionAndWindowId(ma,ba){if(ma===void 0&&(ma=!1),ba===void 0&&(ba=null),this.R.cookieless_mode==="always")throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var va=ba||new Date().getTime(),[Ma,wl,El]=this._r(),Sl=this.gr(),Cl=N$7(El)&&Math.abs(va-El)>864e5,Mc=!1,dp=!wl,pp=!dp&&!ma&&this.er(va,Ma);dp||pp||Cl?(wl=this.nr(),Sl=this.ar(),wo.info("new session ID generated",{sessionId:wl,windowId:Sl,changeReason:{noSessionId:dp,activityTimeout:pp,sessionPastMaximumLength:Cl}}),El=va,Mc=!0):Sl||(Sl=this.ar(),Mc=!0);var hp=N$7(Ma)&&ma&&!Cl?Ma:va,Ef=N$7(El)?El:new Date().getTime();return this.pr(Sl),this.vr(wl,hp,Ef),ma||this.lr(),Mc&&this.tr.forEach((Zf=>Zf(wl,Sl,Mc?{noSessionId:dp,activityTimeout:pp,sessionPastMaximumLength:Cl}:void 0))),{sessionId:wl,windowId:Sl,sessionStartTimestamp:Ef,changeReason:Mc?{noSessionId:dp,activityTimeout:pp,sessionPastMaximumLength:Cl}:void 0,lastActivityTimestamp:Ma}}lr(){clearTimeout(this.mr),this.mr=setTimeout((()=>{var[ma]=this._r();if(this.er(new Date().getTime(),ma)){var ba=this.sr;this.resetSessionId(),this.Ze.emit("forcedIdleReset",{idleSessionId:ba})}}),1.1*this.sessionTimeoutMs)}}var Eo=["$set_once","$set"],$o=Si("[SiteApps]");class So{constructor(ma){this._instance=ma,this.yr=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}br(ma,ba){if(ba){var va=this.globalsForEvent(ba);this.yr.push(va),this.yr.length>1e3&&(this.yr=this.yr.slice(10))}}get siteAppLoaders(){var ma;return(ma=v$8._POSTHOG_REMOTE_CONFIG)==null||(ma=ma[this._instance.config.token])==null?void 0:ma.siteApps}init(){if(this.isEnabled){var ma=this._instance.Hi(this.br.bind(this));this.wr=()=>{ma(),this.yr=[],this.wr=void 0}}}globalsForEvent(ma){var ba,va,Ma,wl,El,Sl,Cl;if(!ma)throw new Error("Event payload is required");var Mc={},dp=this._instance.get_property("$groups")||[],pp=this._instance.get_property("$stored_group_properties")||{};for(var[hp,Ef]of Object.entries(pp))Mc[hp]={id:dp[hp],type:hp,properties:Ef};var{$set_once:Zf,$set:Jf}=ma;return{event:g$8({},_$8(ma,Eo),{properties:g$8({},ma.properties,Jf?{$set:g$8({},(ba=(va=ma.properties)==null?void 0:va.$set)!==null&&ba!==void 0?ba:{},Jf)}:{},Zf?{$set_once:g$8({},(Ma=(wl=ma.properties)==null?void 0:wl.$set_once)!==null&&Ma!==void 0?Ma:{},Zf)}:{}),elements_chain:(El=(Sl=ma.properties)==null?void 0:Sl.$elements_chain)!==null&&El!==void 0?El:"",distinct_id:(Cl=ma.properties)==null?void 0:Cl.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:Mc}}setupSiteApp(ma){var ba=this.apps[ma.id],va=()=>{var Sl;!ba.errored&&this.yr.length&&($o.info("Processing "+this.yr.length+" events for site app with id "+ma.id),this.yr.forEach((Cl=>ba.processEvent==null?void 0:ba.processEvent(Cl))),ba.processedBuffer=!0),Object.values(this.apps).every((Cl=>Cl.processedBuffer||Cl.errored))&&((Sl=this.wr)==null||Sl.call(this))},Ma=!1,wl=Sl=>{ba.errored=!Sl,ba.loaded=!0,$o.info("Site app with id "+ma.id+" "+(Sl?"loaded":"errored")),Ma&&va()};try{var{processEvent:El}=ma.init({posthog:this._instance,callback:Sl=>{wl(Sl)}});El&&(ba.processEvent=El),Ma=!0}catch(Sl){$o.error("Error while initializing PostHog app with config id "+ma.id,Sl),wl(!1)}if(Ma&&ba.loaded)try{va()}catch(Sl){$o.error("Error while processing buffered events PostHog app with config id "+ma.id,Sl),ba.errored=!0}}Er(){var ma=this.siteAppLoaders||[];for(var ba of ma)this.apps[ba.id]={id:ba.id,loaded:!1,errored:!1,processedBuffer:!1};for(var va of ma)this.setupSiteApp(va)}$r(ma){if(Object.keys(this.apps).length!==0){var ba=this.globalsForEvent(ma);for(var va of Object.values(this.apps))try{va.processEvent==null||va.processEvent(ba)}catch(Ma){$o.error("Error while processing event "+ma.event+" for site app "+va.id,Ma)}}}onRemoteConfig(ma){var ba,va,Ma,wl=this;if((ba=this.siteAppLoaders)!=null&&ba.length)return this.isEnabled?(this.Er(),void this._instance.on("eventCaptured",(Mc=>this.$r(Mc)))):void $o.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((va=this.wr)==null||va.call(this),(Ma=ma.siteApps)!=null&&Ma.length)if(this.isEnabled){var El=function(Mc){var dp;v$8["__$$ph_site_app_"+Mc]=wl._instance,(dp=v$8.__PosthogExtensions__)==null||dp.loadSiteApp==null||dp.loadSiteApp(wl._instance,Cl,(pp=>{if(pp)return $o.error("Error while initializing PostHog app with config id "+Mc,pp)}))};for(var{id:Sl,url:Cl}of ma.siteApps)El(Sl)}else $o.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}var ko=function(ya,ma){if(!ya)return!1;var ba=ya.userAgent;if(ba&&y$a(ba,ma))return!0;try{var va=ya?.userAgentData;if(va!=null&&va.brands&&va.brands.some((Ma=>y$a(Ma?.brand,ma))))return!0}catch{}return!!ya.webdriver},Po=(function(ya){return ya.US="us",ya.EU="eu",ya.CUSTOM="custom",ya})({}),To="i.posthog.com";class Io{constructor(ma){this.Sr={},this.instance=ma}get apiHost(){var ma=this.instance.config.api_host.trim().replace(/\/$/,"");return ma==="https://app.posthog.com"?"https://us.i.posthog.com":ma}get flagsApiHost(){var ma=this.instance.config.flags_api_host;return ma?ma.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var ma,ba=(ma=this.instance.config.ui_host)==null?void 0:ma.replace(/\/$/,"");return ba||(ba=this.apiHost.replace("."+To,".posthog.com")),ba==="https://app.posthog.com"?"https://us.posthog.com":ba}get region(){return this.Sr[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Sr[this.apiHost]=Po.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Sr[this.apiHost]=Po.EU:this.Sr[this.apiHost]=Po.CUSTOM),this.Sr[this.apiHost]}endpointFor(ma,ba){if(ba===void 0&&(ba=""),ba&&(ba=ba[0]==="/"?ba:"/"+ba),ma==="ui")return this.uiHost+ba;if(ma==="flags")return this.flagsApiHost+ba;if(this.region===Po.CUSTOM)return this.apiHost+ba;var va=To+ba;switch(ma){case"assets":return"https://"+this.region+"-assets."+va;case"api":return"https://"+this.region+"."+va}}}var Co={icontains:(ya,ma)=>!!t$9&&ma.href.toLowerCase().indexOf(ya.toLowerCase())>-1,not_icontains:(ya,ma)=>!!t$9&&ma.href.toLowerCase().indexOf(ya.toLowerCase())===-1,regex:(ya,ma)=>!!t$9&&cn$1(ma.href,ya),not_regex:(ya,ma)=>!!t$9&&!cn$1(ma.href,ya),exact:(ya,ma)=>ma.href===ya,is_not:(ya,ma)=>ma.href!==ya};class Ro{constructor(ma){var ba=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(va){va===void 0&&(va=!1),ba.getWebExperiments((Ma=>{Ro.kr("retrieved web experiments from the server"),ba.Pr=new Map,Ma.forEach((wl=>{if(wl.feature_flag_key){var El;ba.Pr&&(Ro.kr("setting flag key ",wl.feature_flag_key," to web experiment ",wl),(El=ba.Pr)==null||El.set(wl.feature_flag_key,wl));var Sl=ba._instance.getFeatureFlag(wl.feature_flag_key);O$5(Sl)&&wl.variants[Sl]&&ba.Tr(wl.name,Sl,wl.variants[Sl].transforms)}else if(wl.variants)for(var Cl in wl.variants){var Mc=wl.variants[Cl];Ro.Ir(Mc)&&ba.Tr(wl.name,Cl,Mc.transforms)}}))}),va)},this._instance=ma,this._instance.onFeatureFlags((va=>{this.onFeatureFlags(va)}))}onFeatureFlags(ma){if(this._is_bot())Ro.kr("Refusing to render web experiment since the viewer is a likely bot");else if(!this._instance.config.disable_web_experiments){if(j$b(this.Pr))return this.Pr=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Ro.kr("applying feature flags",ma),ma.forEach((ba=>{var va;if(this.Pr&&(va=this.Pr)!=null&&va.has(ba)){var Ma,wl=this._instance.getFeatureFlag(ba),El=(Ma=this.Pr)==null?void 0:Ma.get(ba);wl&&El!=null&&El.variants[wl]&&this.Tr(El.name,wl,El.variants[wl].transforms)}}))}}previewWebExperiment(){var ma=Ro.getWindowLocation();if(ma!=null&&ma.search){var ba=sr(ma?.search,"__experiment_id"),va=sr(ma?.search,"__experiment_variant");ba&&va&&(Ro.kr("previewing web experiments "+ba+" && "+va),this.getWebExperiments((Ma=>{this.Cr(parseInt(ba),va,Ma)}),!1,!0))}}loadIfEnabled(){this._instance.config.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(ma,ba,va){if(this._instance.config.disable_web_experiments&&!va)return ma([]);var Ma=this._instance.get_property("$web_experiments");if(Ma&&!ba)return ma(Ma);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this._instance.config.token),method:"GET",callback:wl=>{if(wl.statusCode!==200||!wl.json)return ma([]);var El=wl.json.experiments||[];return ma(El)}})}Cr(ma,ba,va){var Ma=va.filter((wl=>wl.id===ma));Ma&&Ma.length>0&&(Ro.kr("Previewing web experiment ["+Ma[0].name+"] with variant ["+ba+"]"),this.Tr(Ma[0].name,ba,Ma[0].variants[ba].transforms))}static Ir(ma){return!j$b(ma.conditions)&&Ro.Rr(ma)&&Ro.Fr(ma)}static Rr(ma){var ba;if(j$b(ma.conditions)||j$b((ba=ma.conditions)==null?void 0:ba.url))return!0;var va,Ma,wl,El=Ro.getWindowLocation();return!!El&&((va=ma.conditions)==null||!va.url||Co[(Ma=(wl=ma.conditions)==null?void 0:wl.urlMatchType)!==null&&Ma!==void 0?Ma:"icontains"](ma.conditions.url,El))}static getWindowLocation(){return t$9?.location}static Fr(ma){var ba;if(j$b(ma.conditions)||j$b((ba=ma.conditions)==null?void 0:ba.utm))return!0;var va=os$1();if(va.utm_source){var Ma,wl,El,Sl,Cl,Mc,dp,pp,hp=(Ma=ma.conditions)==null||(Ma=Ma.utm)==null||!Ma.utm_campaign||((wl=ma.conditions)==null||(wl=wl.utm)==null?void 0:wl.utm_campaign)==va.utm_campaign,Ef=(El=ma.conditions)==null||(El=El.utm)==null||!El.utm_source||((Sl=ma.conditions)==null||(Sl=Sl.utm)==null?void 0:Sl.utm_source)==va.utm_source,Zf=(Cl=ma.conditions)==null||(Cl=Cl.utm)==null||!Cl.utm_medium||((Mc=ma.conditions)==null||(Mc=Mc.utm)==null?void 0:Mc.utm_medium)==va.utm_medium,Jf=(dp=ma.conditions)==null||(dp=dp.utm)==null||!dp.utm_term||((pp=ma.conditions)==null||(pp=pp.utm)==null?void 0:pp.utm_term)==va.utm_term;return hp&&Zf&&Jf&&Ef}return!1}static kr(ma){for(var ba=arguments.length,va=new Array(ba>1?ba-1:0),Ma=1;Ma<ba;Ma++)va[Ma-1]=arguments[Ma];$i.info("[WebExperiments] "+ma,va)}Tr(ma,ba,va){this._is_bot()?Ro.kr("Refusing to render web experiment since the viewer is a likely bot"):ba!=="control"?va.forEach((Ma=>{if(Ma.selector){var wl;Ro.kr("applying transform of variant "+ba+" for experiment "+ma+" ",Ma);var El=(wl=document)==null?void 0:wl.querySelectorAll(Ma.selector);El?.forEach((Sl=>{var Cl=Sl;Ma.html&&(Cl.innerHTML=Ma.html),Ma.css&&Cl.setAttribute("style",Ma.css)}))}})):Ro.kr("Control variants leave the page unmodified.")}_is_bot(){return n$9&&this._instance?ko(n$9,this._instance.config.custom_blocked_useragents):void 0}}var Fo=Si("[PostHog ExternalIntegrations]"),Mo$1={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class Oo{constructor(ma){this._instance=ma}it(ma,ba){var va;(va=v$8.__PosthogExtensions__)==null||va.loadExternalDependency==null||va.loadExternalDependency(this._instance,ma,(Ma=>{if(Ma)return Fo.error("failed to load script",Ma);ba()}))}startIfEnabledOrStop(){var ma=this,ba=function(El){var Sl,Cl,Mc;!Ma||(Sl=v$8.__PosthogExtensions__)!=null&&(Sl=Sl.integrations)!=null&&Sl[El]||ma.it(Mo$1[El],(()=>{var dp;(dp=v$8.__PosthogExtensions__)==null||(dp=dp.integrations)==null||(dp=dp[El])==null||dp.start(ma._instance)})),!Ma&&(Cl=v$8.__PosthogExtensions__)!=null&&(Cl=Cl.integrations)!=null&&Cl[El]&&((Mc=v$8.__PosthogExtensions__)==null||(Mc=Mc.integrations)==null||(Mc=Mc[El])==null||Mc.stop())};for(var[va,Ma]of Object.entries((wl=this._instance.config.integrations)!==null&&wl!==void 0?wl:{})){var wl;ba(va)}}}var Ao="[SessionRecording]",Do=Si(Ao);class jo{get started(){var ma;return!((ma=this.Mr)==null||!ma.isStarted)}get status(){return this.Mr?this.Mr.status:this.Or&&!this.Ar?"disabled":"lazy_loading"}constructor(ma){if(this._forceAllowLocalhostNetworkCapture=!1,this.Or=!1,this.Dr=void 0,this._instance=ma,!this._instance.sessionManager)throw Do.error("started without valid sessionManager"),new Error(Ao+" started without valid sessionManager. This is a bug.");if(this._instance.config.cookieless_mode==="always")throw new Error(Ao+' cannot be used with cookieless_mode="always"')}get Ar(){var ma,ba=!((ma=this._instance.get_property(te$5))==null||!ma.enabled),va=!this._instance.config.disable_session_recording,Ma=this._instance.config.disable_session_recording||this._instance.consent.isOptedOut();return t$9&&ba&&va&&!Ma}startIfEnabledOrStop(ma){var ba;if(!this.Ar||(ba=this.Mr)==null||!ba.isStarted){var va=!M$6(Object.assign)&&!M$6(Array.from);this.Ar&&va?(this.jr(ma),Do.info("starting")):this.stopRecording()}}jr(ma){var ba,va,Ma;this.Ar&&(v$8!=null&&(ba=v$8.__PosthogExtensions__)!=null&&(ba=ba.rrweb)!=null&&ba.record&&(va=v$8.__PosthogExtensions__)!=null&&va.initSessionRecording?this.Lr(ma):(Ma=v$8.__PosthogExtensions__)==null||Ma.loadExternalDependency==null||Ma.loadExternalDependency(this._instance,this.Nr,(wl=>{if(wl)return Do.error("could not load recorder",wl);this.Lr(ma)})))}stopRecording(){var ma,ba;(ma=this.Dr)==null||ma.call(this),this.Dr=void 0,(ba=this.Mr)==null||ba.stop()}Ur(){var ma;(ma=this._instance.persistence)==null||ma.unregister(ee$4)}zr(ma){if(this._instance.persistence){var ba,va,Ma=this._instance.persistence,wl=()=>{var El=ma.sessionRecording===!1?void 0:ma.sessionRecording,Sl=El?.sampleRate,Cl=j$b(Sl)?null:parseFloat(Sl);j$b(Cl)&&this.Ur();var Mc=El?.minimumDurationMilliseconds;Ma.register({[te$5]:g$8({enabled:!!El},El,{networkPayloadCapture:g$8({capturePerformance:ma.capturePerformance},El?.networkPayloadCapture),canvasRecording:{enabled:El?.recordCanvas,fps:El?.canvasFps,quality:El?.canvasQuality},sampleRate:Cl,minimumDurationMilliseconds:M$6(Mc)?null:Mc,endpoint:El?.endpoint,triggerMatchType:El?.triggerMatchType,masking:El?.masking,urlTriggers:El?.urlTriggers})})};wl(),(ba=this.Dr)==null||ba.call(this),this.Dr=(va=this._instance.sessionManager)==null?void 0:va.onSessionId(wl)}}onRemoteConfig(ma){"sessionRecording"in ma?ma.sessionRecording!==!1?(this.zr(ma),this.Or=!0,this.startIfEnabledOrStop()):this.Or=!0:Do.info("skipping remote config with no sessionRecording",ma)}log(ma,ba){var va;ba===void 0&&(ba="log"),(va=this.Mr)!=null&&va.log?this.Mr.log(ma,ba):Do.warn("log called before recorder was ready")}get Nr(){var ma,ba,va=(ma=this._instance)==null||(ma=ma.persistence)==null?void 0:ma.get_property(te$5);return(va==null||(ba=va.scriptConfig)==null?void 0:ba.script)||"lazy-recorder"}Lr(ma){var ba,va;if((ba=v$8.__PosthogExtensions__)==null||!ba.initSessionRecording)throw Error("Called on script loaded before session recording is available");this.Mr||(this.Mr=(va=v$8.__PosthogExtensions__)==null?void 0:va.initSessionRecording(this._instance),this.Mr._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),this.Mr.start(ma)}onRRwebEmit(ma){var ba;(ba=this.Mr)==null||ba.onRRwebEmit==null||ba.onRRwebEmit(ma)}overrideLinkedFlag(){var ma,ba;this.Mr||(ba=this._instance.persistence)==null||ba.register({$replay_override_linked_flag:!0}),(ma=this.Mr)==null||ma.overrideLinkedFlag()}overrideSampling(){var ma,ba;this.Mr||(ba=this._instance.persistence)==null||ba.register({$replay_override_sampling:!0}),(ma=this.Mr)==null||ma.overrideSampling()}overrideTrigger(ma){var ba,va;this.Mr||(va=this._instance.persistence)==null||va.register({[ma==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(ba=this.Mr)==null||ba.overrideTrigger(ma)}get sdkDebugProperties(){var ma;return((ma=this.Mr)==null?void 0:ma.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent(ma,ba){var va;return!((va=this.Mr)==null||!va.tryAddCustomEvent(ma,ba))}}var Lo={},No=()=>{},Uo="posthog",zo=!an$1&&d$7?.indexOf("MSIE")===-1&&d$7?.indexOf("Mozilla")===-1,Ho=ya=>{var ma;return g$8({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Ni(o$d?.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:No,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:ya??"unset",__preview_deferred_init_extensions:!1,debug:a$h&&O$5(a$h?.search)&&a$h.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!0,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t$9==null||(ma=t$9.location)==null?void 0:ma.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error:ba=>{var va="Bad HTTP status: "+ba.statusCode+" "+ba.text;$i.error(va)},get_device_id:ba=>ba,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:"identified_only",before_send:void 0,request_queue_config:{flush_interval_ms:fo},error_tracking:{},_onCapture:No,__preview_eager_load_replay:!1},(ba=>({rageclick:!(ba&&ba>="2025-11-30")||{content_ignorelist:!0},capture_pageview:!(ba&&ba>="2025-05-24")||"history_change",session_recording:ba&&ba>="2025-11-30"?{strictMinimumDuration:!0}:{}}))(ya))},Bo=ya=>{var ma={};M$6(ya.process_person)||(ma.person_profiles=ya.process_person),M$6(ya.xhr_headers)||(ma.request_headers=ya.xhr_headers),M$6(ya.cookie_name)||(ma.persistence_name=ya.cookie_name),M$6(ya.disable_cookie)||(ma.disable_persistence=ya.disable_cookie),M$6(ya.store_google)||(ma.save_campaign_params=ya.store_google),M$6(ya.verbose)||(ma.debug=ya.verbose);var ba=Ri({},ma,ya);return I$9(ya.property_blacklist)&&(M$6(ya.property_denylist)?ba.property_denylist=ya.property_blacklist:I$9(ya.property_denylist)?ba.property_denylist=[...ya.property_blacklist,...ya.property_denylist]:$i.error("Invalid value for property_denylist config: "+ya.property_denylist)),ba};class qo{constructor(){this.__forceAllowLocalhost=!1}get Hr(){return this.__forceAllowLocalhost}set Hr(ma){$i.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=ma}}class Wo{get decideEndpointWasHit(){var ma,ba;return(ma=(ba=this.featureFlags)==null?void 0:ba.hasLoadedFlags)!==null&&ma!==void 0&&ma}get flagsEndpointWasHit(){var ma,ba;return(ma=(ba=this.featureFlags)==null?void 0:ba.hasLoadedFlags)!==null&&ma!==void 0&&ma}constructor(){this.webPerformance=new qo,this.Br=!1,this.version=c$e.LIB_VERSION,this.qr=new to,this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=Ho(),this.SentryIntegration=Vr,this.sentryIntegration=ma=>(function(ba,va){var Ma=Gr(ba,va);return{name:Wr,processEvent:wl=>Ma(wl)}})(this,ma),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Wr=!1,this.Gr=null,this.Vr=null,this.Jr=null,this.featureFlags=new Rn(this),this.toolbar=new Qr(this),this.scrollManager=new mo(this),this.pageViewManager=new xs(this),this.surveys=new no(this),this.conversations=new ao(this),this.logs=new lo(this),this.experiments=new Ro(this),this.exceptions=new yn(this),this.rateLimiter=new ho(this),this.requestRouter=new Io(this),this.consent=new Or(this),this.externalIntegrations=new Oo(this),this.people={set:(ma,ba,va)=>{var Ma=O$5(ma)?{[ma]:ba}:ma;this.setPersonProperties(Ma),va?.({})},set_once:(ma,ba,va)=>{var Ma=O$5(ma)?{[ma]:ba}:ma;this.setPersonProperties(void 0,Ma),va?.({})}},this.on("eventCaptured",(ma=>$i.info('send "'+ma?.event+'"',ma)))}init(ma,ba,va){if(va&&va!==Uo){var Ma,wl=(Ma=Lo[va])!==null&&Ma!==void 0?Ma:new Wo;return wl._init(ma,ba,va),Lo[va]=wl,Lo[Uo][va]=wl,wl}return this._init(ma,ba,va)}_init(ma,ba,va){var Ma;if(ba===void 0&&(ba={}),M$6(ma)||A$7(ma))return $i.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},ba.debug=this.Kr(ba.debug),this.Yr=ba,this.Xr=[],ba.person_profiles&&(this.Vr=ba.person_profiles),this.set_config(Ri({},Ho(ba.defaults),Bo(ba),{name:va,token:ma})),this.config.on_xhr_error&&$i.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=ba.disable_compression?void 0:Es.GZipJS;var wl=this.Qr();this.persistence=new Mn(this.config,wl),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Mn(g$8({},this.config,{persistence:"sessionStorage"}),wl);var El=g$8({},this.persistence.props),Sl=g$8({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Zr=new po((mg=>this.ts(mg)),this.config.request_queue_config),this.es=new _o(this),this.__request_queue=[];var Cl=this.config.cookieless_mode==="always"||this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut();if(Cl||(this.sessionManager=new xo(this),this.sessionPropsManager=new bo(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?($i.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.rs(Cl)}),0)):($i.info("Initializing extensions synchronously"),this.rs(Cl)),c$e.DEBUG=c$e.DEBUG||this.config.debug,c$e.DEBUG&&$i.info("Starting in debug mode",{this:this,config:ba,thisC:g$8({},this.config),p:El,s:Sl}),((Ma=ba.bootstrap)==null?void 0:Ma.distinctID)!==void 0){var Mc,dp,pp=this.config.get_device_id(br()),hp=(Mc=ba.bootstrap)!=null&&Mc.isIdentifiedID?pp:ba.bootstrap.distinctID;this.persistence.set_property(he$4,(dp=ba.bootstrap)!=null&&dp.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:ba.bootstrap.distinctID,$device_id:hp})}if(this.ss()){var Ef,Zf,Jf=Object.keys(((Ef=ba.bootstrap)==null?void 0:Ef.featureFlags)||{}).filter((mg=>{var gg;return!((gg=ba.bootstrap)==null||(gg=gg.featureFlags)==null||!gg[mg])})).reduce(((mg,gg)=>{var yg;return mg[gg]=((yg=ba.bootstrap)==null||(yg=yg.featureFlags)==null?void 0:yg[gg])||!1,mg}),{}),pg=Object.keys(((Zf=ba.bootstrap)==null?void 0:Zf.featureFlagPayloads)||{}).filter((mg=>Jf[mg])).reduce(((mg,gg)=>{var yg,ay;return(yg=ba.bootstrap)!=null&&(yg=yg.featureFlagPayloads)!=null&&yg[gg]&&(mg[gg]=(ay=ba.bootstrap)==null||(ay=ay.featureFlagPayloads)==null?void 0:ay[gg]),mg}),{});this.featureFlags.receivedFeatureFlags({featureFlags:Jf,featureFlagPayloads:pg})}if(Cl)this.register_once({distinct_id:me$3,$device_id:null},"");else if(!this.get_distinct_id()){var hg=this.config.get_device_id(br());this.register_once({distinct_id:hg,$device_id:hg},""),this.persistence.set_property(he$4,"anonymous")}return zi(t$9,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),this.toolbar.maybeLoadToolbar(),ba.segment?qr(this,(()=>this.ns())):this.ns(),C$c(this.config._onCapture)&&this.config._onCapture!==No&&($i.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(mg=>this.config._onCapture(mg.event,mg)))),this.config.ip&&$i.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}rs(ma){var ba=performance.now();this.historyAutocapture=new Hr(this),this.historyAutocapture.startIfEnabled();var va=[];va.push((()=>{new ts$1(this).startIfEnabledOrStop()})),va.push((()=>{var Ma;this.siteApps=new So(this),(Ma=this.siteApps)==null||Ma.init()})),ma||va.push((()=>{this.sessionRecording=new jo(this),this.sessionRecording.startIfEnabledOrStop()})),this.config.disable_scroll_properties||va.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),va.push((()=>{this.autocapture=new cr(this),this.autocapture.startIfEnabled()})),va.push((()=>{this.surveys.loadIfEnabled()})),va.push((()=>{this.logs.loadIfEnabled()})),va.push((()=>{this.conversations.loadIfEnabled()})),va.push((()=>{this.productTours=new Dn(this),this.productTours.loadIfEnabled()})),va.push((()=>{this.heatmaps=new ws(this),this.heatmaps.startIfEnabled()})),va.push((()=>{this.webVitalsAutocapture=new ms(this)})),va.push((()=>{this.exceptionObserver=new Ur(this),this.exceptionObserver.startIfEnabledOrStop()})),va.push((()=>{this.deadClicksAutocapture=new Lr(this,jr),this.deadClicksAutocapture.startIfEnabled()})),va.push((()=>{if(this.os){var Ma=this.os;this.os=void 0,this.yi(Ma)}})),this.ls(va,ba)}ls(ma,ba){for(;ma.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-ba>=30&&ma.length>0)return void setTimeout((()=>{this.ls(ma,ba)}),0);var va=ma.shift();if(va)try{va()}catch(wl){$i.error("Error initializing extension:",wl)}}var Ma=Math.round(performance.now()-ba);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:Ma}),this.config.__preview_deferred_init_extensions&&$i.info("PostHog extensions initialized ("+Ma+"ms)")}yi(ma){var ba,va,Ma,wl,El,Sl,Cl,Mc,dp;if(!o$d||!o$d.body)return $i.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.yi(ma)}),500);this.config.__preview_deferred_init_extensions&&(this.os=ma),this.compression=void 0,ma.supportedCompression&&!this.config.disable_compression&&(this.compression=w$9(ma.supportedCompression,Es.GZipJS)?Es.GZipJS:w$9(ma.supportedCompression,Es.Base64)?Es.Base64:void 0),(ba=ma.analytics)!=null&&ba.endpoint&&(this.analyticsDefaultEndpoint=ma.analytics.endpoint),this.set_config({person_profiles:this.Vr?this.Vr:"identified_only"}),(va=this.siteApps)==null||va.onRemoteConfig(ma),(Ma=this.sessionRecording)==null||Ma.onRemoteConfig(ma),(wl=this.autocapture)==null||wl.onRemoteConfig(ma),(El=this.heatmaps)==null||El.onRemoteConfig(ma),this.surveys.onRemoteConfig(ma),this.logs.onRemoteConfig(ma),this.conversations.onRemoteConfig(ma),(Sl=this.productTours)==null||Sl.onRemoteConfig(ma),(Cl=this.webVitalsAutocapture)==null||Cl.onRemoteConfig(ma),(Mc=this.exceptionObserver)==null||Mc.onRemoteConfig(ma),this.exceptions.onRemoteConfig(ma),(dp=this.deadClicksAutocapture)==null||dp.onRemoteConfig(ma)}ns(){try{this.config.loaded(this)}catch(ma){$i.critical("`loaded` function failed",ma)}this.us(),this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.config.cookieless_mode==="always")&&this.hs()}),1),new co(this).load(),this.featureFlags.flags()}us(){var ma;this.is_capturing()&&this.config.request_batching&&((ma=this.Zr)==null||ma.enable())}_dom_loaded(){this.is_capturing()&&Ii(this.__request_queue,(ma=>this.ts(ma))),this.__request_queue=[],this.us()}_handle_unload(){var ma,ba;this.surveys.handlePageUnload(),this.config.request_batching?(this.ds()&&this.capture("$pageleave"),(ma=this.Zr)==null||ma.unload(),(ba=this.es)==null||ba.unload()):this.ds()&&this.capture("$pageleave",null,{transport:"sendBeacon"})}_send_request(ma){this.__loaded&&(zo?this.__request_queue.push(ma):this.rateLimiter.isServerRateLimited(ma.batchKey)||(ma.transport=ma.transport||this.config.api_transport,ma.url=un$1(ma.url,{ip:this.config.ip?1:0}),ma.headers=g$8({},this.config.request_headers,ma.headers),ma.compression=ma.compression==="best-available"?this.compression:ma.compression,ma.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(ma.disableTransport=["sendBeacon"]),ma.fetchOptions=ma.fetchOptions||this.config.fetch_options,(ba=>{var va,Ma,wl,El=g$8({},ba);El.timeout=El.timeout||6e4,El.url=un$1(El.url,{_:new Date().getTime().toString(),ver:c$e.LIB_VERSION,compression:El.compression});var Sl=(va=El.transport)!==null&&va!==void 0?va:"fetch",Cl=vn.filter((dp=>!El.disableTransport||!dp.transport||!El.disableTransport.includes(dp.transport))),Mc=(Ma=(wl=Ui(Cl,(dp=>dp.transport===Sl)))==null?void 0:wl.method)!==null&&Ma!==void 0?Ma:Cl[0].method;if(!Mc)throw new Error("No available transport method");Mc(El)})(g$8({},ma,{callback:ba=>{var va,Ma;this.rateLimiter.checkForLimiting(ba),ba.statusCode>=400&&((va=(Ma=this.config).on_request_error)==null||va.call(Ma,ba)),ma.callback==null||ma.callback(ba)}}))))}ts(ma){this.es?this.es.retriableRequest(ma):this._send_request(ma)}_execute_array(ma){var ba,va=[],Ma=[],wl=[];Ii(ma,(Sl=>{Sl&&(ba=Sl[0],I$9(ba)?wl.push(Sl):C$c(Sl)?Sl.call(this):I$9(Sl)&&ba==="alias"?va.push(Sl):I$9(Sl)&&ba.indexOf("capture")!==-1&&C$c(this[ba])?wl.push(Sl):Ma.push(Sl))}));var El=function(Sl,Cl){Ii(Sl,(function(Mc){if(I$9(Mc[0])){var dp=Cl;Ci(Mc,(function(pp){dp=dp[pp[0]].apply(dp,pp.slice(1))}))}else this[Mc[0]].apply(this,Mc.slice(1))}),Cl)};El(va,this),El(Ma,this),El(wl,this)}ss(){var ma,ba;return((ma=this.config.bootstrap)==null?void 0:ma.featureFlags)&&Object.keys((ba=this.config.bootstrap)==null?void 0:ba.featureFlags).length>0||!1}push(ma){this._execute_array([ma])}capture(ma,ba,va){var Ma;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Zr){if(this.is_capturing())if(!M$6(ma)&&O$5(ma)){var wl=!this.config.opt_out_useragent_filter&&this._is_bot();if(!(wl&&!this.config.__preview_capture_bot_pageviews)){var El=va!=null&&va.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(El==null||!El.isRateLimited){ba!=null&&ba.$current_url&&!O$5(ba?.$current_url)&&($i.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),ba==null||delete ba.$current_url),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var Sl=new Date,Cl=va?.timestamp||Sl,Mc=br(),dp={uuid:Mc,event:ma,properties:this.calculateEventProperties(ma,ba||{},Cl,Mc)};ma==="$pageview"&&this.config.__preview_capture_bot_pageviews&&wl&&(dp.event="$bot_pageview",dp.properties.$browser_type="bot"),El&&(dp.properties.$lib_rate_limit_remaining_tokens=El.remainingTokens),va?.$set&&(dp.$set=va?.$set);var pp,hp=ma!=="$groupidentify",Ef=this.vs(va?.$set_once,hp);if(Ef&&(dp.$set_once=Ef),(dp=ji(dp,va!=null&&va._noTruncate?null:this.config.properties_string_max_length)).timestamp=Cl,M$6(va?.timestamp)||(dp.properties.$event_time_override_provided=!0,dp.properties.$event_time_override_system_time=Sl),ma===Wn.DISMISSED||ma===Wn.SENT){var Zf=ba?.[Gn.SURVEY_ID],Jf=ba?.[Gn.SURVEY_ITERATION];pp={id:Zf,current_iteration:Jf},localStorage.getItem(Xn(pp))||localStorage.setItem(Xn(pp),"true"),dp.$set=g$8({},dp.$set,{[Yn({id:Zf,current_iteration:Jf},ma===Wn.SENT?"responded":"dismissed")]:!0})}else ma===Wn.SHOWN&&(dp.$set=g$8({},dp.$set,{[Gn.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));var pg=g$8({},dp.properties.$set,dp.$set);if(F$8(pg)||this.setPersonPropertiesForFlags(pg),!j$b(this.config.before_send)){var hg=this.cs(dp);if(!hg)return;dp=hg}this.qr.emit("eventCaptured",dp);var mg={method:"POST",url:(Ma=va?._url)!==null&&Ma!==void 0?Ma:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:dp,compression:"best-available",batchKey:va?._batchKey};return!this.config.request_batching||va&&(va==null||!va._batchKey)||va!=null&&va.send_instantly?this.ts(mg):this.Zr.enqueue(mg),dp}$i.critical("This capture call is ignored due to client rate limiting.")}}else $i.error("No event name provided to posthog.capture")}else $i.uninitializedWarning("posthog.capture")}Hi(ma){return this.on("eventCaptured",(ba=>ma(ba.event,ba)))}calculateEventProperties(ma,ba,va,Ma,wl){if(va=va||new Date,!this.persistence||!this.sessionPersistence)return ba;var El=wl?void 0:this.persistence.remove_event_timer(ma),Sl=g$8({},ba);if(Sl.token=this.config.token,Sl.$config_defaults=this.config.defaults,(this.config.cookieless_mode=="always"||this.config.cookieless_mode=="on_reject"&&this.consent.isExplicitlyOptedOut())&&(Sl.$cookieless_mode=!0),ma==="$snapshot"){var Cl=g$8({},this.persistence.properties(),this.sessionPersistence.properties());return Sl.distinct_id=Cl.distinct_id,(!O$5(Sl.distinct_id)&&!L$7(Sl.distinct_id)||A$7(Sl.distinct_id))&&$i.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),Sl}var Mc,dp=ps(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:pp,windowId:hp}=this.sessionManager.checkAndGetSessionAndWindowId(wl,va.getTime());Sl.$session_id=pp,Sl.$window_id=hp}this.sessionPropsManager&&Ri(Sl,this.sessionPropsManager.getSessionProps());try{var Ef;this.sessionRecording&&Ri(Sl,this.sessionRecording.sdkDebugProperties),Sl.$sdk_debug_retry_queue_size=(Ef=this.es)==null?void 0:Ef.length}catch(hg){Sl.$sdk_debug_error_capturing_properties=String(hg)}if(this.requestRouter.region===Po.CUSTOM&&(Sl.$lib_custom_api_host=this.config.api_host),Mc=ma!=="$pageview"||wl?ma!=="$pageleave"||wl?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(va):this.pageViewManager.doPageView(va,Ma),Sl=Ri(Sl,Mc),ma==="$pageview"&&o$d&&(Sl.title=o$d.title),!M$6(El)){var Zf=va.getTime()-El;Sl.$duration=parseFloat((Zf/1e3).toFixed(3))}d$7&&this.config.opt_out_useragent_filter&&(Sl.$browser_type=this._is_bot()?"bot":"browser"),(Sl=Ri({},dp,this.persistence.properties(),this.sessionPersistence.properties(),Sl)).$is_identified=this._isIdentified(),I$9(this.config.property_denylist)?Ci(this.config.property_denylist,(function(hg){delete Sl[hg]})):$i.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var Jf=this.config.sanitize_properties;Jf&&($i.error("sanitize_properties is deprecated. Use before_send instead"),Sl=Jf(Sl,ma));var pg=this.fs();return Sl.$process_person_profile=pg,pg&&!wl&&this.ps("_calculate_event_properties"),Sl}vs(ma,ba){var va;if(ba===void 0&&(ba=!0),!this.persistence||!this.fs()||this.Br)return ma;var Ma=this.persistence.get_initial_props(),wl=(va=this.sessionPropsManager)==null?void 0:va.getSetOnceProps(),El=Ri({},Ma,wl||{},ma||{}),Sl=this.config.sanitize_properties;return Sl&&($i.error("sanitize_properties is deprecated. Use before_send instead"),El=Sl(El,"$set_once")),ba&&(this.Br=!0),F$8(El)?void 0:El}register(ma,ba){var va;(va=this.persistence)==null||va.register(ma,ba)}register_once(ma,ba,va){var Ma;(Ma=this.persistence)==null||Ma.register_once(ma,ba,va)}register_for_session(ma){var ba;(ba=this.sessionPersistence)==null||ba.register(ma)}unregister(ma){var ba;(ba=this.persistence)==null||ba.unregister(ma)}unregister_for_session(ma){var ba;(ba=this.sessionPersistence)==null||ba.unregister(ma)}gs(ma,ba){this.register({[ma]:ba})}getFeatureFlag(ma,ba){return this.featureFlags.getFeatureFlag(ma,ba)}getFeatureFlagPayload(ma){var ba=this.featureFlags.getFeatureFlagPayload(ma);try{return JSON.parse(ba)}catch{return ba}}isFeatureEnabled(ma,ba){return this.featureFlags.isFeatureEnabled(ma,ba)}reloadFeatureFlags(){this.featureFlags.reloadFeatureFlags()}updateFlags(ma,ba,va){var Ma=va!=null&&va.merge?this.featureFlags.getFlagVariants():{},wl=va!=null&&va.merge?this.featureFlags.getFlagPayloads():{},El=g$8({},Ma,ma),Sl=g$8({},wl,ba),Cl={};for(var[Mc,dp]of Object.entries(El)){var pp=typeof dp=="string";Cl[Mc]={key:Mc,enabled:!!pp||!!dp,variant:pp?dp:void 0,reason:void 0,metadata:M$6(Sl?.[Mc])?void 0:{id:0,version:void 0,description:void 0,payload:Sl[Mc]}}}this.featureFlags.receivedFeatureFlags({flags:Cl})}updateEarlyAccessFeatureEnrollment(ma,ba,va){this.featureFlags.updateEarlyAccessFeatureEnrollment(ma,ba,va)}getEarlyAccessFeatures(ma,ba,va){return ba===void 0&&(ba=!1),this.featureFlags.getEarlyAccessFeatures(ma,ba,va)}on(ma,ba){return this.qr.on(ma,ba)}onFeatureFlags(ma){return this.featureFlags.onFeatureFlags(ma)}onSurveysLoaded(ma){return this.surveys.onSurveysLoaded(ma)}onSessionId(ma){var ba,va;return(ba=(va=this.sessionManager)==null?void 0:va.onSessionId(ma))!==null&&ba!==void 0?ba:()=>{}}getSurveys(ma,ba){ba===void 0&&(ba=!1),this.surveys.getSurveys(ma,ba)}getActiveMatchingSurveys(ma,ba){ba===void 0&&(ba=!1),this.surveys.getActiveMatchingSurveys(ma,ba)}renderSurvey(ma,ba){this.surveys.renderSurvey(ma,ba)}displaySurvey(ma,ba){ba===void 0&&(ba=Zn),this.surveys.displaySurvey(ma,ba)}cancelPendingSurvey(ma){this.surveys.cancelPendingSurvey(ma)}canRenderSurvey(ma){return this.surveys.canRenderSurvey(ma)}canRenderSurveyAsync(ma,ba){return ba===void 0&&(ba=!1),this.surveys.canRenderSurveyAsync(ma,ba)}identify(ma,ba,va){if(!this.__loaded||!this.persistence)return $i.uninitializedWarning("posthog.identify");if(L$7(ma)&&(ma=ma.toString(),$i.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),ma)if(["distinct_id","distinctid"].includes(ma.toLowerCase()))$i.critical('The string "'+ma+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');else if(ma!==me$3){if(this.ps("posthog.identify")){var Ma=this.get_distinct_id();if(this.register({$user_id:ma}),!this.get_property("$device_id")){var wl=Ma;this.register_once({$had_persisted_distinct_id:!0,$device_id:wl},"")}ma!==Ma&&ma!==this.get_property(Bi)&&(this.unregister(Bi),this.register({distinct_id:ma}));var El=(this.persistence.get_property(he$4)||"anonymous")==="anonymous";ma!==Ma&&El?(this.persistence.set_property(he$4,"identified"),this.setPersonPropertiesForFlags(g$8({},va||{},ba||{}),!1),this.capture("$identify",{distinct_id:ma,$anon_distinct_id:Ma},{$set:ba||{},$set_once:va||{}}),this.Jr=fn$1(ma,ba,va),this.featureFlags.setAnonymousDistinctId(Ma)):(ba||va)&&this.setPersonProperties(ba,va),ma!==Ma&&(this.reloadFeatureFlags(),this.unregister(ue$2))}}else $i.critical('The string "'+me$3+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.');else $i.error("Unique user id has not been set in posthog.identify")}setPersonProperties(ma,ba){if((ma||ba)&&this.ps("posthog.setPersonProperties")){var va=fn$1(this.get_distinct_id(),ma,ba);this.Jr!==va?(this.setPersonPropertiesForFlags(g$8({},ba||{},ma||{})),this.capture("$set",{$set:ma||{},$set_once:ba||{}}),this.Jr=va):$i.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(ma,ba,va){if(ma&&ba){var Ma=this.getGroups();Ma[ma]!==ba&&this.resetGroupPropertiesForFlags(ma),this.register({$groups:g$8({},Ma,{[ma]:ba})}),va&&(this.capture("$groupidentify",{$group_type:ma,$group_key:ba,$group_set:va}),this.setGroupPropertiesForFlags({[ma]:va})),Ma[ma]===ba||va||this.reloadFeatureFlags()}else $i.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(ma,ba){ba===void 0&&(ba=!0),this.featureFlags.setPersonPropertiesForFlags(ma,ba)}resetPersonPropertiesForFlags(){this.featureFlags.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(ma,ba){ba===void 0&&(ba=!0),this.ps("posthog.setGroupPropertiesForFlags")&&this.featureFlags.setGroupPropertiesForFlags(ma,ba)}resetGroupPropertiesForFlags(ma){this.featureFlags.resetGroupPropertiesForFlags(ma)}reset(ma){var ba,va,Ma,wl;if($i.info("reset"),!this.__loaded)return $i.uninitializedWarning("posthog.reset");var El=this.get_property("$device_id");if(this.consent.reset(),(ba=this.persistence)==null||ba.clear(),(va=this.sessionPersistence)==null||va.clear(),this.surveys.reset(),this.featureFlags.reset(),(Ma=this.persistence)==null||Ma.set_property(he$4,"anonymous"),(wl=this.sessionManager)==null||wl.resetSessionId(),this.Jr=null,this.config.cookieless_mode==="always")this.register_once({distinct_id:me$3,$device_id:null},"");else{var Sl=this.config.get_device_id(br());this.register_once({distinct_id:Sl,$device_id:ma?Sl:El},"")}this.register({$last_posthog_reset:new Date().toISOString()},1)}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var ma,ba;return(ma=(ba=this.sessionManager)==null?void 0:ba.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&ma!==void 0?ma:""}get_session_replay_url(ma){if(!this.sessionManager)return"";var{sessionId:ba,sessionStartTimestamp:va}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Ma=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+ba);if(ma!=null&&ma.withTimestamp&&va){var wl,El=(wl=ma.timestampLookBack)!==null&&wl!==void 0?wl:10;if(!va)return Ma;Ma+="?t="+Math.max(Math.floor((new Date().getTime()-va)/1e3)-El,0)}return Ma}alias(ma,ba){return ma===this.get_property(Hi)?($i.critical("Attempting to create alias for existing People user - aborting."),-2):this.ps("posthog.alias")?(M$6(ba)&&(ba=this.get_distinct_id()),ma!==ba?(this.gs(Bi,ma),this.capture("$create_alias",{alias:ma,distinct_id:ba})):($i.warn("alias matches current distinct_id - skipping api call."),this.identify(ma),-1)):void 0}set_config(ma){var ba=g$8({},this.config);if(R$3(ma)){var va,Ma,wl,El,Sl,Cl,Mc;Ri(this.config,Bo(ma));var dp=this.Qr();(va=this.persistence)==null||va.update_config(this.config,ba,dp),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Mn(g$8({},this.config,{persistence:"sessionStorage"}),dp);var pp=this.Kr(this.config.debug);U$5(pp)&&(this.config.debug=pp),U$5(this.config.debug)&&(this.config.debug?(c$e.DEBUG=!0,Pr.H()&&Pr.G("ph_debug","true"),$i.info("set_config",{config:ma,oldConfig:ba,newConfig:g$8({},this.config)})):(c$e.DEBUG=!1,Pr.H()&&Pr.V("ph_debug"))),(Ma=this.exceptionObserver)==null||Ma.onConfigChange(),(wl=this.sessionRecording)==null||wl.startIfEnabledOrStop(),(El=this.autocapture)==null||El.startIfEnabled(),(Sl=this.heatmaps)==null||Sl.startIfEnabled(),(Cl=this.exceptionObserver)==null||Cl.startIfEnabledOrStop(),this.surveys.loadIfEnabled(),this._s(),(Mc=this.externalIntegrations)==null||Mc.startIfEnabledOrStop()}}startSessionRecording(ma){var ba=ma===!0,va={sampling:ba||!(ma==null||!ma.sampling),linked_flag:ba||!(ma==null||!ma.linked_flag),url_trigger:ba||!(ma==null||!ma.url_trigger),event_trigger:ba||!(ma==null||!ma.event_trigger)};if(Object.values(va).some(Boolean)){var Ma,wl,El,Sl,Cl;(Ma=this.sessionManager)==null||Ma.checkAndGetSessionAndWindowId(),va.sampling&&((wl=this.sessionRecording)==null||wl.overrideSampling()),va.linked_flag&&((El=this.sessionRecording)==null||El.overrideLinkedFlag()),va.url_trigger&&((Sl=this.sessionRecording)==null||Sl.overrideTrigger("url")),va.event_trigger&&((Cl=this.sessionRecording)==null||Cl.overrideTrigger("event"))}this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var ma;return!((ma=this.sessionRecording)==null||!ma.started)}captureException(ma,ba){var va=new Error("PostHog syntheticException"),Ma=this.exceptions.buildProperties(ma,{handled:!0,syntheticException:va});return this.exceptions.sendExceptionEvent(g$8({},Ma,ba))}startExceptionAutocapture(ma){this.set_config({capture_exceptions:ma==null||ma})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(ma){return this.toolbar.loadToolbar(ma)}get_property(ma){var ba;return(ba=this.persistence)==null?void 0:ba.props[ma]}getSessionProperty(ma){var ba;return(ba=this.sessionPersistence)==null?void 0:ba.props[ma]}toString(){var ma,ba=(ma=this.config.name)!==null&&ma!==void 0?ma:Uo;return ba!==Uo&&(ba=Uo+"."+ba),ba}_isIdentified(){var ma,ba;return((ma=this.persistence)==null?void 0:ma.get_property(he$4))==="identified"||((ba=this.sessionPersistence)==null?void 0:ba.get_property(he$4))==="identified"}fs(){var ma,ba;return!(this.config.person_profiles==="never"||this.config.person_profiles==="identified_only"&&!this._isIdentified()&&F$8(this.getGroups())&&((ma=this.persistence)==null||(ma=ma.props)==null||!ma[Bi])&&((ba=this.persistence)==null||(ba=ba.props)==null||!ba[ge$4]))}ds(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.fs()||this.ps("posthog.createPersonProfile")&&this.setPersonProperties({},{})}ps(ma){return this.config.person_profiles==="never"?($i.error(ma+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.gs(ge$4,!0),!0)}Qr(){if(this.config.cookieless_mode==="always")return!0;var ma=this.consent.isOptedOut(),ba=this.config.opt_out_persistence_by_default||this.config.cookieless_mode==="on_reject";return this.config.disable_persistence||ma&&!!ba}_s(){var ma,ba,va,Ma,wl=this.Qr();return((ma=this.persistence)==null?void 0:ma.Si)!==wl&&((va=this.persistence)==null||va.set_disabled(wl)),((ba=this.sessionPersistence)==null?void 0:ba.Si)!==wl&&((Ma=this.sessionPersistence)==null||Ma.set_disabled(wl)),wl}opt_in_capturing(ma){var ba;if(this.config.cookieless_mode!=="always"){var va,Ma,wl;this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut()&&(this.reset(!0),(va=this.sessionManager)==null||va.destroy(),(Ma=this.pageViewManager)==null||Ma.destroy(),this.sessionManager=new xo(this),this.pageViewManager=new xs(this),this.persistence&&(this.sessionPropsManager=new bo(this,this.sessionManager,this.persistence)),this.sessionRecording=new jo(this),this.sessionRecording.startIfEnabledOrStop()),this.consent.optInOut(!0),this._s(),this.us(),(ba=this.sessionRecording)==null||ba.startIfEnabledOrStop(),this.config.cookieless_mode=="on_reject"&&this.surveys.loadIfEnabled(),(M$6(ma?.captureEventName)||ma!=null&&ma.captureEventName)&&this.capture((wl=ma?.captureEventName)!==null&&wl!==void 0?wl:"$opt_in",ma?.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.hs()}else $i.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}opt_out_capturing(){var ma,ba,va;this.config.cookieless_mode!=="always"?(this.config.cookieless_mode==="on_reject"&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this._s(),this.config.cookieless_mode==="on_reject"&&(this.register({distinct_id:me$3,$device_id:null}),(ma=this.sessionManager)==null||ma.destroy(),(ba=this.pageViewManager)==null||ba.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(va=this.sessionRecording)==null||va.stopRecording(),this.sessionRecording=void 0,this.hs())):$i.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var ma=this.consent.consent;return ma===Mr.GRANTED?"granted":ma===Mr.DENIED?"denied":"pending"}is_capturing(){return this.config.cookieless_mode==="always"||(this.config.cookieless_mode==="on_reject"?this.consent.isExplicitlyOptedOut()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this._s()}_is_bot(){return n$9?ko(n$9,this.config.custom_blocked_useragents):void 0}hs(){o$d&&(o$d.visibilityState==="visible"?this.Wr||(this.Wr=!0,this.capture("$pageview",{title:o$d.title},{send_instantly:!0}),this.Gr&&(o$d.removeEventListener("visibilitychange",this.Gr),this.Gr=null)):this.Gr||(this.Gr=this.hs.bind(this),zi(o$d,"visibilitychange",this.Gr)))}debug(ma){ma===!1?(t$9?.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t$9?.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}O(){var ma,ba,va,Ma,wl,El,Sl,Cl=this.Yr||{};return"advanced_disable_flags"in Cl?!!Cl.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?($i.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(va="advanced_disable_decide",Ma=!1,wl=$i,El=(ba="advanced_disable_flags")in(ma=Cl)&&!M$6(ma[ba]),Sl=va in ma&&!M$6(ma[va]),El?ma[ba]:Sl?(wl&&wl.warn("Config field '"+va+"' is deprecated. Please use '"+ba+"' instead. The old field will be removed in a future major version."),ma[va]):Ma)}cs(ma){if(j$b(this.config.before_send))return ma;var ba=I$9(this.config.before_send)?this.config.before_send:[this.config.before_send],va=ma;for(var Ma of ba){if(va=Ma(va),j$b(va)){var wl="Event '"+ma.event+"' was rejected in beforeSend function";return H$8(ma.event)?$i.warn(wl+". This can cause unexpected behavior."):$i.info(wl),null}va.properties&&!F$8(va.properties)||$i.warn("Event '"+ma.event+"' has no properties after beforeSend function, this is likely an error.")}return va}getPageViewId(){var ma;return(ma=this.pageViewManager.Kt)==null?void 0:ma.pageViewId}captureTraceFeedback(ma,ba){this.capture("$ai_feedback",{$ai_trace_id:String(ma),$ai_feedback_text:ba})}captureTraceMetric(ma,ba,va){this.capture("$ai_metric",{$ai_trace_id:String(ma),$ai_metric_name:ba,$ai_metric_value:String(va)})}Kr(ma){var ba=U$5(ma)&&!ma,va=Pr.H()&&Pr.q("ph_debug")==="true";return!ba&&(!!va||ma)}}(function(ya,ma){for(var ba=0;ba<ma.length;ba++)ya.prototype[ma[ba]]=Ai(ya.prototype[ma[ba]])})(Wo,["identify"]);var Go,Jo=(Go=Lo[Uo]=new Wo,(function(){function ya(){ya.done||(ya.done=!0,zo=!1,Ci(Lo,(function(ma){ma._dom_loaded()})))}o$d!=null&&o$d.addEventListener?o$d.readyState==="complete"?ya():zi(o$d,"DOMContentLoaded",ya,{capture:!1}):t$9&&$i.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),Go);const IS_PLAYGROUND$8=!1,IS_LOCAL_MODE$6=!0,metaAxiosInstance$1=axiosInstance("meta"),useAuth=()=>{const ya=useNavigate(),ma=useAppStore(cy=>cy.resetStore),ba=useAppStore(cy=>cy.user),va=useAppStore(cy=>cy.setUser),{initializeApp:Ma,resetInitialization:wl}=useAppInitialization(),[El,Sl]=reactExports.useState(!1),[Cl,Mc]=reactExports.useState(!1),[dp,pp]=reactExports.useState(null),hp=useAppStore(cy=>cy.clearAuth),Ef=useAppStore(cy=>cy.setAuthState),Zf=useAppStore(cy=>cy.setAuthError),Jf=useAppStore(cy=>cy.setAuthData),pg=cy=>{try{const q1=cy.split(".")[1];return JSON.parse(atob(q1)).email||null}catch(q1){console.warn(`Failed to decode JWT token: ${q1}`)}},hg=async(cy,q1,r0=!1)=>{try{Ef("loading"),Zf(null);const uE=localStorage.getItem("username");if(uE&&uE!==cy){console.log("Switching accounts - clearing previous user data"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("workspace_id"),localStorage.removeItem("agentlang-studio-store"),hp();const{setLastDataFetch:aE}=useAppStore.getState();aE(0)}const{data:V1}=await metaAxiosInstance$1.post("/agentlang_auth/login",{email:cy,password:q1}),H1=V1;if(H1&&typeof H1=="object"&&H1.id_token){const P_=pg(H1.id_token)||cy;Jf({token:H1.id_token,accessToken:H1.access_token,refreshToken:H1.refresh_token,userId:H1.userId,sessionId:H1.sessionId,username:P_});const{setLastDataFetch:M_}=useAppStore.getState();M_(0);try{const sN=String(H1.userId||P_);Jo.identify(sN,{email:P_,sessionId:H1.sessionId,authMethod:"password"})}catch(sN){console.warn("PostHog identify failed:",sN)}}else if(typeof H1=="string"&&H1.includes("/")){if(console.log("Processing legacy login format:",H1),typeof H1.split!="function")throw console.error("loginResult.split is not a function:",{loginResult:H1,type:typeof H1}),new Error("Invalid login result format - split method not available");const[aE,P_]=H1.split("/");if(!aE||!P_)throw console.error("Invalid userId/sessionId format:",{userId:aE,sessionId:P_,loginResult:H1}),new Error("Invalid login result format - missing userId or sessionId");Jf({userId:aE,sessionId:P_,username:cy});const{setLastDataFetch:M_}=useAppStore.getState();M_(0);try{const sN=String(aE||cy);Jo.identify(sN,{email:cy,sessionId:P_,authMethod:"password"})}catch(sN){console.warn("PostHog identify failed (legacy):",sN)}}else throw console.error("Login failed - invalid response format:",{loginResult:H1,type:typeof H1,isObject:typeof H1=="object",isString:typeof H1=="string",hasIdToken:H1?.id_token,includesSlash:typeof H1=="string"&&H1.includes("/")}),new Error(`Login failed due to invalid response format. Expected object with id_token or string with '/', got: ${typeof H1}`);y$b.success("Login successful");const{authData:O_}=useAppStore.getState();if(O_.userId)try{const aE=await metaAxiosInstance$1.get(`/agentlang_auth/User/${O_.userId}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(aE.data&&Array.isArray(aE.data)&&aE.data.length>0){const P_=aE.data[aE.data.length-1].UserProfile;if(P_.id){localStorage.setItem("user_profile_id",P_.id),Jf({userProfileId:P_.id});try{const M_=String(O_.userId||O_.username||"unknown");Jo.group("user_profile",P_.id,{email:P_.userEmail||O_.username}),Jo.identify(M_,{email:P_.userEmail||O_.username,userProfileId:P_.id})}catch(M_){console.warn("PostHog person/group update failed:",M_)}}}}catch(aE){console.warn("Failed to fetch user profile after login:",aE)}Ma(),r0||ya("/home")}catch(uE){console.error("Login error:",uE),y$b.error(uE?.response?.data?.reason||"Login failed"),y$b.error(uE?.response?.data?.message||uE?.message||"Login failed")}},mg=async()=>{if(!El){Sl(!0);try{typeof window<"u"&&window.dispatchEvent(new CustomEvent("userLoggingOut")),IS_PLAYGROUND$8||await metaAxiosInstance$1.post("/agentlang_auth/logout")}catch(cy){console.warn("Logout API call failed, but clearing local data:",cy)}finally{try{Jo.reset()}catch(uE){console.warn("PostHog reset failed:",uE)}hp(),localStorage.removeItem("workspace_id"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),wl(),localStorage.removeItem("agentlang-studio-store"),localStorage.removeItem("chatbotMessages");const{setAuthData:cy,setWorkspace:q1,setUser:r0}=useAppStore.getState();cy({token:"",userId:"",sessionId:"",username:"",userProfileId:"",accessToken:"",refreshToken:""}),q1(""),r0({Email:"",CurrentWorkspace:{Id:""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),Sl(!1)}}},gg=async(cy,q1)=>{try{const{authData:r0}=useAppStore.getState();if(!r0.token){y$b.error("Authentication token not found. Please login again.");return}await metaAxiosInstance$1.post("/agentlang_auth/changePassword",{newPassword:q1,password:cy}),y$b.success("Password changed successfully")}catch(r0){y$b.error(r0?.response?.data?.reason||"Failed to change password")}},yg=async cy=>{try{const{authData:q1}=useAppStore.getState(),{username:r0,userId:uE,userProfileId:V1}=q1;if(!uE||!V1){y$b.error("User ID not found. Please re-login.");return}await metaAxiosInstance$1.put(`/agentlang_auth/User/${uE}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${V1}`,{userEmail:r0,userKeys:{OpenAI:cy.OpenAI,Anthropic:cy.Anthropic,GitHub:cy.GitHub}}),va(cy),y$b.success("Profile updated successfully")}catch(q1){y$b.error(q1?.response?.data?.reason||"Failed to update profile")}},ay=reactExports.useCallback(async(cy=!1)=>{const{authData:q1}=useAppStore.getState();let{userId:r0,userProfileId:uE,username:V1}=q1;const{token:H1}=q1;if(uE||(uE=localStorage.getItem("user_profile_id")||""),r0||(r0=localStorage.getItem("user_id")||""),V1||(V1=localStorage.getItem("username")||""),!!!(r0&&V1&&H1)){console.log("Auth not ready for profile fetch:",{userId:r0,username:V1,hasToken:!!H1});return}if(!(!cy&&ba.Email&&!Cl))try{if(Mc(!0),pp(null),!uE){const P_=await metaAxiosInstance$1.get(`/agentlang_auth/User/${r0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(P_.data&&Array.isArray(P_.data)&&P_.data.length>0){const M_=P_.data[P_.data.length-1].UserProfile;if(M_.id){localStorage.setItem("user_profile_id",M_.id);const AF=useAppStore.getState().authData;Jf({...AF,userProfileId:M_.id}),console.log("Set userProfileId in auth store:",M_.id)}let sN;try{sN=typeof M_.userKeys=="string"?JSON.parse(M_.userKeys):M_.userKeys}catch{sN={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}va({Email:M_.userEmail||V1,CurrentWorkspace:{Id:""},...sN});return}console.warn("No user profiles found. User needs to complete signup process to create profile."),pp("No user profile found. Please contact support if this persists.");return}const aE=await metaAxiosInstance$1.get(`/agentlang_auth/User/${r0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${uE}`);if(!aE.data||Array.isArray(aE.data)&&aE.data.length===0){const P_=await metaAxiosInstance$1.get(`/agentlang_auth/User/${r0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(P_.data&&Array.isArray(P_.data)&&P_.data.length>0){const M_=P_.data[P_.data.length-1].UserProfile;if(M_.id){localStorage.setItem("user_profile_id",M_.id);const AF=useAppStore.getState().authData;Jf({...AF,userProfileId:M_.id}),console.log("Set userProfileId in auth store (fallback):",M_.id);try{const $4=String(AF.userId||AF.username||"unknown");Jo.group("user_profile",M_.id,{email:M_.userEmail||AF.username}),Jo.identify($4,{email:M_.userEmail||AF.username,userProfileId:M_.id})}catch($4){console.warn("PostHog person/group update failed (fallback):",$4)}}let sN;try{sN=typeof M_.userKeys=="string"?JSON.parse(M_.userKeys):M_.userKeys}catch{sN={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}va({Email:M_.userEmail||V1,CurrentWorkspace:{Id:""},...sN});return}console.warn("No profiles found for user. User needs to complete signup process."),pp("No user profile found. Please contact support if this persists.");return}if(aE.data&&Array.isArray(aE.data)&&aE.data.length>0){const P_=aE.data[0].UserProfile;let M_;try{M_=typeof P_.userKeys=="string"?JSON.parse(P_.userKeys):P_.userKeys}catch(AF){console.warn("Failed to parse userKeys JSON:",AF),M_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}const sN={Email:P_.userEmail||V1||"",CurrentWorkspace:ba.CurrentWorkspace||{Id:""},Anthropic:M_.Anthropic||{Key:""},OpenAI:M_.OpenAI||{Key:"",FinetunedModel:""},GitHub:M_.GitHub||{Username:"",Org:"",Token:""}};va(sN)}else throw new Error("Unexpected response format")}catch(aE){console.error("useAuth: Failed to fetch user profile:",aE),pp(aE?.response?.data?.reason||aE?.message||"Failed to fetch user profile")}finally{Mc(!1)}},[ba.CurrentWorkspace,ba.Email,Cl,va,Jf]),ly=useAppStore(cy=>cy.authReady);return reactExports.useEffect(()=>{ly&&ay()},[ly,ay]),{login:hg,logoutHandler:mg,changePassword:gg,setUserProfile:yg,isLoggingOut:El,fetchUserProfile:ay,profileLoading:Cl,profileError:dp,userProfile:ba}},useIsAuthenticated=()=>useAppStore(ma=>ma.isAuthenticated),IS_PLAYGROUND$7=!1,metaAxiosInstance=axiosInstance("meta"),useSignUp=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(!1),va=useAppStore(Sl=>Sl.setAuthData),Ma=useAppStore(Sl=>Sl.setUser),{initializeApp:wl}=useAppInitialization();return{signUp:reactExports.useCallback(async(Sl,Cl)=>{if(ma)return{success:!1,error:"Sign up already in progress"};ba(!0);try{console.log("Registering new user:",Sl.email);const Mc=await metaAxiosInstance.post("/agentlang_auth/register",{email:Sl.email,password:Sl.password,firstName:Sl.firstName,lastName:Sl.lastName});if(!Mc.data)throw new Error("Registration failed - no response received");const{userId:dp,email:pp}=Mc.data;if(!dp)throw new Error("Registration failed - no userId received");console.log("Creating user profile and workspace...");const hp=await metaAxiosInstance.post("/AgentMeta/PostSignUp",{userId:dp,userEmail:pp||Sl.email,userKeys:{OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}});if(!hp.data||!Array.isArray(hp.data)||hp.data.length===0)throw new Error("Failed to create user profile and workspace");const Ef=hp.data[0];let Zf=null,Jf=null;if(Ef?.User?.["AgentMeta/UserHasUserProfile"]?.[0]?.UserProfile){const mg=Ef.User["AgentMeta/UserHasUserProfile"][0].UserProfile;Zf=mg.id,mg["AgentMeta/UserWorkspace"]?.[0]?.Workspace&&(Jf=mg["AgentMeta/UserWorkspace"][0].Workspace.id)}if(!Zf)throw new Error("Failed to create user profile");console.log("User profile and workspace created successfully:",{userProfileId:Zf,workspaceId:Jf}),console.log("Performing automatic login...");const hg=(await metaAxiosInstance.post("/agentlang_auth/login",{email:Sl.email,password:Sl.password})).data;return hg&&typeof hg=="object"&&hg.id_token?(va({token:hg.id_token,accessToken:hg.access_token,refreshToken:hg.refresh_token,userId:hg.userId||dp,sessionId:hg.sessionId,username:Sl.email,userProfileId:Zf}),localStorage.setItem("user_profile_id",Zf),Jf&&localStorage.setItem("workspace_id",Jf),Ma({Email:Sl.email,user_profile_id:Zf,CurrentWorkspace:{Id:Jf||""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),y$b.success("Account created successfully! Welcome!"),IS_PLAYGROUND$7||await wl(),Cl?.skipNavigation?(Cl.onSuccess?.(),{success:!0,message:"Account created and logged in successfully"}):(ya("/home"),{success:!0,message:"Account created and logged in successfully"})):(y$b.success("Account created successfully! Please login with your credentials."),Cl?.skipNavigation?(Cl.onSuccess?.(),{success:!0,message:"Account created successfully. Please login."}):(ya("/"),{success:!0,message:"Account created successfully. Please login."}))}catch(Mc){console.error("Sign up failed:",Mc);const dp=Mc?.response?.data?.reason||Mc?.response?.data?.message||Mc?.message||"Sign up failed. Please try again.";return y$b.error(dp),{success:!1,error:dp}}finally{ba(!1)}},[ya,va,Ma,wl,ma]),isSigningUp:ma}},usePushToGitHub=()=>{const[ya,ma]=reactExports.useState(null),[ba,va]=reactExports.useState(!1),Ma=useAppStore(El=>El.user);return{pushToGitHub:reactExports.useCallback(async El=>{if(El){va(!0),ma(null);try{const Sl=Ma?.GitHub?.Token,Cl=Ma?.GitHub?.Username;if(!Sl||!Cl){ma({message:"GitHub credentials not configured. Please set your GitHub token and username in Settings.",isError:!0}),va(!1),setTimeout(()=>ma(null),5e3);return}const Mc="http://localhost:4000",dp=El.GitHubRepo,pp=El.path;ma({message:"Pushing to GitHub...",isError:!1});const hp=await fetch(`${Mc}/app/push`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:pp,githubToken:Sl,githubUsername:Cl,repoName:dp})}),Ef=await hp.json();if(!hp.ok)throw new Error(Ef.error||"Failed to push to GitHub");ma({message:Ef.message||"Successfully pushed to GitHub!",isError:!1}),va(!1),setTimeout(()=>ma(null),3e3)}catch(Sl){const Cl=Sl instanceof Error?Sl.message:String(Sl);console.error("Failed to push changes:",Cl),ma({message:`Failed to push: ${Cl}`,isError:!0}),va(!1),setTimeout(()=>ma(null),5e3)}}},[Ma]),pushStatus:ya,isPushing:ba}},IS_LOCAL_MODE$5=!0,useAppConfig=()=>{const{teamName:ya}=useParams(),ma=useAppStore(Sl=>Sl.appConfig),ba=useAppStore(Sl=>Sl.setAppConfig),va=useAppStore(Sl=>Sl.user),Ma=va.GitHub.Token,wl=va.GitHub.Username;return{saveAppConfig:async Sl=>{if(!ya)throw new Error("Team name is required to save app integrations");let Cl={};try{let pp;if(IS_LOCAL_MODE$5){const Ef=await fetch(`http://localhost:4000/file?path=${encodeURIComponent("config.al")}`);if(Ef.ok){const{content:Zf}=await Ef.json();pp=Zf}else pp=""}pp&&pp.trim()&&(Cl=parseAppConfig(pp))}catch(pp){console.warn("Failed to read current config.al, using appConfig state:",pp),Cl=ma}const Mc={...Cl,...ma,...Sl};ba(Mc);const dp=formatAppConfig(Mc);await saveConfigToGit(ya,dp,"Save App Configuration",wl,Ma)}}},DEPLOY_STEPS=[{id:"saving-config",label:"Saving config"},{id:"pushing",label:"Pushing to GitHub"},{id:"creating-config",label:"Creating app config"},{id:"deploying",label:"Deploying app"}],useDeploymentFlow=()=>{const{currentTeam:ya}=useTeams(),ma=useAppStore(pg=>pg.appConfig),ba=useAppStore(pg=>pg.user.GitHub.Token)||"",{pushToGitHub:va}=usePushToGitHub(),{saveAppConfig:Ma}=useAppConfig(),{createAppConfig:wl,deployApp:El}=useDeployments(),[Sl,Cl]=reactExports.useState(!1),[Mc,dp]=reactExports.useState("saving-config"),[pp,hp]=reactExports.useState(null),[Ef,Zf]=reactExports.useState(!1),Jf=reactExports.useCallback(async pg=>{if(!(!ya||!ba)){pg?.onBeforeStart?.(),Cl(!0),hp(null),Zf(!1),dp("saving-config");try{dp("saving-config"),await Ma(ma||{}),dp("pushing"),await va(ya);const hg={};if(ma&&typeof ma=="object")for(const gg of Object.keys(ma)){const yg=ma[gg];if(yg&&typeof yg=="object")for(const[ay,ly]of Object.entries(yg))ly&&typeof ly=="object"&&(hg[ay]=ly)}dp("creating-config");const mg=await wl({GitToken:ba,EnvVars:{}});dp("deploying"),await El({Repo:ya.GitHubRepo||"",Organization:ya.GitHubOrg||"",Branch:ya.Branch||"main",AppConfigId:mg,Config:hg}),Zf(!0),setTimeout(()=>{Cl(!1),Zf(!1)},1500)}catch(hg){hp(hg?.response?.data?.reason||hg?.message||"Deployment failed"),Cl(!1)}}},[ya,ba,ma,Ma,va,wl,El]);return{isDeploying:Sl,deployCurrentStep:Mc,deployError:pp,deploySuccess:Ef,deploySteps:DEPLOY_STEPS,startDeployment:Jf}},getEntities=ya=>{if(!ya)return[];try{return fetchModule$2(ya).getEntityNames()}catch(ma){return console.error("Error fetching module:",ma),[]}},getRecords=ya=>{if(!ya)return[];try{return fetchModule$2(ya).getRecordNames()}catch(ma){return console.error("Error fetching records:",ma),[]}},getEvents=ya=>{if(!ya)return[];try{const ma=fetchModule$2(ya);return ma.getEventNames().filter(va=>!ma.isPrePostEvent(va))}catch(ma){return console.error("Error fetching events:",ma),[]}},getAgents=ya=>{if(!ya)return[];try{return fetchModule$2(ya).getAgentNames()}catch(ma){return console.error("Error fetching agents:",ma),[]}},getDecisions=ya=>{if(!ya)return[];try{return fetchModule$2(ya).getAllDecisions().map(va=>va.name)}catch(ma){return console.error("Error fetching decisions:",ma),[]}},getRelationships=ya=>{if(!ya)return[];try{return fetchModule$2(ya).getRelationshipNames()}catch(ma){return console.error("Error fetching relationships:",ma),[]}},isAgent=(ya,ma)=>{try{return!!fetchModule$2(ya).getAgent(ma)}catch{return!1}},isEvent=(ya,ma)=>{try{return fetchModule$2(ya).getEventNames().includes(ma)}catch{return!1}},isRecord=(ya,ma)=>{try{return fetchModule$2(ya).getRecordNames().includes(ma)}catch{return!1}},isEntity=(ya,ma)=>{try{return fetchModule$2(ya).getEntityNames().includes(ma)}catch{return!1}},isRelationship=(ya,ma)=>{try{return fetchModule$2(ya).getRelationshipNames().includes(ma)}catch{return!1}},getAgent=(ya,ma)=>{try{return fetchModule$2(ya).getAgent(ma)}catch{return null}},useEntity=()=>{const{zoomHandler:ya}=useZoomHandler(),ma=useMatches(),{id:ba}=ma[ma.length-1]||{},{teamName:va,moduleName:Ma}=useParams(),wl=useAppStore(ay=>ay.user),{incrementModuleDbChangeCount:El}=useAppStore(),Sl=wl.GitHub.Token,Cl=wl.GitHub.Username,Mc=Wn$1(),{saveUISpec:dp}=useSaveUISpec(),pp=async ay=>{if(!va)throw new Error("teamName is undefined");if(!Ma)throw new Error("moduleName is undefined");if(addEntity(ay,Ma),Mc&&dp)try{const cy=`${Ma}/${ay}`,q1=repopulateUISchemaForNewEntity(Mc,cy);dp(q1,`Update UI schema for new entity ${ay}`)}catch(cy){console.error("[useEntity] Failed to repopulate UI schema for new entity:",cy)}const ly=fetchModule$2(Ma).toString();El(),saveModuleToGit(va,Ma,ly,`Add entity ${ay}`,Cl,Sl).catch(cy=>{console.error("Failed to save module changes (non-blocking):",cy)}),setTimeout(()=>{ya(`${Ma}/${ay}`)},100)},hp=async ay=>{if(!va)throw new Error("teamName is undefined");if(!Ma)throw new Error("moduleName is undefined");addRecord$1(ay,Ma);const ly=fetchModule$2(Ma).toString();saveModuleToGit(va,Ma,ly,`Add record ${ay}`,Cl,Sl),El(),setTimeout(()=>{ya(`${Ma}/${ay}`)},100)},Ef=async ay=>{if(!va)throw new Error("teamName is undefined");if(!Ma)throw new Error("moduleName is undefined");addEvent(ay,Ma),addWorkflow(ay,Ma);const ly=fetchModule$2(Ma).toString();saveModuleToGit(va,Ma,ly,`Add event ${ay}`,Cl,Sl),El(),setTimeout(()=>{ya(ay)},200)},Zf=(ay,ly)=>{let cy;isFqName$1(ly)?cy=nameToPath$1(ly).getEntryName():cy=ly;const q1=cy.replace(/--workflow$/,"");if(isEvent(Ma||"",q1))removeEvent(cy,Ma||"");else{if(!isEvent(Ma||"",q1)&&!isRelationship(Ma||"",q1)){const r0=isFqName$1(ly)?ly:`${Ma}/${q1}`;getRelationships(Ma||"").forEach(V1=>{try{const H1=getRelationship$1(V1,Ma||"");if(H1){const O_=H1.getParentFqName(),aE=H1.getChildFqName();(O_===r0||aE===r0)&&ay.removeEntry(V1)}}catch(H1){console.warn(`Failed to check relationship ${V1} for entity ${r0}:`,H1)}})}ay.removeEntry(cy)}};return{addEntity:pp,addRecord:hp,addEvent:Ef,deleteHandler:async ay=>{if(!va)throw new Error("teamName is undefined");if(!Ma)throw new Error("moduleName is undefined");const ly=fetchModule$2(Ma||"");ay.forEach(r0=>{Zf(ly,r0)});const cy=ly.toString(),q1=`Delete entries ${ay.join(", ")}`;if(Mc&&dp&&Ma)try{let r0=Mc;const uE=[],V1=[];if(ay.forEach(H1=>{let O_;isFqName$1(H1)?O_=nameToPath$1(H1).getEntryName():O_=H1;const aE=O_.replace(/--workflow$/,"");if(isRelationship(Ma,aE))uE.push(aE);else if(!isEvent(Ma,aE)){const P_=isFqName$1(H1)?H1:`${Ma}/${O_}`;V1.push(P_)}}),uE.length>0&&(r0=repopulateUISchemaAfterRelationshipDeletion(r0,uE[0],Ma)),V1.length>0&&V1.forEach(H1=>{r0=repopulateUISchemaAfterEntityDeletion(r0,H1)}),uE.length>0||V1.length>0){const H1=[...uE.length>0?[`relationships: ${uE.join(", ")}`]:[],...V1.length>0?[`entities: ${V1.join(", ")}`]:[]];dp(r0,`Update UI schema after deleting ${H1.join(" and ")}`)}}catch(r0){console.error("[useEntity] Failed to repopulate UI schema after entry deletion:",r0)}El(),saveModuleToGit(va,Ma,cy,q1,Cl,Sl).catch(r0=>{console.error("Failed to save module changes (non-blocking):",r0)}),setTimeout(()=>{const r0=getEntities(Ma),uE=getRecords(Ma),V1=getEvents(Ma),H1=getAgents(Ma);if(ba==="data-model"||ba==="marketplace-data-model"){if(r0.length>0){ya(`${Ma}/${r0[0]}`);return}if(uE.length>0){ya(`${Ma}/${uE[0]}`);return}}if(ba==="agents"&&H1.length>0){ya(H1[0]);return}if(ba==="workflow"&&V1.length>0){ya(V1[0]);return}},200)},addAttribute:async(ay,ly,cy,q1,r0="type",uE=[],V1="",H1,O_)=>{if(!Ma)throw new Error("moduleName is undefined");if(!va)throw new Error("teamName is undefined");const aE=fetchModule$2(Ma),P_=aE.getEntry(ay),M_=r0==="Entity"||r0==="Record",sN=r0==="@oneof",AF=r0==="@enum";if(O_&&O_!==ly)try{P_.removeAttribute(O_)}catch{}try{P_.removeAttribute(ly)}catch{}let $4;if(AF&&uE.length>0)$4=enumAttributeSpec(new Set(uE)),V1&&($4=setDefaultAttributeValue($4,V1));else if(sN){if(!H1)throw new Error("Compound type info is required for Entity or Record types");const cN=`${H1.module}/${H1.entity}`;$4=oneOfAttributeSpec(cN)}else if(M_){if(!H1)throw new Error("Compound type info is required for Entity or Record types");$4={type:`${H1.module}/${H1.entity}`,properties:new Map},q1.forEach(cN=>{$4.properties?.set(cN,!0)})}else $4={type:cy,properties:new Map},q1.forEach(cN=>{$4.properties?.set(cN,!0)}),V1&&($4=setDefaultAttributeValue($4,V1));if(P_.addAttribute(ly,$4),Mc&&dp)try{const cN=`${Ma}/${ay}`,R4=repopulateUISchemaForNewAttribute(Mc,cN,ly);dp(R4,`Update UI schema for new attribute ${ly} in ${ay}`)}catch(cN){console.error(" Failed to repopulate UI schema for new attribute:",cN)}El(),saveModuleToGit(va,Ma,aE.toString(),`Add attribute ${ly} to ${ay}`,Cl,Sl).catch(cN=>{console.error("Failed to save module changes (non-blocking):",cN)})},deleteAttributes:async(ay,ly)=>{if(!Ma)throw new Error("moduleName is undefined");if(!va)throw new Error("teamName is undefined");const cy=isFqName$1(ay)?nameToPath$1(ay).getEntryName():ay,q1=fetchModule$2(Ma),r0=q1.getEntry(cy);if(ly.forEach(uE=>{r0.removeAttribute(uE)}),Mc&&dp)try{const uE=isFqName$1(ay)?ay:`${Ma}/${cy}`,V1=repopulateUISchemaAfterAttributeDeletion(Mc,uE,ly);dp(V1,`Update UI schema after deleting attributes ${ly.join(", ")} from ${ay}`)}catch(uE){console.error("[useEntity] Failed to repopulate UI schema after attribute deletion:",uE)}El(),saveModuleToGit(va,Ma,q1.toString(),`Delete attributes ${ly.join(", ")} from ${ay}`,Cl,Sl).catch(uE=>{console.error("Failed to save module changes (non-blocking):",uE)})},reorderAttributes:async(ay,ly)=>{if(!Ma)throw new Error("moduleName is undefined");if(!va)throw new Error("teamName is undefined");const cy=isFqName$1(ay)?nameToPath$1(ay).getEntryName():ay,q1=fetchModule$2(Ma);q1.getEntry(cy).reorderAttributes(ly),El(),await saveModuleToGit(va,Ma,q1.toString(),`Reorder attributes in ${ay}`,Cl,Sl)},setEventPublic:async(ay,ly)=>{if(!va)throw new Error("teamName is undefined");if(!Ma)throw new Error("moduleName is undefined");const cy=isFqName$1(ay)?nameToPath$1(ay).getEntryName():ay,q1=fetchModule$2(Ma);getEvent$1(cy,Ma).setPublic(ly);const uE=q1.toString();El(),await saveModuleToGit(va,Ma,uE,`Set Public status for Event ${ay}`,Cl,Sl)},getEventPublic:ay=>{if(!Ma)throw new Error("moduleName is undefined");const ly=isFqName$1(ay)?nameToPath$1(ay).getEntryName():ay;return getEvent$1(ly,Ma).isPublic()}}},useEntityDetailsChange=ya=>{const ma=Wn$1();return{onEntityDetailsChange:(va,Ma)=>{if(ya&&ma){const wl={...ma,[va]:{...ma?.[va]||{},...Ma}};ya(wl,`Update ${va} entity details`)}}}},useModule=()=>{const{incrementModuleDbChangeCount:ya}=useAppStore(),ma=useNavigate(),{pathname:ba}=useLocation(),va=ba.split("/"),Ma=getUserModuleNames(),{teamName:wl,githubOrg:El}=useParams(),Sl=useAppStore(Jf=>Jf.user),Cl=Sl.GitHub.Token,Mc=Sl.GitHub.Username,dp=isMarketplaceRepo(wl||"",El),pp=Jf=>{ma([...va.slice(0,-1),Jf].join("/"))};return{navigateModule:pp,addModuleHandler:Jf=>{addModule$1(Jf),saveModuleToGit(wl||"local-user",Jf,fetchModule$2(Jf).toString(),`Add module ${Jf} to ${wl||"local-user"}`,Mc,Cl,dp),ya(),pp(Jf)},deleteModuleHandler:Jf=>{if(Ma.length===1){y$b.error("Cannot delete the last module");return}removeModule(Jf),saveModuleToGit(wl||"local-user",Jf,fetchModule$2(Jf).toString(),`Delete module ${Jf} from ${wl||"local-user"}`,Mc,Cl,dp);const pg=Ma.filter(hg=>Jf!==hg);pp(pg.length>0?pg[pg.length-1]:""),ya()},getModuleCode:Jf=>{try{return isModule$1(Jf)?fetchModule$2(Jf).toString():""}catch(pg){return console.error(pg),""}}}},useOutsideClickHandler=ya=>{const ma=reactExports.useRef(null);return reactExports.useEffect(()=>{const ba=va=>{const Ma=va.target,wl=Ma.closest('[role="option"]')||Ma.closest(".dropdown-options")||Ma.closest("[data-headlessui-state]")||Ma.closest("[data-radix-dropdown-menu-content]")||Ma.closest("[data-radix-dropdown-menu-sub-content]")||Ma.closest("[data-query-attribute-menu]")||Ma.closest("[data-radix-portal]")||Ma.closest("[data-radix-popper-content-wrapper]")||Ma.closest(".action-item"),El=Ma.closest(".chatbot-fab-button"),Sl=Ma.closest(".canvas-node")||Ma.closest(".react-flow__node")||Ma.closest(".react-flow__edge")||Ma.closest("#canvas-area")||Ma.closest(".react-flow");ma.current&&!ma.current.contains(Ma)&&!wl&&!El&&!Sl&&ya()};return document.addEventListener("click",ba,!0),()=>{document.removeEventListener("click",ba,!0)}},[ya]),ma},useRelationship$1=()=>{const{incrementModuleDbChangeCount:ya}=useAppStore(),{teamName:ma,moduleName:ba}=useParams(),va=useAppStore(Ef=>Ef.user),Ma=va.GitHub.Token,wl=va.GitHub.Username,El=Wn$1(),{saveUISpec:Sl}=useSaveUISpec();return{addRelationship:async(Ef,Zf,Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=new Path$1(Zf.module,Zf.entity),mg=new Path$1(Jf.module,Jf.entity),gg={path:hg,alias:Zf.entity,origName:hg.asFqName(),origAlias:Zf.entity},yg={path:mg,alias:Jf.entity,origName:mg.asFqName(),origAlias:Jf.entity};pg==="contains"&&addContainsRelationship(Ef,ba,[gg,yg]),pg==="between"&&addBetweenRelationship(Ef,ba,[gg,yg]);const ly=fetchModule$2(ba).toString();if(El&&Sl&&ba)try{const cy=repopulateUISchemaForNewRelationship(El,ba);Sl(cy,`Update UI schema for new relationship ${Ef}`)}catch(cy){console.error("[useRelationship] Failed to repopulate UI schema for new relationship:",cy)}ya(),saveModuleToGit(ma,ba,ly,`Add ${pg} relationship ${Ef} between ${Zf.entity} and ${Jf.entity}`,wl,Ma).catch(cy=>{console.error("Failed to save module changes (non-blocking):",cy)})},setOneToOne:Ef=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");getRelationship$1(Ef,ba).setOneToOne(!0);const Jf=fetchModule$2(ba).toString();if(El&&Sl&&ba)try{const pg=repopulateUISchemaForNewRelationship(El,ba);Sl(pg,`Update UI schema for relationship ${Ef} change`)}catch(pg){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",pg)}ya(),saveModuleToGit(ma,ba,Jf,`Set ${Ef} to One-to-One relationship`,wl,Ma).catch(pg=>{console.error("Failed to save module changes (non-blocking):",pg)})},setOneToMany:Ef=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");getRelationship$1(Ef,ba).setOneToMany(!0);const Jf=fetchModule$2(ba).toString();if(El&&Sl&&ba)try{const pg=repopulateUISchemaForNewRelationship(El,ba);Sl(pg,`Update UI schema for relationship ${Ef} change`)}catch(pg){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",pg)}ya(),saveModuleToGit(ma,ba,Jf,`Set ${Ef} to One-to-Many relationship`,wl,Ma).catch(pg=>{console.error("Failed to save module changes (non-blocking):",pg)})},setManyToMany:Ef=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");getRelationship$1(Ef,ba).setManyToMany(!0);const Jf=fetchModule$2(ba).toString();if(El&&Sl&&ba)try{const pg=repopulateUISchemaForNewRelationship(El,ba);Sl(pg,`Update UI schema for relationship ${Ef} change`)}catch(pg){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",pg)}ya(),saveModuleToGit(ma,ba,Jf,`Set ${Ef} to Many-to-Many relationship`,wl,Ma).catch(pg=>{console.error("Failed to save module changes (non-blocking):",pg)})},getRelationshipType:Ef=>{if(!ba)return null;try{const Zf=getRelationship$1(Ef,ba);return Zf.isOneToOne()?"one-to-one":Zf.isOneToMany()?"one-to-many":Zf.isManyToMany()?"many-to-many":"contains"}catch(Zf){return console.error("Error getting relationship type:",Zf),null}}}},useRouteDataFetching=({routePattern:ya,fetchFunction:ma,requiresAuth:ba=!0,dependencies:va=[]})=>{const Ma=useLocation(),wl=reactExports.useRef(new Set),El=reactExports.useRef(null),Sl=useAppStore(pg=>pg.authData),{token:Cl,userId:Mc,userProfileId:dp,username:pp}=Sl,hp=Mc,Ef=Ma.pathname.includes(ya),Zf=reactExports.useCallback(pg=>`${ya}-${pg}`,[ya]),Jf=reactExports.useCallback(async(pg,hg,mg=!1)=>{const gg=Zf(pg);try{await ma(pg,hg,mg),wl.current.add(gg)}catch(yg){console.error(`useRouteDataFetching: Failed to fetch data for route ${ya}:`,yg)}},[ma,Zf,ya]);return reactExports.useEffect(()=>{if(!Ef)return;if(El.current!==hp&&(wl.current.clear(),El.current=hp),ba&&!Cl){console.log(`useRouteDataFetching: Authentication required for route ${ya}, but no token found`);return}if(!hp||!pp||ba&&!dp){console.log(`useRouteDataFetching: Missing required data for route ${ya}`,{hasWorkspaceId:!!hp,hasUsername:!!pp,hasUserProfileId:!!dp,hasAuthToken:!!Cl});return}const pg=Zf(hp);if(wl.current.has(pg)){console.log(`useRouteDataFetching: Data already fetched for route ${ya} and workspace ${hp}`);return}Jf(hp,pp)},[Ef,hp,pp,dp,Cl,ba,Jf,Zf,ya,...va]),{refetch:reactExports.useCallback((pg=!1)=>{if(hp&&pp&&(!ba||dp&&Cl)){const hg=Zf(hp);wl.current.delete(hg),Jf(hp,pp,pg)}},[hp,pp,dp,Cl,ba,Jf,Zf,ya]),clearCache:reactExports.useCallback(()=>{wl.current.clear()},[]),isMatchingRoute:Ef,hasRequiredData:!!(hp&&pp&&(!ba||dp&&Cl))}},useStore=()=>{const{moduleName:ya}=useParams(),ma=getModuleNames().filter(wl=>wl!=="agentlang"),{currentTeam:ba}=useTeams();if(!ya)throw new Error("Module name is undefined");let va;try{va=fetchModule$2(ya)}catch(wl){console.error(wl)}const Ma=va?va.getEntityNames():[];return{modules:ma,currentModule:va,entities:Ma,currentTeam:ba}},useRbac=()=>{const{teamName:ya,moduleName:ma}=useParams(),ba=useAppStore($4=>$4.setSelectedRole),va=useAppStore($4=>$4.setAppConfig),Ma=useAppStore($4=>$4.appConfig),wl=useAppStore($4=>$4.user),El=wl.GitHub.Token,Sl=wl.GitHub.Username,{incrementModuleDbChangeCount:Cl}=useAppStore(),Mc=()=>{if(!ya)throw new Error("Team name is required to save RBAC roles");if(!ma)throw new Error("Module name is required for RBAC operations")},dp=$4=>{if(!ma)throw new Error("Module name is required for RBAC operations");const cN=getEntity$1($4,ma);if(!cN)throw new Error(`Entity instance for "${$4}" in module "${ma}" is undefined.`);return cN},pp=$4=>{if(!ma||!ya)throw new Error("Module name and team name are required for RBAC operations");const R4=fetchModule$2(ma).toString();Cl(),saveModuleToGit(ya,ma,R4,$4,Sl,El)},hp=($4,cN,R4,k4="Toggle")=>{try{Mc();for(const uN of $4){const uee=dp(uN),$pe=uee.getRbacSpecifications()||[],Ppe=R4([...$pe],cN);uee.setRbacSpecifications(Ppe)}const AQ=`${k4} all RBAC permissions for role: ${cN}`;pp(AQ)}catch(AQ){throw console.error("Error toggling all RBAC permissions:",AQ),AQ}},Ef=($4,cN,R4,k4,AQ="Toggle")=>{try{Mc();for(const uee of $4){const $pe=dp(uee),Ppe=$pe.getRbacSpecifications()||[],e2e=R4([...Ppe],cN,k4);$pe.setRbacSpecifications(e2e)}const uN=`${AQ} ${k4} RBAC permission for role: ${cN}`;pp(uN)}catch(uN){throw console.error(`Error toggling ${k4} RBAC permission:`,uN),uN}},Zf=($4,cN,R4,k4="Toggle")=>{try{Mc();const AQ=dp($4),uN=AQ.getRbacSpecifications()||[],uee=R4([...uN],cN);AQ.setRbacSpecifications(uee);const $pe=`${k4} all RBAC permissions for role: ${cN} on entity: ${$4}`;pp($pe)}catch(AQ){throw console.error("Error toggling all RBAC permissions for entity:",AQ),AQ}},Jf=($4,cN,R4,k4,AQ="Toggle")=>{try{Mc();const uN=dp($4),uee=uN.getRbacSpecifications()||[],$pe=R4([...uee],cN,k4);uN.setRbacSpecifications($pe);const Ppe=`${AQ} ${k4} RBAC permission for role: ${cN} on entity: ${$4}`;pp(Ppe)}catch(uN){throw console.error(`Error toggling ${k4} RBAC permission for entity:`,uN),uN}},pg=($4,cN="Save RBAC roles")=>{Mc();const R4={...Ma,rbac:{roles:$4}};if(va(R4),!ya)throw new Error("Team name is required to save RBAC roles");saveConfigToGit(ya,JSON.stringify(R4,null,2),cN,Sl,El)},hg=$4=>{const cN=Ma?.rbac?.roles||[];pg([...cN,$4],"Add RBAC role"),ba($4)},mg=$4=>{const R4=(Ma?.rbac?.roles||[]).filter(k4=>k4!==$4);pg(R4,"Delete RBAC role"),ba(R4.at(-1)||"")},gg=($4,cN)=>{const R4=$4.find(k4=>k4.roles.has(cN));if(R4){if(R4.hasCreatePermission()&&R4.hasReadPermission()&&R4.hasUpdatePermission()&&R4.hasDeletePermission())return $4.filter(AQ=>AQ!==R4);R4.setPermissions(["create","read","update","delete"])}else{const k4=new RbacSpecification;k4.setRoles([cN]),k4.setPermissions(["create","read","update","delete"]),$4.push(k4)}return $4},yg=($4,cN,R4)=>{const k4=$4.find(AQ=>AQ.roles.has(cN));if(k4)if((()=>{switch(R4){case"create":return k4.hasCreatePermission();case"read":return k4.hasReadPermission();case"update":return k4.hasUpdatePermission();case"delete":return k4.hasDeletePermission()}})()){const $pe=Array.from(k4.permissions).map(Ppe=>RbacPermissionFlag$1[Ppe].toLowerCase()).filter(Ppe=>Ppe!==R4);if($pe.length===0)return $4.filter(Ppe=>Ppe!==k4);k4.setPermissions($pe)}else{const uN=Array.from(k4.permissions).map(uee=>RbacPermissionFlag$1[uee].toLowerCase());uN.push(R4),k4.setPermissions(uN)}else{const AQ=new RbacSpecification;AQ.setRoles([cN]),AQ.setPermissions([R4]),$4.push(AQ)}return $4};return{saveRbacRoles:pg,addRole:hg,deleteRole:mg,allHandler:$4=>{if(!ma)return;const cN=getEntities(ma);hp(cN,$4,gg)},createHandler:$4=>{if(!ma)return;const cN=getEntities(ma);Ef(cN,$4,yg,"create")},readHandler:$4=>{if(!ma)return;const cN=getEntities(ma);Ef(cN,$4,yg,"read")},updateHandler:$4=>{if(!ma)return;const cN=getEntities(ma);Ef(cN,$4,yg,"update")},deleteHandler:$4=>{if(!ma)return;const cN=getEntities(ma);Ef(cN,$4,yg,"delete")},entityAllHandler:($4,cN)=>{Zf($4,cN,gg)},entityCreateHandler:($4,cN)=>{Jf($4,cN,yg,"create")},entityReadHandler:($4,cN)=>{Jf($4,cN,yg,"read")},entityUpdateHandler:($4,cN)=>{Jf($4,cN,yg,"update")},entityDeleteHandler:($4,cN)=>{Jf($4,cN,yg,"delete")},addExpression:($4,cN,R4)=>{try{Mc();const k4=dp($4),AQ=k4.getRbacSpecifications()||[],uN=AQ.find($pe=>$pe.expression),uee=Object.entries(R4).filter(([$pe,Ppe])=>Ppe).map(([$pe])=>$pe);if(uN)uN.setPermissions(uee),uN.setExpression("auth.user",`this.${cN}`);else{const $pe=new RbacSpecification;$pe.setPermissions(uee),$pe.setExpression("auth.user",`this.${cN}`),AQ.push($pe)}k4.setRbacSpecifications(AQ),pp(`Add RBAC expression for entity: ${$4}`)}catch(k4){throw console.error("Error setting expression for entity:",k4),k4}},removeExpression:$4=>{try{Mc();const cN=dp($4),k4=(cN.getRbacSpecifications()||[]).filter(AQ=>!AQ.expression);cN.setRbacSpecifications(k4),pp(`Remove RBAC expression for entity: ${$4}`)}catch(cN){throw console.error("Error removing expression for entity:",cN),cN}},getRoleRbacSpec:($4,cN)=>(Mc(),(dp($4).getRbacSpecifications()||[]).find(uN=>uN.roles.has(cN))),getRBACExpression:$4=>(Mc(),(dp($4).getRbacSpecifications()||[]).find(AQ=>AQ.expression))}},useWorkflow=ya=>{const{teamName:ma,moduleName:ba}=useParams(),va=useAppStore(Zf=>Zf.user),Ma=va.GitHub.Token,wl=va.GitHub.Username,{incrementModuleDbChangeCount:El}=useAppStore();return{onCreateCrudStatement:async(Zf,Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba||""),mg=hg.getWorkflowForEvent(ya);let gg;if(Jf==="create"?gg=newCreatePattern(Zf):Jf==="read"?gg=newQueryPattern(Zf):Jf==="delete"?gg=newDeletePattern(Zf):Jf==="update"&&(gg=newQueryUpdatePattern(Zf)),Jf==="loop"?gg=new ForEachPattern$1:Jf==="if-else"&&(gg=new IfPattern$1().setElse()),gg&&mg)await mg.setStatementAt(gg.toString(),pg).then(async()=>{El(),saveModuleToGit(ma,ba,hg.toString(),`Add ${Jf} pattern for ${ya}`,wl,Ma)});else throw new Error(`Unknown type: ${Jf}`)},onDeleteStatementHandler:async Zf=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const Jf=fetchModule$2(ba||"");Jf.getWorkflowForEvent(ya)?.removeStatementAt(Zf),El(),saveModuleToGit(ma,ba,Jf.toString(),`Delete pattern for ${ya} at index ${Zf}`,wl,Ma)},updateStatementHandler:async(Zf,Jf)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const pg=fetchModule$2(ba||"");await pg.getWorkflowForEvent(ya)?.setStatementAt(Jf,Zf).then(async()=>{El(),saveModuleToGit(ma,ba,pg.toString(),`Update pattern for ${ya} at index ${Zf}`,wl,Ma)})},onCreateFunctionCall:async(Zf,Jf,pg=[])=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba||""),mg=hg.getWorkflowForEvent(ya),gg=pg.map(ay=>new ExpressionPattern$1(ay.trim())),yg=new FunctionCallPattern$1(Jf,gg);if(mg)await mg.setStatementAt(yg.toString(),Zf).then(async()=>{El(),saveModuleToGit(ma,ba,hg.toString(),`Add function call pattern for ${ya}`,wl,Ma)});else throw new Error(`Workflow not found for event: ${ya}`)},onCreateExpression:async(Zf,Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba||""),mg=hg.getWorkflowForEvent(ya),gg=new ExpressionPattern$1(Jf);pg&&gg.setAlias(pg),await mg?.setStatementAt(gg.toString(),Zf).then(async()=>{El(),saveModuleToGit(ma,ba,hg.toString(),`Add expression pattern for ${ya}`,wl,Ma)})},onCreateLiteralPattern:async(Zf,Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba||""),mg=hg.getWorkflowForEvent(ya),gg=new LiteralPattern$1(LiteralPatternType$1.REFERENCE,Jf);pg&&gg.setAlias(pg),await mg?.setStatementAt(gg.toString(),Zf).then(async()=>{El(),saveModuleToGit(ma,ba,hg.toString(),`Add literal pattern for ${ya}`,wl,Ma)})},addTrigger:(Zf,Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");if(pg==="after")if(Jf==="create")addAfterCreateWorkflow(Zf,ba);else if(Jf==="delete")addAfterDeleteWorkflow(Zf,ba);else if(Jf==="update")addAfterUpdateWorkflow(Zf,ba);else throw new Error("Invalid trigger type");else if(pg==="before")if(Jf==="create")addBeforeCreateWorkflow(Zf);else if(Jf==="delete")addBeforeDeleteWorkflow(Zf);else if(Jf==="update")addBeforeUpdateWorkflow(Zf,ba);else throw new Error("Invalid trigger type");else throw new Error("Invalid trigger time");const hg=fetchModule$2(ba||"");El(),saveModuleToGit(ma,ba,hg.toString(),`Add ${pg} ${Jf} trigger for ${Zf}`,wl,Ma)}}},useFlow=()=>{const{zoomHandler:ya}=useZoomHandler(),{teamName:ma,moduleName:ba}=useParams(),va=useAppStore(Jf=>Jf.user),{incrementModuleDbChangeCount:Ma,setSelectedDecisionId:wl}=useAppStore(),El=va.GitHub.Token,Sl=va.GitHub.Username;return{addFlow:Jf=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const pg=fetchModule$2(ba);pg.addFlow(Jf);const hg=pg.toString();saveModuleToGit(ma,ba,hg,`Add flow ${Jf}`,Sl,El),Ma(),setTimeout(()=>{ya(Jf)},100)},removeFlow:(Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba);hg.removeFlow(Jf);const mg=hg.toString();saveModuleToGit(ma,ba,mg,`Remove flow ${Jf}`,Sl,El),Ma(),pg&&setTimeout(()=>{ya(pg)},100)},updateFlow:async(Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba);hg.removeFlow(Jf),hg.addFlow(Jf);const mg=hg.getFlow(Jf);if(!mg)throw new Error("Flow could not be recreated");for(const yg of pg){const ay=new FlowStepPattern$1(yg.source);yg.label&&ay.setCondition(yg.label),await ay.setNextFromString(yg.target),mg.appendStep(ay.toString())}const gg=hg.toString();saveModuleToGit(ma,ba,gg,`Update flow ${Jf}`,Sl,El)},addDecision:Jf=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const pg=fetchModule$2(ba);if(pg.getDecision(Jf))return;const mg=new Decision$1(Jf,pg.name,[]);pg.addDecision(mg);const gg=pg.toString();saveModuleToGit(ma,ba,gg,`Add decision ${Jf}`,Sl,El),Ma(),setTimeout(()=>{wl(Jf),ya(`decision-node-${Jf}`,{openForm:!0})},200)},removeDecision:Jf=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const pg=fetchModule$2(ba);if(!pg.getDecision(Jf))return;pg.removeDecision(Jf);const mg=pg.toString();saveModuleToGit(ma,ba,mg,`Remove decision ${Jf}`,Sl,El)},updateDecision:(Jf,pg)=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");const hg=fetchModule$2(ba);if(!hg.getDecision(Jf))return;hg.removeDecision(Jf);const gg=new Decision$1(Jf,hg.name,pg);hg.addDecision(gg);const yg=hg.toString();saveModuleToGit(ma,ba,yg,`Update decision ${Jf}`,Sl,El)},getDecision:Jf=>{if(!ma)throw new Error("teamName is undefined");if(!ba)throw new Error("moduleName is undefined");return fetchModule$2(ba).getDecision(Jf)}}},useMobile=()=>{const[ya,ma]=reactExports.useState(!1);return reactExports.useEffect(()=>{const ba=()=>{ma(window.innerWidth<768)};return ba(),window.addEventListener("resize",ba),()=>window.removeEventListener("resize",ba)},[]),ya};function transformApiResponseToMarketplaceModel(ya){return{Id:ya.id||"",Name:ya.name||"",Type:ya.type||"",Description:ya.description||"",Version:ya.version||"",Owner:ya.owner||"",GitHubOrg:ya.gitHubOrg||"",GitHubRepo:ya.gitHubRepo||"",Branch:ya.gitHubBranch||ya.branch||"main",CreatedAt:ya.createdAt||"",LastUpdatedAt:ya.lastUpdatedAt||"",Icon:ya.icon||"",MarketPlaceUrl:ya.marketPlaceUrl||"",ExtraDetails:ya.extraDetails||{},GithubOrg:ya.gitHubOrg||"",Config:{},Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"Model",GithubUrl:ya.githubUrl||`https://github.com/${ya.gitHubOrg}/${ya.gitHubRepo}`,__Id__:ya.id||"",Tags:ya.tags||null,isEditable:!1,isPin:!1,isLoading:!1,isError:!1,ErrorMessage:""}}const useMarketplace=()=>{const{error:ya,refetch:ma}=useQuery({queryKey:["marketplace","models"],enabled:!1,queryFn:async()=>{const wl=await axiosInstance("marketplace").get("/MarketplaceMeta/Model");console.log("The response of marketplace model is:",wl.data);let El=[];return Array.isArray(wl.data)?wl.data.length===0?El=[]:El=wl.data.map(Sl=>Sl.Model||Sl).map(Sl=>transformApiResponseToMarketplaceModel(Sl)):wl.data?.result&&Array.isArray(wl.data.result)&&(El=wl.data.result.map(Sl=>Sl.Model||Sl).map(Sl=>transformApiResponseToMarketplaceModel(Sl))),El},staleTime:3e5,gcTime:6e5,retry:(wl,El)=>El?.response?.status===401||El?.response?.status===403?!1:wl<2}),ba=reactExports.useCallback(async()=>{await ma()},[ma]),va=reactExports.useCallback(async wl=>{try{const El=await axiosInstance("marketplace").post("/MarketplaceMeta/Model",wl);return y$b.success("Model published successfully!"),El.data}catch(El){const Sl=El?.response?.data?.reason||"Failed to publish model";throw y$b.error(Sl),El}},[]),Ma=reactExports.useCallback(async wl=>{try{await axiosInstance("marketplace").delete(`/MarketplaceMeta/Model/${wl}`),y$b.success("Model deleted successfully!"),await ma()}catch(El){const Sl=El?.response?.data?.reason||"Failed to delete model";throw y$b.error(Sl),El}},[ma]);return{fetchMarketplaceModels:ba,publishModel:va,deleteModel:Ma,refetchMarketplaceModels:ma}},IS_PLAYGROUND$6=!1,IS_LOCAL_MODE$4=!0,useAddTeam=()=>{const{addWorkspaceApp:ya,launchApp:ma,fetchWorkspaceApps:ba}=useTeams(),{processRepositoryForLocalMode:va}=useRepositoryClone(),Ma=useAppStore(ay=>ay.user),wl=Ma.GitHub.Token,El=Ma.GitHub.Org,Sl=Ma.GitHub.Username,Cl=useNavigate(),[Mc,dp]=React.useState(!1),[pp,hp]=React.useState("creating-repo"),[Ef,Zf]=React.useState(""),pg=[{id:"creating-repo",label:"Creating app structure"},{id:"installing-deps",label:"Installing dependencies (this may take a minute)"},{id:"creating",label:"Launching app"},{id:"processing",label:"Processing repository"}],hg=async({name:ay})=>{hp("creating-repo"),Zf("Creating app structure and files...");const ly="http://localhost:4000";try{hp("installing-deps"),Zf("Installing dependencies... This may take a minute, please wait.");const cy=await fetch(`${ly}/app/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:ay})});if(!cy.ok){const uE=await cy.json().catch(()=>({error:"Unknown error"}));throw new Error(uE.error||`Failed to create app: ${cy.statusText}`)}const q1=await cy.json(),r0=q1.name;try{await ba(),q1.path&&(hp("creating"),Zf("Launching app..."),await ma(q1.path,r0),hp("processing"),Zf("Processing repository..."),await va(q1.path,r0,r0,El||"file","main")),dp(!1),await new Promise(uE=>setTimeout(uE,500)),Cl(`/design/agents/file/${r0}/data-model`,{state:{isNewTeam:!0}})}catch(uE){throw console.error(`Failed to process ${r0}:`,uE),dp(!1),uE}}catch(cy){throw console.error("Failed to create app in local mode:",cy),dp(!1),cy}},mg=async({name:ay})=>{hp("creating-repo"),Zf("Creating local repository...");try{const ly=ay,cy=`/${ly}`,q1="main";await initializeLocalRepository(cy),hp("adding-files"),Zf("Adding initial files...");const r0={name:ly,version:"0.0.1"},uE=await openRepository(cy);await writeRepoFile(cy,"package.json",JSON.stringify(r0)),await commitChanges(uE,"package.json","Add package.json",{name:Sl||"playground-user",email:Sl||"playground-user"}),await writeRepoFile(cy,"config.al",JSON.stringify({agentlang:{service:{port:8080},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},"agentlang.ai":[{"agentlang.ai/LLM":{name:"llm01",service:"openai",config:{model:"gpt-4o"}}}]},null,2)),await commitChanges(uE,"config.al","Add config.al",{name:Sl||"playground-user",email:Sl||"playground-user"});const V1="src/core.al";await writeRepoFile(cy,V1,`module ${ly.toLowerCase()}.core`),await commitChanges(uE,V1,"Add core.al ",{name:Sl||"playground-user",email:Sl||"playground-user"}),hp("loading-module"),Zf("Loading module...");try{await flushAllAndLoad(`/${ly}`,{name:"studio"});const H1=getUserModuleNames();hp("adding-workspace"),Zf("Adding to workspace...");const O_={name:ay,type:"App",gitHubOrg:El||"playground",gitHubRepo:ly,branch:q1,description:"",owner:localStorage.getItem("username")||"playground-user",version:"0.0.1",isEditable:!0};await ya(O_),await ba(),dp(!1),Cl(`/design/agents/${El||"playground"}/${ly}/${H1[0]}`,{state:{isNewTeam:!0}})}catch(H1){console.error(`Failed to load ${ly}:`,H1),dp(!1)}}catch(ly){console.error("Failed to create local team:",ly),dp(!1)}},gg=async({name:ay})=>{hp("creating-repo"),Zf("Creating GitHub repository...");try{const cy=(await createGitHubRepo(wl,ay,{private:!0,auto_init:!0},El)).name;hp("cloning-repo"),Zf("Cloning repository...");try{const q1=`/${cy}`,r0="main",uE=Sl&&Sl.trim().length>0,V1=wl&&wl.trim().length>0;if(!uE||!V1){alert("⚠️ GitHub credentials missing. Please set your GitHub username and token in Settings.");return}const H1=generateGitHubUrl(El,cy,Sl,wl),O_=async()=>{try{await pathExists(q1)&&(console.log(`Cleaning up failed clone: removing ${q1} from IndexedDB`),await removeDirectory(q1))}catch(sN){console.error("Error cleaning up failed clone:",sN)}};try{await cloneRepository(H1,q1,r0,wl)}catch(sN){throw console.error("Failed to clone repository:",sN),await O_(),sN}hp("adding-files"),Zf("Adding initial files...");const aE={name:cy,version:"0.0.1"},P_=await openRepository(q1);await writeRepoFile(q1,"package.json",JSON.stringify(aE)),await commitChanges(P_,"package.json","Add package.json",{name:Sl,email:Sl}),await writeRepoFile(q1,"config.al",JSON.stringify({agentlang:{service:{port:8080},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},"agentlang.ai":[{"agentlang.ai/LLM":{name:"llm01",service:"openai",config:{model:"gpt-4o"}}}]},null,2)),await commitChanges(P_,"config.al","Add config.al",{name:Sl,email:Sl});const M_="src/core.al";await writeRepoFile(q1,M_,`module ${cy.toLowerCase()}.core`),await commitChanges(P_,M_,"Add core.al ",{name:Sl,email:Sl}),hp("pushing-changes"),Zf("Pushing changes to GitHub..."),await pushChanges(P_,"origin",r0,wl),hp("loading-module"),Zf("Loading module...");try{await flushAllAndLoad(`/${cy}`,{name:"studio"});const sN=getUserModuleNames();hp("adding-workspace"),Zf("Adding to workspace...");const AF={name:ay,type:"App",gitHubOrg:El,gitHubRepo:cy,branch:r0,description:"",owner:localStorage.getItem("username")||"",version:"0.0.1",isEditable:!0};await ya(AF),await ba(),dp(!1),Cl(`/design/data-model/${El}/${cy}/${sN[0]}`,{state:{isNewTeam:!0}})}catch(sN){console.error(`Failed to load ${cy}:`,sN);try{await pathExists(q1)&&(console.log(`Cleaning up failed clone: removing ${q1} from IndexedDB`),await removeDirectory(q1))}catch(AF){console.error("Error cleaning up failed clone:",AF)}dp(!1)}}catch(q1){console.error(`Failed to clone repository: ${q1}`);try{const r0=`/${cy}`;await pathExists(r0)&&(console.log(`Cleaning up failed clone: removing ${r0} from IndexedDB`),await removeDirectory(r0))}catch(r0){console.error("Error cleaning up failed clone:",r0)}dp(!1)}}catch(ly){console.error("Failed to create GitHub Repository:",ly),dp(!1)}};return{addTeam:async({name:ay})=>{dp(!0);try{IS_LOCAL_MODE$4&&await hg({name:ay})}catch(ly){console.error("Failed to create team:",ly)}},isLoading:Mc,currentStep:pp,statusMessage:Ef,loadingSteps:pg}},extractRepoNameFromGitUrl=ya=>{const ma=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,ba=ya.match(ma);if(ba){const[,,va]=ba;return va}return null},getDependenciesRecursive=async(ya,ma,ba=new Set)=>{const va=Object.entries(ma).filter(([wl,El])=>{if(!(typeof El=="string"&&El.startsWith("git+http")))return!1;const Mc=(typeof El=="string"?extractRepoNameFromGitUrl(El):null)||wl.split(".")[0],dp=!ba.has(Mc);return dp&&ba.add(Mc),dp});return va.length===0?[]:(await Promise.all(va.map(async([wl,El])=>{const Cl=(typeof El=="string"?extractRepoNameFromGitUrl(El):null)||wl.split(".")[0],Mc=[Cl];try{const dp=await readDependencyPackageJsonFromGit(ya,Cl);if(dp.dependencies){const pp=await getDependenciesRecursive(ya,dp.dependencies,ba);Mc.push(...pp)}}catch(dp){console.error(`Failed to process dependency ${Cl}:`,dp)}return Mc}))).flat()},fetchDependencies=async ya=>{const ba=(await readPackageJsonFromGit(ya)).dependencies||{},va=Object.entries(ba).filter(([,wl])=>typeof wl=="string"&&wl.startsWith("git+http")).map(([wl,El])=>(typeof El=="string"?extractRepoNameFromGitUrl(El):null)||wl.split(".")[0]),Ma=await getDependenciesRecursive(ya,ba,new Set(va));return Array.from(new Set([...va,...Ma]))},filterModulesForDependency=(ya,ma)=>{const ba=ma.toLowerCase(),va=ba.replace(/_/g,"");return ya.filter(Ma=>{const wl=Ma.toLowerCase(),El=wl.split(".")[0];return wl.startsWith(ba)||El===va})},useDependencies=()=>{const{currentTeam:ya}=useTeams(),ma=ya?.GitHubRepo,ba=useQueryClient(),{data:va=[],isLoading:Ma,refetch:wl}=useQuery({queryKey:["dependencies",ma],queryFn:()=>fetchDependencies(ma),enabled:!!ma}),{data:El}=useQuery({queryKey:["packageJson",ma],queryFn:()=>readPackageJsonFromGit(ma),enabled:!!ma,staleTime:300*1e3}),Sl=getUserModuleNames(),Cl=[ma,...va].map(Zf=>({label:Zf||"",value:Zf||""})),Mc=Zf=>filterModulesForDependency(Sl,Zf),dp=()=>{const Zf=El?.name;return getTeamModules(Zf)},pp=async()=>{await ba.invalidateQueries({queryKey:["dependencies",ma]}),await wl()},hp=ma||"",Ef=hp?Mc(hp)[0]:"";return{dependencies:va,dependenciesOptions:Cl,loading:Ma,getDependenciesModule:Mc,getTeamModules:dp,defaultDependency:hp,defaultModule:Ef,refetchDependencies:pp}},useDoubleClick=(ya,ma,ba=300)=>{const va=reactExports.useRef(null),Ma=reactExports.useRef(0),wl=reactExports.useCallback(El=>{El.stopPropagation(),El.preventDefault(),Ma.current+=1,Ma.current===1?va.current=setTimeout(()=>{Ma.current===1&&ya(El),Ma.current=0,va.current=null},ba):Ma.current===2&&(va.current&&(clearTimeout(va.current),va.current=null),ma(El),Ma.current=0)},[ya,ma,ba]);return reactExports.useEffect(()=>()=>{va.current&&clearTimeout(va.current)},[]),wl},useStatementPattern=ya=>{const[ma,ba]=reactExports.useState(null);return reactExports.useEffect(()=>{(async()=>{try{const Ma=await introspect$1(ya);Ma&&Ma.length>0?ba(Ma[0]):ba(null)}catch{ba(null)}})()},[ya]),ma},useAppAutoDetection=()=>{const ya=useNavigate(),ma=useLocation(),{navigateToDesign:ba}=useRepositoryClone(),va=reactExports.useRef(!1),Ma=reactExports.useCallback(async()=>{if(va.current||ma.pathname!=="/")return;console.log("🚀 Checking current app..."),va.current=!0;const wl="http://localhost:4000";try{const El=await fetch(`${wl}/workspace`);if(console.log("🚀 Workspace response:",El),!El.ok){ya("/design/dashboard");return}const Sl=await El.json();if(Sl.currentApp){console.log("🚀 Auto-navigating to running app:",Sl.currentApp);const Mc=Sl.currentApp.split("/").pop(),dp=Sl.apps.find(pp=>pp.name===Mc);dp&&ba(!1,"file",dp.name,"data-model",{state:{from:"/design/dashboard"}})}else ya("/design/dashboard")}catch(El){console.warn("Failed to check current app:",El),ya("/design/dashboard")}},[ma.pathname,ya,ba]);return reactExports.useEffect(()=>{Ma()},[Ma]),{}},useLocalModeInitialization=()=>{const{updateUser:ya}=useAppStore(),ma=reactExports.useRef(!1);useAppAutoDetection();const ba=reactExports.useCallback(()=>{if(ma.current)return;loadEnvironmentFromCLI();const va=getEnvironmentKeysAsObject(),Ma={};va.ANTHROPIC_API_KEY&&(Ma.Anthropic={Key:va.ANTHROPIC_API_KEY}),va.OPENAI_API_KEY&&(Ma.OpenAI={Key:va.OPENAI_API_KEY,FinetunedModel:""}),(va.GITHUB_USERNAME||va.GITHUB_TOKEN||va.GITHUB_ORG)&&(Ma.GitHub={Username:va.GITHUB_USERNAME||"",Token:va.GITHUB_TOKEN||"",Org:va.GITHUB_ORG||""}),Object.keys(Ma).length>0&&(console.log("🔑 Populating user store with environment keys:",Object.keys(Ma)),ya(Ma)),ma.current=!0},[ya]);return reactExports.useEffect(()=>{ba()},[ba]),{}};function useAutoFocus(ya={}){const{delay:ma=100,enabled:ba=!0}=ya,va=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!ba)return;const Ma=setTimeout(()=>{va.current?.focus()},ma);return()=>clearTimeout(Ma)},[ma,ba]),va}const validationScehma=create$3().shape({email:create$6().email("Invalid email").required("Email is required"),password:create$6().required("Password is required")}),SignIn=()=>{const{login:ya}=useAuth(),ma=useNavigate();return reactExports.useEffect(()=>{{ma("/home");return}},[ma]),jsxRuntimeExports.jsx(Formik,{initialValues:{email:"",password:""},validationSchema:validationScehma,onSubmit:ba=>{const{email:va,password:Ma}=ba;ya(va,Ma)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign In"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsx(Kht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(Qht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx("div",{className:"auth-link text-right",onClick:()=>ma("/forgot-password"),children:"Forgot password?"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Sign in"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"No account ?"}),jsxRuntimeExports.jsx(Link$1,{className:"auth-link font-bold",to:"/signup",children:"Sign Up"})]})]})})},uppercaseRegex=/[A-Z]/,lowercaseRegex=/[a-z]/,numberRegex=/[0-9]/,specialCharRegex=/[!@#$%^&*(),.?":{}|<>]/,validationSchema$d=create$3().shape({firstName:create$6().required("First Name is required").min(2,"First Name must be at least 2 characters").max(50,"First Name must be less than 50 characters"),lastName:create$6().required("Last Name is required").min(2,"Last Name must be at least 2 characters").max(50,"Last Name must be less than 50 characters"),email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required").min(8,"Password must be at least 8 characters").matches(uppercaseRegex,"Password must contain at least one uppercase letter").matches(lowercaseRegex,"Password must contain at least one lowercase letter").matches(numberRegex,"Password must contain at least one number").matches(specialCharRegex,"Password must contain at least one special character"),confirmPassword:create$6().required("Confirm Password is required").oneOf([create$9("password")],"Passwords don't match")}),SignUp=()=>{const ya=useNavigate(),{signUp:ma,isSigningUp:ba}=useSignUp(),[va,Ma]=reactExports.useState(null);return jsxRuntimeExports.jsx(Formik,{initialValues:{firstName:"",lastName:"",email:"",password:"",confirmPassword:""},validationSchema:validationSchema$d,onSubmit:async(wl,{setSubmitting:El})=>{Ma(null);try{const Sl=await ma({firstName:wl.firstName,lastName:wl.lastName,email:wl.email,password:wl.password});!Sl.success&&Sl.error&&Ma(Sl.error)}catch{Ma("An unexpected error occurred. Please try again.")}finally{El(!1)}},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign Up"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsxs("div",{className:"md:grid flex flex-col md:grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(Kht,{name:"firstName",placeholder:"First Name"}),jsxRuntimeExports.jsx(Kht,{name:"lastName",placeholder:"Last Name"}),jsxRuntimeExports.jsx("div",{className:"col-span-2",children:jsxRuntimeExports.jsx(Kht,{name:"email",placeholder:"Email",type:"email"})}),jsxRuntimeExports.jsx(Qht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(Qht,{name:"confirmPassword",placeholder:"Confirm Password"})]}),va&&jsxRuntimeExports.jsx("div",{className:"text-red-500 text-sm text-center p-2",children:va}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:ba,children:ba?"Creating Account...":"Create Account"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already have an account ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>ya("/"),children:"Sign In"})]})]})})},validationSchema$c=create$3().shape({email:create$6().required("Email is required").email("Invalid email address")}),ForgotPassword=()=>{const ya=useNavigate();return jsxRuntimeExports.jsx(Formik,{initialValues:{email:""},validationSchema:validationSchema$c,onSubmit:ma=>{const{email:ba}=ma;console.log(ba)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Send confirmation code to your email"})]}),jsxRuntimeExports.jsx(Kht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Send confirmation code"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>ya("/"),children:"Sign In"})]})]})})},numberOnlyRegex=/^[0-9]+$/,validationSchema$b=create$3().shape({email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required"),code:create$6().matches(numberOnlyRegex,"Code must contain only numbers")}),RecoverPassword=()=>{const ya=useNavigate();return jsxRuntimeExports.jsx(Formik,{validationSchema:validationSchema$b,initialValues:{email:"",password:"",code:""},onSubmit:ma=>{const{email:ba,password:va,code:Ma}=ma;console.log(ba,va,Ma)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Set new password"})]}),jsxRuntimeExports.jsx(Kht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(Qht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(Qht,{name:"code",placeholder:"Code"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Set new password"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>ya("/"),children:"Sign In"})]})]})})};var classnames={exports:{}};/*!
@@ -21651,7 +21651,7 @@ Please report this to https://github.com/markedjs/marked.`,ya){let va="<p>An err
21651
21651
  `;const hp=new Array(El).fill(0).map((Zf,Jf)=>dp&&Mc[Jf]&&Mc[Jf].text||"");return pp+=`| ${hp.map((Zf,Jf)=>Cl(Zf,Sl[Jf])).join(" | ")} |
21652
21652
  `,pp+=`| ${Sl.map(Zf=>"-".repeat(Math.max(3,Zf))).join(" | ")} |
21653
21653
  `,(dp?wl.slice(1):wl).forEach(Zf=>{pp+=`| ${new Array(El).fill(0).map((Jf,pg)=>Cl(Zf[pg]&&Zf[pg].text||"",Sl[pg])).join(" | ")} |
21654
- `}),pp}var markdown_default=renderTableToMarkdown,Table=Node3.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:TableView,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({node:ya,HTMLAttributes:ma}){const{colgroup:ba,tableWidth:va,tableMinWidth:Ma}=createColGroup(ya,this.options.cellMinWidth),wl=ma.style;function El(){return wl||(va?`width: ${va}`:`min-width: ${Ma}`)}const Sl=["table",mergeAttributes(this.options.HTMLAttributes,ma,{style:El()}),ba,["tbody",0]];return this.options.renderWrapper?["div",{class:"tableWrapper"},Sl]:Sl},parseMarkdown:(ya,ma)=>{const ba=[];if(ya.header){const va=[];ya.header.forEach(Ma=>{va.push(ma.createNode("tableHeader",{},[{type:"paragraph",content:ma.parseInline(Ma.tokens)}]))}),ba.push(ma.createNode("tableRow",{},va))}return ya.rows&&ya.rows.forEach(va=>{const Ma=[];va.forEach(wl=>{Ma.push(ma.createNode("tableCell",{},[{type:"paragraph",content:ma.parseInline(wl.tokens)}]))}),ba.push(ma.createNode("tableRow",{},Ma))}),ma.createNode("table",void 0,ba)},renderMarkdown:(ya,ma)=>markdown_default(ya,ma),addCommands(){return{insertTable:({rows:ya=3,cols:ma=3,withHeaderRow:ba=!0}={})=>({tr:va,dispatch:Ma,editor:wl})=>{const El=createTable(wl.schema,ya,ma,ba);if(Ma){const Sl=va.selection.from+1;va.replaceSelectionWith(El).scrollIntoView().setSelection(TextSelection.near(va.doc.resolve(Sl)))}return!0},addColumnBefore:()=>({state:ya,dispatch:ma})=>addColumnBefore(ya,ma),addColumnAfter:()=>({state:ya,dispatch:ma})=>addColumnAfter(ya,ma),deleteColumn:()=>({state:ya,dispatch:ma})=>deleteColumn(ya,ma),addRowBefore:()=>({state:ya,dispatch:ma})=>addRowBefore(ya,ma),addRowAfter:()=>({state:ya,dispatch:ma})=>addRowAfter(ya,ma),deleteRow:()=>({state:ya,dispatch:ma})=>deleteRow(ya,ma),deleteTable:()=>({state:ya,dispatch:ma})=>deleteTable(ya,ma),mergeCells:()=>({state:ya,dispatch:ma})=>mergeCells(ya,ma),splitCell:()=>({state:ya,dispatch:ma})=>splitCell(ya,ma),toggleHeaderColumn:()=>({state:ya,dispatch:ma})=>toggleHeader("column")(ya,ma),toggleHeaderRow:()=>({state:ya,dispatch:ma})=>toggleHeader("row")(ya,ma),toggleHeaderCell:()=>({state:ya,dispatch:ma})=>toggleHeaderCell(ya,ma),mergeOrSplit:()=>({state:ya,dispatch:ma})=>mergeCells(ya,ma)?!0:splitCell(ya,ma),setCellAttribute:(ya,ma)=>({state:ba,dispatch:va})=>setCellAttr(ya,ma)(ba,va),goToNextCell:()=>({state:ya,dispatch:ma})=>goToNextCell(1)(ya,ma),goToPreviousCell:()=>({state:ya,dispatch:ma})=>goToNextCell(-1)(ya,ma),fixTables:()=>({state:ya,dispatch:ma})=>(ma&&fixTables(ya),!0),setCellSelection:ya=>({tr:ma,dispatch:ba})=>{if(ba){const va=CellSelection.create(ma.doc,ya.anchorCell,ya.headCell);ma.setSelection(va)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:deleteTableWhenAllCellsSelected,"Mod-Backspace":deleteTableWhenAllCellsSelected,Delete:deleteTableWhenAllCellsSelected,"Mod-Delete":deleteTableWhenAllCellsSelected}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[columnResizing({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],tableEditing({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(ya){const ma={name:ya.name,options:ya.options,storage:ya.storage};return{tableRole:callOrReturn(getExtensionField(ya,"tableRole",ma))}}});Extension.create({name:"tableKit",addExtensions(){const ya=[];return this.options.table!==!1&&ya.push(Table.configure(this.options.table)),this.options.tableCell!==!1&&ya.push(TableCell.configure(this.options.tableCell)),this.options.tableHeader!==!1&&ya.push(TableHeader.configure(this.options.tableHeader)),this.options.tableRow!==!1&&ya.push(TableRow.configure(this.options.tableRow)),ya}});var TextAlign=Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:ya=>{const ma=ya.style.textAlign;return this.options.alignments.includes(ma)?ma:this.options.defaultAlignment},renderHTML:ya=>ya.textAlign?{style:`text-align: ${ya.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:ya=>({commands:ma})=>this.options.alignments.includes(ya)?this.options.types.map(ba=>ma.updateAttributes(ba,{textAlign:ya})).some(ba=>ba):!1,unsetTextAlign:()=>({commands:ya})=>this.options.types.map(ma=>ya.resetAttributes(ma,"textAlign")).some(ma=>ma),toggleTextAlign:ya=>({editor:ma,commands:ba})=>this.options.alignments.includes(ya)?ma.isActive({textAlign:ya})?ba.unsetTextAlign():ba.setTextAlign(ya):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),inputRegex$1=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,Image$1=Node3.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:ya}){return["img",mergeAttributes(this.options.HTMLAttributes,ya)]},parseMarkdown:(ya,ma)=>ma.createNode("image",{src:ya.href,title:ya.title,alt:ya.text}),renderMarkdown:ya=>{var ma,ba,va,Ma,wl,El;const Sl=(ba=(ma=ya.attrs)==null?void 0:ma.src)!=null?ba:"",Cl=(Ma=(va=ya.attrs)==null?void 0:va.alt)!=null?Ma:"",Mc=(El=(wl=ya.attrs)==null?void 0:wl.title)!=null?El:"";return Mc?`![${Cl}](${Sl} "${Mc}")`:`![${Cl}](${Sl})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u")return null;const{directions:ya,minWidth:ma,minHeight:ba,alwaysPreserveAspectRatio:va}=this.options.resize;return({node:Ma,getPos:wl,HTMLAttributes:El,editor:Sl})=>{const Cl=document.createElement("img");Object.entries(El).forEach(([pp,hp])=>{if(hp!=null)switch(pp){case"width":case"height":break;default:Cl.setAttribute(pp,hp);break}}),Cl.src=El.src;const Mc=new ResizableNodeView({element:Cl,editor:Sl,node:Ma,getPos:wl,onResize:(pp,hp)=>{Cl.style.width=`${pp}px`,Cl.style.height=`${hp}px`},onCommit:(pp,hp)=>{const Ef=wl();Ef!==void 0&&this.editor.chain().setNodeSelection(Ef).updateAttributes(this.name,{width:pp,height:hp}).run()},onUpdate:(pp,hp,Ef)=>pp.type===Ma.type,options:{directions:ya,min:{width:ma,height:ba},preserveAspectRatio:va===!0}}),dp=Mc.dom;return dp.style.visibility="hidden",dp.style.pointerEvents="none",Cl.onload=()=>{dp.style.visibility="",dp.style.pointerEvents=""},Mc}},addCommands(){return{setImage:ya=>({commands:ma})=>ma.insertContent({type:this.name,attrs:ya})}},addInputRules(){return[nodeInputRule({find:inputRegex$1,type:this.type,getAttributes:ya=>{const[,,ma,ba,va]=ya;return{src:ba,alt:ma,title:va}}})]}}),inputRegex=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,pasteRegex=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,Highlight=Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:ya=>ya.getAttribute("data-color")||ya.style.backgroundColor,renderHTML:ya=>ya.color?{"data-color":ya.color,style:`background-color: ${ya.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:ya}){return["mark",mergeAttributes(this.options.HTMLAttributes,ya),0]},renderMarkdown:(ya,ma)=>`==${ma.renderChildren(ya)}==`,parseMarkdown:(ya,ma)=>ma.applyMark("highlight",ma.parseInline(ya.tokens||[])),markdownTokenizer:{name:"highlight",level:"inline",start:ya=>ya.indexOf("=="),tokenize(ya,ma,ba){const Ma=/^(==)([^=]+)(==)/.exec(ya);if(Ma){const wl=Ma[2].trim(),El=ba.inlineTokens(wl);return{type:"highlight",raw:Ma[0],text:wl,tokens:El}}}},addCommands(){return{setHighlight:ya=>({commands:ma})=>ma.setMark(this.name,ya),toggleHighlight:ya=>({commands:ma})=>ma.toggleMark(this.name,ya),unsetHighlight:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[markInputRule({find:inputRegex,type:this.type})]},addPasteRules(){return[markPasteRule({find:pasteRegex,type:this.type})]}}),Subscript=Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(ya){return ya!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:ya}){return["sub",mergeAttributes(this.options.HTMLAttributes,ya),0]},addCommands(){return{setSubscript:()=>({commands:ya})=>ya.setMark(this.name),toggleSubscript:()=>({commands:ya})=>ya.toggleMark(this.name),unsetSubscript:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Superscript=Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(ya){return ya!=="super"?!1:null}}]},renderHTML({HTMLAttributes:ya}){return["sup",mergeAttributes(this.options.HTMLAttributes,ya),0]},addCommands(){return{setSuperscript:()=>({commands:ya})=>ya.setMark(this.name),toggleSuperscript:()=>({commands:ya})=>ya.toggleMark(this.name),unsetSuperscript:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}});const FontSize=TextStyle.extend({addAttributes(){return{...this.parent?.(),fontSize:{default:null,parseHTML:ya=>ya.style.fontSize?.replace(/['"]+/g,""),renderHTML:ya=>ya.fontSize?{style:`font-size: ${ya.fontSize}`}:{}}}},addCommands(){return{...this.parent?.(),setFontSize:ya=>({chain:ma})=>ma().setMark(this.name,{fontSize:ya}).run(),unsetFontSize:()=>({chain:ya})=>ya().setMark(this.name,{fontSize:null}).removeEmptyTextStyle().run()}}}),createExtensions=ya=>[index_default.configure({bulletList:!1,orderedList:!1,listItem:!1,link:!1,underline:!1}),Markdown,Color,Underline,FontSize,Highlight.configure({multicolor:!0}),Link.configure({openOnClick:!1,protocols:["http","https","mailto","tel"],HTMLAttributes:{class:"text-blue-500 underline cursor-pointer hover:text-blue-700"}}),Placeholder.configure({placeholder:ya||"Start writing...",emptyEditorClass:"is-editor-empty"}),BulletList.configure({HTMLAttributes:{class:"list-disc list-outside my-0 pl-6"},itemTypeName:"listItem"}),OrderedList.configure({HTMLAttributes:{class:"list-decimal list-outside my-0 pl-6"},itemTypeName:"listItem"}),ListItem.configure({HTMLAttributes:{class:"my-0"}}),Table.configure({resizable:!0,HTMLAttributes:{class:"border-collapse border border-gray-300 my-4"}}),TableRow.configure({HTMLAttributes:{class:"border border-gray-300"}}),TableHeader.configure({HTMLAttributes:{class:"border border-gray-300 bg-gray-50 font-semibold px-3 py-2 text-left"}}),TableCell.configure({HTMLAttributes:{class:"border border-gray-300 px-3 py-2"}}),TextAlign.configure({types:["heading","paragraph"]}),Image$1.configure({HTMLAttributes:{class:"max-w-full h-auto rounded-lg my-4"}}),FontFamily.configure({types:["textStyle"]}),Subscript,Superscript],MenuButton=({onClick:ya,isActive:ma=!1,disabled:ba=!1,icon:va,title:Ma})=>jsxRuntimeExports.jsx("button",{type:"button",onClick:ya,disabled:ba,className:`cursor-pointer p-2 rounded hover:bg-table-header transition-colors ${ma?"bg-[rgba(59,130,246,0.2)] text-blue":"text-[rgba(255,255,255,0.7)]"} ${ba?"disabled:opacity-50 disabled:cursor-not-allowed":""}`,title:Ma,children:jsxRuntimeExports.jsx(Icon,{icon:va,width:18,height:18})}),Separator=()=>jsxRuntimeExports.jsx("div",{className:"w-px h-6 bg-table-header mx-1"}),MenuBar=({editor:ya,showCodeOptions:ma=!0,showQuote:ba=!0,showLinkImage:va=!0})=>{const Ma=reactExports.useCallback(()=>{if(!ya)return;const Sl=ya.getAttributes("link").href,Cl=window.prompt("URL",Sl);if(Cl!==null){if(Cl===""){ya.chain().focus().extendMarkRange("link").unsetLink().run();return}ya.chain().focus().extendMarkRange("link").setLink({href:Cl}).run()}},[ya]),wl=reactExports.useCallback(()=>{if(!ya)return;const Sl=window.prompt("Image URL");Sl===null||Sl===""||ya.chain().focus().setImage({src:Sl}).run()},[ya]),El=useEditorState({editor:ya,selector:Sl=>Sl.editor?{isBold:Sl.editor.isActive("bold")??!1,isItalic:Sl.editor.isActive("italic")??!1,isUnderline:Sl.editor.isActive("underline")??!1,isStrike:Sl.editor.isActive("strike")??!1,isSubscript:Sl.editor.isActive("subscript")??!1,isSuperscript:Sl.editor.isActive("superscript")??!1,isCode:Sl.editor.isActive("code")??!1,isBulletList:Sl.editor.isActive("bulletList")??!1,isOrderedList:Sl.editor.isActive("orderedList")??!1,isHeading1:Sl.editor.isActive("heading",{level:1})??!1,isHeading2:Sl.editor.isActive("heading",{level:2})??!1,isHeading3:Sl.editor.isActive("heading",{level:3})??!1,isBlockquote:Sl.editor.isActive("blockquote")??!1,isCodeBlock:Sl.editor.isActive("codeBlock")??!1,isLink:Sl.editor.isActive("link")??!1,canUndo:Sl.editor.can().chain().undo().run()??!1,canRedo:Sl.editor.can().chain().redo().run()??!1}:{isBold:!1,isItalic:!1,isUnderline:!1,isStrike:!1,isSubscript:!1,isSuperscript:!1,isCode:!1,isBulletList:!1,isOrderedList:!1,isHeading1:!1,isHeading2:!1,isHeading3:!1,isBlockquote:!1,isCodeBlock:!1,isLink:!1,canUndo:!1,canRedo:!1}});return ya?jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-1 p-2 border-b border-table-header bg-[rgba(255,255,255,0.02)]",children:[jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBold().run(),disabled:!ya.can().chain().focus().toggleBold().run(),isActive:El.isBold,icon:"mdi:format-bold",title:"Bold"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleItalic().run(),disabled:!ya.can().chain().focus().toggleItalic().run(),isActive:El.isItalic,icon:"mdi:format-italic",title:"Italic"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleUnderline().run(),disabled:!ya.can().chain().focus().toggleUnderline().run(),isActive:El.isUnderline,icon:"mdi:format-underline",title:"Underline"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleStrike().run(),disabled:!ya.can().chain().focus().toggleStrike().run(),isActive:El.isStrike,icon:"mdi:format-strikethrough",title:"Strikethrough"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleSubscript().run(),disabled:!ya.can().chain().focus().toggleSubscript().run(),isActive:El.isSubscript,icon:"mdi:format-subscript",title:"Subscript"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleSuperscript().run(),disabled:!ya.can().chain().focus().toggleSuperscript().run(),isActive:El.isSuperscript,icon:"mdi:format-superscript",title:"Superscript"}),jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:1}).run(),isActive:El.isHeading1,icon:"mdi:format-header-1",title:"Heading 1"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:2}).run(),isActive:El.isHeading2,icon:"mdi:format-header-2",title:"Heading 2"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:3}).run(),isActive:El.isHeading3,icon:"mdi:format-header-3",title:"Heading 3"}),jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBulletList().run(),isActive:El.isBulletList,icon:"mdi:format-list-bulleted",title:"Bullet List"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleOrderedList().run(),isActive:El.isOrderedList,icon:"mdi:format-list-numbered",title:"Numbered List"}),ma&&jsxRuntimeExports.jsx(Separator,{}),ma&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleCode().run(),disabled:!ya.can().chain().focus().toggleCode().run(),isActive:El.isCode,icon:"mdi:code-tags",title:"Inline Code"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleCodeBlock().run(),isActive:El.isCodeBlock,icon:"mdi:code-braces",title:"Code Block"})]}),ma&&ba&&jsxRuntimeExports.jsx(Separator,{}),ba&&jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBlockquote().run(),isActive:El.isBlockquote,icon:"mdi:format-quote-close",title:"Quote"}),ba&&va&&jsxRuntimeExports.jsx(Separator,{}),va&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(MenuButton,{onClick:Ma,isActive:El.isLink,icon:"mdi:link",title:"Link"}),jsxRuntimeExports.jsx(MenuButton,{onClick:wl,icon:"mdi:image",title:"Image"})]}),va&&jsxRuntimeExports.jsx(Separator,{}),!ma&&!ba&&!va&&jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().undo().run(),disabled:!El.canUndo,icon:"mdi:undo",title:"Undo"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().redo().run(),disabled:!El.canRedo,icon:"mdi:redo",title:"Redo"})]}):null},TiptapEditor=({value:ya,onChange:ma,onBlur:ba,placeholder:va="",disabled:Ma=!1,minHeight:wl="80px",maxHeight:El="1000px",className:Sl="",showToolbar:Cl=!0,showCodeOptions:Mc=!0,showQuote:dp=!0,showLinkImage:pp=!0})=>{const hp=reactExports.useMemo(()=>createExtensions(va),[va]),Ef=reactExports.useRef(""),Zf=useEditor({extensions:hp,content:ya||"",editable:!Ma,contentType:"markdown",onUpdate:({editor:Jf})=>{const pg=Jf.getMarkdown();ma(pg)},editorProps:{attributes:{class:`prose prose-invert max-w-none focus:outline-none ${Sl}`}}});return reactExports.useEffect(()=>{if(!Zf)return;const Jf=ya||"";if(Ef.current===Jf)return;const pg=Zf.getMarkdown().trim(),hg=Jf.trim();pg!==hg?(Ef.current=Jf,Zf.commands.setContent(Jf,{contentType:"markdown",emitUpdate:!1})):Ef.current=Jf},[ya,Zf]),reactExports.useEffect(()=>{if(!Zf||!ba)return;const Jf=()=>{ba()};return Zf.on("blur",Jf),()=>{Zf.off("blur",Jf)}},[Zf,ba]),reactExports.useEffect(()=>{Zf&&Zf.setEditable(!Ma)},[Zf,Ma]),Zf?jsxRuntimeExports.jsxs("div",{className:`w-full bg-[rgba(255,255,255,0.02)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] placeholder-[rgba(255,255,255,0.4)] focus-within:outline-none focus-within:border-blue focus-within:ring-2 focus-within:ring-[rgba(2,92,212,0.2)] overflow-hidden flex flex-col ${Ma?"opacity-50 cursor-not-allowed":""} ${Sl}`,children:[!Ma&&Cl&&jsxRuntimeExports.jsx(MenuBar,{editor:Zf,showCodeOptions:Mc,showQuote:dp,showLinkImage:pp}),jsxRuntimeExports.jsx("div",{className:"flex-1 p-4 overflow-y-auto",style:{minHeight:wl,maxHeight:El,"--tiptap-min-height":wl,"--tiptap-max-height":El},children:jsxRuntimeExports.jsx(EditorContent,{editor:Zf,className:"tiptap-editor"})})]}):null},AgentForm=({agentId:ya})=>{const ma=useAppStore(Jf=>Jf.moduleDbChangeCount),ba=useAppStore(Jf=>Jf.setSelectedAgentId),{getAgent:va,setAgentInstruction:Ma,setAgentRole:wl}=useAgent(),{currentTeam:El}=useTeams(),Sl=ya?va(ya):null,[Cl,Mc]=reactExports.useState(Sl?.getInstruction()),[dp,pp]=reactExports.useState(Sl?.attributes.get("role")||""),hp=El?.isEditable||!1;reactExports.useEffect(()=>{if(Sl&&ya){const Jf=Sl.getInstruction()||"",pg=Sl.attributes.get("role")||"";Mc(Jf),pp(pg)}else Mc(""),pp("")},[Sl,ya,ma]);const Ef=()=>{ya&&hp&&Ma(ya,Cl||"")},Zf=()=>{ya&&hp&&wl(ya,dp||"")};return jsxRuntimeExports.jsxs("div",{className:"p-4 transition-all duration-300 w-full flex flex-col gap-4 h-full",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent,className:"text-white"})})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Agent Configuration",position:"right",children:jsxRuntimeExports.jsx("h4",{children:ya})})})]})}),jsxRuntimeExports.jsx("button",{onClick:()=>ba(null),className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"text-white"})})]})}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto scrollbar-none",children:[jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 ",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.agent,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Define the agent's primary role and purpose",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"text-sm! font-semibold text-[rgba(255,255,255,0.9)]",children:"Role"})})})]}),jsxRuntimeExports.jsx(TiptapEditor,{value:dp,onChange:Jf=>hp&&pp(Jf),onBlur:Zf,placeholder:"Enter the agent's role and primary responsibilities...",disabled:!hp,minHeight:"60px",maxHeight:"200px",showToolbar:!1})]}),jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 ",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.instruction,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Guide the agent's behavior and responses",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"text-sm! font-semibold text-[rgba(255,255,255,0.9)]",children:"Instructions"})})})]}),jsxRuntimeExports.jsx(TiptapEditor,{value:Cl||"",onChange:Jf=>hp&&Mc(Jf),onBlur:Ef,placeholder:"Enter detailed instructions for the agent...",disabled:!hp,minHeight:"128px",maxHeight:"1000px",showCodeOptions:!1,showQuote:!1,showLinkImage:!1})]}),Sl&&jsxRuntimeExports.jsx(AgentLLM,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentTools,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentDirectives,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentGlossary,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentResponseSchema,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentScenarios,{agent:Sl,isEditable:hp})]})]})},DecisionForm=({decisionId:ya})=>{const[ma,ba]=reactExports.useState([]),{getNodes:va,setNodes:Ma}=useReactFlow(),wl=useAppStore(dp=>dp.setSelectedDecisionId),{updateDecision:El,getDecision:Sl}=useFlow();reactExports.useEffect(()=>{(async()=>{const pp=Sl(ya);if(!pp)return;const Ef=(await Promise.all(pp.cases.map(async Zf=>await introspectCase(Zf)))).map(Zf=>{const Jf=isExpressionPattern(Zf.condition)||isGroupExpressionPattern(Zf.condition),pg=Zf.body;return{kind:Jf?"expression":"string",condition:Jf?Zf.condition.toString():Zf.condition.value,action:pg.value}});ba(Ef)})()},[ya]);const Cl={cases:[...ma,{kind:"string",condition:"",action:""}]},Mc=dp=>{const pp=dp.kind==="expression"?new ExpressionPattern$1(dp.condition):LiteralPattern$1.String(dp.condition),hp=LiteralPattern$1.Id(dp.action);return new CasePattern$1(pp,hp).toString()};return jsxRuntimeExports.jsxs("div",{className:"p-4 transition-all duration-300 w-full flex flex-col gap-4 h-full",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision,className:"text-white"})})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("h4",{children:ya})})]})}),jsxRuntimeExports.jsx("button",{onClick:()=>wl(null),className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"text-white"})})]})}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4 overflow-y-auto scrollbar-none",children:jsxRuntimeExports.jsx(Formik,{initialValues:Cl,enableReinitialize:!0,onSubmit:dp=>{const hp=va().find(Zf=>Zf.type==="decision"&&Zf.data?.name===ya);hp&&Ma(Zf=>{const Jf=Zf.map(pg=>{if(pg.id===hp.id&&pg.type==="decision"){const hg=dp.cases.filter(mg=>mg.condition.trim()&&mg.action.trim()).map((mg,gg)=>({id:(Array.isArray(pg.data.conditions)?pg.data.conditions:[])[gg]?.id||`cond-${hp.id}-${gg+1}`,label:mg.action}));return{...pg,data:{...pg.data,conditions:hg}}}return pg});return console.log(Jf),Jf});const Ef=dp.cases.filter(Zf=>Zf.condition.trim()&&Zf.action.trim()).map(Mc);El(ya,Ef)},children:({values:dp,setFieldValue:pp,isValid:hp,dirty:Ef})=>jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(FieldArray,{name:"cases",render:Zf=>jsxRuntimeExports.jsx(DecisionCasesList,{cases:dp.cases,onChangeKind:(Jf,pg)=>pp(`cases.${Jf}.kind`,pg),onChangeCondition:(Jf,pg)=>pp(`cases.${Jf}.condition`,pg),onChangeAction:(Jf,pg)=>pp(`cases.${Jf}.action`,pg),onRemove:Jf=>Zf.remove(Jf),onAdd:()=>Zf.push({kind:"string",condition:"",action:""}),onAddAt:Jf=>Zf.insert(Jf,{kind:"string",condition:"",action:""})})}),jsxRuntimeExports.jsx("div",{className:"flex",children:jsxRuntimeExports.jsxs("button",{type:"submit",disabled:!hp||!Ef,className:"w-full px-4 py-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-md text-[rgba(255,255,255,0.9)] hover:bg-table-header disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:content-save",width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:"Save"})]})})]})})})]})},DecisionCasesList=({cases:ya,onChangeKind:ma,onChangeCondition:ba,onChangeAction:va,onRemove:Ma,onAdd:wl,onAddAt:El})=>{const Sl=reactExports.useRef(null);reactExports.useEffect(()=>{const Mc=dp=>{if(dp.ctrlKey&&dp.key==="Enter"){dp.preventDefault();const pp=document.activeElement;if(!pp)return;const hp=pp.closest("[data-case-index]");if(!hp)return;const Ef=parseInt(hp.getAttribute("data-case-index")||"-1",10);if(Ef===-1)return;const Jf=Ef===ya.length-1?ya.length:Ef+1;El(Jf),requestAnimationFrame(()=>{setTimeout(()=>{const pg=document.querySelector(`[data-case-index="${Jf}"]`);if(pg){const hg=pg.querySelector('input[data-input-type="condition"]');if(hg){hg.focus();return}const mg=pg.querySelector("[data-expression-builder]");if(mg){const gg=mg.querySelector("input");if(gg){gg.focus();return}}}},50)})}};return document.addEventListener("keydown",Mc),()=>{document.removeEventListener("keydown",Mc)}},[ya.length,El]);const Cl=Mc=>{Sl.current=Mc};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-end",children:jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{const Mc=ya.length;wl(),requestAnimationFrame(()=>{const dp=document.getElementById(`decision-case-${Mc}`);dp&&dp.scrollIntoView({behavior:"smooth",block:"center"})})},className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header flex items-center gap-2 text-sm cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})}),ya.map((Mc,dp)=>jsxRuntimeExports.jsxs("div",{id:`decision-case-${dp}`,"data-case-index":dp,className:"flex flex-col gap-3 p-3 bg-secondary rounded-md",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntimeExports.jsx("label",{className:"text-sm text-[rgba(255,255,255,0.7)]",children:"Condition"}),jsxRuntimeExports.jsxs("div",{className:"relative flex items-center input-container p-0!",children:[jsxRuntimeExports.jsx(Selector,{value:Mc.kind,onChange:pp=>ma(dp,pp),allowed:["string","expression"]}),Mc.kind==="expression"?jsxRuntimeExports.jsx("div",{className:"grow","data-expression-builder":!0,onFocus:()=>Cl(dp),tabIndex:-1,children:jsxRuntimeExports.jsx(ExpressionBuilder,{expression:Mc.condition,onExpressionChange:pp=>ba(dp,pp)})}):jsxRuntimeExports.jsx("input",{"data-input-type":"condition",className:"flex-1 bg-transparent border-none outline-none",placeholder:"Match string, e.g. salary is greater than 1000",value:Mc.condition,onChange:pp=>ba(dp,pp.target.value),onFocus:()=>Cl(dp)})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[jsxRuntimeExports.jsx("label",{className:"text-sm text-[rgba(255,255,255,0.7)]",children:"Action"}),jsxRuntimeExports.jsx("input",{"data-input-type":"action",className:"bg-secondary text-white rounded px-2 py-1 text-sm",placeholder:"Action",value:Mc.action,onChange:pp=>va(dp,pp.target.value),onFocus:()=>Cl(dp)})]}),jsxRuntimeExports.jsx("div",{className:"flex items-end",children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",onClick:()=>Ma(dp),title:"Remove case",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"text-white"})})})]})]},dp))]})},getRecordNameFromPattern=(ya,ma)=>{let ba=null,va=null;if(ya&&!isLiteralPattern(ya)){let Ma=null;if(isCreatePattern(ya)||isQueryPattern$2(ya)||isQueryUpdatePattern(ya)?Ma=ya.getNormalizedRecordName():isDeletePattern(ya)&&(Ma=ya.pattern.getNormalizedRecordName()),Ma)if(isFqName$1(Ma)){const wl=nameToPath$1(Ma);ba=wl.getModuleName(),va=wl.getEntryName()}else ba=ma||null,va=Ma}return{entryModule:ba,entryName:va}},resolveEntryFromPatternOrName=(ya,ma,ba)=>{let{entryModule:va,entryName:Ma}=getRecordNameFromPattern(ya,ma);if(!Ma&&ba)if(isFqName$1(ba)){const wl=nameToPath$1(ba);va=wl.getModuleName(),Ma=wl.getEntryName()}else va=ma||null,Ma=ba;return{entryModule:va,entryName:Ma}},getStatementInfo=(ya,ma)=>{if(!ya||isLiteralPattern(ya))return null;if(isCreatePattern(ya)){const ba=ya,va=ba.getNormalizedRecordName();let Ma=ma||"",wl=va;if(isFqName$1(va)){const Sl=nameToPath$1(va);Ma=Sl.getModuleName(),wl=Sl.getEntryName()}let El=icons.create;return isAgent(Ma,wl)?El=icons.agent:isEvent(Ma,wl)&&(El=icons.action),{type:"create",icon:El,label:va,pattern:ba}}if(isQueryPattern$2(ya)){const ba=ya;return{type:"read",icon:icons.read,label:ba.getNormalizedRecordName(),pattern:ba}}if(isQueryUpdatePattern(ya)){const ba=ya;return{type:"update",icon:icons.update,label:ba.getNormalizedRecordName(),pattern:ba}}if(isDeletePattern(ya)){const va=ya.pattern;return{type:"delete",icon:icons.delete,label:va.getNormalizedRecordName(),pattern:va}}if(isForEachPattern(ya)){const ba=ya;return{type:"forEach",icon:icons.loop,label:ba.variable,pattern:ba}}if(isIfPattern(ya)){const ba=ya;return{type:"if",icon:icons.match,label:ba.condition.toString(),pattern:ba}}if(isFunctionCallPattern(ya)){const ba=ya;return{type:"functionCall",icon:icons.function,label:ba.toString().split("(")[0]||"function",pattern:ba}}return null},getIcon$1=(ya,ma,ba,va)=>{if(ya)return ya.icon;const{entryModule:Ma,entryName:wl}=resolveEntryFromPatternOrName(va,ma,ba);if(wl!==null){const El=Ma!==null?Ma:ma||"";if(isAgent(El,wl))return icons.agent;if(isEvent(El,wl))return icons.action}return icons.record},useActivityTaskLogic=ya=>{const{name:ma,nodeId:ba,isSelected:va,onNodeClick:Ma,getEdgesForNode:wl,onDeleteEdge:El,onNodeRightClick:Sl,isEditable:Cl,onUpdateNodeName:Mc}=ya,{moduleName:dp}=useParams(),pp=useStatementPattern(ma),hp=`swimlane:${ba}`,{isSelected:Ef,setSelectedStatement:Zf,targetContainer:Jf}=useStatementSelector(hp),{setSelectedAgentId:pg,setSelectedDecisionId:hg}=useAppStore(),mg=useOutsideClickHandler(()=>{document.querySelector(".modal-container")||Zf("")}),{entryModule:gg,entryName:yg}=resolveEntryFromPatternOrName(pp,dp,ma);let ay=!1;if(yg!==null){const M_=gg!==null?gg:dp||"";ay=isAgent(M_,yg)||isEvent(M_,yg)}const ly=ay&&(!pp||isLiteralPattern(pp)),cy=getStatementInfo(pp,dp),q1=Ef&&Cl,r0=Jf||document.getElementById("canvas-area")||document.body,uE=M_=>{if(M_.stopPropagation(),!Cl){Ma(ba,M_.ctrlKey||M_.metaKey);return}if(cy||ly){pg(null),hg(null),Zf(hp);return}Ma(ba,M_.ctrlKey||M_.metaKey)},V1=M_=>{Mc&&Mc(ba,M_),Zf("")},H1=()=>{Zf("")},O_=M_=>{if(!wl||!El)return;const AF=wl(ba).find($4=>M_==="source"?$4.source===ba:$4.target===ba);AF&&El(AF.id)},aE=!!wl?.(ba).some(M_=>M_.target===ba),P_=!!wl?.(ba).some(M_=>M_.source===ba);return{statementInfo:cy,isPlainAgentOrEvent:ly,shouldShowForm:q1,container:r0,handleClick:uE,handleUpdate:V1,handleClose:H1,deleteEdgeAtHandle:O_,getIcon:()=>getIcon$1(cy,dp,ma,pp),hasIncoming:aE,hasOutgoing:P_,isStatementSelected:Ef,ref:mg,name:ma,isSelected:va,isEditable:Cl,nodeId:ba,onNodeRightClick:Sl}},StatementForm=({statementInfo:ya,isPlainAgentOrEvent:ma,name:ba,shouldShowForm:va,handleUpdate:Ma,handleClose:wl})=>{if(!va)return null;if(ma)return jsxRuntimeExports.jsx(Form$6,{index:[],event:"",pattern:newCreatePattern(ba),closeHandler:wl,onUpdate:Ma});if(!ya)return null;switch(ya.type){case"create":return jsxRuntimeExports.jsx(Form$6,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"read":case"update":return jsxRuntimeExports.jsx(Form$5,{index:[],event:"",type:ya.type,pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"delete":return jsxRuntimeExports.jsx(Form$4,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"if":return jsxRuntimeExports.jsx(Form$3,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"forEach":return jsxRuntimeExports.jsx(Form$2,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"functionCall":return jsxRuntimeExports.jsx(FunctionCallForm,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});default:return null}},ActivityTaskNode=({data:ya})=>{const{statementInfo:ma,isPlainAgentOrEvent:ba,shouldShowForm:va,container:Ma,handleClick:wl,handleUpdate:El,handleClose:Sl,deleteEdgeAtHandle:Cl,getIcon:Mc,hasIncoming:dp,hasOutgoing:pp,isStatementSelected:hp,ref:Ef,name:Zf,isSelected:Jf,isEditable:pg,nodeId:hg,onNodeRightClick:mg}=useActivityTaskLogic(ya);return jsxRuntimeExports.jsxs("div",{className:`w-[300px]! workflow-badge px-3! py-0! ${Jf?" border-checkbox-selected":"border-transparent"} group`,"data-selected":hp,onClick:wl,onContextMenu:pg?gg=>{gg.preventDefault(),gg.stopPropagation(),mg(hg,gg.clientX,gg.clientY)}:gg=>gg.preventDefault(),children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:Position.Top,className:"border-2 border-solid border-primary-font"}),pg&&dp&&jsxRuntimeExports.jsx("button",{title:"Remove incoming connection",onClick:gg=>{gg.stopPropagation(),Cl("target")},className:"absolute -top-5 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-3 h-3"})})]}),Ma&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AnimatePresence,{children:va&&(ma||ba)&&jsxRuntimeExports.jsx(motion.div,{className:"statement-form",onContextMenu:gg=>gg.stopPropagation(),ref:Ef,initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.3,ease:"easeInOut"},children:jsxRuntimeExports.jsx(StatementForm,{statementInfo:ma,isPlainAgentOrEvent:ba,name:Zf,shouldShowForm:va,handleUpdate:El,handleClose:Sl})})}),Ma),ma?jsxRuntimeExports.jsx("div",{className:"header","data-selected":hp,children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:ma.icon})}),jsxRuntimeExports.jsx("span",{className:"entity-badge",children:jsxRuntimeExports.jsx("div",{children:ma.label})})]})}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:Mc()})}),jsxRuntimeExports.jsx("span",{className:"py-0.5 px-4 rounded-md bg-secondary border border-border-color w-fit break-all text-primary-font text-sm",children:Zf})]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"source",position:Position.Bottom,className:"border-2 border-solid border-primary-font"}),pg&&pp&&jsxRuntimeExports.jsx("button",{title:"Remove outgoing connection",onClick:gg=>{gg.stopPropagation(),Cl("source")},className:"absolute -bottom-5 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-3 h-3"})})]})]})},ConditionLabel=({nodeId:ya,condition:ma,onUpdate:ba,layout:va="horizontal",isEditable:Ma})=>{const[wl,El]=reactExports.useState(!1),[Sl,Cl]=reactExports.useState(ma.label),Mc=reactExports.useRef(null),dp=()=>{Sl.trim()!==""&&Sl.trim()!==ma.label?ba(ya,ma.id,Sl.trim()):Cl(ma.label),El(!1)},pp=hp=>{hp.key==="Enter"?dp():hp.key==="Escape"&&(Cl(ma.label),El(!1))};return reactExports.useEffect(()=>{wl&&Mc.current?.focus()},[wl]),wl?jsxRuntimeExports.jsx("input",{ref:Mc,type:"text",value:Sl,onChange:hp=>Cl(hp.target.value),onBlur:dp,onKeyDown:pp,className:"text-xs py-1! px-2! border border-blue-500 rounded shadow-lg focus:ring-2 focus:ring-blue-300 outline-none",style:{width:`${Math.max(80,Sl.length*8+10)}px`}}):va==="vertical"?jsxRuntimeExports.jsx("div",{className:"nodrag nopan group flex flex-col items-center gap-1",children:jsxRuntimeExports.jsx("div",{onClick:hp=>{hp.stopPropagation(),Ma&&El(!0)},title:"Click to edit",className:"relative group text-xs py-1 px-2 bg-primary text-primary-font rounded shadow-sm cursor-pointer hover:bg-muted transition-colors",children:ma.label})}):jsxRuntimeExports.jsx("div",{className:"nodrag nopan group relative",children:jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:jsxRuntimeExports.jsx("div",{onClick:hp=>{hp.stopPropagation(),Ma&&El(!0)},title:"Click to edit",className:"text-xs py-1 px-2 bg-primary text-primary-font rounded shadow-sm cursor-pointer hover:bg-muted transition-colors",children:ma.label})})})},DecisionGatewayNode=({data:ya})=>{const{name:ma,nodeId:ba,isSelected:va,onNodeClick:Ma,conditions:wl=[],onUpdateCondition:El,getEdgesForNode:Sl,onDeleteEdge:Cl,onNodeRightClick:Mc,isEditable:dp}=ya,Ef=Math.max(280,80*(wl.length+1)),Zf=!!Sl?.(ba).some(pg=>pg.target===ba),Jf=pg=>{if(pg.stopPropagation(),!Sl||!Cl)return;const hg=Sl(ba).find(mg=>mg.target===ba);hg&&Cl(hg.id)};return jsxRuntimeExports.jsxs("div",{className:"relative mx-auto group",style:{width:`${Ef}px`,height:"88px"},children:[jsxRuntimeExports.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 -top-2",children:jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"target",className:"border-2 border-solid border-primary-font",position:Position.Top}),Zf&&dp&&jsxRuntimeExports.jsx("button",{title:"Remove incoming connection",onClick:Jf,className:"absolute -top-4 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer z-[5]",children:"×"})]})}),jsxRuntimeExports.jsx("div",{className:`absolute inset-0 shadow-sm cursor-pointer ${va?"bg-checkbox-selected":"bg-secondary"}`,style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)",padding:"2px"},onClick:pg=>{pg.stopPropagation(),Ma(ba,pg.ctrlKey||pg.metaKey)},onContextMenu:dp?pg=>{pg.preventDefault(),pg.stopPropagation(),Mc(ba,pg.clientX,pg.clientY)}:pg=>pg.preventDefault(),children:jsxRuntimeExports.jsx("div",{className:"w-full h-full flex flex-col items-center justify-center bg-primary",style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"},children:jsxRuntimeExports.jsx("div",{className:"font-medium text-xs text-primary-font",children:ma})})}),wl.map((pg,hg)=>{const gg=`calc(${100/(wl.length+1)}% * ${hg+1})`;return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"absolute",style:{bottom:0,left:gg,transform:"translateX(-50%)"},children:jsxRuntimeExports.jsx(Handle,{type:"source",position:Position.Bottom,id:pg.id,className:"border-2 border-solid border-primary-font",style:{boxShadow:"0 2px 4px rgba(0,0,0,0.2)"}})}),jsxRuntimeExports.jsx("div",{className:"absolute group/cond",style:{bottom:"-40px",left:gg,transform:"translateX(-50%)"},children:jsxRuntimeExports.jsx(ConditionLabel,{nodeId:ba,condition:pg,onUpdate:El,layout:"vertical",isEditable:dp})})]},pg.id)})]})},DecisionNode=({id:ya,data:ma})=>jsxRuntimeExports.jsx("div",{className:"relative mx-auto group",style:{width:"280px",height:"88px"},children:jsxRuntimeExports.jsx("div",{className:`absolute inset-0 shadow-sm cursor-pointer ${ma.isSelected?"bg-checkbox-selected":"bg-secondary"}`,style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)",padding:"2px"},onClick:ba=>{ba.stopPropagation(),ma.onNodeClick?.(ya,ba.ctrlKey||ba.metaKey)},onContextMenu:ma.isEditable?ba=>{ba.preventDefault(),ba.stopPropagation(),ma.onNodeRightClick?.(ya,ba.clientX,ba.clientY)}:ba=>ba.preventDefault(),children:jsxRuntimeExports.jsx("div",{className:"w-full h-full flex flex-col items-center justify-center bg-primary",style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"},children:jsxRuntimeExports.jsx("div",{className:"font-medium text-xs text-primary-font",children:ma.name})})})}),AddSwimlaneNode=({index:ya,swimlaneId:ma,onAddNode:ba})=>{const{moduleName:va}=useParams(),[Ma,wl]=reactExports.useState(null),[El,Sl]=reactExports.useState(!1),Cl=useOutsideClickHandler(()=>{Sl(!1)});reactExports.useEffect(()=>{if(!El)return;const pp=hp=>{const Ef=hp.target,Zf=Ef.closest(".workflow-statement-menu"),Jf=Ef.closest(".add-workflow-button"),pg=Ef.closest(".modal-container"),hg=Cl.current?.contains(Ef);(Ef.closest(".react-flow")||Ef.closest(".react-flow__pane"))&&!Zf&&!Jf&&!pg&&!hg&&Sl(!1)};return document.addEventListener("mousedown",pp,!0),()=>{document.removeEventListener("mousedown",pp,!0)}},[El,Cl]);const Mc=pp=>{ba(ma,"activity",pp,ya),Sl(!1)},dp=()=>{wl(null),Sl(!1)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Ma==="decision"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Agents$1,{showDecisions:!0,closeHandler:dp,onCreatePattern:pp=>{ba(ma,"decision",pp,ya),dp()}}),document.body),Ma==="action"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Actions,{onCreateCrudStatement:(pp,hp)=>{if(!pp)return;let Ef=pp,Zf=va||"";if(isFqName$1(pp)){const pg=nameToPath$1(pp);Zf=pg.getModuleName(),Ef=pg.getEntryName()}if(isEvent(Zf,Ef)){ba(ma,"activity",pp,ya),dp();return}let Jf="";hp==="create"?Jf=newCreatePattern(pp).toString():hp==="read"?Jf=newQueryPattern(pp).toString():hp==="update"?Jf=newQueryUpdatePattern(pp).toString():hp==="delete"&&(Jf=newDeletePattern(pp).toString()),Jf&&Mc(Jf),dp()},closeHandler:dp}),document.body),Ma==="agent"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Agents$1,{showEvents:!1,closeHandler:dp,onCreatePattern:pp=>{ba(ma,"activity",pp,ya),dp()}}),document.body),Ma==="functionCall"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddFunctionCall,{closeHandler:dp,onSubmit:(pp,hp)=>{const Ef=hp.map(Jf=>new LiteralPattern$1(LiteralPatternType$1.STRING,Jf)),Zf=new FunctionCallPattern$1(pp,Ef).toString();Mc(Zf),dp()}}),document.body),jsxRuntimeExports.jsxs("div",{className:"relative",ref:Cl,onClick:pp=>pp.stopPropagation(),children:[jsxRuntimeExports.jsx("div",{className:"add-workflow-button w-6! h-6! text-[10px]!",title:"Add Statement in Flow",onClick:()=>Sl(!El),children:jsxRuntimeExports.jsx(Icon,{icon:"fa6-solid:plus"})}),El&&jsxRuntimeExports.jsxs("div",{className:"workflow-statement-menu",children:[jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("action"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.action})}),"Action"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("agent"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent})}),"Agent"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("functionCall"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.function})}),"Call"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{const pp=new ForEachPattern$1().toString();Mc(pp)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.loop})}),"Loop"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{const pp=new IfPattern$1().setElse().toString();Mc(pp)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.match})}),"Condition"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("decision"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision})}),"Decision"]})]})]})]})},SwimlaneNode=({data:ya})=>{const{onAddNode:ma,swimlaneId:ba,onSwimlaneRightClick:va,isSelected:Ma,onSwimlaneClick:wl,childCount:El=0,width:Sl,isEditable:Cl,name:Mc,hasUnconnectedChildren:dp}=ya,Ef=ya.height??60+El*160,Zf=El>0&&dp?.()===!0;return jsxRuntimeExports.jsxs("div",{className:`group relative rounded-md text-left border-2 ${Ma?"border-solid! border-checkbox-selected! shadow-selected-node":Zf?"border-dashed border-orange-500 animate-incomplete-border":"border-dashed border-[rgba(255,255,255,0.6)]"}`,style:{height:`${Ef}px`,width:`${ya?.width||Sl||750}px`},onClick:Cl?Jf=>{Jf.stopPropagation(),wl(ba,Jf.ctrlKey||Jf.metaKey)}:void 0,onContextMenu:Cl?Jf=>{Jf.preventDefault(),Jf.stopPropagation(),va(ba,Jf.clientX,Jf.clientY)}:Jf=>Jf.preventDefault(),children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:Position.Top,style:{visibility:"hidden"}}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between p-4 gap-2 bg-primary rounded-t-lg relative",onClick:Jf=>{Jf.stopPropagation()},children:[jsxRuntimeExports.jsx("div",{className:"font-semibold text-sm py-1",children:Mc||ba}),Zf&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-orange-500 animate-pulse",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:alert-circle",className:"w-4 h-4"}),jsxRuntimeExports.jsx("div",{className:"leading-none!",children:"Connect steps to save flow"})]}),Cl&&jsxRuntimeExports.jsx(AddSwimlaneNode,{index:0,swimlaneId:ba,onAddNode:ma})]})]})},SWIMLANE_WIDTH=450,CHILD_NODE_WIDTH=300,HORIZONTAL_PADDING=60,CHILD_LEFT_X=30,NODE_SPACING=160,NODE_START_Y=110,DECISION_BASE_WIDTH=280,DECISION_HANDLE_MIN_SPACING=80,SWIMLANE_EXTRA_MARGIN=20,NODE_HEIGHT=50,DECISION_NODE_HEIGHT=88,CONDITION_LABEL_HEIGHT=40;function getDecisionWidth(ya){const ma=Array.isArray(ya?.data?.conditions)?ya.data.conditions.length:0;return Math.max(DECISION_BASE_WIDTH,DECISION_HANDLE_MIN_SPACING*(ma+1))}function getNodeHeight(ya){if(ya.type==="decision"){const ma=Array.isArray(ya?.data?.conditions)&&ya.data.conditions.length>0;return DECISION_NODE_HEIGHT+(ma?CONDITION_LABEL_HEIGHT:0)}return NODE_HEIGHT}function layoutSwimlane(ya,ma,ba){return layoutSwimlaneWithDagre(ya,ma,ba)}function layoutSwimlaneWithDagre(ya,ma,ba){const va=ya.find(ly=>ly.id===ba);if(!va)return ya;const Ma=ya.filter(ly=>ly.parentId===ba);if(Ma.length===0)return ya.map(ly=>ly.id===ba?{...ly,data:{...ly.data,width:SWIMLANE_WIDTH,height:NODE_START_Y,childCount:0}}:ly);const wl=new Set(Ma.map(ly=>ly.id)),El=ma.filter(ly=>ly&&wl.has(ly.source)&&wl.has(ly.target)),Sl=ly=>ly.type==="decision"?getDecisionWidth(ly):CHILD_NODE_WIDTH,Cl=Ma.map(ly=>({id:ly.id,width:Sl(ly),height:getNodeHeight(ly),position:{x:0,y:0},data:{}})),{nodes:Mc}=dagreLayout(Cl,El,"TB",HORIZONTAL_PADDING,NODE_SPACING);let dp=1/0,pp=-1/0,hp=1/0,Ef=-1/0;for(const ly of Mc)dp=Math.min(dp,ly.position.x),pp=Math.max(pp,ly.position.x+ly.width),hp=Math.min(hp,ly.position.y),Ef=Math.max(Ef,ly.position.y+ly.height);const Zf=isFinite(dp)?pp-dp:0,Jf=isFinite(hp)?Ef-hp:0,pg=Math.max(SWIMLANE_WIDTH,Zf+2*CHILD_LEFT_X+SWIMLANE_EXTRA_MARGIN),hg=Math.max(CHILD_LEFT_X,(pg-Zf)/2),mg=Jf+2*NODE_START_Y,gg=va.data?.width||SWIMLANE_WIDTH,yg=pg-gg,ay=new Map;for(const ly of Mc){const cy=ly.position.x-(isFinite(dp)?dp:0)+hg,q1=ly.position.y-(isFinite(hp)?hp:0)+NODE_START_Y;ay.set(ly.id,{x:cy,y:q1})}return ya.map(ly=>{if(ly.id===ba)return{...ly,data:{...ly.data,width:pg,height:mg,childCount:Ma.length}};if(ly.parentId===ba){const cy=ay.get(ly.id);if(cy)return{...ly,position:{x:cy.x,y:cy.y}}}return ly.type==="swimlane"&&ly.position.x>va.position.x&&yg!==0?{...ly,position:{...ly.position,x:ly.position.x+yg}}:ly})}function layoutSwimlaneContainersWithDagre(ya,ma,ba){const va=ya.filter(Mc=>Mc.type==="swimlane");if(va.length===0)return ya;const Ma=new Map;ba.forEach((Mc,dp)=>{Mc.forEach(pp=>Ma.set(pp,dp))});const wl=new Map;va.forEach(Mc=>{const dp=Ma.get(Mc.data.name)||"__no_agent__";wl.has(dp)||wl.set(dp,[]),wl.get(dp)?.push(Mc.id)});const El=ma.map(Mc=>Mc.name).filter(Mc=>wl.has(Mc)).concat(wl.has("__no_agent__")?["__no_agent__"]:[]),Sl=new Map;let Cl=50;return El.forEach(Mc=>{const pp=(wl.get(Mc)||[]).map(hp=>va.find(Ef=>Ef.id===hp)).filter(hp=>!!hp);if(pp.length>0){const hp=pp.map(hg=>({id:hg.id,width:hg.data?.width||SWIMLANE_WIDTH,height:hg.data?.height||NODE_START_Y,position:{x:0,y:0},data:{}})),Ef=pp.slice(0,-1).map((hg,mg)=>({id:`l-${Mc}-${mg}`,source:hg.id,target:pp[mg+1].id})),{nodes:Zf}=dagreLayout(hp,Ef,"LR",HORIZONTAL_PADDING,NODE_SPACING);let Jf=1/0;Zf.forEach(hg=>Jf=Math.min(Jf,hg.position.x));let pg=0;Zf.forEach(hg=>{const mg=Cl+hg.position.x-Jf;Sl.set(hg.id,{x:mg,y:500}),pg=Math.max(pg,mg+hg.width-Cl)}),Cl+=pg+HORIZONTAL_PADDING*2}}),ya.map(Mc=>{if(Mc.type==="swimlane"){const dp=Sl.get(Mc.id);if(dp)return{...Mc,position:dp}}return Mc})}const useSwimlaneDataManager=(ya,ma,ba,va)=>{const{addFlow:Ma,removeFlow:wl,updateFlow:El,removeDecision:Sl,getDecision:Cl}=useFlow(),{removeAgent:Mc,getAgentFlows:dp}=useAgent(),pp=reactExports.useCallback(ay=>{const ly=ya.find(r0=>r0.id===ay.source),cy=ly?.type==="decision";let q1;if(cy&&ay.sourceHandle){const r0=ly?.data?.conditions?.find(uE=>uE.id===ay.sourceHandle);r0&&(q1=r0.label)}va(r0=>{const uE=addEdge({...ay,type:"default",animated:!1,style:{stroke:"#FFFFFF99"},data:{isCondition:cy,label:q1}},r0);if(ly?.parentId){const V1=ly.parentId,H1=ya.find(aE=>aE.id===V1),O_=uE.filter(aE=>ya.find(P_=>P_.id===aE.source)?.parentId===V1).map(aE=>{const P_=ya.find(sN=>sN.id===aE.source),M_=ya.find(sN=>sN.id===aE.target);return{source:P_?.data.label||P_?.data.name,target:M_?.data.name,label:aE.data?.label}});H1&&El(H1.data.name,O_)}return uE}),ma(r0=>{const uE=r0.find(aE=>aE.id===ay.source),V1=r0.find(aE=>aE.id===ay.target);if(!uE||!V1)return r0;const H1=uE?.parentId||uE?.data?.parentSwimlane;if(!H1)return r0;const O_=[...ba,{source:ay.source,target:ay.target}];return layoutSwimlane(r0,O_,H1)})},[ya,va,ma,ba,El]),hp=reactExports.useCallback(ay=>{const ly=ya.find(P_=>P_.id===ay);if(!ly)return;const cy=String(ly.data.parentSwimlane),q1=ya.find(P_=>P_.id===cy),r0=ya.filter(P_=>P_.id!==ay),uE=ba.filter(P_=>P_.source!==ay&&P_.target!==ay),V1=uE.filter(P_=>r0.find(M_=>M_.id===P_.source)?.parentId===cy).map(P_=>{const M_=r0.find(AF=>AF.id===P_.source),sN=r0.find(AF=>AF.id===P_.target);return{source:M_?.data.label||M_?.data.name,target:sN?.data.name,label:P_.data?.label}});q1&&El(q1.data.name,V1),va(uE);const H1=r0.filter(P_=>P_.data.parentSwimlane===cy).sort((P_,M_)=>{const sN=P_.data.childIndex,AF=M_.data.childIndex;return sN-AF}).map((P_,M_)=>({...P_,data:{...P_.data,childIndex:M_}})),O_=r0.map(P_=>P_.data?.parentSwimlane===cy&&H1.find(M_=>M_.id===P_.id)||P_),aE=layoutSwimlane(O_,uE,cy);ma(aE)},[ya,ba,ma,va,El]),Ef=reactExports.useCallback(ay=>{const ly=ya.find(cy=>cy.id===ay);if(ly)if(ly.type==="agent"){const cy=dp(ay);ya.filter(r0=>r0.type==="swimlane"&&cy.some(uE=>uE.name===r0.data.name)).forEach(r0=>Ef(r0.id)),Mc(ay)}else if(ly.type==="decisionNode"){const cy=ly.data?.name||ly.id;try{Sl(cy)}catch{}ya.filter(r0=>r0.type==="decision"&&r0.data?.name===cy).forEach(r0=>hp(r0.id)),ma(r0=>r0.filter(uE=>uE.id!==ay))}else if(ly.type==="swimlane"){const cy=ly.data.agentName;wl(ly.data.name,cy);const q1=new Set([ay]);ya.forEach(r0=>{r0.parentId===ay&&q1.add(r0.id)}),ma(r0=>{const uE=r0.filter(V1=>!q1.has(V1.id));return layoutSwimlane(uE,ba,"")}),va(r0=>r0.filter(uE=>!(q1.has(uE.source)||q1.has(uE.target))))}else ly.parentId&&hp(ay)},[ya,ma,va,hp,wl,ba,Mc,dp,Sl]),Zf=reactExports.useCallback(async(ay,ly="activity",cy,q1)=>{const r0=v4$2();let uE=[];if(ly==="decision")try{const V1=Cl(cy);V1&&V1.cases&&V1.cases.length>0&&(uE=(await Promise.all(V1.cases.map(async aE=>await introspectCase(aE)))).map(aE=>aE.body.value).map((aE,P_)=>({id:`cond-${r0}-${P_+1}`,label:aE})))}catch(V1){console.error("Error loading decision cases:",V1),uE=[{id:`cond-${r0}-1`,label:"Yes"},{id:`cond-${r0}-2`,label:"No"}]}ma(V1=>{const H1=V1.filter(AQ=>AQ.parentId===ay),O_=q1!==void 0&&q1>=0&&q1<=H1.length?q1:0,aE=H1.sort((AQ,uN)=>{const uee=AQ.data.childIndex,$pe=uN.data.childIndex;return uee-$pe}),P_={name:cy,label:cy,parentSwimlane:ay,childIndex:O_,isStart:ly==="start",...ly==="decision"&&{conditions:uE.length>0?uE:[{id:`cond-${r0}-1`,label:"Yes"},{id:`cond-${r0}-2`,label:"No"}]}},sN=V1.find(AQ=>AQ.id===ay)?.data?.width||280,AF={id:r0,type:ly==="start"?"startEvent":ly==="end"?"endEvent":ly,position:{x:ly==="decision"?(sN-220)/2:sN-220-30,y:70+O_*160},data:P_,draggable:!1,parentId:ay,extent:"parent"},$4=[...aE.slice(0,O_),AF,...aE.slice(O_)].map((AQ,uN)=>({...AQ,data:{...AQ.data,childIndex:uN}})),cN=V1.filter(AQ=>AQ.parentId!==ay||AQ.id===ay),R4=V1.find(AQ=>AQ.id===ay);if(!R4)return V1;const k4=[...cN.filter(AQ=>AQ.id!==ay),R4,...$4];return layoutSwimlane(k4,ba,ay)})},[ma,ba,Cl]),Jf=reactExports.useCallback((ay,ly)=>{ma(cy=>{if(cy.some(aE=>aE.data.name===ay))return cy;const q1=cy.filter(aE=>aE.type==="swimlane"),r0=q1.length>0?Math.max(...q1.map(aE=>aE.position.x+(aE.data?.width||280))):50,uE=(isFinite(r0)?r0:50)+60,H1={id:v4$2(),type:"swimlane",position:{x:uE,y:70},data:{name:ay,childCount:0,width:280,height:70,agentName:ly},draggable:!1},O_=[...cy,H1];return layoutSwimlane(O_,ba,"")}),Ma(ay)},[ma,Ma,ba]),pg=reactExports.useCallback(ay=>{const ly=ba.find(V1=>V1.id===ay),q1=ya.find(V1=>V1.id===ly?.source)?.parentId,r0=ya.find(V1=>V1.id===q1),uE=ba.filter(V1=>V1.id!==ay);if(va(uE),r0){const V1=uE.filter(H1=>ya.find(O_=>O_.id===H1.source)?.parentId===q1).map(H1=>{const O_=ya.find(P_=>P_.id===H1.source),aE=ya.find(P_=>P_.id===H1.target);return{source:O_?.data.label||O_?.data.name,target:aE?.data.name,label:H1.data?.label}});El(r0.data.name,V1),ma(H1=>layoutSwimlane(H1,uE,q1))}},[ba,va,ya,ma,El]),hg=reactExports.useCallback(ay=>{ma(ly=>ly.map(cy=>{if(cy.id===ay&&cy.type==="decision"){const q1=Array.isArray(cy.data.conditions)?cy.data.conditions:[],uE={id:`cond-${cy.id}-${q1.length+1}`,label:`Condition ${q1.length+1}`};return{...cy,data:{...cy.data,conditions:[...q1,uE]}}}return cy}))},[ma]),mg=reactExports.useCallback((ay,ly,cy)=>{ma(q1=>q1.map(r0=>{if(r0.id===ay&&r0.type==="decision"){const V1=(Array.isArray(r0.data.conditions)?r0.data.conditions:[]).map(H1=>H1.id===ly?{...H1,label:cy}:H1);return{...r0,data:{...r0.data,conditions:V1}}}return r0}))},[ma]),gg=reactExports.useCallback((ay,ly)=>{let cy;va(q1=>{if(cy=q1.find(r0=>r0.source===ay&&r0.sourceHandle===ly),cy){const r0=q1.filter(O_=>O_.id!==cy?.id),V1=ya.find(O_=>O_.id===cy?.source)?.parentId,H1=ya.find(O_=>O_.id===V1);if(H1){const O_=r0.filter(aE=>ya.find(P_=>P_.id===aE.source)?.parentId===V1).map(aE=>{const P_=ya.find(sN=>sN.id===aE.source),M_=ya.find(sN=>sN.id===aE.target);return{source:P_?.data.label||P_?.data.name,target:M_?.data.name,label:aE.data?.label}});El(H1.data.name,O_)}return r0}return q1}),ma(q1=>{let r0=q1.map(uE=>{if(uE.id===ay&&uE.type==="decision"){const H1=(Array.isArray(uE.data.conditions)?uE.data.conditions:[]).filter(O_=>O_.id!==ly);if(H1.length>0)return{...uE,data:{...uE.data,conditions:H1}}}return uE});if(cy){const uE=r0.find(O_=>O_.id===cy?.source),V1=uE?.parentId||uE.data?.parentSwimlane,H1=ya.find(O_=>O_.id===V1);uE&&H1&&(r0=layoutSwimlane(r0,ba,V1))}return r0})},[ba,va,ma,ya,El]),yg=reactExports.useCallback((ay,ly)=>{const cy=ya.find(r0=>r0.id===ay);if(!cy)return;const q1=cy.parentId||cy.data.parentSwimlane;ma(r0=>{const uE=r0.map(V1=>V1.id===ay?{...V1,data:{...V1.data,name:ly,label:ly}}:V1);if(q1){const V1=uE.find(H1=>H1.id===q1);if(V1){const H1=ba.filter(O_=>uE.find(P_=>P_.id===O_.source)?.parentId===q1).map(O_=>{const aE=uE.find(M_=>M_.id===O_.source),P_=uE.find(M_=>M_.id===O_.target);return{source:aE?.data.label||aE?.data.name||"",target:P_?.data.name||"",label:O_.data?.label}});El(V1.data.name,H1)}}return uE})},[ya,ma,ba,El]);return{onConnect:pp,addNodeToSwimlane:Zf,deleteNode:Ef,addNewSwimlane:Jf,addConditionToGateway:hg,updateConditionLabel:mg,deleteCondition:gg,deleteEdge:pg,updateNodeName:yg}},useSwimlaneInteraction=(ya,ma,ba,va,Ma,wl,El,Sl)=>{const{removeFlow:Cl,updateFlow:Mc}=useFlow(),dp=useAppStore(r0=>r0.setSelectedAgentId),pp=useAppStore(r0=>r0.setSelectedDecisionId),hp=useAppStore(r0=>r0.setSelectedStatement),{moduleName:Ef}=useParams(),{zoomHandler:Zf}=useZoomHandler(),[Jf,pg]=reactExports.useState(null),[hg,mg]=reactExports.useState(!1),gg=reactExports.useCallback(()=>{pg(null),mg(!0)},[]),yg=reactExports.useCallback(()=>{mg(!1)},[]),ay=reactExports.useCallback(()=>{const r0=new Set(Ma);El.forEach(P_=>{Cl(P_),r0.add(P_),ya.forEach(M_=>{M_.parentId===P_&&r0.add(M_.id)})});const uE=ya.filter(P_=>!r0.has(P_.id)),V1=ba.filter(P_=>!(r0.has(P_.source)||r0.has(P_.target)));va(V1);const H1=new Set;Ma.forEach(P_=>{const M_=ya.find(sN=>sN.id===P_);M_&&typeof M_.data.parentSwimlane=="string"&&H1.add(M_.data.parentSwimlane)}),H1.forEach(P_=>{const M_=V1.filter(sN=>ya.find(AF=>AF.id===sN.source)?.parentId===P_).map(sN=>{const AF=ya.find(cN=>cN.id===sN.source),$4=ya.find(cN=>cN.id===sN.target);return{source:AF?.data.label||AF?.data.name,target:$4?.data.name,label:sN.data?.label}});Mc(P_,M_)});const O_=uE.filter(P_=>P_.type==="swimlane").sort((P_,M_)=>P_.position.x-M_.position.x),aE=uE.map(P_=>{if(P_.type==="swimlane"){const sN=50+O_.findIndex(cN=>cN.id===P_.id)*330,AF=uE.filter(cN=>cN.parentId===P_.id),$4=70+AF.length*160+0;return{...P_,position:{...P_.position,x:sN},data:{...P_.data,childCount:AF.length,height:$4}}}if(typeof P_.data.parentSwimlane=="string"&&H1.has(P_.data.parentSwimlane)){const M_=P_.data.parentSwimlane,AF=uE.filter($4=>$4.data.parentSwimlane===M_).sort(($4,cN)=>{const R4=$4.data.childIndex,k4=cN.data.childIndex;return R4-k4}).findIndex($4=>$4.id===P_.id);return{...P_,data:{...P_.data,childIndex:AF},position:{x:(P_.type==="decision",30),y:70+AF*160}}}return P_});ma(aE),wl(new Set),Sl(new Set),pg(null)},[ya,ba,Ma,El,ma,va,Cl,Mc,wl,Sl]),ly=reactExports.useCallback((r0,uE)=>{const V1=ya.find(H1=>H1.id===r0);if(V1&&V1.type==="decision"){const H1=V1.data.name,O_=ya.find(aE=>aE.type==="decisionNode"&&aE.data?.name===H1);dp(null),pp(H1),hp("");return}if(V1&&V1.type==="decisionNode"){pp(V1.data.name),dp(null),hp("");return}if(V1&&V1.type==="activity"){const H1=V1.data.name;!isAgent(Ef||"",H1)&&!isEvent(Ef||"",H1)&&(Sl(new Set),wl(uE?new Set(Ma.has(r0)?[...Ma].filter(O_=>O_!==r0):[...Ma,r0]):new Set([r0])));return}if(V1&&V1.type==="agent"){dp(r0),pp(null),hp(""),setTimeout(()=>{Zf(r0)},300);return}Sl(new Set),wl(uE?new Set(Ma.has(r0)?[...Ma].filter(H1=>H1!==r0):[...Ma,r0]):new Set([r0]))},[Ma,wl,Sl,ya,Ef,isAgent,isEvent,Zf,dp,pp,hp]),cy=reactExports.useCallback((r0,uE)=>{wl(new Set),Sl(uE?new Set(El.has(r0)?[...El].filter(V1=>V1!==r0):[...El,r0]):new Set([r0]))},[El,Sl,wl]),q1=reactExports.useCallback(()=>{wl(new Set),Sl(new Set),pg(null),dp(null),pp(null),hp("")},[wl,Sl,dp,pp,hp]);return{contextMenu:Jf,setContextMenu:pg,isAddFlowModalOpen:hg,openAddFlowModal:gg,closeAddFlowModal:yg,deleteSelected:ay,handleNodeClick:ly,handleSwimlaneClick:cy,handleCanvasClick:q1}},LAYOUT_CONSTANTS={INITIAL_X:50,SWIMLANE_Y:500,SWIMLANE_BASE_HEIGHT:70,SWIMLANE_WIDTH:280,SWIMLANE_SPACING:350,NODE_HEIGHT:160,AGENT_NODE_WIDTH:300,AGENT_Y:300,AGENT_WITHOUT_FLOW_X:100,AGENT_WITHOUT_FLOW_Y:-400,AGENT_WITHOUT_FLOW_SPACING:350,DECISION_X:120,DECISION_Y:-50,DECISION_SPACING:350};function mergeGraphNodes(ya,ma){const ba=new Map;for(const va of ya){let Ma=ba.get(va.label);const wl=(va.next||[]).map(El=>typeof El=="string"?{rep:El,label:El}:El);va.label.startsWith("{")&&ma.set(va.label,va.label);for(const El of wl)(!ma.has(El.label)||El.rep!==El.label)&&ma.set(El.label,El.rep);if(!Ma)Ma={label:va.label,type:va.type,on:va.on?new Set(va.on):void 0,next:new Set(wl)},ba.set(va.label,Ma);else{if(wl.length>0)for(const El of wl)Ma.next.add(El);if((va.on||Ma.on)&&(Ma.on||(Ma.on=new Set),va.on))for(const El of va.on)Ma.on.add(El);va.type==="condition"&&(Ma.type="condition")}}return ba}function createNodesFromGraph(ya,ma,ba){const va=[],Ma=new Map;let wl=0;for(const El of ya.values()){const Sl=v4$2();Ma.set(El.label,Sl),wl++;const Cl=El.type==="condition",Mc=El.on?Array.from(El.on):[],pp={name:ma.get(El.label)||El.label,label:El.label,description:Cl?"Decision point":"Action",parentSwimlane:ba,...Cl?{conditions:Mc.map((hp,Ef)=>({id:`cond-${Sl}-${Ef+1}`,label:hp}))}:{}};va.push({id:Sl,type:Cl?"decision":"activity",position:{x:0,y:0},data:pp,draggable:!1,parentId:ba,extent:"parent"})}return{nodes:va,nameToId:Ma,nodeCount:wl}}function createEdgesAndImplicitNodes(ya,ma,ba,va){const Ma=[],wl=[];let El=0;for(const Sl of ya.values()){const Cl=ma.get(Sl.label);if(!Cl)continue;const Mc=Array.from(Sl.next);for(let dp=0;dp<Mc.length;dp++){const pp=Mc[dp],hp=pp.label;let Ef=ma.get(hp);if(!Ef){Ef=v4$2(),ma.set(hp,Ef),El++;const hg={name:pp.rep,label:hp,description:"Action",parentSwimlane:va};wl.push({id:Ef,type:"activity",position:{x:0,y:0},data:hg,draggable:!1,parentId:va,extent:"parent"})}const Zf=Sl.type==="condition",Jf={id:`${Cl}-${Ef}-${dp}`,source:Cl,target:Ef,type:"default",animated:!1,style:{stroke:"#FFFFFF99"}};Zf&&(Jf.sourceHandle=`cond-${Cl}-${dp+1}`,Jf.data={isCondition:!0}),Ma.push(Jf)}}return{edges:Ma,implicitNodes:wl,nodeCount:El}}function createSwimlaneNode(ya,ma,ba){const va={name:ya,childCount:0,width:LAYOUT_CONSTANTS.SWIMLANE_WIDTH,height:LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT,agentName:ma};return{id:v4$2(),type:"swimlane",position:{x:ba,y:LAYOUT_CONSTANTS.SWIMLANE_Y},data:va,draggable:!1}}function connectAgentsToSwimlanes(ya,ma,ba,va){const Ma=new Set;for(const[wl,El]of ya)if(El.length>0){const Sl=El.map(Cl=>{let Mc=ma.get(Cl);if(Mc||(Mc=ma.get(`${Cl}.flow`)),!Mc){const dp=Cl.replace(/\.flow$/,"");Mc=ma.get(dp)}return Mc}).filter(Cl=>!!Cl).sort((Cl,Mc)=>Cl.position.x-Mc.position.x);if(Sl.length>0){Ma.add(wl);const Cl=Sl[0],Mc=Sl[Sl.length-1],dp=Mc.data,pp=Mc.position.x+(dp?.width||LAYOUT_CONSTANTS.SWIMLANE_WIDTH)-Cl.position.x,hp=Cl.position.x+pp/2-LAYOUT_CONSTANTS.AGENT_NODE_WIDTH/2,Ef={label:wl};ba.push({id:wl,type:"agent",position:{x:hp,y:LAYOUT_CONSTANTS.AGENT_Y},data:Ef});for(const Zf of Sl)va.push({id:`${wl}-${Zf.id}`,source:wl,target:Zf.id,type:"default",style:{stroke:"#FFFFFF99"}})}}return Ma}function addHelperAgents(ya,ma,ba){let va=LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_X;for(const{name:Ma}of ya)if(!ma.has(Ma)){const wl={label:Ma};ba.push({id:Ma,type:"agent",position:{x:va,y:LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_Y},data:wl}),va+=LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_SPACING}}function addDecisionNodes(ya,ma){let ba=LAYOUT_CONSTANTS.DECISION_X;for(const va of ya)ma.push({id:`decision-node-${va}`,type:"decisionNode",position:{x:ba,y:LAYOUT_CONSTANTS.DECISION_Y},data:{name:va}}),ba+=LAYOUT_CONSTANTS.DECISION_SPACING}async function buildInitialStateFromFlows(ya,ma,ba,va){const Ma=[];let wl=0;const El=new Map;for(const[mg,gg]of ba)for(const yg of gg)El.set(yg,mg);const Sl=[],Cl=[];let Mc=LAYOUT_CONSTANTS.INITIAL_X;const dp=await Promise.all(ya.map(mg=>mg.toGraph().catch(gg=>[])));for(let mg=0;mg<ya.length;mg++){const gg=ya[mg],yg=dp[mg],ay=v4$2(),ly=gg.name.replace(/\.flow$/,""),cy=createSwimlaneNode(ly,El.get(ly),Mc);cy.id=ay,Sl.push(cy);const q1=new Map,r0=mergeGraphNodes(yg,q1),{nodes:uE,nameToId:V1,nodeCount:H1}=createNodesFromGraph(r0,q1,ay);wl+=H1;const{edges:O_,implicitNodes:aE,nodeCount:P_}=createEdgesAndImplicitNodes(r0,V1,q1,ay);wl+=P_;const M_=[...uE,...aE];Cl.push(...M_),Ma.push(...O_);const sN=Sl[Sl.length-1];if(sN&&M_.length>0){const AF=sN.data;AF.height=LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT+M_.length*LAYOUT_CONSTANTS.NODE_HEIGHT,AF.childCount=M_.length}Mc+=LAYOUT_CONSTANTS.SWIMLANE_SPACING}const pp=new Set(Sl.map(mg=>mg.data?.name).filter(Boolean));for(const[mg,gg]of ba)for(const yg of gg)if(!pp.has(yg)){const ay={name:yg,childCount:0,width:LAYOUT_CONSTANTS.SWIMLANE_WIDTH,height:LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT,agentName:mg};Sl.push({id:v4$2(),type:"swimlane",position:{x:Mc,y:LAYOUT_CONSTANTS.SWIMLANE_Y},data:ay,draggable:!1}),pp.add(yg),Mc+=LAYOUT_CONSTANTS.SWIMLANE_SPACING}let hp=[...Sl,...Cl];for(const mg of Sl)hp=layoutSwimlane(hp,Ma,mg.id);const Ef=layoutSwimlaneContainersWithDagre(hp,ma,ba),Zf=new Map(Ef.filter(mg=>mg.type==="swimlane").map(mg=>[mg.data.name,mg])),Jf=[...Ef],pg=[...Ma],hg=connectAgentsToSwimlanes(ba,Zf,Jf,pg);return addHelperAgents(ma,hg,Jf),addDecisionNodes(va,Jf),{nodes:Jf,edges:pg,nextNodeCounter:wl}}const useSwimlaneState=({flowId:ya})=>{const{moduleName:ma}=useParams(),{getAgentFlows:ba}=useAgent(),va=useAppStore(AF=>AF.moduleDbChangeCount),[Ma,wl,El]=useNodesState([]),[Sl,Cl,Mc]=useEdgesState([]),[dp,pp]=reactExports.useState(new Set),[hp,Ef]=reactExports.useState(new Set),[Zf,Jf]=reactExports.useState(!1),[pg,hg]=reactExports.useState(!1),[mg,gg]=reactExports.useState(!1),[yg,ay]=reactExports.useState(null),ly=reactExports.useMemo(()=>{if(!ma)return null;try{const AF=fetchModule$2(ma),$4=ya?.replace(/\.flow$/,""),cN=$4?[AF.getFlow($4)]:AF.getAllFlows(),R4=AF.getAgentNames(),AQ=R4.map($pe=>AF.getAgent($pe)).map(($pe,Ppe)=>({agent:$pe,name:R4[Ppe]})),uN=AF.getAllDecisions().map($pe=>$pe.name),uee=new Map;return AQ.forEach(({name:$pe})=>{const Ppe=ba($pe).map(e2e=>e2e.name.replace(/\.flow$/,""));uee.set($pe,Ppe)}),{flows:cN,agentsWithCleanNames:AQ,agentToFlowsMap:uee,decisions:uN}}catch(AF){return console.error("Failed to fetch module data:",AF),null}},[ma,ya,va]),[cy,q1]=reactExports.useState({nodes:[],edges:[],nextNodeCounter:0});reactExports.useEffect(()=>{if(!ly){q1({nodes:[],edges:[],nextNodeCounter:0});return}let AF=!1;return(async()=>{try{const cN=await buildInitialStateFromFlows(ly.flows,ly.agentsWithCleanNames,ly.agentToFlowsMap,ly.decisions);AF||q1(cN)}catch(cN){console.error("Failed to build graph layout:",cN),AF||q1({nodes:[],edges:[],nextNodeCounter:0})}})(),()=>{AF=!0}},[ly]),reactExports.useEffect(()=>{wl(cy.nodes),Cl(cy.edges)},[cy,wl,Cl]);const r0=useSwimlaneDataManager(Ma,wl,Sl,Cl),uE=useSwimlaneInteraction(Ma,wl,Sl,Cl,dp,pp,hp,Ef),V1=()=>Jf(!0),H1=()=>Jf(!1),O_=()=>hg(!0),aE=()=>hg(!1),P_=AF=>{if(!Ma.some(cN=>cN.type==="swimlane"&&cN.data?.agentName===AF)){r0.addNewSwimlane(AF,AF);return}ay(AF),gg(!0)},M_=()=>{gg(!1),ay(null)};return{nodes:Ma,edges:Sl,onNodesChange:El,onEdgesChange:Mc,...r0,addNewSwimlane:AF=>{yg&&r0.addNewSwimlane(AF,yg),M_()},...uE,selectedNodes:dp,selectedSwimlanes:hp,setSelectedNodes:pp,setSelectedSwimlanes:Ef,isAddAgentModalOpen:Zf,openAddAgentModal:V1,closeAddAgentModal:H1,isAddDecisionModalOpen:pg,openAddDecisionModal:O_,closeAddDecisionModal:aE,isAddFlowModalOpen:mg,openAddFlowModal:P_,closeAddFlowModal:M_}},useSwimlaneHandlers=({setContextMenu:ya,deleteNode:ma,nodes:ba,openAddFlowModal:va})=>{const{setAgentPublic:Ma,getAgentPublic:wl,getAgentFlows:El}=useAgent(),Sl=reactExports.useCallback(dp=>{dp.defaultPrevented||(dp.preventDefault(),ya({type:"canvas",x:dp.clientX,y:dp.clientY,onClose:()=>ya(null)}))},[ya]),Cl=reactExports.useCallback((dp,pp,hp)=>{ba.find(Zf=>Zf.id===dp)&&ya({type:"swimlane",x:pp,y:hp,onClose:()=>ya(null),onDelete:()=>ma(dp),deleteLabel:"Delete Flow"})},[ba,ma,ya]),Mc=reactExports.useCallback((dp,pp,hp)=>{const Ef=ba.find(pg=>pg.id===dp);if(!Ef)return;let Zf="Delete Node",Jf;switch(Ef.type){case"agent":{Zf="Delete Agent";const pg=Ef.data?.label||Ef.id;let hg=!1;try{hg=wl(pg)}catch{hg=!1}Jf=[...El(pg).length>0?[]:[{label:"Add Flow",action:()=>va(pg)}],{label:hg?"Make Private":"Make Public",action:async()=>{try{const yg=wl(pg);await Ma(pg,!yg)}catch(yg){console.error("Error toggling agent public status:",yg)}}}];break}case"decisionNode":Zf="Delete Decision";break;case"decision":Zf="Delete Decision";break;case"activity":Zf="Delete Activity";break;case"startEvent":Zf="Delete Start Event";break;case"endEvent":Zf="Delete End Event";break}ya({type:"node",x:pp,y:hp,onClose:()=>ya(null),onDelete:()=>ma(dp),deleteLabel:Zf,addOptions:Jf})},[ba,ma,ya,va,Ma,wl,El]);return{handleCanvasRightClick:Sl,handleSwimlaneRightClick:Cl,handleNodeRightClick:Mc}},validationSchema$1=create$3().shape({name:create$6().required("Flow's Name is required").max(50,"Flow's Name must be less than 50 characters").matches(/^[a-zA-Z0-9_-]+$/,"Flow's Name cannot contain special characters or spaces")}),AddFlowModal=({onClose:ya,onSubmit:ma})=>{const ba=useAutoFocus(),va=useOutsideClickHandler(ya);return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:""},onSubmit:Ma=>{ma(Ma.name),ya()},validationSchema:validationSchema$1,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:va,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Flow"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ya})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(Kht,{name:"name",placeholder:"Flow Name",ref:ba})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:ya})]})})})},AgentFlowMenu=({menu:ya})=>{const{x:ma,y:ba,onClose:va,onDelete:Ma,deleteLabel:wl,addOptions:El}=ya;return jsxRuntimeExports.jsxs("div",{className:"context-menu fixed bg-white p-1 rounded-lg shadow-lg z-[999]",style:{top:ba,left:ma},onMouseLeave:va,children:[El&&El.map((Sl,Cl)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-md transition-colors duration-100 hover:bg-gray-100 cursor-pointer",onClick:()=>{Sl.action(),va()},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-agent-bg text-agent-icon",children:jsxRuntimeExports.jsx(Icon,{icon:Sl.label==="Public"?"mdi:earth":icons.agentFlow})}),Sl.label]},Cl)),Ma&&jsxRuntimeExports.jsxs("div",{className:"context-menu-item",onClick:()=>{Ma(),console.log("onDelete",Ma),va()},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon text-del-icon bg-del-bg",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete})}),wl]})]})},nodeTypes={swimlane:SwimlaneNode,activity:ActivityTaskNode,startEvent:ActivityTaskNode,endEvent:ActivityTaskNode,decision:DecisionGatewayNode,decisionNode:DecisionNode,agent:Agent},SwimlaneDiagram=({flowId:ya,zoomOnScroll:ma=!0,isInteractive:ba=!0})=>{const{isEditable:va}=useTeams(),Ma=va&&ba,{fitView:wl}=useReactFlow(),{nodes:El,edges:Sl,contextMenu:Cl,selectedNodes:Mc,selectedSwimlanes:dp,setContextMenu:pp,onNodesChange:hp,onEdgesChange:Ef,onConnect:Zf,deleteNode:Jf,addNodeToSwimlane:pg,addNewSwimlane:hg,updateConditionLabel:mg,handleNodeClick:gg,handleSwimlaneClick:yg,handleCanvasClick:ay,deleteEdge:ly,deleteCondition:cy,updateNodeName:q1,isAddFlowModalOpen:r0,openAddFlowModal:uE,closeAddFlowModal:V1,isAddAgentModalOpen:H1,openAddAgentModal:O_,closeAddAgentModal:aE,isAddDecisionModalOpen:P_,openAddDecisionModal:M_,closeAddDecisionModal:sN}=useSwimlaneState({flowId:ya}),{handleCanvasRightClick:AF,handleSwimlaneRightClick:$4,handleNodeRightClick:cN}=useSwimlaneHandlers({setContextMenu:pp,deleteNode:Jf,nodes:El,openAddFlowModal:uE}),R4=El.map(uN=>{let uee;return uN.type==="swimlane"&&(uee=()=>{const $pe=El.filter(Ppe=>Ppe.parentId===uN.id);return $pe.length===0?!1:$pe.some(Ppe=>!Sl.some(Vpt=>Vpt.source===Ppe.id||Vpt.target===Ppe.id))}),{...uN,data:{...uN.data,isEditable:Ma,swimlaneId:uN.id,onAddNode:pg,onSwimlaneRightClick:$4,onNodeRightClick:cN,onUpdateCondition:mg,onDeleteCondition:cy,nodeId:uN.id,isSelected:uN.type==="swimlane"?dp.has(uN.id):Mc.has(uN.id),onNodeClick:gg,onSwimlaneClick:yg,getEdgesForNode:$pe=>Sl.filter(Ppe=>Ppe.source===$pe||Ppe.target===$pe),onDeleteEdge:ly,onUpdateNodeName:q1,hasUnconnectedChildren:uee}}}),k4=Sl.map(uN=>({...uN,data:{...uN.data,onDelete:ly,getConditionByHandle:(uee,$pe)=>{const Ppe=El.find(Gpt=>Gpt.id===uee);if(!Ppe||Ppe.type!=="decision")return null;const Vpt=(Ppe.data?.conditions||[]).find(Gpt=>Gpt.id===$pe);return Vpt?{nodeId:uee,condition:Vpt}:null},onUpdateCondition:mg,onDeleteCondition:cy}})),AQ=reactExports.useRef(!1);return reactExports.useEffect(()=>{AQ.current||setTimeout(()=>{wl(),AQ.current=!0},200)},[wl]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full agentic-flow",children:[jsxRuntimeExports.jsxs(index$4,{onPaneClick:Ma?ay:void 0,nodes:R4,edges:k4,onNodesChange:Ma?hp:void 0,onEdgesChange:Ma?Ef:void 0,onConnect:Ma?Zf:void 0,onContextMenu:Ma?AF:uN=>uN.preventDefault(),fitView:!0,nodeTypes,nodesDraggable:Ma,zoomOnScroll:ma,defaultEdgeOptions:{type:"default",style:{stroke:"#FFFFFF99"},markerEnd:{type:MarkerType.ArrowClosed,color:"#FFFFFF99"},animated:!1},children:[jsxRuntimeExports.jsx(Background,{}),Cl&&Cl.type==="canvas"&&jsxRuntimeExports.jsx(AgentMenu,{menu:{top:Cl.y,left:Cl.x},setModal:uN=>uN==="Decision"?M_():O_(),closeHandler:Cl.onClose}),Cl&&Cl.type!=="canvas"&&jsxRuntimeExports.jsx(AgentFlowMenu,{menu:Cl})]}),Ma&&H1&&jsxRuntimeExports.jsx(AddEntity,{closeHandler:aE,type:"Agent"}),Ma&&P_&&jsxRuntimeExports.jsx(AddDecision,{closeHandler:sN}),Ma&&r0&&jsxRuntimeExports.jsx(AddFlowModal,{onClose:V1,onSubmit:hg})]})},AgentFlow=()=>{const{moduleName:ya}=useParams(),ma=useAppStore(dp=>dp.selectedAgentId),ba=useAppStore(dp=>dp.selectedDecisionId),va=useAppStore(dp=>dp.selectedAttributeForm),{getAgents:Ma,getAgentFlows:wl}=useAgent(),El=useAppStore(dp=>dp.setSelectedAgentId),Cl=useLocation()?.state?.focusAgentId,{zoomHandler:Mc}=useZoomHandler();return reactExports.useEffect(()=>{const dp=Ma();if(Cl){dp.includes(Cl)?(El(Cl),setTimeout(()=>{Mc(Cl)},300)):El(null);return}if(dp.length>0){const pp=dp.filter(Zf=>wl(Zf).length>0),hp=dp.filter(Zf=>wl(Zf).length===0),Ef=pp.length>0?pp[0]:hp[0];Ef?(El(Ef),setTimeout(()=>{Mc(Ef)},300)):El(null)}else El(null)},[Cl,ya]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full flex overflow-hidden",children:[jsxRuntimeExports.jsx(motion.div,{className:"h-full",animate:{width:ma||ba||va?"60%":"100%"},transition:{duration:.3,ease:"easeInOut"},children:jsxRuntimeExports.jsx(SwimlaneDiagram,{})}),jsxRuntimeExports.jsx(AnimatePresence,{children:(ma||ba||va)&&jsxRuntimeExports.jsx(motion.div,{className:"w-2/5 shrink-0 h-full overflow-auto border-l border-table-header bg-primary",initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.3,ease:"easeInOut"},children:va?jsxRuntimeExports.jsx(AttributeFormSidebar,{}):ma?jsxRuntimeExports.jsx(AgentForm,{agentId:ma}):jsxRuntimeExports.jsx(DecisionForm,{decisionId:ba})})})]})};function NoModule(){const[ya,ma]=reactExports.useState(""),[ba,va]=reactExports.useState(!1),Ma=useNavigate(),{githubOrg:wl,teamName:El}=useParams(),Sl=useAppStore(hp=>hp.incrementModuleDbChangeCount),Cl=useAppStore(hp=>hp.user),Mc=isMarketplaceRepo(El||"",wl),dp=async()=>{if(!(!ya||!El)){va(!0);try{const hp=ya.includes(".")?ya:`${El}.${ya}`;try{addModule$1(hp)}catch(Ef){console.warn("Failed to load new module into runtime immediately:",Ef)}await saveModuleToGit(El,hp,fetchModule$2(hp).toString(),`Initial module creation: ${hp}`,Cl.GitHub.Username,Cl.GitHub.Token,Mc),Sl(),Ma(`/design/data-model/${wl}/${El}/${hp}`)}catch(hp){console.error("Failed to create module:",hp)}finally{va(!1)}}},pp=hp=>{hp.key==="Enter"&&dp()};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center justify-center w-full h-full text-white bg-primary",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-bold mb-4",children:"No Module Found"}),jsxRuntimeExports.jsx("p",{className:"mb-6 text-gray-400",children:"There are no modules in this repository. Would you like to create one?"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-3 w-full max-w-md",children:[jsxRuntimeExports.jsx("input",{type:"text",value:ya,onChange:hp=>ma(hp.target.value),onKeyDown:pp,placeholder:"Module Name (e.g. app.core)",className:"flex-1 px-4 py-2 rounded bg-secondary border border-border-color focus:outline-none focus:border-blue text-white placeholder-gray-500",autoFocus:!0,disabled:ba}),jsxRuntimeExports.jsx("button",{onClick:dp,disabled:!ya||ba,className:"px-6 py-2 bg-blue hover:bg-blue-600 rounded font-medium disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:ba?"Creating...":"Create"})]})]})}const GenerateAppModal=({closeHandler:ya,initialPrompt:ma})=>{const[ba,va]=reactExports.useState([]),[Ma,wl]=reactExports.useState(ma||""),[El,Sl]=reactExports.useState(!1),Cl=reactExports.useRef(null),Mc=useNavigate(),dp=useLocation(),{user:pp,addConversationMessage:hp,updateConversationStatus:Ef,addBackgroundGeneration:Zf,updateBackgroundGeneration:Jf,removeBackgroundGeneration:pg}=useAppStore(),hg=useOutsideClickHandler(ya),[mg,gg]=reactExports.useState(null);reactExports.useEffect(()=>{Cl.current?.scrollIntoView({behavior:"smooth"})},[ba]),reactExports.useEffect(()=>{loadAgentCraftModule()},[]),reactExports.useEffect(()=>{const V1=dp.state;if(V1?.restoreGeneration&&V1?.generationId){const H1=useAppStore.getState().backgroundGenerations[V1.generationId];if(H1){gg(H1.id),Sl(H1.status==="in-progress");const O_=[{id:`msg-user-${H1.id}`,type:"user",content:H1.userPrompt,timestamp:H1.startedAt},{id:`msg-assistant-${H1.id}`,type:"assistant",content:H1.moduleName?`Generated module: ${H1.moduleName}`:H1.currentStep,timestamp:H1.startedAt,metadata:{steps:H1.steps}}];va(O_)}}else if(V1?.resumeConversation&&V1?.appId){const H1=useAppStore.getState().getConversationHistory(V1.appId);if(H1){const O_=H1.map(aE=>({id:aE.id,type:aE.role,content:aE.content,timestamp:new Date(aE.timestamp)}));va(O_)}}},[dp]);const yg=V1=>{const H1={...V1,id:`msg-${Date.now()}`,timestamp:new Date};return va(O_=>[...O_,H1]),H1},ay=(V1,H1)=>{va(O_=>O_.map(aE=>aE.id===V1?{...aE,...H1}:aE))},ly=(V1,H1,O_)=>{va(aE=>aE.map(P_=>P_.id===V1?{...P_,metadata:{...P_.metadata,steps:P_.metadata?.steps?.map(M_=>M_.id===H1?{...M_,status:O_}:M_)}}:P_))},cy=V1=>{if(typeof V1=="string"){const H1=V1.match(/module\s+(\w+)/);return H1?H1[1]:"GeneratedApp"}return V1?.moduleName||"GeneratedApp"},q1=async()=>{if(!Ma.trim()||El)return;const V1=Ma.trim();wl(""),Sl(!0),yg({type:"user",content:V1});const H1=`gen-${Date.now()}`;gg(H1);const O_=[{id:"analyzing",label:"Analyzing requirements",status:"in-progress"},{id:"generating",label:"Generating code",status:"pending"},{id:"creating",label:"Creating workspace",status:"pending"},{id:"deploying",label:"Setting up environment",status:"pending"}],aE=yg({type:"assistant",content:"Starting app generation...",metadata:{steps:O_}}),P_=pp?.GitHub?.Org||"default-org";Zf({id:H1,appId:"",userPrompt:V1,status:"in-progress",currentStep:"Analyzing requirements",steps:O_,startedAt:new Date,githubOrg:P_});try{const M_=await executeStatement(`{AgentCraft/generateAgentlang {requirements "${V1.replace(/"/g,'\\"')}"}}`);ly(aE.id,"analyzing","completed"),ly(aE.id,"generating","in-progress"),Jf(H1,{currentStep:"Generating code",steps:O_.map($4=>$4.id==="analyzing"?{...$4,status:"completed"}:$4.id==="generating"?{...$4,status:"in-progress"}:$4)});const sN=cy(M_);ly(aE.id,"generating","completed"),ly(aE.id,"creating","in-progress"),ay(aE.id,{content:`Generated module: ${sN}`});const AF=`${P_}/${sN}`;Jf(H1,{appId:AF,moduleName:sN,currentStep:"Creating workspace",steps:O_.map($4=>$4.id==="generating"?{...$4,status:"completed"}:$4.id==="creating"?{...$4,status:"in-progress"}:$4)}),ba.forEach($4=>{hp(AF,{role:$4.type,content:$4.content})}),hp(AF,{role:"user",content:V1}),hp(AF,{role:"assistant",content:`Successfully generated ${sN}`}),Ef(AF,"completed");try{console.log("📝 Generating architecture metadata...");const $4=await executeStatement(`{AgentCraft/requirementDistiller {message "${V1.replace(/"/g,'\\"')}"}}`);let cN={};try{const $pe=$4.match(/\{[\s\S]*\}/);$pe&&(cN=JSON.parse($pe[0]))}catch{console.warn("Could not parse requirements, using fallback"),cN={moduleName:sN,dataModelRequest:V1,workflowRequest:V1,agentRequest:V1}}const R4={moduleName:sN,dataModelRequest:cN.dataModelRequest||V1,workflowRequest:cN.workflowRequest||V1,agentRequest:cN.agentRequest||V1,generatedCode:M_},AQ=`{AgentCraft/GenerateMetadata {message: "${JSON.stringify(R4).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"}}`,uN=await executeStatement(AQ);let uee=uN;try{const $pe=uN.match(/\{[\s\S]*\}/);$pe&&(uee=JSON.parse($pe[0]).content||uN)}catch{console.warn("Using raw metadata result")}if(pp?.GitHub?.Username&&pp?.GitHub?.Token)try{const $pe=typeof uee=="string"?uee:JSON.stringify(uee,null,2);await saveMetadataFileToGit(sN.toLowerCase(),$pe,"Create architecture metadata",pp.GitHub.Username,pp.GitHub.Token),console.log("✅ Architecture metadata saved to .agentlang.metadata.json")}catch($pe){console.error("Failed to save architecture metadata:",$pe)}else console.warn("GitHub credentials not available, skipping metadata save")}catch($4){console.error("Failed to generate architecture metadata:",$4)}ly(aE.id,"creating","completed"),ly(aE.id,"deploying","completed"),ay(aE.id,{content:`Successfully created ${sN}! Opening workspace...`,metadata:{steps:aE.metadata?.steps?.map($4=>({...$4,status:"completed"})),generatedApp:{name:sN,moduleName:sN,githubOrg:P_}}}),Jf(H1,{status:"completed",currentStep:"Completed",completedAt:new Date,steps:O_.map($4=>({...$4,status:"completed"}))}),Sl(!1),setTimeout(()=>{Mc(`/design/data-model/${P_}/${sN}/${sN}`,{state:{from:"/generate",generationContext:{appId:AF,hasHistory:!0}}}),pg(H1),ya()},1e3)}catch(M_){console.error("Generation error:",M_);const sN=aE.metadata?.steps?.find($4=>$4.status==="in-progress"),AF=M_.message||"Failed to generate app. Please try again or provide more details.";ay(aE.id,{content:AF,metadata:{...aE.metadata,steps:aE.metadata?.steps?.map($4=>$4.status==="in-progress"?{...$4,status:"error"}:$4),error:{message:AF,stepId:sN?.id||"generating",retryCount:0}}}),Jf(H1,{status:"error",error:AF,completedAt:new Date,steps:O_.map($4=>$4.status==="in-progress"?{...$4,status:"error"}:$4)}),Sl(!1)}},r0=V1=>{const H1=ba.findIndex(aE=>aE.id===V1),O_=ba.slice(0,H1).reverse().find(aE=>aE.type==="user");O_&&wl(O_.content)},uE=V1=>{V1.key==="Enter"&&!V1.shiftKey&&(V1.preventDefault(),q1())};return jsxRuntimeExports.jsx("div",{className:"modal-container",onClick:ya,children:jsxRuntimeExports.jsxs("div",{ref:hg,className:"modal-content max-w-4xl w-full h-[80vh] flex flex-col",onClick:V1=>V1.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-6 h-6"}),jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Generate Application"}),El&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-gray-400 flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full animate-pulse"}),"Generating in background..."]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[El&&jsxRuntimeExports.jsx("div",{title:"Minimize (generation continues in background)",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"cursor-pointer hover:opacity-70 rotate-180",onClick:ya})}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer hover:opacity-70",onClick:ya})]})]}),jsxRuntimeExports.jsxs("div",{className:"modal-body flex-1 overflow-y-auto space-y-4",children:[ba.length===0&&jsxRuntimeExports.jsxs("div",{className:"text-center text-gray-400 mt-8",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-16 h-16 mx-auto mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"text-lg mb-2",children:"What would you like to build?"}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:"Example: “Build a todo app with priority levels and due dates”"}),jsxRuntimeExports.jsx("p",{className:"text-sm mt-1",children:"or “Create a CRM system with contacts, deals, and tasks”"})]}),ba.map(V1=>jsxRuntimeExports.jsx("div",{className:`flex ${V1.type==="user"?"justify-end":"justify-start"}`,children:jsxRuntimeExports.jsxs("div",{className:`max-w-[80%] rounded-lg p-4 ${V1.type==="user"?"bg-blue-600 text-white":"bg-gray-700 text-gray-100"}`,children:[jsxRuntimeExports.jsx("div",{className:"whitespace-pre-wrap",children:V1.content}),V1.metadata?.steps&&jsxRuntimeExports.jsx("div",{className:"mt-4 space-y-2",children:V1.metadata.steps.map(H1=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[H1.status==="completed"&&jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4 text-green-400"}),H1.status==="in-progress"&&jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-blue-400 border-t-transparent rounded-full animate-spin"}),H1.status==="error"&&jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-4 h-4 text-red-400"}),H1.status==="pending"&&jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-gray-500 rounded-full"}),jsxRuntimeExports.jsx("span",{children:H1.label})]},H1.id))}),V1.metadata?.error&&jsxRuntimeExports.jsxs("div",{className:"mt-4 p-3 bg-red-900/30 border border-red-700 rounded",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-red-300",children:V1.metadata.error.message}),jsxRuntimeExports.jsx("button",{className:"mt-2 text-xs text-blue-300 hover:underline",onClick:()=>r0(V1.id),children:"Try again"})]})]})},V1.id)),jsxRuntimeExports.jsx("div",{ref:Cl})]}),jsxRuntimeExports.jsx("div",{className:"modal-footer border-t border-gray-700 pt-4",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 w-full",children:[jsxRuntimeExports.jsx("input",{type:"text",value:Ma,onChange:V1=>wl(V1.target.value),onKeyPress:uE,placeholder:"Describe your application or provide more details...",className:"flex-1 px-4 py-2 bg-gray-800 border border-gray-600 rounded-lg focus:outline-none focus:border-blue-500 text-white",disabled:El}),jsxRuntimeExports.jsx("button",{onClick:q1,disabled:!Ma.trim()||El,className:"px-6 py-2 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-600 disabled:cursor-not-allowed rounded-lg transition-colors flex items-center gap-2",children:El?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:icons.loading,className:"w-5 h-5"}),"Generating..."]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:icons.send,className:"w-5 h-5"}),"Send"]})})]})})]})})},Generate=()=>{const ya=useNavigate(),ba=useLocation().state?.prompt,va=()=>{ya("/design/dashboard")};return jsxRuntimeExports.jsx(GenerateAppModal,{closeHandler:va,initialPrompt:ba})},Chatbot=()=>{const[ya,ma]=reactExports.useState(""),[ba,va]=reactExports.useState(!1),[Ma,wl]=reactExports.useState(!1),El=reactExports.useRef(null),Sl=Mc=>{Mc.preventDefault(),ya.trim()&&(console.log("Submitted:",ya),va(!0),setTimeout(()=>{va(!1),ma("")},1e3))},Cl=()=>{wl(!0)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fixed bottom-8 left-0 right-0 flex justify-center",children:jsxRuntimeExports.jsx("div",{className:"w-full max-w-3xl mx-4",children:jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-2xl overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{ref:El,value:ya,onChange:Mc=>ma(Mc.target.value),disabled:ba,placeholder:"What would you like to automate today?",onKeyDown:Mc=>{Mc.key==="Enter"&&!Mc.shiftKey&&(Mc.preventDefault(),Sl(Mc))},rows:2,className:"w-full min-h-[72px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-3 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:Cl,className:"p-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors",title:"Upload file",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:Mc=>Sl(Mc),disabled:ba||!ya.trim(),className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Send",children:ba?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}):jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})})})}),Ma&&jsxRuntimeExports.jsx(DocumentUploader,{closeHandler:()=>wl(!1)})]})},Header$1=({search:ya,setSearch:ma,count:ba})=>jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-2 sm:gap-3 md:gap-4 lg:gap-6 items-center grid-cols-2 lg:grid-cols-12 px-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 col-span-1 lg:col-span-3 row-start-1 col-start-1 lg:row-start-1 lg:col-start-1",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.missionControl,className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-2",children:["Mission Control",jsxRuntimeExports.jsxs("span",{children:["(",ba,")"]})]})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left text-xs sm:text-sm line-clamp-1",children:"Search and manage your missions."})]}),jsxRuntimeExports.jsxs("div",{className:"col-span-2 lg:col-span-7 row-start-2 col-start-1 lg:row-start-1 lg:col-start-4 flex gap-2 items-center",children:[jsxRuntimeExports.jsx(DashboardHistoryNavigationButtons,{}),jsxRuntimeExports.jsx("input",{type:"text",placeholder:"Search",value:ya,onChange:va=>ma(va.target.value),className:"w-full text-sm sm:text-base"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),MissionCard=({Name:ya,Description:ma,Version:ba,Tags:va,GitHubOrg:Ma,GitHubRepo:wl,isPin:El,status:Sl,LastUpdatedAt:Cl,onClick:Mc})=>{const dp=pp=>{if(!pp)return"";if(pp.toLowerCase().includes("ago"))return`Updated ${pp}`;const hp=getDate(pp);return!hp||hp.startsWith("NaN")?pp:`Updated ${hp}`};return jsxRuntimeExports.jsxs("div",{className:"hf-style-card group cursor-pointer",onClick:Mc,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("h3",{className:"text-base font-semibold text-white mb-1 line-clamp-1 group-hover:text-blue-400 transition-colors",children:ya}),ma?jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 line-clamp-2 mb-2",children:ma}):jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 line-clamp-2 mb-2 opacity-0",children:"No description available"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 ml-2 shrink-0",children:[jsxRuntimeExports.jsx(TooltipComponent,{text:"Delete",children:jsxRuntimeExports.jsx("button",{onClick:pp=>pp.stopPropagation(),className:"p-1.5 rounded-md text-gray-500 hover:text-red-400 hover:bg-red-400/10 transition-all opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:trash-can-outline",className:"w-4 h-4"})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:El?"Remove from favorites":"Mark as favorite",children:jsxRuntimeExports.jsx("button",{onClick:pp=>pp.stopPropagation(),className:classNames("p-1.5 rounded-md transition-all cursor-pointer",El?"text-gray-400 hover:bg-white/5":"text-gray-500 hover:text-gray-400 hover:bg-white/5 opacity-0 group-hover:opacity-100"),children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:star",className:classNames("w-4 h-4",El&&"fill-current")})})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-3",children:[ba&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:["v",ba]}),va&&va.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[va.slice(0,2).map((pp,hp)=>jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:pp},hp)),va.length>2&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium text-gray-500",children:["+",va.length-2]})]}),!ba&&(!va||va.length===0)&&jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:Sl==="active"?"Active":"Inactive"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between text-xs text-gray-500 pt-3 border-t border-gray-700/50",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:github",className:"w-4 h-4"}),jsxRuntimeExports.jsxs("span",{className:"line-clamp-1 leading-none!",children:[Ma,"/",wl]})]}),jsxRuntimeExports.jsx("span",{children:dp(Cl)})]})})]})},MissionControl=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(""),[va]=reactExports.useState([{Name:"TicketManager",Description:"Manage and track customer support tickets with automated routing and escalation workflows.",Version:"0.0.1",Tags:["Active"],GitHubOrg:"agentlang-hub",GitHubRepo:"ticketmanager",isPin:!0,status:"active",LastUpdatedAt:"2 hours ago"},{Name:"EmailManager",Description:"Handle email campaigns, automated responses, and customer communication workflows.",Version:"0.0.1",Tags:["Active"],GitHubOrg:"agentlang-hub",GitHubRepo:"emailmanager",isPin:!1,status:"active",LastUpdatedAt:"1 day ago"}]),Ma=reactExports.useMemo(()=>{if(!ma.trim())return va;const wl=ma.toLowerCase();return va.filter(El=>El.Name.toLowerCase().includes(wl)||El.Description?.toLowerCase().includes(wl)||El.Tags?.some(Sl=>Sl.toLowerCase().includes(wl))||El.GitHubOrg.toLowerCase().includes(wl)||El.GitHubRepo.toLowerCase().includes(wl))},[va,ma]);return jsxRuntimeExports.jsxs("div",{className:"dashboard-content relative",children:[jsxRuntimeExports.jsxs("div",{className:"overflow-auto flex flex-col gap-4 scrollbar-none",children:[jsxRuntimeExports.jsx(Header$1,{search:ma,setSearch:ba,count:va.length}),jsxRuntimeExports.jsx("div",{className:"px-3",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsx("div",{className:"flex items-end gap-2 text-base sm:text-sm pl-2 font-semibold text-secondary-font",children:"Missions"}),jsxRuntimeExports.jsx("div",{className:"dashboard-grid",children:Ma.map((wl,El)=>jsxRuntimeExports.jsx(MissionCard,{...wl,onClick:()=>ya(`/mission-control/${wl.Name}`)},El))})]})})})]}),jsxRuntimeExports.jsx("div",{className:"fixed bottom-6 right-6 z-50",children:jsxRuntimeExports.jsx(Chatbot,{})})]})},SAMPLE_TICKETS=[{id:"DEV-2492",title:"This card does not scroll, but when you open the card editor, you can see there is a lot of content in...",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 12"},{id:"DEV-2493",title:"Old hub chat thread messages showed up in wrong order",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 13"},{id:"DEV-2295",title:"Crash after the two selected Hubs after a move issue",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Dec 14"},{id:"DEV-2582",title:"When cards are small the edit icon in the card header disappears",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 23"},{id:"DEV-2330",title:"Wrong google account session creates web link of google account - confusing for users because th...",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Dec 17"},{id:"DEV-2472",title:"Refreshing an RSS and query block resizes the card but it shouldn't",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 11"}],TicketList=({title:ya="Ticket Manager"})=>{const[ma,ba]=reactExports.useState(null),[va,Ma]=reactExports.useState({}),wl=Cl=>{ba(Cl)},El=()=>{ba(null)},Sl=(Cl,Mc,dp)=>{if(Cl==="Labels"){Ma(pp=>{const hp=pp[dp]??[],Zf=hp.includes(Mc)?hp.filter(Jf=>Jf!==Mc):[...hp,Mc];return{...pp,[dp]:Zf}});return}};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full w-full relative",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between gap-2 py-4 px-6 border-b border-border-color",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon !text-xl",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:view-list-outline"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h1",{className:"text-xl font-semibold text-white leading-tight",children:ya}),jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"Review and manage your tickets in a focused list view."})]})]})}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto px-6 py-4",children:jsxRuntimeExports.jsxs("div",{className:"w-full rounded-lg border border-border-color bg-primary/40",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center px-4 py-3 text-sm text-secondary-font border-b border-border-color bg-primary/60",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 w-40 shrink-0",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:chart-line",className:"w-3.5 h-3.5"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"ID"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-w-0",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Title"})}),jsxRuntimeExports.jsx("div",{className:"w-20 shrink-0 text-center",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Type"})}),jsxRuntimeExports.jsx("div",{className:"w-64 shrink-0",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Project"})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-center",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Owner"})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Date"})})]}),SAMPLE_TICKETS.map(Cl=>jsxRuntimeExports.jsxs(Root2$1,{children:[jsxRuntimeExports.jsx(Trigger$1,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{className:"flex items-center px-4 py-3 text-sm text-secondary-font hover:bg-white/5 cursor-pointer border-b border-border-color/60 last:border-b-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 w-40 shrink-0",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:signal-cellular-outline",className:"w-3.5 h-3.5 text-gray-400"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-gray-200 text-sm",children:Cl.id})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-w-0 pr-4",children:jsxRuntimeExports.jsx("p",{className:"text-gray-200 truncate text-sm",children:Cl.title})}),jsxRuntimeExports.jsx("div",{className:"w-20 shrink-0 flex justify-center",children:jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 text-red-400 border border-red-500/30",children:[jsxRuntimeExports.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),jsxRuntimeExports.jsx("span",{className:"text-[11px] font-medium",children:Cl.type})]})}),jsxRuntimeExports.jsx("div",{className:"w-64 shrink-0 pr-4",children:jsxRuntimeExports.jsx("span",{className:"inline-flex items-center gap-2 px-2 py-1 rounded-full bg-gray-800/60 text-gray-200 border border-gray-700",children:jsxRuntimeExports.jsx("span",{className:"text-[11px] truncate max-w-[180px]",children:Cl.project})})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 flex justify-center",children:jsxRuntimeExports.jsx("div",{className:"w-7 h-7 rounded-full bg-pink-500/10 border border-pink-500/40 flex items-center justify-center text-[10px] font-semibold text-pink-300",children:Cl.ownerInitials})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-right text-gray-400",children:Cl.date})]})}),jsxRuntimeExports.jsx(Portal2$1,{children:jsxRuntimeExports.jsx(Content2$1,{className:"z-50 min-w-[220px] rounded-md border border-border-color bg-primary shadow-lg py-1 text-xs text-secondary-font",children:[{label:"Status",icon:"mdi:circle-outline",submenu:["To Do","In Progress","Done","Blocked"]},{label:"Assignee",icon:"mdi:account-outline",submenu:["Unassigned","Danial I.","John D.","Sarah M.","Mike R."]},{label:"Priority",icon:"mdi:signal-cellular-3",submenu:["Highest","High","Medium","Low","Lowest"]},{label:"Labels",icon:"mdi:label-outline",submenu:["Bug","Feature","Enhancement","Documentation","Testing"]}].map(Mc=>jsxRuntimeExports.jsxs("div",{className:"relative",onMouseEnter:()=>wl(Mc.label),onMouseLeave:El,children:[jsxRuntimeExports.jsxs(Item2$1,{className:"flex w-full items-center justify-between gap-3 px-3 py-1.5 hover:bg-white/5 outline-none cursor-pointer",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:Mc.icon,className:"w-3.5 h-3.5"}),jsxRuntimeExports.jsx("span",{className:"text-[11px] text-gray-200",children:Mc.label})]}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:chevron-right",className:"w-3 h-3 text-gray-400"})]}),ma===Mc.label&&jsxRuntimeExports.jsx("div",{className:"absolute left-full top-0 ml-1 min-w-[160px] rounded-md border border-border-color bg-primary shadow-lg py-1 text-xs text-secondary-font z-50",children:Mc.submenu.map(dp=>{const pp=Mc.label==="Labels",hp=pp&&(va[Cl.id]??[]).includes(dp);return jsxRuntimeExports.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 hover:bg-white/5 text-left",onClick:()=>Sl(Mc.label,dp,Cl.id),children:[pp&&jsxRuntimeExports.jsx("span",{className:"flex items-center justify-center w-3.5 h-3.5 rounded-[3px] border border-border-color bg-primary/60",children:hp&&jsxRuntimeExports.jsx(Icon,{icon:"mdi:check",className:"w-2.5 h-2.5 text-gray-200"})}),jsxRuntimeExports.jsx("span",{className:"text-[11px] text-gray-200",children:dp})]},dp)})})]},Mc.label))})})]},Cl.id))]})})]})},WIZARD_STEPS=[{id:1,label:"Input",description:"Provide instructions and upload files"},{id:2,label:"Requirements",description:"Review and refine the requirements"},{id:3,label:"Plan",description:"Review and refine the implementation plan"},{id:4,label:"Generate Team",description:"Preview the generated data model and workflow"}],WizardStepper=({currentStep:ya,onStepClick:ma})=>{const ba=va=>va<ya?"completed":va===ya?"active":"pending";return jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center w-full py-6",children:WIZARD_STEPS.map((va,Ma)=>{const wl=ba(va.id),El=Ma===WIZARD_STEPS.length-1;return jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsxs("div",{className:`flex items-center gap-3 cursor-pointer group ${ma?"hover:opacity-80":""}`,onClick:()=>ma?.(va.id),children:[jsxRuntimeExports.jsx("div",{className:`
21654
+ `}),pp}var markdown_default=renderTableToMarkdown,Table=Node3.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:TableView,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({node:ya,HTMLAttributes:ma}){const{colgroup:ba,tableWidth:va,tableMinWidth:Ma}=createColGroup(ya,this.options.cellMinWidth),wl=ma.style;function El(){return wl||(va?`width: ${va}`:`min-width: ${Ma}`)}const Sl=["table",mergeAttributes(this.options.HTMLAttributes,ma,{style:El()}),ba,["tbody",0]];return this.options.renderWrapper?["div",{class:"tableWrapper"},Sl]:Sl},parseMarkdown:(ya,ma)=>{const ba=[];if(ya.header){const va=[];ya.header.forEach(Ma=>{va.push(ma.createNode("tableHeader",{},[{type:"paragraph",content:ma.parseInline(Ma.tokens)}]))}),ba.push(ma.createNode("tableRow",{},va))}return ya.rows&&ya.rows.forEach(va=>{const Ma=[];va.forEach(wl=>{Ma.push(ma.createNode("tableCell",{},[{type:"paragraph",content:ma.parseInline(wl.tokens)}]))}),ba.push(ma.createNode("tableRow",{},Ma))}),ma.createNode("table",void 0,ba)},renderMarkdown:(ya,ma)=>markdown_default(ya,ma),addCommands(){return{insertTable:({rows:ya=3,cols:ma=3,withHeaderRow:ba=!0}={})=>({tr:va,dispatch:Ma,editor:wl})=>{const El=createTable(wl.schema,ya,ma,ba);if(Ma){const Sl=va.selection.from+1;va.replaceSelectionWith(El).scrollIntoView().setSelection(TextSelection.near(va.doc.resolve(Sl)))}return!0},addColumnBefore:()=>({state:ya,dispatch:ma})=>addColumnBefore(ya,ma),addColumnAfter:()=>({state:ya,dispatch:ma})=>addColumnAfter(ya,ma),deleteColumn:()=>({state:ya,dispatch:ma})=>deleteColumn(ya,ma),addRowBefore:()=>({state:ya,dispatch:ma})=>addRowBefore(ya,ma),addRowAfter:()=>({state:ya,dispatch:ma})=>addRowAfter(ya,ma),deleteRow:()=>({state:ya,dispatch:ma})=>deleteRow(ya,ma),deleteTable:()=>({state:ya,dispatch:ma})=>deleteTable(ya,ma),mergeCells:()=>({state:ya,dispatch:ma})=>mergeCells(ya,ma),splitCell:()=>({state:ya,dispatch:ma})=>splitCell(ya,ma),toggleHeaderColumn:()=>({state:ya,dispatch:ma})=>toggleHeader("column")(ya,ma),toggleHeaderRow:()=>({state:ya,dispatch:ma})=>toggleHeader("row")(ya,ma),toggleHeaderCell:()=>({state:ya,dispatch:ma})=>toggleHeaderCell(ya,ma),mergeOrSplit:()=>({state:ya,dispatch:ma})=>mergeCells(ya,ma)?!0:splitCell(ya,ma),setCellAttribute:(ya,ma)=>({state:ba,dispatch:va})=>setCellAttr(ya,ma)(ba,va),goToNextCell:()=>({state:ya,dispatch:ma})=>goToNextCell(1)(ya,ma),goToPreviousCell:()=>({state:ya,dispatch:ma})=>goToNextCell(-1)(ya,ma),fixTables:()=>({state:ya,dispatch:ma})=>(ma&&fixTables(ya),!0),setCellSelection:ya=>({tr:ma,dispatch:ba})=>{if(ba){const va=CellSelection.create(ma.doc,ya.anchorCell,ya.headCell);ma.setSelection(va)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:deleteTableWhenAllCellsSelected,"Mod-Backspace":deleteTableWhenAllCellsSelected,Delete:deleteTableWhenAllCellsSelected,"Mod-Delete":deleteTableWhenAllCellsSelected}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[columnResizing({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],tableEditing({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(ya){const ma={name:ya.name,options:ya.options,storage:ya.storage};return{tableRole:callOrReturn(getExtensionField(ya,"tableRole",ma))}}});Extension.create({name:"tableKit",addExtensions(){const ya=[];return this.options.table!==!1&&ya.push(Table.configure(this.options.table)),this.options.tableCell!==!1&&ya.push(TableCell.configure(this.options.tableCell)),this.options.tableHeader!==!1&&ya.push(TableHeader.configure(this.options.tableHeader)),this.options.tableRow!==!1&&ya.push(TableRow.configure(this.options.tableRow)),ya}});var TextAlign=Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:ya=>{const ma=ya.style.textAlign;return this.options.alignments.includes(ma)?ma:this.options.defaultAlignment},renderHTML:ya=>ya.textAlign?{style:`text-align: ${ya.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:ya=>({commands:ma})=>this.options.alignments.includes(ya)?this.options.types.map(ba=>ma.updateAttributes(ba,{textAlign:ya})).some(ba=>ba):!1,unsetTextAlign:()=>({commands:ya})=>this.options.types.map(ma=>ya.resetAttributes(ma,"textAlign")).some(ma=>ma),toggleTextAlign:ya=>({editor:ma,commands:ba})=>this.options.alignments.includes(ya)?ma.isActive({textAlign:ya})?ba.unsetTextAlign():ba.setTextAlign(ya):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),inputRegex$1=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,Image$1=Node3.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:ya}){return["img",mergeAttributes(this.options.HTMLAttributes,ya)]},parseMarkdown:(ya,ma)=>ma.createNode("image",{src:ya.href,title:ya.title,alt:ya.text}),renderMarkdown:ya=>{var ma,ba,va,Ma,wl,El;const Sl=(ba=(ma=ya.attrs)==null?void 0:ma.src)!=null?ba:"",Cl=(Ma=(va=ya.attrs)==null?void 0:va.alt)!=null?Ma:"",Mc=(El=(wl=ya.attrs)==null?void 0:wl.title)!=null?El:"";return Mc?`![${Cl}](${Sl} "${Mc}")`:`![${Cl}](${Sl})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u")return null;const{directions:ya,minWidth:ma,minHeight:ba,alwaysPreserveAspectRatio:va}=this.options.resize;return({node:Ma,getPos:wl,HTMLAttributes:El,editor:Sl})=>{const Cl=document.createElement("img");Object.entries(El).forEach(([pp,hp])=>{if(hp!=null)switch(pp){case"width":case"height":break;default:Cl.setAttribute(pp,hp);break}}),Cl.src=El.src;const Mc=new ResizableNodeView({element:Cl,editor:Sl,node:Ma,getPos:wl,onResize:(pp,hp)=>{Cl.style.width=`${pp}px`,Cl.style.height=`${hp}px`},onCommit:(pp,hp)=>{const Ef=wl();Ef!==void 0&&this.editor.chain().setNodeSelection(Ef).updateAttributes(this.name,{width:pp,height:hp}).run()},onUpdate:(pp,hp,Ef)=>pp.type===Ma.type,options:{directions:ya,min:{width:ma,height:ba},preserveAspectRatio:va===!0}}),dp=Mc.dom;return dp.style.visibility="hidden",dp.style.pointerEvents="none",Cl.onload=()=>{dp.style.visibility="",dp.style.pointerEvents=""},Mc}},addCommands(){return{setImage:ya=>({commands:ma})=>ma.insertContent({type:this.name,attrs:ya})}},addInputRules(){return[nodeInputRule({find:inputRegex$1,type:this.type,getAttributes:ya=>{const[,,ma,ba,va]=ya;return{src:ba,alt:ma,title:va}}})]}}),inputRegex=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,pasteRegex=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,Highlight=Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:ya=>ya.getAttribute("data-color")||ya.style.backgroundColor,renderHTML:ya=>ya.color?{"data-color":ya.color,style:`background-color: ${ya.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:ya}){return["mark",mergeAttributes(this.options.HTMLAttributes,ya),0]},renderMarkdown:(ya,ma)=>`==${ma.renderChildren(ya)}==`,parseMarkdown:(ya,ma)=>ma.applyMark("highlight",ma.parseInline(ya.tokens||[])),markdownTokenizer:{name:"highlight",level:"inline",start:ya=>ya.indexOf("=="),tokenize(ya,ma,ba){const Ma=/^(==)([^=]+)(==)/.exec(ya);if(Ma){const wl=Ma[2].trim(),El=ba.inlineTokens(wl);return{type:"highlight",raw:Ma[0],text:wl,tokens:El}}}},addCommands(){return{setHighlight:ya=>({commands:ma})=>ma.setMark(this.name,ya),toggleHighlight:ya=>({commands:ma})=>ma.toggleMark(this.name,ya),unsetHighlight:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[markInputRule({find:inputRegex,type:this.type})]},addPasteRules(){return[markPasteRule({find:pasteRegex,type:this.type})]}}),Subscript=Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(ya){return ya!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:ya}){return["sub",mergeAttributes(this.options.HTMLAttributes,ya),0]},addCommands(){return{setSubscript:()=>({commands:ya})=>ya.setMark(this.name),toggleSubscript:()=>({commands:ya})=>ya.toggleMark(this.name),unsetSubscript:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Superscript=Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(ya){return ya!=="super"?!1:null}}]},renderHTML({HTMLAttributes:ya}){return["sup",mergeAttributes(this.options.HTMLAttributes,ya),0]},addCommands(){return{setSuperscript:()=>({commands:ya})=>ya.setMark(this.name),toggleSuperscript:()=>({commands:ya})=>ya.toggleMark(this.name),unsetSuperscript:()=>({commands:ya})=>ya.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}});const FontSize=TextStyle.extend({addAttributes(){return{...this.parent?.(),fontSize:{default:null,parseHTML:ya=>ya.style.fontSize?.replace(/['"]+/g,""),renderHTML:ya=>ya.fontSize?{style:`font-size: ${ya.fontSize}`}:{}}}},addCommands(){return{...this.parent?.(),setFontSize:ya=>({chain:ma})=>ma().setMark(this.name,{fontSize:ya}).run(),unsetFontSize:()=>({chain:ya})=>ya().setMark(this.name,{fontSize:null}).removeEmptyTextStyle().run()}}}),createExtensions=ya=>[index_default.configure({bulletList:!1,orderedList:!1,listItem:!1,link:!1,underline:!1}),Markdown,Color,Underline,FontSize,Highlight.configure({multicolor:!0}),Link.configure({openOnClick:!1,protocols:["http","https","mailto","tel"],HTMLAttributes:{class:"text-blue-500 underline cursor-pointer hover:text-blue-700"}}),Placeholder.configure({placeholder:ya||"Start writing...",emptyEditorClass:"is-editor-empty"}),BulletList.configure({HTMLAttributes:{class:"list-disc list-outside my-0 pl-6"},itemTypeName:"listItem"}),OrderedList.configure({HTMLAttributes:{class:"list-decimal list-outside my-0 pl-6"},itemTypeName:"listItem"}),ListItem.configure({HTMLAttributes:{class:"my-0"}}),Table.configure({resizable:!0,HTMLAttributes:{class:"border-collapse border border-gray-300 my-4"}}),TableRow.configure({HTMLAttributes:{class:"border border-gray-300"}}),TableHeader.configure({HTMLAttributes:{class:"border border-gray-300 bg-gray-50 font-semibold px-3 py-2 text-left"}}),TableCell.configure({HTMLAttributes:{class:"border border-gray-300 px-3 py-2"}}),TextAlign.configure({types:["heading","paragraph"]}),Image$1.configure({HTMLAttributes:{class:"max-w-full h-auto rounded-lg my-4"}}),FontFamily.configure({types:["textStyle"]}),Subscript,Superscript],MenuButton=({onClick:ya,isActive:ma=!1,disabled:ba=!1,icon:va,title:Ma})=>jsxRuntimeExports.jsx("button",{type:"button",onClick:ya,disabled:ba,className:`cursor-pointer p-2 rounded hover:bg-table-header transition-colors ${ma?"bg-[rgba(59,130,246,0.2)] text-blue":"text-[rgba(255,255,255,0.7)]"} ${ba?"disabled:opacity-50 disabled:cursor-not-allowed":""}`,title:Ma,children:jsxRuntimeExports.jsx(Icon,{icon:va,width:18,height:18})}),Separator=()=>jsxRuntimeExports.jsx("div",{className:"w-px h-6 bg-table-header mx-1"}),MenuBar=({editor:ya,showCodeOptions:ma=!0,showQuote:ba=!0,showLinkImage:va=!0})=>{const Ma=reactExports.useCallback(()=>{if(!ya)return;const Sl=ya.getAttributes("link").href,Cl=window.prompt("URL",Sl);if(Cl!==null){if(Cl===""){ya.chain().focus().extendMarkRange("link").unsetLink().run();return}ya.chain().focus().extendMarkRange("link").setLink({href:Cl}).run()}},[ya]),wl=reactExports.useCallback(()=>{if(!ya)return;const Sl=window.prompt("Image URL");Sl===null||Sl===""||ya.chain().focus().setImage({src:Sl}).run()},[ya]),El=useEditorState({editor:ya,selector:Sl=>Sl.editor?{isBold:Sl.editor.isActive("bold")??!1,isItalic:Sl.editor.isActive("italic")??!1,isUnderline:Sl.editor.isActive("underline")??!1,isStrike:Sl.editor.isActive("strike")??!1,isSubscript:Sl.editor.isActive("subscript")??!1,isSuperscript:Sl.editor.isActive("superscript")??!1,isCode:Sl.editor.isActive("code")??!1,isBulletList:Sl.editor.isActive("bulletList")??!1,isOrderedList:Sl.editor.isActive("orderedList")??!1,isHeading1:Sl.editor.isActive("heading",{level:1})??!1,isHeading2:Sl.editor.isActive("heading",{level:2})??!1,isHeading3:Sl.editor.isActive("heading",{level:3})??!1,isBlockquote:Sl.editor.isActive("blockquote")??!1,isCodeBlock:Sl.editor.isActive("codeBlock")??!1,isLink:Sl.editor.isActive("link")??!1,canUndo:Sl.editor.can().chain().undo().run()??!1,canRedo:Sl.editor.can().chain().redo().run()??!1}:{isBold:!1,isItalic:!1,isUnderline:!1,isStrike:!1,isSubscript:!1,isSuperscript:!1,isCode:!1,isBulletList:!1,isOrderedList:!1,isHeading1:!1,isHeading2:!1,isHeading3:!1,isBlockquote:!1,isCodeBlock:!1,isLink:!1,canUndo:!1,canRedo:!1}});return ya?jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-1 p-2 border-b border-table-header bg-[rgba(255,255,255,0.02)]",children:[jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBold().run(),disabled:!ya.can().chain().focus().toggleBold().run(),isActive:El.isBold,icon:"mdi:format-bold",title:"Bold"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleItalic().run(),disabled:!ya.can().chain().focus().toggleItalic().run(),isActive:El.isItalic,icon:"mdi:format-italic",title:"Italic"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleUnderline().run(),disabled:!ya.can().chain().focus().toggleUnderline().run(),isActive:El.isUnderline,icon:"mdi:format-underline",title:"Underline"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleStrike().run(),disabled:!ya.can().chain().focus().toggleStrike().run(),isActive:El.isStrike,icon:"mdi:format-strikethrough",title:"Strikethrough"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleSubscript().run(),disabled:!ya.can().chain().focus().toggleSubscript().run(),isActive:El.isSubscript,icon:"mdi:format-subscript",title:"Subscript"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleSuperscript().run(),disabled:!ya.can().chain().focus().toggleSuperscript().run(),isActive:El.isSuperscript,icon:"mdi:format-superscript",title:"Superscript"}),jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:1}).run(),isActive:El.isHeading1,icon:"mdi:format-header-1",title:"Heading 1"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:2}).run(),isActive:El.isHeading2,icon:"mdi:format-header-2",title:"Heading 2"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleHeading({level:3}).run(),isActive:El.isHeading3,icon:"mdi:format-header-3",title:"Heading 3"}),jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBulletList().run(),isActive:El.isBulletList,icon:"mdi:format-list-bulleted",title:"Bullet List"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleOrderedList().run(),isActive:El.isOrderedList,icon:"mdi:format-list-numbered",title:"Numbered List"}),ma&&jsxRuntimeExports.jsx(Separator,{}),ma&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleCode().run(),disabled:!ya.can().chain().focus().toggleCode().run(),isActive:El.isCode,icon:"mdi:code-tags",title:"Inline Code"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleCodeBlock().run(),isActive:El.isCodeBlock,icon:"mdi:code-braces",title:"Code Block"})]}),ma&&ba&&jsxRuntimeExports.jsx(Separator,{}),ba&&jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().toggleBlockquote().run(),isActive:El.isBlockquote,icon:"mdi:format-quote-close",title:"Quote"}),ba&&va&&jsxRuntimeExports.jsx(Separator,{}),va&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(MenuButton,{onClick:Ma,isActive:El.isLink,icon:"mdi:link",title:"Link"}),jsxRuntimeExports.jsx(MenuButton,{onClick:wl,icon:"mdi:image",title:"Image"})]}),va&&jsxRuntimeExports.jsx(Separator,{}),!ma&&!ba&&!va&&jsxRuntimeExports.jsx(Separator,{}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().undo().run(),disabled:!El.canUndo,icon:"mdi:undo",title:"Undo"}),jsxRuntimeExports.jsx(MenuButton,{onClick:()=>ya.chain().focus().redo().run(),disabled:!El.canRedo,icon:"mdi:redo",title:"Redo"})]}):null},TiptapEditor=({value:ya,onChange:ma,onBlur:ba,placeholder:va="",disabled:Ma=!1,minHeight:wl="80px",maxHeight:El="1000px",className:Sl="",showToolbar:Cl=!0,showCodeOptions:Mc=!0,showQuote:dp=!0,showLinkImage:pp=!0})=>{const hp=reactExports.useMemo(()=>createExtensions(va),[va]),Ef=reactExports.useRef(""),Zf=useEditor({extensions:hp,content:ya||"",editable:!Ma,contentType:"markdown",onUpdate:({editor:Jf})=>{const pg=Jf.getMarkdown();ma(pg)},editorProps:{attributes:{class:`prose prose-invert max-w-none focus:outline-none ${Sl}`}}});return reactExports.useEffect(()=>{if(!Zf)return;const Jf=ya||"";if(Ef.current===Jf)return;const pg=Zf.getMarkdown().trim(),hg=Jf.trim();pg!==hg?(Ef.current=Jf,Zf.commands.setContent(Jf,{contentType:"markdown",emitUpdate:!1})):Ef.current=Jf},[ya,Zf]),reactExports.useEffect(()=>{if(!Zf||!ba)return;const Jf=()=>{ba()};return Zf.on("blur",Jf),()=>{Zf.off("blur",Jf)}},[Zf,ba]),reactExports.useEffect(()=>{Zf&&Zf.setEditable(!Ma)},[Zf,Ma]),Zf?jsxRuntimeExports.jsxs("div",{className:`w-full bg-[rgba(255,255,255,0.02)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] placeholder-[rgba(255,255,255,0.4)] focus-within:outline-none focus-within:border-blue focus-within:ring-2 focus-within:ring-[rgba(2,92,212,0.2)] overflow-hidden flex flex-col ${Ma?"opacity-50 cursor-not-allowed":""} ${Sl}`,children:[!Ma&&Cl&&jsxRuntimeExports.jsx(MenuBar,{editor:Zf,showCodeOptions:Mc,showQuote:dp,showLinkImage:pp}),jsxRuntimeExports.jsx("div",{className:"flex-1 p-4 overflow-y-auto",style:{minHeight:wl,maxHeight:El,"--tiptap-min-height":wl,"--tiptap-max-height":El},children:jsxRuntimeExports.jsx(EditorContent,{editor:Zf,className:"tiptap-editor"})})]}):null},AgentForm=({agentId:ya})=>{const ma=useAppStore(Jf=>Jf.moduleDbChangeCount),ba=useAppStore(Jf=>Jf.setSelectedAgentId),{getAgent:va,setAgentInstruction:Ma,setAgentRole:wl}=useAgent(),{currentTeam:El}=useTeams(),Sl=ya?va(ya):null,[Cl,Mc]=reactExports.useState(Sl?.getInstruction()),[dp,pp]=reactExports.useState(Sl?.attributes.get("role")||""),hp=El?.isEditable||!1;reactExports.useEffect(()=>{if(Sl&&ya){const Jf=Sl.getInstruction()||"",pg=Sl.attributes.get("role")||"";Mc(Jf),pp(pg)}else Mc(""),pp("")},[Sl,ya,ma]);const Ef=()=>{ya&&hp&&Ma(ya,Cl||"")},Zf=()=>{ya&&hp&&wl(ya,dp||"")};return jsxRuntimeExports.jsxs("div",{className:"p-4 transition-all duration-300 w-full flex flex-col gap-4 h-full",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent,className:"text-white"})})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Agent Configuration",position:"right",children:jsxRuntimeExports.jsx("h4",{children:ya})})})]})}),jsxRuntimeExports.jsx("button",{onClick:()=>ba(null),className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"text-white"})})]})}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto scrollbar-none",children:[jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 ",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.agent,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Define the agent's primary role and purpose",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"text-sm! font-semibold text-[rgba(255,255,255,0.9)]",children:"Role"})})})]}),jsxRuntimeExports.jsx(TiptapEditor,{value:dp,onChange:Jf=>hp&&pp(Jf),onBlur:Zf,placeholder:"Enter the agent's role and primary responsibilities...",disabled:!hp,minHeight:"60px",maxHeight:"200px",showToolbar:!1})]}),jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 ",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.instruction,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Guide the agent's behavior and responses",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"text-sm! font-semibold text-[rgba(255,255,255,0.9)]",children:"Instructions"})})})]}),jsxRuntimeExports.jsx(TiptapEditor,{value:Cl||"",onChange:Jf=>hp&&Mc(Jf),onBlur:Ef,placeholder:"Enter detailed instructions for the agent...",disabled:!hp,minHeight:"128px",maxHeight:"1000px",showCodeOptions:!1,showQuote:!1,showLinkImage:!1})]}),Sl&&jsxRuntimeExports.jsx(AgentLLM,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentTools,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentDirectives,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentGlossary,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentResponseSchema,{agent:Sl,isEditable:hp}),Sl&&jsxRuntimeExports.jsx(AgentScenarios,{agent:Sl,isEditable:hp})]})]})},DecisionForm=({decisionId:ya})=>{const[ma,ba]=reactExports.useState([]),{getNodes:va,setNodes:Ma}=useReactFlow(),wl=useAppStore(dp=>dp.setSelectedDecisionId),{updateDecision:El,getDecision:Sl}=useFlow();reactExports.useEffect(()=>{(async()=>{const pp=Sl(ya);if(!pp)return;const Ef=(await Promise.all(pp.cases.map(async Zf=>await introspectCase(Zf)))).map(Zf=>{const Jf=isExpressionPattern(Zf.condition)||isGroupExpressionPattern(Zf.condition),pg=Zf.body;return{kind:Jf?"expression":"string",condition:Jf?Zf.condition.toString():Zf.condition.value,action:pg.value}});ba(Ef)})()},[ya]);const Cl={cases:[...ma,{kind:"string",condition:"",action:""}]},Mc=dp=>{const pp=dp.kind==="expression"?new ExpressionPattern$1(dp.condition):LiteralPattern$1.String(dp.condition),hp=LiteralPattern$1.Id(dp.action);return new CasePattern$1(pp,hp).toString()};return jsxRuntimeExports.jsxs("div",{className:"p-4 transition-all duration-300 w-full flex flex-col gap-4 h-full",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision,className:"text-white"})})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("h4",{children:ya})})]})}),jsxRuntimeExports.jsx("button",{onClick:()=>wl(null),className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"text-white"})})]})}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4 overflow-y-auto scrollbar-none",children:jsxRuntimeExports.jsx(Formik,{initialValues:Cl,enableReinitialize:!0,onSubmit:dp=>{const hp=va().find(Zf=>Zf.type==="decision"&&Zf.data?.name===ya);hp&&Ma(Zf=>{const Jf=Zf.map(pg=>{if(pg.id===hp.id&&pg.type==="decision"){const hg=dp.cases.filter(mg=>mg.condition.trim()&&mg.action.trim()).map((mg,gg)=>({id:(Array.isArray(pg.data.conditions)?pg.data.conditions:[])[gg]?.id||`cond-${hp.id}-${gg+1}`,label:mg.action}));return{...pg,data:{...pg.data,conditions:hg}}}return pg});return console.log(Jf),Jf});const Ef=dp.cases.filter(Zf=>Zf.condition.trim()&&Zf.action.trim()).map(Mc);El(ya,Ef)},children:({values:dp,setFieldValue:pp,isValid:hp,dirty:Ef})=>jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(FieldArray,{name:"cases",render:Zf=>jsxRuntimeExports.jsx(DecisionCasesList,{cases:dp.cases,onChangeKind:(Jf,pg)=>pp(`cases.${Jf}.kind`,pg),onChangeCondition:(Jf,pg)=>pp(`cases.${Jf}.condition`,pg),onChangeAction:(Jf,pg)=>pp(`cases.${Jf}.action`,pg),onRemove:Jf=>Zf.remove(Jf),onAdd:()=>Zf.push({kind:"string",condition:"",action:""}),onAddAt:Jf=>Zf.insert(Jf,{kind:"string",condition:"",action:""})})}),jsxRuntimeExports.jsx("div",{className:"flex",children:jsxRuntimeExports.jsxs("button",{type:"submit",disabled:!hp||!Ef,className:"w-full px-4 py-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-md text-[rgba(255,255,255,0.9)] hover:bg-table-header disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:content-save",width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:"Save"})]})})]})})})]})},DecisionCasesList=({cases:ya,onChangeKind:ma,onChangeCondition:ba,onChangeAction:va,onRemove:Ma,onAdd:wl,onAddAt:El})=>{const Sl=reactExports.useRef(null);reactExports.useEffect(()=>{const Mc=dp=>{if(dp.ctrlKey&&dp.key==="Enter"){dp.preventDefault();const pp=document.activeElement;if(!pp)return;const hp=pp.closest("[data-case-index]");if(!hp)return;const Ef=parseInt(hp.getAttribute("data-case-index")||"-1",10);if(Ef===-1)return;const Jf=Ef===ya.length-1?ya.length:Ef+1;El(Jf),requestAnimationFrame(()=>{setTimeout(()=>{const pg=document.querySelector(`[data-case-index="${Jf}"]`);if(pg){const hg=pg.querySelector('input[data-input-type="condition"]');if(hg){hg.focus();return}const mg=pg.querySelector("[data-expression-builder]");if(mg){const gg=mg.querySelector("input");if(gg){gg.focus();return}}}},50)})}};return document.addEventListener("keydown",Mc),()=>{document.removeEventListener("keydown",Mc)}},[ya.length,El]);const Cl=Mc=>{Sl.current=Mc};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-end",children:jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{const Mc=ya.length;wl(),requestAnimationFrame(()=>{const dp=document.getElementById(`decision-case-${Mc}`);dp&&dp.scrollIntoView({behavior:"smooth",block:"center"})})},className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header flex items-center gap-2 text-sm cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})}),ya.map((Mc,dp)=>jsxRuntimeExports.jsxs("div",{id:`decision-case-${dp}`,"data-case-index":dp,className:"flex flex-col gap-3 p-3 bg-secondary rounded-md",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntimeExports.jsx("label",{className:"text-sm text-[rgba(255,255,255,0.7)]",children:"Condition"}),jsxRuntimeExports.jsxs("div",{className:"relative flex items-center input-container p-0!",children:[jsxRuntimeExports.jsx(Selector,{value:Mc.kind,onChange:pp=>ma(dp,pp),allowed:["string","expression"]}),Mc.kind==="expression"?jsxRuntimeExports.jsx("div",{className:"grow","data-expression-builder":!0,onFocus:()=>Cl(dp),tabIndex:-1,children:jsxRuntimeExports.jsx(ExpressionBuilder,{expression:Mc.condition,onExpressionChange:pp=>ba(dp,pp)})}):jsxRuntimeExports.jsx("input",{"data-input-type":"condition",className:"flex-1 bg-transparent border-none outline-none",placeholder:"Match string, e.g. salary is greater than 1000",value:Mc.condition,onChange:pp=>ba(dp,pp.target.value),onFocus:()=>Cl(dp)})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[jsxRuntimeExports.jsx("label",{className:"text-sm text-[rgba(255,255,255,0.7)]",children:"Action"}),jsxRuntimeExports.jsx("input",{"data-input-type":"action",className:"bg-secondary text-white rounded px-2 py-1 text-sm",placeholder:"Action",value:Mc.action,onChange:pp=>va(dp,pp.target.value),onFocus:()=>Cl(dp)})]}),jsxRuntimeExports.jsx("div",{className:"flex items-end",children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-6 h-6 text-base bg-secondary rounded-xl flex items-center justify-center shadow-lg cursor-pointer",onClick:()=>Ma(dp),title:"Remove case",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"text-white"})})})]})]},dp))]})},getRecordNameFromPattern=(ya,ma)=>{let ba=null,va=null;if(ya&&!isLiteralPattern(ya)){let Ma=null;if(isCreatePattern(ya)||isQueryPattern$2(ya)||isQueryUpdatePattern(ya)?Ma=ya.getNormalizedRecordName():isDeletePattern(ya)&&(Ma=ya.pattern.getNormalizedRecordName()),Ma)if(isFqName$1(Ma)){const wl=nameToPath$1(Ma);ba=wl.getModuleName(),va=wl.getEntryName()}else ba=ma||null,va=Ma}return{entryModule:ba,entryName:va}},resolveEntryFromPatternOrName=(ya,ma,ba)=>{let{entryModule:va,entryName:Ma}=getRecordNameFromPattern(ya,ma);if(!Ma&&ba)if(isFqName$1(ba)){const wl=nameToPath$1(ba);va=wl.getModuleName(),Ma=wl.getEntryName()}else va=ma||null,Ma=ba;return{entryModule:va,entryName:Ma}},getStatementInfo=(ya,ma)=>{if(!ya||isLiteralPattern(ya))return null;if(isCreatePattern(ya)){const ba=ya,va=ba.getNormalizedRecordName();let Ma=ma||"",wl=va;if(isFqName$1(va)){const Sl=nameToPath$1(va);Ma=Sl.getModuleName(),wl=Sl.getEntryName()}let El=icons.create;return isAgent(Ma,wl)?El=icons.agent:isEvent(Ma,wl)&&(El=icons.action),{type:"create",icon:El,label:va,pattern:ba}}if(isQueryPattern$2(ya)){const ba=ya;return{type:"read",icon:icons.read,label:ba.getNormalizedRecordName(),pattern:ba}}if(isQueryUpdatePattern(ya)){const ba=ya;return{type:"update",icon:icons.update,label:ba.getNormalizedRecordName(),pattern:ba}}if(isDeletePattern(ya)){const va=ya.pattern;return{type:"delete",icon:icons.delete,label:va.getNormalizedRecordName(),pattern:va}}if(isForEachPattern(ya)){const ba=ya;return{type:"forEach",icon:icons.loop,label:ba.variable,pattern:ba}}if(isIfPattern(ya)){const ba=ya;return{type:"if",icon:icons.match,label:ba.condition.toString(),pattern:ba}}if(isFunctionCallPattern(ya)){const ba=ya;return{type:"functionCall",icon:icons.function,label:ba.toString().split("(")[0]||"function",pattern:ba}}return null},getIcon$1=(ya,ma,ba,va)=>{if(ya)return ya.icon;const{entryModule:Ma,entryName:wl}=resolveEntryFromPatternOrName(va,ma,ba);if(wl!==null){const El=Ma!==null?Ma:ma||"";if(isAgent(El,wl))return icons.agent;if(isEvent(El,wl))return icons.action}return icons.record},useActivityTaskLogic=ya=>{const{name:ma,nodeId:ba,isSelected:va,onNodeClick:Ma,getEdgesForNode:wl,onDeleteEdge:El,onNodeRightClick:Sl,isEditable:Cl,onUpdateNodeName:Mc}=ya,{moduleName:dp}=useParams(),pp=useStatementPattern(ma),hp=`swimlane:${ba}`,{isSelected:Ef,setSelectedStatement:Zf,targetContainer:Jf}=useStatementSelector(hp),{setSelectedAgentId:pg,setSelectedDecisionId:hg}=useAppStore(),mg=useOutsideClickHandler(()=>{document.querySelector(".modal-container")||Zf("")}),{entryModule:gg,entryName:yg}=resolveEntryFromPatternOrName(pp,dp,ma);let ay=!1;if(yg!==null){const M_=gg!==null?gg:dp||"";ay=isAgent(M_,yg)||isEvent(M_,yg)}const ly=ay&&(!pp||isLiteralPattern(pp)),cy=getStatementInfo(pp,dp),q1=Ef&&Cl,r0=Jf||document.getElementById("canvas-area")||document.body,uE=M_=>{if(M_.stopPropagation(),!Cl){Ma(ba,M_.ctrlKey||M_.metaKey);return}if(cy||ly){pg(null),hg(null),Zf(hp);return}Ma(ba,M_.ctrlKey||M_.metaKey)},V1=M_=>{Mc&&Mc(ba,M_),Zf("")},H1=()=>{Zf("")},O_=M_=>{if(!wl||!El)return;const AF=wl(ba).find($4=>M_==="source"?$4.source===ba:$4.target===ba);AF&&El(AF.id)},aE=!!wl?.(ba).some(M_=>M_.target===ba),P_=!!wl?.(ba).some(M_=>M_.source===ba);return{statementInfo:cy,isPlainAgentOrEvent:ly,shouldShowForm:q1,container:r0,handleClick:uE,handleUpdate:V1,handleClose:H1,deleteEdgeAtHandle:O_,getIcon:()=>getIcon$1(cy,dp,ma,pp),hasIncoming:aE,hasOutgoing:P_,isStatementSelected:Ef,ref:mg,name:ma,isSelected:va,isEditable:Cl,nodeId:ba,onNodeRightClick:Sl}},StatementForm=({statementInfo:ya,isPlainAgentOrEvent:ma,name:ba,shouldShowForm:va,handleUpdate:Ma,handleClose:wl})=>{if(!va)return null;if(ma)return jsxRuntimeExports.jsx(Form$6,{index:[],event:"",pattern:newCreatePattern(ba),closeHandler:wl,onUpdate:Ma});if(!ya)return null;switch(ya.type){case"create":return jsxRuntimeExports.jsx(Form$6,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"read":case"update":return jsxRuntimeExports.jsx(Form$5,{index:[],event:"",type:ya.type,pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"delete":return jsxRuntimeExports.jsx(Form$4,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"if":return jsxRuntimeExports.jsx(Form$3,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"forEach":return jsxRuntimeExports.jsx(Form$2,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});case"functionCall":return jsxRuntimeExports.jsx(FunctionCallForm,{index:[],event:"",pattern:ya.pattern,closeHandler:wl,onUpdate:Ma});default:return null}},ActivityTaskNode=({data:ya})=>{const{statementInfo:ma,isPlainAgentOrEvent:ba,shouldShowForm:va,container:Ma,handleClick:wl,handleUpdate:El,handleClose:Sl,deleteEdgeAtHandle:Cl,getIcon:Mc,hasIncoming:dp,hasOutgoing:pp,isStatementSelected:hp,ref:Ef,name:Zf,isSelected:Jf,isEditable:pg,nodeId:hg,onNodeRightClick:mg}=useActivityTaskLogic(ya);return jsxRuntimeExports.jsxs("div",{className:`w-[300px]! workflow-badge px-3! py-0! ${Jf?" border-checkbox-selected":"border-transparent"} group`,"data-selected":hp,onClick:wl,onContextMenu:pg?gg=>{gg.preventDefault(),gg.stopPropagation(),mg(hg,gg.clientX,gg.clientY)}:gg=>gg.preventDefault(),children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:Position.Top,className:"border-2 border-solid border-primary-font"}),pg&&dp&&jsxRuntimeExports.jsx("button",{title:"Remove incoming connection",onClick:gg=>{gg.stopPropagation(),Cl("target")},className:"absolute -top-5 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-3 h-3"})})]}),Ma&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AnimatePresence,{children:va&&(ma||ba)&&jsxRuntimeExports.jsx(motion.div,{className:"statement-form",onContextMenu:gg=>gg.stopPropagation(),ref:Ef,initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.3,ease:"easeInOut"},children:jsxRuntimeExports.jsx(StatementForm,{statementInfo:ma,isPlainAgentOrEvent:ba,name:Zf,shouldShowForm:va,handleUpdate:El,handleClose:Sl})})}),Ma),ma?jsxRuntimeExports.jsx("div",{className:"header","data-selected":hp,children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:ma.icon})}),jsxRuntimeExports.jsx("span",{className:"entity-badge",children:jsxRuntimeExports.jsx("div",{children:ma.label})})]})}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:Mc()})}),jsxRuntimeExports.jsx("span",{className:"py-0.5 px-4 rounded-md bg-secondary border border-border-color w-fit break-all text-primary-font text-sm",children:Zf})]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"source",position:Position.Bottom,className:"border-2 border-solid border-primary-font"}),pg&&pp&&jsxRuntimeExports.jsx("button",{title:"Remove outgoing connection",onClick:gg=>{gg.stopPropagation(),Cl("source")},className:"absolute -bottom-5 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-3 h-3"})})]})]})},ConditionLabel=({nodeId:ya,condition:ma,onUpdate:ba,layout:va="horizontal",isEditable:Ma})=>{const[wl,El]=reactExports.useState(!1),[Sl,Cl]=reactExports.useState(ma.label),Mc=reactExports.useRef(null),dp=()=>{Sl.trim()!==""&&Sl.trim()!==ma.label?ba(ya,ma.id,Sl.trim()):Cl(ma.label),El(!1)},pp=hp=>{hp.key==="Enter"?dp():hp.key==="Escape"&&(Cl(ma.label),El(!1))};return reactExports.useEffect(()=>{wl&&Mc.current?.focus()},[wl]),wl?jsxRuntimeExports.jsx("input",{ref:Mc,type:"text",value:Sl,onChange:hp=>Cl(hp.target.value),onBlur:dp,onKeyDown:pp,className:"text-xs py-1! px-2! border border-blue-500 rounded shadow-lg focus:ring-2 focus:ring-blue-300 outline-none",style:{width:`${Math.max(80,Sl.length*8+10)}px`}}):va==="vertical"?jsxRuntimeExports.jsx("div",{className:"nodrag nopan group flex flex-col items-center gap-1",children:jsxRuntimeExports.jsx("div",{onClick:hp=>{hp.stopPropagation(),Ma&&El(!0)},title:"Click to edit",className:"relative group text-xs py-1 px-2 bg-primary text-primary-font rounded shadow-sm cursor-pointer hover:bg-muted transition-colors",children:ma.label})}):jsxRuntimeExports.jsx("div",{className:"nodrag nopan group relative",children:jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:jsxRuntimeExports.jsx("div",{onClick:hp=>{hp.stopPropagation(),Ma&&El(!0)},title:"Click to edit",className:"text-xs py-1 px-2 bg-primary text-primary-font rounded shadow-sm cursor-pointer hover:bg-muted transition-colors",children:ma.label})})})},DecisionGatewayNode=({data:ya})=>{const{name:ma,nodeId:ba,isSelected:va,onNodeClick:Ma,conditions:wl=[],onUpdateCondition:El,getEdgesForNode:Sl,onDeleteEdge:Cl,onNodeRightClick:Mc,isEditable:dp}=ya,Ef=Math.max(280,80*(wl.length+1)),Zf=!!Sl?.(ba).some(pg=>pg.target===ba),Jf=pg=>{if(pg.stopPropagation(),!Sl||!Cl)return;const hg=Sl(ba).find(mg=>mg.target===ba);hg&&Cl(hg.id)};return jsxRuntimeExports.jsxs("div",{className:"relative mx-auto group",style:{width:`${Ef}px`,height:"88px"},children:[jsxRuntimeExports.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 -top-2",children:jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Handle,{type:"target",className:"border-2 border-solid border-primary-font",position:Position.Top}),Zf&&dp&&jsxRuntimeExports.jsx("button",{title:"Remove incoming connection",onClick:Jf,className:"absolute -top-4 left-1/2 -translate-x-1/2 w-5 h-5 grid place-items-center rounded-full bg-white border shadow hover:bg-red-500 hover:text-white text-gray-600 opacity-0 group-hover:opacity-100 cursor-pointer z-[5]",children:"×"})]})}),jsxRuntimeExports.jsx("div",{className:`absolute inset-0 shadow-sm cursor-pointer ${va?"bg-checkbox-selected":"bg-secondary"}`,style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)",padding:"2px"},onClick:pg=>{pg.stopPropagation(),Ma(ba,pg.ctrlKey||pg.metaKey)},onContextMenu:dp?pg=>{pg.preventDefault(),pg.stopPropagation(),Mc(ba,pg.clientX,pg.clientY)}:pg=>pg.preventDefault(),children:jsxRuntimeExports.jsx("div",{className:"w-full h-full flex flex-col items-center justify-center bg-primary",style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"},children:jsxRuntimeExports.jsx("div",{className:"font-medium text-xs text-primary-font",children:ma})})}),wl.map((pg,hg)=>{const gg=`calc(${100/(wl.length+1)}% * ${hg+1})`;return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"absolute",style:{bottom:0,left:gg,transform:"translateX(-50%)"},children:jsxRuntimeExports.jsx(Handle,{type:"source",position:Position.Bottom,id:pg.id,className:"border-2 border-solid border-primary-font",style:{boxShadow:"0 2px 4px rgba(0,0,0,0.2)"}})}),jsxRuntimeExports.jsx("div",{className:"absolute group/cond",style:{bottom:"-40px",left:gg,transform:"translateX(-50%)"},children:jsxRuntimeExports.jsx(ConditionLabel,{nodeId:ba,condition:pg,onUpdate:El,layout:"vertical",isEditable:dp})})]},pg.id)})]})},DecisionNode=({id:ya,data:ma})=>jsxRuntimeExports.jsx("div",{className:"relative mx-auto group",style:{width:"280px",height:"88px"},children:jsxRuntimeExports.jsx("div",{className:`absolute inset-0 shadow-sm cursor-pointer ${ma.isSelected?"bg-checkbox-selected":"bg-secondary"}`,style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)",padding:"2px"},onClick:ba=>{ba.stopPropagation(),ma.onNodeClick?.(ya,ba.ctrlKey||ba.metaKey)},onContextMenu:ma.isEditable?ba=>{ba.preventDefault(),ba.stopPropagation(),ma.onNodeRightClick?.(ya,ba.clientX,ba.clientY)}:ba=>ba.preventDefault(),children:jsxRuntimeExports.jsx("div",{className:"w-full h-full flex flex-col items-center justify-center bg-primary",style:{clipPath:"polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"},children:jsxRuntimeExports.jsx("div",{className:"font-medium text-xs text-primary-font",children:ma.name})})})}),AddSwimlaneNode=({index:ya,swimlaneId:ma,onAddNode:ba})=>{const{moduleName:va}=useParams(),[Ma,wl]=reactExports.useState(null),[El,Sl]=reactExports.useState(!1),Cl=useOutsideClickHandler(()=>{Sl(!1)});reactExports.useEffect(()=>{if(!El)return;const pp=hp=>{const Ef=hp.target,Zf=Ef.closest(".workflow-statement-menu"),Jf=Ef.closest(".add-workflow-button"),pg=Ef.closest(".modal-container"),hg=Cl.current?.contains(Ef);(Ef.closest(".react-flow")||Ef.closest(".react-flow__pane"))&&!Zf&&!Jf&&!pg&&!hg&&Sl(!1)};return document.addEventListener("mousedown",pp,!0),()=>{document.removeEventListener("mousedown",pp,!0)}},[El,Cl]);const Mc=pp=>{ba(ma,"activity",pp,ya),Sl(!1)},dp=()=>{wl(null),Sl(!1)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Ma==="decision"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Agents$1,{showDecisions:!0,closeHandler:dp,onCreatePattern:pp=>{ba(ma,"decision",pp,ya),dp()}}),document.body),Ma==="action"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Actions,{onCreateCrudStatement:(pp,hp)=>{if(!pp)return;let Ef=pp,Zf=va||"";if(isFqName$1(pp)){const pg=nameToPath$1(pp);Zf=pg.getModuleName(),Ef=pg.getEntryName()}if(isEvent(Zf,Ef)){ba(ma,"activity",pp,ya),dp();return}let Jf="";hp==="create"?Jf=newCreatePattern(pp).toString():hp==="read"?Jf=newQueryPattern(pp).toString():hp==="update"?Jf=newQueryUpdatePattern(pp).toString():hp==="delete"&&(Jf=newDeletePattern(pp).toString()),Jf&&Mc(Jf),dp()},closeHandler:dp}),document.body),Ma==="agent"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(Agents$1,{showEvents:!1,closeHandler:dp,onCreatePattern:pp=>{ba(ma,"activity",pp,ya),dp()}}),document.body),Ma==="functionCall"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddFunctionCall,{closeHandler:dp,onSubmit:(pp,hp)=>{const Ef=hp.map(Jf=>new LiteralPattern$1(LiteralPatternType$1.STRING,Jf)),Zf=new FunctionCallPattern$1(pp,Ef).toString();Mc(Zf),dp()}}),document.body),jsxRuntimeExports.jsxs("div",{className:"relative",ref:Cl,onClick:pp=>pp.stopPropagation(),children:[jsxRuntimeExports.jsx("div",{className:"add-workflow-button w-6! h-6! text-[10px]!",title:"Add Statement in Flow",onClick:()=>Sl(!El),children:jsxRuntimeExports.jsx(Icon,{icon:"fa6-solid:plus"})}),El&&jsxRuntimeExports.jsxs("div",{className:"workflow-statement-menu",children:[jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("action"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.action})}),"Action"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("agent"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent})}),"Agent"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("functionCall"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.function})}),"Call"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{const pp=new ForEachPattern$1().toString();Mc(pp)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.loop})}),"Loop"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{const pp=new IfPattern$1().setElse().toString();Mc(pp)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.match})}),"Condition"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>{wl("decision"),Sl(!1)},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision})}),"Decision"]})]})]})]})},SwimlaneNode=({data:ya})=>{const{onAddNode:ma,swimlaneId:ba,onSwimlaneRightClick:va,isSelected:Ma,onSwimlaneClick:wl,childCount:El=0,width:Sl,isEditable:Cl,name:Mc,hasUnconnectedChildren:dp}=ya,Ef=ya.height??60+El*160,Zf=El>0&&dp?.()===!0;return jsxRuntimeExports.jsxs("div",{className:`group relative rounded-md text-left border-2 ${Ma?"border-solid! border-checkbox-selected! shadow-selected-node":Zf?"border-dashed border-orange-500 animate-incomplete-border":"border-dashed border-[rgba(255,255,255,0.6)]"}`,style:{height:`${Ef}px`,width:`${ya?.width||Sl||750}px`},onClick:Cl?Jf=>{Jf.stopPropagation(),wl(ba,Jf.ctrlKey||Jf.metaKey)}:void 0,onContextMenu:Cl?Jf=>{Jf.preventDefault(),Jf.stopPropagation(),va(ba,Jf.clientX,Jf.clientY)}:Jf=>Jf.preventDefault(),children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:Position.Top,style:{visibility:"hidden"}}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between p-4 gap-2 bg-primary rounded-t-lg relative",onClick:Jf=>{Jf.stopPropagation()},children:[jsxRuntimeExports.jsx("div",{className:"font-semibold text-sm py-1",children:Mc||ba}),Zf&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-orange-500 animate-pulse",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:alert-circle",className:"w-4 h-4"}),jsxRuntimeExports.jsx("div",{className:"leading-none!",children:"Connect steps to save flow"})]}),Cl&&jsxRuntimeExports.jsx(AddSwimlaneNode,{index:0,swimlaneId:ba,onAddNode:ma})]})]})},SWIMLANE_WIDTH=450,CHILD_NODE_WIDTH=300,HORIZONTAL_PADDING=60,CHILD_LEFT_X=30,NODE_SPACING=160,NODE_START_Y=110,DECISION_BASE_WIDTH=280,DECISION_HANDLE_MIN_SPACING=80,SWIMLANE_EXTRA_MARGIN=20,NODE_HEIGHT=50,DECISION_NODE_HEIGHT=88,CONDITION_LABEL_HEIGHT=40;function getDecisionWidth(ya){const ma=Array.isArray(ya?.data?.conditions)?ya.data.conditions.length:0;return Math.max(DECISION_BASE_WIDTH,DECISION_HANDLE_MIN_SPACING*(ma+1))}function getNodeHeight(ya){if(ya.type==="decision"){const ma=Array.isArray(ya?.data?.conditions)&&ya.data.conditions.length>0;return DECISION_NODE_HEIGHT+(ma?CONDITION_LABEL_HEIGHT:0)}return NODE_HEIGHT}function layoutSwimlane(ya,ma,ba){return layoutSwimlaneWithDagre(ya,ma,ba)}function layoutSwimlaneWithDagre(ya,ma,ba){const va=ya.find(ly=>ly.id===ba);if(!va)return ya;const Ma=ya.filter(ly=>ly.parentId===ba);if(Ma.length===0)return ya.map(ly=>ly.id===ba?{...ly,data:{...ly.data,width:SWIMLANE_WIDTH,height:NODE_START_Y,childCount:0}}:ly);const wl=new Set(Ma.map(ly=>ly.id)),El=ma.filter(ly=>ly&&wl.has(ly.source)&&wl.has(ly.target)),Sl=ly=>ly.type==="decision"?getDecisionWidth(ly):CHILD_NODE_WIDTH,Cl=Ma.map(ly=>({id:ly.id,width:Sl(ly),height:getNodeHeight(ly),position:{x:0,y:0},data:{}})),{nodes:Mc}=dagreLayout(Cl,El,"TB",HORIZONTAL_PADDING,NODE_SPACING);let dp=1/0,pp=-1/0,hp=1/0,Ef=-1/0;for(const ly of Mc)dp=Math.min(dp,ly.position.x),pp=Math.max(pp,ly.position.x+ly.width),hp=Math.min(hp,ly.position.y),Ef=Math.max(Ef,ly.position.y+ly.height);const Zf=isFinite(dp)?pp-dp:0,Jf=isFinite(hp)?Ef-hp:0,pg=Math.max(SWIMLANE_WIDTH,Zf+2*CHILD_LEFT_X+SWIMLANE_EXTRA_MARGIN),hg=Math.max(CHILD_LEFT_X,(pg-Zf)/2),mg=Jf+2*NODE_START_Y,gg=va.data?.width||SWIMLANE_WIDTH,yg=pg-gg,ay=new Map;for(const ly of Mc){const cy=ly.position.x-(isFinite(dp)?dp:0)+hg,q1=ly.position.y-(isFinite(hp)?hp:0)+NODE_START_Y;ay.set(ly.id,{x:cy,y:q1})}return ya.map(ly=>{if(ly.id===ba)return{...ly,data:{...ly.data,width:pg,height:mg,childCount:Ma.length}};if(ly.parentId===ba){const cy=ay.get(ly.id);if(cy)return{...ly,position:{x:cy.x,y:cy.y}}}return ly.type==="swimlane"&&ly.position.x>va.position.x&&yg!==0?{...ly,position:{...ly.position,x:ly.position.x+yg}}:ly})}function layoutSwimlaneContainersWithDagre(ya,ma,ba){const va=ya.filter(Mc=>Mc.type==="swimlane");if(va.length===0)return ya;const Ma=new Map;ba.forEach((Mc,dp)=>{Mc.forEach(pp=>Ma.set(pp,dp))});const wl=new Map;va.forEach(Mc=>{const dp=Ma.get(Mc.data.name)||"__no_agent__";wl.has(dp)||wl.set(dp,[]),wl.get(dp)?.push(Mc.id)});const El=ma.map(Mc=>Mc.name).filter(Mc=>wl.has(Mc)).concat(wl.has("__no_agent__")?["__no_agent__"]:[]),Sl=new Map;let Cl=50;return El.forEach(Mc=>{const pp=(wl.get(Mc)||[]).map(hp=>va.find(Ef=>Ef.id===hp)).filter(hp=>!!hp);if(pp.length>0){const hp=pp.map(hg=>({id:hg.id,width:hg.data?.width||SWIMLANE_WIDTH,height:hg.data?.height||NODE_START_Y,position:{x:0,y:0},data:{}})),Ef=pp.slice(0,-1).map((hg,mg)=>({id:`l-${Mc}-${mg}`,source:hg.id,target:pp[mg+1].id})),{nodes:Zf}=dagreLayout(hp,Ef,"LR",HORIZONTAL_PADDING,NODE_SPACING);let Jf=1/0;Zf.forEach(hg=>Jf=Math.min(Jf,hg.position.x));let pg=0;Zf.forEach(hg=>{const mg=Cl+hg.position.x-Jf;Sl.set(hg.id,{x:mg,y:500}),pg=Math.max(pg,mg+hg.width-Cl)}),Cl+=pg+HORIZONTAL_PADDING*2}}),ya.map(Mc=>{if(Mc.type==="swimlane"){const dp=Sl.get(Mc.id);if(dp)return{...Mc,position:dp}}return Mc})}const useSwimlaneDataManager=(ya,ma,ba,va)=>{const{addFlow:Ma,removeFlow:wl,updateFlow:El,removeDecision:Sl,getDecision:Cl}=useFlow(),{removeAgent:Mc,getAgentFlows:dp}=useAgent(),pp=reactExports.useCallback(ay=>{const ly=ya.find(r0=>r0.id===ay.source),cy=ly?.type==="decision";let q1;if(cy&&ay.sourceHandle){const r0=ly?.data?.conditions?.find(uE=>uE.id===ay.sourceHandle);r0&&(q1=r0.label)}va(r0=>{const uE=addEdge({...ay,type:"default",animated:!1,style:{stroke:"#FFFFFF99"},data:{isCondition:cy,label:q1}},r0);if(ly?.parentId){const V1=ly.parentId,H1=ya.find(aE=>aE.id===V1),O_=uE.filter(aE=>ya.find(P_=>P_.id===aE.source)?.parentId===V1).map(aE=>{const P_=ya.find(sN=>sN.id===aE.source),M_=ya.find(sN=>sN.id===aE.target);return{source:P_?.data.label||P_?.data.name,target:M_?.data.name,label:aE.data?.label}});H1&&El(H1.data.name,O_)}return uE}),ma(r0=>{const uE=r0.find(aE=>aE.id===ay.source),V1=r0.find(aE=>aE.id===ay.target);if(!uE||!V1)return r0;const H1=uE?.parentId||uE?.data?.parentSwimlane;if(!H1)return r0;const O_=[...ba,{source:ay.source,target:ay.target}];return layoutSwimlane(r0,O_,H1)})},[ya,va,ma,ba,El]),hp=reactExports.useCallback(ay=>{const ly=ya.find(P_=>P_.id===ay);if(!ly)return;const cy=String(ly.data.parentSwimlane),q1=ya.find(P_=>P_.id===cy),r0=ya.filter(P_=>P_.id!==ay),uE=ba.filter(P_=>P_.source!==ay&&P_.target!==ay),V1=uE.filter(P_=>r0.find(M_=>M_.id===P_.source)?.parentId===cy).map(P_=>{const M_=r0.find(AF=>AF.id===P_.source),sN=r0.find(AF=>AF.id===P_.target);return{source:M_?.data.label||M_?.data.name,target:sN?.data.name,label:P_.data?.label}});q1&&El(q1.data.name,V1),va(uE);const H1=r0.filter(P_=>P_.data.parentSwimlane===cy).sort((P_,M_)=>{const sN=P_.data.childIndex,AF=M_.data.childIndex;return sN-AF}).map((P_,M_)=>({...P_,data:{...P_.data,childIndex:M_}})),O_=r0.map(P_=>P_.data?.parentSwimlane===cy&&H1.find(M_=>M_.id===P_.id)||P_),aE=layoutSwimlane(O_,uE,cy);ma(aE)},[ya,ba,ma,va,El]),Ef=reactExports.useCallback(ay=>{const ly=ya.find(cy=>cy.id===ay);if(ly)if(ly.type==="agent"){const cy=dp(ay);ya.filter(r0=>r0.type==="swimlane"&&cy.some(uE=>uE.name===r0.data.name)).forEach(r0=>Ef(r0.id)),Mc(ay)}else if(ly.type==="decisionNode"){const cy=ly.data?.name||ly.id;try{Sl(cy)}catch{}ya.filter(r0=>r0.type==="decision"&&r0.data?.name===cy).forEach(r0=>hp(r0.id)),ma(r0=>r0.filter(uE=>uE.id!==ay))}else if(ly.type==="swimlane"){const cy=ly.data.agentName;wl(ly.data.name,cy);const q1=new Set([ay]);ya.forEach(r0=>{r0.parentId===ay&&q1.add(r0.id)}),ma(r0=>{const uE=r0.filter(V1=>!q1.has(V1.id));return layoutSwimlane(uE,ba,"")}),va(r0=>r0.filter(uE=>!(q1.has(uE.source)||q1.has(uE.target))))}else ly.parentId&&hp(ay)},[ya,ma,va,hp,wl,ba,Mc,dp,Sl]),Zf=reactExports.useCallback(async(ay,ly="activity",cy,q1)=>{const r0=v4$2();let uE=[];if(ly==="decision")try{const V1=Cl(cy);V1&&V1.cases&&V1.cases.length>0&&(uE=(await Promise.all(V1.cases.map(async aE=>await introspectCase(aE)))).map(aE=>aE.body.value).map((aE,P_)=>({id:`cond-${r0}-${P_+1}`,label:aE})))}catch(V1){console.error("Error loading decision cases:",V1),uE=[{id:`cond-${r0}-1`,label:"Yes"},{id:`cond-${r0}-2`,label:"No"}]}ma(V1=>{const H1=V1.filter(AQ=>AQ.parentId===ay),O_=q1!==void 0&&q1>=0&&q1<=H1.length?q1:0,aE=H1.sort((AQ,uN)=>{const uee=AQ.data.childIndex,$pe=uN.data.childIndex;return uee-$pe}),P_={name:cy,label:cy,parentSwimlane:ay,childIndex:O_,isStart:ly==="start",...ly==="decision"&&{conditions:uE.length>0?uE:[{id:`cond-${r0}-1`,label:"Yes"},{id:`cond-${r0}-2`,label:"No"}]}},sN=V1.find(AQ=>AQ.id===ay)?.data?.width||280,AF={id:r0,type:ly==="start"?"startEvent":ly==="end"?"endEvent":ly,position:{x:ly==="decision"?(sN-220)/2:sN-220-30,y:70+O_*160},data:P_,draggable:!1,parentId:ay,extent:"parent"},$4=[...aE.slice(0,O_),AF,...aE.slice(O_)].map((AQ,uN)=>({...AQ,data:{...AQ.data,childIndex:uN}})),cN=V1.filter(AQ=>AQ.parentId!==ay||AQ.id===ay),R4=V1.find(AQ=>AQ.id===ay);if(!R4)return V1;const k4=[...cN.filter(AQ=>AQ.id!==ay),R4,...$4];return layoutSwimlane(k4,ba,ay)})},[ma,ba,Cl]),Jf=reactExports.useCallback((ay,ly)=>{ma(cy=>{if(cy.some(aE=>aE.data.name===ay))return cy;const q1=cy.filter(aE=>aE.type==="swimlane"),r0=q1.length>0?Math.max(...q1.map(aE=>aE.position.x+(aE.data?.width||280))):50,uE=(isFinite(r0)?r0:50)+60,H1={id:v4$2(),type:"swimlane",position:{x:uE,y:70},data:{name:ay,childCount:0,width:280,height:70,agentName:ly},draggable:!1},O_=[...cy,H1];return layoutSwimlane(O_,ba,"")}),Ma(ay)},[ma,Ma,ba]),pg=reactExports.useCallback(ay=>{const ly=ba.find(V1=>V1.id===ay),q1=ya.find(V1=>V1.id===ly?.source)?.parentId,r0=ya.find(V1=>V1.id===q1),uE=ba.filter(V1=>V1.id!==ay);if(va(uE),r0){const V1=uE.filter(H1=>ya.find(O_=>O_.id===H1.source)?.parentId===q1).map(H1=>{const O_=ya.find(P_=>P_.id===H1.source),aE=ya.find(P_=>P_.id===H1.target);return{source:O_?.data.label||O_?.data.name,target:aE?.data.name,label:H1.data?.label}});El(r0.data.name,V1),ma(H1=>layoutSwimlane(H1,uE,q1))}},[ba,va,ya,ma,El]),hg=reactExports.useCallback(ay=>{ma(ly=>ly.map(cy=>{if(cy.id===ay&&cy.type==="decision"){const q1=Array.isArray(cy.data.conditions)?cy.data.conditions:[],uE={id:`cond-${cy.id}-${q1.length+1}`,label:`Condition ${q1.length+1}`};return{...cy,data:{...cy.data,conditions:[...q1,uE]}}}return cy}))},[ma]),mg=reactExports.useCallback((ay,ly,cy)=>{ma(q1=>q1.map(r0=>{if(r0.id===ay&&r0.type==="decision"){const V1=(Array.isArray(r0.data.conditions)?r0.data.conditions:[]).map(H1=>H1.id===ly?{...H1,label:cy}:H1);return{...r0,data:{...r0.data,conditions:V1}}}return r0}))},[ma]),gg=reactExports.useCallback((ay,ly)=>{let cy;va(q1=>{if(cy=q1.find(r0=>r0.source===ay&&r0.sourceHandle===ly),cy){const r0=q1.filter(O_=>O_.id!==cy?.id),V1=ya.find(O_=>O_.id===cy?.source)?.parentId,H1=ya.find(O_=>O_.id===V1);if(H1){const O_=r0.filter(aE=>ya.find(P_=>P_.id===aE.source)?.parentId===V1).map(aE=>{const P_=ya.find(sN=>sN.id===aE.source),M_=ya.find(sN=>sN.id===aE.target);return{source:P_?.data.label||P_?.data.name,target:M_?.data.name,label:aE.data?.label}});El(H1.data.name,O_)}return r0}return q1}),ma(q1=>{let r0=q1.map(uE=>{if(uE.id===ay&&uE.type==="decision"){const H1=(Array.isArray(uE.data.conditions)?uE.data.conditions:[]).filter(O_=>O_.id!==ly);if(H1.length>0)return{...uE,data:{...uE.data,conditions:H1}}}return uE});if(cy){const uE=r0.find(O_=>O_.id===cy?.source),V1=uE?.parentId||uE.data?.parentSwimlane,H1=ya.find(O_=>O_.id===V1);uE&&H1&&(r0=layoutSwimlane(r0,ba,V1))}return r0})},[ba,va,ma,ya,El]),yg=reactExports.useCallback((ay,ly)=>{const cy=ya.find(r0=>r0.id===ay);if(!cy)return;const q1=cy.parentId||cy.data.parentSwimlane;ma(r0=>{const uE=r0.map(V1=>V1.id===ay?{...V1,data:{...V1.data,name:ly,label:ly}}:V1);if(q1){const V1=uE.find(H1=>H1.id===q1);if(V1){const H1=ba.filter(O_=>uE.find(P_=>P_.id===O_.source)?.parentId===q1).map(O_=>{const aE=uE.find(M_=>M_.id===O_.source),P_=uE.find(M_=>M_.id===O_.target);return{source:aE?.data.label||aE?.data.name||"",target:P_?.data.name||"",label:O_.data?.label}});El(V1.data.name,H1)}}return uE})},[ya,ma,ba,El]);return{onConnect:pp,addNodeToSwimlane:Zf,deleteNode:Ef,addNewSwimlane:Jf,addConditionToGateway:hg,updateConditionLabel:mg,deleteCondition:gg,deleteEdge:pg,updateNodeName:yg}},useSwimlaneInteraction=(ya,ma,ba,va,Ma,wl,El,Sl)=>{const{removeFlow:Cl,updateFlow:Mc}=useFlow(),dp=useAppStore(r0=>r0.setSelectedAgentId),pp=useAppStore(r0=>r0.setSelectedDecisionId),hp=useAppStore(r0=>r0.setSelectedStatement),{moduleName:Ef}=useParams(),{zoomHandler:Zf}=useZoomHandler(),[Jf,pg]=reactExports.useState(null),[hg,mg]=reactExports.useState(!1),gg=reactExports.useCallback(()=>{pg(null),mg(!0)},[]),yg=reactExports.useCallback(()=>{mg(!1)},[]),ay=reactExports.useCallback(()=>{const r0=new Set(Ma);El.forEach(P_=>{Cl(P_),r0.add(P_),ya.forEach(M_=>{M_.parentId===P_&&r0.add(M_.id)})});const uE=ya.filter(P_=>!r0.has(P_.id)),V1=ba.filter(P_=>!(r0.has(P_.source)||r0.has(P_.target)));va(V1);const H1=new Set;Ma.forEach(P_=>{const M_=ya.find(sN=>sN.id===P_);M_&&typeof M_.data.parentSwimlane=="string"&&H1.add(M_.data.parentSwimlane)}),H1.forEach(P_=>{const M_=V1.filter(sN=>ya.find(AF=>AF.id===sN.source)?.parentId===P_).map(sN=>{const AF=ya.find(cN=>cN.id===sN.source),$4=ya.find(cN=>cN.id===sN.target);return{source:AF?.data.label||AF?.data.name,target:$4?.data.name,label:sN.data?.label}});Mc(P_,M_)});const O_=uE.filter(P_=>P_.type==="swimlane").sort((P_,M_)=>P_.position.x-M_.position.x),aE=uE.map(P_=>{if(P_.type==="swimlane"){const sN=50+O_.findIndex(cN=>cN.id===P_.id)*330,AF=uE.filter(cN=>cN.parentId===P_.id),$4=70+AF.length*160+0;return{...P_,position:{...P_.position,x:sN},data:{...P_.data,childCount:AF.length,height:$4}}}if(typeof P_.data.parentSwimlane=="string"&&H1.has(P_.data.parentSwimlane)){const M_=P_.data.parentSwimlane,AF=uE.filter($4=>$4.data.parentSwimlane===M_).sort(($4,cN)=>{const R4=$4.data.childIndex,k4=cN.data.childIndex;return R4-k4}).findIndex($4=>$4.id===P_.id);return{...P_,data:{...P_.data,childIndex:AF},position:{x:(P_.type==="decision",30),y:70+AF*160}}}return P_});ma(aE),wl(new Set),Sl(new Set),pg(null)},[ya,ba,Ma,El,ma,va,Cl,Mc,wl,Sl]),ly=reactExports.useCallback((r0,uE)=>{const V1=ya.find(H1=>H1.id===r0);if(V1&&V1.type==="decision"){const H1=V1.data.name,O_=ya.find(aE=>aE.type==="decisionNode"&&aE.data?.name===H1);dp(null),pp(H1),hp("");return}if(V1&&V1.type==="decisionNode"){pp(V1.data.name),dp(null),hp("");return}if(V1&&V1.type==="activity"){const H1=V1.data.name;!isAgent(Ef||"",H1)&&!isEvent(Ef||"",H1)&&(Sl(new Set),wl(uE?new Set(Ma.has(r0)?[...Ma].filter(O_=>O_!==r0):[...Ma,r0]):new Set([r0])));return}if(V1&&V1.type==="agent"){dp(r0),pp(null),hp(""),setTimeout(()=>{Zf(r0)},300);return}Sl(new Set),wl(uE?new Set(Ma.has(r0)?[...Ma].filter(H1=>H1!==r0):[...Ma,r0]):new Set([r0]))},[Ma,wl,Sl,ya,Ef,isAgent,isEvent,Zf,dp,pp,hp]),cy=reactExports.useCallback((r0,uE)=>{wl(new Set),Sl(uE?new Set(El.has(r0)?[...El].filter(V1=>V1!==r0):[...El,r0]):new Set([r0]))},[El,Sl,wl]),q1=reactExports.useCallback(()=>{wl(new Set),Sl(new Set),pg(null),dp(null),pp(null),hp("")},[wl,Sl,dp,pp,hp]);return{contextMenu:Jf,setContextMenu:pg,isAddFlowModalOpen:hg,openAddFlowModal:gg,closeAddFlowModal:yg,deleteSelected:ay,handleNodeClick:ly,handleSwimlaneClick:cy,handleCanvasClick:q1}},LAYOUT_CONSTANTS={INITIAL_X:50,SWIMLANE_Y:500,SWIMLANE_BASE_HEIGHT:70,SWIMLANE_WIDTH:280,SWIMLANE_SPACING:350,NODE_HEIGHT:160,AGENT_NODE_WIDTH:300,AGENT_Y:300,AGENT_WITHOUT_FLOW_X:100,AGENT_WITHOUT_FLOW_Y:-400,AGENT_WITHOUT_FLOW_SPACING:350,DECISION_X:120,DECISION_Y:-50,DECISION_SPACING:350};function mergeGraphNodes(ya,ma){const ba=new Map;for(const va of ya){let Ma=ba.get(va.label);const wl=(va.next||[]).map(El=>typeof El=="string"?{rep:El,label:El}:El);va.label.startsWith("{")&&ma.set(va.label,va.label);for(const El of wl)(!ma.has(El.label)||El.rep!==El.label)&&ma.set(El.label,El.rep);if(!Ma)Ma={label:va.label,type:va.type,on:va.on?new Set(va.on):void 0,next:new Set(wl)},ba.set(va.label,Ma);else{if(wl.length>0)for(const El of wl)Ma.next.add(El);if((va.on||Ma.on)&&(Ma.on||(Ma.on=new Set),va.on))for(const El of va.on)Ma.on.add(El);va.type==="condition"&&(Ma.type="condition")}}return ba}function createNodesFromGraph(ya,ma,ba){const va=[],Ma=new Map;let wl=0;for(const El of ya.values()){const Sl=v4$2();Ma.set(El.label,Sl),wl++;const Cl=El.type==="condition",Mc=El.on?Array.from(El.on):[],pp={name:ma.get(El.label)||El.label,label:El.label,description:Cl?"Decision point":"Action",parentSwimlane:ba,...Cl?{conditions:Mc.map((hp,Ef)=>({id:`cond-${Sl}-${Ef+1}`,label:hp}))}:{}};va.push({id:Sl,type:Cl?"decision":"activity",position:{x:0,y:0},data:pp,draggable:!1,parentId:ba,extent:"parent"})}return{nodes:va,nameToId:Ma,nodeCount:wl}}function createEdgesAndImplicitNodes(ya,ma,ba,va){const Ma=[],wl=[];let El=0;for(const Sl of ya.values()){const Cl=ma.get(Sl.label);if(!Cl)continue;const Mc=Array.from(Sl.next);for(let dp=0;dp<Mc.length;dp++){const pp=Mc[dp],hp=pp.label;let Ef=ma.get(hp);if(!Ef){Ef=v4$2(),ma.set(hp,Ef),El++;const hg={name:pp.rep,label:hp,description:"Action",parentSwimlane:va};wl.push({id:Ef,type:"activity",position:{x:0,y:0},data:hg,draggable:!1,parentId:va,extent:"parent"})}const Zf=Sl.type==="condition",Jf={id:`${Cl}-${Ef}-${dp}`,source:Cl,target:Ef,type:"default",animated:!1,style:{stroke:"#FFFFFF99"}};Zf&&(Jf.sourceHandle=`cond-${Cl}-${dp+1}`,Jf.data={isCondition:!0}),Ma.push(Jf)}}return{edges:Ma,implicitNodes:wl,nodeCount:El}}function createSwimlaneNode(ya,ma,ba){const va={name:ya,childCount:0,width:LAYOUT_CONSTANTS.SWIMLANE_WIDTH,height:LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT,agentName:ma};return{id:v4$2(),type:"swimlane",position:{x:ba,y:LAYOUT_CONSTANTS.SWIMLANE_Y},data:va,draggable:!1}}function connectAgentsToSwimlanes(ya,ma,ba,va){const Ma=new Set;for(const[wl,El]of ya)if(El.length>0){const Sl=El.map(Cl=>{let Mc=ma.get(Cl);if(Mc||(Mc=ma.get(`${Cl}.flow`)),!Mc){const dp=Cl.replace(/\.flow$/,"");Mc=ma.get(dp)}return Mc}).filter(Cl=>!!Cl).sort((Cl,Mc)=>Cl.position.x-Mc.position.x);if(Sl.length>0){Ma.add(wl);const Cl=Sl[0],Mc=Sl[Sl.length-1],dp=Mc.data,pp=Mc.position.x+(dp?.width||LAYOUT_CONSTANTS.SWIMLANE_WIDTH)-Cl.position.x,hp=Cl.position.x+pp/2-LAYOUT_CONSTANTS.AGENT_NODE_WIDTH/2,Ef={label:wl};ba.push({id:wl,type:"agent",position:{x:hp,y:LAYOUT_CONSTANTS.AGENT_Y},data:Ef});for(const Zf of Sl)va.push({id:`${wl}-${Zf.id}`,source:wl,target:Zf.id,type:"default",style:{stroke:"#FFFFFF99"}})}}return Ma}function addHelperAgents(ya,ma,ba){let va=LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_X;for(const{name:Ma}of ya)if(!ma.has(Ma)){const wl={label:Ma};ba.push({id:Ma,type:"agent",position:{x:va,y:LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_Y},data:wl}),va+=LAYOUT_CONSTANTS.AGENT_WITHOUT_FLOW_SPACING}}function addDecisionNodes(ya,ma){let ba=LAYOUT_CONSTANTS.DECISION_X;for(const va of ya)ma.push({id:`decision-node-${va}`,type:"decisionNode",position:{x:ba,y:LAYOUT_CONSTANTS.DECISION_Y},data:{name:va}}),ba+=LAYOUT_CONSTANTS.DECISION_SPACING}async function buildInitialStateFromFlows(ya,ma,ba,va){const Ma=[];let wl=0;const El=new Map;for(const[mg,gg]of ba)for(const yg of gg)El.set(yg,mg);const Sl=[],Cl=[];let Mc=LAYOUT_CONSTANTS.INITIAL_X;const dp=await Promise.all(ya.map(mg=>mg.toGraph().catch(gg=>[])));for(let mg=0;mg<ya.length;mg++){const gg=ya[mg],yg=dp[mg],ay=v4$2(),ly=gg.name.replace(/\.flow$/,""),cy=createSwimlaneNode(ly,El.get(ly),Mc);cy.id=ay,Sl.push(cy);const q1=new Map,r0=mergeGraphNodes(yg,q1),{nodes:uE,nameToId:V1,nodeCount:H1}=createNodesFromGraph(r0,q1,ay);wl+=H1;const{edges:O_,implicitNodes:aE,nodeCount:P_}=createEdgesAndImplicitNodes(r0,V1,q1,ay);wl+=P_;const M_=[...uE,...aE];Cl.push(...M_),Ma.push(...O_);const sN=Sl[Sl.length-1];if(sN&&M_.length>0){const AF=sN.data;AF.height=LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT+M_.length*LAYOUT_CONSTANTS.NODE_HEIGHT,AF.childCount=M_.length}Mc+=LAYOUT_CONSTANTS.SWIMLANE_SPACING}const pp=new Set(Sl.map(mg=>mg.data?.name).filter(Boolean));for(const[mg,gg]of ba)for(const yg of gg)if(!pp.has(yg)){const ay={name:yg,childCount:0,width:LAYOUT_CONSTANTS.SWIMLANE_WIDTH,height:LAYOUT_CONSTANTS.SWIMLANE_BASE_HEIGHT,agentName:mg};Sl.push({id:v4$2(),type:"swimlane",position:{x:Mc,y:LAYOUT_CONSTANTS.SWIMLANE_Y},data:ay,draggable:!1}),pp.add(yg),Mc+=LAYOUT_CONSTANTS.SWIMLANE_SPACING}let hp=[...Sl,...Cl];for(const mg of Sl)hp=layoutSwimlane(hp,Ma,mg.id);const Ef=layoutSwimlaneContainersWithDagre(hp,ma,ba),Zf=new Map(Ef.filter(mg=>mg.type==="swimlane").map(mg=>[mg.data.name,mg])),Jf=[...Ef],pg=[...Ma],hg=connectAgentsToSwimlanes(ba,Zf,Jf,pg);return addHelperAgents(ma,hg,Jf),addDecisionNodes(va,Jf),{nodes:Jf,edges:pg,nextNodeCounter:wl}}const useSwimlaneState=({flowId:ya})=>{const{moduleName:ma}=useParams(),{getAgentFlows:ba}=useAgent(),va=useAppStore(AF=>AF.moduleDbChangeCount),[Ma,wl,El]=useNodesState([]),[Sl,Cl,Mc]=useEdgesState([]),[dp,pp]=reactExports.useState(new Set),[hp,Ef]=reactExports.useState(new Set),[Zf,Jf]=reactExports.useState(!1),[pg,hg]=reactExports.useState(!1),[mg,gg]=reactExports.useState(!1),[yg,ay]=reactExports.useState(null),ly=reactExports.useMemo(()=>{if(!ma)return null;try{const AF=fetchModule$2(ma),$4=ya?.replace(/\.flow$/,""),cN=$4?[AF.getFlow($4)]:AF.getAllFlows(),R4=AF.getAgentNames(),AQ=R4.map($pe=>AF.getAgent($pe)).map(($pe,Ppe)=>({agent:$pe,name:R4[Ppe]})),uN=AF.getAllDecisions().map($pe=>$pe.name),uee=new Map;return AQ.forEach(({name:$pe})=>{const Ppe=ba($pe).map(e2e=>e2e.name.replace(/\.flow$/,""));uee.set($pe,Ppe)}),{flows:cN,agentsWithCleanNames:AQ,agentToFlowsMap:uee,decisions:uN}}catch(AF){return console.error("Failed to fetch module data:",AF),null}},[ma,ya,va]),[cy,q1]=reactExports.useState({nodes:[],edges:[],nextNodeCounter:0});reactExports.useEffect(()=>{if(!ly){q1({nodes:[],edges:[],nextNodeCounter:0});return}let AF=!1;return(async()=>{try{const cN=await buildInitialStateFromFlows(ly.flows,ly.agentsWithCleanNames,ly.agentToFlowsMap,ly.decisions);AF||q1(cN)}catch(cN){console.error("Failed to build graph layout:",cN),AF||q1({nodes:[],edges:[],nextNodeCounter:0})}})(),()=>{AF=!0}},[ly]),reactExports.useEffect(()=>{wl(cy.nodes),Cl(cy.edges)},[cy,wl,Cl]);const r0=useSwimlaneDataManager(Ma,wl,Sl,Cl),uE=useSwimlaneInteraction(Ma,wl,Sl,Cl,dp,pp,hp,Ef),V1=()=>Jf(!0),H1=()=>Jf(!1),O_=()=>hg(!0),aE=()=>hg(!1),P_=AF=>{if(!Ma.some(cN=>cN.type==="swimlane"&&cN.data?.agentName===AF)){r0.addNewSwimlane(AF,AF);return}ay(AF),gg(!0)},M_=()=>{gg(!1),ay(null)};return{nodes:Ma,edges:Sl,onNodesChange:El,onEdgesChange:Mc,...r0,addNewSwimlane:AF=>{yg&&r0.addNewSwimlane(AF,yg),M_()},...uE,selectedNodes:dp,selectedSwimlanes:hp,setSelectedNodes:pp,setSelectedSwimlanes:Ef,isAddAgentModalOpen:Zf,openAddAgentModal:V1,closeAddAgentModal:H1,isAddDecisionModalOpen:pg,openAddDecisionModal:O_,closeAddDecisionModal:aE,isAddFlowModalOpen:mg,openAddFlowModal:P_,closeAddFlowModal:M_}},useSwimlaneHandlers=({setContextMenu:ya,deleteNode:ma,nodes:ba,openAddFlowModal:va})=>{const{setAgentPublic:Ma,getAgentPublic:wl,getAgentFlows:El}=useAgent(),Sl=reactExports.useCallback(dp=>{dp.defaultPrevented||(dp.preventDefault(),ya({type:"canvas",x:dp.clientX,y:dp.clientY,onClose:()=>ya(null)}))},[ya]),Cl=reactExports.useCallback((dp,pp,hp)=>{ba.find(Zf=>Zf.id===dp)&&ya({type:"swimlane",x:pp,y:hp,onClose:()=>ya(null),onDelete:()=>ma(dp),deleteLabel:"Delete Flow"})},[ba,ma,ya]),Mc=reactExports.useCallback((dp,pp,hp)=>{const Ef=ba.find(pg=>pg.id===dp);if(!Ef)return;let Zf="Delete Node",Jf;switch(Ef.type){case"agent":{Zf="Delete Agent";const pg=Ef.data?.label||Ef.id;let hg=!1;try{hg=wl(pg)}catch{hg=!1}Jf=[...El(pg).length>0?[]:[{label:"Add Flow",action:()=>va(pg)}],{label:hg?"Make Private":"Make Public",action:async()=>{try{const yg=wl(pg);await Ma(pg,!yg)}catch(yg){console.error("Error toggling agent public status:",yg)}}}];break}case"decisionNode":Zf="Delete Decision";break;case"decision":Zf="Delete Decision";break;case"activity":Zf="Delete Activity";break;case"startEvent":Zf="Delete Start Event";break;case"endEvent":Zf="Delete End Event";break}ya({type:"node",x:pp,y:hp,onClose:()=>ya(null),onDelete:()=>ma(dp),deleteLabel:Zf,addOptions:Jf})},[ba,ma,ya,va,Ma,wl,El]);return{handleCanvasRightClick:Sl,handleSwimlaneRightClick:Cl,handleNodeRightClick:Mc}},validationSchema$1=create$3().shape({name:create$6().required("Flow's Name is required").max(50,"Flow's Name must be less than 50 characters").matches(/^[a-zA-Z0-9_-]+$/,"Flow's Name cannot contain special characters or spaces")}),AddFlowModal=({onClose:ya,onSubmit:ma})=>{const ba=useAutoFocus(),va=useOutsideClickHandler(ya);return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:""},onSubmit:Ma=>{ma(Ma.name),ya()},validationSchema:validationSchema$1,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:va,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Flow"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ya})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(Kht,{name:"name",placeholder:"Flow Name",ref:ba})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:ya})]})})})},AgentFlowMenu=({menu:ya})=>{const{x:ma,y:ba,onClose:va,onDelete:Ma,deleteLabel:wl,addOptions:El}=ya;return jsxRuntimeExports.jsxs("div",{className:"context-menu fixed bg-white p-1 rounded-lg shadow-lg z-[999]",style:{top:ba,left:ma},onMouseLeave:va,children:[El&&El.map((Sl,Cl)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-md transition-colors duration-100 hover:bg-gray-100 cursor-pointer",onClick:()=>{Sl.action(),va()},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon bg-agent-bg text-agent-icon",children:jsxRuntimeExports.jsx(Icon,{icon:Sl.label==="Public"?"mdi:earth":icons.agentFlow})}),Sl.label]},Cl)),Ma&&jsxRuntimeExports.jsxs("div",{className:"context-menu-item",onClick:()=>{Ma(),console.log("onDelete",Ma),va()},children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon text-del-icon bg-del-bg",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete})}),wl]})]})},nodeTypes={swimlane:SwimlaneNode,activity:ActivityTaskNode,startEvent:ActivityTaskNode,endEvent:ActivityTaskNode,decision:DecisionGatewayNode,decisionNode:DecisionNode,agent:Agent},SwimlaneDiagram=({flowId:ya,zoomOnScroll:ma=!0,isInteractive:ba=!0})=>{const{isEditable:va}=useTeams(),Ma=va&&ba,{fitView:wl}=useReactFlow(),{nodes:El,edges:Sl,contextMenu:Cl,selectedNodes:Mc,selectedSwimlanes:dp,setContextMenu:pp,onNodesChange:hp,onEdgesChange:Ef,onConnect:Zf,deleteNode:Jf,addNodeToSwimlane:pg,addNewSwimlane:hg,updateConditionLabel:mg,handleNodeClick:gg,handleSwimlaneClick:yg,handleCanvasClick:ay,deleteEdge:ly,deleteCondition:cy,updateNodeName:q1,isAddFlowModalOpen:r0,openAddFlowModal:uE,closeAddFlowModal:V1,isAddAgentModalOpen:H1,openAddAgentModal:O_,closeAddAgentModal:aE,isAddDecisionModalOpen:P_,openAddDecisionModal:M_,closeAddDecisionModal:sN}=useSwimlaneState({flowId:ya}),{handleCanvasRightClick:AF,handleSwimlaneRightClick:$4,handleNodeRightClick:cN}=useSwimlaneHandlers({setContextMenu:pp,deleteNode:Jf,nodes:El,openAddFlowModal:uE}),R4=El.map(uN=>{let uee;return uN.type==="swimlane"&&(uee=()=>{const $pe=El.filter(Ppe=>Ppe.parentId===uN.id);return $pe.length===0?!1:$pe.some(Ppe=>!Sl.some(Vpt=>Vpt.source===Ppe.id||Vpt.target===Ppe.id))}),{...uN,data:{...uN.data,isEditable:Ma,swimlaneId:uN.id,onAddNode:pg,onSwimlaneRightClick:$4,onNodeRightClick:cN,onUpdateCondition:mg,onDeleteCondition:cy,nodeId:uN.id,isSelected:uN.type==="swimlane"?dp.has(uN.id):Mc.has(uN.id),onNodeClick:gg,onSwimlaneClick:yg,getEdgesForNode:$pe=>Sl.filter(Ppe=>Ppe.source===$pe||Ppe.target===$pe),onDeleteEdge:ly,onUpdateNodeName:q1,hasUnconnectedChildren:uee}}}),k4=Sl.map(uN=>({...uN,data:{...uN.data,onDelete:ly,getConditionByHandle:(uee,$pe)=>{const Ppe=El.find(Gpt=>Gpt.id===uee);if(!Ppe||Ppe.type!=="decision")return null;const Vpt=(Ppe.data?.conditions||[]).find(Gpt=>Gpt.id===$pe);return Vpt?{nodeId:uee,condition:Vpt}:null},onUpdateCondition:mg,onDeleteCondition:cy}})),AQ=reactExports.useRef(!1);return reactExports.useEffect(()=>{AQ.current||setTimeout(()=>{wl(),AQ.current=!0},200)},[wl]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full agentic-flow",children:[jsxRuntimeExports.jsxs(index$4,{onPaneClick:Ma?ay:void 0,nodes:R4,edges:k4,onNodesChange:Ma?hp:void 0,onEdgesChange:Ma?Ef:void 0,onConnect:Ma?Zf:void 0,onContextMenu:Ma?AF:uN=>uN.preventDefault(),fitView:!0,nodeTypes,nodesDraggable:Ma,zoomOnScroll:ma,defaultEdgeOptions:{type:"default",style:{stroke:"#FFFFFF99"},markerEnd:{type:MarkerType.ArrowClosed,color:"#FFFFFF99"},animated:!1},children:[jsxRuntimeExports.jsx(Background,{}),Cl&&Cl.type==="canvas"&&jsxRuntimeExports.jsx(AgentMenu,{menu:{top:Cl.y,left:Cl.x},setModal:uN=>uN==="Decision"?M_():O_(),closeHandler:Cl.onClose}),Cl&&Cl.type!=="canvas"&&jsxRuntimeExports.jsx(AgentFlowMenu,{menu:Cl})]}),Ma&&H1&&jsxRuntimeExports.jsx(AddEntity,{closeHandler:aE,type:"Agent"}),Ma&&P_&&jsxRuntimeExports.jsx(AddDecision,{closeHandler:sN}),Ma&&r0&&jsxRuntimeExports.jsx(AddFlowModal,{onClose:V1,onSubmit:hg})]})},AgentFlow=()=>{const{moduleName:ya}=useParams(),ma=useAppStore(dp=>dp.selectedAgentId),ba=useAppStore(dp=>dp.selectedDecisionId),va=useAppStore(dp=>dp.selectedAttributeForm),{getAgents:Ma,getAgentFlows:wl}=useAgent(),El=useAppStore(dp=>dp.setSelectedAgentId),Cl=useLocation()?.state?.focusAgentId,{zoomHandler:Mc}=useZoomHandler();return reactExports.useEffect(()=>{const dp=Ma();if(Cl){dp.includes(Cl)?(El(Cl),setTimeout(()=>{Mc(Cl)},300)):El(null);return}if(dp.length>0){const pp=dp.filter(Zf=>wl(Zf).length>0),hp=dp.filter(Zf=>wl(Zf).length===0),Ef=pp.length>0?pp[0]:hp[0];Ef?(El(Ef),setTimeout(()=>{Mc(Ef)},300)):El(null)}else El(null)},[Cl,ya]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full flex overflow-hidden",children:[jsxRuntimeExports.jsx(motion.div,{className:"h-full",animate:{width:ma||ba||va?"60%":"100%"},transition:{duration:.3,ease:"easeInOut"},children:jsxRuntimeExports.jsx(SwimlaneDiagram,{})}),jsxRuntimeExports.jsx(AnimatePresence,{children:(ma||ba||va)&&jsxRuntimeExports.jsx(motion.div,{className:"w-2/5 shrink-0 h-full overflow-auto border-l border-table-header bg-primary",initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.3,ease:"easeInOut"},children:va?jsxRuntimeExports.jsx(AttributeFormSidebar,{}):ma?jsxRuntimeExports.jsx(AgentForm,{agentId:ma}):jsxRuntimeExports.jsx(DecisionForm,{decisionId:ba})})})]})};function NoModule(){const[ya,ma]=reactExports.useState(""),[ba,va]=reactExports.useState(!1),Ma=useNavigate(),{githubOrg:wl,teamName:El}=useParams(),Sl=useAppStore(hp=>hp.incrementModuleDbChangeCount),Cl=useAppStore(hp=>hp.user),Mc=isMarketplaceRepo(El||"",wl),dp=async()=>{if(!(!ya||!El)){va(!0);try{const hp=ya.includes(".")?ya:`${El}.${ya}`;try{addModule$1(hp)}catch(Ef){console.warn("Failed to load new module into runtime immediately:",Ef)}await saveModuleToGit(El,hp,fetchModule$2(hp).toString(),`Initial module creation: ${hp}`,Cl.GitHub.Username,Cl.GitHub.Token,Mc),Sl(),Ma(`/design/data-model/${wl}/${El}/${hp}`)}catch(hp){console.error("Failed to create module:",hp)}finally{va(!1)}}},pp=hp=>{hp.key==="Enter"&&dp()};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center justify-center w-full h-full text-white bg-primary",children:[jsxRuntimeExports.jsx("h2",{className:"text-2xl font-bold mb-4",children:"No Module Found"}),jsxRuntimeExports.jsx("p",{className:"mb-6 text-gray-400",children:"There are no modules in this repository. Would you like to create one?"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-3 w-full max-w-md",children:[jsxRuntimeExports.jsx("input",{type:"text",value:ya,onChange:hp=>ma(hp.target.value),onKeyDown:pp,placeholder:"Module Name (e.g. app.core)",className:"flex-1 px-4 py-2 rounded bg-secondary border border-border-color focus:outline-none focus:border-blue text-white placeholder-gray-500",autoFocus:!0,disabled:ba}),jsxRuntimeExports.jsx("button",{onClick:dp,disabled:!ya||ba,className:"px-6 py-2 bg-blue hover:bg-blue-600 rounded font-medium disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:ba?"Creating...":"Create"})]})]})}const GenerateAppModal=({closeHandler:ya,initialPrompt:ma})=>{const[ba,va]=reactExports.useState([]),[Ma,wl]=reactExports.useState(ma||""),[El,Sl]=reactExports.useState(!1),Cl=reactExports.useRef(null),Mc=useNavigate(),dp=useLocation(),{user:pp,addConversationMessage:hp,updateConversationStatus:Ef,addBackgroundGeneration:Zf,updateBackgroundGeneration:Jf,removeBackgroundGeneration:pg}=useAppStore(),hg=useOutsideClickHandler(ya),[mg,gg]=reactExports.useState(null);reactExports.useEffect(()=>{Cl.current?.scrollIntoView({behavior:"smooth"})},[ba]),reactExports.useEffect(()=>{loadAgentCraftModule()},[]),reactExports.useEffect(()=>{const V1=dp.state;if(V1?.restoreGeneration&&V1?.generationId){const H1=useAppStore.getState().backgroundGenerations[V1.generationId];if(H1){gg(H1.id),Sl(H1.status==="in-progress");const O_=[{id:`msg-user-${H1.id}`,type:"user",content:H1.userPrompt,timestamp:H1.startedAt},{id:`msg-assistant-${H1.id}`,type:"assistant",content:H1.moduleName?`Generated module: ${H1.moduleName}`:H1.currentStep,timestamp:H1.startedAt,metadata:{steps:H1.steps}}];va(O_)}}else if(V1?.resumeConversation&&V1?.appId){const H1=useAppStore.getState().getConversationHistory(V1.appId);if(H1){const O_=H1.map(aE=>({id:aE.id,type:aE.role,content:aE.content,timestamp:new Date(aE.timestamp)}));va(O_)}}},[dp]);const yg=V1=>{const H1={...V1,id:`msg-${Date.now()}`,timestamp:new Date};return va(O_=>[...O_,H1]),H1},ay=(V1,H1)=>{va(O_=>O_.map(aE=>aE.id===V1?{...aE,...H1}:aE))},ly=(V1,H1,O_)=>{va(aE=>aE.map(P_=>P_.id===V1?{...P_,metadata:{...P_.metadata,steps:P_.metadata?.steps?.map(M_=>M_.id===H1?{...M_,status:O_}:M_)}}:P_))},cy=V1=>{if(typeof V1=="string"){const H1=V1.match(/module\s+(\w+)/);return H1?H1[1]:"GeneratedApp"}return V1?.moduleName||"GeneratedApp"},q1=async()=>{if(!Ma.trim()||El)return;const V1=Ma.trim();wl(""),Sl(!0),yg({type:"user",content:V1});const H1=`gen-${Date.now()}`;gg(H1);const O_=[{id:"analyzing",label:"Analyzing requirements",status:"in-progress"},{id:"generating",label:"Generating code",status:"pending"},{id:"creating",label:"Creating workspace",status:"pending"},{id:"deploying",label:"Setting up environment",status:"pending"}],aE=yg({type:"assistant",content:"Starting app generation...",metadata:{steps:O_}}),P_=pp?.GitHub?.Org||"default-org";Zf({id:H1,appId:"",userPrompt:V1,status:"in-progress",currentStep:"Analyzing requirements",steps:O_,startedAt:new Date,githubOrg:P_});try{const M_=await executeStatement(`{AgentCraft/generateAgentlang {requirements "${V1.replace(/"/g,'\\"')}"}}`);ly(aE.id,"analyzing","completed"),ly(aE.id,"generating","in-progress"),Jf(H1,{currentStep:"Generating code",steps:O_.map($4=>$4.id==="analyzing"?{...$4,status:"completed"}:$4.id==="generating"?{...$4,status:"in-progress"}:$4)});const sN=cy(M_);ly(aE.id,"generating","completed"),ly(aE.id,"creating","in-progress"),ay(aE.id,{content:`Generated module: ${sN}`});const AF=`${P_}/${sN}`;Jf(H1,{appId:AF,moduleName:sN,currentStep:"Creating workspace",steps:O_.map($4=>$4.id==="generating"?{...$4,status:"completed"}:$4.id==="creating"?{...$4,status:"in-progress"}:$4)}),ba.forEach($4=>{hp(AF,{role:$4.type,content:$4.content})}),hp(AF,{role:"user",content:V1}),hp(AF,{role:"assistant",content:`Successfully generated ${sN}`}),Ef(AF,"completed");try{console.log("📝 Generating architecture metadata...");const $4=await executeStatement(`{AgentCraft/requirementDistiller {message "${V1.replace(/"/g,'\\"')}"}}`);let cN={};try{const $pe=$4.match(/\{[\s\S]*\}/);$pe&&(cN=JSON.parse($pe[0]))}catch{console.warn("Could not parse requirements, using fallback"),cN={moduleName:sN,dataModelRequest:V1,workflowRequest:V1,agentRequest:V1}}const R4={moduleName:sN,dataModelRequest:cN.dataModelRequest||V1,workflowRequest:cN.workflowRequest||V1,agentRequest:cN.agentRequest||V1,generatedCode:M_},AQ=`{AgentCraft/GenerateMetadata {message: "${JSON.stringify(R4).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"}}`,uN=await executeStatement(AQ);let uee=uN;try{const $pe=uN.match(/\{[\s\S]*\}/);$pe&&(uee=JSON.parse($pe[0]).content||uN)}catch{console.warn("Using raw metadata result")}if(pp?.GitHub?.Username&&pp?.GitHub?.Token)try{const $pe=typeof uee=="string"?uee:JSON.stringify(uee,null,2);await saveMetadataFileToGit(sN.toLowerCase(),$pe,"Create architecture metadata",pp.GitHub.Username,pp.GitHub.Token),console.log("✅ Architecture metadata saved to .agentlang.metadata.json")}catch($pe){console.error("Failed to save architecture metadata:",$pe)}else console.warn("GitHub credentials not available, skipping metadata save")}catch($4){console.error("Failed to generate architecture metadata:",$4)}ly(aE.id,"creating","completed"),ly(aE.id,"deploying","completed"),ay(aE.id,{content:`Successfully created ${sN}! Opening workspace...`,metadata:{steps:aE.metadata?.steps?.map($4=>({...$4,status:"completed"})),generatedApp:{name:sN,moduleName:sN,githubOrg:P_}}}),Jf(H1,{status:"completed",currentStep:"Completed",completedAt:new Date,steps:O_.map($4=>({...$4,status:"completed"}))}),Sl(!1),setTimeout(()=>{Mc(`/design/data-model/${P_}/${sN}/${sN}`,{state:{from:"/generate",generationContext:{appId:AF,hasHistory:!0}}}),pg(H1),ya()},1e3)}catch(M_){console.error("Generation error:",M_);const sN=aE.metadata?.steps?.find($4=>$4.status==="in-progress"),AF=M_.message||"Failed to generate app. Please try again or provide more details.";ay(aE.id,{content:AF,metadata:{...aE.metadata,steps:aE.metadata?.steps?.map($4=>$4.status==="in-progress"?{...$4,status:"error"}:$4),error:{message:AF,stepId:sN?.id||"generating",retryCount:0}}}),Jf(H1,{status:"error",error:AF,completedAt:new Date,steps:O_.map($4=>$4.status==="in-progress"?{...$4,status:"error"}:$4)}),Sl(!1)}},r0=V1=>{const H1=ba.findIndex(aE=>aE.id===V1),O_=ba.slice(0,H1).reverse().find(aE=>aE.type==="user");O_&&wl(O_.content)},uE=V1=>{V1.key==="Enter"&&!V1.shiftKey&&(V1.preventDefault(),q1())};return jsxRuntimeExports.jsx("div",{className:"modal-container",onClick:ya,children:jsxRuntimeExports.jsxs("div",{ref:hg,className:"modal-content max-w-4xl w-full h-[80vh] flex flex-col",onClick:V1=>V1.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-6 h-6"}),jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Generate Application"}),El&&jsxRuntimeExports.jsxs("div",{className:"text-xs text-gray-400 flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full animate-pulse"}),"Generating in background..."]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[El&&jsxRuntimeExports.jsx("div",{title:"Minimize (generation continues in background)",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"cursor-pointer hover:opacity-70 rotate-180",onClick:ya})}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer hover:opacity-70",onClick:ya})]})]}),jsxRuntimeExports.jsxs("div",{className:"modal-body flex-1 overflow-y-auto space-y-4",children:[ba.length===0&&jsxRuntimeExports.jsxs("div",{className:"text-center text-gray-400 mt-8",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-16 h-16 mx-auto mb-4 opacity-50"}),jsxRuntimeExports.jsx("p",{className:"text-lg mb-2",children:"What would you like to build?"}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:"Example: “Build a todo app with priority levels and due dates”"}),jsxRuntimeExports.jsx("p",{className:"text-sm mt-1",children:"or “Create a CRM system with contacts, deals, and tasks”"})]}),ba.map(V1=>jsxRuntimeExports.jsx("div",{className:`flex ${V1.type==="user"?"justify-end":"justify-start"}`,children:jsxRuntimeExports.jsxs("div",{className:`max-w-[80%] rounded-lg p-4 ${V1.type==="user"?"bg-blue-600 text-white":"bg-gray-700 text-gray-100"}`,children:[jsxRuntimeExports.jsx("div",{className:"whitespace-pre-wrap",children:V1.content}),V1.metadata?.steps&&jsxRuntimeExports.jsx("div",{className:"mt-4 space-y-2",children:V1.metadata.steps.map(H1=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[H1.status==="completed"&&jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4 text-green-400"}),H1.status==="in-progress"&&jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-blue-400 border-t-transparent rounded-full animate-spin"}),H1.status==="error"&&jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-4 h-4 text-red-400"}),H1.status==="pending"&&jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-gray-500 rounded-full"}),jsxRuntimeExports.jsx("span",{children:H1.label})]},H1.id))}),V1.metadata?.error&&jsxRuntimeExports.jsxs("div",{className:"mt-4 p-3 bg-red-900/30 border border-red-700 rounded",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-red-300",children:V1.metadata.error.message}),jsxRuntimeExports.jsx("button",{className:"mt-2 text-xs text-blue-300 hover:underline",onClick:()=>r0(V1.id),children:"Try again"})]})]})},V1.id)),jsxRuntimeExports.jsx("div",{ref:Cl})]}),jsxRuntimeExports.jsx("div",{className:"modal-footer border-t border-gray-700 pt-4",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 w-full",children:[jsxRuntimeExports.jsx("input",{type:"text",value:Ma,onChange:V1=>wl(V1.target.value),onKeyPress:uE,placeholder:"Describe your application or provide more details...",className:"flex-1 px-4 py-2 bg-gray-800 border border-gray-600 rounded-lg focus:outline-none focus:border-blue-500 text-white",disabled:El}),jsxRuntimeExports.jsx("button",{onClick:q1,disabled:!Ma.trim()||El,className:"px-6 py-2 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-600 disabled:cursor-not-allowed rounded-lg transition-colors flex items-center gap-2",children:El?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:icons.loading,className:"w-5 h-5"}),"Generating..."]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:icons.send,className:"w-5 h-5"}),"Send"]})})]})})]})})},Generate=()=>{const ya=useNavigate(),ba=useLocation().state?.prompt,va=()=>{ya("/design/dashboard")};return jsxRuntimeExports.jsx(GenerateAppModal,{closeHandler:va,initialPrompt:ba})},Chatbot=()=>{const[ya,ma]=reactExports.useState(""),[ba,va]=reactExports.useState(!1),[Ma,wl]=reactExports.useState(!1),El=reactExports.useRef(null),Sl=Mc=>{Mc.preventDefault(),ya.trim()&&(console.log("Submitted:",ya),va(!0),setTimeout(()=>{va(!1),ma("")},1e3))},Cl=()=>{wl(!0)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fixed bottom-8 left-0 right-0 flex justify-center",children:jsxRuntimeExports.jsx("div",{className:"w-full max-w-3xl mx-4",children:jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-2xl overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{ref:El,value:ya,onChange:Mc=>ma(Mc.target.value),disabled:ba,placeholder:"What would you like to automate today?",onKeyDown:Mc=>{Mc.key==="Enter"&&!Mc.shiftKey&&(Mc.preventDefault(),Sl(Mc))},rows:2,className:"w-full min-h-[72px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-3 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:Cl,className:"p-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors",title:"Upload file",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:Mc=>Sl(Mc),disabled:ba||!ya.trim(),className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Send",children:ba?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}):jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})})})}),Ma&&jsxRuntimeExports.jsx(DocumentUploader,{closeHandler:()=>wl(!1)})]})},Header$1=({search:ya,setSearch:ma,count:ba})=>jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-2 sm:gap-3 md:gap-4 lg:gap-6 items-center grid-cols-2 lg:grid-cols-12 px-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 col-span-1 lg:col-span-3 row-start-1 col-start-1 lg:row-start-1 lg:col-start-1",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.missionControl,className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-2",children:["Mission Control",jsxRuntimeExports.jsxs("span",{children:["(",ba,")"]})]})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left text-xs sm:text-sm line-clamp-1",children:"Search and manage your missions."})]}),jsxRuntimeExports.jsxs("div",{className:"col-span-2 lg:col-span-7 row-start-2 col-start-1 lg:row-start-1 lg:col-start-4 flex gap-2 items-center",children:[jsxRuntimeExports.jsx(DashboardHistoryNavigationButtons,{}),jsxRuntimeExports.jsx("input",{type:"text",placeholder:"Search",value:ya,onChange:va=>ma(va.target.value),className:"w-full text-sm sm:text-base"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),MissionCard=({Name:ya,Description:ma,Version:ba,Tags:va,GitHubOrg:Ma,GitHubRepo:wl,isPin:El,status:Sl,LastUpdatedAt:Cl,onClick:Mc})=>{const dp=pp=>{if(!pp)return"";if(pp.toLowerCase().includes("ago"))return`Updated ${pp}`;const hp=getDate(pp);return!hp||hp.startsWith("NaN")?pp:`Updated ${hp}`};return jsxRuntimeExports.jsxs("div",{className:"hf-style-card group cursor-pointer",onClick:Mc,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("h3",{className:"text-base font-semibold text-white mb-1 line-clamp-1 group-hover:text-blue-400 transition-colors",children:ya}),ma?jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 line-clamp-2 mb-2",children:ma}):jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 line-clamp-2 mb-2 opacity-0",children:"No description available"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 ml-2 shrink-0",children:[jsxRuntimeExports.jsx(TooltipComponent,{text:"Delete",children:jsxRuntimeExports.jsx("button",{onClick:pp=>pp.stopPropagation(),className:"p-1.5 rounded-md text-gray-500 hover:text-red-400 hover:bg-red-400/10 transition-all opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:trash-can-outline",className:"w-4 h-4"})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:El?"Remove from favorites":"Mark as favorite",children:jsxRuntimeExports.jsx("button",{onClick:pp=>pp.stopPropagation(),className:classNames("p-1.5 rounded-md transition-all cursor-pointer",El?"text-gray-400 hover:bg-white/5":"text-gray-500 hover:text-gray-400 hover:bg-white/5 opacity-0 group-hover:opacity-100"),children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:star",className:classNames("w-4 h-4",El&&"fill-current")})})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-3",children:[ba&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:["v",ba]}),va&&va.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[va.slice(0,2).map((pp,hp)=>jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:pp},hp)),va.length>2&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium text-gray-500",children:["+",va.length-2]})]}),!ba&&(!va||va.length===0)&&jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:Sl==="active"?"Active":"Inactive"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between text-xs text-gray-500 pt-3 border-t border-gray-700/50",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:github",className:"w-4 h-4"}),jsxRuntimeExports.jsxs("span",{className:"line-clamp-1 leading-none!",children:[Ma,"/",wl]})]}),jsxRuntimeExports.jsx("span",{children:dp(Cl)})]})})]})},MissionControl=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(""),[va]=reactExports.useState([{Name:"TicketManager",Description:"Manage and track customer support tickets with automated routing and escalation workflows.",Version:"0.0.1",Tags:["Active"],GitHubOrg:"agentlang-hub",GitHubRepo:"ticketmanager",isPin:!0,status:"active",LastUpdatedAt:"2 hours ago"},{Name:"EmailManager",Description:"Handle email campaigns, automated responses, and customer communication workflows.",Version:"0.0.1",Tags:["Active"],GitHubOrg:"agentlang-hub",GitHubRepo:"emailmanager",isPin:!1,status:"active",LastUpdatedAt:"1 day ago"}]),Ma=reactExports.useMemo(()=>{if(!ma.trim())return va;const wl=ma.toLowerCase();return va.filter(El=>El.Name.toLowerCase().includes(wl)||El.Description?.toLowerCase().includes(wl)||El.Tags?.some(Sl=>Sl.toLowerCase().includes(wl))||El.GitHubOrg.toLowerCase().includes(wl)||El.GitHubRepo.toLowerCase().includes(wl))},[va,ma]);return jsxRuntimeExports.jsxs("div",{className:"dashboard-content relative",children:[jsxRuntimeExports.jsxs("div",{className:"overflow-auto flex flex-col gap-4 scrollbar-none",children:[jsxRuntimeExports.jsx(Header$1,{search:ma,setSearch:ba,count:va.length}),jsxRuntimeExports.jsx("div",{className:"px-3",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsx("div",{className:"flex items-end gap-2 text-base sm:text-sm pl-2 font-semibold text-secondary-font",children:"Missions"}),jsxRuntimeExports.jsx("div",{className:"dashboard-grid",children:Ma.map((wl,El)=>jsxRuntimeExports.jsx(MissionCard,{...wl,onClick:()=>ya(`/mission-control/${wl.Name}`)},El))})]})})})]}),jsxRuntimeExports.jsx("div",{className:"fixed bottom-6 right-6 z-50",children:jsxRuntimeExports.jsx(Chatbot,{})})]})},SAMPLE_TICKETS=[{id:"DEV-2492",title:"This card does not scroll, but when you open the card editor, you can see there is a lot of content in...",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 12"},{id:"DEV-2493",title:"Old hub chat thread messages showed up in wrong order",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 13"},{id:"DEV-2295",title:"Crash after the two selected Hubs after a move issue",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Dec 14"},{id:"DEV-2582",title:"When cards are small the edit icon in the card header disappears",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 23"},{id:"DEV-2330",title:"Wrong google account session creates web link of google account - confusing for users because th...",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Dec 17"},{id:"DEV-2472",title:"Refreshing an RSS and query block resizes the card but it shouldn't",type:"Bug",project:"Bugs, Improvements, & Technical Debt",ownerInitials:"MC",date:"Jan 11"}],TicketList=({title:ya="Ticket Manager"})=>{const[ma,ba]=reactExports.useState(null),[va,Ma]=reactExports.useState({}),wl=Cl=>{ba(Cl)},El=()=>{ba(null)},Sl=(Cl,Mc,dp)=>{if(Cl==="Labels"){Ma(pp=>{const hp=pp[dp]??[],Zf=hp.includes(Mc)?hp.filter(Jf=>Jf!==Mc):[...hp,Mc];return{...pp,[dp]:Zf}});return}};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full w-full relative",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between gap-2 py-4 px-6 border-b border-border-color",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon !text-xl",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:view-list-outline"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h1",{className:"text-xl font-semibold text-white leading-tight",children:ya}),jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"Review and manage your tickets in a focused list view."})]})]})}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto px-6 py-4",children:jsxRuntimeExports.jsxs("div",{className:"w-full rounded-lg border border-border-color bg-primary/40",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center px-4 py-3 text-sm text-secondary-font border-b border-border-color bg-primary/60",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 w-40 shrink-0",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:chart-line",className:"w-3.5 h-3.5"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"ID"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-w-0",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Title"})}),jsxRuntimeExports.jsx("div",{className:"w-20 shrink-0 text-center",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Type"})}),jsxRuntimeExports.jsx("div",{className:"w-64 shrink-0",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Project"})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-center",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Owner"})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-right",children:jsxRuntimeExports.jsx("span",{className:"font-medium text-sm",children:"Date"})})]}),SAMPLE_TICKETS.map(Cl=>jsxRuntimeExports.jsxs(Root2$1,{children:[jsxRuntimeExports.jsx(Trigger$1,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{className:"flex items-center px-4 py-3 text-sm text-secondary-font hover:bg-white/5 cursor-pointer border-b border-border-color/60 last:border-b-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 w-40 shrink-0",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:signal-cellular-outline",className:"w-3.5 h-3.5 text-gray-400"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-gray-200 text-sm",children:Cl.id})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-w-0 pr-4",children:jsxRuntimeExports.jsx("p",{className:"text-gray-200 truncate text-sm",children:Cl.title})}),jsxRuntimeExports.jsx("div",{className:"w-20 shrink-0 flex justify-center",children:jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 text-red-400 border border-red-500/30",children:[jsxRuntimeExports.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),jsxRuntimeExports.jsx("span",{className:"text-[11px] font-medium",children:Cl.type})]})}),jsxRuntimeExports.jsx("div",{className:"w-64 shrink-0 pr-4",children:jsxRuntimeExports.jsx("span",{className:"inline-flex items-center gap-2 px-2 py-1 rounded-full bg-gray-800/60 text-gray-200 border border-gray-700",children:jsxRuntimeExports.jsx("span",{className:"text-[11px] truncate max-w-[180px]",children:Cl.project})})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 flex justify-center",children:jsxRuntimeExports.jsx("div",{className:"w-7 h-7 rounded-full bg-pink-500/10 border border-pink-500/40 flex items-center justify-center text-[10px] font-semibold text-pink-300",children:Cl.ownerInitials})}),jsxRuntimeExports.jsx("div",{className:"w-16 shrink-0 text-right text-gray-400",children:Cl.date})]})}),jsxRuntimeExports.jsx(Portal2$1,{children:jsxRuntimeExports.jsx(Content2$1,{className:"z-50 min-w-[220px] rounded-md border border-border-color bg-primary shadow-lg py-1 text-xs text-secondary-font",children:[{label:"Status",icon:"mdi:circle-outline",submenu:["To Do","In Progress","Done","Blocked"]},{label:"Assignee",icon:"mdi:account-outline",submenu:["Unassigned","Danial I.","John D.","Sarah M.","Mike R."]},{label:"Priority",icon:"mdi:signal-cellular-3",submenu:["Highest","High","Medium","Low","Lowest"]},{label:"Labels",icon:"mdi:label-outline",submenu:["Bug","Feature","Enhancement","Documentation","Testing"]}].map(Mc=>jsxRuntimeExports.jsxs("div",{className:"relative",onMouseEnter:()=>wl(Mc.label),onMouseLeave:El,children:[jsxRuntimeExports.jsxs(Item2$1,{className:"flex w-full items-center justify-between gap-3 px-3 py-1.5 hover:bg-white/5 outline-none cursor-pointer",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:Mc.icon,className:"w-3.5 h-3.5"}),jsxRuntimeExports.jsx("span",{className:"text-[11px] text-gray-200",children:Mc.label})]}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:chevron-right",className:"w-3 h-3 text-gray-400"})]}),ma===Mc.label&&jsxRuntimeExports.jsx("div",{className:"absolute left-full top-0 ml-1 min-w-[160px] rounded-md border border-border-color bg-primary shadow-lg py-1 text-xs text-secondary-font z-50",children:Mc.submenu.map(dp=>{const pp=Mc.label==="Labels",hp=pp&&(va[Cl.id]??[]).includes(dp);return jsxRuntimeExports.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 hover:bg-white/5 text-left",onClick:()=>Sl(Mc.label,dp,Cl.id),children:[pp&&jsxRuntimeExports.jsx("span",{className:"flex items-center justify-center w-3.5 h-3.5 rounded-[3px] border border-border-color bg-primary/60",children:hp&&jsxRuntimeExports.jsx(Icon,{icon:"mdi:check",className:"w-2.5 h-2.5 text-gray-200"})}),jsxRuntimeExports.jsx("span",{className:"text-[11px] text-gray-200",children:dp})]},dp)})})]},Mc.label))})})]},Cl.id))]})})]})},WIZARD_STEPS=[{id:1,label:"Input",description:"Provide instructions and upload files"},{id:2,label:"Requirements",description:"Review and refine the requirements"},{id:3,label:"Architecture",description:"Review and refine the architecture"},{id:4,label:"Blueprint",description:"Preview the generated data model and workflow"},{id:5,label:"Code",description:"Review the generated code"}],WizardStepper=({currentStep:ya,onStepClick:ma})=>{const ba=va=>va<ya?"completed":va===ya?"active":"pending";return jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center w-full py-6",children:WIZARD_STEPS.map((va,Ma)=>{const wl=ba(va.id),El=Ma===WIZARD_STEPS.length-1;return jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsxs("div",{className:`flex items-center gap-3 cursor-pointer group ${ma?"hover:opacity-80":""}`,onClick:()=>ma?.(va.id),children:[jsxRuntimeExports.jsx("div",{className:`
21655
21655
  w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold
21656
21656
  transition-all duration-300
21657
21657
  ${wl==="completed"?"bg-blue text-white":wl==="active"?"bg-blue text-white ring-4 ring-blue/30":"bg-secondary text-secondary-font border border-border-color"}
@@ -21661,7 +21661,7 @@ Please report this to https://github.com/markedjs/marked.`,ya){let va="<p>An err
21661
21661
  `,children:va.label})]}),!El&&jsxRuntimeExports.jsx("div",{className:`
21662
21662
  w-16 h-0.5 mx-4 transition-colors duration-300
21663
21663
  ${wl==="completed"?"bg-blue":"bg-border-color"}
21664
- `})]},va.id)})})},PREVIEW_WIDTH_PERCENT=14,GAP=12,WizardCarousel=({currentStep:ya,totalSteps:ma,children:ba,onStepChange:va,canNavigateToStep:Ma})=>{const wl=ya>1?ya-1:null,El=ya<ma?ya+1:null,Sl=reactExports.useCallback(dp=>dp===null?!1:Ma?Ma(dp):!0,[Ma]),Cl=dp=>{Sl(dp)&&va(dp)},Mc=reactExports.useCallback(dp=>{dp.key==="ArrowLeft"&&wl!==null&&Sl(wl)?va(wl):dp.key==="ArrowRight"&&El!==null&&Sl(El)&&va(El)},[wl,El,Sl,va]);return reactExports.useEffect(()=>(window.addEventListener("keydown",Mc),()=>window.removeEventListener("keydown",Mc)),[Mc]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full flex flex-col overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"relative flex-1 flex items-center justify-center overflow-hidden px-4 py-5",children:[wl!==null&&jsxRuntimeExports.jsx("div",{className:`absolute left-0 pointer-events-auto ${Sl(wl)?"cursor-pointer":"cursor-not-allowed"}`,onClick:()=>Cl(wl),style:{width:`${PREVIEW_WIDTH_PERCENT}%`,top:"28px",bottom:"28px",zIndex:1},children:jsxRuntimeExports.jsx("div",{className:"h-full w-full rounded-2xl border border-border-color/40 bg-primary"})}),jsxRuntimeExports.jsx("div",{className:"relative z-10 shrink-0 rounded-2xl border border-border-color bg-primary overflow-hidden",style:{width:wl&&El?`calc(100% - ${PREVIEW_WIDTH_PERCENT*2}% - ${GAP*2}px)`:wl||El?`calc(100% - ${PREVIEW_WIDTH_PERCENT}% - ${GAP}px)`:"100%",marginLeft:wl?`calc(${PREVIEW_WIDTH_PERCENT}% + ${GAP}px)`:"0",marginRight:El?`calc(${PREVIEW_WIDTH_PERCENT}% + ${GAP}px)`:"0",height:"calc(100% - 40px)",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(0, 0, 0, 0.2)"},children:ba[ya-1]}),El!==null&&jsxRuntimeExports.jsx("div",{className:`absolute right-0 pointer-events-auto ${Sl(El)?"cursor-pointer":"cursor-not-allowed"}`,onClick:()=>Cl(El),style:{width:`${PREVIEW_WIDTH_PERCENT}%`,top:"28px",bottom:"28px",zIndex:1},children:jsxRuntimeExports.jsx("div",{className:"h-full w-full rounded-2xl border border-border-color/40 bg-primary"})})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center gap-2 pb-4",children:Array.from({length:ma},(dp,pp)=>pp+1).map(dp=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Sl(dp)&&va(dp),className:`rounded-full transition-all duration-300 ${dp===ya?"w-2.5 h-2.5 bg-blue":Sl(dp)?"w-2 h-2 bg-secondary-font/50 hover:bg-secondary-font cursor-pointer":"w-2 h-2 bg-secondary-font/20 cursor-not-allowed"}`,"aria-label":`Go to step ${dp}`},dp))})]})},WizardCarousel$1=reactExports.memo(WizardCarousel),InputStep=({instructions:ya,onInstructionsChange:ma,onFilesChange:ba,onContinue:va})=>{const[Ma,wl]=reactExports.useState(!1),El=reactExports.useRef(null),[Sl,Cl]=reactExports.useState(null),Mc=reactExports.useRef(null);reactExports.useEffect(()=>{if(El.current)return;const Ef=new Uppy({debug:!1,autoProceed:!1,restrictions:{maxNumberOfFiles:10}});return Ef.on("file-added",()=>{const Zf=Ef.getFiles().map(Jf=>Jf.data);ba(Zf)}),Ef.on("file-removed",()=>{const Zf=Ef.getFiles().map(Jf=>Jf.data);ba(Zf)}),El.current=Ef,Cl(Ef),()=>{El.current&&(El.current.destroy(),El.current=null)}},[ba]);const dp=Ef=>{Ef.preventDefault(),ya.trim()&&va()},pp=Ef=>{Ef.key==="Enter"&&!Ef.shiftKey&&(Ef.preventDefault(),dp(Ef))},hp=Sl?.getFiles().length||0;return jsxRuntimeExports.jsx("div",{className:"flex flex-col h-full",children:jsxRuntimeExports.jsx("div",{className:"flex-1 flex flex-col justify-center items-center px-8",children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-2xl",children:[jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{ref:Mc,value:ya,onChange:Ef=>ma(Ef.target.value),onKeyDown:pp,placeholder:"Describe what you want to build...",rows:4,className:"w-full min-h-[120px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-4 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>wl(!Ma),className:`flex items-center gap-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors p-2 ${Ma?"text-primary-font":""}`,title:"Attach files",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:hp>0?`${hp} file(s)`:"Attach files"})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:dp,disabled:!ya.trim(),className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Continue",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})}),Ma&&Sl&&jsxRuntimeExports.jsx("div",{className:"mt-4 rounded-xl overflow-hidden",children:jsxRuntimeExports.jsx(Dashboard,{uppy:Sl,width:"100%",height:300,theme:"dark",showProgressDetails:!0,proudlyDisplayPoweredByUppy:!1})}),jsxRuntimeExports.jsxs("div",{className:"mt-8",children:[jsxRuntimeExports.jsx("p",{className:"text-secondary-font text-sm mb-3",children:"Try these examples:"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:["Build a customer support ticketing system","Create an inventory management app","Design a project management tool"].map(Ef=>jsxRuntimeExports.jsx("button",{onClick:()=>ma(Ef),className:"cursor-pointer px-4 py-2 bg-secondary border border-border-color rounded-lg text-sm text-secondary-font hover:text-primary-font hover:bg-hover transition-colors",children:Ef},Ef))})]})]})})})},InputStep$1=reactExports.memo(InputStep),WizardChatbot=({placeholder:ya="Ask AI to refine this...",onSend:ma,disabled:ba=!1,showAttachButton:va=!1})=>{const[Ma,wl]=reactExports.useState(""),[El,Sl]=reactExports.useState(!1),Cl=()=>{!Ma.trim()||ba||El||(Sl(!0),setTimeout(()=>{ma?.(Ma),wl(""),Sl(!1)},500))},Mc=dp=>{dp.key==="Enter"&&!dp.shiftKey&&(dp.preventDefault(),Cl())};return jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{value:Ma,onChange:dp=>wl(dp.target.value),onKeyDown:Mc,placeholder:ya,disabled:ba||El,rows:2,className:"w-full min-h-[72px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-3 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[va?jsxRuntimeExports.jsx("button",{type:"button",className:"p-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors",title:"Attach files",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"})}):jsxRuntimeExports.jsx("div",{}),jsxRuntimeExports.jsx("button",{onClick:Cl,disabled:!Ma.trim()||ba||El,className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Send",children:El?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}):jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})})},RequirementsStep=({requirements:ya,onRequirementsChange:ma,onBack:ba,onContinue:va})=>{const Ma=wl=>{console.log("Refinement request:",wl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Requirements"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the generated requirements document"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto p-6",children:jsxRuntimeExports.jsx(TiptapEditor,{value:ya,onChange:ma,placeholder:"Requirements will appear here...",minHeight:"400px",maxHeight:"600px",showToolbar:!0,showCodeOptions:!0,showQuote:!0,showLinkImage:!1})}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to refine the requirements...",onSend:Ma}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:ba,className:"cancel-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsxs("button",{onClick:va,className:"sure-button",children:[jsxRuntimeExports.jsx("span",{children:"Continue"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-right",className:"w-5 h-5"})]})]})]})]})},RequirementsStep$1=reactExports.memo(RequirementsStep),PlanStep=({plan:ya,onPlanChange:ma,onBack:ba,onContinue:va})=>{const Ma=wl=>{console.log("Plan refinement request:",wl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Implementation Plan"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the implementation plan"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto p-6",children:jsxRuntimeExports.jsx(TiptapEditor,{value:ya,onChange:ma,placeholder:"Implementation plan will appear here...",minHeight:"400px",maxHeight:"600px",showToolbar:!0,showCodeOptions:!0,showQuote:!0,showLinkImage:!1})}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to refine the plan...",onSend:Ma}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:ba,className:"cancel-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsxs("button",{onClick:va,className:"sure-button",children:[jsxRuntimeExports.jsx("span",{children:"Continue"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-right",className:"w-5 h-5"})]})]})]})]})},PlanStep$1=reactExports.memo(PlanStep);function _arrayLikeToArray(ya,ma){(ma==null||ma>ya.length)&&(ma=ya.length);for(var ba=0,va=Array(ma);ba<ma;ba++)va[ba]=ya[ba];return va}function _arrayWithHoles(ya){if(Array.isArray(ya))return ya}function _defineProperty$1(ya,ma,ba){return(ma=_toPropertyKey(ma))in ya?Object.defineProperty(ya,ma,{value:ba,enumerable:!0,configurable:!0,writable:!0}):ya[ma]=ba,ya}function _iterableToArrayLimit(ya,ma){var ba=ya==null?null:typeof Symbol<"u"&&ya[Symbol.iterator]||ya["@@iterator"];if(ba!=null){var va,Ma,wl,El,Sl=[],Cl=!0,Mc=!1;try{if(wl=(ba=ba.call(ya)).next,ma!==0)for(;!(Cl=(va=wl.call(ba)).done)&&(Sl.push(va.value),Sl.length!==ma);Cl=!0);}catch(dp){Mc=!0,Ma=dp}finally{try{if(!Cl&&ba.return!=null&&(El=ba.return(),Object(El)!==El))return}finally{if(Mc)throw Ma}}return Sl}}function _nonIterableRest(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
21664
+ `})]},va.id)})})},PREVIEW_WIDTH_PERCENT=14,GAP=12,WizardCarousel=({currentStep:ya,totalSteps:ma,children:ba,onStepChange:va,canNavigateToStep:Ma})=>{const wl=ya>1?ya-1:null,El=ya<ma?ya+1:null,Sl=reactExports.useCallback(dp=>dp===null?!1:Ma?Ma(dp):!0,[Ma]),Cl=dp=>{Sl(dp)&&va(dp)},Mc=reactExports.useCallback(dp=>{dp.key==="ArrowLeft"&&wl!==null&&Sl(wl)?va(wl):dp.key==="ArrowRight"&&El!==null&&Sl(El)&&va(El)},[wl,El,Sl,va]);return reactExports.useEffect(()=>(window.addEventListener("keydown",Mc),()=>window.removeEventListener("keydown",Mc)),[Mc]),jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full flex flex-col overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"relative flex-1 flex items-center justify-center overflow-hidden px-4 py-5",children:[wl!==null&&jsxRuntimeExports.jsx("div",{className:`absolute left-0 pointer-events-auto ${Sl(wl)?"cursor-pointer":"cursor-not-allowed"}`,onClick:()=>Cl(wl),style:{width:`${PREVIEW_WIDTH_PERCENT}%`,top:"28px",bottom:"28px",zIndex:1},children:jsxRuntimeExports.jsx("div",{className:"h-full w-full rounded-2xl border border-border-color/40 bg-primary"})}),jsxRuntimeExports.jsx("div",{className:"relative z-10 shrink-0 rounded-2xl border border-border-color bg-primary overflow-hidden",style:{width:wl&&El?`calc(100% - ${PREVIEW_WIDTH_PERCENT*2}% - ${GAP*2}px)`:wl||El?`calc(100% - ${PREVIEW_WIDTH_PERCENT}% - ${GAP}px)`:"100%",marginLeft:wl?`calc(${PREVIEW_WIDTH_PERCENT}% + ${GAP}px)`:"0",marginRight:El?`calc(${PREVIEW_WIDTH_PERCENT}% + ${GAP}px)`:"0",height:"calc(100% - 40px)",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(0, 0, 0, 0.2)"},children:jsxRuntimeExports.jsx("div",{className:"flex h-full",style:{width:`${ma*100}%`,transform:`translateX(-${(ya-1)/ma*100}%)`,transition:"transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)"},children:ba.map((dp,pp)=>jsxRuntimeExports.jsx("div",{className:"h-full overflow-auto",style:{width:`${100/ma}%`},children:dp},pp))})}),El!==null&&jsxRuntimeExports.jsx("div",{className:`absolute right-0 pointer-events-auto ${Sl(El)?"cursor-pointer":"cursor-not-allowed"}`,onClick:()=>Cl(El),style:{width:`${PREVIEW_WIDTH_PERCENT}%`,top:"28px",bottom:"28px",zIndex:1},children:jsxRuntimeExports.jsx("div",{className:"h-full w-full rounded-2xl border border-border-color/40 bg-primary"})})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center gap-2 pb-4",children:Array.from({length:ma},(dp,pp)=>pp+1).map(dp=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Sl(dp)&&va(dp),className:`rounded-full transition-all duration-300 ${dp===ya?"w-2.5 h-2.5 bg-blue":Sl(dp)?"w-2 h-2 bg-secondary-font/50 hover:bg-secondary-font cursor-pointer":"w-2 h-2 bg-secondary-font/20 cursor-not-allowed"}`,"aria-label":`Go to step ${dp}`},dp))})]})},WizardCarousel$1=reactExports.memo(WizardCarousel),InputStep=({instructions:ya,onInstructionsChange:ma,onFilesChange:ba,onContinue:va})=>{const[Ma,wl]=reactExports.useState(!1),El=reactExports.useRef(null),[Sl,Cl]=reactExports.useState(null),Mc=reactExports.useRef(null);reactExports.useEffect(()=>{if(El.current)return;const Ef=new Uppy({debug:!1,autoProceed:!1,restrictions:{maxNumberOfFiles:10}});return Ef.on("file-added",()=>{const Zf=Ef.getFiles().map(Jf=>Jf.data);ba(Zf)}),Ef.on("file-removed",()=>{const Zf=Ef.getFiles().map(Jf=>Jf.data);ba(Zf)}),El.current=Ef,Cl(Ef),()=>{El.current&&(El.current.destroy(),El.current=null)}},[ba]);const dp=Ef=>{Ef.preventDefault(),ya.trim()&&va()},pp=Ef=>{Ef.key==="Enter"&&!Ef.shiftKey&&(Ef.preventDefault(),dp(Ef))},hp=Sl?.getFiles().length||0;return jsxRuntimeExports.jsx("div",{className:"flex flex-col h-full",children:jsxRuntimeExports.jsx("div",{className:"flex-1 flex flex-col justify-center items-center px-8",children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-2xl",children:[jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{ref:Mc,value:ya,onChange:Ef=>ma(Ef.target.value),onKeyDown:pp,placeholder:"Describe what you want to build...",rows:4,className:"w-full min-h-[120px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-4 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>wl(!Ma),className:`flex items-center gap-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors p-2 ${Ma?"text-primary-font":""}`,title:"Attach files",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:hp>0?`${hp} file(s)`:"Attach files"})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:dp,disabled:!ya.trim(),className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Continue",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})}),Ma&&Sl&&jsxRuntimeExports.jsx("div",{className:"mt-4 rounded-xl overflow-hidden",children:jsxRuntimeExports.jsx(Dashboard,{uppy:Sl,width:"100%",height:300,theme:"dark",showProgressDetails:!0,proudlyDisplayPoweredByUppy:!1})}),jsxRuntimeExports.jsxs("div",{className:"mt-8",children:[jsxRuntimeExports.jsx("p",{className:"text-secondary-font text-sm mb-3",children:"Try these examples:"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:["Build a customer support ticketing system","Create an inventory management app","Design a project management tool"].map(Ef=>jsxRuntimeExports.jsx("button",{onClick:()=>ma(Ef),className:"cursor-pointer px-4 py-2 bg-secondary border border-border-color rounded-lg text-sm text-secondary-font hover:text-primary-font hover:bg-hover transition-colors",children:Ef},Ef))})]})]})})})},InputStep$1=reactExports.memo(InputStep),WizardChatbot=({placeholder:ya="Ask AI to refine this...",onSend:ma,disabled:ba=!1,showAttachButton:va=!1})=>{const[Ma,wl]=reactExports.useState(""),[El,Sl]=reactExports.useState(!1),Cl=()=>{!Ma.trim()||ba||El||(Sl(!0),setTimeout(()=>{ma?.(Ma),wl(""),Sl(!1)},500))},Mc=dp=>{dp.key==="Enter"&&!dp.shiftKey&&(dp.preventDefault(),Cl())};return jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.04)] border border-border-color rounded-lg overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("textarea",{value:Ma,onChange:dp=>wl(dp.target.value),onKeyDown:Mc,placeholder:ya,disabled:ba||El,rows:2,className:"w-full min-h-[72px] bg-transparent text-primary-font placeholder:text-secondary-font outline-none text-sm resize-none px-4 pt-3 pb-2"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center px-3 py-2.5 border-t border-border-color",children:[va?jsxRuntimeExports.jsx("button",{type:"button",className:"p-2 text-secondary-font rounded-lg cursor-pointer hover:text-primary-font transition-colors",title:"Attach files",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5"})}):jsxRuntimeExports.jsx("div",{}),jsxRuntimeExports.jsx("button",{onClick:Cl,disabled:!Ma.trim()||ba||El,className:"p-2 rounded-lg border border-border-color text-secondary-font hover:text-primary-font hover:bg-[rgba(255,255,255,0.06)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Send",children:El?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}):jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-up",className:"w-5 h-5"})})]})]})})},RequirementsStep=({requirements:ya,onRequirementsChange:ma,onBack:ba,onContinue:va})=>{const Ma=wl=>{console.log("Refinement request:",wl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Requirements"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the generated requirements document"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto p-6",children:jsxRuntimeExports.jsx(TiptapEditor,{value:ya,onChange:ma,placeholder:"Requirements will appear here...",minHeight:"400px",maxHeight:"600px",showToolbar:!0,showCodeOptions:!0,showQuote:!0,showLinkImage:!1})}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to refine the requirements...",onSend:Ma}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:ba,className:"cancel-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsxs("button",{onClick:va,className:"sure-button",children:[jsxRuntimeExports.jsx("span",{children:"Continue"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-right",className:"w-5 h-5"})]})]})]})]})},RequirementsStep$1=reactExports.memo(RequirementsStep),PlanStep=({plan:ya,onPlanChange:ma,onBack:ba,onContinue:va})=>{const Ma=wl=>{console.log("Plan refinement request:",wl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Architecture"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the architecture"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto p-6",children:jsxRuntimeExports.jsx(TiptapEditor,{value:ya,onChange:ma,placeholder:"Implementation plan will appear here...",minHeight:"400px",maxHeight:"600px",showToolbar:!0,showCodeOptions:!0,showQuote:!0,showLinkImage:!1})}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to refine the plan...",onSend:Ma}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:ba,className:"cancel-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsxs("button",{onClick:va,className:"sure-button",children:[jsxRuntimeExports.jsx("span",{children:"Continue"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-right",className:"w-5 h-5"})]})]})]})]})},PlanStep$1=reactExports.memo(PlanStep);function _arrayLikeToArray(ya,ma){(ma==null||ma>ya.length)&&(ma=ya.length);for(var ba=0,va=Array(ma);ba<ma;ba++)va[ba]=ya[ba];return va}function _arrayWithHoles(ya){if(Array.isArray(ya))return ya}function _defineProperty$1(ya,ma,ba){return(ma=_toPropertyKey(ma))in ya?Object.defineProperty(ya,ma,{value:ba,enumerable:!0,configurable:!0,writable:!0}):ya[ma]=ba,ya}function _iterableToArrayLimit(ya,ma){var ba=ya==null?null:typeof Symbol<"u"&&ya[Symbol.iterator]||ya["@@iterator"];if(ba!=null){var va,Ma,wl,El,Sl=[],Cl=!0,Mc=!1;try{if(wl=(ba=ba.call(ya)).next,ma!==0)for(;!(Cl=(va=wl.call(ba)).done)&&(Sl.push(va.value),Sl.length!==ma);Cl=!0);}catch(dp){Mc=!0,Ma=dp}finally{try{if(!Cl&&ba.return!=null&&(El=ba.return(),Object(El)!==El))return}finally{if(Mc)throw Ma}}return Sl}}function _nonIterableRest(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
21665
21665
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ownKeys$1(ya,ma){var ba=Object.keys(ya);if(Object.getOwnPropertySymbols){var va=Object.getOwnPropertySymbols(ya);ma&&(va=va.filter(function(Ma){return Object.getOwnPropertyDescriptor(ya,Ma).enumerable})),ba.push.apply(ba,va)}return ba}function _objectSpread2$1(ya){for(var ma=1;ma<arguments.length;ma++){var ba=arguments[ma]!=null?arguments[ma]:{};ma%2?ownKeys$1(Object(ba),!0).forEach(function(va){_defineProperty$1(ya,va,ba[va])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ya,Object.getOwnPropertyDescriptors(ba)):ownKeys$1(Object(ba)).forEach(function(va){Object.defineProperty(ya,va,Object.getOwnPropertyDescriptor(ba,va))})}return ya}function _objectWithoutProperties(ya,ma){if(ya==null)return{};var ba,va,Ma=_objectWithoutPropertiesLoose(ya,ma);if(Object.getOwnPropertySymbols){var wl=Object.getOwnPropertySymbols(ya);for(va=0;va<wl.length;va++)ba=wl[va],ma.indexOf(ba)===-1&&{}.propertyIsEnumerable.call(ya,ba)&&(Ma[ba]=ya[ba])}return Ma}function _objectWithoutPropertiesLoose(ya,ma){if(ya==null)return{};var ba={};for(var va in ya)if({}.hasOwnProperty.call(ya,va)){if(ma.indexOf(va)!==-1)continue;ba[va]=ya[va]}return ba}function _slicedToArray(ya,ma){return _arrayWithHoles(ya)||_iterableToArrayLimit(ya,ma)||_unsupportedIterableToArray(ya,ma)||_nonIterableRest()}function _toPrimitive(ya,ma){if(typeof ya!="object"||!ya)return ya;var ba=ya[Symbol.toPrimitive];if(ba!==void 0){var va=ba.call(ya,ma);if(typeof va!="object")return va;throw new TypeError("@@toPrimitive must return a primitive value.")}return(ma==="string"?String:Number)(ya)}function _toPropertyKey(ya){var ma=_toPrimitive(ya,"string");return typeof ma=="symbol"?ma:ma+""}function _unsupportedIterableToArray(ya,ma){if(ya){if(typeof ya=="string")return _arrayLikeToArray(ya,ma);var ba={}.toString.call(ya).slice(8,-1);return ba==="Object"&&ya.constructor&&(ba=ya.constructor.name),ba==="Map"||ba==="Set"?Array.from(ya):ba==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ba)?_arrayLikeToArray(ya,ma):void 0}}function _defineProperty(ya,ma,ba){return ma in ya?Object.defineProperty(ya,ma,{value:ba,enumerable:!0,configurable:!0,writable:!0}):ya[ma]=ba,ya}function ownKeys(ya,ma){var ba=Object.keys(ya);if(Object.getOwnPropertySymbols){var va=Object.getOwnPropertySymbols(ya);ma&&(va=va.filter(function(Ma){return Object.getOwnPropertyDescriptor(ya,Ma).enumerable})),ba.push.apply(ba,va)}return ba}function _objectSpread2(ya){for(var ma=1;ma<arguments.length;ma++){var ba=arguments[ma]!=null?arguments[ma]:{};ma%2?ownKeys(Object(ba),!0).forEach(function(va){_defineProperty(ya,va,ba[va])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ya,Object.getOwnPropertyDescriptors(ba)):ownKeys(Object(ba)).forEach(function(va){Object.defineProperty(ya,va,Object.getOwnPropertyDescriptor(ba,va))})}return ya}function compose$1(){for(var ya=arguments.length,ma=new Array(ya),ba=0;ba<ya;ba++)ma[ba]=arguments[ba];return function(va){return ma.reduceRight(function(Ma,wl){return wl(Ma)},va)}}function curry$1(ya){return function ma(){for(var ba=this,va=arguments.length,Ma=new Array(va),wl=0;wl<va;wl++)Ma[wl]=arguments[wl];return Ma.length>=ya.length?ya.apply(this,Ma):function(){for(var El=arguments.length,Sl=new Array(El),Cl=0;Cl<El;Cl++)Sl[Cl]=arguments[Cl];return ma.apply(ba,[].concat(Ma,Sl))}}}function isObject$1(ya){return{}.toString.call(ya).includes("Object")}function isEmpty(ya){return!Object.keys(ya).length}function isFunction$1(ya){return typeof ya=="function"}function hasOwnProperty(ya,ma){return Object.prototype.hasOwnProperty.call(ya,ma)}function validateChanges(ya,ma){return isObject$1(ma)||errorHandler$1("changeType"),Object.keys(ma).some(function(ba){return!hasOwnProperty(ya,ba)})&&errorHandler$1("changeField"),ma}function validateSelector(ya){isFunction$1(ya)||errorHandler$1("selectorType")}function validateHandler(ya){isFunction$1(ya)||isObject$1(ya)||errorHandler$1("handlerType"),isObject$1(ya)&&Object.values(ya).some(function(ma){return!isFunction$1(ma)})&&errorHandler$1("handlersType")}function validateInitial(ya){ya||errorHandler$1("initialIsRequired"),isObject$1(ya)||errorHandler$1("initialType"),isEmpty(ya)&&errorHandler$1("initialContent")}function throwError$1(ya,ma){throw new Error(ya[ma]||ya.default)}var errorMessages$1={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},errorHandler$1=curry$1(throwError$1)(errorMessages$1),validators$1={changes:validateChanges,selector:validateSelector,handler:validateHandler,initial:validateInitial};function create(ya){var ma=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};validators$1.initial(ya),validators$1.handler(ma);var ba={current:ya},va=curry$1(didStateUpdate)(ba,ma),Ma=curry$1(updateState)(ba),wl=curry$1(validators$1.changes)(ya),El=curry$1(extractChanges)(ba);function Sl(){var Mc=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(dp){return dp};return validators$1.selector(Mc),Mc(ba.current)}function Cl(Mc){compose$1(va,Ma,wl,El)(Mc)}return[Sl,Cl]}function extractChanges(ya,ma){return isFunction$1(ma)?ma(ya.current):ma}function updateState(ya,ma){return ya.current=_objectSpread2(_objectSpread2({},ya.current),ma),ma}function didStateUpdate(ya,ma,ba){return isFunction$1(ma)?ma(ya.current):Object.keys(ba).forEach(function(va){var Ma;return(Ma=ma[va])===null||Ma===void 0?void 0:Ma.call(ma,ya.current[va])}),ba}var index={create},config$1={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function curry(ya){return function ma(){for(var ba=this,va=arguments.length,Ma=new Array(va),wl=0;wl<va;wl++)Ma[wl]=arguments[wl];return Ma.length>=ya.length?ya.apply(this,Ma):function(){for(var El=arguments.length,Sl=new Array(El),Cl=0;Cl<El;Cl++)Sl[Cl]=arguments[Cl];return ma.apply(ba,[].concat(Ma,Sl))}}}function isObject(ya){return{}.toString.call(ya).includes("Object")}function validateConfig(ya){return ya||errorHandler("configIsRequired"),isObject(ya)||errorHandler("configType"),ya.urls?(informAboutDeprecation(),{paths:{vs:ya.urls.monacoBase}}):ya}function informAboutDeprecation(){console.warn(errorMessages.deprecation)}function throwError(ya,ma){throw new Error(ya[ma]||ya.default)}var errorMessages={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
21666
21666
  You are using deprecated way of configuration.
21667
21667
 
@@ -21671,7 +21671,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
21671
21671
  monaco.config({ paths: { vs: '...' } })
21672
21672
 
21673
21673
  For more please check the link https://github.com/suren-atoyan/monaco-loader#config
21674
- `},errorHandler=curry(throwError)(errorMessages),validators={config:validateConfig},compose=function ya(){for(var ma=arguments.length,ba=new Array(ma),va=0;va<ma;va++)ba[va]=arguments[va];return function(Ma){return ba.reduceRight(function(wl,El){return El(wl)},Ma)}};function merge(ya,ma){return Object.keys(ma).forEach(function(ba){ma[ba]instanceof Object&&ya[ba]&&Object.assign(ma[ba],merge(ya[ba],ma[ba]))}),_objectSpread2$1(_objectSpread2$1({},ya),ma)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(ya){var ma=!1,ba=new Promise(function(va,Ma){ya.then(function(wl){return ma?Ma(CANCELATION_MESSAGE):va(wl)}),ya.catch(Ma)});return ba.cancel=function(){return ma=!0},ba}var _excluded=["monaco"],_state$create=index.create({config:config$1,isInitialized:!1,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),getState=_state$create2[0],setState=_state$create2[1];function config(ya){var ma=validators.config(ya),ba=ma.monaco,va=_objectWithoutProperties(ma,_excluded);setState(function(Ma){return{config:merge(Ma.config,va),monaco:ba}})}function init(){var ya=getState(function(ma){var ba=ma.monaco,va=ma.isInitialized,Ma=ma.resolve;return{monaco:ba,isInitialized:va,resolve:Ma}});if(!ya.isInitialized){if(setState({isInitialized:!0}),ya.monaco)return ya.resolve(ya.monaco),makeCancelable(wrapperPromise);if(window.monaco&&window.monaco.editor)return storeMonacoInstance(window.monaco),ya.resolve(window.monaco),makeCancelable(wrapperPromise);compose(injectScripts,getMonacoLoaderScript)(configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(ya){return document.body.appendChild(ya)}function createScript(ya){var ma=document.createElement("script");return ya&&(ma.src=ya),ma}function getMonacoLoaderScript(ya){var ma=getState(function(va){var Ma=va.config,wl=va.reject;return{config:Ma,reject:wl}}),ba=createScript("".concat(ma.config.paths.vs,"/loader.js"));return ba.onload=function(){return ya()},ba.onerror=ma.reject,ba}function configureLoader(){var ya=getState(function(ba){var va=ba.config,Ma=ba.resolve,wl=ba.reject;return{config:va,resolve:Ma,reject:wl}}),ma=window.require;ma.config(ya.config),ma(["vs/editor/editor.main"],function(ba){var va=ba.m||ba;storeMonacoInstance(va),ya.resolve(va)},function(ba){ya.reject(ba)})}function storeMonacoInstance(ya){getState().monaco||setState({monaco:ya})}function __getMonacoInstance(){return getState(function(ya){var ma=ya.monaco;return ma})}var wrapperPromise=new Promise(function(ya,ma){return setState({resolve:ya,reject:ma})}),loader={config,init,__getMonacoInstance},le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v=le,ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:ya}){return React.createElement("div",{style:Y.container},ya)}var Z=Me,$=Z;function Ee({width:ya,height:ma,isEditorReady:ba,loading:va,_ref:Ma,className:wl,wrapperProps:El}){return React.createElement("section",{style:{...v.wrapper,width:ya,height:ma},...El},!ba&&React.createElement($,null,va),React.createElement("div",{ref:Ma,style:{...v.fullWidth,...!ba&&v.hide},className:wl}))}var ee=Ee,H=reactExports.memo(ee);function Ce(ya){reactExports.useEffect(ya,[])}var k=Ce;function he(ya,ma,ba=!0){let va=reactExports.useRef(!0);reactExports.useEffect(va.current||!ba?()=>{va.current=!1}:ya,ma)}var l=he;function D(){}function h(ya,ma,ba,va){return De(ya,va)||be(ya,ma,ba,va)}function De(ya,ma){return ya.editor.getModel(te(ya,ma))}function be(ya,ma,ba,va){return ya.editor.createModel(ma,ba,va?te(ya,va):void 0)}function te(ya,ma){return ya.Uri.parse(ma)}function Oe({original:ya,modified:ma,language:ba,originalLanguage:va,modifiedLanguage:Ma,originalModelPath:wl,modifiedModelPath:El,keepCurrentOriginalModel:Sl=!1,keepCurrentModifiedModel:Cl=!1,theme:Mc="light",loading:dp="Loading...",options:pp={},height:hp="100%",width:Ef="100%",className:Zf,wrapperProps:Jf={},beforeMount:pg=D,onMount:hg=D}){let[mg,gg]=reactExports.useState(!1),[yg,ay]=reactExports.useState(!0),ly=reactExports.useRef(null),cy=reactExports.useRef(null),q1=reactExports.useRef(null),r0=reactExports.useRef(hg),uE=reactExports.useRef(pg),V1=reactExports.useRef(!1);k(()=>{let P_=loader.init();return P_.then(M_=>(cy.current=M_)&&ay(!1)).catch(M_=>M_?.type!=="cancelation"&&console.error("Monaco initialization: error:",M_)),()=>ly.current?aE():P_.cancel()}),l(()=>{if(ly.current&&cy.current){let P_=ly.current.getOriginalEditor(),M_=h(cy.current,ya||"",va||ba||"text",wl||"");M_!==P_.getModel()&&P_.setModel(M_)}},[wl],mg),l(()=>{if(ly.current&&cy.current){let P_=ly.current.getModifiedEditor(),M_=h(cy.current,ma||"",Ma||ba||"text",El||"");M_!==P_.getModel()&&P_.setModel(M_)}},[El],mg),l(()=>{let P_=ly.current.getModifiedEditor();P_.getOption(cy.current.editor.EditorOption.readOnly)?P_.setValue(ma||""):ma!==P_.getValue()&&(P_.executeEdits("",[{range:P_.getModel().getFullModelRange(),text:ma||"",forceMoveMarkers:!0}]),P_.pushUndoStop())},[ma],mg),l(()=>{ly.current?.getModel()?.original.setValue(ya||"")},[ya],mg),l(()=>{let{original:P_,modified:M_}=ly.current.getModel();cy.current.editor.setModelLanguage(P_,va||ba||"text"),cy.current.editor.setModelLanguage(M_,Ma||ba||"text")},[ba,va,Ma],mg),l(()=>{cy.current?.editor.setTheme(Mc)},[Mc],mg),l(()=>{ly.current?.updateOptions(pp)},[pp],mg);let H1=reactExports.useCallback(()=>{if(!cy.current)return;uE.current(cy.current);let P_=h(cy.current,ya||"",va||ba||"text",wl||""),M_=h(cy.current,ma||"",Ma||ba||"text",El||"");ly.current?.setModel({original:P_,modified:M_})},[ba,ma,Ma,ya,va,wl,El]),O_=reactExports.useCallback(()=>{!V1.current&&q1.current&&(ly.current=cy.current.editor.createDiffEditor(q1.current,{automaticLayout:!0,...pp}),H1(),cy.current?.editor.setTheme(Mc),gg(!0),V1.current=!0)},[pp,Mc,H1]);reactExports.useEffect(()=>{mg&&r0.current(ly.current,cy.current)},[mg]),reactExports.useEffect(()=>{!yg&&!mg&&O_()},[yg,mg,O_]);function aE(){let P_=ly.current?.getModel();Sl||P_?.original?.dispose(),Cl||P_?.modified?.dispose(),ly.current?.dispose()}return React.createElement(H,{width:Ef,height:hp,isEditorReady:mg,loading:dp,_ref:q1,className:Zf,wrapperProps:Jf})}var ie=Oe;reactExports.memo(ie);function He(ya){let ma=reactExports.useRef();return reactExports.useEffect(()=>{ma.current=ya},[ya]),ma.current}var se=He,_=new Map;function Ve({defaultValue:ya,defaultLanguage:ma,defaultPath:ba,value:va,language:Ma,path:wl,theme:El="light",line:Sl,loading:Cl="Loading...",options:Mc={},overrideServices:dp={},saveViewState:pp=!0,keepCurrentModel:hp=!1,width:Ef="100%",height:Zf="100%",className:Jf,wrapperProps:pg={},beforeMount:hg=D,onMount:mg=D,onChange:gg,onValidate:yg=D}){let[ay,ly]=reactExports.useState(!1),[cy,q1]=reactExports.useState(!0),r0=reactExports.useRef(null),uE=reactExports.useRef(null),V1=reactExports.useRef(null),H1=reactExports.useRef(mg),O_=reactExports.useRef(hg),aE=reactExports.useRef(),P_=reactExports.useRef(va),M_=se(wl),sN=reactExports.useRef(!1),AF=reactExports.useRef(!1);k(()=>{let R4=loader.init();return R4.then(k4=>(r0.current=k4)&&q1(!1)).catch(k4=>k4?.type!=="cancelation"&&console.error("Monaco initialization: error:",k4)),()=>uE.current?cN():R4.cancel()}),l(()=>{let R4=h(r0.current,ya||va||"",ma||Ma||"",wl||ba||"");R4!==uE.current?.getModel()&&(pp&&_.set(M_,uE.current?.saveViewState()),uE.current?.setModel(R4),pp&&uE.current?.restoreViewState(_.get(wl)))},[wl],ay),l(()=>{uE.current?.updateOptions(Mc)},[Mc],ay),l(()=>{!uE.current||va===void 0||(uE.current.getOption(r0.current.editor.EditorOption.readOnly)?uE.current.setValue(va):va!==uE.current.getValue()&&(AF.current=!0,uE.current.executeEdits("",[{range:uE.current.getModel().getFullModelRange(),text:va,forceMoveMarkers:!0}]),uE.current.pushUndoStop(),AF.current=!1))},[va],ay),l(()=>{let R4=uE.current?.getModel();R4&&Ma&&r0.current?.editor.setModelLanguage(R4,Ma)},[Ma],ay),l(()=>{Sl!==void 0&&uE.current?.revealLine(Sl)},[Sl],ay),l(()=>{r0.current?.editor.setTheme(El)},[El],ay);let $4=reactExports.useCallback(()=>{if(!(!V1.current||!r0.current)&&!sN.current){O_.current(r0.current);let R4=wl||ba,k4=h(r0.current,va||ya||"",ma||Ma||"",R4||"");uE.current=r0.current?.editor.create(V1.current,{model:k4,automaticLayout:!0,...Mc},dp),pp&&uE.current.restoreViewState(_.get(R4)),r0.current.editor.setTheme(El),Sl!==void 0&&uE.current.revealLine(Sl),ly(!0),sN.current=!0}},[ya,ma,ba,va,Ma,wl,Mc,dp,pp,El,Sl]);reactExports.useEffect(()=>{ay&&H1.current(uE.current,r0.current)},[ay]),reactExports.useEffect(()=>{!cy&&!ay&&$4()},[cy,ay,$4]),P_.current=va,reactExports.useEffect(()=>{ay&&gg&&(aE.current?.dispose(),aE.current=uE.current?.onDidChangeModelContent(R4=>{AF.current||gg(uE.current.getValue(),R4)}))},[ay,gg]),reactExports.useEffect(()=>{if(ay){let R4=r0.current.editor.onDidChangeMarkers(k4=>{let AQ=uE.current.getModel()?.uri;if(AQ&&k4.find(uN=>uN.path===AQ.path)){let uN=r0.current.editor.getModelMarkers({resource:AQ});yg?.(uN)}});return()=>{R4?.dispose()}}return()=>{}},[ay,yg]);function cN(){aE.current?.dispose(),hp?pp&&_.set(wl,uE.current.saveViewState()):uE.current.getModel()?.dispose(),uE.current.dispose()}return React.createElement(H,{width:Ef,height:Zf,isEditorReady:ay,loading:Cl,_ref:V1,className:Jf,wrapperProps:pg})}var fe=Ve,de=reactExports.memo(fe),Ft=de;const beforeMount=ya=>{ya.editor.defineTheme("agentlang-editor",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#122247"}})},safeStringify=ya=>{try{return JSON.stringify(ya,null,2)}catch{return"{}"}},JsonEditor=({value:ya,title:ma,onChange:ba,onCopy:va})=>jsxRuntimeExports.jsxs("div",{className:"bg-[rgba(0,0,0,0.2)] rounded-lg overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-border-color flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-sm text-secondary-font",children:ma}),jsxRuntimeExports.jsx("button",{onClick:va,className:"p-1.5 rounded hover:bg-hover transition-colors",title:"Copy to clipboard",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:content-copy",className:"w-4 h-4 text-secondary-font"})})]}),jsxRuntimeExports.jsx("div",{className:"h-[280px] min-h-[200px]",children:jsxRuntimeExports.jsx(Ft,{height:"100%",defaultLanguage:"json",value:ya,onChange:Ma=>ba(Ma??""),beforeMount,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on",padding:{top:12,bottom:12},fontSize:13,lineNumbers:"on",folding:!0,formatOnPaste:!0,formatOnType:!0},theme:"agentlang-editor"})})]}),GenerateTeamStep=({dataModel:ya,workflow:ma,onDataModelChange:ba,onWorkflowChange:va,onBack:Ma,onGenerate:wl})=>{const[El,Sl]=reactExports.useState(!1),[Cl,Mc]=reactExports.useState(()=>safeStringify(ya)),[dp,pp]=reactExports.useState(()=>safeStringify(ma));reactExports.useEffect(()=>{Mc(safeStringify(ya))},[ya]),reactExports.useEffect(()=>{pp(safeStringify(ma))},[ma]);const hp=pg=>{Mc(pg);try{const hg=JSON.parse(pg);ba?.(hg)}catch{}},Ef=pg=>{pp(pg);try{const hg=JSON.parse(pg);va?.(hg)}catch{}},Zf=pg=>{console.log("Generation refinement request:",pg)},Jf=()=>{Sl(!0),setTimeout(()=>{Sl(!1),wl()},2e3)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Generate Team"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the generated data model and workflow configuration"})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-auto p-6 space-y-4",children:[jsxRuntimeExports.jsx(h1,{icon:"mdi:database-outline",label:"Data Model",defaultOpen:!0,className:"bg-secondary border border-border-color",children:jsxRuntimeExports.jsx(JsonEditor,{value:Cl,title:"entities.json",onChange:hp,onCopy:()=>navigator.clipboard.writeText(Cl)})}),jsxRuntimeExports.jsx(h1,{icon:"mdi:workflow",label:"Workflow",defaultOpen:!0,className:"bg-secondary border border-border-color",children:jsxRuntimeExports.jsx(JsonEditor,{value:dp,title:"workflow.json",onChange:Ef,onCopy:()=>navigator.clipboard.writeText(dp)})})]}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to modify the configuration...",onSend:Zf}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:Ma,className:"cancel-button",disabled:El,children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsx("button",{onClick:Jf,className:"sure-button",disabled:El,children:El?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}),jsxRuntimeExports.jsx("span",{children:"Generating..."})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:rocket-launch",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Generate Team"})]})})]})]})]})},GenerateTeamStep$1=reactExports.memo(GenerateTeamStep),DUMMY_REQUIREMENTS=`# Project Requirements
21674
+ `},errorHandler=curry(throwError)(errorMessages),validators={config:validateConfig},compose=function ya(){for(var ma=arguments.length,ba=new Array(ma),va=0;va<ma;va++)ba[va]=arguments[va];return function(Ma){return ba.reduceRight(function(wl,El){return El(wl)},Ma)}};function merge(ya,ma){return Object.keys(ma).forEach(function(ba){ma[ba]instanceof Object&&ya[ba]&&Object.assign(ma[ba],merge(ya[ba],ma[ba]))}),_objectSpread2$1(_objectSpread2$1({},ya),ma)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(ya){var ma=!1,ba=new Promise(function(va,Ma){ya.then(function(wl){return ma?Ma(CANCELATION_MESSAGE):va(wl)}),ya.catch(Ma)});return ba.cancel=function(){return ma=!0},ba}var _excluded=["monaco"],_state$create=index.create({config:config$1,isInitialized:!1,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),getState=_state$create2[0],setState=_state$create2[1];function config(ya){var ma=validators.config(ya),ba=ma.monaco,va=_objectWithoutProperties(ma,_excluded);setState(function(Ma){return{config:merge(Ma.config,va),monaco:ba}})}function init(){var ya=getState(function(ma){var ba=ma.monaco,va=ma.isInitialized,Ma=ma.resolve;return{monaco:ba,isInitialized:va,resolve:Ma}});if(!ya.isInitialized){if(setState({isInitialized:!0}),ya.monaco)return ya.resolve(ya.monaco),makeCancelable(wrapperPromise);if(window.monaco&&window.monaco.editor)return storeMonacoInstance(window.monaco),ya.resolve(window.monaco),makeCancelable(wrapperPromise);compose(injectScripts,getMonacoLoaderScript)(configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(ya){return document.body.appendChild(ya)}function createScript(ya){var ma=document.createElement("script");return ya&&(ma.src=ya),ma}function getMonacoLoaderScript(ya){var ma=getState(function(va){var Ma=va.config,wl=va.reject;return{config:Ma,reject:wl}}),ba=createScript("".concat(ma.config.paths.vs,"/loader.js"));return ba.onload=function(){return ya()},ba.onerror=ma.reject,ba}function configureLoader(){var ya=getState(function(ba){var va=ba.config,Ma=ba.resolve,wl=ba.reject;return{config:va,resolve:Ma,reject:wl}}),ma=window.require;ma.config(ya.config),ma(["vs/editor/editor.main"],function(ba){var va=ba.m||ba;storeMonacoInstance(va),ya.resolve(va)},function(ba){ya.reject(ba)})}function storeMonacoInstance(ya){getState().monaco||setState({monaco:ya})}function __getMonacoInstance(){return getState(function(ya){var ma=ya.monaco;return ma})}var wrapperPromise=new Promise(function(ya,ma){return setState({resolve:ya,reject:ma})}),loader={config,init,__getMonacoInstance},le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v=le,ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:ya}){return React.createElement("div",{style:Y.container},ya)}var Z=Me,$=Z;function Ee({width:ya,height:ma,isEditorReady:ba,loading:va,_ref:Ma,className:wl,wrapperProps:El}){return React.createElement("section",{style:{...v.wrapper,width:ya,height:ma},...El},!ba&&React.createElement($,null,va),React.createElement("div",{ref:Ma,style:{...v.fullWidth,...!ba&&v.hide},className:wl}))}var ee=Ee,H=reactExports.memo(ee);function Ce(ya){reactExports.useEffect(ya,[])}var k=Ce;function he(ya,ma,ba=!0){let va=reactExports.useRef(!0);reactExports.useEffect(va.current||!ba?()=>{va.current=!1}:ya,ma)}var l=he;function D(){}function h(ya,ma,ba,va){return De(ya,va)||be(ya,ma,ba,va)}function De(ya,ma){return ya.editor.getModel(te(ya,ma))}function be(ya,ma,ba,va){return ya.editor.createModel(ma,ba,va?te(ya,va):void 0)}function te(ya,ma){return ya.Uri.parse(ma)}function Oe({original:ya,modified:ma,language:ba,originalLanguage:va,modifiedLanguage:Ma,originalModelPath:wl,modifiedModelPath:El,keepCurrentOriginalModel:Sl=!1,keepCurrentModifiedModel:Cl=!1,theme:Mc="light",loading:dp="Loading...",options:pp={},height:hp="100%",width:Ef="100%",className:Zf,wrapperProps:Jf={},beforeMount:pg=D,onMount:hg=D}){let[mg,gg]=reactExports.useState(!1),[yg,ay]=reactExports.useState(!0),ly=reactExports.useRef(null),cy=reactExports.useRef(null),q1=reactExports.useRef(null),r0=reactExports.useRef(hg),uE=reactExports.useRef(pg),V1=reactExports.useRef(!1);k(()=>{let P_=loader.init();return P_.then(M_=>(cy.current=M_)&&ay(!1)).catch(M_=>M_?.type!=="cancelation"&&console.error("Monaco initialization: error:",M_)),()=>ly.current?aE():P_.cancel()}),l(()=>{if(ly.current&&cy.current){let P_=ly.current.getOriginalEditor(),M_=h(cy.current,ya||"",va||ba||"text",wl||"");M_!==P_.getModel()&&P_.setModel(M_)}},[wl],mg),l(()=>{if(ly.current&&cy.current){let P_=ly.current.getModifiedEditor(),M_=h(cy.current,ma||"",Ma||ba||"text",El||"");M_!==P_.getModel()&&P_.setModel(M_)}},[El],mg),l(()=>{let P_=ly.current.getModifiedEditor();P_.getOption(cy.current.editor.EditorOption.readOnly)?P_.setValue(ma||""):ma!==P_.getValue()&&(P_.executeEdits("",[{range:P_.getModel().getFullModelRange(),text:ma||"",forceMoveMarkers:!0}]),P_.pushUndoStop())},[ma],mg),l(()=>{ly.current?.getModel()?.original.setValue(ya||"")},[ya],mg),l(()=>{let{original:P_,modified:M_}=ly.current.getModel();cy.current.editor.setModelLanguage(P_,va||ba||"text"),cy.current.editor.setModelLanguage(M_,Ma||ba||"text")},[ba,va,Ma],mg),l(()=>{cy.current?.editor.setTheme(Mc)},[Mc],mg),l(()=>{ly.current?.updateOptions(pp)},[pp],mg);let H1=reactExports.useCallback(()=>{if(!cy.current)return;uE.current(cy.current);let P_=h(cy.current,ya||"",va||ba||"text",wl||""),M_=h(cy.current,ma||"",Ma||ba||"text",El||"");ly.current?.setModel({original:P_,modified:M_})},[ba,ma,Ma,ya,va,wl,El]),O_=reactExports.useCallback(()=>{!V1.current&&q1.current&&(ly.current=cy.current.editor.createDiffEditor(q1.current,{automaticLayout:!0,...pp}),H1(),cy.current?.editor.setTheme(Mc),gg(!0),V1.current=!0)},[pp,Mc,H1]);reactExports.useEffect(()=>{mg&&r0.current(ly.current,cy.current)},[mg]),reactExports.useEffect(()=>{!yg&&!mg&&O_()},[yg,mg,O_]);function aE(){let P_=ly.current?.getModel();Sl||P_?.original?.dispose(),Cl||P_?.modified?.dispose(),ly.current?.dispose()}return React.createElement(H,{width:Ef,height:hp,isEditorReady:mg,loading:dp,_ref:q1,className:Zf,wrapperProps:Jf})}var ie=Oe;reactExports.memo(ie);function He(ya){let ma=reactExports.useRef();return reactExports.useEffect(()=>{ma.current=ya},[ya]),ma.current}var se=He,_=new Map;function Ve({defaultValue:ya,defaultLanguage:ma,defaultPath:ba,value:va,language:Ma,path:wl,theme:El="light",line:Sl,loading:Cl="Loading...",options:Mc={},overrideServices:dp={},saveViewState:pp=!0,keepCurrentModel:hp=!1,width:Ef="100%",height:Zf="100%",className:Jf,wrapperProps:pg={},beforeMount:hg=D,onMount:mg=D,onChange:gg,onValidate:yg=D}){let[ay,ly]=reactExports.useState(!1),[cy,q1]=reactExports.useState(!0),r0=reactExports.useRef(null),uE=reactExports.useRef(null),V1=reactExports.useRef(null),H1=reactExports.useRef(mg),O_=reactExports.useRef(hg),aE=reactExports.useRef(),P_=reactExports.useRef(va),M_=se(wl),sN=reactExports.useRef(!1),AF=reactExports.useRef(!1);k(()=>{let R4=loader.init();return R4.then(k4=>(r0.current=k4)&&q1(!1)).catch(k4=>k4?.type!=="cancelation"&&console.error("Monaco initialization: error:",k4)),()=>uE.current?cN():R4.cancel()}),l(()=>{let R4=h(r0.current,ya||va||"",ma||Ma||"",wl||ba||"");R4!==uE.current?.getModel()&&(pp&&_.set(M_,uE.current?.saveViewState()),uE.current?.setModel(R4),pp&&uE.current?.restoreViewState(_.get(wl)))},[wl],ay),l(()=>{uE.current?.updateOptions(Mc)},[Mc],ay),l(()=>{!uE.current||va===void 0||(uE.current.getOption(r0.current.editor.EditorOption.readOnly)?uE.current.setValue(va):va!==uE.current.getValue()&&(AF.current=!0,uE.current.executeEdits("",[{range:uE.current.getModel().getFullModelRange(),text:va,forceMoveMarkers:!0}]),uE.current.pushUndoStop(),AF.current=!1))},[va],ay),l(()=>{let R4=uE.current?.getModel();R4&&Ma&&r0.current?.editor.setModelLanguage(R4,Ma)},[Ma],ay),l(()=>{Sl!==void 0&&uE.current?.revealLine(Sl)},[Sl],ay),l(()=>{r0.current?.editor.setTheme(El)},[El],ay);let $4=reactExports.useCallback(()=>{if(!(!V1.current||!r0.current)&&!sN.current){O_.current(r0.current);let R4=wl||ba,k4=h(r0.current,va||ya||"",ma||Ma||"",R4||"");uE.current=r0.current?.editor.create(V1.current,{model:k4,automaticLayout:!0,...Mc},dp),pp&&uE.current.restoreViewState(_.get(R4)),r0.current.editor.setTheme(El),Sl!==void 0&&uE.current.revealLine(Sl),ly(!0),sN.current=!0}},[ya,ma,ba,va,Ma,wl,Mc,dp,pp,El,Sl]);reactExports.useEffect(()=>{ay&&H1.current(uE.current,r0.current)},[ay]),reactExports.useEffect(()=>{!cy&&!ay&&$4()},[cy,ay,$4]),P_.current=va,reactExports.useEffect(()=>{ay&&gg&&(aE.current?.dispose(),aE.current=uE.current?.onDidChangeModelContent(R4=>{AF.current||gg(uE.current.getValue(),R4)}))},[ay,gg]),reactExports.useEffect(()=>{if(ay){let R4=r0.current.editor.onDidChangeMarkers(k4=>{let AQ=uE.current.getModel()?.uri;if(AQ&&k4.find(uN=>uN.path===AQ.path)){let uN=r0.current.editor.getModelMarkers({resource:AQ});yg?.(uN)}});return()=>{R4?.dispose()}}return()=>{}},[ay,yg]);function cN(){aE.current?.dispose(),hp?pp&&_.set(wl,uE.current.saveViewState()):uE.current.getModel()?.dispose(),uE.current.dispose()}return React.createElement(H,{width:Ef,height:Zf,isEditorReady:ay,loading:Cl,_ref:V1,className:Jf,wrapperProps:pg})}var fe=Ve,de=reactExports.memo(fe),Ft=de;const beforeMount$1=ya=>{ya.editor.defineTheme("agentlang-editor",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#122247"}})},safeStringify=ya=>{try{return JSON.stringify(ya,null,2)}catch{return"{}"}},JsonEditor=({value:ya,title:ma,onChange:ba,onCopy:va})=>jsxRuntimeExports.jsxs("div",{className:"bg-[rgba(0,0,0,0.2)] rounded-lg overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-border-color flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-sm text-secondary-font",children:ma}),jsxRuntimeExports.jsx("button",{onClick:va,className:"p-1.5 rounded hover:bg-hover transition-colors",title:"Copy to clipboard",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:content-copy",className:"w-4 h-4 text-secondary-font"})})]}),jsxRuntimeExports.jsx("div",{className:"h-[280px] min-h-[200px]",children:jsxRuntimeExports.jsx(Ft,{height:"100%",defaultLanguage:"json",value:ya,onChange:Ma=>ba(Ma??""),beforeMount:beforeMount$1,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on",padding:{top:12,bottom:12},fontSize:13,lineNumbers:"on",folding:!0,formatOnPaste:!0,formatOnType:!0},theme:"agentlang-editor"})})]}),GenerateTeamStep=({dataModel:ya,workflow:ma,onDataModelChange:ba,onWorkflowChange:va,onBack:Ma,onGenerate:wl})=>{const[El,Sl]=reactExports.useState(!1),[Cl,Mc]=reactExports.useState(()=>safeStringify(ya)),[dp,pp]=reactExports.useState(()=>safeStringify(ma));reactExports.useEffect(()=>{Mc(safeStringify(ya))},[ya]),reactExports.useEffect(()=>{pp(safeStringify(ma))},[ma]);const hp=pg=>{Mc(pg);try{const hg=JSON.parse(pg);ba?.(hg)}catch{}},Ef=pg=>{pp(pg);try{const hg=JSON.parse(pg);va?.(hg)}catch{}},Zf=pg=>{console.log("Generation refinement request:",pg)},Jf=()=>{Sl(!0),setTimeout(()=>{Sl(!1),wl()},2e3)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Blueprint"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the generated data model and workflow configuration"})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-auto p-6 space-y-4",children:[jsxRuntimeExports.jsx(h1,{icon:"mdi:database-outline",label:"Data Model",defaultOpen:!0,className:"bg-secondary border border-border-color",children:jsxRuntimeExports.jsx(JsonEditor,{value:Cl,title:"entities.json",onChange:hp,onCopy:()=>navigator.clipboard.writeText(Cl)})}),jsxRuntimeExports.jsx(h1,{icon:"mdi:workflow",label:"Workflow",defaultOpen:!0,className:"bg-secondary border border-border-color",children:jsxRuntimeExports.jsx(JsonEditor,{value:dp,title:"workflow.json",onChange:Ef,onCopy:()=>navigator.clipboard.writeText(dp)})})]}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to modify the configuration...",onSend:Zf}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:Ma,className:"cancel-button",disabled:El,children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsx("button",{onClick:Jf,className:"sure-button",disabled:El,children:El?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}),jsxRuntimeExports.jsx("span",{children:"Generating..."})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-right",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Continue"})]})})]})]})]})},GenerateTeamStep$1=reactExports.memo(GenerateTeamStep),beforeMount=ya=>{ya.editor.defineTheme("agentlang-editor",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#122247"}})},CodeStep=({code:ya,onCodeChange:ma,onBack:ba,onGenerate:va})=>{const[Ma,wl]=reactExports.useState(!1),El=Cl=>{console.log("Code refinement request:",Cl)},Sl=()=>{wl(!0),setTimeout(()=>{wl(!1),va()},2e3)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-b border-border-color",children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Code"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font",children:"Review and edit the generated code"})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-hidden p-6",children:jsxRuntimeExports.jsxs("div",{className:"h-full bg-[rgba(0,0,0,0.2)] rounded-lg overflow-hidden",children:[jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-border-color flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-sm text-secondary-font",children:"generated-code"}),jsxRuntimeExports.jsx("button",{onClick:()=>navigator.clipboard.writeText(ya),className:"p-1.5 rounded hover:bg-hover transition-colors",title:"Copy to clipboard",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:content-copy",className:"w-4 h-4 text-secondary-font"})})]}),jsxRuntimeExports.jsx("div",{className:"h-[calc(100%-48px)]",children:jsxRuntimeExports.jsx(Ft,{height:"100%",defaultLanguage:"clojure",value:ya,onChange:Cl=>ma?.(Cl??""),beforeMount,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on",padding:{top:12,bottom:12},fontSize:13,lineNumbers:"on",folding:!0,readOnly:!1},theme:"agentlang-editor"})})]})}),jsxRuntimeExports.jsxs("div",{className:"px-6 py-4 border-t border-border-color space-y-4",children:[jsxRuntimeExports.jsx(WizardChatbot,{placeholder:"Ask AI to modify the code...",onSend:El}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntimeExports.jsxs("button",{onClick:ba,className:"cancel-button",disabled:Ma,children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:arrow-left",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Back"})]}),jsxRuntimeExports.jsx("button",{onClick:Sl,className:"sure-button",disabled:Ma,children:Ma?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-5 h-5 animate-spin"}),jsxRuntimeExports.jsx("span",{children:"Generating..."})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:rocket-launch",className:"w-5 h-5"}),jsxRuntimeExports.jsx("span",{children:"Generate Team"})]})})]})]})]})},CodeStep$1=reactExports.memo(CodeStep),DUMMY_REQUIREMENTS=`# Project Requirements
21675
21675
 
21676
21676
  ## Overview
21677
21677
  Build an automated customer support ticketing system that manages and tracks support requests efficiently.
@@ -21752,7 +21752,156 @@ Build an automated customer support ticketing system that manages and tracks sup
21752
21752
  - Integration testing
21753
21753
  - Performance optimization
21754
21754
  - Production deployment
21755
- `,DUMMY_DATA_MODEL={entities:[{name:"Ticket",attributes:[{name:"id",type:"UUID",primary:!0},{name:"title",type:"String",required:!0},{name:"description",type:"Text",required:!0},{name:"status",type:"Enum",values:["open","in_progress","pending","resolved","closed"]},{name:"priority",type:"Enum",values:["low","medium","high","critical"]},{name:"createdAt",type:"DateTime"},{name:"updatedAt",type:"DateTime"}],relationships:[{type:"belongsTo",target:"User",as:"customer"},{type:"belongsTo",target:"Agent",as:"assignedAgent"},{type:"hasMany",target:"Message"}]},{name:"User",attributes:[{name:"id",type:"UUID",primary:!0},{name:"email",type:"String",unique:!0},{name:"name",type:"String",required:!0},{name:"role",type:"Enum",values:["customer","agent","admin"]},{name:"createdAt",type:"DateTime"}],relationships:[{type:"hasMany",target:"Ticket"}]},{name:"Agent",attributes:[{name:"id",type:"UUID",primary:!0},{name:"userId",type:"UUID",required:!0},{name:"department",type:"String"},{name:"isAvailable",type:"Boolean",default:!0},{name:"maxTickets",type:"Integer",default:10}],relationships:[{type:"belongsTo",target:"User"},{type:"hasMany",target:"Ticket",as:"assignedTickets"}]},{name:"Message",attributes:[{name:"id",type:"UUID",primary:!0},{name:"content",type:"Text",required:!0},{name:"senderType",type:"Enum",values:["customer","agent","system"]},{name:"createdAt",type:"DateTime"}],relationships:[{type:"belongsTo",target:"Ticket"},{type:"belongsTo",target:"User",as:"sender"}]}]},DUMMY_WORKFLOW={name:"TicketManagementWorkflow",triggers:[{event:"ticket.created",action:"AssignTicket"},{event:"ticket.updated",action:"NotifyStakeholders"},{event:"ticket.resolved",action:"SendSurvey"}],actions:[{name:"AssignTicket",type:"function",description:"Auto-assign ticket to available agent based on workload",steps:["Find available agents in department","Calculate current workload for each agent","Assign to agent with lowest workload","Send notification to assigned agent"]},{name:"NotifyStakeholders",type:"notification",description:"Send updates to all parties involved in the ticket",channels:["email","in-app","push"],recipients:["customer","assignedAgent","watchers"]},{name:"SendSurvey",type:"email",description:"Send satisfaction survey after ticket resolution",delay:"24 hours",template:"satisfaction-survey"},{name:"EscalateTicket",type:"function",description:"Escalate ticket if not resolved within SLA",trigger:"sla.breached",steps:["Update ticket priority to critical","Notify team lead","Add to escalation dashboard"]}],rules:[{name:"AutoCloseResolved",condition:'ticket.status == "resolved" && daysSinceUpdate > 7',action:"Close ticket automatically"},{name:"VIPPriority",condition:'customer.tier == "enterprise"',action:"Set priority to high"}]},HomeWizard=()=>{const ya=useNavigate(),[ma,ba]=reactExports.useState(1),[va,Ma]=reactExports.useState({currentStep:1,input:{instructions:"",files:[]},requirements:DUMMY_REQUIREMENTS,plan:DUMMY_PLAN,generatedTeam:{dataModel:DUMMY_DATA_MODEL,workflow:DUMMY_WORKFLOW}}),wl=reactExports.useCallback(cy=>{Ma(q1=>({...q1,input:{...q1.input,instructions:cy}}))},[]),El=reactExports.useCallback(cy=>{Ma(q1=>({...q1,input:{...q1.input,files:cy}}))},[]),Sl=reactExports.useCallback(cy=>{Ma(q1=>({...q1,requirements:cy}))},[]),Cl=reactExports.useCallback(cy=>{Ma(q1=>({...q1,plan:cy}))},[]),Mc=reactExports.useCallback(cy=>{ba(q1=>cy>=1&&cy<=WIZARD_STEPS.length?cy:q1)},[]),dp=reactExports.useCallback(cy=>cy<=ma||cy===ma+1,[ma]),pp=reactExports.useCallback(()=>{Ma(cy=>({...cy,requirements:DUMMY_REQUIREMENTS})),ba(2)},[]),hp=reactExports.useCallback(()=>{Ma(cy=>({...cy,plan:DUMMY_PLAN})),ba(3)},[]),Ef=reactExports.useCallback(()=>{Ma(cy=>({...cy,generatedTeam:{dataModel:DUMMY_DATA_MODEL,workflow:DUMMY_WORKFLOW}})),ba(4)},[]),Zf=reactExports.useCallback(()=>{y$b.success("Team generated successfully!"),ya("/design/dashboard")},[ya]),Jf=reactExports.useCallback(()=>Mc(1),[Mc]),pg=reactExports.useCallback(()=>Mc(2),[Mc]),hg=reactExports.useCallback(()=>Mc(3),[Mc]),mg=reactExports.useCallback(cy=>{Ma(q1=>({...q1,generatedTeam:{...q1.generatedTeam,dataModel:cy}}))},[]),gg=reactExports.useCallback(cy=>{Ma(q1=>({...q1,generatedTeam:{...q1.generatedTeam,workflow:cy}}))},[]),yg=reactExports.useCallback(cy=>{cy<ma&&Mc(cy)},[ma,Mc]),ay=cy=>{switch(cy){case 1:return jsxRuntimeExports.jsx(InputStep$1,{instructions:va.input.instructions,onInstructionsChange:wl,onFilesChange:El,onContinue:pp});case 2:return jsxRuntimeExports.jsx(RequirementsStep$1,{requirements:va.requirements,onRequirementsChange:Sl,onBack:Jf,onContinue:hp});case 3:return jsxRuntimeExports.jsx(PlanStep$1,{plan:va.plan,onPlanChange:Cl,onBack:pg,onContinue:Ef});case 4:return jsxRuntimeExports.jsx(GenerateTeamStep$1,{dataModel:va.generatedTeam.dataModel,workflow:va.generatedTeam.workflow,onDataModelChange:mg,onWorkflowChange:gg,onBack:hg,onGenerate:Zf});default:return null}},ly=reactExports.useMemo(()=>WIZARD_STEPS.map(cy=>ay(cy.id)),[va]);return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full w-full",children:[jsxRuntimeExports.jsx("div",{className:"border-b border-border-color bg-[rgba(255,255,255,0.02)]",children:jsxRuntimeExports.jsx(WizardStepper,{currentStep:ma,onStepClick:yg})}),jsxRuntimeExports.jsx("div",{className:"flex-1 flex flex-col overflow-hidden",children:jsxRuntimeExports.jsx(WizardCarousel$1,{currentStep:ma,totalSteps:WIZARD_STEPS.length,onStepChange:Mc,canNavigateToStep:dp,children:ly})})]})},NavbarItem=({label:ya,icon:ma,isOpen:ba,isSmall:va=!1,isLoading:Ma=!1})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:Ma?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:`${va?"w-4.5 h-4.5":"w-6 h-6"} animate-spin`}):jsxRuntimeExports.jsx(Icon,{icon:ma,className:va?"w-4.5 h-4.5":"w-6 h-6"})}),jsxRuntimeExports.jsx(AnimatePresence,{initial:!1,children:ba&&jsxRuntimeExports.jsx(motion.span,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.2},className:"ml-3 whitespace-nowrap text-sm",children:Ma?"Signing out...":ya},"label")})]}),MobileNavbarItem=({label:ya,icon:ma,isActive:ba,onClick:va})=>jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center justify-center p-2 rounded-md cursor-pointer transition-all duration-300 relative group",ba?"text-font-table-header bg-table-header shadow-lg":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:va,children:[jsxRuntimeExports.jsxs("div",{className:classNames("relative mb-1 transition-transform duration-300",ba?"scale-110":"group-hover:scale-105"),children:[jsxRuntimeExports.jsx(Icon,{icon:ma,className:"w-5 h-5"}),ba&&jsxRuntimeExports.jsx("div",{className:"absolute -top-1 -right-1 w-1.5 h-1.5 bg-font-table-header rounded-full animate-pulse"})]}),jsxRuntimeExports.jsx("span",{className:classNames("text-xs font-medium transition-all duration-300",ba?"text-font-table-header":"text-secondary-font group-hover:text-font-table-header"),children:ya}),ba&&jsxRuntimeExports.jsx("div",{className:"absolute -bottom-0.5 left-1/2 transform -translate-x-1/2 w-6 h-0.5 bg-font-table-header rounded-full"})]}),LogoutConfirmationModal=({isOpen:ya,onConfirm:ma,onCancel:ba,isLoggingOut:va})=>{const Ma=useOutsideClickHandler(ba);return ya?jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:Ma,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Sign Out"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"trash-icon",onClick:ba})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[jsxRuntimeExports.jsx("div",{className:"w-12 h-12 bg-blue-500/20 rounded-full flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:logout",className:"text-blue-500 text-xl"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-medium text-white",children:"Sign Out"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400",children:"Account logout"})]})]}),jsxRuntimeExports.jsx("p",{className:"text-gray-300 text-sm leading-relaxed",children:"Are you sure you want to sign out? You'll need to log in again to access your account."}),jsxRuntimeExports.jsx("div",{className:"mt-4 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg",children:jsxRuntimeExports.jsxs("p",{className:"text-blue-400 text-xs",children:[jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:info-outline",className:"inline mr-1"}),"Your session will be cleared and you'll be redirected to the login page."]})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("button",{className:"cancel-button",onClick:ba,disabled:va,children:"Cancel"}),jsxRuntimeExports.jsx("button",{className:"sure-button",onClick:ma,disabled:va,children:va?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CircularProgress,{size:16,color:"inherit"}),"Signing out..."]}):"Sign Out"})]})]})}):null},MobileNavbar=({pathname:ya,routeId:ma,navigate:ba,handleLogoutClick:va,handleNavigateToDashboard:Ma,isLoggingOut:wl})=>{const El=ma==="home-wizard"||(ma?.startsWith("home-wizard")??!1),Sl=ma==="home",Cl=ya.includes("dashboard"),Mc=ma==="mission-control"||(ma?.startsWith("mission-control")??!1),dp=ma==="agent-flow"||ma==="data-model"||ma==="agents"||ma==="workflow"||ma==="security"||ma==="settings"||ma==="ui",pp=ma==="marketplace",hp=ma==="user-configuration",Ef=ma==="documents",Zf=ma==="integrations",Jf=ma==="llms";return jsxRuntimeExports.jsxs("div",{className:"lg:hidden fixed bottom-0 left-0 right-0 z-500",children:[jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-primary border-t border-border-color"}),jsxRuntimeExports.jsxs("div",{className:"relative flex items-center justify-around p-2 pb-3",children:[jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Home",icon:icons.homeRoute,isActive:El,onClick:()=>ba("/home")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Monitoring",icon:icons.home,isActive:Sl,onClick:()=>ba("/monitoring")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Agents",icon:icons.team,isActive:Cl||dp,onClick:Ma}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Mission Control",icon:icons.missionControl,isActive:Mc,onClick:()=>ba("/mission-control")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Hub",icon:icons.hub,isActive:pp,onClick:()=>ba("/hub")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Settings",icon:icons.setting,isActive:hp,onClick:()=>ba("/configuration")}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center justify-center p-2 rounded-md cursor-pointer transition-all duration-300 relative group",wl?"text-font-table-header cursor-not-allowed opacity-60":"text-secondary-font hover:text-red-400 hover:bg-table-header/50"),onClick:va,children:[jsxRuntimeExports.jsx("div",{className:classNames("relative mb-1 transition-transform duration-300",wl?"animate-pulse":"group-hover:scale-105 group-hover:rotate-12"),children:jsxRuntimeExports.jsx(Icon,{icon:wl?"mdi:loading":icons.logout,className:"w-5 h-5"})}),jsxRuntimeExports.jsx("span",{className:classNames("text-xs font-medium transition-all duration-300",wl?"text-font-table-header":"text-secondary-font group-hover:text-red-400"),children:wl?"Signing out...":"Logout"})]})]}),(Cl||dp||Ef||Zf||Jf)&&jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"border-t border-border-color bg-primary/95 backdrop-blur-sm",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-around p-2",children:[jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Ef?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/documents"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.document,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"Documents"})]}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Zf?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/integrations"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.integration,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"Integrations"})]}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Jf?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/llms"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"LLMs"})]})]})}),jsxRuntimeExports.jsx("div",{className:"h-1 bg-primary"})]})},Navbar=()=>{const{logoutHandler:ya,isLoggingOut:ma}=useAuth(),{stopApp:ba}=useTeams(),va=useNavigate(),[Ma,wl]=reactExports.useState(!1),[El,Sl]=reactExports.useState(!1),{pathname:Cl}=useLocation(),Mc=useMatches(),{id:dp}=Mc[Mc.length-1],pp=dp==="ui",hp=dp==="home-wizard"||dp?.startsWith("home-wizard"),Ef=dp==="home",Zf=dp==="deployment-detail",Jf=Cl.includes("design"),pg=Cl.includes("dashboard"),hg=dp==="agent-flow"||dp==="data-model"||dp==="agents"||dp==="workflow"||dp==="security"||dp==="settings"||pp,mg=dp==="config",{deploymentId:gg}=useParams(),yg=useAppStore(uE=>uE.recentlyVisitedDeployments),ay=()=>{ba(),va("/design/dashboard")},ly=()=>{ma||Sl(!0)},cy=()=>{Sl(!1),ya()},q1=()=>{Sl(!1)},r0=useIsAuthenticated();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(motion.div,{animate:{width:Ma?"200px":"72px"},className:"p-2 flex-col gap-1 border-r border-border-color overflow-hidden hidden lg:flex",onMouseEnter:()=>wl(!0),onMouseLeave:()=>wl(!1),children:[jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",hp?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/home"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Home",icon:icons.homeRoute,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",dp==="mission-control"||dp?.startsWith("mission-control-")?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/mission-control"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Mission Control",icon:icons.missionControl,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",Ef?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/monitoring"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Monitoring",icon:icons.home,isOpen:Ma})}),(Ef||Zf)&&yg.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1 ml-4",children:yg.map(uE=>{const V1=Zf&&uE.DeploymentId===gg;return jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-2.5 border-transparent border",V1?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va(`/deployment/${uE.DeploymentId}`),children:jsxRuntimeExports.jsx(NavbarItem,{label:uE.Repo,icon:icons.deploy,isOpen:Ma,isSmall:!0})},uE.DeploymentId)})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",pg||hg?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:ay,children:jsxRuntimeExports.jsx(NavbarItem,{label:"Agents",icon:icons.team,isOpen:Ma})}),Jf&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1 ml-4"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col mt-auto gap-2",children:[r0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",mg?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/configuration"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Configuration",icon:icons.setting,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{onClick:ly,className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",ma?"text-secondary-font cursor-not-allowed opacity-60":"text-secondary-font hover:selected-tab"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Logout",icon:icons.logout,isOpen:Ma,isLoading:ma})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-end px-4 py-2 cursor-pointer",onClick:ay,children:[jsxRuntimeExports.jsx("img",{src:"/assets/fractl-logo-small.png",alt:"Fractl Logo",className:"w-6 max-w-6 opacity-80 hover:opacity-100 transition-opacity"}),jsxRuntimeExports.jsx(AnimatePresence,{initial:!1,children:Ma&&jsxRuntimeExports.jsx(motion.span,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.2},className:"ml-3 whitespace-nowrap text-sm tracking-widest",children:"FRACTL"},"fractl-label")})]})]})]}),jsxRuntimeExports.jsx(MobileNavbar,{pathname:Cl,routeId:dp,navigate:va,handleLogoutClick:ly,handleNavigateToDashboard:ay,isLoggingOut:ma}),reactDomExports.createPortal(jsxRuntimeExports.jsx(LogoutConfirmationModal,{isOpen:El,onConfirm:cy,onCancel:q1,isLoggingOut:ma}),document.body)]})},ResolverSelector=({resolvers:ya,onResolverSelect:ma,onCancel:ba,isValidating:va=!1,allowCustomResolver:Ma=!0})=>{const[wl,El]=reactExports.useState(null),[Sl,Cl]=reactExports.useState(!1),[Mc,dp]=reactExports.useState(""),[pp,hp]=reactExports.useState(""),[Ef,Zf]=reactExports.useState("main"),[Jf,pg]=reactExports.useState(""),hg=ya.filter(ay=>ay.Name.toLowerCase().includes(Jf.toLowerCase())||ay.Description?.toLowerCase().includes(Jf.toLowerCase())||ay.GitHubOrg?.toLowerCase().includes(Jf.toLowerCase())),mg=ay=>{El(ay)},gg=()=>{if(Sl){if(Mc&&pp){const ay={isCustom:!0,Name:`${Mc}/${pp}`,GitHubOrg:Mc,GitHubRepo:pp,Branch:Ef||"main",Description:"Custom resolver"};ma(ay)}}else wl&&ma(wl)},yg=ay=>{if(ay.Icon)return jsxRuntimeExports.jsx("img",{src:ay.Icon,alt:ay.Name,className:"w-8 h-8 object-contain",onError:cy=>{cy.target.style.display="none"}});const ly={OpenAPI:"mdi:api","Camel-XML":"simple-icons:apachecamel",Team:"mdi:account-group",Jira:"logos:jira",Slack:"logos:slack-icon",Odoo:"simple-icons:odoo"};return jsxRuntimeExports.jsx(Icon,{icon:ly[ay.Type]||"material-symbols:code",className:"w-8 h-8"})};return jsxRuntimeExports.jsx("div",{className:"p-4 bg-secondary/50 border-t border-secondary",children:jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-base font-medium text-primary-font",children:"Select an Integration"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font mt-1",children:"Choose an integration source for your agent"})]}),jsxRuntimeExports.jsx("button",{onClick:ba,className:"text-secondary-font hover:text-primary-font transition-colors",disabled:va,children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"w-5 h-5"})})]}),!Sl&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 bg-primary rounded-md border border-transparent focus-within:border-blue focus-within:ring-1 focus-within:ring-blue",children:[jsxRuntimeExports.jsx("div",{className:"pl-3 flex-shrink-0",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:magnify",className:"w-4 h-4 text-secondary-font"})}),jsxRuntimeExports.jsx("input",{type:"text",value:Jf,onChange:ay=>pg(ay.target.value),placeholder:"Search integrations...",className:"flex-1 bg-transparent text-primary-font pr-4 py-2 text-sm outline-none"})]}),Ma&&jsxRuntimeExports.jsxs("div",{className:"flex gap-2 border-b border-secondary pb-2",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{Cl(!1),El(null)},className:`px-3 py-1.5 text-xs rounded-md transition-colors ${Sl?"bg-transparent text-secondary-font hover:text-primary-font":"bg-blue text-white"}`,children:"Available Integrations"}),jsxRuntimeExports.jsx("button",{onClick:()=>{Cl(!0),El(null)},className:`px-3 py-1.5 text-xs rounded-md transition-colors ${Sl?"bg-blue text-white":"bg-transparent text-secondary-font hover:text-primary-font"}`,children:"Custom Integration"})]}),jsxRuntimeExports.jsx(AnimatePresence,{mode:"wait",children:Sl?jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"space-y-3",children:jsxRuntimeExports.jsxs("div",{className:"bg-primary rounded-lg p-4 space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:information-outline",className:"w-4 h-4 text-blue flex-shrink-0 mt-0.5"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font",children:"Enter the GitHub organization and repository name of your custom integration. We'll validate it before proceeding."})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"GitHub Org"}),jsxRuntimeExports.jsx("input",{type:"text",value:Mc,onChange:ay=>dp(ay.target.value),placeholder:"e.g., fractl-io",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Repository"}),jsxRuntimeExports.jsx("input",{type:"text",value:pp,onChange:ay=>hp(ay.target.value),placeholder:"e.g., my-resolver",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Branch (optional)"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ef,onChange:ay=>Zf(ay.target.value),placeholder:"main",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]})]})},"custom-input"):jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"space-y-2 max-h-80 overflow-y-auto",children:hg.length===0?jsxRuntimeExports.jsxs("div",{className:"text-center py-8 text-secondary-font text-sm",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:folder-open-outline",className:"w-12 h-12 mx-auto mb-2 opacity-50"}),jsxRuntimeExports.jsx("p",{children:"No integrations found"}),Ma&&jsxRuntimeExports.jsx("button",{onClick:()=>Cl(!0),className:"mt-2 text-blue hover:text-blue-hover text-xs",children:"Try adding a custom integration"})]}):hg.map(ay=>jsxRuntimeExports.jsx(motion.div,{onClick:()=>mg(ay),className:`p-3 bg-primary rounded-lg cursor-pointer transition-all border ${wl?.Id===ay.Id?"border-blue shadow-md":"border-transparent hover:border-secondary"}`,whileHover:{scale:1.01},whileTap:{scale:.99},children:jsxRuntimeExports.jsxs("div",{className:"flex gap-3",children:[jsxRuntimeExports.jsx("div",{className:"flex-shrink-0 flex items-center justify-center w-10 h-10 bg-secondary rounded",children:yg(ay)}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium text-primary-font truncate",children:ay.Name}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font line-clamp-2 mt-0.5",children:ay.Description||"No description available"})]}),wl?.Id===ay.Id&&jsxRuntimeExports.jsx(Icon,{icon:"mdi:check-circle",className:"w-5 h-5 text-blue flex-shrink-0"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mt-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-secondary-font",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:github",className:"w-3 h-3"}),jsxRuntimeExports.jsxs("span",{className:"truncate",children:[ay.GitHubOrg,"/",ay.GitHubRepo]})]}),ay.Type&&jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 bg-secondary rounded text-secondary-font",children:ay.Type})]})]})]})},ay.Id))},"resolver-list")}),jsxRuntimeExports.jsxs("div",{className:"space-y-2 pt-2",children:[jsxRuntimeExports.jsx("button",{onClick:gg,disabled:va||!Sl&&!wl||Sl&&(!Mc||!pp),className:"w-full bg-blue hover:bg-blue-hover text-white px-4 py-2 rounded-md text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:va?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}),jsxRuntimeExports.jsx("span",{children:"Validating..."})]}):"Continue with Integration"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"flex-1 h-px bg-secondary"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-secondary-font",children:"or"}),jsxRuntimeExports.jsx("div",{className:"flex-1 h-px bg-secondary"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>ma(null),disabled:va,className:"w-full bg-secondary hover:bg-secondary/70 text-primary-font px-4 py-2 rounded-md text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:close-circle",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{children:"Skip & Build Without Integrations"})]})]})]})})};new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString();const createPlaygroundResolverFileSystem=async ya=>{const ma=`/resolvers/${ya.GitHubRepo}`;try{await openRepository(ma);const ba=`# ${ya.Name} Resolver
21755
+ `,DUMMY_DATA_MODEL={entities:[{name:"Ticket",attributes:[{name:"id",type:"UUID",primary:!0},{name:"title",type:"String",required:!0},{name:"description",type:"Text",required:!0},{name:"status",type:"Enum",values:["open","in_progress","pending","resolved","closed"]},{name:"priority",type:"Enum",values:["low","medium","high","critical"]},{name:"createdAt",type:"DateTime"},{name:"updatedAt",type:"DateTime"}],relationships:[{type:"belongsTo",target:"User",as:"customer"},{type:"belongsTo",target:"Agent",as:"assignedAgent"},{type:"hasMany",target:"Message"}]},{name:"User",attributes:[{name:"id",type:"UUID",primary:!0},{name:"email",type:"String",unique:!0},{name:"name",type:"String",required:!0},{name:"role",type:"Enum",values:["customer","agent","admin"]},{name:"createdAt",type:"DateTime"}],relationships:[{type:"hasMany",target:"Ticket"}]},{name:"Agent",attributes:[{name:"id",type:"UUID",primary:!0},{name:"userId",type:"UUID",required:!0},{name:"department",type:"String"},{name:"isAvailable",type:"Boolean",default:!0},{name:"maxTickets",type:"Integer",default:10}],relationships:[{type:"belongsTo",target:"User"},{type:"hasMany",target:"Ticket",as:"assignedTickets"}]},{name:"Message",attributes:[{name:"id",type:"UUID",primary:!0},{name:"content",type:"Text",required:!0},{name:"senderType",type:"Enum",values:["customer","agent","system"]},{name:"createdAt",type:"DateTime"}],relationships:[{type:"belongsTo",target:"Ticket"},{type:"belongsTo",target:"User",as:"sender"}]}]},DUMMY_CODE=`module agenticcrm.core
21756
+
21757
+ entity CRMConfig
21758
+ {
21759
+ id UUID @id @default(uuid()),
21760
+ gmailEmail String,
21761
+ ownerId String
21762
+ }
21763
+
21764
+ record ContactInfo
21765
+ {
21766
+ contactEmail String,
21767
+ contactFirstName String,
21768
+ contactLastName String,
21769
+ meetingTitle String,
21770
+ meetingBody String,
21771
+ meetingDate String
21772
+ }
21773
+
21774
+ record ContactSearchResult
21775
+ {
21776
+ contactFound Boolean,
21777
+ existingContactId String @optional
21778
+ }
21779
+
21780
+ record EmailFilterResult
21781
+ {
21782
+ shouldProcess Boolean,
21783
+ gmailOwnerEmail String @optional,
21784
+ hubspotOwnerId String @optional,
21785
+ emailSender String @optional,
21786
+ emailRecipients String @optional,
21787
+ emailSubject String @optional,
21788
+ emailBody String @optional,
21789
+ emailDate String @optional,
21790
+ emailThreadId String @optional
21791
+ }
21792
+
21793
+ record SkipResult
21794
+ {
21795
+ skipped Boolean,
21796
+ reason String
21797
+ }
21798
+
21799
+ event findContactByEmail
21800
+ {
21801
+ email String
21802
+ }
21803
+
21804
+ workflow findContactByEmail {
21805
+ {hubspot/Contact {email? findContactByEmail.email}} @as foundContacts;
21806
+ if (foundContacts.length > 0) {
21807
+ foundContacts @as [firstContact];
21808
+ {ContactSearchResult {
21809
+ contactFound true,
21810
+ existingContactId firstContact.id
21811
+ }}
21812
+ } else {
21813
+ {ContactSearchResult {
21814
+ contactFound false
21815
+ }}
21816
+ }
21817
+ }
21818
+
21819
+ event createHubspotContact
21820
+ {
21821
+ email String,
21822
+ firstName String,
21823
+ lastName String
21824
+ }
21825
+
21826
+ workflow createHubspotContact {
21827
+ {hubspot/Contact {
21828
+ email createHubspotContact.email,
21829
+ first_name createHubspotContact.firstName,
21830
+ last_name createHubspotContact.lastName
21831
+ }} @as contact;
21832
+ {ContactSearchResult {
21833
+ contactFound true,
21834
+ existingContactId contact.id
21835
+ }}
21836
+ }
21837
+
21838
+ agent filterEmail
21839
+ {
21840
+ llm "sonnet_llm",
21841
+ role "Understand email and analyze for CRM processing decisions.",
21842
+ instruction "You receive a complete message about an email...",
21843
+ retry "classifyRetry",
21844
+ responseSchema agenticcrm.core/EmailFilterResult
21845
+ }
21846
+
21847
+ decision emailShouldBeProcessed {
21848
+ case (shouldProcess == true) {
21849
+ ProcessEmail
21850
+ }
21851
+ case (shouldProcess == false) {
21852
+ SkipEmail
21853
+ }
21854
+ }
21855
+
21856
+ agent parseEmailInfo
21857
+ {
21858
+ llm "sonnet_llm",
21859
+ role "Extract contact information and meeting details from EmailFilterResult.",
21860
+ instruction "You have access to understand and parse the data extracted from EmailFilterResult...",
21861
+ retry "classifyRetry",
21862
+ responseSchema agenticcrm.core/ContactInfo
21863
+ }
21864
+
21865
+ decision contactExistsCheck {
21866
+ case (contactFound == true) {
21867
+ ContactExists
21868
+ }
21869
+ case (contactFound == false) {
21870
+ ContactNotFound
21871
+ }
21872
+ }
21873
+
21874
+ workflow skipProcessing {
21875
+ {SkipResult {
21876
+ skipped true,
21877
+ reason "Email filtered out (automated sender or newsletter)"
21878
+ }}
21879
+ }
21880
+
21881
+ flow crmManager {
21882
+ filterEmail --> emailShouldBeProcessed
21883
+ emailShouldBeProcessed --> "SkipEmail" skipProcessing
21884
+ emailShouldBeProcessed --> "ProcessEmail" parseEmailInfo
21885
+ parseEmailInfo --> {findContactByEmail {email parseEmailInfo.contactEmail}}
21886
+ findContactByEmail --> contactExistsCheck
21887
+ contactExistsCheck --> "ContactExists" {hubspot/Meeting {meeting_title parseEmailInfo.meetingTitle, meeting_body parseEmailInfo.meetingBody, meeting_date parseEmailInfo.meetingDate, owner EmailFilterResult.hubspotOwnerId, associated_contacts ContactSearchResult.existingContactId}}
21888
+ contactExistsCheck --> "ContactNotFound" {createHubspotContact {email parseEmailInfo.contactEmail, firstName parseEmailInfo.contactFirstName, lastName parseEmailInfo.contactLastName}}
21889
+ createHubspotContact --> {hubspot/Meeting {meeting_title parseEmailInfo.meetingTitle, meeting_body parseEmailInfo.meetingBody, meeting_date parseEmailInfo.meetingDate, owner EmailFilterResult.hubspotOwnerId, associated_contacts ContactSearchResult.existingContactId}}
21890
+ }
21891
+
21892
+ @public agent crmManager
21893
+ {
21894
+ llm "gpt_llm",
21895
+ role "You coordinate the complete CRM workflow: filter the email, extract contact and meeting information, find or create the contact in HubSpot, and create the meeting with proper associations."
21896
+ }
21897
+
21898
+ workflow @after create:gmail/Email {
21899
+ {CRMConfig? {}} @as [crmConfig];
21900
+ "Email sender is: " + gmail/Email.sender + " Email recipients are: " + gmail/Email.recipients + " Email date is: " + gmail/Email.date + " Email subject is: " + gmail/Email.subject + " Email body is: " + gmail/Email.body + " Email thread_id is: " + gmail/Email.thread_id + " Gmail main owner email is: " + crmConfig.gmailEmail + " Hubspot Owner id is: " + crmConfig.ownerId @as completeMessage;
21901
+ console.log(completeMessage);
21902
+ {crmManager {message completeMessage}}
21903
+ }
21904
+ `,DUMMY_WORKFLOW={name:"TicketManagementWorkflow",triggers:[{event:"ticket.created",action:"AssignTicket"},{event:"ticket.updated",action:"NotifyStakeholders"},{event:"ticket.resolved",action:"SendSurvey"}],actions:[{name:"AssignTicket",type:"function",description:"Auto-assign ticket to available agent based on workload",steps:["Find available agents in department","Calculate current workload for each agent","Assign to agent with lowest workload","Send notification to assigned agent"]},{name:"NotifyStakeholders",type:"notification",description:"Send updates to all parties involved in the ticket",channels:["email","in-app","push"],recipients:["customer","assignedAgent","watchers"]},{name:"SendSurvey",type:"email",description:"Send satisfaction survey after ticket resolution",delay:"24 hours",template:"satisfaction-survey"},{name:"EscalateTicket",type:"function",description:"Escalate ticket if not resolved within SLA",trigger:"sla.breached",steps:["Update ticket priority to critical","Notify team lead","Add to escalation dashboard"]}],rules:[{name:"AutoCloseResolved",condition:'ticket.status == "resolved" && daysSinceUpdate > 7',action:"Close ticket automatically"},{name:"VIPPriority",condition:'customer.tier == "enterprise"',action:"Set priority to high"}]},HomeWizard=({onClose:ya})=>{const ma=useNavigate(),[ba,va]=reactExports.useState(1),[Ma,wl]=reactExports.useState({currentStep:1,input:{instructions:"",files:[]},requirements:DUMMY_REQUIREMENTS,plan:DUMMY_PLAN,generatedTeam:{dataModel:DUMMY_DATA_MODEL,workflow:DUMMY_WORKFLOW},code:DUMMY_CODE}),El=reactExports.useCallback(V1=>{wl(H1=>({...H1,input:{...H1.input,instructions:V1}}))},[]),Sl=reactExports.useCallback(V1=>{wl(H1=>({...H1,input:{...H1.input,files:V1}}))},[]),Cl=reactExports.useCallback(V1=>{wl(H1=>({...H1,requirements:V1}))},[]),Mc=reactExports.useCallback(V1=>{wl(H1=>({...H1,plan:V1}))},[]),dp=reactExports.useCallback(V1=>{va(H1=>V1>=1&&V1<=WIZARD_STEPS.length?V1:H1)},[]),pp=reactExports.useCallback(V1=>V1<=ba||V1===ba+1,[ba]),hp=reactExports.useCallback(()=>{wl(V1=>({...V1,requirements:DUMMY_REQUIREMENTS})),va(2)},[]),Ef=reactExports.useCallback(()=>{wl(V1=>({...V1,plan:DUMMY_PLAN})),va(3)},[]),Zf=reactExports.useCallback(()=>{wl(V1=>({...V1,generatedTeam:{dataModel:DUMMY_DATA_MODEL,workflow:DUMMY_WORKFLOW}})),va(4)},[]),Jf=reactExports.useCallback(()=>{wl(V1=>({...V1,code:DUMMY_CODE})),va(5)},[]),pg=reactExports.useCallback(()=>{y$b.success("Team generated successfully!"),ma("/design/dashboard")},[ma]),hg=reactExports.useCallback(()=>dp(1),[dp]),mg=reactExports.useCallback(()=>dp(2),[dp]),gg=reactExports.useCallback(()=>dp(3),[dp]),yg=reactExports.useCallback(()=>dp(4),[dp]),ay=reactExports.useCallback(V1=>{wl(H1=>({...H1,generatedTeam:{...H1.generatedTeam,dataModel:V1}}))},[]),ly=reactExports.useCallback(V1=>{wl(H1=>({...H1,generatedTeam:{...H1.generatedTeam,workflow:V1}}))},[]),cy=reactExports.useCallback(V1=>{wl(H1=>({...H1,code:V1}))},[]),q1=reactExports.useCallback(V1=>{V1<ba&&dp(V1)},[ba,dp]),r0=V1=>{switch(V1){case 1:return jsxRuntimeExports.jsx(InputStep$1,{instructions:Ma.input.instructions,onInstructionsChange:El,onFilesChange:Sl,onContinue:hp});case 2:return jsxRuntimeExports.jsx(RequirementsStep$1,{requirements:Ma.requirements,onRequirementsChange:Cl,onBack:hg,onContinue:Ef});case 3:return jsxRuntimeExports.jsx(PlanStep$1,{plan:Ma.plan,onPlanChange:Mc,onBack:mg,onContinue:Zf});case 4:return jsxRuntimeExports.jsx(GenerateTeamStep$1,{dataModel:Ma.generatedTeam.dataModel,workflow:Ma.generatedTeam.workflow,onDataModelChange:ay,onWorkflowChange:ly,onBack:gg,onGenerate:Jf});case 5:return jsxRuntimeExports.jsx(CodeStep$1,{code:Ma.code,onCodeChange:cy,onBack:yg,onGenerate:pg});default:return null}},uE=reactExports.useMemo(()=>WIZARD_STEPS.map(V1=>r0(V1.id)),[Ma]);return jsxRuntimeExports.jsxs("div",{className:"flex flex-col h-full w-full",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center border-b border-border-color bg-[rgba(255,255,255,0.02)]",children:[jsxRuntimeExports.jsx("div",{className:"flex-1",children:jsxRuntimeExports.jsx(WizardStepper,{currentStep:ba,onStepClick:q1})}),ya&&jsxRuntimeExports.jsx("button",{type:"button",className:"cursor-pointer p-1.5 mr-3 rounded-full bg-primary border border-border-color/60 text-primary-font hover:border-border-color transition-colors",onClick:ya,children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"text-lg"})})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 flex flex-col overflow-hidden",children:jsxRuntimeExports.jsx(WizardCarousel$1,{currentStep:ba,totalSteps:WIZARD_STEPS.length,onStepChange:dp,canNavigateToStep:pp,children:uE})})]})},NavbarItem=({label:ya,icon:ma,isOpen:ba,isSmall:va=!1,isLoading:Ma=!1})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:Ma?jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:`${va?"w-4.5 h-4.5":"w-6 h-6"} animate-spin`}):jsxRuntimeExports.jsx(Icon,{icon:ma,className:va?"w-4.5 h-4.5":"w-6 h-6"})}),jsxRuntimeExports.jsx(AnimatePresence,{initial:!1,children:ba&&jsxRuntimeExports.jsx(motion.span,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.2},className:"ml-3 whitespace-nowrap text-sm",children:Ma?"Signing out...":ya},"label")})]}),MobileNavbarItem=({label:ya,icon:ma,isActive:ba,onClick:va})=>jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center justify-center p-2 rounded-md cursor-pointer transition-all duration-300 relative group",ba?"text-font-table-header bg-table-header shadow-lg":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:va,children:[jsxRuntimeExports.jsxs("div",{className:classNames("relative mb-1 transition-transform duration-300",ba?"scale-110":"group-hover:scale-105"),children:[jsxRuntimeExports.jsx(Icon,{icon:ma,className:"w-5 h-5"}),ba&&jsxRuntimeExports.jsx("div",{className:"absolute -top-1 -right-1 w-1.5 h-1.5 bg-font-table-header rounded-full animate-pulse"})]}),jsxRuntimeExports.jsx("span",{className:classNames("text-xs font-medium transition-all duration-300",ba?"text-font-table-header":"text-secondary-font group-hover:text-font-table-header"),children:ya}),ba&&jsxRuntimeExports.jsx("div",{className:"absolute -bottom-0.5 left-1/2 transform -translate-x-1/2 w-6 h-0.5 bg-font-table-header rounded-full"})]}),LogoutConfirmationModal=({isOpen:ya,onConfirm:ma,onCancel:ba,isLoggingOut:va})=>{const Ma=useOutsideClickHandler(ba);return ya?jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:Ma,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Sign Out"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"trash-icon",onClick:ba})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[jsxRuntimeExports.jsx("div",{className:"w-12 h-12 bg-blue-500/20 rounded-full flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:logout",className:"text-blue-500 text-xl"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-medium text-white",children:"Sign Out"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400",children:"Account logout"})]})]}),jsxRuntimeExports.jsx("p",{className:"text-gray-300 text-sm leading-relaxed",children:"Are you sure you want to sign out? You'll need to log in again to access your account."}),jsxRuntimeExports.jsx("div",{className:"mt-4 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg",children:jsxRuntimeExports.jsxs("p",{className:"text-blue-400 text-xs",children:[jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:info-outline",className:"inline mr-1"}),"Your session will be cleared and you'll be redirected to the login page."]})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("button",{className:"cancel-button",onClick:ba,disabled:va,children:"Cancel"}),jsxRuntimeExports.jsx("button",{className:"sure-button",onClick:ma,disabled:va,children:va?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CircularProgress,{size:16,color:"inherit"}),"Signing out..."]}):"Sign Out"})]})]})}):null},MobileNavbar=({pathname:ya,routeId:ma,navigate:ba,handleLogoutClick:va,handleNavigateToDashboard:Ma,isLoggingOut:wl})=>{const El=ma==="home-wizard"||(ma?.startsWith("home-wizard")??!1),Sl=ma==="home",Cl=ya.includes("dashboard"),Mc=ma==="mission-control"||(ma?.startsWith("mission-control")??!1),dp=ma==="agent-flow"||ma==="data-model"||ma==="agents"||ma==="workflow"||ma==="security"||ma==="settings"||ma==="ui",pp=ma==="marketplace",hp=ma==="user-configuration",Ef=ma==="documents",Zf=ma==="integrations",Jf=ma==="llms";return jsxRuntimeExports.jsxs("div",{className:"lg:hidden fixed bottom-0 left-0 right-0 z-500",children:[jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-primary border-t border-border-color"}),jsxRuntimeExports.jsxs("div",{className:"relative flex items-center justify-around p-2 pb-3",children:[jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Home",icon:icons.homeRoute,isActive:El,onClick:()=>ba("/home")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Monitoring",icon:icons.home,isActive:Sl,onClick:()=>ba("/monitoring")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Agents",icon:icons.team,isActive:Cl||dp,onClick:Ma}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Mission Control",icon:icons.missionControl,isActive:Mc,onClick:()=>ba("/mission-control")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Hub",icon:icons.hub,isActive:pp,onClick:()=>ba("/hub")}),jsxRuntimeExports.jsx(MobileNavbarItem,{label:"Settings",icon:icons.setting,isActive:hp,onClick:()=>ba("/configuration")}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center justify-center p-2 rounded-md cursor-pointer transition-all duration-300 relative group",wl?"text-font-table-header cursor-not-allowed opacity-60":"text-secondary-font hover:text-red-400 hover:bg-table-header/50"),onClick:va,children:[jsxRuntimeExports.jsx("div",{className:classNames("relative mb-1 transition-transform duration-300",wl?"animate-pulse":"group-hover:scale-105 group-hover:rotate-12"),children:jsxRuntimeExports.jsx(Icon,{icon:wl?"mdi:loading":icons.logout,className:"w-5 h-5"})}),jsxRuntimeExports.jsx("span",{className:classNames("text-xs font-medium transition-all duration-300",wl?"text-font-table-header":"text-secondary-font group-hover:text-red-400"),children:wl?"Signing out...":"Logout"})]})]}),(Cl||dp||Ef||Zf||Jf)&&jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"border-t border-border-color bg-primary/95 backdrop-blur-sm",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-around p-2",children:[jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Ef?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/documents"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.document,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"Documents"})]}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Zf?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/integrations"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.integration,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"Integrations"})]}),jsxRuntimeExports.jsxs("div",{className:classNames("flex flex-col items-center p-2 rounded-md cursor-pointer transition-all duration-300",Jf?"bg-table-header text-font-table-header":"text-secondary-font hover:text-font-table-header hover:bg-table-header/50"),onClick:()=>ba("/design/llms"),children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,className:"w-4 h-4 mb-1"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"LLMs"})]})]})}),jsxRuntimeExports.jsx("div",{className:"h-1 bg-primary"})]})},Navbar=()=>{const{logoutHandler:ya,isLoggingOut:ma}=useAuth(),{stopApp:ba}=useTeams(),va=useNavigate(),[Ma,wl]=reactExports.useState(!1),[El,Sl]=reactExports.useState(!1),{pathname:Cl}=useLocation(),Mc=useMatches(),{id:dp}=Mc[Mc.length-1],pp=dp==="ui",hp=dp==="home-wizard"||dp?.startsWith("home-wizard"),Ef=dp==="home",Zf=dp==="deployment-detail",Jf=Cl.includes("design"),pg=Cl.includes("dashboard"),hg=dp==="agent-flow"||dp==="data-model"||dp==="agents"||dp==="workflow"||dp==="security"||dp==="settings"||pp,mg=dp==="config",{deploymentId:gg}=useParams(),yg=useAppStore(uE=>uE.recentlyVisitedDeployments),ay=()=>{ba(),va("/design/dashboard")},ly=()=>{ma||Sl(!0)},cy=()=>{Sl(!1),ya()},q1=()=>{Sl(!1)},r0=useIsAuthenticated();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(motion.div,{animate:{width:Ma?"200px":"72px"},className:"p-2 flex-col gap-1 border-r border-border-color overflow-hidden hidden lg:flex",onMouseEnter:()=>wl(!0),onMouseLeave:()=>wl(!1),children:[jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",hp?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/home"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Home",icon:icons.homeRoute,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",dp==="mission-control"||dp?.startsWith("mission-control-")?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/mission-control"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Mission Control",icon:icons.missionControl,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",Ef?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/monitoring"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Monitoring",icon:icons.home,isOpen:Ma})}),(Ef||Zf)&&yg.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1 ml-4",children:yg.map(uE=>{const V1=Zf&&uE.DeploymentId===gg;return jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-2.5 border-transparent border",V1?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va(`/deployment/${uE.DeploymentId}`),children:jsxRuntimeExports.jsx(NavbarItem,{label:uE.Repo,icon:icons.deploy,isOpen:Ma,isSmall:!0})},uE.DeploymentId)})}),jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",pg||hg?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:ay,children:jsxRuntimeExports.jsx(NavbarItem,{label:"Agents",icon:icons.team,isOpen:Ma})}),Jf&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1 ml-4"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col mt-auto gap-2",children:[r0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",mg?"selected-tab":"text-secondary-font hover:selected-tab"),onClick:()=>va("/configuration"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Configuration",icon:icons.setting,isOpen:Ma})}),jsxRuntimeExports.jsx("div",{onClick:ly,className:classNames("h-10 cursor-pointer relative rounded-md flex items-center p-2 px-4 border-transparent border",ma?"text-secondary-font cursor-not-allowed opacity-60":"text-secondary-font hover:selected-tab"),children:jsxRuntimeExports.jsx(NavbarItem,{label:"Logout",icon:icons.logout,isOpen:Ma,isLoading:ma})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-end px-4 py-2 cursor-pointer",onClick:ay,children:[jsxRuntimeExports.jsx("img",{src:"/assets/fractl-logo-small.png",alt:"Fractl Logo",className:"w-6 max-w-6 opacity-80 hover:opacity-100 transition-opacity"}),jsxRuntimeExports.jsx(AnimatePresence,{initial:!1,children:Ma&&jsxRuntimeExports.jsx(motion.span,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.2},className:"ml-3 whitespace-nowrap text-sm tracking-widest",children:"FRACTL"},"fractl-label")})]})]})]}),jsxRuntimeExports.jsx(MobileNavbar,{pathname:Cl,routeId:dp,navigate:va,handleLogoutClick:ly,handleNavigateToDashboard:ay,isLoggingOut:ma}),reactDomExports.createPortal(jsxRuntimeExports.jsx(LogoutConfirmationModal,{isOpen:El,onConfirm:cy,onCancel:q1,isLoggingOut:ma}),document.body)]})},ResolverSelector=({resolvers:ya,onResolverSelect:ma,onCancel:ba,isValidating:va=!1,allowCustomResolver:Ma=!0})=>{const[wl,El]=reactExports.useState(null),[Sl,Cl]=reactExports.useState(!1),[Mc,dp]=reactExports.useState(""),[pp,hp]=reactExports.useState(""),[Ef,Zf]=reactExports.useState("main"),[Jf,pg]=reactExports.useState(""),hg=ya.filter(ay=>ay.Name.toLowerCase().includes(Jf.toLowerCase())||ay.Description?.toLowerCase().includes(Jf.toLowerCase())||ay.GitHubOrg?.toLowerCase().includes(Jf.toLowerCase())),mg=ay=>{El(ay)},gg=()=>{if(Sl){if(Mc&&pp){const ay={isCustom:!0,Name:`${Mc}/${pp}`,GitHubOrg:Mc,GitHubRepo:pp,Branch:Ef||"main",Description:"Custom resolver"};ma(ay)}}else wl&&ma(wl)},yg=ay=>{if(ay.Icon)return jsxRuntimeExports.jsx("img",{src:ay.Icon,alt:ay.Name,className:"w-8 h-8 object-contain",onError:cy=>{cy.target.style.display="none"}});const ly={OpenAPI:"mdi:api","Camel-XML":"simple-icons:apachecamel",Team:"mdi:account-group",Jira:"logos:jira",Slack:"logos:slack-icon",Odoo:"simple-icons:odoo"};return jsxRuntimeExports.jsx(Icon,{icon:ly[ay.Type]||"material-symbols:code",className:"w-8 h-8"})};return jsxRuntimeExports.jsx("div",{className:"p-4 bg-secondary/50 border-t border-secondary",children:jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-base font-medium text-primary-font",children:"Select an Integration"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font mt-1",children:"Choose an integration source for your agent"})]}),jsxRuntimeExports.jsx("button",{onClick:ba,className:"text-secondary-font hover:text-primary-font transition-colors",disabled:va,children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"w-5 h-5"})})]}),!Sl&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 bg-primary rounded-md border border-transparent focus-within:border-blue focus-within:ring-1 focus-within:ring-blue",children:[jsxRuntimeExports.jsx("div",{className:"pl-3 flex-shrink-0",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:magnify",className:"w-4 h-4 text-secondary-font"})}),jsxRuntimeExports.jsx("input",{type:"text",value:Jf,onChange:ay=>pg(ay.target.value),placeholder:"Search integrations...",className:"flex-1 bg-transparent text-primary-font pr-4 py-2 text-sm outline-none"})]}),Ma&&jsxRuntimeExports.jsxs("div",{className:"flex gap-2 border-b border-secondary pb-2",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{Cl(!1),El(null)},className:`px-3 py-1.5 text-xs rounded-md transition-colors ${Sl?"bg-transparent text-secondary-font hover:text-primary-font":"bg-blue text-white"}`,children:"Available Integrations"}),jsxRuntimeExports.jsx("button",{onClick:()=>{Cl(!0),El(null)},className:`px-3 py-1.5 text-xs rounded-md transition-colors ${Sl?"bg-blue text-white":"bg-transparent text-secondary-font hover:text-primary-font"}`,children:"Custom Integration"})]}),jsxRuntimeExports.jsx(AnimatePresence,{mode:"wait",children:Sl?jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"space-y-3",children:jsxRuntimeExports.jsxs("div",{className:"bg-primary rounded-lg p-4 space-y-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:information-outline",className:"w-4 h-4 text-blue flex-shrink-0 mt-0.5"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font",children:"Enter the GitHub organization and repository name of your custom integration. We'll validate it before proceeding."})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"GitHub Org"}),jsxRuntimeExports.jsx("input",{type:"text",value:Mc,onChange:ay=>dp(ay.target.value),placeholder:"e.g., fractl-io",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Repository"}),jsxRuntimeExports.jsx("input",{type:"text",value:pp,onChange:ay=>hp(ay.target.value),placeholder:"e.g., my-resolver",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Branch (optional)"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ef,onChange:ay=>Zf(ay.target.value),placeholder:"main",className:"w-full bg-secondary text-primary-font px-3 py-2 rounded-md text-sm focus:outline-none focus:ring-1 focus:ring-blue"})]})]})},"custom-input"):jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"space-y-2 max-h-80 overflow-y-auto",children:hg.length===0?jsxRuntimeExports.jsxs("div",{className:"text-center py-8 text-secondary-font text-sm",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:folder-open-outline",className:"w-12 h-12 mx-auto mb-2 opacity-50"}),jsxRuntimeExports.jsx("p",{children:"No integrations found"}),Ma&&jsxRuntimeExports.jsx("button",{onClick:()=>Cl(!0),className:"mt-2 text-blue hover:text-blue-hover text-xs",children:"Try adding a custom integration"})]}):hg.map(ay=>jsxRuntimeExports.jsx(motion.div,{onClick:()=>mg(ay),className:`p-3 bg-primary rounded-lg cursor-pointer transition-all border ${wl?.Id===ay.Id?"border-blue shadow-md":"border-transparent hover:border-secondary"}`,whileHover:{scale:1.01},whileTap:{scale:.99},children:jsxRuntimeExports.jsxs("div",{className:"flex gap-3",children:[jsxRuntimeExports.jsx("div",{className:"flex-shrink-0 flex items-center justify-center w-10 h-10 bg-secondary rounded",children:yg(ay)}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium text-primary-font truncate",children:ay.Name}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font line-clamp-2 mt-0.5",children:ay.Description||"No description available"})]}),wl?.Id===ay.Id&&jsxRuntimeExports.jsx(Icon,{icon:"mdi:check-circle",className:"w-5 h-5 text-blue flex-shrink-0"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mt-2 text-xs",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-secondary-font",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:github",className:"w-3 h-3"}),jsxRuntimeExports.jsxs("span",{className:"truncate",children:[ay.GitHubOrg,"/",ay.GitHubRepo]})]}),ay.Type&&jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 bg-secondary rounded text-secondary-font",children:ay.Type})]})]})]})},ay.Id))},"resolver-list")}),jsxRuntimeExports.jsxs("div",{className:"space-y-2 pt-2",children:[jsxRuntimeExports.jsx("button",{onClick:gg,disabled:va||!Sl&&!wl||Sl&&(!Mc||!pp),className:"w-full bg-blue hover:bg-blue-hover text-white px-4 py-2 rounded-md text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:va?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}),jsxRuntimeExports.jsx("span",{children:"Validating..."})]}):"Continue with Integration"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"flex-1 h-px bg-secondary"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-secondary-font",children:"or"}),jsxRuntimeExports.jsx("div",{className:"flex-1 h-px bg-secondary"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>ma(null),disabled:va,className:"w-full bg-secondary hover:bg-secondary/70 text-primary-font px-4 py-2 rounded-md text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:close-circle",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{children:"Skip & Build Without Integrations"})]})]})]})})};new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString(),new Date().toISOString();const createPlaygroundResolverFileSystem=async ya=>{const ma=`/resolvers/${ya.GitHubRepo}`;try{await openRepository(ma);const ba=`# ${ya.Name} Resolver
21756
21905
 
21757
21906
  ${ya.Description}
21758
21907
 
@@ -21972,10 +22121,10 @@ Try: "Create a workflow to process orders"`;case"agents":return`Hi! I can help y
21972
22121
  Try: "Update the role to be more specific"`;default:return`Hi! I can help you build your application.
21973
22122
 
21974
22123
  Try asking me to create entities, workflows, or agents.`}}const IS_LOCAL_MODE$1=!0,GlobalCopilotSidebar=()=>{const ya=useLocation(),ma=useParams(),{isCopilotSidebarOpen:ba,setIsCopilotSidebarOpen:va,addCopilotMessage:Ma,copilotConversations:wl,incrementModuleDbChangeCount:El,user:Sl,selectedEntity:Cl,selectedWorkflow:Mc,selectedAgentId:dp,setSelectedEntity:pp,setSelectedWorkflow:hp,setSelectedAgentId:Ef}=useAppStore(),Zf=reactExports.useMemo(()=>detectContext(ya,ma,{selectedEntity:Cl,selectedWorkflow:Mc,selectedAgentId:dp}),[ya,ma,Cl,Mc,dp]),Jf=reactExports.useMemo(()=>{const r0=`${Zf.teamName}/${Zf.moduleName}`,uE=Zf.section||"general",V1=Zf.componentName||"";return V1?`${r0}/${uE}/${V1}`:`${r0}/${uE}`},[Zf.teamName,Zf.moduleName,Zf.section,Zf.componentName]),[pg,hg]=reactExports.useState(""),[mg,gg]=reactExports.useState(!1),yg=reactExports.useMemo(()=>{const r0=wl[Jf];return r0&&r0.length>0?r0:[{id:crypto.randomUUID(),message:getWelcomeMessage(Zf),sender:"assistant",timestamp:new Date().toISOString()}]},[Jf,wl,Zf]);reactExports.useEffect(()=>{const r0=wl[Jf];(!r0||r0.length===0)&&Ma(Jf,{message:getWelcomeMessage(Zf),sender:"assistant"})},[Jf,Zf,wl,Ma]);const ay=reactExports.useCallback(()=>{va(!1)},[va]),ly=reactExports.useCallback(()=>{pp(null),hp(null),Ef(null)},[pp,hp,Ef]),cy=useOutsideClickHandler(ay);reactExports.useEffect(()=>{const r0=uE=>{uE.key==="Escape"&&ba&&ay()};return document.addEventListener("keydown",r0),()=>document.removeEventListener("keydown",r0)},[ba,ay]);const q1=async r0=>{if(r0.preventDefault(),!pg.trim()||mg)return;const uE=pg.trim();Ma(Jf,{message:uE,sender:"user"}),hg(""),gg(!0);try{if(Sl?.Anthropic?.Key&&Sl.Anthropic.Key.length>0&&!uE.startsWith("@manual")){const H1=Sl?.GitHub?.Username,O_=Sl?.GitHub?.Token;if(!IS_LOCAL_MODE$1&&(!H1||!O_||!Zf.moduleName||Zf.teamName),IS_LOCAL_MODE$1&&(!Zf.moduleName||!Zf.teamName)){Ma(Jf,{message:"❌ Context not configured. Please ensure you are in a valid module.",sender:"assistant"});return}let aE=Zf.componentName;aE&&aE.includes("/")&&(aE=aE.split("/").pop()),console.log("🤖 Copilot context:",{section:Zf.section,originalComponentName:Zf.componentName,cleanComponentName:aE,componentType:Zf.componentType,moduleName:Zf.moduleName,teamName:Zf.teamName});const P_=await copilotService.processRequest({userMessage:uE,moduleName:Zf.moduleName,teamName:Zf.teamName,githubUsername:IS_LOCAL_MODE$1?void 0:H1,githubToken:IS_LOCAL_MODE$1?void 0:O_,componentName:aE,componentType:Zf.componentType});if(P_.success){El();const M_=[P_.analysis,"",IS_LOCAL_MODE$1?"✅ Changes applied locally!":"✅ Changes applied and pushed to GitHub!",P_.commitMessage?`📝 Commit: ${P_.commitMessage}`:""].filter(Boolean).join(`
21975
- `);Ma(Jf,{message:M_,sender:"assistant"})}else Ma(Jf,{message:`❌ AI processing failed: ${P_.error}`,sender:"assistant"})}else Ma(Jf,{message:"To use AI assistance, please configure your Anthropic API key in Settings.",sender:"assistant"})}catch(V1){Ma(Jf,{message:`Error: ${V1 instanceof Error?V1.message:"Unknown error"}`,sender:"assistant"})}finally{gg(!1)}};return ba?jsxRuntimeExports.jsxs(motion.div,{ref:cy,initial:{x:400},animate:{x:0},exit:{x:400},transition:{duration:.3,ease:"easeInOut"},className:"w-96 h-full border-l border-border-color bg-primary flex flex-col",style:{boxShadow:"var(--shadow-theme-box)"},children:[jsxRuntimeExports.jsx(CopilotHeader,{context:Zf,onClose:ay}),jsxRuntimeExports.jsx(CopilotChatUI,{messages:yg,input:pg,setInput:hg,isProcessing:mg,onSubmit:q1,placeholder:"Ask me to help...",context:Zf,onClearContext:ly})]}):null},IS_PLAYGROUND$1=!1,DesignLayout=()=>{const{teamName:ya,githubOrg:ma,moduleName:ba}=useParams(),va=useNavigate(),Ma=useLocation(),{state:wl}=Ma,El=useMatches(),Cl=(El.length>1?El[El.length-1].id:"")!=="settings",{currentTeam:Mc,isEditable:dp}=useTeams(),pp=isMarketplaceRepo(ya||"",ma),hp=(wl?.fromFork||wl?.pendingLocalProcessing)&&ba==="data-model",[Ef,Zf]=reactExports.useState(!1),[Jf,pg]=reactExports.useState(!1),[hg,mg]=reactExports.useState(!1),[gg,yg]=reactExports.useState(!1),[ay,ly]=reactExports.useState(!1),cy=useAppStore(wpe=>wpe.authReady),q1=useAppStore(wpe=>wpe.isAuthenticated),{pushToGitHub:r0,pushStatus:uE,isPushing:V1}=usePushToGitHub(),{isDeploying:H1,deployCurrentStep:O_,deployError:aE,deploySuccess:P_,deploySteps:M_,startDeployment:sN}=useDeploymentFlow(),{isCloning:AF,cloneAndProcess:$4,error:cN,loadingMessage:R4,processRepositoryForLocalMode:k4}=useRepositoryClone(),{setIsArchitectDrawerOpen:AQ}=useAppStore(),uN=useAppStore(wpe=>wpe.user),uee=useAppStore(wpe=>wpe.setCurrentAppGenerationContext),$pe=useAppStore(wpe=>wpe.getConversationHistory),Ppe=useAppStore(wpe=>wpe.isCopilotSidebarOpen),e2e=useAppStore(wpe=>wpe.setIsCopilotSidebarOpen);reactExports.useEffect(()=>{const wpe=async()=>{if(!(!ya||IS_PLAYGROUND$1))try{const Rht=await readMetadataFileFromGit(ya);if(Rht){console.log("✅ Loaded metadata from .agentlang.metadata.json");const tmt=wl?.generationContext,Sht=tmt?.appId?$pe(tmt.appId):void 0,bmt=tmt?.appId||`${ma||"unknown"}/${ya}`;uee({appId:bmt,hasHistory:!!Sht,conversationHistory:Sht||[],architecture:Rht,generationPrompt:Rht.generationPrompt,designPatterns:Rht.designPatterns,updateHistory:Rht.updateHistory})}else{const tmt=await readPackageJsonFromGit(ya);if(tmt?.agentlang){if(console.log("🔄 Found old metadata format in package.json, attempting migration..."),uN?.GitHub?.Username&&uN?.GitHub?.Token)try{await migratePackageJsonToMetadataFile(ya,tmt.agentlang,uN.GitHub.Username,uN.GitHub.Token);const Rmt=await readMetadataFileFromGit(ya,!0);if(Rmt){const mmt=wl?.generationContext,rmt=mmt?.appId?$pe(mmt.appId):void 0,pmt=mmt?.appId||`${ma||"unknown"}/${ya}`;uee({appId:pmt,hasHistory:!!rmt,conversationHistory:rmt||[],architecture:Rmt,generationPrompt:Rmt.generationPrompt,designPatterns:Rmt.designPatterns,updateHistory:Rmt.updateHistory}),console.log("✅ Migration complete, loaded migrated metadata");return}}catch(Rmt){console.error("Migration failed:",Rmt),console.log("Falling back to old format")}else console.warn("⚠️ GitHub credentials not available, migration skipped. Metadata will be regenerated on next copilot use.");const Sht=wl?.generationContext,bmt=Sht?.appId?$pe(Sht.appId):void 0,xmt=Sht?.appId||`${ma||"unknown"}/${ya}`;uee({appId:xmt,hasHistory:!!bmt,conversationHistory:bmt||[],architecture:tmt.agentlang.architecture,generationPrompt:tmt.agentlang.generationContext?.generationPrompt,designPatterns:tmt.agentlang.copilotContext?.knownPatterns||[]}),console.log("📋 Loaded metadata from package.json (legacy format)")}else console.log("📭 No metadata found for",ya,"- will be generated on first copilot use")}}catch(Rht){console.error("Failed to load architecture metadata:",Rht)}},t2e=async()=>{if(!(!ya||IS_PLAYGROUND$1||!uN?.GitHub?.Username||!uN?.GitHub?.Token))try{const Rht=getUserModuleNames();if(Rht.length===0)return;const tmt=ya.toLowerCase(),Sht=Rht.filter(Wpt=>{const Qpt=Wpt.toLowerCase(),Aht=Qpt.split(".")[0],Kpt=tmt.replace(/_/g,"");return Qpt.startsWith(tmt)||Aht===Kpt}),bmt=Sht.length>0?Sht[0]:Rht[0],{loadAgentCraftModule:xmt,executeStatement:Rmt}=await __vitePreload(async()=>{const{loadAgentCraftModule:Wpt,executeStatement:Qpt}=await Promise.resolve().then(()=>index$1);return{loadAgentCraftModule:Wpt,executeStatement:Qpt}},void 0),{fetchModule:mmt}=await __vitePreload(async()=>{const{fetchModule:Wpt}=await Promise.resolve().then(()=>module$1);return{fetchModule:Wpt}},void 0),{readMetadataFileFromGit:rmt,saveMetadataFileToGit:pmt}=await __vitePreload(async()=>{const{readMetadataFileFromGit:Wpt,saveMetadataFileToGit:Qpt}=await Promise.resolve().then(()=>utils);return{readMetadataFileFromGit:Wpt,saveMetadataFileToGit:Qpt}},void 0),{escapeAgentlangString:Tmt}=await __vitePreload(async()=>{const{escapeAgentlangString:Wpt}=await Promise.resolve().then(()=>index$6);return{escapeAgentlangString:Wpt}},void 0);console.log("🔄 Generating metadata on app load for",bmt),await xmt();const jmt=mmt(bmt)?.toString()||"",Zpt=await rmt(ya)||{},Ypt=`{AgentCraft/GenerateMetadata {message: "${Tmt(JSON.stringify({moduleName:bmt,dataModelRequest:"Analyze existing module",workflowRequest:"Analyze existing module",agentRequest:"Analyze existing module",generatedCode:jmt}))}"}}`,ipt=await Rmt(Ypt);let Mpe={};try{if(typeof ipt=="string"){const Wpt=ipt.match(/\{[\s\S]*\}/);Wpt&&(Mpe=JSON.parse(Wpt[0]),Mpe.content&&(Mpe=JSON.parse(Mpe.content)))}else if(typeof ipt=="object"&&ipt!==null){const Wpt=ipt.content;Wpt?Mpe=typeof Wpt=="string"?JSON.parse(Wpt):Wpt:Mpe=ipt}}catch(Wpt){console.warn("Failed to parse metadata result, using existing:",Wpt),Mpe={...Zpt}}Mpe.updateHistory=Zpt.updateHistory||[],Mpe.module&&(Mpe.module.lastUpdatedAt=new Date().toISOString());const Ope=JSON.stringify(Mpe,null,2);await pmt(ya,Ope,"Sync metadata on app load",uN.GitHub.Username,uN.GitHub.Token),console.log("✅ Metadata synced on app load")}catch(Rht){console.error("❌ Failed to refresh metadata on load:",Rht)}};wpe(),t2e();const Q_e=wl?.generationContext;if(Q_e?.appId&&Q_e?.hasHistory){const Rht=$pe(Q_e.appId);if(Rht){const tmt=useAppStore.getState().currentAppGenerationContext;uee({appId:Q_e.appId,hasHistory:!0,conversationHistory:Rht,architecture:tmt?.architecture,generationPrompt:tmt?.generationPrompt})}}return()=>{uee(void 0)}},[wl,ya,ma,$pe,uee,uN]),reactExports.useEffect(()=>{AQ(!1)},[AQ]),reactExports.useRef(null);const Vpt=Mc?`${Mc.GitHubOrg}/${Mc.GitHubRepo}`:null;reactExports.useEffect(()=>{!Mc||wl?.isNewTeam},[Vpt,wl?.isNewTeam,$4,va,Mc,pp]);const Gpt=reactExports.useRef(null);reactExports.useEffect(()=>{(async()=>{try{const t2e=detectAppType();let Q_e=await getAppInfo();if(t2e==="marketplace"&&ya&&ma&&(Q_e={type:"marketplace",org:ma,repo:ya,branch:"main"}),t2e==="regular"){const Epe=await fetch("http://localhost:4000/info");if(!Epe.ok||!(await Epe.json())?.name||ma!=="file"||!ya)return;Q_e={type:"regular",org:"file",repo:ya}}else if(ya!==Q_e?.repo||ma!==Q_e?.org)return;if(!Q_e)return;const Rht=`${Q_e.org}/${Q_e.repo}`;if(Gpt.current===Rht)return;Gpt.current=Rht;let tmt=null;if(pp)await $4(Mc),tmt=await readPackageJsonFromGit(Mc.GitHubRepo);else{tmt=await readPackageJson(Q_e);const Zpt=tmt?.name||Q_e.repo,Epe=`/${Q_e.repo}`;await k4(Epe,Q_e.repo,Zpt,Q_e.org,Q_e.branch||"main",tmt)}if(getUserModuleNames().length===0)return;const bmt=tmt?.name,xmt=getTeamModules(bmt);if(xmt.length===0)return;const Rmt=xmt[0],pmt=`/design/${xmt.some(Zpt=>{try{return fetchModule$2(Zpt).getAgents().length>0}catch{return!1}})?"agents":"data-model"}/${Q_e.org}/${Q_e.repo}/${Rmt}`;console.log("path",pmt);const Tmt=window.history.state?.usr||{},Cmt=Tmt.from==="/design/dashboard",jmt=Tmt.fromFork===!0||Tmt.pendingLocalProcessing===!0;(Cmt||jmt)&&va(pmt,{replace:!0,state:{}})}catch(t2e){console.error("Failed to clone and process repository in local mode:",t2e)}})()},[ya,ma,k4,va,pp,$4,Mc]),reactExports.useEffect(()=>{const wpe=t2e=>{(t2e.metaKey||t2e.ctrlKey)&&(t2e.key==="k"||t2e.key==="/")&&(t2e.preventDefault(),e2e(!Ppe))};return document.addEventListener("keydown",wpe),()=>document.removeEventListener("keydown",wpe)},[Ppe,e2e]);const xpe=reactExports.useCallback(()=>{r0(Mc)},[Mc,r0]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Jf&&reactDomExports.createPortal(jsxRuntimeExports.jsx(DeploymentConfiguration,{closeHandler:()=>pg(!1),onDeployStart:()=>sN({onBeforeStart:()=>pg(!1)})}),document.body),H1&&reactDomExports.createPortal(jsxRuntimeExports.jsx(LoadingOverlay,{steps:[...M_],currentStep:O_,isVisible:H1,statusMessage:P_?"Deployed successfully!":aE||void 0,isSuccess:P_,isError:!!aE,title:"Deploying App",subtitle:"Please wait while we save config, push to GitHub, and deploy..."}),document.body),hg&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AuthModal,{closeHandler:()=>mg(!1),onAuthSuccess:()=>{pg(!0)}}),document.body),gg&&reactDomExports.createPortal(jsxRuntimeExports.jsx(SettingsModal,{closeHandler:()=>yg(!1)}),document.body),ay&&Mc&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ForkMarketplace,{githubUrl:Mc.GithubUrl||"",githubOrg:Mc.GitHubOrg||"",githubRepo:Mc.GitHubRepo||Mc.Name,branch:Mc.Branch,closeHandler:()=>ly(!1)}),document.body),jsxRuntimeExports.jsx("div",{className:"flex flex-col h-screen ",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[jsxRuntimeExports.jsx(Navbar,{}),jsxRuntimeExports.jsx("div",{id:"editor",className:"flex flex-col flex-1 overflow-hidden",children:hp?jsxRuntimeExports.jsx(PageLoader,{message:"Setting up your app...",header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):AF?jsxRuntimeExports.jsx(PageLoader,{message:R4,header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):cN?jsxRuntimeExports.jsx(CanvasError,{message:cN}):jsxRuntimeExports.jsxs(ReactFlowProvider,{children:[jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[!1,jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:Mc?.GitHubRepo||icons.agent})}),jsxRuntimeExports.jsx("h4",{children:Mc?.Name}),jsxRuntimeExports.jsx(Branch,{}),Mc&&!pp&&jsxRuntimeExports.jsxs("div",{className:"relative flex flex-col items-center",children:[jsxRuntimeExports.jsx(TooltipComponent,{text:"Push to GitHub",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:xpe,style:{opacity:V1?.5:1,cursor:V1?"not-allowed":"pointer"},children:jsxRuntimeExports.jsx(Icon,{icon:"famicons:push"})})}),uE&&jsxRuntimeExports.jsx("div",{className:`absolute top-full left-1/2 -translate-x-1/2 mt-1 px-2 py-1 rounded text-xs whitespace-nowrap shadow-lg z-10 ${uE.isError?"bg-red-900 text-red-200":"bg-green-900 text-green-200"}`,children:uE.message})]}),!1]}),dp&&jsxRuntimeExports.jsxs("div",{className:"flex flex-1 gap-2 items-center text-sm min-w-0 max-w-2xl",children:[jsxRuntimeExports.jsx(DesignHistoryNavigationButtons,{}),jsxRuntimeExports.jsx(Search,{})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center text-sm",children:[jsxRuntimeExports.jsx(CodeEditor,{}),dp&&!IS_PLAYGROUND$1&&jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:pp?jsxRuntimeExports.jsx(TooltipComponent,{text:"Fork to workspace",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:()=>{ly(!0)},children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:source-fork"})})}):jsxRuntimeExports.jsx(TooltipComponent,{text:"Deploy",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:()=>{cy&&q1?pg(!0):mg(!0)},children:jsxRuntimeExports.jsx(Icon,{icon:icons.deploy})})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:"Settings",children:jsxRuntimeExports.jsx("div",{onClick:()=>yg(!0),className:"header-action-icon cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.setting})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:`Copilot (${navigator.platform.includes("Mac")?"⌘":"Ctrl"}+K)`,children:jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>e2e(!Ppe),className:`h-9 w-10 rounded-md cursor-pointer flex items-center justify-center bg-cover bg-center bg-no-repeat border border-white/20 shadow-md hover:border-white/40 hover:shadow-lg active:scale-95 duration-300 transition-all ${Ppe?"ring-2 ring-white/50 brightness-110":""}`,style:{backgroundImage:"url(/assets/fractl_coilot.gif)"},title:"Copilot"})})]})]}),Cl?jsxRuntimeExports.jsxs("div",{className:"relative flex flex-1 overflow-hidden",children:[jsxRuntimeExports.jsx("div",{className:"group absolute pt-1 w-full z-999 flex items-center justify-center",children:jsxRuntimeExports.jsx("button",{type:"button",className:`cursor-pointer transition-all duration-500 ease-in-out
22124
+ `);Ma(Jf,{message:M_,sender:"assistant"})}else Ma(Jf,{message:`❌ AI processing failed: ${P_.error}`,sender:"assistant"})}else Ma(Jf,{message:"To use AI assistance, please configure your Anthropic API key in Settings.",sender:"assistant"})}catch(V1){Ma(Jf,{message:`Error: ${V1 instanceof Error?V1.message:"Unknown error"}`,sender:"assistant"})}finally{gg(!1)}};return ba?jsxRuntimeExports.jsxs(motion.div,{ref:cy,initial:{x:400},animate:{x:0},exit:{x:400},transition:{duration:.3,ease:"easeInOut"},className:"w-96 h-full border-l border-border-color bg-primary flex flex-col",style:{boxShadow:"var(--shadow-theme-box)"},children:[jsxRuntimeExports.jsx(CopilotHeader,{context:Zf,onClose:ay}),jsxRuntimeExports.jsx(CopilotChatUI,{messages:yg,input:pg,setInput:hg,isProcessing:mg,onSubmit:q1,placeholder:"Ask me to help...",context:Zf,onClearContext:ly})]}):null},IS_PLAYGROUND$1=!1,DesignLayout=()=>{const{teamName:ya,githubOrg:ma,moduleName:ba}=useParams(),va=useNavigate(),Ma=useLocation(),{state:wl}=Ma,El=useMatches(),Cl=(El.length>1?El[El.length-1].id:"")!=="settings",{currentTeam:Mc,isEditable:dp}=useTeams(),pp=isMarketplaceRepo(ya||"",ma),hp=(wl?.fromFork||wl?.pendingLocalProcessing)&&ba==="data-model",[Ef,Zf]=reactExports.useState(!1),[Jf,pg]=reactExports.useState(!1),[hg,mg]=reactExports.useState(!1),[gg,yg]=reactExports.useState(!1),[ay,ly]=reactExports.useState(!1),cy=useAppStore(wpe=>wpe.authReady),q1=useAppStore(wpe=>wpe.isAuthenticated),{pushToGitHub:r0,pushStatus:uE,isPushing:V1}=usePushToGitHub(),{isDeploying:H1,deployCurrentStep:O_,deployError:aE,deploySuccess:P_,deploySteps:M_,startDeployment:sN}=useDeploymentFlow(),{isCloning:AF,cloneAndProcess:$4,error:cN,loadingMessage:R4,processRepositoryForLocalMode:k4}=useRepositoryClone(),{setIsArchitectDrawerOpen:AQ}=useAppStore(),uN=useAppStore(wpe=>wpe.user),uee=useAppStore(wpe=>wpe.setCurrentAppGenerationContext),$pe=useAppStore(wpe=>wpe.getConversationHistory),Ppe=useAppStore(wpe=>wpe.isCopilotSidebarOpen),e2e=useAppStore(wpe=>wpe.setIsCopilotSidebarOpen);reactExports.useEffect(()=>{const wpe=async()=>{if(!(!ya||IS_PLAYGROUND$1))try{const Rht=await readMetadataFileFromGit(ya);if(Rht){console.log("✅ Loaded metadata from .agentlang.metadata.json");const tmt=wl?.generationContext,Sht=tmt?.appId?$pe(tmt.appId):void 0,bmt=tmt?.appId||`${ma||"unknown"}/${ya}`;uee({appId:bmt,hasHistory:!!Sht,conversationHistory:Sht||[],architecture:Rht,generationPrompt:Rht.generationPrompt,designPatterns:Rht.designPatterns,updateHistory:Rht.updateHistory})}else{const tmt=await readPackageJsonFromGit(ya);if(tmt?.agentlang){if(console.log("🔄 Found old metadata format in package.json, attempting migration..."),uN?.GitHub?.Username&&uN?.GitHub?.Token)try{await migratePackageJsonToMetadataFile(ya,tmt.agentlang,uN.GitHub.Username,uN.GitHub.Token);const Rmt=await readMetadataFileFromGit(ya,!0);if(Rmt){const mmt=wl?.generationContext,rmt=mmt?.appId?$pe(mmt.appId):void 0,pmt=mmt?.appId||`${ma||"unknown"}/${ya}`;uee({appId:pmt,hasHistory:!!rmt,conversationHistory:rmt||[],architecture:Rmt,generationPrompt:Rmt.generationPrompt,designPatterns:Rmt.designPatterns,updateHistory:Rmt.updateHistory}),console.log("✅ Migration complete, loaded migrated metadata");return}}catch(Rmt){console.error("Migration failed:",Rmt),console.log("Falling back to old format")}else console.warn("⚠️ GitHub credentials not available, migration skipped. Metadata will be regenerated on next copilot use.");const Sht=wl?.generationContext,bmt=Sht?.appId?$pe(Sht.appId):void 0,xmt=Sht?.appId||`${ma||"unknown"}/${ya}`;uee({appId:xmt,hasHistory:!!bmt,conversationHistory:bmt||[],architecture:tmt.agentlang.architecture,generationPrompt:tmt.agentlang.generationContext?.generationPrompt,designPatterns:tmt.agentlang.copilotContext?.knownPatterns||[]}),console.log("📋 Loaded metadata from package.json (legacy format)")}else console.log("📭 No metadata found for",ya,"- will be generated on first copilot use")}}catch(Rht){console.error("Failed to load architecture metadata:",Rht)}},t2e=async()=>{if(!(!ya||IS_PLAYGROUND$1||!uN?.GitHub?.Username||!uN?.GitHub?.Token))try{const Rht=getUserModuleNames();if(Rht.length===0)return;const tmt=ya.toLowerCase(),Sht=Rht.filter(Wpt=>{const Qpt=Wpt.toLowerCase(),Aht=Qpt.split(".")[0],Kpt=tmt.replace(/_/g,"");return Qpt.startsWith(tmt)||Aht===Kpt}),bmt=Sht.length>0?Sht[0]:Rht[0],{loadAgentCraftModule:xmt,executeStatement:Rmt}=await __vitePreload(async()=>{const{loadAgentCraftModule:Wpt,executeStatement:Qpt}=await Promise.resolve().then(()=>index$1);return{loadAgentCraftModule:Wpt,executeStatement:Qpt}},void 0),{fetchModule:mmt}=await __vitePreload(async()=>{const{fetchModule:Wpt}=await Promise.resolve().then(()=>module$1);return{fetchModule:Wpt}},void 0),{readMetadataFileFromGit:rmt,saveMetadataFileToGit:pmt}=await __vitePreload(async()=>{const{readMetadataFileFromGit:Wpt,saveMetadataFileToGit:Qpt}=await Promise.resolve().then(()=>utils);return{readMetadataFileFromGit:Wpt,saveMetadataFileToGit:Qpt}},void 0),{escapeAgentlangString:Tmt}=await __vitePreload(async()=>{const{escapeAgentlangString:Wpt}=await Promise.resolve().then(()=>index$6);return{escapeAgentlangString:Wpt}},void 0);console.log("🔄 Generating metadata on app load for",bmt),await xmt();const jmt=mmt(bmt)?.toString()||"",Zpt=await rmt(ya)||{},Ypt=`{AgentCraft/GenerateMetadata {message: "${Tmt(JSON.stringify({moduleName:bmt,dataModelRequest:"Analyze existing module",workflowRequest:"Analyze existing module",agentRequest:"Analyze existing module",generatedCode:jmt}))}"}}`,ipt=await Rmt(Ypt);let Mpe={};try{if(typeof ipt=="string"){const Wpt=ipt.match(/\{[\s\S]*\}/);Wpt&&(Mpe=JSON.parse(Wpt[0]),Mpe.content&&(Mpe=JSON.parse(Mpe.content)))}else if(typeof ipt=="object"&&ipt!==null){const Wpt=ipt.content;Wpt?Mpe=typeof Wpt=="string"?JSON.parse(Wpt):Wpt:Mpe=ipt}}catch(Wpt){console.warn("Failed to parse metadata result, using existing:",Wpt),Mpe={...Zpt}}Mpe.updateHistory=Zpt.updateHistory||[],Mpe.module&&(Mpe.module.lastUpdatedAt=new Date().toISOString());const Ope=JSON.stringify(Mpe,null,2);await pmt(ya,Ope,"Sync metadata on app load",uN.GitHub.Username,uN.GitHub.Token),console.log("✅ Metadata synced on app load")}catch(Rht){console.error("❌ Failed to refresh metadata on load:",Rht)}};wpe(),t2e();const Q_e=wl?.generationContext;if(Q_e?.appId&&Q_e?.hasHistory){const Rht=$pe(Q_e.appId);if(Rht){const tmt=useAppStore.getState().currentAppGenerationContext;uee({appId:Q_e.appId,hasHistory:!0,conversationHistory:Rht,architecture:tmt?.architecture,generationPrompt:tmt?.generationPrompt})}}return()=>{uee(void 0)}},[wl,ya,ma,$pe,uee,uN]),reactExports.useEffect(()=>{AQ(!1)},[AQ]),reactExports.useRef(null);const Vpt=Mc?`${Mc.GitHubOrg}/${Mc.GitHubRepo}`:null;reactExports.useEffect(()=>{!Mc||wl?.isNewTeam},[Vpt,wl?.isNewTeam,$4,va,Mc,pp]);const Gpt=reactExports.useRef(null);reactExports.useEffect(()=>{(async()=>{try{const t2e=detectAppType();let Q_e=await getAppInfo();if(t2e==="marketplace"&&ya&&ma&&(Q_e={type:"marketplace",org:ma,repo:ya,branch:"main"}),t2e==="regular"){const Epe=await fetch("http://localhost:4000/info");if(!Epe.ok||!(await Epe.json())?.name||ma!=="file"||!ya)return;Q_e={type:"regular",org:"file",repo:ya}}else if(ya!==Q_e?.repo||ma!==Q_e?.org)return;if(!Q_e)return;const Rht=`${Q_e.org}/${Q_e.repo}`;if(Gpt.current===Rht)return;Gpt.current=Rht;let tmt=null;if(pp)await $4(Mc),tmt=await readPackageJsonFromGit(Mc.GitHubRepo);else{tmt=await readPackageJson(Q_e);const Zpt=tmt?.name||Q_e.repo,Epe=`/${Q_e.repo}`;await k4(Epe,Q_e.repo,Zpt,Q_e.org,Q_e.branch||"main",tmt)}if(getUserModuleNames().length===0)return;const bmt=tmt?.name,xmt=getTeamModules(bmt);if(xmt.length===0)return;const Rmt=xmt[0],pmt=`/design/${xmt.some(Zpt=>{try{return fetchModule$2(Zpt).getAgents().length>0}catch{return!1}})?"agents":"data-model"}/${Q_e.org}/${Q_e.repo}/${Rmt}`;console.log("path",pmt);const Tmt=window.history.state?.usr||{},Cmt=Tmt.from==="/design/dashboard",jmt=Tmt.fromFork===!0||Tmt.pendingLocalProcessing===!0;(Cmt||jmt)&&va(pmt,{replace:!0,state:{}})}catch(t2e){console.error("Failed to clone and process repository in local mode:",t2e)}})()},[ya,ma,k4,va,pp,$4,Mc]),reactExports.useEffect(()=>{const wpe=t2e=>{(t2e.metaKey||t2e.ctrlKey)&&(t2e.key==="k"||t2e.key==="/")&&(t2e.preventDefault(),e2e(!Ppe))};return document.addEventListener("keydown",wpe),()=>document.removeEventListener("keydown",wpe)},[Ppe,e2e]);const xpe=reactExports.useCallback(()=>{r0(Mc)},[Mc,r0]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Jf&&reactDomExports.createPortal(jsxRuntimeExports.jsx(DeploymentConfiguration,{closeHandler:()=>pg(!1),onDeployStart:()=>sN({onBeforeStart:()=>pg(!1)})}),document.body),H1&&reactDomExports.createPortal(jsxRuntimeExports.jsx(LoadingOverlay,{steps:[...M_],currentStep:O_,isVisible:H1,statusMessage:P_?"Deployed successfully!":aE||void 0,isSuccess:P_,isError:!!aE,title:"Deploying App",subtitle:"Please wait while we save config, push to GitHub, and deploy..."}),document.body),hg&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AuthModal,{closeHandler:()=>mg(!1),onAuthSuccess:()=>{pg(!0)}}),document.body),gg&&reactDomExports.createPortal(jsxRuntimeExports.jsx(SettingsModal,{closeHandler:()=>yg(!1)}),document.body),ay&&Mc&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ForkMarketplace,{githubUrl:Mc.GithubUrl||"",githubOrg:Mc.GitHubOrg||"",githubRepo:Mc.GitHubRepo||Mc.Name,branch:Mc.Branch,closeHandler:()=>ly(!1)}),document.body),jsxRuntimeExports.jsx("div",{className:"flex flex-col h-screen ",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[jsxRuntimeExports.jsx(Navbar,{}),jsxRuntimeExports.jsx("div",{id:"editor",className:"flex flex-col flex-1 overflow-hidden",children:hp?jsxRuntimeExports.jsx(PageLoader,{message:"Setting up your app...",header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):AF?jsxRuntimeExports.jsx(PageLoader,{message:R4,header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):cN?jsxRuntimeExports.jsx(CanvasError,{message:cN}):jsxRuntimeExports.jsxs(ReactFlowProvider,{children:[jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[!1,jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:Mc?.GitHubRepo||icons.agent})}),jsxRuntimeExports.jsx("h4",{children:Mc?.Name}),jsxRuntimeExports.jsx(Branch,{}),Mc&&!pp&&jsxRuntimeExports.jsxs("div",{className:"relative flex flex-col items-center",children:[jsxRuntimeExports.jsx(TooltipComponent,{text:"Push to GitHub",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:xpe,style:{opacity:V1?.5:1,cursor:V1?"not-allowed":"pointer"},children:jsxRuntimeExports.jsx(Icon,{icon:"famicons:push"})})}),uE&&jsxRuntimeExports.jsx("div",{className:`absolute top-full left-1/2 -translate-x-1/2 mt-1 px-2 py-1 rounded text-xs whitespace-nowrap shadow-lg z-10 ${uE.isError?"bg-red-900 text-red-200":"bg-green-900 text-green-200"}`,children:uE.message})]}),!1]}),dp&&jsxRuntimeExports.jsxs("div",{className:"flex flex-1 gap-2 items-center text-sm min-w-0 max-w-2xl",children:[jsxRuntimeExports.jsx(DesignHistoryNavigationButtons,{}),jsxRuntimeExports.jsx(Search,{})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center text-sm",children:[jsxRuntimeExports.jsx(CodeEditor,{}),dp&&!IS_PLAYGROUND$1&&jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:pp?jsxRuntimeExports.jsx(TooltipComponent,{text:"Fork to workspace",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:()=>{ly(!0)},children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:source-fork"})})}):jsxRuntimeExports.jsx(TooltipComponent,{text:"Deploy",children:jsxRuntimeExports.jsx("div",{className:"header-action-icon cursor-pointer",onClick:()=>{cy&&q1?pg(!0):mg(!0)},children:jsxRuntimeExports.jsx(Icon,{icon:icons.deploy})})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:"Settings",children:jsxRuntimeExports.jsx("div",{onClick:()=>yg(!0),className:"header-action-icon cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.setting})})}),jsxRuntimeExports.jsx(TooltipComponent,{text:`Copilot (${navigator.platform.includes("Mac")?"⌘":"Ctrl"}+K)`,children:jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>e2e(!Ppe),className:`h-9 w-10 rounded-md cursor-pointer flex items-center justify-center bg-cover bg-center bg-no-repeat border border-white/20 shadow-md hover:border-white/40 hover:shadow-lg active:scale-95 duration-300 transition-all ${Ppe?"ring-2 ring-white/50 brightness-110":""}`,style:{backgroundImage:"url(/assets/fractl_coilot.gif)"},title:"Copilot"})})]})]}),Cl?jsxRuntimeExports.jsxs("div",{className:"relative flex flex-1 overflow-hidden",children:[!Ef&&jsxRuntimeExports.jsx("div",{className:"group absolute pt-1 w-full z-999 flex items-center justify-center",children:jsxRuntimeExports.jsxs("button",{type:"button",className:`cursor-pointer transition-all duration-500 ease-in-out
21976
22125
  flex items-center justify-center
21977
22126
  bg-primary border border-border-color/60 text-primary-font
21978
- ${Ef?"opacity-100 rounded-full px-4 py-1.5 gap-2":"opacity-0 group-hover:opacity-100 rounded-full px-3 py-1.5 gap-2 hover:border-border-color"}`,style:{boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.2)"},onClick:()=>Zf(wpe=>!wpe),children:Ef?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-medium text-secondary-font",children:"Close Wizard"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-3.5 h-3.5"})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-blue"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"Wizard"})]})})}),Ef?jsxRuntimeExports.jsx(HomeWizard,{}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DesignNavigator,{}),jsxRuntimeExports.jsx("div",{className:`relative flex overflow-hidden transition-all duration-300 ${Ppe?"w-[calc(100%-400px)]":"w-full"}`,id:"canvas-area",children:jsxRuntimeExports.jsx(Outlet,{})})]}),Ppe&&jsxRuntimeExports.jsx(GlobalCopilotSidebar,{})]}):jsxRuntimeExports.jsx(Outlet,{})]})})]})})]})},IS_LOCAL_MODE=!0,NoModuleLayout=()=>{useNavigate();const{state:ya}=useLocation(),{currentTeam:ma}=useTeams(),[ba,va]=reactExports.useState(!1),{isCloning:Ma,cloneAndProcess:wl,error:El,loadingMessage:Sl}=useRepositoryClone(),{setIsArchitectDrawerOpen:Cl}=useAppStore();reactExports.useEffect(()=>{Cl(!1)},[Cl]),reactExports.useRef(null);const Mc=ma?`${ma.GitHubOrg}/${ma.GitHubRepo}`:null;return reactExports.useEffect(()=>{!ma||ya?.isNewTeam},[Mc,ya?.isNewTeam,wl,ma]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[ba&&reactDomExports.createPortal(jsxRuntimeExports.jsx(DeploymentConfiguration,{closeHandler:()=>va(!1)}),document.body),jsxRuntimeExports.jsx("div",{className:"flex flex-col h-screen",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[!IS_LOCAL_MODE,jsxRuntimeExports.jsx("div",{id:"editor",className:"flex flex-col flex-1 overflow-hidden",children:Ma?jsxRuntimeExports.jsx(PageLoader,{message:Sl,header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):El?jsxRuntimeExports.jsx(CanvasError,{message:El}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[!IS_LOCAL_MODE,jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:ma?.GitHubRepo||icons.agent})}),jsxRuntimeExports.jsx("h4",{children:ma?.Name}),jsxRuntimeExports.jsx(Branch,{}),!IS_LOCAL_MODE]})}),jsxRuntimeExports.jsx("div",{className:" flex flex-1 overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"relative w-full flex overflow-hidden",id:"canvas-area",children:jsxRuntimeExports.jsx(Outlet,{})})})]})})]})})]})};reactExports.createContext(void 0);var PostHogContext=reactExports.createContext({client:Jo,bootstrap:void 0});function isDeepEqual(ya,ma,ba){if(ba===void 0&&(ba=new WeakMap),ya===ma)return!0;if(typeof ya!="object"||ya===null||typeof ma!="object"||ma===null)return!1;if(ba.has(ya)&&ba.get(ya)===ma)return!0;ba.set(ya,ma);var va=Object.keys(ya),Ma=Object.keys(ma);if(va.length!==Ma.length)return!1;for(var wl=0,El=va;wl<El.length;wl++){var Sl=El[wl];if(!Ma.includes(Sl)||!isDeepEqual(ya[Sl],ma[Sl],ba))return!1}return!0}function PostHogProvider(ya){var ma,ba,va=ya.children,Ma=ya.client,wl=ya.apiKey,El=ya.options,Sl=reactExports.useRef(null),Cl=reactExports.useMemo(function(){return Ma?(wl&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),El&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),Ma):(wl||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),Jo)},[Ma,wl,JSON.stringify(El)]);return reactExports.useEffect(function(){if(!Ma){var Mc=Sl.current;Mc?(wl!==Mc.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),El&&!isDeepEqual(El,Mc.options)&&Jo.set_config(El),Sl.current={apiKey:wl,options:El??{}}):(Jo.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),Jo.init(wl,El),Sl.current={apiKey:wl,options:El??{}})}},[Ma,wl,JSON.stringify(El)]),React.createElement(PostHogContext.Provider,{value:{client:Cl,bootstrap:(ma=El?.bootstrap)!==null&&ma!==void 0?ma:(ba=Ma?.config)===null||ba===void 0?void 0:ba.bootstrap}},va)}var isFunction=function(ya){return typeof ya=="function"},extendStatics=function(ya,ma){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ba,va){ba.__proto__=va}||function(ba,va){for(var Ma in va)Object.prototype.hasOwnProperty.call(va,Ma)&&(ba[Ma]=va[Ma])},extendStatics(ya,ma)};function __extends(ya,ma){if(typeof ma!="function"&&ma!==null)throw new TypeError("Class extends value "+String(ma)+" is not a constructor or null");extendStatics(ya,ma);function ba(){this.constructor=ya}ya.prototype=ma===null?Object.create(ma):(ba.prototype=ma.prototype,new ba)}typeof SuppressedError=="function"&&SuppressedError;var INITIAL_STATE={componentStack:null,exceptionEvent:null,error:null},__POSTHOG_ERROR_MESSAGES={INVALID_FALLBACK:"[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element."};(function(ya){__extends(ma,ya);function ma(ba){var va=ya.call(this,ba)||this;return va.state=INITIAL_STATE,va}return ma.prototype.componentDidCatch=function(ba,va){var Ma=this.props.additionalProperties,wl;isFunction(Ma)?wl=Ma(ba):typeof Ma=="object"&&(wl=Ma);var El=this.context.client,Sl=El.captureException(ba,wl),Cl=va.componentStack;this.setState({error:ba,componentStack:Cl??null,exceptionEvent:Sl})},ma.prototype.render=function(){var ba=this.props,va=ba.children,Ma=ba.fallback,wl=this.state;if(wl.componentStack==null)return isFunction(va)?va():va;var El=isFunction(Ma)?React.createElement(Ma,{error:wl.error,componentStack:wl.componentStack,exceptionEvent:wl.exceptionEvent}):Ma;return React.isValidElement(El)?El:(console.warn(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK),React.createElement(React.Fragment,null))},ma.contextType=PostHogContext,ma})(React.Component);const validationSchema=create$3().shape({title:create$6().required("Title is required")}),Header=({saveUISpec:ya,authType:ma})=>{const{teamName:ba}=useParams(),va=Wn$1();return va?jsxRuntimeExports.jsx(Formik,{initialValues:{...va[ma].header,title:va[ma].header.title||ba},onSubmit:Ma=>{const wl={...va,[ma]:{...va[ma]||{},header:Ma}};ya&&ya(wl,"Update theme")},validationSchema,children:jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(Kht,{name:"title",placeholder:"Welcome Message",isFloating:!1}),jsxRuntimeExports.jsx(Kht,{name:"subTitle",placeholder:"Subtitle",isFloating:!1}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}):null},FormSettings$1=({saveUISpec:ya,authType:ma})=>{const ba=Wn$1();return ba?jsxRuntimeExports.jsx(Formik,{initialValues:ba[ma].form.placeholder,onSubmit:va=>{const Ma={...ba,[ma]:{...ba[ma],form:{...ba[ma].form,placeholder:va}}};ya&&ya(Ma,"Update theme")},children:jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[Object.keys(ba[ma].form.placeholder).map(va=>jsxRuntimeExports.jsx(Kht,{name:va,placeholder:`${Ft$4(va)} Placeholder`,isFloating:!1},va)),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}):null},socialNetworks=["git","google","microsoft","linkedin"],SocialNetworks=({saveUISpec:ya,authType:ma})=>{const ba=Wn$1();return ba?jsxRuntimeExports.jsx(Formik,{initialValues:ba[ma].socialNetworks,onSubmit:va=>{const Ma={...ba,[ma]:{...ba[ma],socialNetworks:va}};ya&&ya(Ma,"Update theme")},children:va=>{const{values:Ma,setValues:wl}=va,El=Ma.icons,Sl=socialNetworks.every(Cl=>El.includes(Cl));return jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(Kht,{name:"label",placeholder:"Label",isFloating:!1}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-end cursor-pointer",onClick:()=>{wl({...Ma,icons:Sl?[]:socialNetworks})},children:[jsxRuntimeExports.jsx(Icon,{icon:Sl?Ot$3.checkboxSelected:Ot$3.checkbox,className:classNames(["text-xl",Sl?"text-checkbox-selected":"text-secondary-font"])}),"Show social networks"]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),socialNetworks.map(Cl=>{const Mc=El.includes(Cl);return jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-end cursor-pointer",onClick:()=>{wl({...Ma,icons:Mc?Ma.icons.filter(dp=>dp!==Cl):[...Ma.icons,Cl]})},children:[jsxRuntimeExports.jsx(Icon,{icon:Mc?Ot$3.checkboxSelected:Ot$3.checkbox,className:classNames(["text-xl",Mc?"text-checkbox-selected":"text-secondary-font"])}),Ft$4(Cl)]},Cl)}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}}):null},Auth=({saveUISpec:ya,authType:ma})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(h1,{label:"Header",defaultOpen:!0,children:jsxRuntimeExports.jsx(Header,{saveUISpec:ya,authType:ma})}),jsxRuntimeExports.jsx(h1,{label:"Social Networks",defaultOpen:!0,children:jsxRuntimeExports.jsx(SocialNetworks,{saveUISpec:ya,authType:ma})}),jsxRuntimeExports.jsx(h1,{label:"Form",defaultOpen:!0,children:jsxRuntimeExports.jsx(FormSettings$1,{saveUISpec:ya,authType:ma})})]}),getTopLevelAttributes=(ya,ma)=>ya.order?.length>0?ya.order:Array.from(ma.keys()),initializeNestedFormSchema=ya=>{const ma={Form:{},order:[]};return ya.forEach((ba,va)=>{const Ma=ba.properties?.get("optional")===!0,El=typeof ba=="object"&&ba!==void 0?ba.type:String(ba),Sl=getInputType(El);ma.Form[va]={inputType:Sl,required:!Ma,displayOptions:{label:Ft$4(va),placeholder:`Enter ${va}`}},ma.order.push(va)}),ma},ensureCompleteNestedFormSchema=(ya,ma)=>{const ba=ya||{Form:{},order:[]};return ma.forEach((va,Ma)=>{if(!ba.Form[Ma]){const wl=va.properties?.get("optional")===!0,Sl=typeof va=="object"&&va!==void 0?va.type:String(va),Cl=getInputType(Sl);ba.Form[Ma]={inputType:Cl,required:!wl,displayOptions:{label:Ft$4(Ma),placeholder:`Enter ${Ma}`}},ba.order.includes(Ma)||ba.order.push(Ma)}}),ba},NestedFields=({entityName:ya,attrName:ma,nestedFormSchema:ba,nestedAttributes:va,referencedModule:Ma,updateNestedFormSchema:wl,depth:El})=>{const[Sl,Cl]=reactExports.useState(null);let Mc=ba;!Mc&&va&&(Mc=initializeNestedFormSchema(va),wl(Mc));const dp=ensureCompleteNestedFormSchema(Mc,va),pp=dp.order?.length>0?dp.order.filter(pg=>dp.Form[pg]):Array.from(va.keys()),hp=[],Ef=[];pp.forEach(pg=>{dp.Form[pg]?.required??!1?hp.push(pg):Ef.push(pg)});const Zf=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),Jf=pg=>{const{active:hg,over:mg}=pg;if(mg&&hg.id!==mg.id){const gg=q1=>{const r0=q1;return r0.includes(".")&&r0.split(".").pop()||r0},yg=gg(hg.id),ay=gg(mg.id),ly=dp.order.indexOf(yg),cy=dp.order.indexOf(ay);if(ly!==-1&&cy!==-1){const q1=[...dp.order],[r0]=q1.splice(ly,1);q1.splice(cy,0,r0);const uE={...dp,order:q1};wl(uE)}}Cl(null)};return jsxRuntimeExports.jsx(DndContext,{sensors:Zf,collisionDetection:closestCenter,onDragCancel:()=>Cl(null),onDragStart:pg=>{Cl(pg.active.id)},onDragEnd:Jf,children:jsxRuntimeExports.jsxs("div",{className:"setting-container pt-2",children:[jsxRuntimeExports.jsxs(SortableContext,{items:pp.map(pg=>ma?`${ma}.${pg}`:pg),strategy:verticalListSortingStrategy,children:[hp.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:hp.map(pg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:pg,formSchema:dp,updateFormSchema:wl,isRequired:!0,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1},pg))}),Ef.length>0&&jsxRuntimeExports.jsx("div",{children:Ef.map(pg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:pg,formSchema:dp,updateFormSchema:wl,isRequired:!1,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1},pg))})]}),jsxRuntimeExports.jsx(DragOverlay,{children:Sl?(()=>{const hg=(yg=>yg.includes(".")&&yg.split(".").pop()||yg)(Sl),gg=dp.Form[hg]?.required??!1;return jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:wl,isRequired:gg,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1})})():null})]})})},AttributeField$1=({entityName:ya,attrName:ma,formSchema:ba,updateFormSchema:va,isRequired:Ma=!0,nestedPath:wl,nestedAttributes:El,referencedModule:Sl,depth:Cl=0})=>{const[Mc,dp]=reactExports.useState(!1),pp=ba.Form[ma]?.isHidden||!1,{attributes:hp,listeners:Ef,setNodeRef:Zf,transform:Jf,transition:pg,isDragging:hg}=useSortable({id:wl?`${wl}.${ma}`:ma}),mg=(()=>{try{const[O_,aE]=ya.split("/");return getEntity$1(aE,O_)?.getUserAttributes()||new Map}catch(O_){return console.error("Error getting entity schema:",O_),new Map}})(),yg=(El||mg).get(ma),ay=yg&&typeof yg=="object"?yg.type:String(yg||"text"),ly=ba.Form[ma]?.inputType||getInputType(ay),cy=Sl||ya.split("/")[0],q1=yg?getNestedAttributeInfo(ma,yg,cy):{isNested:!1,nestedAttributes:null,referencedModule:null},r0=q1.isNested&&q1.nestedAttributes!==null,uE=ba.Form[ma]?.nestedForm,V1=[{label:"Text",value:"text"},{label:"Number",value:"number"},{label:"Email",value:"email"},{label:"Password",value:"password"},{label:"Date",value:"date"},{label:"Checkbox",value:"checkbox"},{label:"Select",value:"select"},...r0?[{label:"Nested Form",value:"nested"}]:[]],H1=O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],nestedForm:O_}}};va(aE)};return jsxRuntimeExports.jsxs("div",{ref:Zf,style:{opacity:hg?.5:1,transform:CSS$1.Translate.toString(Jf),transition:pg},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>dp(!Mc),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[jsxRuntimeExports.jsx("span",{...hp,...Ef,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsxs("span",{children:[Ft$4(ma),r0&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-gray-400 ml-2",children:["(",q1.type==="entity"?"Entity":q1.type==="record"?"Record":"OneOf",": ",q1.referencedName,")"]})]})]}),!Ma&&jsxRuntimeExports.jsx("div",{onClick:O_=>O_.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!pp,onChangeHandler:O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],isHidden:!O_}}};va(aE)}})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Mc&&!r0&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx("div",{className:"setting-toggle-body",children:jsxRuntimeExports.jsxs("div",{className:"mb-4",children:[jsxRuntimeExports.jsx("label",{className:"text-sm mb-2 block",children:"Input Type"}),jsxRuntimeExports.jsx(gee,{value:ly,options:V1,onChange:O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],inputType:O_}}};va(aE)}})]})})})}),jsxRuntimeExports.jsx(AnimatePresence,{children:Mc&&r0&&q1.nestedAttributes&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(NestedFields,{entityName:ya,attrName:ma,nestedFormSchema:uE,nestedAttributes:q1.nestedAttributes,referencedModule:q1.referencedModule,updateNestedFormSchema:H1,depth:Cl})})})})]})},FormSettings=({entityName:ya,saveUISpec:ma})=>{const[ba,va]=reactExports.useState(null),[Ma,wl]=ya.split("/"),Sl=getEntity$1(wl,Ma)?.getUserAttributes()||new Map,Cl=Wn$1(),Mc=`${ya}.ui.form`,dp=Cl[Mc],hp=getTopLevelAttributes(dp,Sl).filter(hg=>dp.Form[hg]).sort((hg,mg)=>{const gg=dp.order.indexOf(hg),yg=dp.order.indexOf(mg);return gg===-1?1:yg===-1?-1:gg-yg}),Ef=[],Zf=[];hp.forEach(hg=>{dp.Form[hg]?.required??!1?Ef.push(hg):Zf.push(hg)});const Jf=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),pg=hg=>{if(ma){const mg=`${ya}.ui.form`,gg={...Cl,[mg]:hg};ma(gg,"Update form settings")}};return jsxRuntimeExports.jsx(DndContext,{sensors:Jf,collisionDetection:closestCenter,onDragCancel:()=>va(null),onDragStart:hg=>{va(hg.active.id)},onDragEnd:hg=>{const{active:mg,over:gg}=hg;if(gg&&mg.id!==gg.id){const yg=dp.order.indexOf(mg.id),ay=dp.order.indexOf(gg.id),ly=[...dp.order],[cy]=ly.splice(yg,1);ly.splice(ay,0,cy);const q1={...dp,order:ly};console.log("newFormSchema",q1),pg(q1)}va(null)},children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsxs(SortableContext,{items:hp,strategy:verticalListSortingStrategy,children:[Ef.length>0&&jsxRuntimeExports.jsx(h1,{label:"Required",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:Ef.map(hg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:pg,isRequired:!0},hg))})}),Zf.length>0&&jsxRuntimeExports.jsx(h1,{label:"Optional",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:Zf.map(hg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:pg,isRequired:!1},hg))})})]}),jsxRuntimeExports.jsx(DragOverlay,{children:ba?jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:ba,formSchema:dp,updateFormSchema:pg}):null})]})})},HeaderSettings=({headerSchema:ya,updateHeaderSchema:ma})=>{if(Array.isArray(ya)||typeof ya!="object"||ya===null)return null;const ba=ya.view,{showBreadcrumbs:va}=ba?.Heading||{};return jsxRuntimeExports.jsx(h1,{label:"Header",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{showBreadcrumbs:va??!1},onSubmit:Ma=>{const wl={...ba.Heading,...Ma},El={...ya,view:{...ba,Heading:wl}};ma(El)},children:({values:Ma,setFieldValue:wl})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Show Breadcrumbs"}),jsxRuntimeExports.jsx(tpt,{isChecked:Ma.showBreadcrumbs,onChangeHandler:El=>wl("showBreadcrumbs",El)})]})}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})};function capitalizeFirstLetter(ya){return ya&&ya.charAt(0).toUpperCase()+ya.slice(1)}const DateOptionMenu=()=>{const[ya,,ma]=useField({name:"dateFormat"}),ba=ya.value;return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Date Format"}),jsxRuntimeExports.jsx(gee,{value:ba||"MM/DD/YY",options:[{label:"DD/MM/YY",value:"DD/MM/YY"},{label:"MM/DD/YY",value:"MM/DD/YY"}],onChange:va=>ma.setValue(va)})]})},FontWeightMenu$1=()=>{const[ya,,ma]=useField({name:"fontWeight"}),ba=ya.value||"normal";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Weight"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"Normal",value:"normal"},{label:"Bold",value:"bold"},{label:"Bolder",value:"bolder"},{label:"Lighter",value:"lighter"}],onChange:va=>ma.setValue(va)})]})},FontStyleMenu$1=()=>{const[ya,,ma]=useField({name:"fontStyle"}),ba=ya.value||"normal";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Style"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"Normal",value:"normal"},{label:"Italic",value:"italic"},{label:"Oblique",value:"oblique"},{label:"Lighter",value:"lighter"}],onChange:va=>ma.setValue(va)})]})},TextDecorationMenu$1=()=>{const[ya,,ma]=useField({name:"textDecorationLine"}),ba=ya.value||"none";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Text Decoration"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"None",value:"none"},{label:"Underline",value:"underline"},{label:"Overline",value:"overline"},{label:"Line Through",value:"line-through"}],onChange:va=>ma.setValue(va)})]})},ColumnField=({entityName:ya,attributeName:ma,uiAttributeSchema:ba={},onFieldUpdate:va,onAttributeUpdate:Ma,disabled:wl=!1})=>{const[El,Sl]=reactExports.useState(!1),{attributes:Cl,listeners:Mc,setNodeRef:dp,transform:pp,transition:hp,isDragging:Ef}=useSortable({id:ma,disabled:wl}),[Zf,Jf]=ya.split("/"),mg=getEntity$1(Jf,Zf)?.getUserAttributes()?.get(ma),gg=typeof mg=="object"?mg.type:String(mg),yg=()=>{if(Object.keys(ba).length===0){const ay={colSpan:1,fontWeight:"normal",fontStyle:"normal",textDecorationLine:"none"};switch(gg){case"DateTime":return{...ay,dateFormat:"MM/DD/YY"};case"Float":case"Decimal":return{...ay,precision:2};default:return ay}}return ba};return jsxRuntimeExports.jsxs("div",{ref:dp,style:{opacity:Ef?.5:1,transform:CSS$1.Translate.toString(pp),transition:hp},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>Sl(!El),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[!wl&&jsxRuntimeExports.jsx("span",{...Cl,...Mc,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("span",{children:capitalizeFirstLetter(ma)})]}),va&&jsxRuntimeExports.jsx("div",{onClick:ay=>ay.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!wl,onChangeHandler:va})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:El&&!wl&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx(Formik,{initialValues:yg(),validate:ay=>{const ly={};return ay.colSpan||(ly.colSpan="Col span is required"),["Float","Decimal"].includes(gg)&&!ay.precision&&(ly.precision="Precision is required"),ly},onSubmit:ay=>{Ma&&Ma(ma,ay)},children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Col Span"}),jsxRuntimeExports.jsx(Field,{type:"number",step:"1",placeholder:"ColSpan",name:"colSpan",className:"form-input"}),jsxRuntimeExports.jsx(ErrorMessage,{name:"colSpan",children:ay=>jsxRuntimeExports.jsxs("div",{className:"error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:"ph:warning-bold"}),ay]})})]}),gg==="DateTime"&&jsxRuntimeExports.jsx(DateOptionMenu,{}),["Float","Decimal"].includes(gg)&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Precision"}),jsxRuntimeExports.jsx(Field,{type:"number",step:"1",placeholder:"Precision",name:"precision",className:"form-input"}),jsxRuntimeExports.jsx(ErrorMessage,{name:"precision",children:ay=>jsxRuntimeExports.jsxs("div",{className:"error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:"ph:warning-bold"}),ay]})})]}),jsxRuntimeExports.jsx(FontWeightMenu$1,{}),jsxRuntimeExports.jsx(FontStyleMenu$1,{}),jsxRuntimeExports.jsx(TextDecorationMenu$1,{}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})]})},FieldSettings$1=({entityName:ya,collectionSchema:ma,onFieldUpdate:ba,onAttributeUpdate:va})=>{const[Ma,wl]=reactExports.useState(null),[El,Sl]=ya.split("/"),Mc=getEntity$1(Sl,El)?.getUserAttributes(),dp=Array.from(Mc?.keys()||[]),pp=Object.keys(ma)[0],hp=ma[pp],Ef=hp?.fields,Zf=Array.isArray(Ef)?Ef:[],Jf=dp.filter(hg=>!Zf.includes(hg)),pg=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates}));return jsxRuntimeExports.jsx(DndContext,{sensors:pg,collisionDetection:closestCenter,onDragCancel:()=>wl(null),onDragStart:hg=>{wl(hg.active.id)},onDragEnd:hg=>{const{active:mg,over:gg}=hg;if(gg&&mg.id!==gg.id){const yg=Zf.indexOf(mg.id),ay=Zf.indexOf(gg.id),ly=arrayMove(Zf,yg,ay);ba(ly)}wl(null)},children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(SortableContext,{items:Zf,strategy:verticalListSortingStrategy,children:Zf.map(hg=>jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:hg,uiAttributeSchema:hp[hg]||{},onFieldUpdate:mg=>{mg||ba(Zf.filter(gg=>gg!==hg))},onAttributeUpdate:va,disabled:!1},hg))}),Jf.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fx-divider"}),Jf.map(hg=>jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:hg,onFieldUpdate:mg=>{mg&&ba([...Zf,hg])},onAttributeUpdate:va,disabled:!0},hg))]}),jsxRuntimeExports.jsx(DragOverlay,{children:Ma?jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:Ma}):null})]})})},CreateButtonSettings=({actionSchema:ya,updateActionSchema:ma})=>jsxRuntimeExports.jsx(h1,{label:"Create Button",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{text:ya?.create?.text||"",icon:ya?.create?.icon||"mdi:plus"},onSubmit:ba=>{ma({create:{...ya.create,...ba}})},children:({values:ba,setFieldValue:va})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Button Text"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:ba.icon,onIconChange:Ma=>va("icon",Ma),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:ba.icon,width:"16",height:"16"})})}),jsxRuntimeExports.jsx(Field,{type:"text",placeholder:"Button Text",name:"text",className:"form-input"})]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})}),EntityCollectionSettings=({entityName:ya,bodySchema:ma,updateBodySchema:ba})=>{if(Array.isArray(ma)||typeof ma!="object"||ma===null)return null;const va=ma.view,Ma=Object.keys(va)[0],{showGlobalFilter:wl,showColumnFilter:El}=Object.values(va)[0],Sl=Cl=>{const Mc=va[Ma];ba({...ma,view:{[Cl]:Mc}})};return jsxRuntimeExports.jsx(h1,{label:"Collection",defaultOpen:!0,children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsxs("div",{className:"entity-collection-options",children:[jsxRuntimeExports.jsxs("div",{className:"entity-collection-option","data-selected":Ma==="Table",onClick:()=>Sl("Table"),children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:table",height:"20",width:"20"}),"Table"]}),jsxRuntimeExports.jsxs("div",{className:"entity-collection-option","data-selected":Ma==="Cards",onClick:()=>Sl("Cards"),children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:cards-outline",height:"20",width:"20"}),"Cards"]})]}),jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Global Filtering"}),jsxRuntimeExports.jsx(tpt,{isChecked:wl||!1,onChangeHandler:Cl=>{ba({...ma,view:{[Ma]:{...va[Ma],showGlobalFilter:Cl}}})}})]})}),jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Column Filtering"}),jsxRuntimeExports.jsx(tpt,{isChecked:El||!1,onChangeHandler:Cl=>{ba({...ma,view:{[Ma]:{...va[Ma],showColumnFilter:Cl}}})}})]})})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(FieldSettings$1,{entityName:ya,collectionSchema:va,onFieldUpdate:Cl=>{const Mc=Ma;ba({...ma,view:{[Mc]:{...va[Mc],fields:Cl}}})},onAttributeUpdate:(Cl,Mc)=>{const dp=Ma;ba({...ma,view:{[dp]:{...va[dp],[Cl]:Mc}}})}})]})})},TableHeaderSettings=({bodySpec:ya,updateBodySchema:ma})=>jsxRuntimeExports.jsx(h1,{label:"Table Header",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{displayName:ya.displayName||"",description:ya.description||"",icon:ya.icon||"bi:card-list",color:ya.color||"white"},onSubmit:ba=>{ma({...ya,...ba})},children:({values:ba,setFieldValue:va})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Display Name"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:ba.icon,onIconChange:Ma=>va("icon",Ma),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:ba.icon,width:"16",height:"16"})})}),jsxRuntimeExports.jsx(Field,{type:"text",name:"displayName",placeholder:"Enter Name...",className:"form-input flex-1"})]})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Description"}),jsxRuntimeExports.jsx(Field,{type:"text",name:"description",placeholder:"Enter description...",className:"form-input"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Color"}),jsxRuntimeExports.jsx(Field,{type:"text",name:"color",placeholder:"Enter color (e.g., white, #ffffff)",className:"form-input"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})}),CollectionViewSettings=({entityName:ya,saveUISpec:ma,showHeader:ba=!0,specificBodyKey:va})=>{const Ma=Wn$1(),wl=`${ya}.ui.dashboard`,El=Ma?.[wl],Sl=El?.find(Ef=>Ef.includes(".header")),Cl=Sl?Ma?.[Sl]:void 0,Mc=va||El?.find(Ef=>Ef.includes(".body")),dp=Mc?Ma?.[Mc]:void 0,pp=Ef=>{if(ma&&Sl){const Zf={...Ma,[`${Sl}.header`]:Ef};ma(Zf,"Update dashboard header settings")}},hp=Ef=>{if(ma&&Mc){const Zf={...Ma,[Mc]:Ef};ma(Zf,"Update dashboard body settings")}};return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[Cl&&ba&&jsxRuntimeExports.jsx(HeaderSettings,{headerSchema:Cl,updateHeaderSchema:pp}),dp&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TableHeaderSettings,{bodySpec:dp,updateBodySchema:hp}),jsxRuntimeExports.jsx(CreateButtonSettings,{actionSchema:dp.actions||{},updateActionSchema:Ef=>{const Zf={...dp,actions:Ef};hp(Zf)}}),jsxRuntimeExports.jsx(EntityCollectionSettings,{entityName:ya,bodySchema:dp,updateBodySchema:hp})]})]})},FontWeightMenu=()=>{const[ya,,ma]=useField({name:"fontWeight"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Weight"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"normal",options:["normal","bold","bolder","lighter"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},FontStyleMenu=()=>{const[ya,,ma]=useField({name:"fontStyle"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Style"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"normal",options:["normal","italic","oblique"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},TextDecorationMenu=()=>{const[ya,,ma]=useField({name:"textDecorationLine"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Text Decoration"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"none",options:["none","underline","overline","line-through"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},ButtonSettings=({buttonType:ya,buttonSchema:ma,updateButtonSchema:ba,entityName:va})=>{const Ma=va.split("/")[1],wl={text:ma?.text||ya,icon:ma?.icon||(ya==="Edit"?"mdi:pencil":"mdi:delete"),style:ma?.style||(ya==="Edit"?"secondary":"danger")};return jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx("div",{className:"font-bold",children:`${ya} Button`}),jsxRuntimeExports.jsx(Formik,{initialValues:wl,onSubmit:El=>{const Sl={...ma||{type:"button",actionType:ya==="Edit"?"navigation":"modal",action:`${Ma}/${ya.toLowerCase()}`},...El};ba(Sl)},enableReinitialize:!0,children:({values:El,setFieldValue:Sl,handleSubmit:Cl})=>jsxRuntimeExports.jsxs("div",{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsx("div",{className:"form-item",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:El.icon,onIconChange:Mc=>Sl("icon",Mc),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:El.icon,width:"16",height:"16",className:"text-white"})})}),jsxRuntimeExports.jsx(Field,{type:"text",name:"text",placeholder:"Button Text",className:"form-input flex-1"})]})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Cl(),className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})]})},AttributeField=({attributeName:ya,uiAttributeSchema:ma={},onFieldUpdate:ba,onAttributeUpdate:va,disabled:Ma=!1})=>{const[wl,El]=reactExports.useState(!1),{attributes:Sl,listeners:Cl,setNodeRef:Mc,transform:dp,transition:pp,isDragging:hp}=useSortable({id:ya,disabled:Ma});return jsxRuntimeExports.jsxs("div",{ref:Mc,style:{opacity:hp?.5:1,transform:CSS$1.Translate.toString(dp),transition:pp},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>El(!wl),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[!Ma&&jsxRuntimeExports.jsx("span",{...Sl,...Cl,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("span",{children:Ft$4(ya)})]}),ba&&jsxRuntimeExports.jsx("div",{onClick:Ef=>Ef.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!Ma,onChangeHandler:ba})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:wl&&!Ma&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx(Formik,{initialValues:ma,onSubmit:Ef=>va?.(ya,Ef),children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsx(FontWeightMenu,{}),jsxRuntimeExports.jsx(FontStyleMenu,{}),jsxRuntimeExports.jsx(TextDecorationMenu,{}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})]})},FieldSettings=({entityName:ya,summarySchema:ma,onFieldUpdate:ba,onAttributeUpdate:va})=>{const[Ma,wl]=reactExports.useState(null),[El,Sl]=ya.split("/"),Cl=getEntity$1(Sl,El),Mc=Array.from(Cl?.getUserAttributes().keys()||[]),dp=ma.fields||[],pp=Mc.filter(Ef=>!dp.includes(Ef)),hp=useSensors(useSensor(PointerSensor),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates}));return jsxRuntimeExports.jsx(DndContext,{sensors:hp,collisionDetection:closestCenter,onDragStart:Ef=>wl(Ef.active.id),onDragEnd:Ef=>{const{active:Zf,over:Jf}=Ef;if(Jf&&Zf.id!==Jf.id){const pg=dp.indexOf(Zf.id),hg=dp.indexOf(Jf.id);ba(arrayMove(dp,pg,hg))}wl(null)},onDragCancel:()=>wl(null),children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(SortableContext,{items:dp,strategy:verticalListSortingStrategy,children:dp.map(Ef=>jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ef,uiAttributeSchema:ma[Ef]||{},onFieldUpdate:Zf=>!Zf&&ba(dp.filter(Jf=>Jf!==Ef)),onAttributeUpdate:va},Ef))}),pp.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fx-divider"}),pp.map(Ef=>jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ef,onFieldUpdate:Zf=>Zf&&ba([...dp,Ef]),onAttributeUpdate:va,disabled:!0},Ef))]}),jsxRuntimeExports.jsx(DragOverlay,{children:Ma?jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ma}):null})]})})},InstanceSummarySettings=({entityName:ya,summaryKey:ma,saveUISpec:ba})=>{const va=Wn$1(),Ma=va?.[ma]||{view:{Card:{}}},wl=Ma.view.Card,El=Ma.actions,Sl=Mc=>{if(ba){const dp={...va,[ma]:{...Ma,actions:Mc}};ba(dp,`Update ${ya} instance summary actions`)}},Cl=Mc=>{if(ba){const dp={...va,[ma]:{...Ma,view:{...Ma.view,Card:Mc}}};ba(dp,`Update ${ya} instance summary`)}};return jsxRuntimeExports.jsx(h1,{label:"Instance Summary",defaultOpen:!0,children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx(Formik,{initialValues:{layout:wl.layout||"grid",columns:wl.columns||2},onSubmit:Mc=>{Cl({...wl,...Mc})},children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-container !gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(ButtonSettings,{buttonType:"Edit",buttonSchema:El?.edit,updateButtonSchema:Mc=>Sl({...El,edit:Mc}),entityName:ya}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(ButtonSettings,{buttonType:"Delete",buttonSchema:El?.delete,updateButtonSchema:Mc=>Sl({...El,delete:Mc}),entityName:ya})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(F$e,{fieldName:"layout",placeholder:"Layout",options:[{label:"Grid",value:"grid"},{label:"List",value:"list"}]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Columns"}),jsxRuntimeExports.jsx(Field,{type:"number",name:"columns",className:"form-input"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save Layout"})]})}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(FieldSettings,{entityName:ya,summarySchema:wl,onFieldUpdate:Mc=>Cl({...wl,fields:Mc}),onAttributeUpdate:(Mc,dp)=>{Cl({...wl,[Mc]:dp})}})]})})},InstanceViewSettings=({entityName:ya,saveUISpec:ma})=>{const ba=Wn$1(),va=`${ya}.ui.instance`,Ma=ba?.[va],wl=Bpe();return Ma?jsxRuntimeExports.jsx("div",{className:"space-y-4",children:Ma.map(El=>{const Sl=ba?.[El];if(!Sl||Array.isArray(Sl))return null;const Cl=Sl.view,Mc=Object.keys(Cl)[0],dp=wl===El;if(Mc==="Heading")return jsxRuntimeExports.jsx(HeaderSettings,{headerSchema:Sl,isTitleRequired:!0,updateHeaderSchema:hp=>{if(ma){const Ef={...ba,[El]:hp};ma(Ef,"Update instance header settings")}}},El);if(Mc==="Card"&&dp)return jsxRuntimeExports.jsx(InstanceSummarySettings,{entityName:ya,summaryKey:El,saveUISpec:ma},El);if((Mc==="Table"||Mc==="Cards")&&dp){const hp=El.match(/^(.*?)\.ui\./),Ef=hp?hp[1]:"";return jsxRuntimeExports.jsx(CollectionViewSettings,{entityName:Ef,saveUISpec:ma,showHeader:!1,specificBodyKey:El},El)}return null})}):jsxRuntimeExports.jsx("div",{children:"No instance view settings found for this entity."})};function ChartItem({chart:ya,index:ma,uiSpec:ba,onUpdate:va,onDelete:Ma}){const wl=!!(ya.record&&ya.title&&(ya.groupBy?ya.aggregate&&(ya.aggregate==="count"||ya.aggregateField):ya.xAxis&&ya.yAxis)),[El,Sl]=reactExports.useState(!wl),[Cl,Mc]=reactExports.useState(ya);reactExports.useEffect(()=>{Mc(ya),!!(ya.record&&ya.title&&(ya.groupBy?ya.aggregate&&(ya.aggregate==="count"||ya.aggregateField):ya.xAxis&&ya.yAxis))||Sl(!0)},[ya]);const dp=ba?.entities?ba.entities.map(pg=>{const hg=ba[pg];return{value:pg,label:hg?.displayName||pg}}):[],pp=pg=>{if(!pg||!ba)return[];const mg=ba[pg]?.attributes||{};return Object.keys(mg).map(gg=>{const ay=mg[gg]?.type||"string";return{value:gg,label:`${gg} (${ay==="number"||ay==="integer"||ay==="float"?"quantitative":"ordinal"})`}})},hp=pp(Cl.record),Ef=pp(Cl.record),Zf=Cl.groupBy?[{value:"count",label:"Count (aggregated)"},...Ef]:Ef,Jf=()=>{va(ma,Cl)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",onClick:()=>Sl(!El),children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1",children:jsxRuntimeExports.jsx("p",{className:"font-medium text-font truncate",children:Cl.title||`Chart ${ma+1}`})})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 shrink-0",children:jsxRuntimeExports.jsx("button",{onClick:pg=>{pg.stopPropagation(),Ma(ma)},className:"p-1 hover:bg-gray-700 rounded transition-colors cursor-pointer","aria-label":"Delete chart",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:delete",className:"w-4 h-4 text-gray-400"})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:El&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Chart Type"}),jsxRuntimeExports.jsx(gee,{value:Cl.chartType||"bar",options:[{value:"bar",label:"Bar"},{value:"line",label:"Line"},{value:"area",label:"Area"},{value:"pie",label:"Pie"},{value:"scatter",label:"Scatter"},{value:"point",label:"Point"}],placeholder:"Select chart type",onChange:pg=>Mc({...Cl,chartType:pg})})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Entity"}),jsxRuntimeExports.jsx(gee,{value:Cl.record,options:dp,placeholder:"Select an entity",onChange:pg=>{Mc({...Cl,record:pg,xAxis:"",yAxis:""})}})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Group By (for aggregation)"}),jsxRuntimeExports.jsx(gee,{value:Cl.groupBy||"",options:[{value:"",label:"None (no aggregation)"},...hp],placeholder:"Select field to group by",onChange:pg=>{const hg={...Cl,groupBy:pg||void 0,aggregate:pg?"count":void 0,aggregateField:pg?void 0:Cl.aggregateField};pg&&(hg.xAxis=pg,hg.yAxis="count"),Mc(hg)}})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"X-Axis"}),jsxRuntimeExports.jsx(gee,{value:Cl.xAxis,options:hp,placeholder:"Select X-axis attribute",onChange:pg=>Mc({...Cl,xAxis:pg})})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Y-Axis"}),jsxRuntimeExports.jsx(gee,{value:Cl.yAxis,options:Zf,placeholder:"Select Y-axis attribute",onChange:pg=>Mc({...Cl,yAxis:pg})})]}),Cl.groupBy&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Aggregate Function"}),jsxRuntimeExports.jsx(gee,{value:Cl.aggregate||"count",options:[{value:"count",label:"Count"},{value:"sum",label:"Sum"},{value:"average",label:"Average"},{value:"min",label:"Min"},{value:"max",label:"Max"}],placeholder:"Select aggregation function",onChange:pg=>{const hg={...Cl,aggregate:pg,aggregateField:pg==="count"?void 0:Cl.aggregateField};pg==="count"?hg.yAxis="count":Cl.aggregateField&&(hg.yAxis=Cl.aggregateField),Mc(hg)}})]}),Cl.aggregate&&Cl.aggregate!=="count"&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Aggregate Field"}),jsxRuntimeExports.jsx(gee,{value:Cl.aggregateField||"",options:Zf,placeholder:"Select field to aggregate",onChange:pg=>{const hg={...Cl,aggregateField:pg||void 0};pg&&(hg.yAxis=pg),Mc(hg)}})]})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Title"}),jsxRuntimeExports.jsx("input",{type:"text",value:Cl.title,onChange:pg=>Mc({...Cl,title:pg.target.value}),className:"form-input",placeholder:"Enter chart title"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Subtitle"}),jsxRuntimeExports.jsx("input",{type:"text",value:Cl.subtitle,onChange:pg=>Mc({...Cl,subtitle:pg.target.value}),className:"form-input",placeholder:"Enter chart subtitle"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Column Span"}),jsxRuntimeExports.jsx(gee,{value:Cl.colSpan?.toString()||"1",options:[{value:"1",label:"1 column (half width)"},{value:"2",label:"2 columns (full width)"}],placeholder:"Select column span",onChange:pg=>Mc({...Cl,colSpan:pg==="2"?2:1})})]}),jsxRuntimeExports.jsx("button",{onClick:Jf,disabled:!!(!Cl.record||!Cl.title||!Cl.groupBy&&(!Cl.xAxis||!Cl.yAxis)||Cl.groupBy&&Cl.aggregate!=="count"&&!Cl.aggregateField),className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})]})}function ChartSettings({schema:ya,uiSpec:ma,onSave:ba}){const[va,Ma]=reactExports.useState(ya),wl=va.charts||[],El=()=>{const Mc={record:"",title:"",subtitle:"",xAxis:"",yAxis:"",chartType:"bar",colSpan:1},dp=[...wl,Mc],pp={...va,charts:dp};Ma(pp),ba(pp)},Sl=(Mc,dp)=>{const pp=[...wl];pp[Mc]=dp;const hp={...va,charts:pp};Ma(hp),ba(hp)},Cl=Mc=>{const dp=wl.filter((hp,Ef)=>Ef!==Mc),pp={...va,charts:dp};Ma(pp),ba(pp)};return jsxRuntimeExports.jsx("div",{className:"space-y-4",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:chart-line",className:"w-5 h-5 text-gray-400"}),jsxRuntimeExports.jsx("p",{className:"font-medium text-font",children:"Charts"})]}),jsxRuntimeExports.jsx("button",{onClick:El,className:"p-1 hover:bg-gray-700 rounded transition-colors cursor-pointer","aria-label":"Add chart",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5 text-gray-400"})})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[wl.map((Mc,dp)=>jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsx(ChartItem,{chart:Mc,index:dp,uiSpec:ma,onUpdate:Sl,onDelete:Cl})},dp)),wl.length===0&&jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400 text-center py-4",children:"No charts configured"})]})]})})}function SortableEntityItem({entity:ya,index:ma,onVisibilityChange:ba,uiSpec:va,onEntityDetailsChange:Ma}){const[wl,El]=reactExports.useState(!1),Sl=va?.[ya.name],{attributes:Cl,listeners:Mc,setNodeRef:dp,transform:pp,transition:hp,isDragging:Ef}=useSortable({id:ya.name}),Zf={transform:CSS$1.Transform.toString(pp),transition:hp,opacity:Ef?.5:1};return jsxRuntimeExports.jsxs("div",{ref:dp,style:Zf,className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",onClick:()=>El(!wl),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle flex items-center gap-2 flex-1 min-w-0",children:[jsxRuntimeExports.jsx("div",{...Cl,...Mc,className:"drag-handle flex-shrink-0",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1",children:jsxRuntimeExports.jsx("p",{className:"font-medium text-font truncate",children:Sl?.displayName||`${ya.name.split("/")[1]}s`})})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 flex-shrink-0",children:jsxRuntimeExports.jsx("div",{className:"flex-shrink-0",onClick:Jf=>Jf.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:ya.visible,onChangeHandler:Jf=>ba(ma,Jf)})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:wl&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"mt-2",children:jsxRuntimeExports.jsx(rpt,{onEntityDetailsChange:Jf=>Ma(ya.name,Jf),initialDetails:Sl})})})})]})}const DashboardCustomizationPanel=({schema:ya,uiSpec:ma,onSave:ba,saveUISpec:va})=>{const[Ma,wl]=reactExports.useState(ya),{onEntityDetailsChange:El}=useEntityDetailsChange(va),Sl=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),Cl=hp=>{const Ef={...Ma,title:hp};wl(Ef),ba(Ef)},Mc=hp=>{const Ef={...Ma,subtitle:hp};wl(Ef),ba(Ef)},dp=(hp,Ef)=>{const Zf={...Ma,items:{...Ma.items,entities:Ma.items.entities.map((Jf,pg)=>pg===hp?{...Jf,visible:Ef}:Jf)}};wl(Zf),ba(Zf)},pp=hp=>{const{active:Ef,over:Zf}=hp;if(Zf&&Ef.id!==Zf.id){const Jf=Ma.items.entities.findIndex(mg=>mg.name===Ef.id),pg=Ma.items.entities.findIndex(mg=>mg.name===Zf.id),hg={...Ma,items:{...Ma.items,entities:arrayMove(Ma.items.entities,Jf,pg)}};wl(hg),ba(hg)}};return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Dashboard Title"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ma.title,onChange:hp=>Cl(hp.target.value),className:"form-input",placeholder:"Enter dashboard title"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Dashboard Subtitle"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ma.subtitle,onChange:hp=>Mc(hp.target.value),className:"form-input",placeholder:"Enter dashboard subtitle"})]})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(DndContext,{sensors:Sl,collisionDetection:closestCenter,onDragEnd:pp,children:jsxRuntimeExports.jsx(SortableContext,{items:Ma.items.entities.map(hp=>hp.name),strategy:verticalListSortingStrategy,children:jsxRuntimeExports.jsx("div",{className:"space-y-3",children:Ma.items.entities.map((hp,Ef)=>jsxRuntimeExports.jsx(SortableEntityItem,{entity:hp,index:Ef,onVisibilityChange:dp,uiSpec:ma,onEntityDetailsChange:El},hp.name))})})})}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(ChartSettings,{schema:Ma,uiSpec:ma,onSave:ba})]})},Settings=({saveUISpec:ya})=>{const{isEntity:ma,getActiveEntityorAgent:ba}=fy(),{"*":va}=useParams(),Ma=va??"",wl=Ma.split("/"),El=wl.at(-1)??"",Sl=wl[1],Cl=El===""||El==="signin",Mc=El==="signup",dp=El==="edit"||El==="new",pp=wl.length>3,hp=El==="dashboard",Ef=Wn$1();return useEntityDetailsChange(ya),jsxRuntimeExports.jsxs("div",{className:"border-l border-l-border w-1/5 flex flex-col gap-4 p-4 settings-panel overflow-y-auto scrollbar-none h-full",children:[Cl&&jsxRuntimeExports.jsx(Auth,{saveUISpec:ya,authType:"login"}),Mc&&jsxRuntimeExports.jsx(Auth,{saveUISpec:ya,authType:"signUp"}),dp&&jsxRuntimeExports.jsx(FormSettings,{entityName:ba(Ma),saveUISpec:ya}),!Cl&&!Mc&&!dp&&(hp?jsxRuntimeExports.jsx(DashboardCustomizationPanel,{schema:Ef?.homeDashboard||{title:"",subtitle:"",items:{entities:[]}},uiSpec:Ef,onSave:Zf=>{if(ya&&Ef){const Jf={...Ef,homeDashboard:Zf};ya(Jf,"Update home dashboard configuration")}},saveUISpec:ya}):pp?jsxRuntimeExports.jsx(InstanceViewSettings,{entityName:ba(Ma),saveUISpec:ya}):ma(`${Sl}/${El}`)?jsxRuntimeExports.jsx(CollectionViewSettings,{entityName:ba(Ma),saveUISpec:ya}):null)]})},UI=()=>{const{isAgent:ya}=fy(),{"*":ma}=useParams(),{pathParts:ba}=Lt$3(ma),va=ya(`${ba[1]}/${ba[2]}`),{saveUISpec:Ma}=useSaveUISpec(),wl=Wn$1(),El=Lpe(),{teamName:Sl,moduleName:Cl,githubOrg:Mc}=useParams(),dp=useAppStore(Zf=>Zf.user),pp=useAppStore(Zf=>Zf.appConfig),[hp,Ef]=reactExports.useState(null);return reactExports.useRef(!1),reactExports.useEffect(()=>{{Ef("DISABLED");return}},[Sl,Cl,Mc,dp.GitHub?.Token,pp.__repoPath]),reactExports.useEffect(()=>(typeof window<"u"&&(window.currentReplStatus=hp,window.getReplStatus=()=>hp),()=>{typeof window<"u"&&(delete window.currentReplStatus,delete window.getReplStatus)}),[hp]),!wl||!wl.login||!wl.signUp?null:jsxRuntimeExports.jsxs("div",{className:"flex w-full",children:[jsxRuntimeExports.jsx(Upt,{schema:wl,saveUISpec:Ma}),!El&&!va&&jsxRuntimeExports.jsx(Settings,{saveUISpec:Ma})]})},LocalModeInitializer=({children:ya})=>(useLocalModeInitialization(),ya),GenerationProgressWidget=()=>{const{backgroundGenerations:ya,removeBackgroundGeneration:ma}=useAppStore(),ba=useNavigate(),[va,Ma]=reactExports.useState(!1),wl=reactExports.useRef(new Set),El=Object.values(ya),Sl=El.length>0;if(reactExports.useEffect(()=>{if(El.every(Ef=>Ef.status==="completed"||Ef.status==="error")&&El.length>0&&va){const Ef=setTimeout(()=>Ma(!1),3e3);return()=>clearTimeout(Ef)}},[El,va]),reactExports.useEffect(()=>{El.forEach(Ef=>{wl.current.has(Ef.id)||(Ef.status==="completed"?(wl.current.add(Ef.id),y$b.success(jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-5 h-5 flex-shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-medium",children:"App Generated Successfully"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-300 mt-0.5 truncate max-w-xs",children:Ef.moduleName||Ef.userPrompt})]})]}),{autoClose:5e3}),Ma(!0)):Ef.status==="error"&&(wl.current.add(Ef.id),y$b.error(jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-5 h-5 flex-shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-medium",children:"Generation Failed"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-300 mt-0.5 truncate max-w-xs",children:Ef.error||"An error occurred during generation"})]})]}),{autoClose:5e3}),Ma(!0)))});const hp=new Set(El.map(Ef=>Ef.id));wl.current.forEach(Ef=>{hp.has(Ef)||wl.current.delete(Ef)})},[El]),!Sl)return null;const Cl=hp=>{if(hp.status==="completed"&&hp.appId){const[Ef,Zf]=hp.appId.split("/");ba(`/design/data-model/${Ef}/${Zf}/${hp.moduleName||Zf}`,{state:{from:"/generate",generationContext:{appId:hp.appId,hasHistory:!0}}}),ma(hp.id)}else hp.status==="in-progress"?ba("/generate",{state:{restoreGeneration:!0,generationId:hp.id}}):ba("/generate",{state:{resumeConversation:!0,generationId:hp.id}})},Mc=(hp,Ef)=>{hp.stopPropagation(),ma(Ef)},dp=hp=>{const Ef=hp.steps.filter(Zf=>Zf.status==="completed").length;return Math.round(Ef/hp.steps.length*100)},pp=(hp,Ef)=>{hp.stopPropagation(),ba("/generate",{state:{restoreGeneration:!0,generationId:Ef}})};return reactDomExports.createPortal(jsxRuntimeExports.jsx("div",{className:"fixed bottom-4 right-4 z-[1000] flex flex-col gap-2 max-w-sm",children:va?jsxRuntimeExports.jsxs("div",{className:"bg-gray-800 border border-gray-700 rounded-lg shadow-2xl overflow-hidden max-h-96 flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between p-3 border-b border-gray-700 bg-gray-750",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-5 h-5 text-blue-400"}),jsxRuntimeExports.jsxs("span",{className:"text-sm font-medium text-white",children:["Generating Apps (",El.length,")"]})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",children:jsxRuntimeExports.jsx("button",{onClick:()=>Ma(!1),className:"text-gray-400 hover:text-white transition-colors",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"w-4 h-4"})})})]}),jsxRuntimeExports.jsx("div",{className:"overflow-y-auto max-h-72",children:El.map(hp=>jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-gray-700 hover:bg-gray-750 transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0 cursor-pointer",onClick:()=>Cl(hp),children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white truncate",children:hp.userPrompt}),hp.moduleName&&jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-400 mt-0.5",children:hp.moduleName})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[hp.status==="in-progress"&&jsxRuntimeExports.jsx("button",{onClick:Ef=>pp(Ef,hp.id),className:"text-gray-500 hover:text-white transition-colors p-1",title:"Maximize",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:open-in-full",className:"w-4 h-4"})}),jsxRuntimeExports.jsx("button",{onClick:Ef=>Mc(Ef,hp.id),className:"text-gray-500 hover:text-white transition-colors p-1",title:"Dismiss",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-4 h-4"})})]})]}),hp.status==="in-progress"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"w-full bg-gray-700 rounded-full h-1.5 mb-2",children:jsxRuntimeExports.jsx("div",{className:"bg-blue-500 h-1.5 rounded-full transition-all duration-300",style:{width:`${dp(hp)}%`}})}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-gray-400 flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full animate-pulse"}),hp.currentStep]})]}),hp.status==="completed"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-green-400",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4"}),"Ready to open"]}),hp.status==="error"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-red-400",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-4 h-4"}),hp.error||"Generation failed"]})]},hp.id))})]}):jsxRuntimeExports.jsx("div",{className:"bg-gray-800 border border-gray-700 rounded-lg shadow-2xl p-3 transition-colors",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-6 h-6 text-blue-400 animate-pulse"}),El.some(hp=>hp.status==="in-progress")&&jsxRuntimeExports.jsx("div",{className:"absolute -top-1 -right-1 w-3 h-3 bg-blue-500 rounded-full animate-ping"})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"text-sm font-medium text-white",children:[El.length," App",El.length>1?"s":""," Generating"]}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-400 truncate",children:El[0].currentStep})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[(()=>{const hp=El.find(Ef=>Ef.status==="in-progress");return hp?jsxRuntimeExports.jsx("button",{onClick:Ef=>pp(Ef,hp.id),className:"p-1.5 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors",title:"Maximize",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:open-in-full",className:"w-4 h-4"})}):null})(),jsxRuntimeExports.jsx("button",{onClick:()=>Ma(!0),className:"p-1.5 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors",title:"Expand list",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"w-4 h-4 rotate-180"})})]})]})})}),document.body)},IS_PLAYGROUND=!1,RouteChangeTracker=()=>{const ya=useLocation();return reactExports.useEffect(()=>{try{Jo.capture("$pageview",{$current_url:window.location.href,path:ya.pathname,environment:IS_PLAYGROUND?"playground":"studio"})}catch(ma){console.warn("PostHog pageview capture failed:",ma)}},[ya]),null},AnalyticsInitializer=()=>(reactExports.useEffect(()=>{try{loadEnvironmentFromCLI(),IS_PLAYGROUND||Jo.register({environment:"studio"})}catch(ya){console.warn("PostHog analytics init failed:",ya)}},[]),null),AppContent=()=>jsxRuntimeExports.jsxs(LocalModeInitializer,{children:[jsxRuntimeExports.jsx(AnalyticsInitializer,{}),jsxRuntimeExports.jsx(RouteChangeTracker,{}),jsxRuntimeExports.jsx(Outlet,{}),jsxRuntimeExports.jsx(GenerationProgressWidget,{})]}),router=createBrowserRouter([{path:"/",element:jsxRuntimeExports.jsx(AppContent,{}),children:[{path:"/",element:jsxRuntimeExports.jsx(AuthLayout,{}),children:[{path:"/",id:"signin",element:jsxRuntimeExports.jsx(SignIn,{})},{path:"/signup",id:"signup",element:jsxRuntimeExports.jsx(SignUp,{})},{path:"/forgotPassword",id:"forgot-password",element:jsxRuntimeExports.jsx(ForgotPassword,{})},{path:"/recoverPassword",id:"recover-password",element:jsxRuntimeExports.jsx(RecoverPassword,{})}]},{path:"/",element:jsxRuntimeExports.jsx(DashboardLayout,{}),children:[{path:"/home",id:"home-wizard",element:jsxRuntimeExports.jsx(HomeWizard,{})},{path:"/monitoring",id:"home",element:jsxRuntimeExports.jsx(Home,{})},{path:"/deployment/:deploymentId",id:"deployment-detail",element:jsxRuntimeExports.jsx(DeploymentDetail,{})},{path:"/hub",id:"marketplace",element:jsxRuntimeExports.jsx(Marketplace,{})},{path:"/configuration",id:"user-configuration",element:jsxRuntimeExports.jsx(UserConfiguration,{isModal:!1})},{path:"/design/dashboard",id:"teams",element:jsxRuntimeExports.jsx(Teams,{})},{path:"/design/integrations",id:"integrations",element:jsxRuntimeExports.jsx(Integrations,{source:"api"})},{path:"/design/documents",id:"documents",element:jsxRuntimeExports.jsx(Documents,{})},{path:"/design/llms",id:"llms",element:jsxRuntimeExports.jsx(LLM,{})},{path:"/generate",id:"generate",element:jsxRuntimeExports.jsx(Generate,{})},{path:"/mission-control",id:"mission-control",element:jsxRuntimeExports.jsx(MissionControl,{})},{path:"/mission-control/TicketManager",id:"mission-control-ticket-manager",element:jsxRuntimeExports.jsx(TicketList,{title:"Ticket Manager"})},{path:"/mission-control/EmailManager",id:"mission-control-email-manager",element:jsxRuntimeExports.jsx(TicketList,{title:"Email Manager"})}]},{path:"/",element:jsxRuntimeExports.jsx(NoModuleLayout,{}),children:[{path:"/design/data-model/:githubOrg/:teamName",id:"data-model-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/workflow/:githubOrg/:teamName",id:"workflow-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/security/:githubOrg/:teamName",id:"security-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/agents/:githubOrg/:teamName",id:"agents-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/ui/:githubOrg/:teamName",id:"ui-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/settings/:githubOrg/:teamName",id:"settings-no-module",element:jsxRuntimeExports.jsx(NoModule,{})}]},{path:"/",element:jsxRuntimeExports.jsx(DesignLayout,{}),children:[{path:"/design/data-model/:githubOrg/:teamName/:moduleName",id:"data-model",element:jsxRuntimeExports.jsx(DataModel,{})},{path:"/design/workflow/:githubOrg/:teamName/:moduleName",id:"workflow",element:jsxRuntimeExports.jsx(Workflow,{})},{path:"/design/security/:githubOrg/:teamName/:moduleName",id:"security",element:jsxRuntimeExports.jsx(Security,{})},{path:"/design/agents/:githubOrg/:teamName/:moduleName",id:"agents",element:jsxRuntimeExports.jsx(AgentFlow,{})},{path:"/design/ui/:githubOrg/:teamName/:moduleName/*",id:"ui",element:jsxRuntimeExports.jsx(UI,{})},{path:"/design/settings/:githubOrg/:teamName/:moduleName",id:"settings",element:jsxRuntimeExports.jsx(Settings$1,{})}]},{path:"*",id:"not-found",element:jsxRuntimeExports.jsx(NotFound,{})}]}]);function App(){return jsxRuntimeExports.jsx(PostHogProvider,{client:Jo,children:jsxRuntimeExports.jsxs("div",{className:"relative h-screen","data-theme":"default",children:[jsxRuntimeExports.jsx("img",{src:"/assets/bg-gradient.png",alt:"",className:"bg-gradient"}),jsxRuntimeExports.jsx(RouterProvider,{router}),jsxRuntimeExports.jsx(Lt$1,{position:"top-center",autoClose:2e3,hideProgressBar:!0,newestOnTop:!1,closeOnClick:!0,rtl:!1,pauseOnFocusLoss:!1,pauseOnHover:!1,draggable:!1,theme:"dark"})]})})}var cacheEventTypes=["added","removed","updated"];function isCacheEventType(ya){return cacheEventTypes.includes(ya)}async function persistQueryClientRestore({queryClient:ya,persister:ma,maxAge:ba=1e3*60*60*24,buster:va="",hydrateOptions:Ma}){try{const wl=await ma.restoreClient();if(wl)if(wl.timestamp){const El=Date.now()-wl.timestamp>ba,Sl=wl.buster!==va;if(El||Sl)return ma.removeClient();hydrate(ya,wl.clientState,Ma)}else return ma.removeClient()}catch(wl){throw await ma.removeClient(),wl}}async function persistQueryClientSave({queryClient:ya,persister:ma,buster:ba="",dehydrateOptions:va}){const Ma={buster:ba,timestamp:Date.now(),clientState:dehydrate(ya,va)};await ma.persistClient(Ma)}function persistQueryClientSubscribe(ya){const ma=ya.queryClient.getQueryCache().subscribe(va=>{isCacheEventType(va.type)&&persistQueryClientSave(ya)}),ba=ya.queryClient.getMutationCache().subscribe(va=>{isCacheEventType(va.type)&&persistQueryClientSave(ya)});return()=>{ma(),ba()}}function persistQueryClient(ya){let ma=!1,ba;const va=()=>{ma=!0,ba?.()},Ma=persistQueryClientRestore(ya).then(()=>{ma||(ba=persistQueryClientSubscribe(ya))});return[va,Ma]}console.log("IS_PLAYGROUND:",!1);console.log("IS_LOCAL_MODE:",!0);console.log("IS_REGULAR_MODE:",!1);console.log("POSTHOG_ENABLED:",!1);const queryClient=new QueryClient({defaultOptions:{queries:{staleTime:120*1e3,gcTime:300*1e3,retry:(ya,ma)=>ma?.response?.status===401||ma?.response?.status===403||ma?.response?.status>=400&&ma?.response?.status<500?!1:ya<3,retryDelay:ya=>Math.min(1e3*2**ya,3e4),refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchOnMount:!0}}}),persister={persistClient:async ya=>{const ma=localStorage.getItem("workspace_id")||"default",ba=localStorage.getItem("user_profile_id")||"default",va={clientState:ya,timestamp:Date.now(),workspaceId:ma,userProfileId:ba};localStorage.setItem("agentlang-query-cache",JSON.stringify(va))},restoreClient:async()=>{try{const ya=localStorage.getItem("agentlang-query-cache");if(!ya)return;const ma=JSON.parse(ya),ba=localStorage.getItem("workspace_id")||"default",va=localStorage.getItem("user_profile_id")||"default";if(ma.workspaceId!==ba||ma.userProfileId!==va){console.warn("Workspace or user profile changed, invalidating query cache"),localStorage.removeItem("agentlang-query-cache");return}const Ma=720*60*1e3;if(Date.now()-ma.timestamp>Ma){console.warn("Query cache expired, clearing"),localStorage.removeItem("agentlang-query-cache");return}return ma.clientState}catch(ya){console.warn("Failed to restore query cache:",ya),localStorage.removeItem("agentlang-query-cache");return}},removeClient:async()=>{localStorage.removeItem("agentlang-query-cache")}};persistQueryClient({queryClient,persister,maxAge:1440*60*1e3});typeof window<"u"&&(window.replService=replService,window.entityReplService=replService);const rootElement=document.getElementById("root");if(!rootElement)throw new Error("Root element not found");async function initializeAndRenderApp(){try{await initializeAgentLang();const ya=document.getElementById("root");if(!ya)throw new Error("Root element not found");clientExports.createRoot(ya).render(jsxRuntimeExports.jsx(QueryClientProvider,{client:queryClient,children:jsxRuntimeExports.jsx(App,{})}))}catch(ya){console.error("❌ Failed to initialize app:",ya);const ma=document.getElementById("root");ma&&(ma.innerHTML=`
22127
+ ${Ef?"opacity-100 rounded-full px-4 py-1.5 gap-2":"opacity-0 group-hover:opacity-100 rounded-full px-3 py-1.5 gap-2 hover:border-border-color"}`,style:{boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.2)"},onClick:()=>Zf(wpe=>!wpe),children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-blue"}),jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:"App Lifecycle"})]})}),Ef?jsxRuntimeExports.jsx(HomeWizard,{onClose:()=>Zf(!1)}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DesignNavigator,{}),jsxRuntimeExports.jsx("div",{className:`relative flex overflow-hidden transition-all duration-300 ${Ppe?"w-[calc(100%-400px)]":"w-full"}`,id:"canvas-area",children:jsxRuntimeExports.jsx(Outlet,{})})]}),Ppe&&jsxRuntimeExports.jsx(GlobalCopilotSidebar,{})]}):jsxRuntimeExports.jsx(Outlet,{})]})})]})})]})},IS_LOCAL_MODE=!0,NoModuleLayout=()=>{useNavigate();const{state:ya}=useLocation(),{currentTeam:ma}=useTeams(),[ba,va]=reactExports.useState(!1),{isCloning:Ma,cloneAndProcess:wl,error:El,loadingMessage:Sl}=useRepositoryClone(),{setIsArchitectDrawerOpen:Cl}=useAppStore();reactExports.useEffect(()=>{Cl(!1)},[Cl]),reactExports.useRef(null);const Mc=ma?`${ma.GitHubOrg}/${ma.GitHubRepo}`:null;return reactExports.useEffect(()=>{!ma||ya?.isNewTeam},[Mc,ya?.isNewTeam,wl,ma]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[ba&&reactDomExports.createPortal(jsxRuntimeExports.jsx(DeploymentConfiguration,{closeHandler:()=>va(!1)}),document.body),jsxRuntimeExports.jsx("div",{className:"flex flex-col h-screen",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[!IS_LOCAL_MODE,jsxRuntimeExports.jsx("div",{id:"editor",className:"flex flex-col flex-1 overflow-hidden",children:Ma?jsxRuntimeExports.jsx(PageLoader,{message:Sl,header:jsxRuntimeExports.jsxs("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-6 w-6 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-28 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-5 w-16 bg-secondary rounded"}),jsxRuntimeExports.jsx("div",{className:"h-6 w-10 bg-secondary rounded"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center animate-pulse",children:[jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"}),jsxRuntimeExports.jsx("div",{className:"h-8 w-8 bg-secondary rounded-full"})]})]})}):El?jsxRuntimeExports.jsx(CanvasError,{message:El}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{id:"dashboard-header",className:"flex justify-between gap-2 py-2 px-4 bg-transparent border-b border-border-color border-solid",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[!IS_LOCAL_MODE,jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon text-xl!",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:ma?.GitHubRepo||icons.agent})}),jsxRuntimeExports.jsx("h4",{children:ma?.Name}),jsxRuntimeExports.jsx(Branch,{}),!IS_LOCAL_MODE]})}),jsxRuntimeExports.jsx("div",{className:" flex flex-1 overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"relative w-full flex overflow-hidden",id:"canvas-area",children:jsxRuntimeExports.jsx(Outlet,{})})})]})})]})})]})};reactExports.createContext(void 0);var PostHogContext=reactExports.createContext({client:Jo,bootstrap:void 0});function isDeepEqual(ya,ma,ba){if(ba===void 0&&(ba=new WeakMap),ya===ma)return!0;if(typeof ya!="object"||ya===null||typeof ma!="object"||ma===null)return!1;if(ba.has(ya)&&ba.get(ya)===ma)return!0;ba.set(ya,ma);var va=Object.keys(ya),Ma=Object.keys(ma);if(va.length!==Ma.length)return!1;for(var wl=0,El=va;wl<El.length;wl++){var Sl=El[wl];if(!Ma.includes(Sl)||!isDeepEqual(ya[Sl],ma[Sl],ba))return!1}return!0}function PostHogProvider(ya){var ma,ba,va=ya.children,Ma=ya.client,wl=ya.apiKey,El=ya.options,Sl=reactExports.useRef(null),Cl=reactExports.useMemo(function(){return Ma?(wl&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),El&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),Ma):(wl||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),Jo)},[Ma,wl,JSON.stringify(El)]);return reactExports.useEffect(function(){if(!Ma){var Mc=Sl.current;Mc?(wl!==Mc.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),El&&!isDeepEqual(El,Mc.options)&&Jo.set_config(El),Sl.current={apiKey:wl,options:El??{}}):(Jo.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),Jo.init(wl,El),Sl.current={apiKey:wl,options:El??{}})}},[Ma,wl,JSON.stringify(El)]),React.createElement(PostHogContext.Provider,{value:{client:Cl,bootstrap:(ma=El?.bootstrap)!==null&&ma!==void 0?ma:(ba=Ma?.config)===null||ba===void 0?void 0:ba.bootstrap}},va)}var isFunction=function(ya){return typeof ya=="function"},extendStatics=function(ya,ma){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ba,va){ba.__proto__=va}||function(ba,va){for(var Ma in va)Object.prototype.hasOwnProperty.call(va,Ma)&&(ba[Ma]=va[Ma])},extendStatics(ya,ma)};function __extends(ya,ma){if(typeof ma!="function"&&ma!==null)throw new TypeError("Class extends value "+String(ma)+" is not a constructor or null");extendStatics(ya,ma);function ba(){this.constructor=ya}ya.prototype=ma===null?Object.create(ma):(ba.prototype=ma.prototype,new ba)}typeof SuppressedError=="function"&&SuppressedError;var INITIAL_STATE={componentStack:null,exceptionEvent:null,error:null},__POSTHOG_ERROR_MESSAGES={INVALID_FALLBACK:"[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element."};(function(ya){__extends(ma,ya);function ma(ba){var va=ya.call(this,ba)||this;return va.state=INITIAL_STATE,va}return ma.prototype.componentDidCatch=function(ba,va){var Ma=this.props.additionalProperties,wl;isFunction(Ma)?wl=Ma(ba):typeof Ma=="object"&&(wl=Ma);var El=this.context.client,Sl=El.captureException(ba,wl),Cl=va.componentStack;this.setState({error:ba,componentStack:Cl??null,exceptionEvent:Sl})},ma.prototype.render=function(){var ba=this.props,va=ba.children,Ma=ba.fallback,wl=this.state;if(wl.componentStack==null)return isFunction(va)?va():va;var El=isFunction(Ma)?React.createElement(Ma,{error:wl.error,componentStack:wl.componentStack,exceptionEvent:wl.exceptionEvent}):Ma;return React.isValidElement(El)?El:(console.warn(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK),React.createElement(React.Fragment,null))},ma.contextType=PostHogContext,ma})(React.Component);const validationSchema=create$3().shape({title:create$6().required("Title is required")}),Header=({saveUISpec:ya,authType:ma})=>{const{teamName:ba}=useParams(),va=Wn$1();return va?jsxRuntimeExports.jsx(Formik,{initialValues:{...va[ma].header,title:va[ma].header.title||ba},onSubmit:Ma=>{const wl={...va,[ma]:{...va[ma]||{},header:Ma}};ya&&ya(wl,"Update theme")},validationSchema,children:jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(Kht,{name:"title",placeholder:"Welcome Message",isFloating:!1}),jsxRuntimeExports.jsx(Kht,{name:"subTitle",placeholder:"Subtitle",isFloating:!1}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}):null},FormSettings$1=({saveUISpec:ya,authType:ma})=>{const ba=Wn$1();return ba?jsxRuntimeExports.jsx(Formik,{initialValues:ba[ma].form.placeholder,onSubmit:va=>{const Ma={...ba,[ma]:{...ba[ma],form:{...ba[ma].form,placeholder:va}}};ya&&ya(Ma,"Update theme")},children:jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[Object.keys(ba[ma].form.placeholder).map(va=>jsxRuntimeExports.jsx(Kht,{name:va,placeholder:`${Ft$4(va)} Placeholder`,isFloating:!1},va)),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}):null},socialNetworks=["git","google","microsoft","linkedin"],SocialNetworks=({saveUISpec:ya,authType:ma})=>{const ba=Wn$1();return ba?jsxRuntimeExports.jsx(Formik,{initialValues:ba[ma].socialNetworks,onSubmit:va=>{const Ma={...ba,[ma]:{...ba[ma],socialNetworks:va}};ya&&ya(Ma,"Update theme")},children:va=>{const{values:Ma,setValues:wl}=va,El=Ma.icons,Sl=socialNetworks.every(Cl=>El.includes(Cl));return jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(Kht,{name:"label",placeholder:"Label",isFloating:!1}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-end cursor-pointer",onClick:()=>{wl({...Ma,icons:Sl?[]:socialNetworks})},children:[jsxRuntimeExports.jsx(Icon,{icon:Sl?Ot$3.checkboxSelected:Ot$3.checkbox,className:classNames(["text-xl",Sl?"text-checkbox-selected":"text-secondary-font"])}),"Show social networks"]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),socialNetworks.map(Cl=>{const Mc=El.includes(Cl);return jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-end cursor-pointer",onClick:()=>{wl({...Ma,icons:Mc?Ma.icons.filter(dp=>dp!==Cl):[...Ma.icons,Cl]})},children:[jsxRuntimeExports.jsx(Icon,{icon:Mc?Ot$3.checkboxSelected:Ot$3.checkbox,className:classNames(["text-xl",Mc?"text-checkbox-selected":"text-secondary-font"])}),Ft$4(Cl)]},Cl)}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",children:"Save"})]})}}):null},Auth=({saveUISpec:ya,authType:ma})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(h1,{label:"Header",defaultOpen:!0,children:jsxRuntimeExports.jsx(Header,{saveUISpec:ya,authType:ma})}),jsxRuntimeExports.jsx(h1,{label:"Social Networks",defaultOpen:!0,children:jsxRuntimeExports.jsx(SocialNetworks,{saveUISpec:ya,authType:ma})}),jsxRuntimeExports.jsx(h1,{label:"Form",defaultOpen:!0,children:jsxRuntimeExports.jsx(FormSettings$1,{saveUISpec:ya,authType:ma})})]}),getTopLevelAttributes=(ya,ma)=>ya.order?.length>0?ya.order:Array.from(ma.keys()),initializeNestedFormSchema=ya=>{const ma={Form:{},order:[]};return ya.forEach((ba,va)=>{const Ma=ba.properties?.get("optional")===!0,El=typeof ba=="object"&&ba!==void 0?ba.type:String(ba),Sl=getInputType(El);ma.Form[va]={inputType:Sl,required:!Ma,displayOptions:{label:Ft$4(va),placeholder:`Enter ${va}`}},ma.order.push(va)}),ma},ensureCompleteNestedFormSchema=(ya,ma)=>{const ba=ya||{Form:{},order:[]};return ma.forEach((va,Ma)=>{if(!ba.Form[Ma]){const wl=va.properties?.get("optional")===!0,Sl=typeof va=="object"&&va!==void 0?va.type:String(va),Cl=getInputType(Sl);ba.Form[Ma]={inputType:Cl,required:!wl,displayOptions:{label:Ft$4(Ma),placeholder:`Enter ${Ma}`}},ba.order.includes(Ma)||ba.order.push(Ma)}}),ba},NestedFields=({entityName:ya,attrName:ma,nestedFormSchema:ba,nestedAttributes:va,referencedModule:Ma,updateNestedFormSchema:wl,depth:El})=>{const[Sl,Cl]=reactExports.useState(null);let Mc=ba;!Mc&&va&&(Mc=initializeNestedFormSchema(va),wl(Mc));const dp=ensureCompleteNestedFormSchema(Mc,va),pp=dp.order?.length>0?dp.order.filter(pg=>dp.Form[pg]):Array.from(va.keys()),hp=[],Ef=[];pp.forEach(pg=>{dp.Form[pg]?.required??!1?hp.push(pg):Ef.push(pg)});const Zf=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),Jf=pg=>{const{active:hg,over:mg}=pg;if(mg&&hg.id!==mg.id){const gg=q1=>{const r0=q1;return r0.includes(".")&&r0.split(".").pop()||r0},yg=gg(hg.id),ay=gg(mg.id),ly=dp.order.indexOf(yg),cy=dp.order.indexOf(ay);if(ly!==-1&&cy!==-1){const q1=[...dp.order],[r0]=q1.splice(ly,1);q1.splice(cy,0,r0);const uE={...dp,order:q1};wl(uE)}}Cl(null)};return jsxRuntimeExports.jsx(DndContext,{sensors:Zf,collisionDetection:closestCenter,onDragCancel:()=>Cl(null),onDragStart:pg=>{Cl(pg.active.id)},onDragEnd:Jf,children:jsxRuntimeExports.jsxs("div",{className:"setting-container pt-2",children:[jsxRuntimeExports.jsxs(SortableContext,{items:pp.map(pg=>ma?`${ma}.${pg}`:pg),strategy:verticalListSortingStrategy,children:[hp.length>0&&jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:hp.map(pg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:pg,formSchema:dp,updateFormSchema:wl,isRequired:!0,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1},pg))}),Ef.length>0&&jsxRuntimeExports.jsx("div",{children:Ef.map(pg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:pg,formSchema:dp,updateFormSchema:wl,isRequired:!1,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1},pg))})]}),jsxRuntimeExports.jsx(DragOverlay,{children:Sl?(()=>{const hg=(yg=>yg.includes(".")&&yg.split(".").pop()||yg)(Sl),gg=dp.Form[hg]?.required??!1;return jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:wl,isRequired:gg,nestedPath:ma,nestedAttributes:va,referencedModule:Ma,depth:El+1})})():null})]})})},AttributeField$1=({entityName:ya,attrName:ma,formSchema:ba,updateFormSchema:va,isRequired:Ma=!0,nestedPath:wl,nestedAttributes:El,referencedModule:Sl,depth:Cl=0})=>{const[Mc,dp]=reactExports.useState(!1),pp=ba.Form[ma]?.isHidden||!1,{attributes:hp,listeners:Ef,setNodeRef:Zf,transform:Jf,transition:pg,isDragging:hg}=useSortable({id:wl?`${wl}.${ma}`:ma}),mg=(()=>{try{const[O_,aE]=ya.split("/");return getEntity$1(aE,O_)?.getUserAttributes()||new Map}catch(O_){return console.error("Error getting entity schema:",O_),new Map}})(),yg=(El||mg).get(ma),ay=yg&&typeof yg=="object"?yg.type:String(yg||"text"),ly=ba.Form[ma]?.inputType||getInputType(ay),cy=Sl||ya.split("/")[0],q1=yg?getNestedAttributeInfo(ma,yg,cy):{isNested:!1,nestedAttributes:null,referencedModule:null},r0=q1.isNested&&q1.nestedAttributes!==null,uE=ba.Form[ma]?.nestedForm,V1=[{label:"Text",value:"text"},{label:"Number",value:"number"},{label:"Email",value:"email"},{label:"Password",value:"password"},{label:"Date",value:"date"},{label:"Checkbox",value:"checkbox"},{label:"Select",value:"select"},...r0?[{label:"Nested Form",value:"nested"}]:[]],H1=O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],nestedForm:O_}}};va(aE)};return jsxRuntimeExports.jsxs("div",{ref:Zf,style:{opacity:hg?.5:1,transform:CSS$1.Translate.toString(Jf),transition:pg},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>dp(!Mc),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[jsxRuntimeExports.jsx("span",{...hp,...Ef,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsxs("span",{children:[Ft$4(ma),r0&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-gray-400 ml-2",children:["(",q1.type==="entity"?"Entity":q1.type==="record"?"Record":"OneOf",": ",q1.referencedName,")"]})]})]}),!Ma&&jsxRuntimeExports.jsx("div",{onClick:O_=>O_.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!pp,onChangeHandler:O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],isHidden:!O_}}};va(aE)}})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Mc&&!r0&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx("div",{className:"setting-toggle-body",children:jsxRuntimeExports.jsxs("div",{className:"mb-4",children:[jsxRuntimeExports.jsx("label",{className:"text-sm mb-2 block",children:"Input Type"}),jsxRuntimeExports.jsx(gee,{value:ly,options:V1,onChange:O_=>{const aE={...ba,Form:{...ba.Form,[ma]:{...ba.Form[ma],inputType:O_}}};va(aE)}})]})})})}),jsxRuntimeExports.jsx(AnimatePresence,{children:Mc&&r0&&q1.nestedAttributes&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(NestedFields,{entityName:ya,attrName:ma,nestedFormSchema:uE,nestedAttributes:q1.nestedAttributes,referencedModule:q1.referencedModule,updateNestedFormSchema:H1,depth:Cl})})})})]})},FormSettings=({entityName:ya,saveUISpec:ma})=>{const[ba,va]=reactExports.useState(null),[Ma,wl]=ya.split("/"),Sl=getEntity$1(wl,Ma)?.getUserAttributes()||new Map,Cl=Wn$1(),Mc=`${ya}.ui.form`,dp=Cl[Mc],hp=getTopLevelAttributes(dp,Sl).filter(hg=>dp.Form[hg]).sort((hg,mg)=>{const gg=dp.order.indexOf(hg),yg=dp.order.indexOf(mg);return gg===-1?1:yg===-1?-1:gg-yg}),Ef=[],Zf=[];hp.forEach(hg=>{dp.Form[hg]?.required??!1?Ef.push(hg):Zf.push(hg)});const Jf=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),pg=hg=>{if(ma){const mg=`${ya}.ui.form`,gg={...Cl,[mg]:hg};ma(gg,"Update form settings")}};return jsxRuntimeExports.jsx(DndContext,{sensors:Jf,collisionDetection:closestCenter,onDragCancel:()=>va(null),onDragStart:hg=>{va(hg.active.id)},onDragEnd:hg=>{const{active:mg,over:gg}=hg;if(gg&&mg.id!==gg.id){const yg=dp.order.indexOf(mg.id),ay=dp.order.indexOf(gg.id),ly=[...dp.order],[cy]=ly.splice(yg,1);ly.splice(ay,0,cy);const q1={...dp,order:ly};console.log("newFormSchema",q1),pg(q1)}va(null)},children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsxs(SortableContext,{items:hp,strategy:verticalListSortingStrategy,children:[Ef.length>0&&jsxRuntimeExports.jsx(h1,{label:"Required",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:Ef.map(hg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:pg,isRequired:!0},hg))})}),Zf.length>0&&jsxRuntimeExports.jsx(h1,{label:"Optional",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:Zf.map(hg=>jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:hg,formSchema:dp,updateFormSchema:pg,isRequired:!1},hg))})})]}),jsxRuntimeExports.jsx(DragOverlay,{children:ba?jsxRuntimeExports.jsx(AttributeField$1,{entityName:ya,attrName:ba,formSchema:dp,updateFormSchema:pg}):null})]})})},HeaderSettings=({headerSchema:ya,updateHeaderSchema:ma})=>{if(Array.isArray(ya)||typeof ya!="object"||ya===null)return null;const ba=ya.view,{showBreadcrumbs:va}=ba?.Heading||{};return jsxRuntimeExports.jsx(h1,{label:"Header",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{showBreadcrumbs:va??!1},onSubmit:Ma=>{const wl={...ba.Heading,...Ma},El={...ya,view:{...ba,Heading:wl}};ma(El)},children:({values:Ma,setFieldValue:wl})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Show Breadcrumbs"}),jsxRuntimeExports.jsx(tpt,{isChecked:Ma.showBreadcrumbs,onChangeHandler:El=>wl("showBreadcrumbs",El)})]})}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})};function capitalizeFirstLetter(ya){return ya&&ya.charAt(0).toUpperCase()+ya.slice(1)}const DateOptionMenu=()=>{const[ya,,ma]=useField({name:"dateFormat"}),ba=ya.value;return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Date Format"}),jsxRuntimeExports.jsx(gee,{value:ba||"MM/DD/YY",options:[{label:"DD/MM/YY",value:"DD/MM/YY"},{label:"MM/DD/YY",value:"MM/DD/YY"}],onChange:va=>ma.setValue(va)})]})},FontWeightMenu$1=()=>{const[ya,,ma]=useField({name:"fontWeight"}),ba=ya.value||"normal";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Weight"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"Normal",value:"normal"},{label:"Bold",value:"bold"},{label:"Bolder",value:"bolder"},{label:"Lighter",value:"lighter"}],onChange:va=>ma.setValue(va)})]})},FontStyleMenu$1=()=>{const[ya,,ma]=useField({name:"fontStyle"}),ba=ya.value||"normal";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Style"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"Normal",value:"normal"},{label:"Italic",value:"italic"},{label:"Oblique",value:"oblique"},{label:"Lighter",value:"lighter"}],onChange:va=>ma.setValue(va)})]})},TextDecorationMenu$1=()=>{const[ya,,ma]=useField({name:"textDecorationLine"}),ba=ya.value||"none";return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Text Decoration"}),jsxRuntimeExports.jsx(gee,{value:ba,options:[{label:"None",value:"none"},{label:"Underline",value:"underline"},{label:"Overline",value:"overline"},{label:"Line Through",value:"line-through"}],onChange:va=>ma.setValue(va)})]})},ColumnField=({entityName:ya,attributeName:ma,uiAttributeSchema:ba={},onFieldUpdate:va,onAttributeUpdate:Ma,disabled:wl=!1})=>{const[El,Sl]=reactExports.useState(!1),{attributes:Cl,listeners:Mc,setNodeRef:dp,transform:pp,transition:hp,isDragging:Ef}=useSortable({id:ma,disabled:wl}),[Zf,Jf]=ya.split("/"),mg=getEntity$1(Jf,Zf)?.getUserAttributes()?.get(ma),gg=typeof mg=="object"?mg.type:String(mg),yg=()=>{if(Object.keys(ba).length===0){const ay={colSpan:1,fontWeight:"normal",fontStyle:"normal",textDecorationLine:"none"};switch(gg){case"DateTime":return{...ay,dateFormat:"MM/DD/YY"};case"Float":case"Decimal":return{...ay,precision:2};default:return ay}}return ba};return jsxRuntimeExports.jsxs("div",{ref:dp,style:{opacity:Ef?.5:1,transform:CSS$1.Translate.toString(pp),transition:hp},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>Sl(!El),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[!wl&&jsxRuntimeExports.jsx("span",{...Cl,...Mc,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("span",{children:capitalizeFirstLetter(ma)})]}),va&&jsxRuntimeExports.jsx("div",{onClick:ay=>ay.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!wl,onChangeHandler:va})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:El&&!wl&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx(Formik,{initialValues:yg(),validate:ay=>{const ly={};return ay.colSpan||(ly.colSpan="Col span is required"),["Float","Decimal"].includes(gg)&&!ay.precision&&(ly.precision="Precision is required"),ly},onSubmit:ay=>{Ma&&Ma(ma,ay)},children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Col Span"}),jsxRuntimeExports.jsx(Field,{type:"number",step:"1",placeholder:"ColSpan",name:"colSpan",className:"form-input"}),jsxRuntimeExports.jsx(ErrorMessage,{name:"colSpan",children:ay=>jsxRuntimeExports.jsxs("div",{className:"error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:"ph:warning-bold"}),ay]})})]}),gg==="DateTime"&&jsxRuntimeExports.jsx(DateOptionMenu,{}),["Float","Decimal"].includes(gg)&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Precision"}),jsxRuntimeExports.jsx(Field,{type:"number",step:"1",placeholder:"Precision",name:"precision",className:"form-input"}),jsxRuntimeExports.jsx(ErrorMessage,{name:"precision",children:ay=>jsxRuntimeExports.jsxs("div",{className:"error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:"ph:warning-bold"}),ay]})})]}),jsxRuntimeExports.jsx(FontWeightMenu$1,{}),jsxRuntimeExports.jsx(FontStyleMenu$1,{}),jsxRuntimeExports.jsx(TextDecorationMenu$1,{}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})]})},FieldSettings$1=({entityName:ya,collectionSchema:ma,onFieldUpdate:ba,onAttributeUpdate:va})=>{const[Ma,wl]=reactExports.useState(null),[El,Sl]=ya.split("/"),Mc=getEntity$1(Sl,El)?.getUserAttributes(),dp=Array.from(Mc?.keys()||[]),pp=Object.keys(ma)[0],hp=ma[pp],Ef=hp?.fields,Zf=Array.isArray(Ef)?Ef:[],Jf=dp.filter(hg=>!Zf.includes(hg)),pg=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates}));return jsxRuntimeExports.jsx(DndContext,{sensors:pg,collisionDetection:closestCenter,onDragCancel:()=>wl(null),onDragStart:hg=>{wl(hg.active.id)},onDragEnd:hg=>{const{active:mg,over:gg}=hg;if(gg&&mg.id!==gg.id){const yg=Zf.indexOf(mg.id),ay=Zf.indexOf(gg.id),ly=arrayMove(Zf,yg,ay);ba(ly)}wl(null)},children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(SortableContext,{items:Zf,strategy:verticalListSortingStrategy,children:Zf.map(hg=>jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:hg,uiAttributeSchema:hp[hg]||{},onFieldUpdate:mg=>{mg||ba(Zf.filter(gg=>gg!==hg))},onAttributeUpdate:va,disabled:!1},hg))}),Jf.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fx-divider"}),Jf.map(hg=>jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:hg,onFieldUpdate:mg=>{mg&&ba([...Zf,hg])},onAttributeUpdate:va,disabled:!0},hg))]}),jsxRuntimeExports.jsx(DragOverlay,{children:Ma?jsxRuntimeExports.jsx(ColumnField,{entityName:ya,attributeName:Ma}):null})]})})},CreateButtonSettings=({actionSchema:ya,updateActionSchema:ma})=>jsxRuntimeExports.jsx(h1,{label:"Create Button",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{text:ya?.create?.text||"",icon:ya?.create?.icon||"mdi:plus"},onSubmit:ba=>{ma({create:{...ya.create,...ba}})},children:({values:ba,setFieldValue:va})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Button Text"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:ba.icon,onIconChange:Ma=>va("icon",Ma),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:ba.icon,width:"16",height:"16"})})}),jsxRuntimeExports.jsx(Field,{type:"text",placeholder:"Button Text",name:"text",className:"form-input"})]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})}),EntityCollectionSettings=({entityName:ya,bodySchema:ma,updateBodySchema:ba})=>{if(Array.isArray(ma)||typeof ma!="object"||ma===null)return null;const va=ma.view,Ma=Object.keys(va)[0],{showGlobalFilter:wl,showColumnFilter:El}=Object.values(va)[0],Sl=Cl=>{const Mc=va[Ma];ba({...ma,view:{[Cl]:Mc}})};return jsxRuntimeExports.jsx(h1,{label:"Collection",defaultOpen:!0,children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsxs("div",{className:"entity-collection-options",children:[jsxRuntimeExports.jsxs("div",{className:"entity-collection-option","data-selected":Ma==="Table",onClick:()=>Sl("Table"),children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:table",height:"20",width:"20"}),"Table"]}),jsxRuntimeExports.jsxs("div",{className:"entity-collection-option","data-selected":Ma==="Cards",onClick:()=>Sl("Cards"),children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:cards-outline",height:"20",width:"20"}),"Cards"]})]}),jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Global Filtering"}),jsxRuntimeExports.jsx(tpt,{isChecked:wl||!1,onChangeHandler:Cl=>{ba({...ma,view:{[Ma]:{...va[Ma],showGlobalFilter:Cl}}})}})]})}),jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",children:[jsxRuntimeExports.jsx("span",{children:"Column Filtering"}),jsxRuntimeExports.jsx(tpt,{isChecked:El||!1,onChangeHandler:Cl=>{ba({...ma,view:{[Ma]:{...va[Ma],showColumnFilter:Cl}}})}})]})})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(FieldSettings$1,{entityName:ya,collectionSchema:va,onFieldUpdate:Cl=>{const Mc=Ma;ba({...ma,view:{[Mc]:{...va[Mc],fields:Cl}}})},onAttributeUpdate:(Cl,Mc)=>{const dp=Ma;ba({...ma,view:{[dp]:{...va[dp],[Cl]:Mc}}})}})]})})},TableHeaderSettings=({bodySpec:ya,updateBodySchema:ma})=>jsxRuntimeExports.jsx(h1,{label:"Table Header",defaultOpen:!0,children:jsxRuntimeExports.jsx("div",{className:"setting-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{displayName:ya.displayName||"",description:ya.description||"",icon:ya.icon||"bi:card-list",color:ya.color||"white"},onSubmit:ba=>{ma({...ya,...ba})},children:({values:ba,setFieldValue:va})=>jsxRuntimeExports.jsxs(Form$7,{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Display Name"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:ba.icon,onIconChange:Ma=>va("icon",Ma),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:ba.icon,width:"16",height:"16"})})}),jsxRuntimeExports.jsx(Field,{type:"text",name:"displayName",placeholder:"Enter Name...",className:"form-input flex-1"})]})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Description"}),jsxRuntimeExports.jsx(Field,{type:"text",name:"description",placeholder:"Enter description...",className:"form-input"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Color"}),jsxRuntimeExports.jsx(Field,{type:"text",name:"color",placeholder:"Enter color (e.g., white, #ffffff)",className:"form-input"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})}),CollectionViewSettings=({entityName:ya,saveUISpec:ma,showHeader:ba=!0,specificBodyKey:va})=>{const Ma=Wn$1(),wl=`${ya}.ui.dashboard`,El=Ma?.[wl],Sl=El?.find(Ef=>Ef.includes(".header")),Cl=Sl?Ma?.[Sl]:void 0,Mc=va||El?.find(Ef=>Ef.includes(".body")),dp=Mc?Ma?.[Mc]:void 0,pp=Ef=>{if(ma&&Sl){const Zf={...Ma,[`${Sl}.header`]:Ef};ma(Zf,"Update dashboard header settings")}},hp=Ef=>{if(ma&&Mc){const Zf={...Ma,[Mc]:Ef};ma(Zf,"Update dashboard body settings")}};return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[Cl&&ba&&jsxRuntimeExports.jsx(HeaderSettings,{headerSchema:Cl,updateHeaderSchema:pp}),dp&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TableHeaderSettings,{bodySpec:dp,updateBodySchema:hp}),jsxRuntimeExports.jsx(CreateButtonSettings,{actionSchema:dp.actions||{},updateActionSchema:Ef=>{const Zf={...dp,actions:Ef};hp(Zf)}}),jsxRuntimeExports.jsx(EntityCollectionSettings,{entityName:ya,bodySchema:dp,updateBodySchema:hp})]})]})},FontWeightMenu=()=>{const[ya,,ma]=useField({name:"fontWeight"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Weight"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"normal",options:["normal","bold","bolder","lighter"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},FontStyleMenu=()=>{const[ya,,ma]=useField({name:"fontStyle"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Font Style"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"normal",options:["normal","italic","oblique"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},TextDecorationMenu=()=>{const[ya,,ma]=useField({name:"textDecorationLine"});return jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Text Decoration"}),jsxRuntimeExports.jsx(gee,{value:ya.value||"none",options:["none","underline","overline","line-through"].map(ba=>({label:ba,value:ba})),onChange:ba=>ma.setValue(ba)})]})},ButtonSettings=({buttonType:ya,buttonSchema:ma,updateButtonSchema:ba,entityName:va})=>{const Ma=va.split("/")[1],wl={text:ma?.text||ya,icon:ma?.icon||(ya==="Edit"?"mdi:pencil":"mdi:delete"),style:ma?.style||(ya==="Edit"?"secondary":"danger")};return jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx("div",{className:"font-bold",children:`${ya} Button`}),jsxRuntimeExports.jsx(Formik,{initialValues:wl,onSubmit:El=>{const Sl={...ma||{type:"button",actionType:ya==="Edit"?"navigation":"modal",action:`${Ma}/${ya.toLowerCase()}`},...El};ba(Sl)},enableReinitialize:!0,children:({values:El,setFieldValue:Sl,handleSubmit:Cl})=>jsxRuntimeExports.jsxs("div",{className:"setting-container",style:{gap:"8px"},children:[jsxRuntimeExports.jsx("div",{className:"form-item",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(NO,{icon:El.icon,onIconChange:Mc=>Sl("icon",Mc),children:jsxRuntimeExports.jsx("button",{type:"button",className:"w-8 h-8 bg-secondary border border-transparent hover:border-white/40 rounded-md flex items-center justify-center cursor-pointer transition-all duration-300",children:jsxRuntimeExports.jsx(Icon,{icon:El.icon,width:"16",height:"16",className:"text-white"})})}),jsxRuntimeExports.jsx(Field,{type:"text",name:"text",placeholder:"Button Text",className:"form-input flex-1"})]})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Cl(),className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})]})},AttributeField=({attributeName:ya,uiAttributeSchema:ma={},onFieldUpdate:ba,onAttributeUpdate:va,disabled:Ma=!1})=>{const[wl,El]=reactExports.useState(!1),{attributes:Sl,listeners:Cl,setNodeRef:Mc,transform:dp,transition:pp,isDragging:hp}=useSortable({id:ya,disabled:Ma});return jsxRuntimeExports.jsxs("div",{ref:Mc,style:{opacity:hp?.5:1,transform:CSS$1.Translate.toString(dp),transition:pp},className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header",onClick:()=>El(!wl),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle",children:[!Ma&&jsxRuntimeExports.jsx("span",{...Sl,...Cl,className:"drag-handle",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("span",{children:Ft$4(ya)})]}),ba&&jsxRuntimeExports.jsx("div",{onClick:Ef=>Ef.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:!Ma,onChangeHandler:ba})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:wl&&!Ma&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},style:{overflow:"hidden"},children:jsxRuntimeExports.jsx(Formik,{initialValues:ma,onSubmit:Ef=>va?.(ya,Ef),children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsx(FontWeightMenu,{}),jsxRuntimeExports.jsx(FontStyleMenu,{}),jsxRuntimeExports.jsx(TextDecorationMenu,{}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})})]})},FieldSettings=({entityName:ya,summarySchema:ma,onFieldUpdate:ba,onAttributeUpdate:va})=>{const[Ma,wl]=reactExports.useState(null),[El,Sl]=ya.split("/"),Cl=getEntity$1(Sl,El),Mc=Array.from(Cl?.getUserAttributes().keys()||[]),dp=ma.fields||[],pp=Mc.filter(Ef=>!dp.includes(Ef)),hp=useSensors(useSensor(PointerSensor),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates}));return jsxRuntimeExports.jsx(DndContext,{sensors:hp,collisionDetection:closestCenter,onDragStart:Ef=>wl(Ef.active.id),onDragEnd:Ef=>{const{active:Zf,over:Jf}=Ef;if(Jf&&Zf.id!==Jf.id){const pg=dp.indexOf(Zf.id),hg=dp.indexOf(Jf.id);ba(arrayMove(dp,pg,hg))}wl(null)},onDragCancel:()=>wl(null),children:jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(SortableContext,{items:dp,strategy:verticalListSortingStrategy,children:dp.map(Ef=>jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ef,uiAttributeSchema:ma[Ef]||{},onFieldUpdate:Zf=>!Zf&&ba(dp.filter(Jf=>Jf!==Ef)),onAttributeUpdate:va},Ef))}),pp.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"fx-divider"}),pp.map(Ef=>jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ef,onFieldUpdate:Zf=>Zf&&ba([...dp,Ef]),onAttributeUpdate:va,disabled:!0},Ef))]}),jsxRuntimeExports.jsx(DragOverlay,{children:Ma?jsxRuntimeExports.jsx(AttributeField,{entityName:ya,attributeName:Ma}):null})]})})},InstanceSummarySettings=({entityName:ya,summaryKey:ma,saveUISpec:ba})=>{const va=Wn$1(),Ma=va?.[ma]||{view:{Card:{}}},wl=Ma.view.Card,El=Ma.actions,Sl=Mc=>{if(ba){const dp={...va,[ma]:{...Ma,actions:Mc}};ba(dp,`Update ${ya} instance summary actions`)}},Cl=Mc=>{if(ba){const dp={...va,[ma]:{...Ma,view:{...Ma.view,Card:Mc}}};ba(dp,`Update ${ya} instance summary`)}};return jsxRuntimeExports.jsx(h1,{label:"Instance Summary",defaultOpen:!0,children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx(Formik,{initialValues:{layout:wl.layout||"grid",columns:wl.columns||2},onSubmit:Mc=>{Cl({...wl,...Mc})},children:jsxRuntimeExports.jsxs(Form$7,{className:"setting-container !gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"setting-container",children:[jsxRuntimeExports.jsx(ButtonSettings,{buttonType:"Edit",buttonSchema:El?.edit,updateButtonSchema:Mc=>Sl({...El,edit:Mc}),entityName:ya}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(ButtonSettings,{buttonType:"Delete",buttonSchema:El?.delete,updateButtonSchema:Mc=>Sl({...El,delete:Mc}),entityName:ya})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(F$e,{fieldName:"layout",placeholder:"Layout",options:[{label:"Grid",value:"grid"},{label:"List",value:"list"}]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("span",{className:"label",children:"Columns"}),jsxRuntimeExports.jsx(Field,{type:"number",name:"columns",className:"form-input"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"fx-button",style:{justifyContent:"center"},children:"Save Layout"})]})}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(FieldSettings,{entityName:ya,summarySchema:wl,onFieldUpdate:Mc=>Cl({...wl,fields:Mc}),onAttributeUpdate:(Mc,dp)=>{Cl({...wl,[Mc]:dp})}})]})})},InstanceViewSettings=({entityName:ya,saveUISpec:ma})=>{const ba=Wn$1(),va=`${ya}.ui.instance`,Ma=ba?.[va],wl=Bpe();return Ma?jsxRuntimeExports.jsx("div",{className:"space-y-4",children:Ma.map(El=>{const Sl=ba?.[El];if(!Sl||Array.isArray(Sl))return null;const Cl=Sl.view,Mc=Object.keys(Cl)[0],dp=wl===El;if(Mc==="Heading")return jsxRuntimeExports.jsx(HeaderSettings,{headerSchema:Sl,isTitleRequired:!0,updateHeaderSchema:hp=>{if(ma){const Ef={...ba,[El]:hp};ma(Ef,"Update instance header settings")}}},El);if(Mc==="Card"&&dp)return jsxRuntimeExports.jsx(InstanceSummarySettings,{entityName:ya,summaryKey:El,saveUISpec:ma},El);if((Mc==="Table"||Mc==="Cards")&&dp){const hp=El.match(/^(.*?)\.ui\./),Ef=hp?hp[1]:"";return jsxRuntimeExports.jsx(CollectionViewSettings,{entityName:Ef,saveUISpec:ma,showHeader:!1,specificBodyKey:El},El)}return null})}):jsxRuntimeExports.jsx("div",{children:"No instance view settings found for this entity."})};function ChartItem({chart:ya,index:ma,uiSpec:ba,onUpdate:va,onDelete:Ma}){const wl=!!(ya.record&&ya.title&&(ya.groupBy?ya.aggregate&&(ya.aggregate==="count"||ya.aggregateField):ya.xAxis&&ya.yAxis)),[El,Sl]=reactExports.useState(!wl),[Cl,Mc]=reactExports.useState(ya);reactExports.useEffect(()=>{Mc(ya),!!(ya.record&&ya.title&&(ya.groupBy?ya.aggregate&&(ya.aggregate==="count"||ya.aggregateField):ya.xAxis&&ya.yAxis))||Sl(!0)},[ya]);const dp=ba?.entities?ba.entities.map(pg=>{const hg=ba[pg];return{value:pg,label:hg?.displayName||pg}}):[],pp=pg=>{if(!pg||!ba)return[];const mg=ba[pg]?.attributes||{};return Object.keys(mg).map(gg=>{const ay=mg[gg]?.type||"string";return{value:gg,label:`${gg} (${ay==="number"||ay==="integer"||ay==="float"?"quantitative":"ordinal"})`}})},hp=pp(Cl.record),Ef=pp(Cl.record),Zf=Cl.groupBy?[{value:"count",label:"Count (aggregated)"},...Ef]:Ef,Jf=()=>{va(ma,Cl)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",onClick:()=>Sl(!El),children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1",children:jsxRuntimeExports.jsx("p",{className:"font-medium text-font truncate",children:Cl.title||`Chart ${ma+1}`})})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 shrink-0",children:jsxRuntimeExports.jsx("button",{onClick:pg=>{pg.stopPropagation(),Ma(ma)},className:"p-1 hover:bg-gray-700 rounded transition-colors cursor-pointer","aria-label":"Delete chart",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:delete",className:"w-4 h-4 text-gray-400"})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:El&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle-body",style:{height:"max-content"},children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Chart Type"}),jsxRuntimeExports.jsx(gee,{value:Cl.chartType||"bar",options:[{value:"bar",label:"Bar"},{value:"line",label:"Line"},{value:"area",label:"Area"},{value:"pie",label:"Pie"},{value:"scatter",label:"Scatter"},{value:"point",label:"Point"}],placeholder:"Select chart type",onChange:pg=>Mc({...Cl,chartType:pg})})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Entity"}),jsxRuntimeExports.jsx(gee,{value:Cl.record,options:dp,placeholder:"Select an entity",onChange:pg=>{Mc({...Cl,record:pg,xAxis:"",yAxis:""})}})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Group By (for aggregation)"}),jsxRuntimeExports.jsx(gee,{value:Cl.groupBy||"",options:[{value:"",label:"None (no aggregation)"},...hp],placeholder:"Select field to group by",onChange:pg=>{const hg={...Cl,groupBy:pg||void 0,aggregate:pg?"count":void 0,aggregateField:pg?void 0:Cl.aggregateField};pg&&(hg.xAxis=pg,hg.yAxis="count"),Mc(hg)}})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"X-Axis"}),jsxRuntimeExports.jsx(gee,{value:Cl.xAxis,options:hp,placeholder:"Select X-axis attribute",onChange:pg=>Mc({...Cl,xAxis:pg})})]}),Cl.record&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Y-Axis"}),jsxRuntimeExports.jsx(gee,{value:Cl.yAxis,options:Zf,placeholder:"Select Y-axis attribute",onChange:pg=>Mc({...Cl,yAxis:pg})})]}),Cl.groupBy&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Aggregate Function"}),jsxRuntimeExports.jsx(gee,{value:Cl.aggregate||"count",options:[{value:"count",label:"Count"},{value:"sum",label:"Sum"},{value:"average",label:"Average"},{value:"min",label:"Min"},{value:"max",label:"Max"}],placeholder:"Select aggregation function",onChange:pg=>{const hg={...Cl,aggregate:pg,aggregateField:pg==="count"?void 0:Cl.aggregateField};pg==="count"?hg.yAxis="count":Cl.aggregateField&&(hg.yAxis=Cl.aggregateField),Mc(hg)}})]}),Cl.aggregate&&Cl.aggregate!=="count"&&jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Aggregate Field"}),jsxRuntimeExports.jsx(gee,{value:Cl.aggregateField||"",options:Zf,placeholder:"Select field to aggregate",onChange:pg=>{const hg={...Cl,aggregateField:pg||void 0};pg&&(hg.yAxis=pg),Mc(hg)}})]})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Title"}),jsxRuntimeExports.jsx("input",{type:"text",value:Cl.title,onChange:pg=>Mc({...Cl,title:pg.target.value}),className:"form-input",placeholder:"Enter chart title"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Subtitle"}),jsxRuntimeExports.jsx("input",{type:"text",value:Cl.subtitle,onChange:pg=>Mc({...Cl,subtitle:pg.target.value}),className:"form-input",placeholder:"Enter chart subtitle"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Column Span"}),jsxRuntimeExports.jsx(gee,{value:Cl.colSpan?.toString()||"1",options:[{value:"1",label:"1 column (half width)"},{value:"2",label:"2 columns (full width)"}],placeholder:"Select column span",onChange:pg=>Mc({...Cl,colSpan:pg==="2"?2:1})})]}),jsxRuntimeExports.jsx("button",{onClick:Jf,disabled:!!(!Cl.record||!Cl.title||!Cl.groupBy&&(!Cl.xAxis||!Cl.yAxis)||Cl.groupBy&&Cl.aggregate!=="count"&&!Cl.aggregateField),className:"fx-button",style:{justifyContent:"center"},children:"Save"})]})})})]})}function ChartSettings({schema:ya,uiSpec:ma,onSave:ba}){const[va,Ma]=reactExports.useState(ya),wl=va.charts||[],El=()=>{const Mc={record:"",title:"",subtitle:"",xAxis:"",yAxis:"",chartType:"bar",colSpan:1},dp=[...wl,Mc],pp={...va,charts:dp};Ma(pp),ba(pp)},Sl=(Mc,dp)=>{const pp=[...wl];pp[Mc]=dp;const hp={...va,charts:pp};Ma(hp),ba(hp)},Cl=Mc=>{const dp=wl.filter((hp,Ef)=>Ef!==Mc),pp={...va,charts:dp};Ma(pp),ba(pp)};return jsxRuntimeExports.jsx("div",{className:"space-y-4",children:jsxRuntimeExports.jsxs("div",{className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:chart-line",className:"w-5 h-5 text-gray-400"}),jsxRuntimeExports.jsx("p",{className:"font-medium text-font",children:"Charts"})]}),jsxRuntimeExports.jsx("button",{onClick:El,className:"p-1 hover:bg-gray-700 rounded transition-colors cursor-pointer","aria-label":"Add chart",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-5 h-5 text-gray-400"})})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[wl.map((Mc,dp)=>jsxRuntimeExports.jsx("div",{className:"setting-toggle",children:jsxRuntimeExports.jsx(ChartItem,{chart:Mc,index:dp,uiSpec:ma,onUpdate:Sl,onDelete:Cl})},dp)),wl.length===0&&jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400 text-center py-4",children:"No charts configured"})]})]})})}function SortableEntityItem({entity:ya,index:ma,onVisibilityChange:ba,uiSpec:va,onEntityDetailsChange:Ma}){const[wl,El]=reactExports.useState(!1),Sl=va?.[ya.name],{attributes:Cl,listeners:Mc,setNodeRef:dp,transform:pp,transition:hp,isDragging:Ef}=useSortable({id:ya.name}),Zf={transform:CSS$1.Transform.toString(pp),transition:hp,opacity:Ef?.5:1};return jsxRuntimeExports.jsxs("div",{ref:dp,style:Zf,className:"setting-toggle",children:[jsxRuntimeExports.jsxs("div",{className:"setting-toggle-header flex items-center justify-between",onClick:()=>El(!wl),children:[jsxRuntimeExports.jsxs("div",{className:"label-with-drag-handle flex items-center gap-2 flex-1 min-w-0",children:[jsxRuntimeExports.jsx("div",{...Cl,...Mc,className:"drag-handle flex-shrink-0",children:jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:drag"})}),jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1",children:jsxRuntimeExports.jsx("p",{className:"font-medium text-font truncate",children:Sl?.displayName||`${ya.name.split("/")[1]}s`})})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 flex-shrink-0",children:jsxRuntimeExports.jsx("div",{className:"flex-shrink-0",onClick:Jf=>Jf.stopPropagation(),children:jsxRuntimeExports.jsx(tpt,{isChecked:ya.visible,onChangeHandler:Jf=>ba(ma,Jf)})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:wl&&jsxRuntimeExports.jsx(motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"mt-2",children:jsxRuntimeExports.jsx(rpt,{onEntityDetailsChange:Jf=>Ma(ya.name,Jf),initialDetails:Sl})})})})]})}const DashboardCustomizationPanel=({schema:ya,uiSpec:ma,onSave:ba,saveUISpec:va})=>{const[Ma,wl]=reactExports.useState(ya),{onEntityDetailsChange:El}=useEntityDetailsChange(va),Sl=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:10}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),Cl=hp=>{const Ef={...Ma,title:hp};wl(Ef),ba(Ef)},Mc=hp=>{const Ef={...Ma,subtitle:hp};wl(Ef),ba(Ef)},dp=(hp,Ef)=>{const Zf={...Ma,items:{...Ma.items,entities:Ma.items.entities.map((Jf,pg)=>pg===hp?{...Jf,visible:Ef}:Jf)}};wl(Zf),ba(Zf)},pp=hp=>{const{active:Ef,over:Zf}=hp;if(Zf&&Ef.id!==Zf.id){const Jf=Ma.items.entities.findIndex(mg=>mg.name===Ef.id),pg=Ma.items.entities.findIndex(mg=>mg.name===Zf.id),hg={...Ma,items:{...Ma.items,entities:arrayMove(Ma.items.entities,Jf,pg)}};wl(hg),ba(hg)}};return jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Dashboard Title"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ma.title,onChange:hp=>Cl(hp.target.value),className:"form-input",placeholder:"Enter dashboard title"})]}),jsxRuntimeExports.jsxs("div",{className:"form-item",children:[jsxRuntimeExports.jsx("label",{className:"label",children:"Dashboard Subtitle"}),jsxRuntimeExports.jsx("input",{type:"text",value:Ma.subtitle,onChange:hp=>Mc(hp.target.value),className:"form-input",placeholder:"Enter dashboard subtitle"})]})]}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(DndContext,{sensors:Sl,collisionDetection:closestCenter,onDragEnd:pp,children:jsxRuntimeExports.jsx(SortableContext,{items:Ma.items.entities.map(hp=>hp.name),strategy:verticalListSortingStrategy,children:jsxRuntimeExports.jsx("div",{className:"space-y-3",children:Ma.items.entities.map((hp,Ef)=>jsxRuntimeExports.jsx(SortableEntityItem,{entity:hp,index:Ef,onVisibilityChange:dp,uiSpec:ma,onEntityDetailsChange:El},hp.name))})})})}),jsxRuntimeExports.jsx("div",{className:"fx-divider"}),jsxRuntimeExports.jsx(ChartSettings,{schema:Ma,uiSpec:ma,onSave:ba})]})},Settings=({saveUISpec:ya})=>{const{isEntity:ma,getActiveEntityorAgent:ba}=fy(),{"*":va}=useParams(),Ma=va??"",wl=Ma.split("/"),El=wl.at(-1)??"",Sl=wl[1],Cl=El===""||El==="signin",Mc=El==="signup",dp=El==="edit"||El==="new",pp=wl.length>3,hp=El==="dashboard",Ef=Wn$1();return useEntityDetailsChange(ya),jsxRuntimeExports.jsxs("div",{className:"border-l border-l-border w-1/5 flex flex-col gap-4 p-4 settings-panel overflow-y-auto scrollbar-none h-full",children:[Cl&&jsxRuntimeExports.jsx(Auth,{saveUISpec:ya,authType:"login"}),Mc&&jsxRuntimeExports.jsx(Auth,{saveUISpec:ya,authType:"signUp"}),dp&&jsxRuntimeExports.jsx(FormSettings,{entityName:ba(Ma),saveUISpec:ya}),!Cl&&!Mc&&!dp&&(hp?jsxRuntimeExports.jsx(DashboardCustomizationPanel,{schema:Ef?.homeDashboard||{title:"",subtitle:"",items:{entities:[]}},uiSpec:Ef,onSave:Zf=>{if(ya&&Ef){const Jf={...Ef,homeDashboard:Zf};ya(Jf,"Update home dashboard configuration")}},saveUISpec:ya}):pp?jsxRuntimeExports.jsx(InstanceViewSettings,{entityName:ba(Ma),saveUISpec:ya}):ma(`${Sl}/${El}`)?jsxRuntimeExports.jsx(CollectionViewSettings,{entityName:ba(Ma),saveUISpec:ya}):null)]})},UI=()=>{const{isAgent:ya}=fy(),{"*":ma}=useParams(),{pathParts:ba}=Lt$3(ma),va=ya(`${ba[1]}/${ba[2]}`),{saveUISpec:Ma}=useSaveUISpec(),wl=Wn$1(),El=Lpe(),{teamName:Sl,moduleName:Cl,githubOrg:Mc}=useParams(),dp=useAppStore(Zf=>Zf.user),pp=useAppStore(Zf=>Zf.appConfig),[hp,Ef]=reactExports.useState(null);return reactExports.useRef(!1),reactExports.useEffect(()=>{{Ef("DISABLED");return}},[Sl,Cl,Mc,dp.GitHub?.Token,pp.__repoPath]),reactExports.useEffect(()=>(typeof window<"u"&&(window.currentReplStatus=hp,window.getReplStatus=()=>hp),()=>{typeof window<"u"&&(delete window.currentReplStatus,delete window.getReplStatus)}),[hp]),!wl||!wl.login||!wl.signUp?null:jsxRuntimeExports.jsxs("div",{className:"flex w-full",children:[jsxRuntimeExports.jsx(Upt,{schema:wl,saveUISpec:Ma}),!El&&!va&&jsxRuntimeExports.jsx(Settings,{saveUISpec:Ma})]})},LocalModeInitializer=({children:ya})=>(useLocalModeInitialization(),ya),GenerationProgressWidget=()=>{const{backgroundGenerations:ya,removeBackgroundGeneration:ma}=useAppStore(),ba=useNavigate(),[va,Ma]=reactExports.useState(!1),wl=reactExports.useRef(new Set),El=Object.values(ya),Sl=El.length>0;if(reactExports.useEffect(()=>{if(El.every(Ef=>Ef.status==="completed"||Ef.status==="error")&&El.length>0&&va){const Ef=setTimeout(()=>Ma(!1),3e3);return()=>clearTimeout(Ef)}},[El,va]),reactExports.useEffect(()=>{El.forEach(Ef=>{wl.current.has(Ef.id)||(Ef.status==="completed"?(wl.current.add(Ef.id),y$b.success(jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-5 h-5 flex-shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-medium",children:"App Generated Successfully"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-300 mt-0.5 truncate max-w-xs",children:Ef.moduleName||Ef.userPrompt})]})]}),{autoClose:5e3}),Ma(!0)):Ef.status==="error"&&(wl.current.add(Ef.id),y$b.error(jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-5 h-5 flex-shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-medium",children:"Generation Failed"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-300 mt-0.5 truncate max-w-xs",children:Ef.error||"An error occurred during generation"})]})]}),{autoClose:5e3}),Ma(!0)))});const hp=new Set(El.map(Ef=>Ef.id));wl.current.forEach(Ef=>{hp.has(Ef)||wl.current.delete(Ef)})},[El]),!Sl)return null;const Cl=hp=>{if(hp.status==="completed"&&hp.appId){const[Ef,Zf]=hp.appId.split("/");ba(`/design/data-model/${Ef}/${Zf}/${hp.moduleName||Zf}`,{state:{from:"/generate",generationContext:{appId:hp.appId,hasHistory:!0}}}),ma(hp.id)}else hp.status==="in-progress"?ba("/generate",{state:{restoreGeneration:!0,generationId:hp.id}}):ba("/generate",{state:{resumeConversation:!0,generationId:hp.id}})},Mc=(hp,Ef)=>{hp.stopPropagation(),ma(Ef)},dp=hp=>{const Ef=hp.steps.filter(Zf=>Zf.status==="completed").length;return Math.round(Ef/hp.steps.length*100)},pp=(hp,Ef)=>{hp.stopPropagation(),ba("/generate",{state:{restoreGeneration:!0,generationId:Ef}})};return reactDomExports.createPortal(jsxRuntimeExports.jsx("div",{className:"fixed bottom-4 right-4 z-[1000] flex flex-col gap-2 max-w-sm",children:va?jsxRuntimeExports.jsxs("div",{className:"bg-gray-800 border border-gray-700 rounded-lg shadow-2xl overflow-hidden max-h-96 flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between p-3 border-b border-gray-700 bg-gray-750",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-5 h-5 text-blue-400"}),jsxRuntimeExports.jsxs("span",{className:"text-sm font-medium text-white",children:["Generating Apps (",El.length,")"]})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",children:jsxRuntimeExports.jsx("button",{onClick:()=>Ma(!1),className:"text-gray-400 hover:text-white transition-colors",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"w-4 h-4"})})})]}),jsxRuntimeExports.jsx("div",{className:"overflow-y-auto max-h-72",children:El.map(hp=>jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-gray-700 hover:bg-gray-750 transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0 cursor-pointer",onClick:()=>Cl(hp),children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white truncate",children:hp.userPrompt}),hp.moduleName&&jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-400 mt-0.5",children:hp.moduleName})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[hp.status==="in-progress"&&jsxRuntimeExports.jsx("button",{onClick:Ef=>pp(Ef,hp.id),className:"text-gray-500 hover:text-white transition-colors p-1",title:"Maximize",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:open-in-full",className:"w-4 h-4"})}),jsxRuntimeExports.jsx("button",{onClick:Ef=>Mc(Ef,hp.id),className:"text-gray-500 hover:text-white transition-colors p-1",title:"Dismiss",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-4 h-4"})})]})]}),hp.status==="in-progress"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"w-full bg-gray-700 rounded-full h-1.5 mb-2",children:jsxRuntimeExports.jsx("div",{className:"bg-blue-500 h-1.5 rounded-full transition-all duration-300",style:{width:`${dp(hp)}%`}})}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-gray-400 flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full animate-pulse"}),hp.currentStep]})]}),hp.status==="completed"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-green-400",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4"}),"Ready to open"]}),hp.status==="error"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-red-400",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error,className:"w-4 h-4"}),hp.error||"Generation failed"]})]},hp.id))})]}):jsxRuntimeExports.jsx("div",{className:"bg-gray-800 border border-gray-700 rounded-lg shadow-2xl p-3 transition-colors",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-6 h-6 text-blue-400 animate-pulse"}),El.some(hp=>hp.status==="in-progress")&&jsxRuntimeExports.jsx("div",{className:"absolute -top-1 -right-1 w-3 h-3 bg-blue-500 rounded-full animate-ping"})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"text-sm font-medium text-white",children:[El.length," App",El.length>1?"s":""," Generating"]}),jsxRuntimeExports.jsx("div",{className:"text-xs text-gray-400 truncate",children:El[0].currentStep})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[(()=>{const hp=El.find(Ef=>Ef.status==="in-progress");return hp?jsxRuntimeExports.jsx("button",{onClick:Ef=>pp(Ef,hp.id),className:"p-1.5 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors",title:"Maximize",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:open-in-full",className:"w-4 h-4"})}):null})(),jsxRuntimeExports.jsx("button",{onClick:()=>Ma(!0),className:"p-1.5 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors",title:"Expand list",children:jsxRuntimeExports.jsx(Icon,{icon:icons.caretDown,className:"w-4 h-4 rotate-180"})})]})]})})}),document.body)},IS_PLAYGROUND=!1,RouteChangeTracker=()=>{const ya=useLocation();return reactExports.useEffect(()=>{try{Jo.capture("$pageview",{$current_url:window.location.href,path:ya.pathname,environment:IS_PLAYGROUND?"playground":"studio"})}catch(ma){console.warn("PostHog pageview capture failed:",ma)}},[ya]),null},AnalyticsInitializer=()=>(reactExports.useEffect(()=>{try{loadEnvironmentFromCLI(),IS_PLAYGROUND||Jo.register({environment:"studio"})}catch(ya){console.warn("PostHog analytics init failed:",ya)}},[]),null),AppContent=()=>jsxRuntimeExports.jsxs(LocalModeInitializer,{children:[jsxRuntimeExports.jsx(AnalyticsInitializer,{}),jsxRuntimeExports.jsx(RouteChangeTracker,{}),jsxRuntimeExports.jsx(Outlet,{}),jsxRuntimeExports.jsx(GenerationProgressWidget,{})]}),router=createBrowserRouter([{path:"/",element:jsxRuntimeExports.jsx(AppContent,{}),children:[{path:"/",element:jsxRuntimeExports.jsx(AuthLayout,{}),children:[{path:"/",id:"signin",element:jsxRuntimeExports.jsx(SignIn,{})},{path:"/signup",id:"signup",element:jsxRuntimeExports.jsx(SignUp,{})},{path:"/forgotPassword",id:"forgot-password",element:jsxRuntimeExports.jsx(ForgotPassword,{})},{path:"/recoverPassword",id:"recover-password",element:jsxRuntimeExports.jsx(RecoverPassword,{})}]},{path:"/",element:jsxRuntimeExports.jsx(DashboardLayout,{}),children:[{path:"/home",id:"home-wizard",element:jsxRuntimeExports.jsx(HomeWizard,{})},{path:"/monitoring",id:"home",element:jsxRuntimeExports.jsx(Home,{})},{path:"/deployment/:deploymentId",id:"deployment-detail",element:jsxRuntimeExports.jsx(DeploymentDetail,{})},{path:"/hub",id:"marketplace",element:jsxRuntimeExports.jsx(Marketplace,{})},{path:"/configuration",id:"user-configuration",element:jsxRuntimeExports.jsx(UserConfiguration,{isModal:!1})},{path:"/design/dashboard",id:"teams",element:jsxRuntimeExports.jsx(Teams,{})},{path:"/design/integrations",id:"integrations",element:jsxRuntimeExports.jsx(Integrations,{source:"api"})},{path:"/design/documents",id:"documents",element:jsxRuntimeExports.jsx(Documents,{})},{path:"/design/llms",id:"llms",element:jsxRuntimeExports.jsx(LLM,{})},{path:"/generate",id:"generate",element:jsxRuntimeExports.jsx(Generate,{})},{path:"/mission-control",id:"mission-control",element:jsxRuntimeExports.jsx(MissionControl,{})},{path:"/mission-control/TicketManager",id:"mission-control-ticket-manager",element:jsxRuntimeExports.jsx(TicketList,{title:"Ticket Manager"})},{path:"/mission-control/EmailManager",id:"mission-control-email-manager",element:jsxRuntimeExports.jsx(TicketList,{title:"Email Manager"})}]},{path:"/",element:jsxRuntimeExports.jsx(NoModuleLayout,{}),children:[{path:"/design/data-model/:githubOrg/:teamName",id:"data-model-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/workflow/:githubOrg/:teamName",id:"workflow-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/security/:githubOrg/:teamName",id:"security-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/agents/:githubOrg/:teamName",id:"agents-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/ui/:githubOrg/:teamName",id:"ui-no-module",element:jsxRuntimeExports.jsx(NoModule,{})},{path:"/design/settings/:githubOrg/:teamName",id:"settings-no-module",element:jsxRuntimeExports.jsx(NoModule,{})}]},{path:"/",element:jsxRuntimeExports.jsx(DesignLayout,{}),children:[{path:"/design/data-model/:githubOrg/:teamName/:moduleName",id:"data-model",element:jsxRuntimeExports.jsx(DataModel,{})},{path:"/design/workflow/:githubOrg/:teamName/:moduleName",id:"workflow",element:jsxRuntimeExports.jsx(Workflow,{})},{path:"/design/security/:githubOrg/:teamName/:moduleName",id:"security",element:jsxRuntimeExports.jsx(Security,{})},{path:"/design/agents/:githubOrg/:teamName/:moduleName",id:"agents",element:jsxRuntimeExports.jsx(AgentFlow,{})},{path:"/design/ui/:githubOrg/:teamName/:moduleName/*",id:"ui",element:jsxRuntimeExports.jsx(UI,{})},{path:"/design/settings/:githubOrg/:teamName/:moduleName",id:"settings",element:jsxRuntimeExports.jsx(Settings$1,{})}]},{path:"*",id:"not-found",element:jsxRuntimeExports.jsx(NotFound,{})}]}]);function App(){return jsxRuntimeExports.jsx(PostHogProvider,{client:Jo,children:jsxRuntimeExports.jsxs("div",{className:"relative h-screen","data-theme":"default",children:[jsxRuntimeExports.jsx("img",{src:"/assets/bg-gradient.png",alt:"",className:"bg-gradient"}),jsxRuntimeExports.jsx(RouterProvider,{router}),jsxRuntimeExports.jsx(Lt$1,{position:"top-center",autoClose:2e3,hideProgressBar:!0,newestOnTop:!1,closeOnClick:!0,rtl:!1,pauseOnFocusLoss:!1,pauseOnHover:!1,draggable:!1,theme:"dark"})]})})}var cacheEventTypes=["added","removed","updated"];function isCacheEventType(ya){return cacheEventTypes.includes(ya)}async function persistQueryClientRestore({queryClient:ya,persister:ma,maxAge:ba=1e3*60*60*24,buster:va="",hydrateOptions:Ma}){try{const wl=await ma.restoreClient();if(wl)if(wl.timestamp){const El=Date.now()-wl.timestamp>ba,Sl=wl.buster!==va;if(El||Sl)return ma.removeClient();hydrate(ya,wl.clientState,Ma)}else return ma.removeClient()}catch(wl){throw await ma.removeClient(),wl}}async function persistQueryClientSave({queryClient:ya,persister:ma,buster:ba="",dehydrateOptions:va}){const Ma={buster:ba,timestamp:Date.now(),clientState:dehydrate(ya,va)};await ma.persistClient(Ma)}function persistQueryClientSubscribe(ya){const ma=ya.queryClient.getQueryCache().subscribe(va=>{isCacheEventType(va.type)&&persistQueryClientSave(ya)}),ba=ya.queryClient.getMutationCache().subscribe(va=>{isCacheEventType(va.type)&&persistQueryClientSave(ya)});return()=>{ma(),ba()}}function persistQueryClient(ya){let ma=!1,ba;const va=()=>{ma=!0,ba?.()},Ma=persistQueryClientRestore(ya).then(()=>{ma||(ba=persistQueryClientSubscribe(ya))});return[va,Ma]}console.log("IS_PLAYGROUND:",!1);console.log("IS_LOCAL_MODE:",!0);console.log("IS_REGULAR_MODE:",!1);console.log("POSTHOG_ENABLED:",!1);const queryClient=new QueryClient({defaultOptions:{queries:{staleTime:120*1e3,gcTime:300*1e3,retry:(ya,ma)=>ma?.response?.status===401||ma?.response?.status===403||ma?.response?.status>=400&&ma?.response?.status<500?!1:ya<3,retryDelay:ya=>Math.min(1e3*2**ya,3e4),refetchOnWindowFocus:!0,refetchOnReconnect:!0,refetchOnMount:!0}}}),persister={persistClient:async ya=>{const ma=localStorage.getItem("workspace_id")||"default",ba=localStorage.getItem("user_profile_id")||"default",va={clientState:ya,timestamp:Date.now(),workspaceId:ma,userProfileId:ba};localStorage.setItem("agentlang-query-cache",JSON.stringify(va))},restoreClient:async()=>{try{const ya=localStorage.getItem("agentlang-query-cache");if(!ya)return;const ma=JSON.parse(ya),ba=localStorage.getItem("workspace_id")||"default",va=localStorage.getItem("user_profile_id")||"default";if(ma.workspaceId!==ba||ma.userProfileId!==va){console.warn("Workspace or user profile changed, invalidating query cache"),localStorage.removeItem("agentlang-query-cache");return}const Ma=720*60*1e3;if(Date.now()-ma.timestamp>Ma){console.warn("Query cache expired, clearing"),localStorage.removeItem("agentlang-query-cache");return}return ma.clientState}catch(ya){console.warn("Failed to restore query cache:",ya),localStorage.removeItem("agentlang-query-cache");return}},removeClient:async()=>{localStorage.removeItem("agentlang-query-cache")}};persistQueryClient({queryClient,persister,maxAge:1440*60*1e3});typeof window<"u"&&(window.replService=replService,window.entityReplService=replService);const rootElement=document.getElementById("root");if(!rootElement)throw new Error("Root element not found");async function initializeAndRenderApp(){try{await initializeAgentLang();const ya=document.getElementById("root");if(!ya)throw new Error("Root element not found");clientExports.createRoot(ya).render(jsxRuntimeExports.jsx(QueryClientProvider,{client:queryClient,children:jsxRuntimeExports.jsx(App,{})}))}catch(ya){console.error("❌ Failed to initialize app:",ya);const ma=document.getElementById("root");ma&&(ma.innerHTML=`
21979
22128
  <div style="padding: 20px; color: red; font-family: monospace;">
21980
22129
  <h2>🚨 AgentLang Initialization Failed</h2>
21981
22130
  <p>Error: ${ya instanceof Error?ya.message:String(ya)}</p>