vite-plugin-ai-annotator 1.1.8 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -78,9 +78,9 @@ The annotator toolbar will automatically appear in your application.
78
78
 
79
79
  ## Usage
80
80
 
81
- 1. Click the **inspect button** on the toolbar to enter selection mode
82
- 2. Click on any element(s) you want to modify
83
- 3. Ask Claude Code to modify them - it will use `annotator_get_selected_elements` to get the selected elements with their source locations
81
+ 1. Click the **inspect button** on the toolbar to enter feedback mode
82
+ 2. Click on any element(s) you want to provide feedback on
83
+ 3. Ask Claude Code to modify them - it will use `annotator_get_feedback` to get the selected feedback with their source locations
84
84
  4. Claude modifies the source code directly
85
85
 
86
86
  Example prompt: *"Make the selected button larger and change its color to blue"*
@@ -7674,9 +7674,13 @@
7674
7674
  document.addEventListener("keydown", this.handlePopoverKeydown);
7675
7675
  this.updateComplete.then(() => {
7676
7676
  const popoverEl = this.shadowRoot?.querySelector(".popover");
7677
- const inputEl = this.shadowRoot?.querySelector(".popover-input");
7677
+ const textareaEl = this.shadowRoot?.querySelector(".popover-input");
7678
7678
  if (!popoverEl || !element) return;
7679
- inputEl?.focus();
7679
+ if (textareaEl) {
7680
+ textareaEl.focus();
7681
+ textareaEl.style.height = "auto";
7682
+ textareaEl.style.height = Math.min(textareaEl.scrollHeight, 120) + "px";
7683
+ }
7680
7684
  this.popoverCleanup = autoUpdate(element, popoverEl, () => {
7681
7685
  computePosition2(element, popoverEl, {
7682
7686
  strategy: "fixed",
@@ -7696,7 +7700,7 @@
7696
7700
  });
7697
7701
  }
7698
7702
  handlePopoverInputKeydown(e5) {
7699
- if (e5.key === "Enter") {
7703
+ if (e5.key === "Enter" && (e5.metaKey || e5.ctrlKey)) {
7700
7704
  e5.preventDefault();
7701
7705
  this.hideCommentPopover();
7702
7706
  } else if (e5.key === "Escape") {
@@ -7717,6 +7721,8 @@
7717
7721
  const target = e5.target;
7718
7722
  const comment = target.value;
7719
7723
  const element = this.commentPopover.element;
7724
+ target.style.height = "auto";
7725
+ target.style.height = Math.min(target.scrollHeight, 120) + "px";
7720
7726
  this.commentPopover = { ...this.commentPopover, comment };
7721
7727
  if (element) {
7722
7728
  const hasComment = comment.trim().length > 0;
@@ -7777,7 +7783,7 @@
7777
7783
  this.showToast("No elements selected");
7778
7784
  return;
7779
7785
  }
7780
- const text = `I have selected ${elements.length} element(s) in the browser. Use the \`annotator_get_selected_elements\` tool to retrieve them and modify the code.`;
7786
+ const text = `I have selected ${elements.length} feedback item(s) in the browser. Use the \`annotator_get_feedback\` tool to retrieve them and modify the code.`;
7781
7787
  try {
7782
7788
  await navigator.clipboard.writeText(text);
7783
7789
  this.showToast(`Copied ${elements.length} element(s)`);
@@ -7845,7 +7851,7 @@
7845
7851
  this.showToast("No session ID");
7846
7852
  return;
7847
7853
  }
7848
- const text = `I have selected elements in the browser (session: ${this.sessionId}). Use the \`annotator_get_selected_elements\` tool to retrieve them and modify the code.`;
7854
+ const text = `I have feedback in the browser (session: ${this.sessionId}). Use the \`annotator_get_feedback\` tool to retrieve them.`;
7849
7855
  try {
7850
7856
  await navigator.clipboard.writeText(text);
7851
7857
  this.showToast("Copied!");
@@ -7920,14 +7926,14 @@
7920
7926
 
7921
7927
  ${this.commentPopover.visible ? x`
7922
7928
  <div class="popover">
7923
- <input
7924
- type="text"
7929
+ <textarea
7925
7930
  class="popover-input"
7926
- placeholder="Add a note..."
7931
+ placeholder="Add a note... (⌘↵ to close)"
7927
7932
  .value=${this.commentPopover.comment}
7928
7933
  @input=${this.handlePopoverInput}
7929
7934
  @keydown=${this.handlePopoverInputKeydown}
7930
- />
7935
+ rows="1"
7936
+ ></textarea>
7931
7937
  <div class="popover-actions">
7932
7938
  <button class="popover-btn danger" @click=${this.removeSelectedElement} title="Remove selection">
7933
7939
  ${this.renderTrashIcon()}
@@ -8053,8 +8059,9 @@
8053
8059
  display: flex;
8054
8060
  align-items: stretch;
8055
8061
  background: #1a1a1a;
8062
+ border: 1px solid rgba(99, 102, 241, 0.5);
8056
8063
  border-radius: 8px;
8057
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
8064
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), 0 0 20px rgba(99, 102, 241, 0.3), 0 0 40px rgba(99, 102, 241, 0.1);
8058
8065
  overflow: hidden;
8059
8066
  animation: popover-in 0.15s ease-out;
8060
8067
  }
@@ -8074,6 +8081,8 @@
8074
8081
  flex: 1;
8075
8082
  min-width: 180px;
8076
8083
  max-width: 260px;
8084
+ min-height: 38px;
8085
+ max-height: 120px;
8077
8086
  padding: 10px 12px;
8078
8087
  border: none;
8079
8088
  background: transparent;
@@ -8081,6 +8090,9 @@
8081
8090
  font-size: 13px;
8082
8091
  font-family: inherit;
8083
8092
  outline: none;
8093
+ resize: none;
8094
+ overflow-y: auto;
8095
+ line-height: 1.4;
8084
8096
  }
8085
8097
 
8086
8098
  .popover-input::placeholder {
package/dist/index.cjs CHANGED
@@ -95,7 +95,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
95
95
  deps: ${n}}`};var Coe={keyword:"dependencies",type:"object",schemaType:"object",error:lr.error,code(t){let[e,n]=Aoe(t);C3(t,e),A3(t,n)}};function Aoe({schema:t}){let e={},n={};for(let r in t){if(r==="__proto__")continue;let i=Array.isArray(t[r])?e:n;i[r]=t[r]}return[e,n]}function C3(t,e=t.schema){let{gen:n,data:r,it:i}=t;if(Object.keys(e).length===0)return;let a=n.let("missing");for(let o in e){let s=e[o];if(s.length===0)continue;let c=(0,Up.propertyInData)(n,r,o,i.opts.ownProperties);t.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),i.allErrors?n.if(c,()=>{for(let u of s)(0,Up.checkReportMissingProp)(t,u)}):(n.if((0,Xk._)`${c} && (${(0,Up.checkMissingProp)(t,s,a)})`),(0,Up.reportMissingProp)(t,a),n.else())}}lr.validatePropertyDeps=C3;function A3(t,e=t.schema){let{gen:n,data:r,keyword:i,it:a}=t,o=n.name("valid");for(let s in e)(0,Roe.alwaysValidSchema)(a,e[s])||(n.if((0,Up.propertyInData)(n,r,s,a.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:s},o);t.mergeValidEvaluated(c,o)},()=>n.var(o,!0)),t.ok(o))}lr.validateSchemaDeps=A3;lr.default=Coe});var D3=v(Yk=>{"use strict";Object.defineProperty(Yk,"__esModule",{value:!0});var q3=ee(),Noe=fe(),qoe={message:"property name must be valid",params:({params:t})=>(0,q3._)`{propertyName: ${t.propertyName}}`},Doe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:qoe,code(t){let{gen:e,schema:n,data:r,it:i}=t;if((0,Noe.alwaysValidSchema)(i,n))return;let a=e.name("valid");e.forIn("key",r,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),e.if((0,q3.not)(a),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(a)}};Yk.default=Doe});var eS=v(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});var Pv=Sn(),Zn=ee(),Uoe=Mr(),Ov=fe(),Moe={message:"must NOT have additional properties",params:({params:t})=>(0,Zn._)`{additionalProperty: ${t.additionalProperty}}`},Loe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Moe,code(t){let{gen:e,schema:n,parentSchema:r,data:i,errsCount:a,it:o}=t;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Ov.alwaysValidSchema)(o,n))return;let u=(0,Pv.allSchemaProperties)(r.properties),p=(0,Pv.allSchemaProperties)(r.patternProperties);l(),t.ok((0,Zn._)`${a} === ${Uoe.default.errors}`);function l(){e.forIn("key",i,g=>{!u.length&&!p.length?m(g):e.if(d(g),()=>m(g))})}function d(g){let b;if(u.length>8){let w=(0,Ov.schemaRefOrVal)(o,r.properties,"properties");b=(0,Pv.isOwnProperty)(e,w,g)}else u.length?b=(0,Zn.or)(...u.map(w=>(0,Zn._)`${g} === ${w}`)):b=Zn.nil;return p.length&&(b=(0,Zn.or)(b,...p.map(w=>(0,Zn._)`${(0,Pv.usePattern)(t,w)}.test(${g})`))),(0,Zn.not)(b)}function f(g){e.code((0,Zn._)`delete ${i}[${g}]`)}function m(g){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){f(g);return}if(n===!1){t.setParams({additionalProperty:g}),t.error(),s||e.break();return}if(typeof n=="object"&&!(0,Ov.alwaysValidSchema)(o,n)){let b=e.name("valid");c.removeAdditional==="failing"?(h(g,b,!1),e.if((0,Zn.not)(b),()=>{t.reset(),f(g)})):(h(g,b),s||e.if((0,Zn.not)(b),()=>e.break()))}}function h(g,b,w){let x={keyword:"additionalProperties",dataProp:g,dataPropType:Ov.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,b)}}};Qk.default=Loe});var L3=v(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});var Foe=Ep(),U3=Sn(),tS=fe(),M3=eS(),Boe={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:n,parentSchema:r,data:i,it:a}=t;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&M3.default.code(new Foe.KeywordCxt(a,M3.default,"additionalProperties"));let o=(0,U3.allSchemaProperties)(n);for(let l of o)a.definedProperties.add(l);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=tS.mergeEvaluated.props(e,(0,tS.toHash)(o),a.props));let s=o.filter(l=>!(0,tS.alwaysValidSchema)(a,n[l]));if(s.length===0)return;let c=e.name("valid");for(let l of s)u(l)?p(l):(e.if((0,U3.propertyInData)(e,i,l,a.opts.ownProperties)),p(l),a.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(l),t.ok(c);function u(l){return a.opts.useDefaults&&!a.compositeRule&&n[l].default!==void 0}function p(l){t.subschema({keyword:"properties",schemaProp:l,dataProp:l},c)}}};nS.default=Boe});var V3=v(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});var F3=Sn(),Iv=ee(),B3=fe(),Z3=fe(),Zoe={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:n,data:r,parentSchema:i,it:a}=t,{opts:o}=a,s=(0,F3.allSchemaProperties)(n),c=s.filter(h=>(0,B3.alwaysValidSchema)(a,n[h]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,p=e.name("valid");a.props!==!0&&!(a.props instanceof Iv.Name)&&(a.props=(0,Z3.evaluatedPropsToName)(e,a.props));let{props:l}=a;d();function d(){for(let h of s)u&&f(h),a.allErrors?m(h):(e.var(p,!0),m(h),e.if(p))}function f(h){for(let g in u)new RegExp(h).test(g)&&(0,B3.checkStrictMode)(a,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function m(h){e.forIn("key",r,g=>{e.if((0,Iv._)`${(0,F3.usePattern)(t,h)}.test(${g})`,()=>{let b=c.includes(h);b||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:Z3.Type.Str},p),a.opts.unevaluated&&l!==!0?e.assign((0,Iv._)`${l}[${g}]`,!0):!b&&!a.allErrors&&e.if((0,Iv.not)(p),()=>e.break())})})}}};rS.default=Zoe});var H3=v(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0});var Voe=fe(),Hoe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:n,it:r}=t;if((0,Voe.alwaysValidSchema)(r,n)){t.fail();return}let i=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),t.failResult(i,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};iS.default=Hoe});var W3=v(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});var Woe=Sn(),Goe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Woe.validateUnion,error:{message:"must match a schema in anyOf"}};aS.default=Goe});var G3=v(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});var zv=ee(),Joe=fe(),Koe={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,zv._)`{passingSchemas: ${t.passing}}`},Xoe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Koe,code(t){let{gen:e,schema:n,parentSchema:r,it:i}=t;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=n,o=e.let("valid",!1),s=e.let("passing",null),c=e.name("_valid");t.setParams({passing:s}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){a.forEach((p,l)=>{let d;(0,Joe.alwaysValidSchema)(i,p)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,zv._)`${c} && ${o}`).assign(o,!1).assign(s,(0,zv._)`[${s}, ${l}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(s,l),d&&t.mergeEvaluated(d,zv.Name)})})}}};oS.default=Xoe});var J3=v(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});var Yoe=fe(),Qoe={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:n,it:r}=t;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=e.name("valid");n.forEach((a,o)=>{if((0,Yoe.alwaysValidSchema)(r,a))return;let s=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(s)})}};sS.default=Qoe});var Y3=v(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});var Rv=ee(),X3=fe(),ese={message:({params:t})=>(0,Rv.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Rv._)`{failingKeyword: ${t.ifClause}}`},tse={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ese,code(t){let{gen:e,parentSchema:n,it:r}=t;n.then===void 0&&n.else===void 0&&(0,X3.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=K3(r,"then"),a=K3(r,"else");if(!i&&!a)return;let o=e.let("valid",!0),s=e.name("_valid");if(c(),t.reset(),i&&a){let p=e.let("ifClause");t.setParams({ifClause:p}),e.if(s,u("then",p),u("else",p))}else i?e.if(s,u("then")):e.if((0,Rv.not)(s),u("else"));t.pass(o,()=>t.error(!0));function c(){let p=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(p)}function u(p,l){return()=>{let d=t.subschema({keyword:p},s);e.assign(o,s),t.mergeValidEvaluated(d,o),l?e.assign(l,(0,Rv._)`${p}`):t.setParams({ifClause:p})}}}};function K3(t,e){let n=t.schema[e];return n!==void 0&&!(0,X3.alwaysValidSchema)(t,n)}cS.default=tse});var Q3=v(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});var nse=fe(),rse={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:n}){e.if===void 0&&(0,nse.checkStrictMode)(n,`"${t}" without "if" is ignored`)}};uS.default=rse});var eq=v(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});var ise=Hk(),ase=O3(),ose=Wk(),sse=z3(),cse=R3(),use=N3(),pse=D3(),lse=eS(),dse=L3(),mse=V3(),fse=H3(),hse=W3(),vse=G3(),gse=J3(),xse=Y3(),bse=Q3();function yse(t=!1){let e=[fse.default,hse.default,vse.default,gse.default,xse.default,bse.default,pse.default,lse.default,use.default,dse.default,mse.default];return t?e.push(ase.default,sse.default):e.push(ise.default,ose.default),e.push(cse.default),e}pS.default=yse});var tq=v(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});var He=ee(),_se={message:({schemaCode:t})=>(0,He.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,He._)`{format: ${t}}`},wse={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:_se,code(t,e){let{gen:n,data:r,$data:i,schema:a,schemaCode:o,it:s}=t,{opts:c,errSchemaPath:u,schemaEnv:p,self:l}=s;if(!c.validateFormats)return;i?d():f();function d(){let m=n.scopeValue("formats",{ref:l.formats,code:c.code.formats}),h=n.const("fDef",(0,He._)`${m}[${o}]`),g=n.let("fType"),b=n.let("format");n.if((0,He._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>n.assign(g,(0,He._)`${h}.type || "string"`).assign(b,(0,He._)`${h}.validate`),()=>n.assign(g,(0,He._)`"string"`).assign(b,h)),t.fail$data((0,He.or)(w(),x()));function w(){return c.strictSchema===!1?He.nil:(0,He._)`${o} && !${b}`}function x(){let S=p.$async?(0,He._)`(${h}.async ? await ${b}(${r}) : ${b}(${r}))`:(0,He._)`${b}(${r})`,O=(0,He._)`(typeof ${b} == "function" ? ${S} : ${b}.test(${r}))`;return(0,He._)`${b} && ${b} !== true && ${g} === ${e} && !${O}`}}function f(){let m=l.formats[a];if(!m){w();return}if(m===!0)return;let[h,g,b]=x(m);h===e&&t.pass(S());function w(){if(c.strictSchema===!1){l.logger.warn(O());return}throw new Error(O());function O(){return`unknown format "${a}" ignored in schema at path "${u}"`}}function x(O){let L=O instanceof RegExp?(0,He.regexpCode)(O):c.code.formats?(0,He._)`${c.code.formats}${(0,He.getProperty)(a)}`:void 0,X=n.scopeValue("formats",{key:a,ref:O,code:L});return typeof O=="object"&&!(O instanceof RegExp)?[O.type||"string",O.validate,(0,He._)`${X}.validate`]:["string",O,X]}function S(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!p.$async)throw new Error("async format in sync schema");return(0,He._)`await ${b}(${r})`}return typeof g=="function"?(0,He._)`${b}(${r})`:(0,He._)`${b}.test(${r})`}}}};lS.default=wse});var nq=v(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});var kse=tq(),Sse=[kse.default];dS.default=Sse});var rq=v(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.contentVocabulary=Ps.metadataVocabulary=void 0;Ps.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Ps.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var aq=v(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});var Ese=d3(),$se=$3(),Tse=eq(),jse=nq(),iq=rq(),Pse=[Ese.default,$se.default,(0,Tse.default)(),jse.default,iq.metadataVocabulary,iq.contentVocabulary];mS.default=Pse});var sq=v(Cv=>{"use strict";Object.defineProperty(Cv,"__esModule",{value:!0});Cv.DiscrError=void 0;var oq;(function(t){t.Tag="tag",t.Mapping="mapping"})(oq||(Cv.DiscrError=oq={}))});var uq=v(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});var Os=ee(),fS=sq(),cq=hv(),Ose=$p(),Ise=fe(),zse={message:({params:{discrError:t,tagName:e}})=>t===fS.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:n}})=>(0,Os._)`{error: ${t}, tag: ${n}, tagValue: ${e}}`},Rse={keyword:"discriminator",type:"object",schemaType:"object",error:zse,code(t){let{gen:e,data:n,schema:r,parentSchema:i,it:a}=t,{oneOf:o}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=r.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,Os._)`${n}${(0,Os.getProperty)(s)}`);e.if((0,Os._)`typeof ${u} == "string"`,()=>p(),()=>t.error(!1,{discrError:fS.DiscrError.Tag,tag:u,tagName:s})),t.ok(c);function p(){let f=d();e.if(!1);for(let m in f)e.elseIf((0,Os._)`${u} === ${m}`),e.assign(c,l(f[m]));e.else(),t.error(!1,{discrError:fS.DiscrError.Mapping,tag:u,tagName:s}),e.endIf()}function l(f){let m=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:f},m);return t.mergeEvaluated(h,Os.Name),m}function d(){var f;let m={},h=b(i),g=!0;for(let S=0;S<o.length;S++){let O=o[S];if(O?.$ref&&!(0,Ise.schemaHasRulesButRef)(O,a.self.RULES)){let X=O.$ref;if(O=cq.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,X),O instanceof cq.SchemaEnv&&(O=O.schema),O===void 0)throw new Ose.default(a.opts.uriResolver,a.baseId,X)}let L=(f=O?.properties)===null||f===void 0?void 0:f[s];if(typeof L!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);g=g&&(h||b(O)),w(L,S)}if(!g)throw new Error(`discriminator: "${s}" must be required`);return m;function b({required:S}){return Array.isArray(S)&&S.includes(s)}function w(S,O){if(S.const)x(S.const,O);else if(S.enum)for(let L of S.enum)x(L,O);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function x(S,O){if(typeof S!="string"||S in m)throw new Error(`discriminator: "${s}" values must be unique strings`);m[S]=O}}}};hS.default=Rse});var pq=v((A0e,Cse)=>{Cse.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var gS=v((Ae,vS)=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.MissingRefError=Ae.ValidationError=Ae.CodeGen=Ae.Name=Ae.nil=Ae.stringify=Ae.str=Ae._=Ae.KeywordCxt=Ae.Ajv=void 0;var Ase=o3(),Nse=aq(),qse=uq(),lq=pq(),Dse=["/properties"],Av="http://json-schema.org/draft-07/schema",Is=class extends Ase.default{_addVocabularies(){super._addVocabularies(),Nse.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(qse.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(lq,Dse):lq;this.addMetaSchema(e,Av,!1),this.refs["http://json-schema.org/schema"]=Av}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Av)?Av:void 0)}};Ae.Ajv=Is;vS.exports=Ae=Is;vS.exports.Ajv=Is;Object.defineProperty(Ae,"__esModule",{value:!0});Ae.default=Is;var Use=Ep();Object.defineProperty(Ae,"KeywordCxt",{enumerable:!0,get:function(){return Use.KeywordCxt}});var zs=ee();Object.defineProperty(Ae,"_",{enumerable:!0,get:function(){return zs._}});Object.defineProperty(Ae,"str",{enumerable:!0,get:function(){return zs.str}});Object.defineProperty(Ae,"stringify",{enumerable:!0,get:function(){return zs.stringify}});Object.defineProperty(Ae,"nil",{enumerable:!0,get:function(){return zs.nil}});Object.defineProperty(Ae,"Name",{enumerable:!0,get:function(){return zs.Name}});Object.defineProperty(Ae,"CodeGen",{enumerable:!0,get:function(){return zs.CodeGen}});var Mse=mv();Object.defineProperty(Ae,"ValidationError",{enumerable:!0,get:function(){return Mse.default}});var Lse=$p();Object.defineProperty(Ae,"MissingRefError",{enumerable:!0,get:function(){return Lse.default}})});var bq=v(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.formatNames=mr.fastFormats=mr.fullFormats=void 0;function dr(t,e){return{validate:t,compare:e}}mr.fullFormats={date:dr(hq,_S),time:dr(bS(!0),wS),"date-time":dr(dq(!0),gq),"iso-time":dr(bS(),vq),"iso-date-time":dr(dq(),xq),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Wse,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:ece,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:Gse,int32:{type:"number",validate:Xse},int64:{type:"number",validate:Yse},float:{type:"number",validate:fq},double:{type:"number",validate:fq},password:!0,binary:!0};mr.fastFormats={...mr.fullFormats,date:dr(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,_S),time:dr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,wS),"date-time":dr(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,gq),"iso-time":dr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,vq),"iso-date-time":dr(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,xq),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};mr.formatNames=Object.keys(mr.fullFormats);function Fse(t){return t%4===0&&(t%100!==0||t%400===0)}var Bse=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Zse=[0,31,28,31,30,31,30,31,31,30,31,30,31];function hq(t){let e=Bse.exec(t);if(!e)return!1;let n=+e[1],r=+e[2],i=+e[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&Fse(n)?29:Zse[r])}function _S(t,e){if(t&&e)return t>e?1:t<e?-1:0}var xS=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function bS(t){return function(n){let r=xS.exec(n);if(!r)return!1;let i=+r[1],a=+r[2],o=+r[3],s=r[4],c=r[5]==="-"?-1:1,u=+(r[6]||0),p=+(r[7]||0);if(u>23||p>59||t&&!s)return!1;if(i<=23&&a<=59&&o<60)return!0;let l=a-p*c,d=i-u*c-(l<0?1:0);return(d===23||d===-1)&&(l===59||l===-1)&&o<61}}function wS(t,e){if(!(t&&e))return;let n=new Date("2020-01-01T"+t).valueOf(),r=new Date("2020-01-01T"+e).valueOf();if(n&&r)return n-r}function vq(t,e){if(!(t&&e))return;let n=xS.exec(t),r=xS.exec(e);if(n&&r)return t=n[1]+n[2]+n[3],e=r[1]+r[2]+r[3],t>e?1:t<e?-1:0}var yS=/t|\s/i;function dq(t){let e=bS(t);return function(r){let i=r.split(yS);return i.length===2&&hq(i[0])&&e(i[1])}}function gq(t,e){if(!(t&&e))return;let n=new Date(t).valueOf(),r=new Date(e).valueOf();if(n&&r)return n-r}function xq(t,e){if(!(t&&e))return;let[n,r]=t.split(yS),[i,a]=e.split(yS),o=_S(n,i);if(o!==void 0)return o||wS(r,a)}var Vse=/\/|:/,Hse=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function Wse(t){return Vse.test(t)&&Hse.test(t)}var mq=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function Gse(t){return mq.lastIndex=0,mq.test(t)}var Jse=-(2**31),Kse=2**31-1;function Xse(t){return Number.isInteger(t)&&t<=Kse&&t>=Jse}function Yse(t){return Number.isInteger(t)}function fq(){return!0}var Qse=/[^\\]\\Z/;function ece(t){if(Qse.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var yq=v(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.formatLimitDefinition=void 0;var tce=gS(),Vn=ee(),Ai=Vn.operators,Nv={formatMaximum:{okStr:"<=",ok:Ai.LTE,fail:Ai.GT},formatMinimum:{okStr:">=",ok:Ai.GTE,fail:Ai.LT},formatExclusiveMaximum:{okStr:"<",ok:Ai.LT,fail:Ai.GTE},formatExclusiveMinimum:{okStr:">",ok:Ai.GT,fail:Ai.LTE}},nce={message:({keyword:t,schemaCode:e})=>(0,Vn.str)`should be ${Nv[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Vn._)`{comparison: ${Nv[t].okStr}, limit: ${e}}`};Rs.formatLimitDefinition={keyword:Object.keys(Nv),type:"string",schemaType:"string",$data:!0,error:nce,code(t){let{gen:e,data:n,schemaCode:r,keyword:i,it:a}=t,{opts:o,self:s}=a;if(!o.validateFormats)return;let c=new tce.KeywordCxt(a,s.RULES.all.format.definition,"format");c.$data?u():p();function u(){let d=e.scopeValue("formats",{ref:s.formats,code:o.code.formats}),f=e.const("fmt",(0,Vn._)`${d}[${c.schemaCode}]`);t.fail$data((0,Vn.or)((0,Vn._)`typeof ${f} != "object"`,(0,Vn._)`${f} instanceof RegExp`,(0,Vn._)`typeof ${f}.compare != "function"`,l(f)))}function p(){let d=c.schema,f=s.formats[d];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${i}": format "${d}" does not define "compare" function`);let m=e.scopeValue("formats",{key:d,ref:f,code:o.code.formats?(0,Vn._)`${o.code.formats}${(0,Vn.getProperty)(d)}`:void 0});t.fail$data(l(m))}function l(d){return(0,Vn._)`${d}.compare(${n}, ${r}) ${Nv[i].fail} 0`}},dependencies:["format"]};var rce=t=>(t.addKeyword(Rs.formatLimitDefinition),t);Rs.default=rce});var Sq=v((Mp,kq)=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Cs=bq(),ice=yq(),kS=ee(),_q=new kS.Name("fullFormats"),ace=new kS.Name("fastFormats"),SS=(t,e={keywords:!0})=>{if(Array.isArray(e))return wq(t,e,Cs.fullFormats,_q),t;let[n,r]=e.mode==="fast"?[Cs.fastFormats,ace]:[Cs.fullFormats,_q],i=e.formats||Cs.formatNames;return wq(t,i,n,r),e.keywords&&(0,ice.default)(t),t};SS.get=(t,e="full")=>{let r=(e==="fast"?Cs.fastFormats:Cs.fullFormats)[t];if(!r)throw new Error(`Unknown format "${t}"`);return r};function wq(t,e,n,r){var i,a;(i=(a=t.opts.code).formats)!==null&&i!==void 0||(a.formats=(0,kS._)`require("ajv-formats/dist/formats").${r}`);for(let o of e)t.addFormat(o,n[o])}kq.exports=Mp=SS;Object.defineProperty(Mp,"__esModule",{value:!0});Mp.default=SS});function oce(){let t=new Eq.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,$q.default)(t),t}var Eq,$q,qv,Tq=y(()=>{Eq=se(gS(),1),$q=se(Sq(),1);qv=class{constructor(e){this._ajv=e??oce()}getValidator(e){let n="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var Dv,jq=y(()=>{Dv=class{constructor(e){this._server=e}requestStream(e,n,r){return this._server.requestStream(e,n,r)}async getTask(e,n){return this._server.getTask({taskId:e},n)}async getTaskResult(e,n,r){return this._server.getTaskResult({taskId:e},n,r)}async listTasks(e,n){return this._server.listTasks(e?{cursor:e}:void 0,n)}async cancelTask(e,n){return this._server.cancelTask({taskId:e},n)}}});function Pq(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Oq(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var Iq=y(()=>{});var Uv,zq=y(()=>{UA();xs();Tq();Hu();jq();Iq();Uv=class extends ev{constructor(e,n){super(n),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(pp.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let a=this._loggingLevels.get(i);return a?this.LOG_LEVEL_SEVERITY.get(r)<this.LOG_LEVEL_SEVERITY.get(a):!1},this._capabilities=n?.capabilities??{},this._instructions=n?.instructions,this._jsonSchemaValidator=n?.jsonSchemaValidator??new qv,this.setRequestHandler($h,r=>this._oninitialize(r)),this.setNotificationHandler(Uw,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Hw,async(r,i)=>{let a=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,s=pp.safeParse(o);return s.success&&this._loggingLevels.set(a,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Dv(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=DA(this._capabilities,e)}setRequestHandler(e,n){let i=ki(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(bn(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");if(a==="tools/call"){let s=async(c,u)=>{let p=wi(gs,c);if(!p.success){let m=p.error instanceof Error?p.error.message:String(p.error);throw new q(U.InvalidParams,`Invalid tools/call request: ${m}`)}let{params:l}=p.data,d=await Promise.resolve(n(c,u));if(l.task){let m=wi(hs,d);if(!m.success){let h=m.error instanceof Error?m.error.message:String(m.error);throw new q(U.InvalidParams,`Invalid task creation result: ${h}`)}return m.data}let f=wi(Lh,d);if(!f.success){let m=f.error instanceof Error?f.error.message:String(f.error);throw new q(U.InvalidParams,`Invalid tools/call result: ${m}`)}return f.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,n)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){Oq(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Pq(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let n=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:tp.includes(n)?n:Cw,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Sh)}async createMessage(e,n){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let r=e.messages[e.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],a=i.some(u=>u.type==="tool_result"),o=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],c=s.some(u=>u.type==="tool_use");if(a){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(s.filter(l=>l.type==="tool_use").map(l=>l.id)),p=new Set(i.filter(l=>l.type==="tool_result").map(l=>l.toolUseId));if(u.size!==p.size||![...u].every(l=>p.has(l)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},Gw,n):this.request({method:"sampling/createMessage",params:e},Ww,n)}async elicitInput(e,n){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=e;return this.request({method:"elicitation/create",params:i},Fh,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=e.mode==="form"?e:{...e,mode:"form"},a=await this.request({method:"elicitation/create",params:i},Fh,n);if(a.action==="accept"&&a.content&&i.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(i.requestedSchema)(a.content);if(!s.valid)throw new q(U.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof q?o:new q(U.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return a}}}createElicitationCompletionNotifier(e,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},n)}async listRoots(e,n){return this.request({method:"roots/list",params:e},Jw,n)}async sendLoggingMessage(e,n){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,n))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function ES(t){return!!t&&typeof t=="object"&&Cq in t}function Aq(t){return t[Cq]?.complete}var Cq,Rq,Nq=y(()=>{Cq=Symbol.for("mcp.completable");(function(t){t.Completable="McpCompletable"})(Rq||(Rq={}))});var qq=y(()=>{});function cce(t){let e=[];if(t.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(t.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${t.length})`]};if(t.includes(" ")&&e.push("Tool name contains spaces, which may cause parsing issues"),t.includes(",")&&e.push("Tool name contains commas, which may cause parsing issues"),(t.startsWith("-")||t.endsWith("-"))&&e.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(t.startsWith(".")||t.endsWith("."))&&e.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!sce.test(t)){let n=t.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,a)=>a.indexOf(r)===i);return e.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:e}}return{isValid:!0,warnings:e}}function uce(t,e){if(e.length>0){console.warn(`Tool name validation warning for "${t}":`);for(let n of e)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function $S(t){let e=cce(t);return uce(t,e.warnings),e.isValid}var sce,Dq=y(()=>{sce=/^[A-Za-z0-9._-]{1,128}$/});var Mv,Uq=y(()=>{Mv=class{constructor(e){this._mcpServer=e}registerToolTask(e,n,r){let i={taskSupport:"required",...n.execution};if(i.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,n.title,n.description,n.inputSchema,n.outputSchema,n.annotations,i,n._meta,r)}}});var Lv=y(()=>{yh();yh()});function Fq(t){return t!==null&&typeof t=="object"&&"parse"in t&&typeof t.parse=="function"&&"safeParse"in t&&typeof t.safeParse=="function"}function lce(t){return"_def"in t||"_zod"in t||Fq(t)}function TS(t){return typeof t!="object"||t===null||lce(t)?!1:Object.keys(t).length===0?!0:Object.values(t).some(Fq)}function Mq(t){if(t)return TS(t)?wa(t):t}function dce(t){let e=ki(t);return e?Object.entries(e).map(([n,r])=>{let i=Q6(r),a=e8(r);return{name:n,description:i,required:!a}}):[]}function Ni(t){let n=ki(t)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=ah(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function Lq(t){return{completion:{values:t.slice(0,100),total:t.length,hasMore:t.length>100}}}var As,pce,Lp,jS=y(()=>{zq();Hu();z1();xs();Nq();qq();Dq();Uq();Lv();As=class{constructor(e,n){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new Uv(e,n)}get experimental(){return this._experimental||(this._experimental={tasks:new Mv(this)}),this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(Ni(Mh)),this.server.assertCanSetRequestHandler(Ni(gs)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(Mh,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,n])=>{let r={name:e,title:n.title,description:n.description,inputSchema:(()=>{let i=us(n.inputSchema);return i?P1(i,{strictUnions:!0,pipeStrategy:"input"}):pce})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=us(n.outputSchema);i&&(r.outputSchema=P1(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(gs,async(e,n)=>{try{let r=this._registeredTools[e.params.name];if(!r)throw new q(U.InvalidParams,`Tool ${e.params.name} not found`);if(!r.enabled)throw new q(U.InvalidParams,`Tool ${e.params.name} disabled`);let i=!!e.params.task,a=r.execution?.taskSupport,o="createTask"in r.handler;if((a==="required"||a==="optional")&&!o)throw new q(U.InternalError,`Tool ${e.params.name} has taskSupport '${a}' but was not registered with registerToolTask`);if(a==="required"&&!i)throw new q(U.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(a==="optional"&&!i&&o)return await this.handleAutomaticTaskPolling(r,e,n);let s=await this.validateToolInput(r,e.params.arguments,e.params.name),c=await this.executeToolHandler(r,s,n);return i||await this.validateToolOutput(r,c,e.params.name),c}catch(r){if(r instanceof q&&r.code===U.UrlElicitationRequired)throw r;return this.createToolError(r instanceof Error?r.message:String(r))}}),this._toolHandlersInitialized=!0)}createToolError(e){return{content:[{type:"text",text:e}],isError:!0}}async validateToolInput(e,n,r){if(!e.inputSchema)return;let a=us(e.inputSchema)??e.inputSchema,o=await rh(a,n);if(!o.success){let s="error"in o?o.error:"Unknown error",c=ih(s);throw new q(U.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${c}`)}return o.data}async validateToolOutput(e,n,r){if(!e.outputSchema||!("content"in n)||n.isError)return;if(!n.structuredContent)throw new q(U.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=us(e.outputSchema),a=await rh(i,n.structuredContent);if(!a.success){let o="error"in a?a.error:"Unknown error",s=ih(o);throw new q(U.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${s}`)}}async executeToolHandler(e,n,r){let i=e.handler;if("createTask"in i){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(e.inputSchema){let s=i;return await Promise.resolve(s.createTask(n,o))}else{let s=i;return await Promise.resolve(s.createTask(o))}}if(e.inputSchema){let o=i;return await Promise.resolve(o(n,r))}else{let o=i;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(e,n,r){if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let i=await this.validateToolInput(e,n.params.arguments,n.params.name),a=e.handler,o={...r,taskStore:r.taskStore},s=i?await Promise.resolve(a.createTask(i,o)):await Promise.resolve(a.createTask(o)),c=s.task.taskId,u=s.task,p=u.pollInterval??5e3;for(;u.status!=="completed"&&u.status!=="failed"&&u.status!=="cancelled";){await new Promise(d=>setTimeout(d,p));let l=await r.taskStore.getTask(c);if(!l)throw new q(U.InternalError,`Task ${c} not found during polling`);u=l}return await r.taskStore.getTaskResult(c)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(Ni(Bh)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(Bh,async e=>{switch(e.params.ref.type){case"ref/prompt":return eA(e),this.handlePromptCompletion(e,e.params.ref);case"ref/resource":return tA(e),this.handleResourceCompletion(e,e.params.ref);default:throw new q(U.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(e,n){let r=this._registeredPrompts[n.name];if(!r)throw new q(U.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new q(U.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return Lp;let a=ki(r.argsSchema)?.[e.params.argument.name];if(!ES(a))return Lp;let o=Aq(a);if(!o)return Lp;let s=await o(e.params.argument.value,e.params.context);return Lq(s)}async handleResourceCompletion(e,n){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===n.uri);if(!r){if(this._registeredResources[n.uri])return Lp;throw new q(U.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(e.params.argument.name);if(!i)return Lp;let a=await i(e.params.argument.value,e.params.context);return Lq(a)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(Ni(Ah)),this.server.assertCanSetRequestHandler(Ni(Nh)),this.server.assertCanSetRequestHandler(Ni(qh)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(Ah,async(e,n)=>{let r=Object.entries(this._registeredResources).filter(([a,o])=>o.enabled).map(([a,o])=>({uri:a,name:o.name,...o.metadata})),i=[];for(let a of Object.values(this._registeredResourceTemplates)){if(!a.resourceTemplate.listCallback)continue;let o=await a.resourceTemplate.listCallback(n);for(let s of o.resources)i.push({...a.metadata,...s})}return{resources:[...r,...i]}}),this.server.setRequestHandler(Nh,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(qh,async(e,n)=>{let r=new URL(e.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new q(U.InvalidParams,`Resource ${r} disabled`);return i.readCallback(r,n)}for(let a of Object.values(this._registeredResourceTemplates)){let o=a.resourceTemplate.uriTemplate.match(r.toString());if(o)return a.readCallback(r,o,n)}throw new q(U.InvalidParams,`Resource ${r} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(Ni(Dh)),this.server.assertCanSetRequestHandler(Ni(Uh)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(Dh,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,n])=>({name:e,title:n.title,description:n.description,arguments:n.argsSchema?dce(n.argsSchema):void 0}))})),this.server.setRequestHandler(Uh,async(e,n)=>{let r=this._registeredPrompts[e.params.name];if(!r)throw new q(U.InvalidParams,`Prompt ${e.params.name} not found`);if(!r.enabled)throw new q(U.InvalidParams,`Prompt ${e.params.name} disabled`);if(r.argsSchema){let i=us(r.argsSchema),a=await rh(i,e.params.arguments);if(!a.success){let c="error"in a?a.error:"Unknown error",u=ih(c);throw new q(U.InvalidParams,`Invalid arguments for prompt ${e.params.name}: ${u}`)}let o=a.data,s=r.callback;return await Promise.resolve(s(o,n))}else{let i=r.callback;return await Promise.resolve(i(n))}}),this._promptHandlersInitialized=!0)}resource(e,n,...r){let i;typeof r[0]=="object"&&(i=r.shift());let a=r[0];if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let o=this._createRegisteredResource(e,void 0,n,i,a);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let o=this._createRegisteredResourceTemplate(e,void 0,n,i,a);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(e,n,r,i){if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let a=this._createRegisteredResource(e,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),a}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let a=this._createRegisteredResourceTemplate(e,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),a}}_createRegisteredResource(e,n,r,i,a){let o={name:e,title:n,metadata:i,readCallback:a,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:s=>{typeof s.uri<"u"&&s.uri!==r&&(delete this._registeredResources[r],s.uri&&(this._registeredResources[s.uri]=o)),typeof s.name<"u"&&(o.name=s.name),typeof s.title<"u"&&(o.title=s.title),typeof s.metadata<"u"&&(o.metadata=s.metadata),typeof s.callback<"u"&&(o.readCallback=s.callback),typeof s.enabled<"u"&&(o.enabled=s.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(e,n,r,i,a){let o={resourceTemplate:r,title:n,metadata:i,readCallback:a,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:u=>{typeof u.name<"u"&&u.name!==e&&(delete this._registeredResourceTemplates[e],u.name&&(this._registeredResourceTemplates[u.name]=o)),typeof u.title<"u"&&(o.title=u.title),typeof u.template<"u"&&(o.resourceTemplate=u.template),typeof u.metadata<"u"&&(o.metadata=u.metadata),typeof u.callback<"u"&&(o.readCallback=u.callback),typeof u.enabled<"u"&&(o.enabled=u.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=o;let s=r.uriTemplate.variableNames;return Array.isArray(s)&&s.some(u=>!!r.completeCallback(u))&&this.setCompletionRequestHandler(),o}_createRegisteredPrompt(e,n,r,i,a){let o={title:n,description:r,argsSchema:i===void 0?void 0:wa(i),callback:a,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:s=>{typeof s.name<"u"&&s.name!==e&&(delete this._registeredPrompts[e],s.name&&(this._registeredPrompts[s.name]=o)),typeof s.title<"u"&&(o.title=s.title),typeof s.description<"u"&&(o.description=s.description),typeof s.argsSchema<"u"&&(o.argsSchema=wa(s.argsSchema)),typeof s.callback<"u"&&(o.callback=s.callback),typeof s.enabled<"u"&&(o.enabled=s.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[e]=o,i&&Object.values(i).some(c=>{let u=c instanceof ep?c._def?.innerType:c;return ES(u)})&&this.setCompletionRequestHandler(),o}_createRegisteredTool(e,n,r,i,a,o,s,c,u){$S(e);let p={title:n,description:r,inputSchema:Mq(i),outputSchema:Mq(a),annotations:o,execution:s,_meta:c,handler:u,enabled:!0,disable:()=>p.update({enabled:!1}),enable:()=>p.update({enabled:!0}),remove:()=>p.update({name:null}),update:l=>{typeof l.name<"u"&&l.name!==e&&(typeof l.name=="string"&&$S(l.name),delete this._registeredTools[e],l.name&&(this._registeredTools[l.name]=p)),typeof l.title<"u"&&(p.title=l.title),typeof l.description<"u"&&(p.description=l.description),typeof l.paramsSchema<"u"&&(p.inputSchema=wa(l.paramsSchema)),typeof l.outputSchema<"u"&&(p.outputSchema=wa(l.outputSchema)),typeof l.callback<"u"&&(p.handler=l.callback),typeof l.annotations<"u"&&(p.annotations=l.annotations),typeof l._meta<"u"&&(p._meta=l._meta),typeof l.enabled<"u"&&(p.enabled=l.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=p,this.setToolRequestHandlers(),this.sendToolListChanged(),p}tool(e,...n){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let r,i,a,o;if(typeof n[0]=="string"&&(r=n.shift()),n.length>1){let c=n[0];TS(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!TS(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let s=n[0];return this._createRegisteredTool(e,void 0,r,i,a,o,{taskSupport:"forbidden"},void 0,s)}registerTool(e,n,r){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let{title:i,description:a,inputSchema:o,outputSchema:s,annotations:c,_meta:u}=n;return this._createRegisteredTool(e,i,a,o,s,c,{taskSupport:"forbidden"},u,r)}prompt(e,...n){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let a=n[0],o=this._createRegisteredPrompt(e,void 0,r,i,a);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(e,n,r){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} is already registered`);let{title:i,description:a,argsSchema:o}=n,s=this._createRegisteredPrompt(e,i,a,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,n){return this.server.sendLoggingMessage(e,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},pce={type:"object",properties:{}};Lp={completion:{values:[],hasMore:!1}}});function qce(t){return rp.parse(JSON.parse(t))}function a9(t){return JSON.stringify(t)+`
96
96
  `}var Jv,o9=y(()=>{xs();Jv=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
97
97
  `);if(e===-1)return null;let n=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),qce(n)}clear(){this._buffer=void 0}}});var AS,Kv,s9=y(()=>{AS=se(require("node:process"),1);o9();Kv=class{constructor(e=AS.default.stdin,n=AS.default.stdout){this._stdin=e,this._stdout=n,this._readBuffer=new Jv,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(n=>{let r=a9(e);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var p9=v((A_e,u9)=>{var Us=require("fs"),c9=require("url"),Dce=require("child_process").spawn;u9.exports=NS;NS.XMLHttpRequest=NS;function NS(t){"use strict";t=t||{};var e=this,n=require("http"),r=require("https"),i,a,o={},s=!1,c={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},u=Object.assign({},c),p=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],l=["TRACE","TRACK","CONNECT"],d=!1,f=!1,m=!1,h={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),this.status=null,this.statusText=null;var g=function(x){return s||x&&p.indexOf(x.toLowerCase())===-1},b=function(x){return x&&l.indexOf(x)===-1};this.open=function(x,S,O,L,X){if(this.abort(),f=!1,m=!1,!b(x))throw new Error("SecurityError: Request method not allowed");o={method:x,url:S.toString(),async:typeof O!="boolean"?!0:O,user:L||null,password:X||null},w(this.OPENED)},this.setDisableHeaderCheck=function(x){s=x},this.setRequestHeader=function(x,S){if(this.readyState!=this.OPENED)throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(!g(x))return console.warn('Refused to set unsafe header "'+x+'"'),!1;if(d)throw new Error("INVALID_STATE_ERR: send flag is true");return u[x]=S,!0},this.getResponseHeader=function(x){return typeof x=="string"&&this.readyState>this.OPENED&&a.headers[x.toLowerCase()]&&!f?a.headers[x.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState<this.HEADERS_RECEIVED||f)return"";var x="";for(var S in a.headers)S!=="set-cookie"&&S!=="set-cookie2"&&(x+=S+": "+a.headers[S]+`\r
98
- `);return x.substr(0,x.length-2)},this.getRequestHeader=function(x){return typeof x=="string"&&u[x]?u[x]:""},this.send=function(x){if(this.readyState!=this.OPENED)throw new Error("INVALID_STATE_ERR: connection must be opened before send() is called");if(d)throw new Error("INVALID_STATE_ERR: send has already been called");var S=!1,O=!1,L=c9.parse(o.url),X;switch(L.protocol){case"https:":S=!0;case"http:":X=L.hostname;break;case"file:":O=!0;break;case void 0:case"":X="localhost";break;default:throw new Error("Protocol not supported.")}if(O){if(o.method!=="GET")throw new Error("XMLHttpRequest: Only GET method is supported");if(o.async)Us.readFile(unescape(L.pathname),function($t,Ui){$t?e.handleError($t,$t.errno||-1):(e.status=200,e.responseText=Ui.toString("utf8"),e.response=Ui,w(e.DONE))});else try{this.response=Us.readFileSync(unescape(L.pathname)),this.responseText=this.response.toString("utf8"),this.status=200,w(e.DONE)}catch($t){this.handleError($t,$t.errno||-1)}return}var We=L.port||(S?443:80),Ee=L.pathname+(L.search?L.search:"");if(u.Host=X,S&&We===443||We===80||(u.Host+=":"+L.port),o.user){typeof o.password>"u"&&(o.password="");var Le=new Buffer(o.user+":"+o.password);u.Authorization="Basic "+Le.toString("base64")}if(o.method==="GET"||o.method==="HEAD")x=null;else if(x){u["Content-Length"]=Buffer.isBuffer(x)?x.length:Buffer.byteLength(x);var Jn=Object.keys(u);Jn.some(function($t){return $t.toLowerCase()==="content-type"})||(u["Content-Type"]="text/plain;charset=UTF-8")}else o.method==="POST"&&(u["Content-Length"]=0);var Tn=t.agent||!1,Oe={host:X,port:We,path:Ee,method:o.method,headers:u,agent:Tn};if(S&&(Oe.pfx=t.pfx,Oe.key=t.key,Oe.passphrase=t.passphrase,Oe.cert=t.cert,Oe.ca=t.ca,Oe.ciphers=t.ciphers,Oe.rejectUnauthorized=t.rejectUnauthorized!==!1),f=!1,o.async){var Nt=S?r.request:n.request;d=!0,e.dispatchEvent("readystatechange");var Ht=function($t){if(a=$t,a.statusCode===302||a.statusCode===303||a.statusCode===307){o.url=a.headers.location;var Ui=c9.parse(o.url);X=Ui.hostname;var Gr={hostname:Ui.hostname,port:Ui.port,path:Ui.path,method:a.statusCode===303?"GET":o.method,headers:u};S&&(Gr.pfx=t.pfx,Gr.key=t.key,Gr.passphrase=t.passphrase,Gr.cert=t.cert,Gr.ca=t.ca,Gr.ciphers=t.ciphers,Gr.rejectUnauthorized=t.rejectUnauthorized!==!1),i=Nt(Gr,Ht).on("error",fr),i.end();return}w(e.HEADERS_RECEIVED),e.status=a.statusCode,a.on("data",function(il){if(il){var dD=Buffer.from(il);e.response=Buffer.concat([e.response,dD])}d&&w(e.LOADING)}),a.on("end",function(){d&&(d=!1,w(e.DONE),e.responseText=e.response.toString("utf8"))}),a.on("error",function(il){e.handleError(il)})},fr=function($t){if(i.reusedSocket&&$t.code==="ECONNRESET")return Nt(Oe,Ht).on("error",fr);e.handleError($t)};i=Nt(Oe,Ht).on("error",fr),t.autoUnref&&i.on("socket",$t=>{$t.unref()}),x&&i.write(x),i.end(),e.dispatchEvent("loadstart")}else{var hr=".node-xmlhttprequest-content-"+process.pid,Di=".node-xmlhttprequest-sync-"+process.pid;Us.writeFileSync(Di,"","utf8");for(var rl="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(S?"s":"")+".request;var options = "+JSON.stringify(Oe)+";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('"+hr+"', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('"+Di+"');});response.on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Di+"');});}).on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Di+"');});"+(x?"req.write('"+JSON.stringify(x).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",Js=Dce(process.argv[0],["-e",rl]),Pue;Us.existsSync(Di););if(e.responseText=Us.readFileSync(hr,"utf8"),Js.stdin.end(),Us.unlinkSync(hr),e.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var lD=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));e.handleError(lD,503)}else{e.status=e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var lg=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));a={statusCode:e.status,headers:lg.data.headers},e.responseText=lg.data.text,e.response=Buffer.from(lg.data.data,"base64"),w(e.DONE,!0)}}},this.handleError=function(x,S){this.status=S||0,this.statusText=x,this.responseText=x.stack,f=!0,w(this.DONE)},this.abort=function(){i&&(i.abort(),i=null),u=Object.assign({},c),this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),f=m=!0,this.readyState!==this.UNSENT&&(this.readyState!==this.OPENED||d)&&this.readyState!==this.DONE&&(d=!1,w(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(x,S){x in h||(h[x]=[]),h[x].push(S)},this.removeEventListener=function(x,S){x in h&&(h[x]=h[x].filter(function(O){return O!==S}))},this.dispatchEvent=function(x){if(typeof e["on"+x]=="function"&&(this.readyState===this.DONE&&o.async?setTimeout(function(){e["on"+x]()},0):e["on"+x]()),x in h)for(let S=0,O=h[x].length;S<O;S++)this.readyState===this.DONE?setTimeout(function(){h[x][S].call(e)},0):h[x][S].call(e)};var w=function(x){if(!(e.readyState===x||e.readyState===e.UNSENT&&m)&&(e.readyState=x,(o.async||e.readyState<e.OPENED||e.readyState===e.DONE)&&e.dispatchEvent("readystatechange"),e.readyState===e.DONE)){let S;m?S="abort":f?S="error":S="load",e.dispatchEvent(S),e.dispatchEvent("loadend")}}}});var Wn,Vp,Hp,Xv=y(()=>{Wn=Object.create(null);Wn.open="0";Wn.close="1";Wn.ping="2";Wn.pong="3";Wn.message="4";Wn.upgrade="5";Wn.noop="6";Vp=Object.create(null);Object.keys(Wn).forEach(t=>{Vp[Wn[t]]=t});Hp={type:"error",data:"parser error"}});function d9(t,e){if(t.data instanceof ArrayBuffer||ArrayBuffer.isView(t.data))return e(l9(t.data,!1));Wp(t,!0,n=>{qS||(qS=new TextEncoder),e(qS.encode(n))})}var Wp,l9,qS,m9=y(()=>{Xv();Wp=({type:t,data:e},n,r)=>e instanceof ArrayBuffer||ArrayBuffer.isView(e)?r(n?e:"b"+l9(e,!0).toString("base64")):r(Wn[t]+(e||"")),l9=(t,e)=>Buffer.isBuffer(t)||t instanceof Uint8Array&&!e?t:t instanceof ArrayBuffer?Buffer.from(t):Buffer.from(t.buffer,t.byteOffset,t.byteLength)});var Gp,f9,h9=y(()=>{Xv();Gp=(t,e)=>{if(typeof t!="string")return{type:"message",data:f9(t,e)};let n=t.charAt(0);if(n==="b"){let r=Buffer.from(t.substring(1),"base64");return{type:"message",data:f9(r,e)}}return Vp[n]?t.length>1?{type:Vp[n],data:t.substring(1)}:{type:Vp[n]}:Hp},f9=(t,e)=>{switch(e){case"arraybuffer":return t instanceof ArrayBuffer?t:Buffer.isBuffer(t)?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):t.buffer;case"nodebuffer":default:return Buffer.isBuffer(t)?t:Buffer.from(t)}}});function b9(){return new TransformStream({transform(t,e){d9(t,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let a=new DataView(i.buffer);a.setUint8(0,126),a.setUint16(1,r)}else{i=new Uint8Array(9);let a=new DataView(i.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(r))}t.data&&typeof t.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(n)})}})}function Yv(t){return t.reduce((e,n)=>e+n.length,0)}function Qv(t,e){if(t[0].length===e)return t.shift();let n=new Uint8Array(e),r=0;for(let i=0;i<e;i++)n[i]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),n}function y9(t,e){DS||(DS=new TextDecoder);let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(Yv(n)<1)break;let c=Qv(n,1);a=(c[0]&128)===128,i=c[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(Yv(n)<2)break;let c=Qv(n,2);i=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(Yv(n)<8)break;let c=Qv(n,8),u=new DataView(c.buffer,c.byteOffset,c.length),p=u.getUint32(0);if(p>Math.pow(2,21)-1){s.enqueue(Hp);break}i=p*Math.pow(2,32)+u.getUint32(4),r=3}else{if(Yv(n)<i)break;let c=Qv(n,i);s.enqueue(Gp(a?c:DS.decode(c),e)),r=0}if(i===0||i>t){s.enqueue(Hp);break}}}})}var v9,g9,x9,DS,US,Ms=y(()=>{m9();h9();Xv();v9="",g9=(t,e)=>{let n=t.length,r=new Array(n),i=0;t.forEach((a,o)=>{Wp(a,!1,s=>{r[o]=s,++i===n&&e(r.join(v9))})})},x9=(t,e)=>{let n=t.split(v9),r=[];for(let i=0;i<n.length;i++){let a=Gp(n[i],e);if(r.push(a),a.type==="error")break}return r};US=4});function w9(){return new MS}function Uce(t){let e=t.split("; "),n=e[0].indexOf("=");if(n===-1)return;let r=e[0].substring(0,n).trim();if(!r.length)return;let i=e[0].substring(n+1).trim();i.charCodeAt(0)===34&&(i=i.slice(1,-1));let a={name:r,value:i};for(let o=1;o<e.length;o++){let s=e[o].split("=");if(s.length!==2)continue;let c=s[0].trim(),u=s[1].trim();switch(c){case"Expires":a.expires=new Date(u);break;case"Max-Age":let p=new Date;p.setUTCSeconds(p.getUTCSeconds()+parseInt(u,10)),a.expires=p;break;default:}}return a}var Br,At,_9,MS,Aa=y(()=>{Br=process.nextTick,At=global,_9="nodebuffer";MS=class{constructor(){this._cookies=new Map}parseCookies(e){e&&e.forEach(n=>{let r=Uce(n);r&&this._cookies.set(r.name,r)})}get cookies(){let e=Date.now();return this._cookies.forEach((n,r)=>{var i;((i=n.expires)===null||i===void 0?void 0:i.getTime())<e&&this._cookies.delete(r)}),this._cookies.entries()}addCookies(e){let n=[];for(let[r,i]of this.cookies)n.push(`${r}=${i.value}`);n.length&&(e.setDisableHeaderCheck(!0),e.setRequestHeader("cookie",n.join("; ")))}appendCookies(e){for(let[n,r]of this.cookies)e.append("cookie",`${n}=${r.value}`)}}});function eg(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}function Zr(t,e){e.useNativeTimers?(t.setTimeoutFn=Mce.bind(At),t.clearTimeoutFn=Lce.bind(At)):(t.setTimeoutFn=At.setTimeout.bind(At),t.clearTimeoutFn=At.clearTimeout.bind(At))}function k9(t){return typeof t=="string"?Bce(t):Math.ceil((t.byteLength||t.size)*Fce)}function Bce(t){let e=0,n=0;for(let r=0,i=t.length;r<i;r++)e=t.charCodeAt(r),e<128?n+=1:e<2048?n+=2:e<55296||e>=57344?n+=3:(r++,n+=4);return n}function tg(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var Mce,Lce,Fce,Na=y(()=>{Aa();Mce=At.setTimeout,Lce=At.clearTimeout;Fce=1.33});function S9(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function E9(t){let e={},n=t.split("&");for(let r=0,i=n.length;r<i;r++){let a=n[r].split("=");e[decodeURIComponent(a[0])]=decodeURIComponent(a[1])}return e}var LS=y(()=>{});var $9,T9,Zce,ng,Vr,Jp=y(()=>{Ms();$9=se(pi(),1);Na();LS();T9=se(Y(),1),Zce=(0,T9.default)("engine.io-client:transport"),ng=class extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}},Vr=class extends $9.Emitter{constructor(e){super(),this.writable=!1,Zr(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,n,r){return super.emitReserved("error",new ng(e,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"?this.write(e):Zce("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){let n=Gp(e,this.socket.binaryType);this.onPacket(n)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,n={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){let e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){let n=S9(e);return n.length?"?"+n:""}}});var j9,Gn,Kp,FS=y(()=>{Jp();Na();Ms();j9=se(Y(),1),Gn=(0,j9.default)("engine.io-client:polling"),Kp=class extends Vr{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";let n=()=>{Gn("paused"),this.readyState="paused",e()};if(this._polling||!this.writable){let r=0;this._polling&&(Gn("we are currently polling - waiting to pause"),r++,this.once("pollComplete",function(){Gn("pre-pause polling complete"),--r||n()})),this.writable||(Gn("we are currently writing - waiting to pause"),r++,this.once("drain",function(){Gn("pre-pause writing complete"),--r||n()}))}else n()}_poll(){Gn("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){Gn("polling got data %s",e);let n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};x9(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"?this._poll():Gn('ignoring poll - transport state "%s"',this.readyState))}doClose(){let e=()=>{Gn("writing close packet"),this.write([{type:"close"}])};this.readyState==="open"?(Gn("transport open - closing"),e()):(Gn("transport not open - deferring close"),this.once("open",e))}write(e){this.writable=!1,g9(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=tg()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}});var P9,O9,I9=y(()=>{P9=!1;try{P9=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}O9=P9});function Vce(){}function z9(){for(let t in Hr.requests)Hr.requests.hasOwnProperty(t)&&Hr.requests[t].abort()}function Hce(t){let e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||O9))return new XMLHttpRequest}catch{}if(!e)try{return new At[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var R9,C9,BS,rg,Hr,cwe,ZS=y(()=>{FS();R9=se(pi(),1);Na();Aa();I9();C9=se(Y(),1),BS=(0,C9.default)("engine.io-client:polling");rg=class extends Kp{constructor(e){if(super(e),typeof location<"u"){let n=location.protocol==="https:",r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||r!==e.port}}doWrite(e,n){let r=this.request({method:"POST",data:e});r.on("success",n),r.on("error",(i,a)=>{this.onError("xhr post error",i,a)})}doPoll(){BS("xhr poll");let e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=e}},Hr=class t extends R9.Emitter{constructor(e,n,r){super(),this.createRequest=e,Zr(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var e;let n=eg(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{BS("xhr open %s: %s",this._method,this._uri),r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&r.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var i;r.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},BS("xhr data %s",this._data),r.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=t.requestsCount++,t.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Vce,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete t.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Hr.requestsCount=0;Hr.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",z9);else if(typeof addEventListener=="function"){let t="onpagehide"in At?"pagehide":"unload";addEventListener(t,z9,!1)}}cwe=(function(){let t=Hce({xdomain:!1});return t&&t.responseType!==null})()});var VS,Wce,Ls,HS=y(()=>{VS=se(p9(),1);ZS();Wce=VS.default||VS,Ls=class extends rg{request(e={}){var n;return Object.assign(e,{xd:this.xd,cookieJar:(n=this.socket)===null||n===void 0?void 0:n._cookieJar},this.opts),new Hr(r=>new Wce(r),this.uri(),e)}}});var Gce,Jce,Kce,WS,Xce,A9=y(()=>{Gce=se(by(),1),Jce=se(Pd(),1),Kce=se(Id(),1),WS=se(Tc(),1),Xce=se(_y(),1)});var N9,Qce,eue,ig,vwe,GS=y(()=>{Jp();Na();Ms();Aa();N9=se(Y(),1),Qce=(0,N9.default)("engine.io-client:websocket"),eue=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",ig=class extends Vr{get name(){return"websocket"}doOpen(){let e=this.uri(),n=this.opts.protocols,r=eue?{}:eg(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,n,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],i=n===e.length-1;Wp(r,this.supportsBinary,a=>{try{this.doWrite(r,a)}catch{Qce("websocket closed before onclose event")}i&&Br(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=tg()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}},vwe=At.WebSocket||At.MozWebSocket});var Fs,JS=y(()=>{A9();GS();Fs=class extends ig{createSocket(e,n,r){var i;if(!((i=this.socket)===null||i===void 0)&&i._cookieJar){r.headers=r.headers||{},r.headers.cookie=typeof r.headers.cookie=="string"?[r.headers.cookie]:r.headers.cookie||[];for(let[a,o]of this.socket._cookieJar.cookies)r.headers.cookie.push(`${a}=${o.value}`)}return new WS.default(e,n,r)}doWrite(e,n){let r={};e.options&&(r.compress=e.options.compress),this.opts.perMessageDeflate&&(typeof n=="string"?Buffer.byteLength(n):n.length)<this.opts.perMessageDeflate.threshold&&(r.compress=!1),this.ws.send(n,r)}}});var q9,Xp,Bs,KS=y(()=>{Jp();Aa();Ms();q9=se(Y(),1),Xp=(0,q9.default)("engine.io-client:webtransport"),Bs=class extends Vr{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{Xp("transport closed gracefully"),this.onClose()}).catch(e=>{Xp("transport closed due to %s",e),this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let n=y9(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),i=b9();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();let a=()=>{r.read().then(({done:s,value:c})=>{if(s){Xp("session is closed");return}Xp("received chunk: %o",c),this.onPacket(c),a()}).catch(s=>{Xp("an error occurred while reading: %s",s)})};a();let o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],i=n===e.length-1;this._writer.write(r).then(()=>{i&&Br(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}});var XS,YS=y(()=>{HS();JS();KS();XS={websocket:Fs,webtransport:Bs,polling:Ls}});function Zs(t){if(t.length>8e3)throw"URI too long";let e=t,n=t.indexOf("["),r=t.indexOf("]");n!=-1&&r!=-1&&(t=t.substring(0,n)+t.substring(n,r).replace(/:/g,";")+t.substring(r,t.length));let i=tue.exec(t||""),a={},o=14;for(;o--;)a[nue[o]]=i[o]||"";return n!=-1&&r!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=rue(a,a.path),a.queryKey=iue(a,a.query),a}function rue(t,e){let n=/\/{2,9}/g,r=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&r.splice(0,1),e.slice(-1)=="/"&&r.splice(r.length-1,1),r}function iue(t,e){let n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}var tue,nue,QS=y(()=>{tue=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,nue=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"]});var D9,U9,Se,eE,Yp,qa,ag,Vs,tE=y(()=>{YS();Na();LS();QS();D9=se(pi(),1);Ms();Aa();U9=se(Y(),1),Se=(0,U9.default)("engine.io-client:socket"),eE=typeof addEventListener=="function"&&typeof removeEventListener=="function",Yp=[];eE&&addEventListener("offline",()=>{Se("closing %d connection(s) because the network was lost",Yp.length),Yp.forEach(t=>t())},!1);qa=class t extends D9.Emitter{constructor(e,n){if(super(),this.binaryType=_9,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(n=e,e=null),e){let r=Zs(e);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=Zs(n.host).host);Zr(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{let i=r.prototype.name;this.transports.push(i),this._transportsByName[i]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=E9(this.opts.query)),eE&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(Se("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Yp.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=w9()),this._open()}createTransport(e){Se('creating transport "%s"',e);let n=Object.assign({},this.opts.query);n.EIO=US,n.transport=e,this.id&&(n.sid=this.id);let r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return Se("options: %j",r),new this._transportsByName[e](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let e=this.opts.rememberUpgrade&&t.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){Se("setting transport %s",e.name),this.transport&&(Se("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){Se("socket open"),this.readyState="open",t.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(Se('socket receive: type "%s", data "%s"',e.type,e.data),this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let n=new Error("server error");n.code=e.data,this._onError(n);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}else Se('packet received with socket readyState "%s"',this.readyState)}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();Se("flushing %d packets in socket",e.length),this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){let i=this.writeBuffer[r].data;if(i&&(n+=k9(i)),r>0&&n>this._maxPayload)return Se("only send %d out of %d packets",r,this.writeBuffer.length),this.writeBuffer.slice(0,r);n+=2}return Se("payload size is %d (max: %d)",n,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(Se("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,Br(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,n,r){return this._sendPacket("message",e,n,r),this}send(e,n,r){return this._sendPacket("message",e,n,r),this}_sendPacket(e,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;let a={type:e,data:n,options:r};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),i&&this.once("flush",i),this.flush()}close(){let e=()=>{this._onClose("forced close"),Se("socket closing - telling transport to close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}_onError(e){if(Se("socket error %j",e),t.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return Se("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(Se('socket close with reason: "%s"',e),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),eE&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let r=Yp.indexOf(this._offlineEventListener);r!==-1&&(Se("removing listener for the 'offline' event"),Yp.splice(r,1))}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}};qa.protocol=US;ag=class extends qa{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){Se("starting upgrade probes");for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}}_probe(e){Se('probing transport "%s"',e);let n=this.createTransport(e),r=!1;qa.priorWebsocketSuccess=!1;let i=()=>{r||(Se('probe transport "%s" opened',e),n.send([{type:"ping",data:"probe"}]),n.once("packet",l=>{if(!r)if(l.type==="pong"&&l.data==="probe"){if(Se('probe transport "%s" pong',e),this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;qa.priorWebsocketSuccess=n.name==="websocket",Se('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{r||this.readyState!=="closed"&&(Se("changing transport and sending upgrade packet"),p(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{Se('probe transport "%s" failed',e);let d=new Error("probe error");d.transport=n.name,this.emitReserved("upgradeError",d)}}))};function a(){r||(r=!0,p(),n.close(),n=null)}let o=l=>{let d=new Error("probe error: "+l);d.transport=n.name,a(),Se('probe transport "%s" failed because of error: %s',e,l),this.emitReserved("upgradeError",d)};function s(){o("transport closed")}function c(){o("socket closed")}function u(l){n&&l.name!==n.name&&(Se('"%s" works - aborting "%s"',l.name,n.name),a())}let p=()=>{n.removeListener("open",i),n.removeListener("error",o),n.removeListener("close",s),this.off("close",c),this.off("upgrading",u)};n.once("open",i),n.once("error",o),n.once("close",s),this.once("close",c),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let n=[];for(let r=0;r<e.length;r++)~this.transports.indexOf(e[r])&&n.push(e[r]);return n}},Vs=class extends ag{constructor(e,n={}){let r=typeof e=="object"?e:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>XS[i]).filter(i=>!!i)),super(e,r)}}});var M9=y(()=>{FS()});var Uwe,og=y(()=>{tE();tE();Jp();YS();Na();QS();Aa();M9();HS();ZS();JS();GS();KS();Uwe=Vs.protocol});function B9(t,e="",n){let r=t;n=n||typeof location<"u"&&location,t==null&&(t=n.protocol+"//"+n.host),typeof t=="string"&&(t.charAt(0)==="/"&&(t.charAt(1)==="/"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\/\//.test(t)||(L9("protocol-less url %s",t),typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),L9("parse %s",t),r=Zs(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";let a=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+e,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}var F9,L9,Z9=y(()=>{og();F9=se(Y(),1),L9=(0,F9.default)("socket.io-client:url")});function el(t){return cue&&(t instanceof ArrayBuffer||uue(t))||pue&&t instanceof Blob||lue&&t instanceof File}function Qp(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(Qp(t[n]))return!0;return!1}if(el(t))return!0;if(t.toJSON&&typeof t.toJSON=="function"&&arguments.length===1)return Qp(t.toJSON(),!0);for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&Qp(t[n]))return!0;return!1}var cue,uue,V9,pue,lue,nE=y(()=>{cue=typeof ArrayBuffer=="function",uue=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,V9=Object.prototype.toString,pue=typeof Blob=="function"||typeof Blob<"u"&&V9.call(Blob)==="[object BlobConstructor]",lue=typeof File=="function"||typeof File<"u"&&V9.call(File)==="[object FileConstructor]"});function H9(t){let e=[],n=t.data,r=t;return r.data=rE(n,e),r.attachments=e.length,{packet:r,buffers:e}}function rE(t,e){if(!t)return t;if(el(t)){let n={_placeholder:!0,num:e.length};return e.push(t),n}else if(Array.isArray(t)){let n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=rE(t[r],e);return n}else if(typeof t=="object"&&!(t instanceof Date)){let n={};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=rE(t[r],e));return n}return t}function W9(t,e){return t.data=iE(t.data,e),delete t.attachments,t}function iE(t,e){if(!t)return t;if(t&&t._placeholder===!0){if(typeof t.num=="number"&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]=iE(t[n],e);else if(typeof t=="object")for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=iE(t[n],e));return t}var G9=y(()=>{nE()});var uE={};Jr(uE,{Decoder:()=>sE,Encoder:()=>oE,PacketType:()=>K,isPacketValid:()=>vue,protocol:()=>Y9});function due(t){return typeof t=="string"}function fue(t){return t===void 0||mue(t)}function sg(t){return Object.prototype.toString.call(t)==="[object Object]"}function hue(t,e){switch(t){case K.CONNECT:return e===void 0||sg(e);case K.DISCONNECT:return e===void 0;case K.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&X9.indexOf(e[0])===-1);case K.ACK:return Array.isArray(e);case K.CONNECT_ERROR:return typeof e=="string"||sg(e);default:return!1}}function vue(t){return due(t.nsp)&&fue(t.id)&&hue(t.type,t.data)}var J9,K9,aE,X9,Y9,K,oE,sE,cE,mue,cg=y(()=>{J9=se(pi(),1);G9();nE();K9=se(Y(),1),aE=(0,K9.default)("socket.io-parser"),X9=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],Y9=5;(function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"})(K||(K={}));oE=class{constructor(e){this.replacer=e}encode(e){return aE("encoding packet %j",e),(e.type===K.EVENT||e.type===K.ACK)&&Qp(e)?this.encodeAsBinary({type:e.type===K.EVENT?K.BINARY_EVENT:K.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let n=""+e.type;return(e.type===K.BINARY_EVENT||e.type===K.BINARY_ACK)&&(n+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(n+=e.nsp+","),e.id!=null&&(n+=e.id),e.data!=null&&(n+=JSON.stringify(e.data,this.replacer)),aE("encoded %j as %s",e,n),n}encodeAsBinary(e){let n=H9(e),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}},sE=class t extends J9.Emitter{constructor(e){super(),this.reviver=e}add(e){let n;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(e);let r=n.type===K.BINARY_EVENT;r||n.type===K.BINARY_ACK?(n.type=r?K.EVENT:K.ACK,this.reconstructor=new cE(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(el(e)||e.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(e),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let n=0,r={type:Number(e.charAt(0))};if(K[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===K.BINARY_EVENT||r.type===K.BINARY_ACK){let a=n+1;for(;e.charAt(++n)!=="-"&&n!=e.length;);let o=e.substring(a,n);if(o!=Number(o)||e.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(e.charAt(n+1)==="/"){let a=n+1;for(;++n&&!(e.charAt(n)===","||n===e.length););r.nsp=e.substring(a,n)}else r.nsp="/";let i=e.charAt(n+1);if(i!==""&&Number(i)==i){let a=n+1;for(;++n;){let o=e.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===e.length)break}r.id=Number(e.substring(a,n+1))}if(e.charAt(++n)){let a=this.tryParse(e.substr(n));if(t.isPayloadValid(r.type,a))r.data=a;else throw new Error("invalid payload")}return aE("decoded %s as %j",e,r),r}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,n){switch(e){case K.CONNECT:return sg(n);case K.DISCONNECT:return n===void 0;case K.CONNECT_ERROR:return typeof n=="string"||sg(n);case K.EVENT:case K.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&X9.indexOf(n[0])===-1);case K.ACK:case K.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},cE=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let n=W9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};mue=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}});function on(t,e,n){return t.on(e,n),function(){t.off(e,n)}}var pE=y(()=>{});var Q9,eD,Ke,gue,Hs,lE=y(()=>{cg();pE();Q9=se(pi(),1),eD=se(Y(),1),Ke=(0,eD.default)("socket.io-client:socket"),gue=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Hs=class extends Q9.Emitter{constructor(e,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[on(e,"open",this.onopen.bind(this)),on(e,"packet",this.onpacket.bind(this)),on(e,"error",this.onerror.bind(this)),on(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...n){var r,i,a;if(gue.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;let o={type:K.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){let p=this.ids++;Ke("emitting packet with ack id %d",p);let l=n.pop();this._registerAckCallback(p,l),o.id=p}let s=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,c=this.connected&&!(!((a=this.io.engine)===null||a===void 0)&&a._hasPingExpired());return this.flags.volatile&&!s?Ke("discard packet as the transport is not currently writable"):c?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o),this.flags={},this}_registerAckCallback(e,n){var r;let i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[e]=n;return}let a=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let s=0;s<this.sendBuffer.length;s++)this.sendBuffer[s].id===e&&(Ke("removing packet with ack id %d from the buffer",e),this.sendBuffer.splice(s,1));Ke("event with ack id %d has timed out after %d ms",e,i),n.call(this,new Error("operation has timed out"))},i),o=(...s)=>{this.io.clearTimeoutFn(a),n.apply(this,s)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...n){return new Promise((r,i)=>{let a=(o,s)=>o?i(o):r(s);a.withError=!0,n.push(a),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());let r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...a)=>r!==this._queue[0]?Ke("packet [%d] already acknowledged",r.id):(i!==null?r.tryCount>this._opts.retries&&(Ke("packet [%d] is discarded after %d tries",r.id,r.tryCount),this._queue.shift(),n&&n(i)):(Ke("packet [%d] was successfully sent",r.id),this._queue.shift(),n&&n(null,...a)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(Ke("draining queue"),!this.connected||this._queue.length===0)return;let n=this._queue[0];if(n.pending&&!e){Ke("packet [%d] has already been sent and is waiting for an ack",n.id);return}n.pending=!0,n.tryCount++,Ke("sending packet [%d] (try n\xB0%d)",n.id,n.tryCount),this.flags=n.flags,this.emit.apply(this,n.args)}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){Ke("transport is open - connecting"),typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:K.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){Ke("close (%s)",e),this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(r=>String(r.id)===e)){let r=this.acks[e];delete this.acks[e],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case K.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case K.EVENT:case K.BINARY_EVENT:this.onevent(e);break;case K.ACK:case K.BINARY_ACK:this.onack(e);break;case K.DISCONNECT:this.ondisconnect();break;case K.CONNECT_ERROR:this.destroy();let r=new Error(e.data.message);r.data=e.data.data,this.emitReserved("connect_error",r);break}}onevent(e){let n=e.data||[];Ke("emitting event %j",n),e.id!=null&&(Ke("attaching ack callback to event"),n.push(this.ack(e.id))),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let n=this._anyListeners.slice();for(let r of n)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){let n=this,r=!1;return function(...i){r||(r=!0,Ke("sending ack %j",i),n.packet({type:K.ACK,id:e,data:i}))}}onack(e){let n=this.acks[e.id];if(typeof n!="function"){Ke("bad ack %s",e.id);return}delete this.acks[e.id],Ke("calling ack %s with %j",e.id,e.data),n.withError&&e.data.unshift(null),n.apply(this,e.data)}onconnect(e,n){Ke("socket connected with id %s",e),this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){Ke("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(Ke("performing disconnect (%s)",this.nsp),this.packet({type:K.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let n=this._anyListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let n=this._anyOutgoingListeners.slice();for(let r of n)r.apply(this,e.data)}}}});function Da(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}var tD=y(()=>{Da.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=(Math.floor(e*10)&1)==0?t-n:t+n}return Math.min(t,this.max)|0};Da.prototype.reset=function(){this.attempts=0};Da.prototype.setMin=function(t){this.ms=t};Da.prototype.setMax=function(t){this.max=t};Da.prototype.setJitter=function(t){this.jitter=t}});var nD,rD,ht,Ws,iD=y(()=>{og();lE();cg();pE();tD();nD=se(pi(),1),rD=se(Y(),1),ht=(0,rD.default)("socket.io-client:manager"),Ws=class extends nD.Emitter{constructor(e,n){var r;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Zr(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Da({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;let i=n.parser||uE;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(ht("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;ht("opening %s",this.uri),this.engine=new Vs(this.uri,this.opts);let n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;let i=on(n,"open",function(){r.onopen(),e&&e()}),a=s=>{ht("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",s),e?e(s):this.maybeReconnectOnOpen()},o=on(n,"error",a);if(this._timeout!==!1){let s=this._timeout;ht("connect attempt will timeout after %d",s);let c=this.setTimeoutFn(()=>{ht("connect attempt timed out after %d",s),i(),a(new Error("timeout")),n.close()},s);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){ht("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let e=this.engine;this.subs.push(on(e,"ping",this.onping.bind(this)),on(e,"data",this.ondata.bind(this)),on(e,"error",this.onerror.bind(this)),on(e,"close",this.onclose.bind(this)),on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){Br(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){ht("error",e),this.emitReserved("error",e)}socket(e,n){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new Hs(this,e,n),this.nsps[e]=r),r}_destroy(e){let n=Object.keys(this.nsps);for(let r of n)if(this.nsps[r].active){ht("socket %s is still active, skipping close",r);return}this._close()}_packet(e){ht("writing packet %j",e);let n=this.encoder.encode(e);for(let r=0;r<n.length;r++)this.engine.write(n[r],e.options)}cleanup(){ht("cleanup"),this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){ht("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,n){var r;ht("closed due to %s",e),this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)ht("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let n=this.backoff.duration();ht("will wait %dms before reconnect attempt",n),this._reconnecting=!0;let r=this.setTimeoutFn(()=>{e.skipReconnect||(ht("attempting reconnect"),this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(ht("reconnect attempt error"),e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):(ht("reconnect success"),e.onreconnect())}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}});function nl(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};let n=B9(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,o=tl[i]&&a in tl[i].nsps,s=e.forceNew||e["force new connection"]||e.multiplex===!1||o,c;return s?(aD("ignoring socket cache for %s",r),c=new Ws(r,e)):(tl[i]||(aD("new io instance for %s",r),tl[i]=new Ws(r,e)),c=tl[i]),n.query&&!e.query&&(e.query=n.queryKey),c.socket(n.path,e)}var oD,aD,tl,sD=y(()=>{Z9();iD();lE();oD=se(Y(),1);cg();og();aD=(0,oD.default)("socket.io-client"),tl={};Object.assign(nl,{Manager:Ws,Socket:Hs,io:nl,connect:nl})});var kue={};function xue(){let t=process.argv.slice(2),e=process.env.AI_ANNOTATOR_SERVER;for(let n=0;n<t.length;n++){let r=t[n];(r==="--server"||r==="-s")&&t[n+1]&&(e=t[n+1],n++)}return e||(console.error("Error: --server <url> is required"),console.error(""),console.error("Usage: vite-plugin-ai-annotator mcp --server <url>"),console.error(""),console.error("Example:"),console.error(" vite-plugin-ai-annotator mcp --server http://localhost:7318"),process.exit(1)),{serverUrl:e}}function bue(){let t=dE.join(cD.tmpdir(),"ai-annotator-screenshots");return Gs.existsSync(t)||Gs.mkdirSync(t,{recursive:!0}),t}function yue(t,e){let n=bue(),i=`screenshot-${Date.now()}.${e}`,a=dE.join(n,i),o=Buffer.from(t,"base64");return Gs.writeFileSync(a,o),a}function _ue(t){return new Promise((e,n)=>{let r=nl(t,{transports:["websocket"],reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,query:{clientType:"mcp"}}),i=setTimeout(()=>{r.disconnect(),n(new Error(`Connection timeout to ${t}`))},1e4);r.on("connect",()=>{clearTimeout(i),e(r)}),r.on("connect_error",a=>{clearTimeout(i),n(new Error(`Failed to connect: ${a.message}`))})})}function Wr(t,e,n=[],r=15e3){return new Promise((i,a)=>{let o=setTimeout(()=>{a(new Error(`Timeout calling ${e}`))},r);t.emit(e,...n,s=>{clearTimeout(o),s.success?i(s.data):a(new Error(s.error||"Unknown error"))})})}async function wue(){let{serverUrl:t}=xue(),e;try{e=await _ue(t)}catch{console.error(`Failed to connect to AI Annotator server at ${t}`),console.error("Make sure the server is running: bunx vite-plugin-ai-annotator"),console.error("Or specify a different server: --server http://localhost:PORT"),process.exit(1)}let n=new As({name:"ai-annotator",version:"1.0.0"}),r=o=>({content:[{type:"text",text:o}]}),i=Pe.string().optional().describe("Browser session ID (optional if only one session)");n.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{try{let o=await Wr(e,"mcp:listSessions");return r(o.length>0?JSON.stringify(o,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}catch(o){return r(`Error: ${o instanceof Error?o.message:String(o)}`)}}),n.tool("annotator_get_page_context","Get current page context from browser session (URL, title, selection count)",{sessionId:i},async({sessionId:o})=>{try{let s=await Wr(e,"mcp:getPageContext",[o]);return r(JSON.stringify(s,null,2))}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_select_element","Enter element inspection mode or select element by CSS/XPath selector",{sessionId:i,mode:Pe.enum(["inspect","selector"]).default("inspect").describe("Selection mode"),selector:Pe.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:Pe.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:o,mode:s,selector:c,selectorType:u})=>{try{let p=await Wr(e,"mcp:triggerSelection",[o,s,c,u]);return r(p.success?`Selection triggered. ${p.count} element(s) selected.`:`Selection failed: ${p.error}`)}catch(p){return r(`Error: ${p instanceof Error?p.message:String(p)}`)}}),n.tool("annotator_get_selected_elements","Get data about currently selected elements in the browser",{sessionId:i},async({sessionId:o})=>{try{let s=await Wr(e,"mcp:getSelectedElements",[o]);return r(s.length>0?JSON.stringify(s,null,2):"No elements selected. Use annotator_select_element first.")}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path.",{sessionId:i,type:Pe.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:Pe.string().optional().describe("CSS selector for element screenshot"),format:Pe.enum(["png","jpeg"]).default("png").describe("Image format"),quality:Pe.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:o,type:s,selector:c,format:u,quality:p})=>{try{let l=await Wr(e,"mcp:captureScreenshot",[o,s,c,u,p],3e4);if(l.success&&l.base64){let d=yue(l.base64,u);return r(d)}return r(`Screenshot failed: ${l.error}`)}catch(l){return r(`Error: ${l instanceof Error?l.message:String(l)}`)}}),n.tool("annotator_clear_selection","Clear all selected elements in the browser",{sessionId:i},async({sessionId:o})=>{try{return await Wr(e,"mcp:clearSelection",[o]),r("Selection cleared.")}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:i,css:Pe.string().describe("CSS code to inject into the page")},async({sessionId:o,css:s})=>{try{let c=await Wr(e,"mcp:injectCSS",[o,s]);return r(c.success?"CSS injected successfully.":`CSS injection failed: ${c.error}`)}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}}),n.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:i,code:Pe.string().describe("JavaScript code to execute in the page")},async({sessionId:o,code:s})=>{try{let c=await Wr(e,"mcp:injectJS",[o,s]);return c.success?r(c.result!==void 0?`Result: ${JSON.stringify(c.result,null,2)}`:"JavaScript executed successfully (no return value)."):r(`JavaScript execution failed: ${c.error}`)}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}}),n.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:i,clear:Pe.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:o,clear:s})=>{try{let c=await Wr(e,"mcp:getConsole",[o,s]);return r(c.length>0?JSON.stringify(c,null,2):"No console logs captured.")}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}});let a=new Kv;await n.connect(a),process.on("SIGINT",()=>{e.disconnect(),process.exit(0)}),process.on("SIGTERM",()=>{e.disconnect(),process.exit(0)})}var Gs,cD,dE,uD=y(()=>{"use strict";jS();s9();sD();Lv();Gs=se(require("node:fs"),1),cD=se(require("node:os"),1),dE=se(require("node:path"),1);wue().catch(t=>{console.error("MCP CLI error:",t),process.exit(1)})});var qi=se(require("node:fs"),1),t9=se(require("node:os"),1),Gv=se(require("node:path"),1),n9=se(require("cors"),1),CS=se(QO(),1);var IR=se(OR(),1),{Server:zR,Namespace:yme,Socket:_me}=IR.default;jS();var Zq=require("http2"),Fv=require("http2"),PS=require("stream"),Jq=se(require("crypto"),1),Ra=class extends Error{constructor(t,e){super(t,e),this.name="RequestError"}},mce=t=>t instanceof Ra?t:new Ra(t.message,{cause:t}),fce=global.Request,Fp=class extends fce{constructor(t,e){typeof t=="object"&&Ds in t&&(t=t[Ds]()),typeof e?.body?.getReader<"u"&&(e.duplex??="half"),super(t,e)}},hce=t=>{let e=[],n=t.rawHeaders;for(let r=0;r<n.length;r+=2){let{[r]:i,[r+1]:a}=n;i.charCodeAt(0)!==58&&e.push([i,a])}return new Headers(e)},Vq=Symbol("wrapBodyStream"),vce=(t,e,n,r,i)=>{let a={method:t,headers:n,signal:i.signal};if(t==="TRACE"){a.method="GET";let o=new Fp(e,a);return Object.defineProperty(o,"method",{get(){return"TRACE"}}),o}if(!(t==="GET"||t==="HEAD"))if("rawBody"in r&&r.rawBody instanceof Buffer)a.body=new ReadableStream({start(o){o.enqueue(r.rawBody),o.close()}});else if(r[Vq]){let o;a.body=new ReadableStream({async pull(s){try{o||=PS.Readable.toWeb(r).getReader();let{done:c,value:u}=await o.read();c?s.close():s.enqueue(u)}catch(c){s.error(c)}}})}else a.body=PS.Readable.toWeb(r);return new Fp(e,a)},Ds=Symbol("getRequestCache"),gce=Symbol("requestCache"),Bv=Symbol("incomingKey"),Zv=Symbol("urlKey"),xce=Symbol("headersKey"),qs=Symbol("abortControllerKey"),bce=Symbol("getAbortController"),Vv={get method(){return this[Bv].method||"GET"},get url(){return this[Zv]},get headers(){return this[xce]||=hce(this[Bv])},[bce](){return this[Ds](),this[qs]},[Ds](){return this[qs]||=new AbortController,this[gce]||=vce(this.method,this[Zv],this.headers,this[Bv],this[qs])}};["body","bodyUsed","cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","signal","keepalive"].forEach(t=>{Object.defineProperty(Vv,t,{get(){return this[Ds]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Vv,t,{value:function(){return this[Ds]()[t]()}})});Object.setPrototypeOf(Vv,Fp.prototype);var yce=(t,e)=>{let n=Object.create(Vv);n[Bv]=t;let r=t.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(t instanceof Fv.Http2ServerRequest)throw new Ra("Absolute URL for :path is not allowed in HTTP/2");try{let s=new URL(r);n[Zv]=s.href}catch(s){throw new Ra("Invalid absolute URL",{cause:s})}return n}let i=(t instanceof Fv.Http2ServerRequest?t.authority:t.headers.host)||e;if(!i)throw new Ra("Missing host header");let a;if(t instanceof Fv.Http2ServerRequest){if(a=t.scheme,!(a==="http"||a==="https"))throw new Ra("Unsupported scheme")}else a=t.socket&&t.socket.encrypted?"https":"http";let o=new URL(`${a}://${i}${r}`);if(o.hostname.length!==i.length&&o.hostname!==i.replace(/:\d+$/,""))throw new Ra("Invalid host header");return n[Zv]=o.href,n},Bq=Symbol("responseCache"),Ns=Symbol("getResponseCache"),Ca=Symbol("cache"),IS=global.Response,Bp=class Hq{#t;#e;[Ns](){return delete this[Ca],this[Bq]||=new IS(this.#t,this.#e)}constructor(e,n){let r;if(this.#t=e,n instanceof Hq){let i=n[Bq];if(i){this.#e=i,this[Ns]();return}else this.#e=n.#e,r=new Headers(n.#e.headers)}else this.#e=n;(typeof e=="string"||typeof e?.getReader<"u"||e instanceof Blob||e instanceof Uint8Array)&&(r||=n?.headers||{"content-type":"text/plain; charset=UTF-8"},this[Ca]=[n?.status||200,e,r])}get headers(){let e=this[Ca];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2])),e[2]):this[Ns]().headers}get status(){return this[Ca]?.[0]??this[Ns]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(t=>{Object.defineProperty(Bp.prototype,t,{get(){return this[Ns]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Bp.prototype,t,{value:function(){return this[Ns]()[t]()}})});Object.setPrototypeOf(Bp,IS);Object.setPrototypeOf(Bp.prototype,IS.prototype);async function _ce(t){return Promise.race([t,Promise.resolve().then(()=>Promise.resolve(void 0))])}function Wq(t,e,n){let r=s=>{t.cancel(s).catch(()=>{})};return e.on("close",r),e.on("error",r),(n??t.read()).then(o,i),t.closed.finally(()=>{e.off("close",r),e.off("error",r)});function i(s){s&&e.destroy(s)}function a(){t.read().then(o,i)}function o({done:s,value:c}){try{if(s)e.end();else if(!e.write(c))e.once("drain",a);else return t.read().then(o,i)}catch(u){i(u)}}}function wce(t,e){if(t.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:Wq(t.getReader(),e)}var Gq=t=>{let e={};t instanceof Headers||(t=new Headers(t??void 0));let n=[];for(let[r,i]of t)r==="set-cookie"?n.push(i):e[r]=i;return n.length>0&&(e["set-cookie"]=n),e["content-type"]??="text/plain; charset=UTF-8",e},kce="x-hono-already-sent";typeof global.crypto>"u"&&(global.crypto=Jq.default);var zS=Symbol("outgoingEnded"),Sce=()=>new Response(null,{status:400}),Kq=t=>new Response(null,{status:t instanceof Error&&(t.name==="TimeoutError"||t.constructor.name==="TimeoutError")?504:500}),OS=(t,e)=>{let n=t instanceof Error?t:new Error("unknown error",{cause:t});n.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(t),e.headersSent||e.writeHead(500,{"Content-Type":"text/plain"}),e.end(`Error: ${n.message}`),e.destroy(n))},Xq=t=>{"flushHeaders"in t&&t.writable&&t.flushHeaders()},Yq=async(t,e)=>{let[n,r,i]=t[Ca];i instanceof Headers&&(i=Gq(i)),typeof r=="string"?i["Content-Length"]=Buffer.byteLength(r):r instanceof Uint8Array?i["Content-Length"]=r.byteLength:r instanceof Blob&&(i["Content-Length"]=r.size),e.writeHead(n,i),typeof r=="string"||r instanceof Uint8Array?e.end(r):r instanceof Blob?e.end(new Uint8Array(await r.arrayBuffer())):(Xq(e),await wce(r,e)?.catch(a=>OS(a,e))),e[zS]?.()},Ece=t=>typeof t.then=="function",$ce=async(t,e,n={})=>{if(Ece(t))if(n.errorHandler)try{t=await t}catch(i){let a=await n.errorHandler(i);if(!a)return;t=a}else t=await t.catch(Kq);if(Ca in t)return Yq(t,e);let r=Gq(t.headers);if(t.body){let i=t.body.getReader(),a=[],o=!1,s;if(r["transfer-encoding"]!=="chunked"){let c=2;for(let u=0;u<c;u++){s||=i.read();let p=await _ce(s).catch(l=>{console.error(l),o=!0});if(!p){if(u===1){await new Promise(l=>setTimeout(l)),c=3;continue}break}if(s=void 0,p.value&&a.push(p.value),p.done){o=!0;break}}o&&!("content-length"in r)&&(r["content-length"]=a.reduce((u,p)=>u+p.length,0))}e.writeHead(t.status,r),a.forEach(c=>{e.write(c)}),o?e.end():(a.length===0&&Xq(e),await Wq(i,e,s))}else r[kce]||(e.writeHead(t.status,r),e.end());e[zS]?.()},RS=(t,e={})=>{let n=e.autoCleanupIncoming??!0;return e.overrideGlobalObjects!==!1&&global.Request!==Fp&&(Object.defineProperty(global,"Request",{value:Fp}),Object.defineProperty(global,"Response",{value:Bp})),async(r,i)=>{let a,o;try{o=yce(r,e.hostname);let s=!n||r.method==="GET"||r.method==="HEAD";if(s||(r[Vq]=!0,r.on("end",()=>{s=!0}),r instanceof Zq.Http2ServerRequest&&(i[zS]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{r.destroy(),i.destroy()})})})),i.on("close",()=>{o[qs]&&(r.errored?o[qs].abort(r.errored.toString()):i.writableFinished||o[qs].abort("Client connection prematurely closed.")),s||setTimeout(()=>{s||setTimeout(()=>{r.destroy()})})}),a=t(o,{incoming:r,outgoing:i}),Ca in a)return Yq(a,i)}catch(s){if(a)return OS(s,i);if(e.errorHandler){if(a=await e.errorHandler(o?s:mce(s)),!a)return}else o?a=Kq(s):a=Sce()}try{return await $ce(a,i,e)}catch(s){return OS(s,i)}}};xs();var Hv=class{constructor(e={}){this._started=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval}async start(){if(this._started)throw new Error("Transport already started");this._started=!0}createJsonErrorResponse(e,n,r,i){let a={code:n,message:r};return i?.data!==void 0&&(a.data=i.data),new Response(JSON.stringify({jsonrpc:"2.0",error:a,id:null}),{status:e,headers:{"Content-Type":"application/json",...i?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let n=e.headers.get("host");if(!n||!this._allowedHosts.includes(n)){let r=`Invalid Host header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let n=e.headers.get("origin");if(n&&!this._allowedOrigins.includes(n)){let r=`Invalid Origin header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}}}async handleRequest(e,n){let r=this.validateRequestHeaders(e);if(r)return r;switch(e.method){case"POST":return this.handlePostRequest(e,n);case"GET":return this.handleGetRequest(e);case"DELETE":return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,n,r,i){if(!this._eventStore||i<"2025-11-25")return;let a=await this._eventStore.storeEvent(r,{}),o=`id: ${a}
98
+ `);return x.substr(0,x.length-2)},this.getRequestHeader=function(x){return typeof x=="string"&&u[x]?u[x]:""},this.send=function(x){if(this.readyState!=this.OPENED)throw new Error("INVALID_STATE_ERR: connection must be opened before send() is called");if(d)throw new Error("INVALID_STATE_ERR: send has already been called");var S=!1,O=!1,L=c9.parse(o.url),X;switch(L.protocol){case"https:":S=!0;case"http:":X=L.hostname;break;case"file:":O=!0;break;case void 0:case"":X="localhost";break;default:throw new Error("Protocol not supported.")}if(O){if(o.method!=="GET")throw new Error("XMLHttpRequest: Only GET method is supported");if(o.async)Us.readFile(unescape(L.pathname),function($t,Ui){$t?e.handleError($t,$t.errno||-1):(e.status=200,e.responseText=Ui.toString("utf8"),e.response=Ui,w(e.DONE))});else try{this.response=Us.readFileSync(unescape(L.pathname)),this.responseText=this.response.toString("utf8"),this.status=200,w(e.DONE)}catch($t){this.handleError($t,$t.errno||-1)}return}var We=L.port||(S?443:80),Ee=L.pathname+(L.search?L.search:"");if(u.Host=X,S&&We===443||We===80||(u.Host+=":"+L.port),o.user){typeof o.password>"u"&&(o.password="");var Le=new Buffer(o.user+":"+o.password);u.Authorization="Basic "+Le.toString("base64")}if(o.method==="GET"||o.method==="HEAD")x=null;else if(x){u["Content-Length"]=Buffer.isBuffer(x)?x.length:Buffer.byteLength(x);var Jn=Object.keys(u);Jn.some(function($t){return $t.toLowerCase()==="content-type"})||(u["Content-Type"]="text/plain;charset=UTF-8")}else o.method==="POST"&&(u["Content-Length"]=0);var Tn=t.agent||!1,Oe={host:X,port:We,path:Ee,method:o.method,headers:u,agent:Tn};if(S&&(Oe.pfx=t.pfx,Oe.key=t.key,Oe.passphrase=t.passphrase,Oe.cert=t.cert,Oe.ca=t.ca,Oe.ciphers=t.ciphers,Oe.rejectUnauthorized=t.rejectUnauthorized!==!1),f=!1,o.async){var Nt=S?r.request:n.request;d=!0,e.dispatchEvent("readystatechange");var Ht=function($t){if(a=$t,a.statusCode===302||a.statusCode===303||a.statusCode===307){o.url=a.headers.location;var Ui=c9.parse(o.url);X=Ui.hostname;var Gr={hostname:Ui.hostname,port:Ui.port,path:Ui.path,method:a.statusCode===303?"GET":o.method,headers:u};S&&(Gr.pfx=t.pfx,Gr.key=t.key,Gr.passphrase=t.passphrase,Gr.cert=t.cert,Gr.ca=t.ca,Gr.ciphers=t.ciphers,Gr.rejectUnauthorized=t.rejectUnauthorized!==!1),i=Nt(Gr,Ht).on("error",fr),i.end();return}w(e.HEADERS_RECEIVED),e.status=a.statusCode,a.on("data",function(il){if(il){var dD=Buffer.from(il);e.response=Buffer.concat([e.response,dD])}d&&w(e.LOADING)}),a.on("end",function(){d&&(d=!1,w(e.DONE),e.responseText=e.response.toString("utf8"))}),a.on("error",function(il){e.handleError(il)})},fr=function($t){if(i.reusedSocket&&$t.code==="ECONNRESET")return Nt(Oe,Ht).on("error",fr);e.handleError($t)};i=Nt(Oe,Ht).on("error",fr),t.autoUnref&&i.on("socket",$t=>{$t.unref()}),x&&i.write(x),i.end(),e.dispatchEvent("loadstart")}else{var hr=".node-xmlhttprequest-content-"+process.pid,Di=".node-xmlhttprequest-sync-"+process.pid;Us.writeFileSync(Di,"","utf8");for(var rl="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(S?"s":"")+".request;var options = "+JSON.stringify(Oe)+";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('"+hr+"', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('"+Di+"');});response.on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Di+"');});}).on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Di+"');});"+(x?"req.write('"+JSON.stringify(x).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",Js=Dce(process.argv[0],["-e",rl]),Pue;Us.existsSync(Di););if(e.responseText=Us.readFileSync(hr,"utf8"),Js.stdin.end(),Us.unlinkSync(hr),e.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var lD=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));e.handleError(lD,503)}else{e.status=e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var lg=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));a={statusCode:e.status,headers:lg.data.headers},e.responseText=lg.data.text,e.response=Buffer.from(lg.data.data,"base64"),w(e.DONE,!0)}}},this.handleError=function(x,S){this.status=S||0,this.statusText=x,this.responseText=x.stack,f=!0,w(this.DONE)},this.abort=function(){i&&(i.abort(),i=null),u=Object.assign({},c),this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),f=m=!0,this.readyState!==this.UNSENT&&(this.readyState!==this.OPENED||d)&&this.readyState!==this.DONE&&(d=!1,w(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(x,S){x in h||(h[x]=[]),h[x].push(S)},this.removeEventListener=function(x,S){x in h&&(h[x]=h[x].filter(function(O){return O!==S}))},this.dispatchEvent=function(x){if(typeof e["on"+x]=="function"&&(this.readyState===this.DONE&&o.async?setTimeout(function(){e["on"+x]()},0):e["on"+x]()),x in h)for(let S=0,O=h[x].length;S<O;S++)this.readyState===this.DONE?setTimeout(function(){h[x][S].call(e)},0):h[x][S].call(e)};var w=function(x){if(!(e.readyState===x||e.readyState===e.UNSENT&&m)&&(e.readyState=x,(o.async||e.readyState<e.OPENED||e.readyState===e.DONE)&&e.dispatchEvent("readystatechange"),e.readyState===e.DONE)){let S;m?S="abort":f?S="error":S="load",e.dispatchEvent(S),e.dispatchEvent("loadend")}}}});var Wn,Vp,Hp,Xv=y(()=>{Wn=Object.create(null);Wn.open="0";Wn.close="1";Wn.ping="2";Wn.pong="3";Wn.message="4";Wn.upgrade="5";Wn.noop="6";Vp=Object.create(null);Object.keys(Wn).forEach(t=>{Vp[Wn[t]]=t});Hp={type:"error",data:"parser error"}});function d9(t,e){if(t.data instanceof ArrayBuffer||ArrayBuffer.isView(t.data))return e(l9(t.data,!1));Wp(t,!0,n=>{qS||(qS=new TextEncoder),e(qS.encode(n))})}var Wp,l9,qS,m9=y(()=>{Xv();Wp=({type:t,data:e},n,r)=>e instanceof ArrayBuffer||ArrayBuffer.isView(e)?r(n?e:"b"+l9(e,!0).toString("base64")):r(Wn[t]+(e||"")),l9=(t,e)=>Buffer.isBuffer(t)||t instanceof Uint8Array&&!e?t:t instanceof ArrayBuffer?Buffer.from(t):Buffer.from(t.buffer,t.byteOffset,t.byteLength)});var Gp,f9,h9=y(()=>{Xv();Gp=(t,e)=>{if(typeof t!="string")return{type:"message",data:f9(t,e)};let n=t.charAt(0);if(n==="b"){let r=Buffer.from(t.substring(1),"base64");return{type:"message",data:f9(r,e)}}return Vp[n]?t.length>1?{type:Vp[n],data:t.substring(1)}:{type:Vp[n]}:Hp},f9=(t,e)=>{switch(e){case"arraybuffer":return t instanceof ArrayBuffer?t:Buffer.isBuffer(t)?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):t.buffer;case"nodebuffer":default:return Buffer.isBuffer(t)?t:Buffer.from(t)}}});function b9(){return new TransformStream({transform(t,e){d9(t,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let a=new DataView(i.buffer);a.setUint8(0,126),a.setUint16(1,r)}else{i=new Uint8Array(9);let a=new DataView(i.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(r))}t.data&&typeof t.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(n)})}})}function Yv(t){return t.reduce((e,n)=>e+n.length,0)}function Qv(t,e){if(t[0].length===e)return t.shift();let n=new Uint8Array(e),r=0;for(let i=0;i<e;i++)n[i]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),n}function y9(t,e){DS||(DS=new TextDecoder);let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(Yv(n)<1)break;let c=Qv(n,1);a=(c[0]&128)===128,i=c[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(Yv(n)<2)break;let c=Qv(n,2);i=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(Yv(n)<8)break;let c=Qv(n,8),u=new DataView(c.buffer,c.byteOffset,c.length),p=u.getUint32(0);if(p>Math.pow(2,21)-1){s.enqueue(Hp);break}i=p*Math.pow(2,32)+u.getUint32(4),r=3}else{if(Yv(n)<i)break;let c=Qv(n,i);s.enqueue(Gp(a?c:DS.decode(c),e)),r=0}if(i===0||i>t){s.enqueue(Hp);break}}}})}var v9,g9,x9,DS,US,Ms=y(()=>{m9();h9();Xv();v9="",g9=(t,e)=>{let n=t.length,r=new Array(n),i=0;t.forEach((a,o)=>{Wp(a,!1,s=>{r[o]=s,++i===n&&e(r.join(v9))})})},x9=(t,e)=>{let n=t.split(v9),r=[];for(let i=0;i<n.length;i++){let a=Gp(n[i],e);if(r.push(a),a.type==="error")break}return r};US=4});function w9(){return new MS}function Uce(t){let e=t.split("; "),n=e[0].indexOf("=");if(n===-1)return;let r=e[0].substring(0,n).trim();if(!r.length)return;let i=e[0].substring(n+1).trim();i.charCodeAt(0)===34&&(i=i.slice(1,-1));let a={name:r,value:i};for(let o=1;o<e.length;o++){let s=e[o].split("=");if(s.length!==2)continue;let c=s[0].trim(),u=s[1].trim();switch(c){case"Expires":a.expires=new Date(u);break;case"Max-Age":let p=new Date;p.setUTCSeconds(p.getUTCSeconds()+parseInt(u,10)),a.expires=p;break;default:}}return a}var Br,At,_9,MS,Aa=y(()=>{Br=process.nextTick,At=global,_9="nodebuffer";MS=class{constructor(){this._cookies=new Map}parseCookies(e){e&&e.forEach(n=>{let r=Uce(n);r&&this._cookies.set(r.name,r)})}get cookies(){let e=Date.now();return this._cookies.forEach((n,r)=>{var i;((i=n.expires)===null||i===void 0?void 0:i.getTime())<e&&this._cookies.delete(r)}),this._cookies.entries()}addCookies(e){let n=[];for(let[r,i]of this.cookies)n.push(`${r}=${i.value}`);n.length&&(e.setDisableHeaderCheck(!0),e.setRequestHeader("cookie",n.join("; ")))}appendCookies(e){for(let[n,r]of this.cookies)e.append("cookie",`${n}=${r.value}`)}}});function eg(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}function Zr(t,e){e.useNativeTimers?(t.setTimeoutFn=Mce.bind(At),t.clearTimeoutFn=Lce.bind(At)):(t.setTimeoutFn=At.setTimeout.bind(At),t.clearTimeoutFn=At.clearTimeout.bind(At))}function k9(t){return typeof t=="string"?Bce(t):Math.ceil((t.byteLength||t.size)*Fce)}function Bce(t){let e=0,n=0;for(let r=0,i=t.length;r<i;r++)e=t.charCodeAt(r),e<128?n+=1:e<2048?n+=2:e<55296||e>=57344?n+=3:(r++,n+=4);return n}function tg(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var Mce,Lce,Fce,Na=y(()=>{Aa();Mce=At.setTimeout,Lce=At.clearTimeout;Fce=1.33});function S9(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function E9(t){let e={},n=t.split("&");for(let r=0,i=n.length;r<i;r++){let a=n[r].split("=");e[decodeURIComponent(a[0])]=decodeURIComponent(a[1])}return e}var LS=y(()=>{});var $9,T9,Zce,ng,Vr,Jp=y(()=>{Ms();$9=se(pi(),1);Na();LS();T9=se(Y(),1),Zce=(0,T9.default)("engine.io-client:transport"),ng=class extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}},Vr=class extends $9.Emitter{constructor(e){super(),this.writable=!1,Zr(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,n,r){return super.emitReserved("error",new ng(e,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"?this.write(e):Zce("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){let n=Gp(e,this.socket.binaryType);this.onPacket(n)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,n={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){let e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){let n=S9(e);return n.length?"?"+n:""}}});var j9,Gn,Kp,FS=y(()=>{Jp();Na();Ms();j9=se(Y(),1),Gn=(0,j9.default)("engine.io-client:polling"),Kp=class extends Vr{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";let n=()=>{Gn("paused"),this.readyState="paused",e()};if(this._polling||!this.writable){let r=0;this._polling&&(Gn("we are currently polling - waiting to pause"),r++,this.once("pollComplete",function(){Gn("pre-pause polling complete"),--r||n()})),this.writable||(Gn("we are currently writing - waiting to pause"),r++,this.once("drain",function(){Gn("pre-pause writing complete"),--r||n()}))}else n()}_poll(){Gn("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){Gn("polling got data %s",e);let n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};x9(e,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"?this._poll():Gn('ignoring poll - transport state "%s"',this.readyState))}doClose(){let e=()=>{Gn("writing close packet"),this.write([{type:"close"}])};this.readyState==="open"?(Gn("transport open - closing"),e()):(Gn("transport not open - deferring close"),this.once("open",e))}write(e){this.writable=!1,g9(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let e=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=tg()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}});var P9,O9,I9=y(()=>{P9=!1;try{P9=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}O9=P9});function Vce(){}function z9(){for(let t in Hr.requests)Hr.requests.hasOwnProperty(t)&&Hr.requests[t].abort()}function Hce(t){let e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||O9))return new XMLHttpRequest}catch{}if(!e)try{return new At[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var R9,C9,BS,rg,Hr,cwe,ZS=y(()=>{FS();R9=se(pi(),1);Na();Aa();I9();C9=se(Y(),1),BS=(0,C9.default)("engine.io-client:polling");rg=class extends Kp{constructor(e){if(super(e),typeof location<"u"){let n=location.protocol==="https:",r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||r!==e.port}}doWrite(e,n){let r=this.request({method:"POST",data:e});r.on("success",n),r.on("error",(i,a)=>{this.onError("xhr post error",i,a)})}doPoll(){BS("xhr poll");let e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=e}},Hr=class t extends R9.Emitter{constructor(e,n,r){super(),this.createRequest=e,Zr(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var e;let n=eg(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{BS("xhr open %s: %s",this._method,this._uri),r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&r.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var i;r.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},BS("xhr data %s",this._data),r.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=t.requestsCount++,t.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Vce,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete t.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Hr.requestsCount=0;Hr.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",z9);else if(typeof addEventListener=="function"){let t="onpagehide"in At?"pagehide":"unload";addEventListener(t,z9,!1)}}cwe=(function(){let t=Hce({xdomain:!1});return t&&t.responseType!==null})()});var VS,Wce,Ls,HS=y(()=>{VS=se(p9(),1);ZS();Wce=VS.default||VS,Ls=class extends rg{request(e={}){var n;return Object.assign(e,{xd:this.xd,cookieJar:(n=this.socket)===null||n===void 0?void 0:n._cookieJar},this.opts),new Hr(r=>new Wce(r),this.uri(),e)}}});var Gce,Jce,Kce,WS,Xce,A9=y(()=>{Gce=se(by(),1),Jce=se(Pd(),1),Kce=se(Id(),1),WS=se(Tc(),1),Xce=se(_y(),1)});var N9,Qce,eue,ig,vwe,GS=y(()=>{Jp();Na();Ms();Aa();N9=se(Y(),1),Qce=(0,N9.default)("engine.io-client:websocket"),eue=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",ig=class extends Vr{get name(){return"websocket"}doOpen(){let e=this.uri(),n=this.opts.protocols,r=eue?{}:eg(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,n,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],i=n===e.length-1;Wp(r,this.supportsBinary,a=>{try{this.doWrite(r,a)}catch{Qce("websocket closed before onclose event")}i&&Br(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=tg()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}},vwe=At.WebSocket||At.MozWebSocket});var Fs,JS=y(()=>{A9();GS();Fs=class extends ig{createSocket(e,n,r){var i;if(!((i=this.socket)===null||i===void 0)&&i._cookieJar){r.headers=r.headers||{},r.headers.cookie=typeof r.headers.cookie=="string"?[r.headers.cookie]:r.headers.cookie||[];for(let[a,o]of this.socket._cookieJar.cookies)r.headers.cookie.push(`${a}=${o.value}`)}return new WS.default(e,n,r)}doWrite(e,n){let r={};e.options&&(r.compress=e.options.compress),this.opts.perMessageDeflate&&(typeof n=="string"?Buffer.byteLength(n):n.length)<this.opts.perMessageDeflate.threshold&&(r.compress=!1),this.ws.send(n,r)}}});var q9,Xp,Bs,KS=y(()=>{Jp();Aa();Ms();q9=se(Y(),1),Xp=(0,q9.default)("engine.io-client:webtransport"),Bs=class extends Vr{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{Xp("transport closed gracefully"),this.onClose()}).catch(e=>{Xp("transport closed due to %s",e),this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let n=y9(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),i=b9();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();let a=()=>{r.read().then(({done:s,value:c})=>{if(s){Xp("session is closed");return}Xp("received chunk: %o",c),this.onPacket(c),a()}).catch(s=>{Xp("an error occurred while reading: %s",s)})};a();let o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],i=n===e.length-1;this._writer.write(r).then(()=>{i&&Br(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}});var XS,YS=y(()=>{HS();JS();KS();XS={websocket:Fs,webtransport:Bs,polling:Ls}});function Zs(t){if(t.length>8e3)throw"URI too long";let e=t,n=t.indexOf("["),r=t.indexOf("]");n!=-1&&r!=-1&&(t=t.substring(0,n)+t.substring(n,r).replace(/:/g,";")+t.substring(r,t.length));let i=tue.exec(t||""),a={},o=14;for(;o--;)a[nue[o]]=i[o]||"";return n!=-1&&r!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=rue(a,a.path),a.queryKey=iue(a,a.query),a}function rue(t,e){let n=/\/{2,9}/g,r=e.replace(n,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&r.splice(0,1),e.slice(-1)=="/"&&r.splice(r.length-1,1),r}function iue(t,e){let n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}var tue,nue,QS=y(()=>{tue=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,nue=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"]});var D9,U9,Se,eE,Yp,qa,ag,Vs,tE=y(()=>{YS();Na();LS();QS();D9=se(pi(),1);Ms();Aa();U9=se(Y(),1),Se=(0,U9.default)("engine.io-client:socket"),eE=typeof addEventListener=="function"&&typeof removeEventListener=="function",Yp=[];eE&&addEventListener("offline",()=>{Se("closing %d connection(s) because the network was lost",Yp.length),Yp.forEach(t=>t())},!1);qa=class t extends D9.Emitter{constructor(e,n){if(super(),this.binaryType=_9,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(n=e,e=null),e){let r=Zs(e);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=Zs(n.host).host);Zr(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{let i=r.prototype.name;this.transports.push(i),this._transportsByName[i]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=E9(this.opts.query)),eE&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(Se("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Yp.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=w9()),this._open()}createTransport(e){Se('creating transport "%s"',e);let n=Object.assign({},this.opts.query);n.EIO=US,n.transport=e,this.id&&(n.sid=this.id);let r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return Se("options: %j",r),new this._transportsByName[e](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let e=this.opts.rememberUpgrade&&t.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){Se("setting transport %s",e.name),this.transport&&(Se("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){Se("socket open"),this.readyState="open",t.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(Se('socket receive: type "%s", data "%s"',e.type,e.data),this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let n=new Error("server error");n.code=e.data,this._onError(n);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}else Se('packet received with socket readyState "%s"',this.readyState)}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();Se("flushing %d packets in socket",e.length),this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){let i=this.writeBuffer[r].data;if(i&&(n+=k9(i)),r>0&&n>this._maxPayload)return Se("only send %d out of %d packets",r,this.writeBuffer.length),this.writeBuffer.slice(0,r);n+=2}return Se("payload size is %d (max: %d)",n,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(Se("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,Br(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,n,r){return this._sendPacket("message",e,n,r),this}send(e,n,r){return this._sendPacket("message",e,n,r),this}_sendPacket(e,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;let a={type:e,data:n,options:r};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),i&&this.once("flush",i),this.flush()}close(){let e=()=>{this._onClose("forced close"),Se("socket closing - telling transport to close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),e()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}_onError(e){if(Se("socket error %j",e),t.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return Se("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(Se('socket close with reason: "%s"',e),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),eE&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let r=Yp.indexOf(this._offlineEventListener);r!==-1&&(Se("removing listener for the 'offline' event"),Yp.splice(r,1))}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}};qa.protocol=US;ag=class extends qa{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){Se("starting upgrade probes");for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}}_probe(e){Se('probing transport "%s"',e);let n=this.createTransport(e),r=!1;qa.priorWebsocketSuccess=!1;let i=()=>{r||(Se('probe transport "%s" opened',e),n.send([{type:"ping",data:"probe"}]),n.once("packet",l=>{if(!r)if(l.type==="pong"&&l.data==="probe"){if(Se('probe transport "%s" pong',e),this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;qa.priorWebsocketSuccess=n.name==="websocket",Se('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{r||this.readyState!=="closed"&&(Se("changing transport and sending upgrade packet"),p(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{Se('probe transport "%s" failed',e);let d=new Error("probe error");d.transport=n.name,this.emitReserved("upgradeError",d)}}))};function a(){r||(r=!0,p(),n.close(),n=null)}let o=l=>{let d=new Error("probe error: "+l);d.transport=n.name,a(),Se('probe transport "%s" failed because of error: %s',e,l),this.emitReserved("upgradeError",d)};function s(){o("transport closed")}function c(){o("socket closed")}function u(l){n&&l.name!==n.name&&(Se('"%s" works - aborting "%s"',l.name,n.name),a())}let p=()=>{n.removeListener("open",i),n.removeListener("error",o),n.removeListener("close",s),this.off("close",c),this.off("upgrading",u)};n.once("open",i),n.once("error",o),n.once("close",s),this.once("close",c),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let n=[];for(let r=0;r<e.length;r++)~this.transports.indexOf(e[r])&&n.push(e[r]);return n}},Vs=class extends ag{constructor(e,n={}){let r=typeof e=="object"?e:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>XS[i]).filter(i=>!!i)),super(e,r)}}});var M9=y(()=>{FS()});var Uwe,og=y(()=>{tE();tE();Jp();YS();Na();QS();Aa();M9();HS();ZS();JS();GS();KS();Uwe=Vs.protocol});function B9(t,e="",n){let r=t;n=n||typeof location<"u"&&location,t==null&&(t=n.protocol+"//"+n.host),typeof t=="string"&&(t.charAt(0)==="/"&&(t.charAt(1)==="/"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\/\//.test(t)||(L9("protocol-less url %s",t),typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),L9("parse %s",t),r=Zs(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";let a=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+e,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}var F9,L9,Z9=y(()=>{og();F9=se(Y(),1),L9=(0,F9.default)("socket.io-client:url")});function el(t){return cue&&(t instanceof ArrayBuffer||uue(t))||pue&&t instanceof Blob||lue&&t instanceof File}function Qp(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(Qp(t[n]))return!0;return!1}if(el(t))return!0;if(t.toJSON&&typeof t.toJSON=="function"&&arguments.length===1)return Qp(t.toJSON(),!0);for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&Qp(t[n]))return!0;return!1}var cue,uue,V9,pue,lue,nE=y(()=>{cue=typeof ArrayBuffer=="function",uue=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,V9=Object.prototype.toString,pue=typeof Blob=="function"||typeof Blob<"u"&&V9.call(Blob)==="[object BlobConstructor]",lue=typeof File=="function"||typeof File<"u"&&V9.call(File)==="[object FileConstructor]"});function H9(t){let e=[],n=t.data,r=t;return r.data=rE(n,e),r.attachments=e.length,{packet:r,buffers:e}}function rE(t,e){if(!t)return t;if(el(t)){let n={_placeholder:!0,num:e.length};return e.push(t),n}else if(Array.isArray(t)){let n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=rE(t[r],e);return n}else if(typeof t=="object"&&!(t instanceof Date)){let n={};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=rE(t[r],e));return n}return t}function W9(t,e){return t.data=iE(t.data,e),delete t.attachments,t}function iE(t,e){if(!t)return t;if(t&&t._placeholder===!0){if(typeof t.num=="number"&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]=iE(t[n],e);else if(typeof t=="object")for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=iE(t[n],e));return t}var G9=y(()=>{nE()});var uE={};Jr(uE,{Decoder:()=>sE,Encoder:()=>oE,PacketType:()=>K,isPacketValid:()=>vue,protocol:()=>Y9});function due(t){return typeof t=="string"}function fue(t){return t===void 0||mue(t)}function sg(t){return Object.prototype.toString.call(t)==="[object Object]"}function hue(t,e){switch(t){case K.CONNECT:return e===void 0||sg(e);case K.DISCONNECT:return e===void 0;case K.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&X9.indexOf(e[0])===-1);case K.ACK:return Array.isArray(e);case K.CONNECT_ERROR:return typeof e=="string"||sg(e);default:return!1}}function vue(t){return due(t.nsp)&&fue(t.id)&&hue(t.type,t.data)}var J9,K9,aE,X9,Y9,K,oE,sE,cE,mue,cg=y(()=>{J9=se(pi(),1);G9();nE();K9=se(Y(),1),aE=(0,K9.default)("socket.io-parser"),X9=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],Y9=5;(function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"})(K||(K={}));oE=class{constructor(e){this.replacer=e}encode(e){return aE("encoding packet %j",e),(e.type===K.EVENT||e.type===K.ACK)&&Qp(e)?this.encodeAsBinary({type:e.type===K.EVENT?K.BINARY_EVENT:K.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let n=""+e.type;return(e.type===K.BINARY_EVENT||e.type===K.BINARY_ACK)&&(n+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(n+=e.nsp+","),e.id!=null&&(n+=e.id),e.data!=null&&(n+=JSON.stringify(e.data,this.replacer)),aE("encoded %j as %s",e,n),n}encodeAsBinary(e){let n=H9(e),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}},sE=class t extends J9.Emitter{constructor(e){super(),this.reviver=e}add(e){let n;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(e);let r=n.type===K.BINARY_EVENT;r||n.type===K.BINARY_ACK?(n.type=r?K.EVENT:K.ACK,this.reconstructor=new cE(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(el(e)||e.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(e),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let n=0,r={type:Number(e.charAt(0))};if(K[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===K.BINARY_EVENT||r.type===K.BINARY_ACK){let a=n+1;for(;e.charAt(++n)!=="-"&&n!=e.length;);let o=e.substring(a,n);if(o!=Number(o)||e.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(e.charAt(n+1)==="/"){let a=n+1;for(;++n&&!(e.charAt(n)===","||n===e.length););r.nsp=e.substring(a,n)}else r.nsp="/";let i=e.charAt(n+1);if(i!==""&&Number(i)==i){let a=n+1;for(;++n;){let o=e.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===e.length)break}r.id=Number(e.substring(a,n+1))}if(e.charAt(++n)){let a=this.tryParse(e.substr(n));if(t.isPayloadValid(r.type,a))r.data=a;else throw new Error("invalid payload")}return aE("decoded %s as %j",e,r),r}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,n){switch(e){case K.CONNECT:return sg(n);case K.DISCONNECT:return n===void 0;case K.CONNECT_ERROR:return typeof n=="string"||sg(n);case K.EVENT:case K.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&X9.indexOf(n[0])===-1);case K.ACK:case K.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},cE=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let n=W9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};mue=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}});function on(t,e,n){return t.on(e,n),function(){t.off(e,n)}}var pE=y(()=>{});var Q9,eD,Ke,gue,Hs,lE=y(()=>{cg();pE();Q9=se(pi(),1),eD=se(Y(),1),Ke=(0,eD.default)("socket.io-client:socket"),gue=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Hs=class extends Q9.Emitter{constructor(e,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[on(e,"open",this.onopen.bind(this)),on(e,"packet",this.onpacket.bind(this)),on(e,"error",this.onerror.bind(this)),on(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...n){var r,i,a;if(gue.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;let o={type:K.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){let p=this.ids++;Ke("emitting packet with ack id %d",p);let l=n.pop();this._registerAckCallback(p,l),o.id=p}let s=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,c=this.connected&&!(!((a=this.io.engine)===null||a===void 0)&&a._hasPingExpired());return this.flags.volatile&&!s?Ke("discard packet as the transport is not currently writable"):c?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o),this.flags={},this}_registerAckCallback(e,n){var r;let i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[e]=n;return}let a=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let s=0;s<this.sendBuffer.length;s++)this.sendBuffer[s].id===e&&(Ke("removing packet with ack id %d from the buffer",e),this.sendBuffer.splice(s,1));Ke("event with ack id %d has timed out after %d ms",e,i),n.call(this,new Error("operation has timed out"))},i),o=(...s)=>{this.io.clearTimeoutFn(a),n.apply(this,s)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...n){return new Promise((r,i)=>{let a=(o,s)=>o?i(o):r(s);a.withError=!0,n.push(a),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]=="function"&&(n=e.pop());let r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...a)=>r!==this._queue[0]?Ke("packet [%d] already acknowledged",r.id):(i!==null?r.tryCount>this._opts.retries&&(Ke("packet [%d] is discarded after %d tries",r.id,r.tryCount),this._queue.shift(),n&&n(i)):(Ke("packet [%d] was successfully sent",r.id),this._queue.shift(),n&&n(null,...a)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(Ke("draining queue"),!this.connected||this._queue.length===0)return;let n=this._queue[0];if(n.pending&&!e){Ke("packet [%d] has already been sent and is waiting for an ack",n.id);return}n.pending=!0,n.tryCount++,Ke("sending packet [%d] (try n\xB0%d)",n.id,n.tryCount),this.flags=n.flags,this.emit.apply(this,n.args)}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){Ke("transport is open - connecting"),typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:K.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,n){Ke("close (%s)",e),this.connected=!1,delete this.id,this.emitReserved("disconnect",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(r=>String(r.id)===e)){let r=this.acks[e];delete this.acks[e],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case K.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case K.EVENT:case K.BINARY_EVENT:this.onevent(e);break;case K.ACK:case K.BINARY_ACK:this.onack(e);break;case K.DISCONNECT:this.ondisconnect();break;case K.CONNECT_ERROR:this.destroy();let r=new Error(e.data.message);r.data=e.data.data,this.emitReserved("connect_error",r);break}}onevent(e){let n=e.data||[];Ke("emitting event %j",n),e.id!=null&&(Ke("attaching ack callback to event"),n.push(this.ack(e.id))),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let n=this._anyListeners.slice();for(let r of n)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){let n=this,r=!1;return function(...i){r||(r=!0,Ke("sending ack %j",i),n.packet({type:K.ACK,id:e,data:i}))}}onack(e){let n=this.acks[e.id];if(typeof n!="function"){Ke("bad ack %s",e.id);return}delete this.acks[e.id],Ke("calling ack %s with %j",e.id,e.data),n.withError&&e.data.unshift(null),n.apply(this,e.data)}onconnect(e,n){Ke("socket connected with id %s",e),this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){Ke("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(Ke("performing disconnect (%s)",this.nsp),this.packet({type:K.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let n=this._anyListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let n=this._anyOutgoingListeners.slice();for(let r of n)r.apply(this,e.data)}}}});function Da(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}var tD=y(()=>{Da.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=(Math.floor(e*10)&1)==0?t-n:t+n}return Math.min(t,this.max)|0};Da.prototype.reset=function(){this.attempts=0};Da.prototype.setMin=function(t){this.ms=t};Da.prototype.setMax=function(t){this.max=t};Da.prototype.setJitter=function(t){this.jitter=t}});var nD,rD,ht,Ws,iD=y(()=>{og();lE();cg();pE();tD();nD=se(pi(),1),rD=se(Y(),1),ht=(0,rD.default)("socket.io-client:manager"),Ws=class extends nD.Emitter{constructor(e,n){var r;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(n=e,e=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Zr(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new Da({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=e;let i=n.parser||uE;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(ht("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;ht("opening %s",this.uri),this.engine=new Vs(this.uri,this.opts);let n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;let i=on(n,"open",function(){r.onopen(),e&&e()}),a=s=>{ht("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",s),e?e(s):this.maybeReconnectOnOpen()},o=on(n,"error",a);if(this._timeout!==!1){let s=this._timeout;ht("connect attempt will timeout after %d",s);let c=this.setTimeoutFn(()=>{ht("connect attempt timed out after %d",s),i(),a(new Error("timeout")),n.close()},s);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){ht("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let e=this.engine;this.subs.push(on(e,"ping",this.onping.bind(this)),on(e,"data",this.ondata.bind(this)),on(e,"error",this.onerror.bind(this)),on(e,"close",this.onclose.bind(this)),on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose("parse error",n)}}ondecoded(e){Br(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){ht("error",e),this.emitReserved("error",e)}socket(e,n){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new Hs(this,e,n),this.nsps[e]=r),r}_destroy(e){let n=Object.keys(this.nsps);for(let r of n)if(this.nsps[r].active){ht("socket %s is still active, skipping close",r);return}this._close()}_packet(e){ht("writing packet %j",e);let n=this.encoder.encode(e);for(let r=0;r<n.length;r++)this.engine.write(n[r],e.options)}cleanup(){ht("cleanup"),this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){ht("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,n){var r;ht("closed due to %s",e),this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)ht("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let n=this.backoff.duration();ht("will wait %dms before reconnect attempt",n),this._reconnecting=!0;let r=this.setTimeoutFn(()=>{e.skipReconnect||(ht("attempting reconnect"),this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(ht("reconnect attempt error"),e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):(ht("reconnect success"),e.onreconnect())}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}});function nl(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};let n=B9(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,o=tl[i]&&a in tl[i].nsps,s=e.forceNew||e["force new connection"]||e.multiplex===!1||o,c;return s?(aD("ignoring socket cache for %s",r),c=new Ws(r,e)):(tl[i]||(aD("new io instance for %s",r),tl[i]=new Ws(r,e)),c=tl[i]),n.query&&!e.query&&(e.query=n.queryKey),c.socket(n.path,e)}var oD,aD,tl,sD=y(()=>{Z9();iD();lE();oD=se(Y(),1);cg();og();aD=(0,oD.default)("socket.io-client"),tl={};Object.assign(nl,{Manager:Ws,Socket:Hs,io:nl,connect:nl})});var kue={};function xue(){let t=process.argv.slice(2),e=process.env.AI_ANNOTATOR_SERVER;for(let n=0;n<t.length;n++){let r=t[n];(r==="--server"||r==="-s")&&t[n+1]&&(e=t[n+1],n++)}return e||(console.error("Error: --server <url> is required"),console.error(""),console.error("Usage: vite-plugin-ai-annotator mcp --server <url>"),console.error(""),console.error("Example:"),console.error(" vite-plugin-ai-annotator mcp --server http://localhost:7318"),process.exit(1)),{serverUrl:e}}function bue(){let t=dE.join(cD.tmpdir(),"ai-annotator-screenshots");return Gs.existsSync(t)||Gs.mkdirSync(t,{recursive:!0}),t}function yue(t,e){let n=bue(),i=`screenshot-${Date.now()}.${e}`,a=dE.join(n,i),o=Buffer.from(t,"base64");return Gs.writeFileSync(a,o),a}function _ue(t){return new Promise((e,n)=>{let r=nl(t,{transports:["websocket"],reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,query:{clientType:"mcp"}}),i=setTimeout(()=>{r.disconnect(),n(new Error(`Connection timeout to ${t}`))},1e4);r.on("connect",()=>{clearTimeout(i),e(r)}),r.on("connect_error",a=>{clearTimeout(i),n(new Error(`Failed to connect: ${a.message}`))})})}function Wr(t,e,n=[],r=15e3){return new Promise((i,a)=>{let o=setTimeout(()=>{a(new Error(`Timeout calling ${e}`))},r);t.emit(e,...n,s=>{clearTimeout(o),s.success?i(s.data):a(new Error(s.error||"Unknown error"))})})}async function wue(){let{serverUrl:t}=xue(),e;try{e=await _ue(t)}catch{console.error(`Failed to connect to AI Annotator server at ${t}`),console.error("Make sure the server is running: bunx vite-plugin-ai-annotator"),console.error("Or specify a different server: --server http://localhost:PORT"),process.exit(1)}let n=new As({name:"ai-annotator",version:"1.0.0"}),r=o=>({content:[{type:"text",text:o}]}),i=Pe.string().optional().describe("Browser session ID (optional if only one session)");n.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{try{let o=await Wr(e,"mcp:listSessions");return r(o.length>0?JSON.stringify(o,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}catch(o){return r(`Error: ${o instanceof Error?o.message:String(o)}`)}}),n.tool("annotator_get_page_context","Get current page context from browser session (URL, title, feedback count)",{sessionId:i},async({sessionId:o})=>{try{let s=await Wr(e,"mcp:getPageContext",[o]);return r(JSON.stringify(s,null,2))}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_select_feedback","Enter feedback inspection mode or select feedback by CSS/XPath selector. Use this to let users mark UI elements they want to provide feedback on.",{sessionId:i,mode:Pe.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:Pe.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:Pe.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:o,mode:s,selector:c,selectorType:u})=>{try{let p=await Wr(e,"mcp:triggerSelection",[o,s,c,u]);return r(p.success?`Feedback selection triggered. ${p.count} feedback item(s) selected.`:`Feedback selection failed: ${p.error}`)}catch(p){return r(`Error: ${p instanceof Error?p.message:String(p)}`)}}),n.tool("annotator_get_feedback","Get data about currently selected feedback items in the browser. Returns details of UI elements the user has marked for feedback.",{sessionId:i},async({sessionId:o})=>{try{let s=await Wr(e,"mcp:getSelectedElements",[o]);return r(s.length>0?JSON.stringify(s,null,2):"No feedback selected. Use annotator_select_feedback first.")}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path.",{sessionId:i,type:Pe.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:Pe.string().optional().describe("CSS selector for element screenshot"),format:Pe.enum(["png","jpeg"]).default("png").describe("Image format"),quality:Pe.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:o,type:s,selector:c,format:u,quality:p})=>{try{let l=await Wr(e,"mcp:captureScreenshot",[o,s,c,u,p],3e4);if(l.success&&l.base64){let d=yue(l.base64,u);return r(d)}return r(`Screenshot failed: ${l.error}`)}catch(l){return r(`Error: ${l instanceof Error?l.message:String(l)}`)}}),n.tool("annotator_clear_feedback","Clear all selected feedback items in the browser. Removes all UI element selections made for feedback.",{sessionId:i},async({sessionId:o})=>{try{return await Wr(e,"mcp:clearSelection",[o]),r("Feedback cleared.")}catch(s){return r(`Error: ${s instanceof Error?s.message:String(s)}`)}}),n.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:i,css:Pe.string().describe("CSS code to inject into the page")},async({sessionId:o,css:s})=>{try{let c=await Wr(e,"mcp:injectCSS",[o,s]);return r(c.success?"CSS injected successfully.":`CSS injection failed: ${c.error}`)}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}}),n.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:i,code:Pe.string().describe("JavaScript code to execute in the page")},async({sessionId:o,code:s})=>{try{let c=await Wr(e,"mcp:injectJS",[o,s]);return c.success?r(c.result!==void 0?`Result: ${JSON.stringify(c.result,null,2)}`:"JavaScript executed successfully (no return value)."):r(`JavaScript execution failed: ${c.error}`)}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}}),n.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:i,clear:Pe.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:o,clear:s})=>{try{let c=await Wr(e,"mcp:getConsole",[o,s]);return r(c.length>0?JSON.stringify(c,null,2):"No console logs captured.")}catch(c){return r(`Error: ${c instanceof Error?c.message:String(c)}`)}});let a=new Kv;await n.connect(a),process.on("SIGINT",()=>{e.disconnect(),process.exit(0)}),process.on("SIGTERM",()=>{e.disconnect(),process.exit(0)})}var Gs,cD,dE,uD=y(()=>{"use strict";jS();s9();sD();Lv();Gs=se(require("node:fs"),1),cD=se(require("node:os"),1),dE=se(require("node:path"),1);wue().catch(t=>{console.error("MCP CLI error:",t),process.exit(1)})});var qi=se(require("node:fs"),1),t9=se(require("node:os"),1),Gv=se(require("node:path"),1),n9=se(require("cors"),1),CS=se(QO(),1);var IR=se(OR(),1),{Server:zR,Namespace:yme,Socket:_me}=IR.default;jS();var Zq=require("http2"),Fv=require("http2"),PS=require("stream"),Jq=se(require("crypto"),1),Ra=class extends Error{constructor(t,e){super(t,e),this.name="RequestError"}},mce=t=>t instanceof Ra?t:new Ra(t.message,{cause:t}),fce=global.Request,Fp=class extends fce{constructor(t,e){typeof t=="object"&&Ds in t&&(t=t[Ds]()),typeof e?.body?.getReader<"u"&&(e.duplex??="half"),super(t,e)}},hce=t=>{let e=[],n=t.rawHeaders;for(let r=0;r<n.length;r+=2){let{[r]:i,[r+1]:a}=n;i.charCodeAt(0)!==58&&e.push([i,a])}return new Headers(e)},Vq=Symbol("wrapBodyStream"),vce=(t,e,n,r,i)=>{let a={method:t,headers:n,signal:i.signal};if(t==="TRACE"){a.method="GET";let o=new Fp(e,a);return Object.defineProperty(o,"method",{get(){return"TRACE"}}),o}if(!(t==="GET"||t==="HEAD"))if("rawBody"in r&&r.rawBody instanceof Buffer)a.body=new ReadableStream({start(o){o.enqueue(r.rawBody),o.close()}});else if(r[Vq]){let o;a.body=new ReadableStream({async pull(s){try{o||=PS.Readable.toWeb(r).getReader();let{done:c,value:u}=await o.read();c?s.close():s.enqueue(u)}catch(c){s.error(c)}}})}else a.body=PS.Readable.toWeb(r);return new Fp(e,a)},Ds=Symbol("getRequestCache"),gce=Symbol("requestCache"),Bv=Symbol("incomingKey"),Zv=Symbol("urlKey"),xce=Symbol("headersKey"),qs=Symbol("abortControllerKey"),bce=Symbol("getAbortController"),Vv={get method(){return this[Bv].method||"GET"},get url(){return this[Zv]},get headers(){return this[xce]||=hce(this[Bv])},[bce](){return this[Ds](),this[qs]},[Ds](){return this[qs]||=new AbortController,this[gce]||=vce(this.method,this[Zv],this.headers,this[Bv],this[qs])}};["body","bodyUsed","cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","signal","keepalive"].forEach(t=>{Object.defineProperty(Vv,t,{get(){return this[Ds]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Vv,t,{value:function(){return this[Ds]()[t]()}})});Object.setPrototypeOf(Vv,Fp.prototype);var yce=(t,e)=>{let n=Object.create(Vv);n[Bv]=t;let r=t.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(t instanceof Fv.Http2ServerRequest)throw new Ra("Absolute URL for :path is not allowed in HTTP/2");try{let s=new URL(r);n[Zv]=s.href}catch(s){throw new Ra("Invalid absolute URL",{cause:s})}return n}let i=(t instanceof Fv.Http2ServerRequest?t.authority:t.headers.host)||e;if(!i)throw new Ra("Missing host header");let a;if(t instanceof Fv.Http2ServerRequest){if(a=t.scheme,!(a==="http"||a==="https"))throw new Ra("Unsupported scheme")}else a=t.socket&&t.socket.encrypted?"https":"http";let o=new URL(`${a}://${i}${r}`);if(o.hostname.length!==i.length&&o.hostname!==i.replace(/:\d+$/,""))throw new Ra("Invalid host header");return n[Zv]=o.href,n},Bq=Symbol("responseCache"),Ns=Symbol("getResponseCache"),Ca=Symbol("cache"),IS=global.Response,Bp=class Hq{#t;#e;[Ns](){return delete this[Ca],this[Bq]||=new IS(this.#t,this.#e)}constructor(e,n){let r;if(this.#t=e,n instanceof Hq){let i=n[Bq];if(i){this.#e=i,this[Ns]();return}else this.#e=n.#e,r=new Headers(n.#e.headers)}else this.#e=n;(typeof e=="string"||typeof e?.getReader<"u"||e instanceof Blob||e instanceof Uint8Array)&&(r||=n?.headers||{"content-type":"text/plain; charset=UTF-8"},this[Ca]=[n?.status||200,e,r])}get headers(){let e=this[Ca];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2])),e[2]):this[Ns]().headers}get status(){return this[Ca]?.[0]??this[Ns]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(t=>{Object.defineProperty(Bp.prototype,t,{get(){return this[Ns]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Bp.prototype,t,{value:function(){return this[Ns]()[t]()}})});Object.setPrototypeOf(Bp,IS);Object.setPrototypeOf(Bp.prototype,IS.prototype);async function _ce(t){return Promise.race([t,Promise.resolve().then(()=>Promise.resolve(void 0))])}function Wq(t,e,n){let r=s=>{t.cancel(s).catch(()=>{})};return e.on("close",r),e.on("error",r),(n??t.read()).then(o,i),t.closed.finally(()=>{e.off("close",r),e.off("error",r)});function i(s){s&&e.destroy(s)}function a(){t.read().then(o,i)}function o({done:s,value:c}){try{if(s)e.end();else if(!e.write(c))e.once("drain",a);else return t.read().then(o,i)}catch(u){i(u)}}}function wce(t,e){if(t.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:Wq(t.getReader(),e)}var Gq=t=>{let e={};t instanceof Headers||(t=new Headers(t??void 0));let n=[];for(let[r,i]of t)r==="set-cookie"?n.push(i):e[r]=i;return n.length>0&&(e["set-cookie"]=n),e["content-type"]??="text/plain; charset=UTF-8",e},kce="x-hono-already-sent";typeof global.crypto>"u"&&(global.crypto=Jq.default);var zS=Symbol("outgoingEnded"),Sce=()=>new Response(null,{status:400}),Kq=t=>new Response(null,{status:t instanceof Error&&(t.name==="TimeoutError"||t.constructor.name==="TimeoutError")?504:500}),OS=(t,e)=>{let n=t instanceof Error?t:new Error("unknown error",{cause:t});n.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(t),e.headersSent||e.writeHead(500,{"Content-Type":"text/plain"}),e.end(`Error: ${n.message}`),e.destroy(n))},Xq=t=>{"flushHeaders"in t&&t.writable&&t.flushHeaders()},Yq=async(t,e)=>{let[n,r,i]=t[Ca];i instanceof Headers&&(i=Gq(i)),typeof r=="string"?i["Content-Length"]=Buffer.byteLength(r):r instanceof Uint8Array?i["Content-Length"]=r.byteLength:r instanceof Blob&&(i["Content-Length"]=r.size),e.writeHead(n,i),typeof r=="string"||r instanceof Uint8Array?e.end(r):r instanceof Blob?e.end(new Uint8Array(await r.arrayBuffer())):(Xq(e),await wce(r,e)?.catch(a=>OS(a,e))),e[zS]?.()},Ece=t=>typeof t.then=="function",$ce=async(t,e,n={})=>{if(Ece(t))if(n.errorHandler)try{t=await t}catch(i){let a=await n.errorHandler(i);if(!a)return;t=a}else t=await t.catch(Kq);if(Ca in t)return Yq(t,e);let r=Gq(t.headers);if(t.body){let i=t.body.getReader(),a=[],o=!1,s;if(r["transfer-encoding"]!=="chunked"){let c=2;for(let u=0;u<c;u++){s||=i.read();let p=await _ce(s).catch(l=>{console.error(l),o=!0});if(!p){if(u===1){await new Promise(l=>setTimeout(l)),c=3;continue}break}if(s=void 0,p.value&&a.push(p.value),p.done){o=!0;break}}o&&!("content-length"in r)&&(r["content-length"]=a.reduce((u,p)=>u+p.length,0))}e.writeHead(t.status,r),a.forEach(c=>{e.write(c)}),o?e.end():(a.length===0&&Xq(e),await Wq(i,e,s))}else r[kce]||(e.writeHead(t.status,r),e.end());e[zS]?.()},RS=(t,e={})=>{let n=e.autoCleanupIncoming??!0;return e.overrideGlobalObjects!==!1&&global.Request!==Fp&&(Object.defineProperty(global,"Request",{value:Fp}),Object.defineProperty(global,"Response",{value:Bp})),async(r,i)=>{let a,o;try{o=yce(r,e.hostname);let s=!n||r.method==="GET"||r.method==="HEAD";if(s||(r[Vq]=!0,r.on("end",()=>{s=!0}),r instanceof Zq.Http2ServerRequest&&(i[zS]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{r.destroy(),i.destroy()})})})),i.on("close",()=>{o[qs]&&(r.errored?o[qs].abort(r.errored.toString()):i.writableFinished||o[qs].abort("Client connection prematurely closed.")),s||setTimeout(()=>{s||setTimeout(()=>{r.destroy()})})}),a=t(o,{incoming:r,outgoing:i}),Ca in a)return Yq(a,i)}catch(s){if(a)return OS(s,i);if(e.errorHandler){if(a=await e.errorHandler(o?s:mce(s)),!a)return}else o?a=Kq(s):a=Sce()}try{return await $ce(a,i,e)}catch(s){return OS(s,i)}}};xs();var Hv=class{constructor(e={}){this._started=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval}async start(){if(this._started)throw new Error("Transport already started");this._started=!0}createJsonErrorResponse(e,n,r,i){let a={code:n,message:r};return i?.data!==void 0&&(a.data=i.data),new Response(JSON.stringify({jsonrpc:"2.0",error:a,id:null}),{status:e,headers:{"Content-Type":"application/json",...i?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let n=e.headers.get("host");if(!n||!this._allowedHosts.includes(n)){let r=`Invalid Host header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let n=e.headers.get("origin");if(n&&!this._allowedOrigins.includes(n)){let r=`Invalid Origin header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}}}async handleRequest(e,n){let r=this.validateRequestHeaders(e);if(r)return r;switch(e.method){case"POST":return this.handlePostRequest(e,n);case"GET":return this.handleGetRequest(e);case"DELETE":return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,n,r,i){if(!this._eventStore||i<"2025-11-25")return;let a=await this._eventStore.storeEvent(r,{}),o=`id: ${a}
99
99
  data:
100
100
 
101
101
  `;this._retryInterval!==void 0&&(o=`id: ${a}
@@ -111,7 +111,7 @@ const toolbar = document.createElement('annotator-toolbar');
111
111
  toolbar.setAttribute('ws-endpoint', '${e.replace("http://","ws://").replace("https://","wss://")}');
112
112
  toolbar.setAttribute('verbose', '${n}');
113
113
  document.body.prepend(toolbar);
114
- `;i.send(s+u)}catch(a){console.error("Error reading annotator-toolbar.js:",a),i.status(404).send("File not found")}}),t.get("/health",(r,i)=>{i.json({status:"ok",sessions:Hn.size})}),t.get("/api/sessions",(r,i)=>{i.json(Zp())})}function zce(t,e){t.on("connection",n=>{if(n.handshake.query.clientType==="mcp"){Rce(n,e);return}let i=Tce(),a={id:i,url:"",title:"",connectedAt:Date.now(),lastActivity:Date.now()},o=Qq(n);Hn.set(i,{socket:n,rpc:o,session:a}),e.log(`Browser connected: ${i} (total: ${Hn.size})`),o.handle.getSessions(async()=>Zp()),o.handle.ping(async()=>"pong"),o.handle.rpcError(s=>{e.error("RPC Error:",s)}),n.emit("connected",{sessionId:i}),n.on("pageContextChanged",s=>{a.url=s.url,a.title=s.title,a.lastActivity=Date.now()}),n.on("disconnect",()=>{o.dispose(),Hn.delete(i),e.log(`Browser disconnected: ${i} (total: ${Hn.size})`)})})}function Rce(t,e){e.log("MCP client connected"),t.on("mcp:listSessions",n=>{n({success:!0,data:Zp()})}),t.on("mcp:getPageContext",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}try{let a=await i.rpc.client.getPageContext(1e4);Ct(a)?r({success:!1,error:a.message}):r({success:!0,data:a})}catch(a){r({success:!1,error:a instanceof Error?a.message:String(a)})}}),t.on("mcp:triggerSelection",async(n,r,i,a,o)=>{let s=St(n);if("error"in s){o({success:!1,error:s.error});return}try{let c=await s.rpc.client.triggerSelection(r,i,a,1e4);Ct(c)?o({success:!1,error:c.message}):o({success:!0,data:c})}catch(c){o({success:!1,error:c instanceof Error?c.message:String(c)})}}),t.on("mcp:getSelectedElements",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}try{let a=await i.rpc.client.getSelectedElements(15e3);Ct(a)?r({success:!1,error:a.message}):r({success:!0,data:a})}catch(a){r({success:!1,error:a instanceof Error?a.message:String(a)})}}),t.on("mcp:captureScreenshot",async(n,r,i,a,o,s)=>{let c=St(n);if("error"in c){s({success:!1,error:c.error});return}try{let u=await c.rpc.client.captureScreenshot(r,i,a,o,3e4);Ct(u)?s({success:!1,error:u.message}):s({success:!0,data:u})}catch(u){s({success:!1,error:u instanceof Error?u.message:String(u)})}}),t.on("mcp:clearSelection",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}i.rpc.client.clearSelection(),r({success:!0})}),t.on("mcp:injectCSS",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.injectCSS(r,1e4);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("mcp:injectJS",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.injectJS(r,15e3);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("mcp:getConsole",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.getConsole(r,15e3);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("disconnect",()=>{e.log("MCP client disconnected")})}function St(t){let e=jce(t);if(!e){let n=Zp();return n.length===0?{error:"No browser connected. Add the annotator script to your webpage."}:{error:`Multiple sessions available. Specify sessionId. Available: ${n.map(r=>r.id).join(", ")}`}}return{rpc:e.rpc,sessionId:e.sessionId}}function Cce(){let t=new As({name:"ai-annotator",version:"1.0.0"}),e=Pe.string().optional().describe("Browser session ID (optional if only one session)");function n(r){return{content:[{type:"text",text:r}]}}return t.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{let r=Zp();return n(r.length>0?JSON.stringify(r,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}),t.tool("annotator_get_page_context","Get current page context from browser session (URL, title, selection count)",{sessionId:e},async({sessionId:r})=>{let i=St(r);if("error"in i)return n(i.error);let a=await i.rpc.client.getPageContext(1e4);return Ct(a)?n(`Error: ${a.message}`):n(JSON.stringify(a,null,2))}),t.tool("annotator_select_element","Enter element inspection mode or select element by CSS/XPath selector",{sessionId:e,mode:Pe.enum(["inspect","selector"]).default("inspect").describe("Selection mode"),selector:Pe.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:Pe.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:r,mode:i,selector:a,selectorType:o})=>{let s=St(r);if("error"in s)return n(s.error);let c=await s.rpc.client.triggerSelection(i,a,o,1e4);return Ct(c)?n(`Error: ${c.message}`):n(c.success?`Selection triggered. ${c.count} element(s) selected.`:`Selection failed: ${c.error}`)}),t.tool("annotator_get_selected_elements","Get data about currently selected elements in the browser",{sessionId:e},async({sessionId:r})=>{let i=St(r);if("error"in i)return n(i.error);let a=await i.rpc.client.getSelectedElements(15e3);return Ct(a)?n(`Error: ${a.message}`):n(a.length>0?JSON.stringify(a,null,2):"No elements selected. Use annotator_select_element first.")}),t.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path where the screenshot is saved.",{sessionId:e,type:Pe.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:Pe.string().optional().describe("CSS selector for element screenshot"),format:Pe.enum(["png","jpeg"]).default("png").describe("Image format"),quality:Pe.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:r,type:i,selector:a,format:o,quality:s})=>{let c=St(r);if("error"in c)return n(c.error);let u=await c.rpc.client.captureScreenshot(i,a,o,s,3e4);if(Ct(u))return n(`Error: ${u.message}`);if(u.success&&u.base64){let p=Oce(u.base64,o);return n(p)}return n(`Screenshot failed: ${u.error}`)}),t.tool("annotator_clear_selection","Clear all selected elements in the browser",{sessionId:e},async({sessionId:r})=>{let i=St(r);return"error"in i?n(i.error):(i.rpc.client.clearSelection(),n("Selection cleared."))}),t.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:e,css:Pe.string().describe("CSS code to inject into the page")},async({sessionId:r,css:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.injectCSS(i,1e4);return Ct(o)?n(`Error: ${o.message}`):n(o.success?"CSS injected successfully.":`CSS injection failed: ${o.error}`)}),t.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:e,code:Pe.string().describe("JavaScript code to execute in the page")},async({sessionId:r,code:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.injectJS(i,15e3);return Ct(o)?n(`Error: ${o.message}`):o.success?n(o.result!==void 0?`Result: ${JSON.stringify(o.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${o.error}`)}),t.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:e,clear:Pe.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:r,clear:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.getConsole(i,15e3);return Ct(o)?n(`Error: ${o.message}`):n(o.length>0?JSON.stringify(o,null,2):"No console logs captured.")}),t}function Ace(t,e){let n=Cce(),r=new Map;t.all("/mcp",async(i,a)=>{let o=i.headers["mcp-session-id"],s;o&&r.has(o)?s=r.get(o):(s=new Wv({sessionIdGenerator:()=>crypto.randomUUID()}),await n.connect(s),s.onclose=()=>{for(let[c,u]of r.entries())if(u===s){r.delete(c),e.log(`MCP session closed: ${c}`);break}});try{await s.handleRequest(i,a,i.body);let c=a.getHeader("mcp-session-id");c&&!r.has(c)&&(r.set(c,s),e.log(`MCP session created: ${c}`))}catch(c){e.error("MCP request error:",c),a.headersSent||a.status(500).json({error:"MCP request failed"})}}),t.get("/mcp/info",(i,a)=>{a.json({name:"ai-annotator",version:"1.0.0",capabilities:{tools:!0},endpoint:"/mcp"})})}async function r9(t,e,n,r=!1){let i=e9(r),a=(0,CS.default)();a.use((0,n9.default)({origin:"*",methods:["GET","POST","OPTIONS"],allowedHeaders:["Content-Type","Authorization"]})),a.use(CS.default.json({limit:"10mb"})),Ice(a,n,r),Ace(a,i);let o=await Nce(a,t,e),s=new zR(o,{cors:{origin:"*",methods:["GET","POST"]},path:"/socket.io"});return zce(s,i),{app:a,server:o,io:s,port:t,listenAddress:e,publicAddress:n,verbose:r}}async function i9(t){return new Promise((e,n)=>{let r=!1,i=!1,a=!1;function o(){r&&i&&!a&&e()}Hn.forEach(({rpc:s})=>{s.dispose()}),Hn.clear(),t.io.close(s=>{s&&!a&&t.verbose&&console.error("Error closing Socket.IO server:",s),r=!0,o()}),t.server.listening?t.server.close(s=>{s&&!a?(a=!0,n(s)):(i=!0,o())}):(i=!0,o())})}function Nce(t,e,n){return new Promise((r,i)=>{let a=t.listen(e,n,()=>r(a));a.on("error",o=>{i(o)})})}var pD=require("net"),pg=require("fs"),ug=require("path");function Sue(){let t=[(0,ug.join)(__dirname,"..","package.json"),(0,ug.join)(__dirname,"package.json"),(0,ug.join)(process.cwd(),"package.json")];for(let e of t)if((0,pg.existsSync)(e))try{let n=JSON.parse((0,pg.readFileSync)(e,"utf-8"));if(n.name==="vite-plugin-ai-annotator"&&n.version)return n.version}catch{continue}return"0.0.0"}var Eue=Sue(),Et=process.argv.slice(2),$ue=Et[0];$ue==="mcp"?Promise.resolve().then(()=>(uD(),kue)).catch(t=>{console.error("Failed to start MCP CLI:",t),process.exit(1)}):Tue();async function Tue(){let t=Et.includes("--help")||Et.includes("-h"),e=Et.includes("--version")||Et.includes("-v"),n=Et.includes("--verbose")||Et.includes("-V"),r=Et.findIndex(m=>m==="--port"||m==="-p"),i=Et.findIndex(m=>m==="--listen"||m==="-l"),a=Et.findIndex(m=>m==="--public-address"||m==="-a");t&&(console.log(`
114
+ `;i.send(s+u)}catch(a){console.error("Error reading annotator-toolbar.js:",a),i.status(404).send("File not found")}}),t.get("/health",(r,i)=>{i.json({status:"ok",sessions:Hn.size})}),t.get("/api/sessions",(r,i)=>{i.json(Zp())})}function zce(t,e){t.on("connection",n=>{if(n.handshake.query.clientType==="mcp"){Rce(n,e);return}let i=Tce(),a={id:i,url:"",title:"",connectedAt:Date.now(),lastActivity:Date.now()},o=Qq(n);Hn.set(i,{socket:n,rpc:o,session:a}),e.log(`Browser connected: ${i} (total: ${Hn.size})`),o.handle.getSessions(async()=>Zp()),o.handle.ping(async()=>"pong"),o.handle.rpcError(s=>{e.error("RPC Error:",s)}),n.emit("connected",{sessionId:i}),n.on("pageContextChanged",s=>{a.url=s.url,a.title=s.title,a.lastActivity=Date.now()}),n.on("disconnect",()=>{o.dispose(),Hn.delete(i),e.log(`Browser disconnected: ${i} (total: ${Hn.size})`)})})}function Rce(t,e){e.log("MCP client connected"),t.on("mcp:listSessions",n=>{n({success:!0,data:Zp()})}),t.on("mcp:getPageContext",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}try{let a=await i.rpc.client.getPageContext(1e4);Ct(a)?r({success:!1,error:a.message}):r({success:!0,data:a})}catch(a){r({success:!1,error:a instanceof Error?a.message:String(a)})}}),t.on("mcp:triggerSelection",async(n,r,i,a,o)=>{let s=St(n);if("error"in s){o({success:!1,error:s.error});return}try{let c=await s.rpc.client.triggerSelection(r,i,a,1e4);Ct(c)?o({success:!1,error:c.message}):o({success:!0,data:c})}catch(c){o({success:!1,error:c instanceof Error?c.message:String(c)})}}),t.on("mcp:getSelectedElements",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}try{let a=await i.rpc.client.getSelectedElements(15e3);Ct(a)?r({success:!1,error:a.message}):r({success:!0,data:a})}catch(a){r({success:!1,error:a instanceof Error?a.message:String(a)})}}),t.on("mcp:captureScreenshot",async(n,r,i,a,o,s)=>{let c=St(n);if("error"in c){s({success:!1,error:c.error});return}try{let u=await c.rpc.client.captureScreenshot(r,i,a,o,3e4);Ct(u)?s({success:!1,error:u.message}):s({success:!0,data:u})}catch(u){s({success:!1,error:u instanceof Error?u.message:String(u)})}}),t.on("mcp:clearSelection",async(n,r)=>{let i=St(n);if("error"in i){r({success:!1,error:i.error});return}i.rpc.client.clearSelection(),r({success:!0})}),t.on("mcp:injectCSS",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.injectCSS(r,1e4);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("mcp:injectJS",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.injectJS(r,15e3);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("mcp:getConsole",async(n,r,i)=>{let a=St(n);if("error"in a){i({success:!1,error:a.error});return}try{let o=await a.rpc.client.getConsole(r,15e3);Ct(o)?i({success:!1,error:o.message}):i({success:!0,data:o})}catch(o){i({success:!1,error:o instanceof Error?o.message:String(o)})}}),t.on("disconnect",()=>{e.log("MCP client disconnected")})}function St(t){let e=jce(t);if(!e){let n=Zp();return n.length===0?{error:"No browser connected. Add the annotator script to your webpage."}:{error:`Multiple sessions available. Specify sessionId. Available: ${n.map(r=>r.id).join(", ")}`}}return{rpc:e.rpc,sessionId:e.sessionId}}function Cce(){let t=new As({name:"ai-annotator",version:"1.0.0"}),e=Pe.string().optional().describe("Browser session ID (optional if only one session)");function n(r){return{content:[{type:"text",text:r}]}}return t.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{let r=Zp();return n(r.length>0?JSON.stringify(r,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}),t.tool("annotator_get_page_context","Get current page context from browser session (URL, title, selection count)",{sessionId:e},async({sessionId:r})=>{let i=St(r);if("error"in i)return n(i.error);let a=await i.rpc.client.getPageContext(1e4);return Ct(a)?n(`Error: ${a.message}`):n(JSON.stringify(a,null,2))}),t.tool("annotator_select_feedback","Enter feedback inspection mode or select feedback by CSS/XPath selector. Use this to let users mark UI elements they want to provide feedback on.",{sessionId:e,mode:Pe.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:Pe.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:Pe.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:r,mode:i,selector:a,selectorType:o})=>{let s=St(r);if("error"in s)return n(s.error);let c=await s.rpc.client.triggerSelection(i,a,o,1e4);return Ct(c)?n(`Error: ${c.message}`):n(c.success?`Feedback selection triggered. ${c.count} feedback item(s) selected.`:`Feedback selection failed: ${c.error}`)}),t.tool("annotator_get_feedback","Get data about currently selected feedback items in the browser. Returns details of UI elements the user has marked for feedback.",{sessionId:e},async({sessionId:r})=>{let i=St(r);if("error"in i)return n(i.error);let a=await i.rpc.client.getSelectedElements(15e3);return Ct(a)?n(`Error: ${a.message}`):n(a.length>0?JSON.stringify(a,null,2):"No feedback selected. Use annotator_select_feedback first.")}),t.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path where the screenshot is saved.",{sessionId:e,type:Pe.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:Pe.string().optional().describe("CSS selector for element screenshot"),format:Pe.enum(["png","jpeg"]).default("png").describe("Image format"),quality:Pe.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:r,type:i,selector:a,format:o,quality:s})=>{let c=St(r);if("error"in c)return n(c.error);let u=await c.rpc.client.captureScreenshot(i,a,o,s,3e4);if(Ct(u))return n(`Error: ${u.message}`);if(u.success&&u.base64){let p=Oce(u.base64,o);return n(p)}return n(`Screenshot failed: ${u.error}`)}),t.tool("annotator_clear_feedback","Clear all selected feedback items in the browser. Removes all UI element selections made for feedback.",{sessionId:e},async({sessionId:r})=>{let i=St(r);return"error"in i?n(i.error):(i.rpc.client.clearSelection(),n("Feedback cleared."))}),t.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:e,css:Pe.string().describe("CSS code to inject into the page")},async({sessionId:r,css:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.injectCSS(i,1e4);return Ct(o)?n(`Error: ${o.message}`):n(o.success?"CSS injected successfully.":`CSS injection failed: ${o.error}`)}),t.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:e,code:Pe.string().describe("JavaScript code to execute in the page")},async({sessionId:r,code:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.injectJS(i,15e3);return Ct(o)?n(`Error: ${o.message}`):o.success?n(o.result!==void 0?`Result: ${JSON.stringify(o.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${o.error}`)}),t.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:e,clear:Pe.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:r,clear:i})=>{let a=St(r);if("error"in a)return n(a.error);let o=await a.rpc.client.getConsole(i,15e3);return Ct(o)?n(`Error: ${o.message}`):n(o.length>0?JSON.stringify(o,null,2):"No console logs captured.")}),t}function Ace(t,e){let n=Cce(),r=new Map;t.all("/mcp",async(i,a)=>{let o=i.headers["mcp-session-id"],s;o&&r.has(o)?s=r.get(o):(s=new Wv({sessionIdGenerator:()=>crypto.randomUUID()}),await n.connect(s),s.onclose=()=>{for(let[c,u]of r.entries())if(u===s){r.delete(c),e.log(`MCP session closed: ${c}`);break}});try{await s.handleRequest(i,a,i.body);let c=a.getHeader("mcp-session-id");c&&!r.has(c)&&(r.set(c,s),e.log(`MCP session created: ${c}`))}catch(c){e.error("MCP request error:",c),a.headersSent||a.status(500).json({error:"MCP request failed"})}}),t.get("/mcp/info",(i,a)=>{a.json({name:"ai-annotator",version:"1.0.0",capabilities:{tools:!0},endpoint:"/mcp"})})}async function r9(t,e,n,r=!1){let i=e9(r),a=(0,CS.default)();a.use((0,n9.default)({origin:"*",methods:["GET","POST","OPTIONS"],allowedHeaders:["Content-Type","Authorization"]})),a.use(CS.default.json({limit:"10mb"})),Ice(a,n,r),Ace(a,i);let o=await Nce(a,t,e),s=new zR(o,{cors:{origin:"*",methods:["GET","POST"]},path:"/socket.io"});return zce(s,i),{app:a,server:o,io:s,port:t,listenAddress:e,publicAddress:n,verbose:r}}async function i9(t){return new Promise((e,n)=>{let r=!1,i=!1,a=!1;function o(){r&&i&&!a&&e()}Hn.forEach(({rpc:s})=>{s.dispose()}),Hn.clear(),t.io.close(s=>{s&&!a&&t.verbose&&console.error("Error closing Socket.IO server:",s),r=!0,o()}),t.server.listening?t.server.close(s=>{s&&!a?(a=!0,n(s)):(i=!0,o())}):(i=!0,o())})}function Nce(t,e,n){return new Promise((r,i)=>{let a=t.listen(e,n,()=>r(a));a.on("error",o=>{i(o)})})}var pD=require("net"),pg=require("fs"),ug=require("path");function Sue(){let t=[(0,ug.join)(__dirname,"..","package.json"),(0,ug.join)(__dirname,"package.json"),(0,ug.join)(process.cwd(),"package.json")];for(let e of t)if((0,pg.existsSync)(e))try{let n=JSON.parse((0,pg.readFileSync)(e,"utf-8"));if(n.name==="vite-plugin-ai-annotator"&&n.version)return n.version}catch{continue}return"0.0.0"}var Eue=Sue(),Et=process.argv.slice(2),$ue=Et[0];$ue==="mcp"?Promise.resolve().then(()=>(uD(),kue)).catch(t=>{console.error("Failed to start MCP CLI:",t),process.exit(1)}):Tue();async function Tue(){let t=Et.includes("--help")||Et.includes("-h"),e=Et.includes("--version")||Et.includes("-v"),n=Et.includes("--verbose")||Et.includes("-V"),r=Et.findIndex(m=>m==="--port"||m==="-p"),i=Et.findIndex(m=>m==="--listen"||m==="-l"),a=Et.findIndex(m=>m==="--public-address"||m==="-a");t&&(console.log(`
115
115
  AI Annotator - AI-powered web inspection tool
116
116
 
117
117
  Usage:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-ai-annotator",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "AI-powered element annotator for Vite - Pick elements and get instant AI code modifications",
5
5
  "type": "module",
6
6
  "main": "dist/vite-plugin.js",