vite-plugin-ai-annotator 1.1.15 → 1.1.16

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.
Files changed (2) hide show
  1. package/dist/index.cjs +3 -3
  2. package/package.json +1 -1
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 Foe={keyword:"dependencies",type:"object",schemaType:"object",error:lr.error,code(t){let[e,n]=Boe(t);M3(t,e),L3(t,n)}};function Boe({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 M3(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,Mp.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,Mp.checkReportMissingProp)(t,u)}):(n.if((0,tS._)`${c} && (${(0,Mp.checkMissingProp)(t,s,a)})`),(0,Mp.reportMissingProp)(t,a),n.else())}}lr.validatePropertyDeps=M3;function L3(t,e=t.schema){let{gen:n,data:r,keyword:i,it:a}=t,o=n.name("valid");for(let s in e)(0,Loe.alwaysValidSchema)(a,e[s])||(n.if((0,Mp.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=L3;lr.default=Foe});var Z3=v(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});var B3=ee(),Zoe=fe(),Voe={message:"property name must be valid",params:({params:t})=>(0,B3._)`{propertyName: ${t.propertyName}}`},Hoe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Voe,code(t){let{gen:e,schema:n,data:r,it:i}=t;if((0,Zoe.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,B3.not)(a),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(a)}};nS.default=Hoe});var iS=v(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});var Rv=Sn(),Zn=ee(),Woe=Mr(),Cv=fe(),Goe={message:"must NOT have additional properties",params:({params:t})=>(0,Zn._)`{additionalProperty: ${t.additionalProperty}}`},Joe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Goe,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,Cv.alwaysValidSchema)(o,n))return;let u=(0,Rv.allSchemaProperties)(r.properties),p=(0,Rv.allSchemaProperties)(r.patternProperties);l(),t.ok((0,Zn._)`${a} === ${Woe.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,Cv.schemaRefOrVal)(o,r.properties,"properties");b=(0,Rv.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,Rv.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,Cv.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:Cv.Type.Str};w===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(x,b)}}};rS.default=Joe});var W3=v(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});var Koe=$p(),V3=Sn(),aS=fe(),H3=iS(),Xoe={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&&H3.default.code(new Koe.KeywordCxt(a,H3.default,"additionalProperties"));let o=(0,V3.allSchemaProperties)(n);for(let l of o)a.definedProperties.add(l);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=aS.mergeEvaluated.props(e,(0,aS.toHash)(o),a.props));let s=o.filter(l=>!(0,aS.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,V3.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)}}};oS.default=Xoe});var X3=v(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});var G3=Sn(),Av=ee(),J3=fe(),K3=fe(),Yoe={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,G3.allSchemaProperties)(n),c=s.filter(h=>(0,J3.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 Av.Name)&&(a.props=(0,K3.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,J3.checkStrictMode)(a,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function m(h){e.forIn("key",r,g=>{e.if((0,Av._)`${(0,G3.usePattern)(t,h)}.test(${g})`,()=>{let b=c.includes(h);b||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:K3.Type.Str},p),a.opts.unevaluated&&l!==!0?e.assign((0,Av._)`${l}[${g}]`,!0):!b&&!a.allErrors&&e.if((0,Av.not)(p),()=>e.break())})})}}};sS.default=Yoe});var Y3=v(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});var Qoe=fe(),ese={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:n,it:r}=t;if((0,Qoe.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"}};cS.default=ese});var Q3=v(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});var tse=Sn(),nse={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:tse.validateUnion,error:{message:"must match a schema in anyOf"}};uS.default=nse});var eq=v(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});var Nv=ee(),rse=fe(),ise={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Nv._)`{passingSchemas: ${t.passing}}`},ase={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ise,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,rse.alwaysValidSchema)(i,p)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},c),l>0&&e.if((0,Nv._)`${c} && ${o}`).assign(o,!1).assign(s,(0,Nv._)`[${s}, ${l}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(s,l),d&&t.mergeEvaluated(d,Nv.Name)})})}}};pS.default=ase});var tq=v(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});var ose=fe(),sse={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,ose.alwaysValidSchema)(r,a))return;let s=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(s)})}};lS.default=sse});var iq=v(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});var qv=ee(),rq=fe(),cse={message:({params:t})=>(0,qv.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,qv._)`{failingKeyword: ${t.ifClause}}`},use={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:cse,code(t){let{gen:e,parentSchema:n,it:r}=t;n.then===void 0&&n.else===void 0&&(0,rq.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=nq(r,"then"),a=nq(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,qv.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,qv._)`${p}`):t.setParams({ifClause:p})}}}};function nq(t,e){let n=t.schema[e];return n!==void 0&&!(0,rq.alwaysValidSchema)(t,n)}dS.default=use});var aq=v(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});var pse=fe(),lse={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:n}){e.if===void 0&&(0,pse.checkStrictMode)(n,`"${t}" without "if" is ignored`)}};mS.default=lse});var oq=v(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});var dse=Kk(),mse=N3(),fse=Xk(),hse=D3(),vse=U3(),gse=F3(),xse=Z3(),bse=iS(),yse=W3(),_se=X3(),wse=Y3(),kse=Q3(),Sse=eq(),Ese=tq(),$se=iq(),Tse=aq();function jse(t=!1){let e=[wse.default,kse.default,Sse.default,Ese.default,$se.default,Tse.default,xse.default,bse.default,gse.default,yse.default,_se.default];return t?e.push(mse.default,hse.default):e.push(dse.default,fse.default),e.push(vse.default),e}fS.default=jse});var sq=v(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});var He=ee(),Pse={message:({schemaCode:t})=>(0,He.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,He._)`{format: ${t}}`},Ose={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Pse,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})`}}}};hS.default=Ose});var cq=v(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0});var Ise=sq(),zse=[Ise.default];vS.default=zse});var uq=v(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.contentVocabulary=Os.metadataVocabulary=void 0;Os.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Os.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var lq=v(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});var Rse=x3(),Cse=z3(),Ase=oq(),Nse=cq(),pq=uq(),qse=[Rse.default,Cse.default,(0,Ase.default)(),Nse.default,pq.metadataVocabulary,pq.contentVocabulary];gS.default=qse});var mq=v(Dv=>{"use strict";Object.defineProperty(Dv,"__esModule",{value:!0});Dv.DiscrError=void 0;var dq;(function(t){t.Tag="tag",t.Mapping="mapping"})(dq||(Dv.DiscrError=dq={}))});var hq=v(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});var Is=ee(),xS=mq(),fq=bv(),Dse=Tp(),Use=fe(),Mse={message:({params:{discrError:t,tagName:e}})=>t===xS.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:n}})=>(0,Is._)`{error: ${t}, tag: ${n}, tagValue: ${e}}`},Lse={keyword:"discriminator",type:"object",schemaType:"object",error:Mse,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,Is._)`${n}${(0,Is.getProperty)(s)}`);e.if((0,Is._)`typeof ${u} == "string"`,()=>p(),()=>t.error(!1,{discrError:xS.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,Is._)`${u} === ${m}`),e.assign(c,l(f[m]));e.else(),t.error(!1,{discrError:xS.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,Is.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,Use.schemaHasRulesButRef)(O,a.self.RULES)){let X=O.$ref;if(O=fq.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,X),O instanceof fq.SchemaEnv&&(O=O.schema),O===void 0)throw new Dse.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}}}};bS.default=Lse});var vq=v((J0e,Fse)=>{Fse.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 _S=v((Ae,yS)=>{"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 Bse=d3(),Zse=lq(),Vse=hq(),gq=vq(),Hse=["/properties"],Uv="http://json-schema.org/draft-07/schema",zs=class extends Bse.default{_addVocabularies(){super._addVocabularies(),Zse.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Vse.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(gq,Hse):gq;this.addMetaSchema(e,Uv,!1),this.refs["http://json-schema.org/schema"]=Uv}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Uv)?Uv:void 0)}};Ae.Ajv=zs;yS.exports=Ae=zs;yS.exports.Ajv=zs;Object.defineProperty(Ae,"__esModule",{value:!0});Ae.default=zs;var Wse=$p();Object.defineProperty(Ae,"KeywordCxt",{enumerable:!0,get:function(){return Wse.KeywordCxt}});var Rs=ee();Object.defineProperty(Ae,"_",{enumerable:!0,get:function(){return Rs._}});Object.defineProperty(Ae,"str",{enumerable:!0,get:function(){return Rs.str}});Object.defineProperty(Ae,"stringify",{enumerable:!0,get:function(){return Rs.stringify}});Object.defineProperty(Ae,"nil",{enumerable:!0,get:function(){return Rs.nil}});Object.defineProperty(Ae,"Name",{enumerable:!0,get:function(){return Rs.Name}});Object.defineProperty(Ae,"CodeGen",{enumerable:!0,get:function(){return Rs.CodeGen}});var Gse=gv();Object.defineProperty(Ae,"ValidationError",{enumerable:!0,get:function(){return Gse.default}});var Jse=Tp();Object.defineProperty(Ae,"MissingRefError",{enumerable:!0,get:function(){return Jse.default}})});var Eq=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(_q,ES),time:dr(kS(!0),$S),"date-time":dr(xq(!0),kq),"iso-time":dr(kS(),wq),"iso-date-time":dr(xq(),Sq),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:tce,"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:cce,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:nce,int32:{type:"number",validate:ace},int64:{type:"number",validate:oce},float:{type:"number",validate:yq},double:{type:"number",validate:yq},password:!0,binary:!0};mr.fastFormats={...mr.fullFormats,date:dr(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,ES),time:dr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,$S),"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,kq),"iso-time":dr(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,wq),"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,Sq),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 Kse(t){return t%4===0&&(t%100!==0||t%400===0)}var Xse=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Yse=[0,31,28,31,30,31,30,31,31,30,31,30,31];function _q(t){let e=Xse.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&&Kse(n)?29:Yse[r])}function ES(t,e){if(t&&e)return t>e?1:t<e?-1:0}var wS=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function kS(t){return function(n){let r=wS.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 $S(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 wq(t,e){if(!(t&&e))return;let n=wS.exec(t),r=wS.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 SS=/t|\s/i;function xq(t){let e=kS(t);return function(r){let i=r.split(SS);return i.length===2&&_q(i[0])&&e(i[1])}}function kq(t,e){if(!(t&&e))return;let n=new Date(t).valueOf(),r=new Date(e).valueOf();if(n&&r)return n-r}function Sq(t,e){if(!(t&&e))return;let[n,r]=t.split(SS),[i,a]=e.split(SS),o=ES(n,i);if(o!==void 0)return o||$S(r,a)}var Qse=/\/|:/,ece=/^(?:[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 tce(t){return Qse.test(t)&&ece.test(t)}var bq=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function nce(t){return bq.lastIndex=0,bq.test(t)}var rce=-(2**31),ice=2**31-1;function ace(t){return Number.isInteger(t)&&t<=ice&&t>=rce}function oce(t){return Number.isInteger(t)}function yq(){return!0}var sce=/[^\\]\\Z/;function cce(t){if(sce.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var $q=v(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.formatLimitDefinition=void 0;var uce=_S(),Vn=ee(),Ai=Vn.operators,Mv={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}},pce={message:({keyword:t,schemaCode:e})=>(0,Vn.str)`should be ${Mv[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Vn._)`{comparison: ${Mv[t].okStr}, limit: ${e}}`};Cs.formatLimitDefinition={keyword:Object.keys(Mv),type:"string",schemaType:"string",$data:!0,error:pce,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 uce.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}) ${Mv[i].fail} 0`}},dependencies:["format"]};var lce=t=>(t.addKeyword(Cs.formatLimitDefinition),t);Cs.default=lce});var Oq=v((Lp,Pq)=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var As=Eq(),dce=$q(),TS=ee(),Tq=new TS.Name("fullFormats"),mce=new TS.Name("fastFormats"),jS=(t,e={keywords:!0})=>{if(Array.isArray(e))return jq(t,e,As.fullFormats,Tq),t;let[n,r]=e.mode==="fast"?[As.fastFormats,mce]:[As.fullFormats,Tq],i=e.formats||As.formatNames;return jq(t,i,n,r),e.keywords&&(0,dce.default)(t),t};jS.get=(t,e="full")=>{let r=(e==="fast"?As.fastFormats:As.fullFormats)[t];if(!r)throw new Error(`Unknown format "${t}"`);return r};function jq(t,e,n,r){var i,a;(i=(a=t.opts.code).formats)!==null&&i!==void 0||(a.formats=(0,TS._)`require("ajv-formats/dist/formats").${r}`);for(let o of e)t.addFormat(o,n[o])}Pq.exports=Lp=jS;Object.defineProperty(Lp,"__esModule",{value:!0});Lp.default=jS});function fce(){let t=new Iq.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,zq.default)(t),t}var Iq,zq,Lv,Rq=y(()=>{Iq=se(_S(),1),zq=se(Oq(),1);Lv=class{constructor(e){this._ajv=e??fce()}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 Fv,Cq=y(()=>{Fv=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 Aq(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 Nq(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 qq=y(()=>{});var Bv,Dq=y(()=>{V8();bs();Rq();Wu();Cq();qq();Bv=class extends iv{constructor(e,n){super(n),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(lp.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 Lv,this.setRequestHandler(Oh,r=>this._oninitialize(r)),this.setNotificationHandler(Bw,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Kw,async(r,i)=>{let a=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,s=lp.safeParse(o);return s.success&&this._loggingLevels.set(a,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Fv(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Z8(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(xs,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(vs,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(Vh,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){Nq(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Aq(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:np.includes(n)?n:Dw,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"},jh)}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},Yw,n):this.request({method:"sampling/createMessage",params:e},Xw,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},Hh,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},Hh,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},Qw,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 PS(t){return!!t&&typeof t=="object"&&Mq in t}function Lq(t){return t[Mq]?.complete}var Mq,Uq,Fq=y(()=>{Mq=Symbol.for("mcp.completable");(function(t){t.Completable="McpCompletable"})(Uq||(Uq={}))});var Bq=y(()=>{});function vce(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"),!hce.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 gce(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 OS(t){let e=vce(t);return gce(t,e.warnings),e.isValid}var hce,Zq=y(()=>{hce=/^[A-Za-z0-9._-]{1,128}$/});var Zv,Vq=y(()=>{Zv=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 Vv=y(()=>{Sh();Sh()});function Gq(t){return t!==null&&typeof t=="object"&&"parse"in t&&typeof t.parse=="function"&&"safeParse"in t&&typeof t.safeParse=="function"}function bce(t){return"_def"in t||"_zod"in t||Gq(t)}function IS(t){return typeof t!="object"||t===null||bce(t)?!1:Object.keys(t).length===0?!0:Object.values(t).some(Gq)}function Hq(t){if(t)return IS(t)?ka(t):t}function yce(t){let e=ki(t);return e?Object.entries(e).map(([n,r])=>{let i=aA(r),a=oA(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=uh(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function Wq(t){return{completion:{values:t.slice(0,100),total:t.length,hasMore:t.length>100}}}var Ns,xce,Fp,zS=y(()=>{Dq();Wu();N1();bs();Fq();Bq();Zq();Vq();Vv();Ns=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 Bv(e,n)}get experimental(){return this._experimental||(this._experimental={tasks:new Zv(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(Zh)),this.server.assertCanSetRequestHandler(Ni(xs)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(Zh,()=>({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=ps(n.inputSchema);return i?R1(i,{strictUnions:!0,pipeStrategy:"input"}):xce})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=ps(n.outputSchema);i&&(r.outputSchema=R1(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(xs,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=ps(e.inputSchema)??e.inputSchema,o=await sh(a,n);if(!o.success){let s="error"in o?o.error:"Unknown error",c=ch(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=ps(e.outputSchema),a=await sh(i,n.structuredContent);if(!a.success){let o="error"in a?a.error:"Unknown error",s=ch(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(Wh)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(Wh,async e=>{switch(e.params.ref.type){case"ref/prompt":return o8(e),this.handlePromptCompletion(e,e.params.ref);case"ref/resource":return s8(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 Fp;let a=ki(r.argsSchema)?.[e.params.argument.name];if(!PS(a))return Fp;let o=Lq(a);if(!o)return Fp;let s=await o(e.params.argument.value,e.params.context);return Wq(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 Fp;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 Fp;let a=await i(e.params.argument.value,e.params.context);return Wq(a)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(Ni(Uh)),this.server.assertCanSetRequestHandler(Ni(Mh)),this.server.assertCanSetRequestHandler(Ni(Lh)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(Uh,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(Mh,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(Lh,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(Fh)),this.server.assertCanSetRequestHandler(Ni(Bh)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(Fh,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,n])=>({name:e,title:n.title,description:n.description,arguments:n.argsSchema?yce(n.argsSchema):void 0}))})),this.server.setRequestHandler(Bh,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=ps(r.argsSchema),a=await sh(i,e.params.arguments);if(!a.success){let c="error"in a?a.error:"Unknown error",u=ch(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:ka(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=ka(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 tp?c._def?.innerType:c;return PS(u)})&&this.setCompletionRequestHandler(),o}_createRegisteredTool(e,n,r,i,a,o,s,c,u){OS(e);let p={title:n,description:r,inputSchema:Hq(i),outputSchema:Hq(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"&&OS(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=ka(l.paramsSchema)),typeof l.outputSchema<"u"&&(p.outputSchema=ka(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];IS(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!IS(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()}},xce={type:"object",properties:{}};Fp={completion:{values:[],hasMore:!1}}});function Wce(t){return ip.parse(JSON.parse(t))}function l9(t){return JSON.stringify(t)+`
96
96
  `}var Qv,d9=y(()=>{bs();Qv=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),Wce(n)}clear(){this._buffer=void 0}}});var US,eg,m9=y(()=>{US=se(require("node:process"),1);d9();eg=class{constructor(e=US.default.stdin,n=US.default.stdout){this._stdin=e,this._stdout=n,this._readBuffer=new Qv,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=l9(e);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var v9=v((J_e,h9)=>{var Ms=require("fs"),f9=require("url"),Gce=require("child_process").spawn;h9.exports=MS;MS.XMLHttpRequest=MS;function MS(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=f9.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)Ms.readFile(unescape(L.pathname),function($t,Mi){$t?e.handleError($t,$t.errno||-1):(e.status=200,e.responseText=Mi.toString("utf8"),e.response=Mi,w(e.DONE))});else try{this.response=Ms.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),$e=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:$e,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 Mi=f9.parse(o.url);X=Mi.hostname;var Gr={hostname:Mi.hostname,port:Mi.port,path:Mi.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(cl){if(cl){var yD=Buffer.from(cl);e.response=Buffer.concat([e.response,yD])}d&&w(e.LOADING)}),a.on("end",function(){d&&(d=!1,w(e.DONE),e.responseText=e.response.toString("utf8"))}),a.on("error",function(cl){e.handleError(cl)})},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,Ui=".node-xmlhttprequest-sync-"+process.pid;Ms.writeFileSync(Ui,"","utf8");for(var sl="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('"+Ui+"');});response.on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Ui+"');});}).on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Ui+"');});"+(x?"req.write('"+JSON.stringify(x).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",Ks=Gce(process.argv[0],["-e",sl]),Bue;Ms.existsSync(Ui););if(e.responseText=Ms.readFileSync(hr,"utf8"),Ks.stdin.end(),Ms.unlinkSync(hr),e.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var bD=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));e.handleError(bD,503)}else{e.status=e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var hg=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));a={statusCode:e.status,headers:hg.data.headers},e.responseText=hg.data.text,e.response=Buffer.from(hg.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,Hp,Wp,tg=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";Hp=Object.create(null);Object.keys(Wn).forEach(t=>{Hp[Wn[t]]=t});Wp={type:"error",data:"parser error"}});function x9(t,e){if(t.data instanceof ArrayBuffer||ArrayBuffer.isView(t.data))return e(g9(t.data,!1));Gp(t,!0,n=>{LS||(LS=new TextEncoder),e(LS.encode(n))})}var Gp,g9,LS,b9=y(()=>{tg();Gp=({type:t,data:e},n,r)=>e instanceof ArrayBuffer||ArrayBuffer.isView(e)?r(n?e:"b"+g9(e,!0).toString("base64")):r(Wn[t]+(e||"")),g9=(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 Jp,y9,_9=y(()=>{tg();Jp=(t,e)=>{if(typeof t!="string")return{type:"message",data:y9(t,e)};let n=t.charAt(0);if(n==="b"){let r=Buffer.from(t.substring(1),"base64");return{type:"message",data:y9(r,e)}}return Hp[n]?t.length>1?{type:Hp[n],data:t.substring(1)}:{type:Hp[n]}:Wp},y9=(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 E9(){return new TransformStream({transform(t,e){x9(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 ng(t){return t.reduce((e,n)=>e+n.length,0)}function rg(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 $9(t,e){FS||(FS=new TextDecoder);let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(ng(n)<1)break;let c=rg(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(ng(n)<2)break;let c=rg(n,2);i=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(ng(n)<8)break;let c=rg(n,8),u=new DataView(c.buffer,c.byteOffset,c.length),p=u.getUint32(0);if(p>Math.pow(2,21)-1){s.enqueue(Wp);break}i=p*Math.pow(2,32)+u.getUint32(4),r=3}else{if(ng(n)<i)break;let c=rg(n,i);s.enqueue(Jp(a?c:FS.decode(c),e)),r=0}if(i===0||i>t){s.enqueue(Wp);break}}}})}var w9,k9,S9,FS,BS,Ls=y(()=>{b9();_9();tg();w9="",k9=(t,e)=>{let n=t.length,r=new Array(n),i=0;t.forEach((a,o)=>{Gp(a,!1,s=>{r[o]=s,++i===n&&e(r.join(w9))})})},S9=(t,e)=>{let n=t.split(w9),r=[];for(let i=0;i<n.length;i++){let a=Jp(n[i],e);if(r.push(a),a.type==="error")break}return r};BS=4});function j9(){return new ZS}function Jce(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,T9,ZS,Na=y(()=>{Br=process.nextTick,At=global,T9="nodebuffer";ZS=class{constructor(){this._cookies=new Map}parseCookies(e){e&&e.forEach(n=>{let r=Jce(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 ig(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}function Zr(t,e){e.useNativeTimers?(t.setTimeoutFn=Kce.bind(At),t.clearTimeoutFn=Xce.bind(At)):(t.setTimeoutFn=At.setTimeout.bind(At),t.clearTimeoutFn=At.clearTimeout.bind(At))}function P9(t){return typeof t=="string"?Qce(t):Math.ceil((t.byteLength||t.size)*Yce)}function Qce(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 ag(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var Kce,Xce,Yce,qa=y(()=>{Na();Kce=At.setTimeout,Xce=At.clearTimeout;Yce=1.33});function O9(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function I9(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 VS=y(()=>{});var z9,R9,eue,og,Vr,Kp=y(()=>{Ls();z9=se(pi(),1);qa();VS();R9=se(Y(),1),eue=(0,R9.default)("engine.io-client:transport"),og=class extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}},Vr=class extends z9.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 og(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):eue("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){let n=Jp(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=O9(e);return n.length?"?"+n:""}}});var C9,Gn,Xp,HS=y(()=>{Kp();qa();Ls();C9=se(Y(),1),Gn=(0,C9.default)("engine.io-client:polling"),Xp=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)};S9(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,k9(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]=ag()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}});var A9,N9,q9=y(()=>{A9=!1;try{A9=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}N9=A9});function tue(){}function D9(){for(let t in Hr.requests)Hr.requests.hasOwnProperty(t)&&Hr.requests[t].abort()}function nue(t){let e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||N9))return new XMLHttpRequest}catch{}if(!e)try{return new At[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var U9,M9,WS,sg,Hr,wwe,GS=y(()=>{HS();U9=se(pi(),1);qa();Na();q9();M9=se(Y(),1),WS=(0,M9.default)("engine.io-client:polling");sg=class extends Xp{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(){WS("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 U9.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=ig(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{WS("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))},WS("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=tue,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",D9);else if(typeof addEventListener=="function"){let t="onpagehide"in At?"pagehide":"unload";addEventListener(t,D9,!1)}}wwe=(function(){let t=nue({xdomain:!1});return t&&t.responseType!==null})()});var JS,rue,Fs,KS=y(()=>{JS=se(v9(),1);GS();rue=JS.default||JS,Fs=class extends sg{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 rue(r),this.uri(),e)}}});var iue,aue,oue,XS,sue,L9=y(()=>{iue=se(ky(),1),aue=se(Rd(),1),oue=se(Ad(),1),XS=se(jc(),1),sue=se(Ey(),1)});var F9,uue,pue,cg,Owe,YS=y(()=>{Kp();qa();Ls();Na();F9=se(Y(),1),uue=(0,F9.default)("engine.io-client:websocket"),pue=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",cg=class extends Vr{get name(){return"websocket"}doOpen(){let e=this.uri(),n=this.opts.protocols,r=pue?{}:ig(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;Gp(r,this.supportsBinary,a=>{try{this.doWrite(r,a)}catch{uue("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]=ag()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}},Owe=At.WebSocket||At.MozWebSocket});var Bs,QS=y(()=>{L9();YS();Bs=class extends cg{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 XS.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 B9,Yp,Zs,eE=y(()=>{Kp();Na();Ls();B9=se(Y(),1),Yp=(0,B9.default)("engine.io-client:webtransport"),Zs=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(()=>{Yp("transport closed gracefully"),this.onClose()}).catch(e=>{Yp("transport closed due to %s",e),this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let n=$9(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),i=E9();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();let a=()=>{r.read().then(({done:s,value:c})=>{if(s){Yp("session is closed");return}Yp("received chunk: %o",c),this.onPacket(c),a()}).catch(s=>{Yp("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 tE,nE=y(()=>{KS();QS();eE();tE={websocket:Bs,webtransport:Zs,polling:Fs}});function Vs(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=lue.exec(t||""),a={},o=14;for(;o--;)a[due[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=mue(a,a.path),a.queryKey=fue(a,a.query),a}function mue(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 fue(t,e){let n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}var lue,due,rE=y(()=>{lue=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,due=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"]});var Z9,V9,Ee,iE,Qp,Da,ug,Hs,aE=y(()=>{nE();qa();VS();rE();Z9=se(pi(),1);Ls();Na();V9=se(Y(),1),Ee=(0,V9.default)("engine.io-client:socket"),iE=typeof addEventListener=="function"&&typeof removeEventListener=="function",Qp=[];iE&&addEventListener("offline",()=>{Ee("closing %d connection(s) because the network was lost",Qp.length),Qp.forEach(t=>t())},!1);Da=class t extends Z9.Emitter{constructor(e,n){if(super(),this.binaryType=T9,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=Vs(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=Vs(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=I9(this.opts.query)),iE&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(Ee("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Qp.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=j9()),this._open()}createTransport(e){Ee('creating transport "%s"',e);let n=Object.assign({},this.opts.query);n.EIO=BS,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 Ee("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){Ee("setting transport %s",e.name),this.transport&&(Ee("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(){Ee("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(Ee('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 Ee('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();Ee("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+=P9(i)),r>0&&n>this._maxPayload)return Ee("only send %d out of %d packets",r,this.writeBuffer.length),this.writeBuffer.slice(0,r);n+=2}return Ee("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&&(Ee("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"),Ee("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(Ee("socket error %j",e),t.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return Ee("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(Ee('socket close with reason: "%s"',e),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),iE&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let r=Qp.indexOf(this._offlineEventListener);r!==-1&&(Ee("removing listener for the 'offline' event"),Qp.splice(r,1))}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}};Da.protocol=BS;ug=class extends Da{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){Ee("starting upgrade probes");for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}}_probe(e){Ee('probing transport "%s"',e);let n=this.createTransport(e),r=!1;Da.priorWebsocketSuccess=!1;let i=()=>{r||(Ee('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(Ee('probe transport "%s" pong',e),this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Da.priorWebsocketSuccess=n.name==="websocket",Ee('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{r||this.readyState!=="closed"&&(Ee("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{Ee('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(),Ee('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&&(Ee('"%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}},Hs=class extends ug{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=>tE[i]).filter(i=>!!i)),super(e,r)}}});var H9=y(()=>{HS()});var Qwe,pg=y(()=>{aE();aE();Kp();nE();qa();rE();Na();H9();KS();GS();QS();YS();eE();Qwe=Hs.protocol});function J9(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)||(W9("protocol-less url %s",t),typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),W9("parse %s",t),r=Vs(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 G9,W9,K9=y(()=>{pg();G9=se(Y(),1),W9=(0,G9.default)("socket.io-client:url")});function tl(t){return xue&&(t instanceof ArrayBuffer||bue(t))||yue&&t instanceof Blob||_ue&&t instanceof File}function el(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(el(t[n]))return!0;return!1}if(tl(t))return!0;if(t.toJSON&&typeof t.toJSON=="function"&&arguments.length===1)return el(t.toJSON(),!0);for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&el(t[n]))return!0;return!1}var xue,bue,X9,yue,_ue,oE=y(()=>{xue=typeof ArrayBuffer=="function",bue=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,X9=Object.prototype.toString,yue=typeof Blob=="function"||typeof Blob<"u"&&X9.call(Blob)==="[object BlobConstructor]",_ue=typeof File=="function"||typeof File<"u"&&X9.call(File)==="[object FileConstructor]"});function Y9(t){let e=[],n=t.data,r=t;return r.data=sE(n,e),r.attachments=e.length,{packet:r,buffers:e}}function sE(t,e){if(!t)return t;if(tl(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]=sE(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]=sE(t[r],e));return n}return t}function Q9(t,e){return t.data=cE(t.data,e),delete t.attachments,t}function cE(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]=cE(t[n],e);else if(typeof t=="object")for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=cE(t[n],e));return t}var eD=y(()=>{oE()});var mE={};Jr(mE,{Decoder:()=>lE,Encoder:()=>pE,PacketType:()=>K,isPacketValid:()=>$ue,protocol:()=>iD});function wue(t){return typeof t=="string"}function Sue(t){return t===void 0||kue(t)}function lg(t){return Object.prototype.toString.call(t)==="[object Object]"}function Eue(t,e){switch(t){case K.CONNECT:return e===void 0||lg(e);case K.DISCONNECT:return e===void 0;case K.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&rD.indexOf(e[0])===-1);case K.ACK:return Array.isArray(e);case K.CONNECT_ERROR:return typeof e=="string"||lg(e);default:return!1}}function $ue(t){return wue(t.nsp)&&Sue(t.id)&&Eue(t.type,t.data)}var tD,nD,uE,rD,iD,K,pE,lE,dE,kue,dg=y(()=>{tD=se(pi(),1);eD();oE();nD=se(Y(),1),uE=(0,nD.default)("socket.io-parser"),rD=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],iD=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={}));pE=class{constructor(e){this.replacer=e}encode(e){return uE("encoding packet %j",e),(e.type===K.EVENT||e.type===K.ACK)&&el(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)),uE("encoded %j as %s",e,n),n}encodeAsBinary(e){let n=Y9(e),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}},lE=class t extends tD.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 dE(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(tl(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 uE("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 lg(n);case K.DISCONNECT:return n===void 0;case K.CONNECT_ERROR:return typeof n=="string"||lg(n);case K.EVENT:case K.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&rD.indexOf(n[0])===-1);case K.ACK:case K.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},dE=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=Q9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};kue=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 fE=y(()=>{});var aD,oD,Ke,Tue,Ws,hE=y(()=>{dg();fE();aD=se(pi(),1),oD=se(Y(),1),Ke=(0,oD.default)("socket.io-client:socket"),Tue=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Ws=class extends aD.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(Tue.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 Ua(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 sD=y(()=>{Ua.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};Ua.prototype.reset=function(){this.attempts=0};Ua.prototype.setMin=function(t){this.ms=t};Ua.prototype.setMax=function(t){this.max=t};Ua.prototype.setJitter=function(t){this.jitter=t}});var cD,uD,ht,Gs,pD=y(()=>{pg();hE();dg();fE();sD();cD=se(pi(),1),uD=se(Y(),1),ht=(0,uD.default)("socket.io-client:manager"),Gs=class extends cD.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 Ua({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||mE;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 Hs(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 Ws(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 rl(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};let n=J9(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,o=nl[i]&&a in nl[i].nsps,s=e.forceNew||e["force new connection"]||e.multiplex===!1||o,c;return s?(lD("ignoring socket cache for %s",r),c=new Gs(r,e)):(nl[i]||(lD("new io instance for %s",r),nl[i]=new Gs(r,e)),c=nl[i]),n.query&&!e.query&&(e.query=n.queryKey),c.socket(n.path,e)}var dD,lD,nl,mD=y(()=>{K9();pD();hE();dD=se(Y(),1);dg();pg();lD=(0,dD.default)("socket.io-client"),nl={};Object.assign(rl,{Manager:Gs,Socket:Ws,io:rl,connect:rl})});var que={};function jue(){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 Pue(){let t=xE.join(fD.tmpdir(),"ai-annotator-screenshots");return Js.existsSync(t)||Js.mkdirSync(t,{recursive:!0}),t}function Oue(t,e){let n=Pue(),i=`screenshot-${Date.now()}.${e}`,a=xE.join(n,i),o=Buffer.from(t,"base64");return Js.writeFileSync(a,o),a}function zue(t,e){return t.map(n=>{let r={};"comment"in n&&(r.comment=n.comment);for(let i of Iue)i in n&&(r[i]=n[i]);return e?.includes("attributes")&&"attributes"in n&&(r.attributes=n.attributes),e?.includes("styles")&&"computedStyles"in n&&(r.computedStyles=n.computedStyles),e?.includes("component")&&"componentData"in n&&(r.componentData=n.componentData),e?.includes("children")&&"children"in n&&(r.children=n.children),r})}function Cue(){al&&ol&&(clearTimeout(al),al=null,ol(),ol=null)}function hD(t){return new Promise((e,n)=>{let r=rl(t,{transports:["websocket"],reconnection:!1,query:{clientType:"mcp"}}),i=setTimeout(()=>{r.disconnect(),n(new Error(`Connection timeout to ${t}`))},1e4);r.on("connect",()=>{clearTimeout(i),il=0,e(r)}),r.on("connect_error",a=>{clearTimeout(i),n(new Error(`Failed to connect: ${a.message}`))})})}async function Aue(t,e){for(;il<vE;){il++,console.error(`Reconnecting to server... (attempt ${il}/${vE})`);try{let n=await hD(t);console.error("Reconnected to server successfully"),e(n);return}catch{il>=vE&&(console.error("Max reconnection attempts reached. Exiting."),process.exit(1)),await new Promise(n=>{ol=n,al=setTimeout(()=>{al=null,ol=null,n()},Rue)})}}}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"))})})}function vD(t,e){t.on("disconnect",n=>{console.error(`Disconnected from server: ${n}`),Di=null,!gE&&n!=="io client disconnect"&&(gE=!0,Aue(e,r=>{Di=r,gE=!1,vD(r,e)}))})}async function Nue(){let{serverUrl:t}=jue();try{Di=await hD(t),vD(Di,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 e=new Ns({name:"ai-annotator",version:"1.0.0"}),n=s=>({content:[{type:"text",text:s}]}),r=()=>{if(!Di?.connected)throw Cue(),new Error("Not connected to server. Reconnecting...");return Di},i=ve.string().optional().describe("Browser session ID (optional if only one session)");e.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{try{let s=await Wr(r(),"mcp:listSessions");return n(s.length>0?JSON.stringify(s,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}catch(s){return n(`Error: ${s instanceof Error?s.message:String(s)}`)}}),e.tool("annotator_get_page_context","Get current page context from browser session (URL, title, feedback count)",{sessionId:i},async({sessionId:s})=>{try{let c=await Wr(r(),"mcp:getPageContext",[s]);return n(JSON.stringify(c,null,2))}catch(c){return n(`Error: ${c instanceof Error?c.message:String(c)}`)}}),e.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:ve.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:ve.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:ve.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:s,mode:c,selector:u,selectorType:p})=>{try{let l=await Wr(r(),"mcp:triggerSelection",[s,c,u,p]);return n(l.success?`Feedback selection triggered. ${l.count} feedback item(s) selected.`:`Feedback selection failed: ${l.error}`)}catch(l){return n(`Error: ${l instanceof Error?l.message:String(l)}`)}});let a=ve.enum(["attributes","styles","component","children"]);e.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,fields:ve.array(a).optional().describe("Additional fields to include: attributes, styles (computedStyles), component (componentData), children. By default only basic fields (index, tagName, xpath, cssSelector, textContent) and comment are returned.")},async({sessionId:s,fields:c})=>{try{let u=await Wr(r(),"mcp:getSelectedElements",[s]);if(u.length===0)return n("No feedback selected. Use annotator_select_feedback first.");let p=zue(u,c);return n(JSON.stringify(p,null,2))}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path.",{sessionId:i,type:ve.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:ve.string().optional().describe("CSS selector for element screenshot"),format:ve.enum(["png","jpeg"]).default("png").describe("Image format"),quality:ve.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:s,type:c,selector:u,format:p,quality:l})=>{try{let d=await Wr(r(),"mcp:captureScreenshot",[s,c,u,p,l],3e4);if(d.success&&d.base64){let f=Oue(d.base64,p);return n(f)}return n(`Screenshot failed: ${d.error}`)}catch(d){return n(`Error: ${d instanceof Error?d.message:String(d)}`)}}),e.tool("annotator_clear_feedback","Clear all selected feedback items in the browser. Removes all UI element selections made for feedback.",{sessionId:i},async({sessionId:s})=>{try{return await Wr(r(),"mcp:clearSelection",[s]),n("Feedback cleared.")}catch(c){return n(`Error: ${c instanceof Error?c.message:String(c)}`)}}),e.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:i,css:ve.string().describe("CSS code to inject into the page")},async({sessionId:s,css:c})=>{try{let u=await Wr(r(),"mcp:injectCSS",[s,c]);return n(u.success?"CSS injected successfully.":`CSS injection failed: ${u.error}`)}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:i,code:ve.string().describe("JavaScript code to execute in the page")},async({sessionId:s,code:c})=>{try{let u=await Wr(r(),"mcp:injectJS",[s,c]);return u.success?n(u.result!==void 0?`Result: ${JSON.stringify(u.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${u.error}`)}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:i,clear:ve.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:s,clear:c})=>{try{let u=await Wr(r(),"mcp:getConsole",[s,c]);return n(u.length>0?JSON.stringify(u,null,2):"No console logs captured.")}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}});let o=new eg;await e.connect(o),process.on("SIGINT",()=>{Di?.disconnect(),process.exit(0)}),process.on("SIGTERM",()=>{Di?.disconnect(),process.exit(0)})}var Js,fD,xE,Iue,il,vE,Rue,al,ol,Di,gE,gD=y(()=>{"use strict";zS();m9();mD();Vv();Js=se(require("node:fs"),1),fD=se(require("node:os"),1),xE=se(require("node:path"),1);Iue=["index","tagName","xpath","cssSelector","textContent"];il=0,vE=20,Rue=1e4,al=null,ol=null;Di=null,gE=!1;Nue().catch(t=>{console.error("MCP CLI error:",t),process.exit(1)})});var qi=se(require("node:fs"),1),s9=se(require("node:os"),1),Yv=se(require("node:path"),1),c9=se(require("cors"),1),DS=se(aI(),1);var qR=se(NR(),1),{Server:DR,Namespace:Cme,Socket:Ame}=qR.default;zS();var Kq=require("http2"),Hv=require("http2"),RS=require("stream"),t9=se(require("crypto"),1),Ca=class extends Error{constructor(t,e){super(t,e),this.name="RequestError"}},_ce=t=>t instanceof Ca?t:new Ca(t.message,{cause:t}),wce=global.Request,Bp=class extends wce{constructor(t,e){typeof t=="object"&&Us in t&&(t=t[Us]()),typeof e?.body?.getReader<"u"&&(e.duplex??="half"),super(t,e)}},kce=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)},Xq=Symbol("wrapBodyStream"),Sce=(t,e,n,r,i)=>{let a={method:t,headers:n,signal:i.signal};if(t==="TRACE"){a.method="GET";let o=new Bp(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[Xq]){let o;a.body=new ReadableStream({async pull(s){try{o||=RS.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=RS.Readable.toWeb(r);return new Bp(e,a)},Us=Symbol("getRequestCache"),Ece=Symbol("requestCache"),Wv=Symbol("incomingKey"),Gv=Symbol("urlKey"),$ce=Symbol("headersKey"),Ds=Symbol("abortControllerKey"),Tce=Symbol("getAbortController"),Jv={get method(){return this[Wv].method||"GET"},get url(){return this[Gv]},get headers(){return this[$ce]||=kce(this[Wv])},[Tce](){return this[Us](),this[Ds]},[Us](){return this[Ds]||=new AbortController,this[Ece]||=Sce(this.method,this[Gv],this.headers,this[Wv],this[Ds])}};["body","bodyUsed","cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","signal","keepalive"].forEach(t=>{Object.defineProperty(Jv,t,{get(){return this[Us]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Jv,t,{value:function(){return this[Us]()[t]()}})});Object.setPrototypeOf(Jv,Bp.prototype);var jce=(t,e)=>{let n=Object.create(Jv);n[Wv]=t;let r=t.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(t instanceof Hv.Http2ServerRequest)throw new Ca("Absolute URL for :path is not allowed in HTTP/2");try{let s=new URL(r);n[Gv]=s.href}catch(s){throw new Ca("Invalid absolute URL",{cause:s})}return n}let i=(t instanceof Hv.Http2ServerRequest?t.authority:t.headers.host)||e;if(!i)throw new Ca("Missing host header");let a;if(t instanceof Hv.Http2ServerRequest){if(a=t.scheme,!(a==="http"||a==="https"))throw new Ca("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 Ca("Invalid host header");return n[Gv]=o.href,n},Jq=Symbol("responseCache"),qs=Symbol("getResponseCache"),Aa=Symbol("cache"),AS=global.Response,Zp=class Yq{#t;#e;[qs](){return delete this[Aa],this[Jq]||=new AS(this.#t,this.#e)}constructor(e,n){let r;if(this.#t=e,n instanceof Yq){let i=n[Jq];if(i){this.#e=i,this[qs]();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[Aa]=[n?.status||200,e,r])}get headers(){let e=this[Aa];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2])),e[2]):this[qs]().headers}get status(){return this[Aa]?.[0]??this[qs]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(t=>{Object.defineProperty(Zp.prototype,t,{get(){return this[qs]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Zp.prototype,t,{value:function(){return this[qs]()[t]()}})});Object.setPrototypeOf(Zp,AS);Object.setPrototypeOf(Zp.prototype,AS.prototype);async function Pce(t){return Promise.race([t,Promise.resolve().then(()=>Promise.resolve(void 0))])}function Qq(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 Oce(t,e){if(t.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:Qq(t.getReader(),e)}var e9=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},Ice="x-hono-already-sent";typeof global.crypto>"u"&&(global.crypto=t9.default);var NS=Symbol("outgoingEnded"),zce=()=>new Response(null,{status:400}),n9=t=>new Response(null,{status:t instanceof Error&&(t.name==="TimeoutError"||t.constructor.name==="TimeoutError")?504:500}),CS=(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))},r9=t=>{"flushHeaders"in t&&t.writable&&t.flushHeaders()},i9=async(t,e)=>{let[n,r,i]=t[Aa];i instanceof Headers&&(i=e9(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())):(r9(e),await Oce(r,e)?.catch(a=>CS(a,e))),e[NS]?.()},Rce=t=>typeof t.then=="function",Cce=async(t,e,n={})=>{if(Rce(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(n9);if(Aa in t)return i9(t,e);let r=e9(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 Pce(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&&r9(e),await Qq(i,e,s))}else r[Ice]||(e.writeHead(t.status,r),e.end());e[NS]?.()},qS=(t,e={})=>{let n=e.autoCleanupIncoming??!0;return e.overrideGlobalObjects!==!1&&global.Request!==Bp&&(Object.defineProperty(global,"Request",{value:Bp}),Object.defineProperty(global,"Response",{value:Zp})),async(r,i)=>{let a,o;try{o=jce(r,e.hostname);let s=!n||r.method==="GET"||r.method==="HEAD";if(s||(r[Xq]=!0,r.on("end",()=>{s=!0}),r instanceof Kq.Http2ServerRequest&&(i[NS]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{r.destroy(),i.destroy()})})})),i.on("close",()=>{o[Ds]&&(r.errored?o[Ds].abort(r.errored.toString()):i.writableFinished||o[Ds].abort("Client connection prematurely closed.")),s||setTimeout(()=>{s||setTimeout(()=>{r.destroy()})})}),a=t(o,{incoming:r,outgoing:i}),Aa in a)return i9(a,i)}catch(s){if(a)return CS(s,i);if(e.errorHandler){if(a=await e.errorHandler(o?s:_ce(s)),!a)return}else o?a=n9(s):a=zce()}try{return await Cce(a,i,e)}catch(s){return CS(s,i)}}};bs();var Kv=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=f9.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)Ms.readFile(unescape(L.pathname),function($t,Mi){$t?e.handleError($t,$t.errno||-1):(e.status=200,e.responseText=Mi.toString("utf8"),e.response=Mi,w(e.DONE))});else try{this.response=Ms.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),$e=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:$e,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 Mi=f9.parse(o.url);X=Mi.hostname;var Gr={hostname:Mi.hostname,port:Mi.port,path:Mi.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(cl){if(cl){var yD=Buffer.from(cl);e.response=Buffer.concat([e.response,yD])}d&&w(e.LOADING)}),a.on("end",function(){d&&(d=!1,w(e.DONE),e.responseText=e.response.toString("utf8"))}),a.on("error",function(cl){e.handleError(cl)})},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,Ui=".node-xmlhttprequest-sync-"+process.pid;Ms.writeFileSync(Ui,"","utf8");for(var sl="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('"+Ui+"');});response.on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Ui+"');});}).on('error', function(error) {fs.writeFileSync('"+hr+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+Ui+"');});"+(x?"req.write('"+JSON.stringify(x).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",Ks=Gce(process.argv[0],["-e",sl]),Bue;Ms.existsSync(Ui););if(e.responseText=Ms.readFileSync(hr,"utf8"),Ks.stdin.end(),Ms.unlinkSync(hr),e.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var bD=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));e.handleError(bD,503)}else{e.status=e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var hg=JSON.parse(e.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));a={statusCode:e.status,headers:hg.data.headers},e.responseText=hg.data.text,e.response=Buffer.from(hg.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,Hp,Wp,tg=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";Hp=Object.create(null);Object.keys(Wn).forEach(t=>{Hp[Wn[t]]=t});Wp={type:"error",data:"parser error"}});function x9(t,e){if(t.data instanceof ArrayBuffer||ArrayBuffer.isView(t.data))return e(g9(t.data,!1));Gp(t,!0,n=>{LS||(LS=new TextEncoder),e(LS.encode(n))})}var Gp,g9,LS,b9=y(()=>{tg();Gp=({type:t,data:e},n,r)=>e instanceof ArrayBuffer||ArrayBuffer.isView(e)?r(n?e:"b"+g9(e,!0).toString("base64")):r(Wn[t]+(e||"")),g9=(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 Jp,y9,_9=y(()=>{tg();Jp=(t,e)=>{if(typeof t!="string")return{type:"message",data:y9(t,e)};let n=t.charAt(0);if(n==="b"){let r=Buffer.from(t.substring(1),"base64");return{type:"message",data:y9(r,e)}}return Hp[n]?t.length>1?{type:Hp[n],data:t.substring(1)}:{type:Hp[n]}:Wp},y9=(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 E9(){return new TransformStream({transform(t,e){x9(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 ng(t){return t.reduce((e,n)=>e+n.length,0)}function rg(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 $9(t,e){FS||(FS=new TextDecoder);let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(ng(n)<1)break;let c=rg(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(ng(n)<2)break;let c=rg(n,2);i=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(ng(n)<8)break;let c=rg(n,8),u=new DataView(c.buffer,c.byteOffset,c.length),p=u.getUint32(0);if(p>Math.pow(2,21)-1){s.enqueue(Wp);break}i=p*Math.pow(2,32)+u.getUint32(4),r=3}else{if(ng(n)<i)break;let c=rg(n,i);s.enqueue(Jp(a?c:FS.decode(c),e)),r=0}if(i===0||i>t){s.enqueue(Wp);break}}}})}var w9,k9,S9,FS,BS,Ls=y(()=>{b9();_9();tg();w9="",k9=(t,e)=>{let n=t.length,r=new Array(n),i=0;t.forEach((a,o)=>{Gp(a,!1,s=>{r[o]=s,++i===n&&e(r.join(w9))})})},S9=(t,e)=>{let n=t.split(w9),r=[];for(let i=0;i<n.length;i++){let a=Jp(n[i],e);if(r.push(a),a.type==="error")break}return r};BS=4});function j9(){return new ZS}function Jce(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,T9,ZS,Na=y(()=>{Br=process.nextTick,At=global,T9="nodebuffer";ZS=class{constructor(){this._cookies=new Map}parseCookies(e){e&&e.forEach(n=>{let r=Jce(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 ig(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}function Zr(t,e){e.useNativeTimers?(t.setTimeoutFn=Kce.bind(At),t.clearTimeoutFn=Xce.bind(At)):(t.setTimeoutFn=At.setTimeout.bind(At),t.clearTimeoutFn=At.clearTimeout.bind(At))}function P9(t){return typeof t=="string"?Qce(t):Math.ceil((t.byteLength||t.size)*Yce)}function Qce(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 ag(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var Kce,Xce,Yce,qa=y(()=>{Na();Kce=At.setTimeout,Xce=At.clearTimeout;Yce=1.33});function O9(t){let e="";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e}function I9(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 VS=y(()=>{});var z9,R9,eue,og,Vr,Kp=y(()=>{Ls();z9=se(pi(),1);qa();VS();R9=se(Y(),1),eue=(0,R9.default)("engine.io-client:transport"),og=class extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type="TransportError"}},Vr=class extends z9.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 og(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):eue("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){let n=Jp(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=O9(e);return n.length?"?"+n:""}}});var C9,Gn,Xp,HS=y(()=>{Kp();qa();Ls();C9=se(Y(),1),Gn=(0,C9.default)("engine.io-client:polling"),Xp=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)};S9(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,k9(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]=ag()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}});var A9,N9,q9=y(()=>{A9=!1;try{A9=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}N9=A9});function tue(){}function D9(){for(let t in Hr.requests)Hr.requests.hasOwnProperty(t)&&Hr.requests[t].abort()}function nue(t){let e=t.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||N9))return new XMLHttpRequest}catch{}if(!e)try{return new At[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var U9,M9,WS,sg,Hr,wwe,GS=y(()=>{HS();U9=se(pi(),1);qa();Na();q9();M9=se(Y(),1),WS=(0,M9.default)("engine.io-client:polling");sg=class extends Xp{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(){WS("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 U9.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=ig(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{WS("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))},WS("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=tue,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",D9);else if(typeof addEventListener=="function"){let t="onpagehide"in At?"pagehide":"unload";addEventListener(t,D9,!1)}}wwe=(function(){let t=nue({xdomain:!1});return t&&t.responseType!==null})()});var JS,rue,Fs,KS=y(()=>{JS=se(v9(),1);GS();rue=JS.default||JS,Fs=class extends sg{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 rue(r),this.uri(),e)}}});var iue,aue,oue,XS,sue,L9=y(()=>{iue=se(ky(),1),aue=se(Rd(),1),oue=se(Ad(),1),XS=se(jc(),1),sue=se(Ey(),1)});var F9,uue,pue,cg,Owe,YS=y(()=>{Kp();qa();Ls();Na();F9=se(Y(),1),uue=(0,F9.default)("engine.io-client:websocket"),pue=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",cg=class extends Vr{get name(){return"websocket"}doOpen(){let e=this.uri(),n=this.opts.protocols,r=pue?{}:ig(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;Gp(r,this.supportsBinary,a=>{try{this.doWrite(r,a)}catch{uue("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]=ag()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}},Owe=At.WebSocket||At.MozWebSocket});var Bs,QS=y(()=>{L9();YS();Bs=class extends cg{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 XS.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 B9,Yp,Zs,eE=y(()=>{Kp();Na();Ls();B9=se(Y(),1),Yp=(0,B9.default)("engine.io-client:webtransport"),Zs=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(()=>{Yp("transport closed gracefully"),this.onClose()}).catch(e=>{Yp("transport closed due to %s",e),this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let n=$9(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),i=E9();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();let a=()=>{r.read().then(({done:s,value:c})=>{if(s){Yp("session is closed");return}Yp("received chunk: %o",c),this.onPacket(c),a()}).catch(s=>{Yp("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 tE,nE=y(()=>{KS();QS();eE();tE={websocket:Bs,webtransport:Zs,polling:Fs}});function Vs(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=lue.exec(t||""),a={},o=14;for(;o--;)a[due[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=mue(a,a.path),a.queryKey=fue(a,a.query),a}function mue(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 fue(t,e){let n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,a){i&&(n[i]=a)}),n}var lue,due,rE=y(()=>{lue=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,due=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"]});var Z9,V9,Ee,iE,Qp,Da,ug,Hs,aE=y(()=>{nE();qa();VS();rE();Z9=se(pi(),1);Ls();Na();V9=se(Y(),1),Ee=(0,V9.default)("engine.io-client:socket"),iE=typeof addEventListener=="function"&&typeof removeEventListener=="function",Qp=[];iE&&addEventListener("offline",()=>{Ee("closing %d connection(s) because the network was lost",Qp.length),Qp.forEach(t=>t())},!1);Da=class t extends Z9.Emitter{constructor(e,n){if(super(),this.binaryType=T9,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=Vs(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=Vs(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=I9(this.opts.query)),iE&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(Ee("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Qp.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=j9()),this._open()}createTransport(e){Ee('creating transport "%s"',e);let n=Object.assign({},this.opts.query);n.EIO=BS,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 Ee("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){Ee("setting transport %s",e.name),this.transport&&(Ee("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(){Ee("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(Ee('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 Ee('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();Ee("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+=P9(i)),r>0&&n>this._maxPayload)return Ee("only send %d out of %d packets",r,this.writeBuffer.length),this.writeBuffer.slice(0,r);n+=2}return Ee("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&&(Ee("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"),Ee("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(Ee("socket error %j",e),t.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return Ee("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(Ee('socket close with reason: "%s"',e),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),iE&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let r=Qp.indexOf(this._offlineEventListener);r!==-1&&(Ee("removing listener for the 'offline' event"),Qp.splice(r,1))}this.readyState="closed",this.id=null,this.emitReserved("close",e,n),this.writeBuffer=[],this._prevBufferLen=0}}};Da.protocol=BS;ug=class extends Da{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){Ee("starting upgrade probes");for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}}_probe(e){Ee('probing transport "%s"',e);let n=this.createTransport(e),r=!1;Da.priorWebsocketSuccess=!1;let i=()=>{r||(Ee('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(Ee('probe transport "%s" pong',e),this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Da.priorWebsocketSuccess=n.name==="websocket",Ee('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{r||this.readyState!=="closed"&&(Ee("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{Ee('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(),Ee('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&&(Ee('"%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}},Hs=class extends ug{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=>tE[i]).filter(i=>!!i)),super(e,r)}}});var H9=y(()=>{HS()});var Qwe,pg=y(()=>{aE();aE();Kp();nE();qa();rE();Na();H9();KS();GS();QS();YS();eE();Qwe=Hs.protocol});function J9(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)||(W9("protocol-less url %s",t),typeof n<"u"?t=n.protocol+"//"+t:t="https://"+t),W9("parse %s",t),r=Vs(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 G9,W9,K9=y(()=>{pg();G9=se(Y(),1),W9=(0,G9.default)("socket.io-client:url")});function tl(t){return xue&&(t instanceof ArrayBuffer||bue(t))||yue&&t instanceof Blob||_ue&&t instanceof File}function el(t,e){if(!t||typeof t!="object")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(el(t[n]))return!0;return!1}if(tl(t))return!0;if(t.toJSON&&typeof t.toJSON=="function"&&arguments.length===1)return el(t.toJSON(),!0);for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&el(t[n]))return!0;return!1}var xue,bue,X9,yue,_ue,oE=y(()=>{xue=typeof ArrayBuffer=="function",bue=t=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,X9=Object.prototype.toString,yue=typeof Blob=="function"||typeof Blob<"u"&&X9.call(Blob)==="[object BlobConstructor]",_ue=typeof File=="function"||typeof File<"u"&&X9.call(File)==="[object FileConstructor]"});function Y9(t){let e=[],n=t.data,r=t;return r.data=sE(n,e),r.attachments=e.length,{packet:r,buffers:e}}function sE(t,e){if(!t)return t;if(tl(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]=sE(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]=sE(t[r],e));return n}return t}function Q9(t,e){return t.data=cE(t.data,e),delete t.attachments,t}function cE(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]=cE(t[n],e);else if(typeof t=="object")for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=cE(t[n],e));return t}var eD=y(()=>{oE()});var mE={};Jr(mE,{Decoder:()=>lE,Encoder:()=>pE,PacketType:()=>K,isPacketValid:()=>$ue,protocol:()=>iD});function wue(t){return typeof t=="string"}function Sue(t){return t===void 0||kue(t)}function lg(t){return Object.prototype.toString.call(t)==="[object Object]"}function Eue(t,e){switch(t){case K.CONNECT:return e===void 0||lg(e);case K.DISCONNECT:return e===void 0;case K.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&rD.indexOf(e[0])===-1);case K.ACK:return Array.isArray(e);case K.CONNECT_ERROR:return typeof e=="string"||lg(e);default:return!1}}function $ue(t){return wue(t.nsp)&&Sue(t.id)&&Eue(t.type,t.data)}var tD,nD,uE,rD,iD,K,pE,lE,dE,kue,dg=y(()=>{tD=se(pi(),1);eD();oE();nD=se(Y(),1),uE=(0,nD.default)("socket.io-parser"),rD=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],iD=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={}));pE=class{constructor(e){this.replacer=e}encode(e){return uE("encoding packet %j",e),(e.type===K.EVENT||e.type===K.ACK)&&el(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)),uE("encoded %j as %s",e,n),n}encodeAsBinary(e){let n=Y9(e),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}},lE=class t extends tD.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 dE(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(tl(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 uE("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 lg(n);case K.DISCONNECT:return n===void 0;case K.CONNECT_ERROR:return typeof n=="string"||lg(n);case K.EVENT:case K.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&rD.indexOf(n[0])===-1);case K.ACK:case K.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},dE=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=Q9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};kue=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 fE=y(()=>{});var aD,oD,Ke,Tue,Ws,hE=y(()=>{dg();fE();aD=se(pi(),1),oD=se(Y(),1),Ke=(0,oD.default)("socket.io-client:socket"),Tue=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),Ws=class extends aD.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(Tue.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 Ua(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 sD=y(()=>{Ua.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};Ua.prototype.reset=function(){this.attempts=0};Ua.prototype.setMin=function(t){this.ms=t};Ua.prototype.setMax=function(t){this.max=t};Ua.prototype.setJitter=function(t){this.jitter=t}});var cD,uD,ht,Gs,pD=y(()=>{pg();hE();dg();fE();sD();cD=se(pi(),1),uD=se(Y(),1),ht=(0,uD.default)("socket.io-client:manager"),Gs=class extends cD.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 Ua({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||mE;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 Hs(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 Ws(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 rl(t,e){typeof t=="object"&&(e=t,t=void 0),e=e||{};let n=J9(t,e.path||"/socket.io"),r=n.source,i=n.id,a=n.path,o=nl[i]&&a in nl[i].nsps,s=e.forceNew||e["force new connection"]||e.multiplex===!1||o,c;return s?(lD("ignoring socket cache for %s",r),c=new Gs(r,e)):(nl[i]||(lD("new io instance for %s",r),nl[i]=new Gs(r,e)),c=nl[i]),n.query&&!e.query&&(e.query=n.queryKey),c.socket(n.path,e)}var dD,lD,nl,mD=y(()=>{K9();pD();hE();dD=se(Y(),1);dg();pg();lD=(0,dD.default)("socket.io-client"),nl={};Object.assign(rl,{Manager:Gs,Socket:Ws,io:rl,connect:rl})});var que={};function jue(){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 Pue(){let t=xE.join(fD.tmpdir(),"ai-annotator-screenshots");return Js.existsSync(t)||Js.mkdirSync(t,{recursive:!0}),t}function Oue(t,e){let n=Pue(),i=`screenshot-${Date.now()}.${e}`,a=xE.join(n,i),o=Buffer.from(t,"base64");return Js.writeFileSync(a,o),a}function zue(t,e){return t.map(n=>{let r={};"comment"in n&&(r.comment=n.comment),"componentData"in n&&(r.componentData=n.componentData);for(let i of Iue)i in n&&(r[i]=n[i]);return e?.includes("xpath")&&"xpath"in n&&(r.xpath=n.xpath),e?.includes("attributes")&&"attributes"in n&&(r.attributes=n.attributes),e?.includes("styles")&&"computedStyles"in n&&(r.computedStyles=n.computedStyles),e?.includes("children")&&"children"in n&&(r.children=n.children),r})}function Cue(){al&&ol&&(clearTimeout(al),al=null,ol(),ol=null)}function hD(t){return new Promise((e,n)=>{let r=rl(t,{transports:["websocket"],reconnection:!1,query:{clientType:"mcp"}}),i=setTimeout(()=>{r.disconnect(),n(new Error(`Connection timeout to ${t}`))},1e4);r.on("connect",()=>{clearTimeout(i),il=0,e(r)}),r.on("connect_error",a=>{clearTimeout(i),n(new Error(`Failed to connect: ${a.message}`))})})}async function Aue(t,e){for(;il<vE;){il++,console.error(`Reconnecting to server... (attempt ${il}/${vE})`);try{let n=await hD(t);console.error("Reconnected to server successfully"),e(n);return}catch{il>=vE&&(console.error("Max reconnection attempts reached. Exiting."),process.exit(1)),await new Promise(n=>{ol=n,al=setTimeout(()=>{al=null,ol=null,n()},Rue)})}}}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"))})})}function vD(t,e){t.on("disconnect",n=>{console.error(`Disconnected from server: ${n}`),Di=null,!gE&&n!=="io client disconnect"&&(gE=!0,Aue(e,r=>{Di=r,gE=!1,vD(r,e)}))})}async function Nue(){let{serverUrl:t}=jue();try{Di=await hD(t),vD(Di,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 e=new Ns({name:"ai-annotator",version:"1.0.0"}),n=s=>({content:[{type:"text",text:s}]}),r=()=>{if(!Di?.connected)throw Cue(),new Error("Not connected to server. Reconnecting...");return Di},i=ve.string().optional().describe("Browser session ID (optional if only one session)");e.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{try{let s=await Wr(r(),"mcp:listSessions");return n(s.length>0?JSON.stringify(s,null,2):"No browser sessions connected. Add the annotator script to your webpage.")}catch(s){return n(`Error: ${s instanceof Error?s.message:String(s)}`)}}),e.tool("annotator_get_page_context","Get current page context from browser session (URL, title, feedback count)",{sessionId:i},async({sessionId:s})=>{try{let c=await Wr(r(),"mcp:getPageContext",[s]);return n(JSON.stringify(c,null,2))}catch(c){return n(`Error: ${c instanceof Error?c.message:String(c)}`)}}),e.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:ve.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:ve.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:ve.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:s,mode:c,selector:u,selectorType:p})=>{try{let l=await Wr(r(),"mcp:triggerSelection",[s,c,u,p]);return n(l.success?`Feedback selection triggered. ${l.count} feedback item(s) selected.`:`Feedback selection failed: ${l.error}`)}catch(l){return n(`Error: ${l instanceof Error?l.message:String(l)}`)}});let a=ve.enum(["xpath","attributes","styles","children"]);e.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,fields:ve.array(a).optional().describe("Additional fields to include: xpath, attributes, styles (computedStyles), children. By default returns basic fields (index, tagName, cssSelector, textContent), comment, and componentData.")},async({sessionId:s,fields:c})=>{try{let u=await Wr(r(),"mcp:getSelectedElements",[s]);if(u.length===0)return n("No feedback selected. Use annotator_select_feedback first.");let p=zue(u,c);return n(JSON.stringify(p,null,2))}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_capture_screenshot","Capture a screenshot of the viewport or a specific element. Returns the file path.",{sessionId:i,type:ve.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:ve.string().optional().describe("CSS selector for element screenshot"),format:ve.enum(["png","jpeg"]).default("png").describe("Image format"),quality:ve.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:s,type:c,selector:u,format:p,quality:l})=>{try{let d=await Wr(r(),"mcp:captureScreenshot",[s,c,u,p,l],3e4);if(d.success&&d.base64){let f=Oue(d.base64,p);return n(f)}return n(`Screenshot failed: ${d.error}`)}catch(d){return n(`Error: ${d instanceof Error?d.message:String(d)}`)}}),e.tool("annotator_clear_feedback","Clear all selected feedback items in the browser. Removes all UI element selections made for feedback.",{sessionId:i},async({sessionId:s})=>{try{return await Wr(r(),"mcp:clearSelection",[s]),n("Feedback cleared.")}catch(c){return n(`Error: ${c instanceof Error?c.message:String(c)}`)}}),e.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:i,css:ve.string().describe("CSS code to inject into the page")},async({sessionId:s,css:c})=>{try{let u=await Wr(r(),"mcp:injectCSS",[s,c]);return n(u.success?"CSS injected successfully.":`CSS injection failed: ${u.error}`)}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:i,code:ve.string().describe("JavaScript code to execute in the page")},async({sessionId:s,code:c})=>{try{let u=await Wr(r(),"mcp:injectJS",[s,c]);return u.success?n(u.result!==void 0?`Result: ${JSON.stringify(u.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${u.error}`)}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}}),e.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:i,clear:ve.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:s,clear:c})=>{try{let u=await Wr(r(),"mcp:getConsole",[s,c]);return n(u.length>0?JSON.stringify(u,null,2):"No console logs captured.")}catch(u){return n(`Error: ${u instanceof Error?u.message:String(u)}`)}});let o=new eg;await e.connect(o),process.on("SIGINT",()=>{Di?.disconnect(),process.exit(0)}),process.on("SIGTERM",()=>{Di?.disconnect(),process.exit(0)})}var Js,fD,xE,Iue,il,vE,Rue,al,ol,Di,gE,gD=y(()=>{"use strict";zS();m9();mD();Vv();Js=se(require("node:fs"),1),fD=se(require("node:os"),1),xE=se(require("node:path"),1);Iue=["index","tagName","cssSelector","textContent"];il=0,vE=20,Rue=1e4,al=null,ol=null;Di=null,gE=!1;Nue().catch(t=>{console.error("MCP CLI error:",t),process.exit(1)})});var qi=se(require("node:fs"),1),s9=se(require("node:os"),1),Yv=se(require("node:path"),1),c9=se(require("cors"),1),DS=se(aI(),1);var qR=se(NR(),1),{Server:DR,Namespace:Cme,Socket:Ame}=qR.default;zS();var Kq=require("http2"),Hv=require("http2"),RS=require("stream"),t9=se(require("crypto"),1),Ca=class extends Error{constructor(t,e){super(t,e),this.name="RequestError"}},_ce=t=>t instanceof Ca?t:new Ca(t.message,{cause:t}),wce=global.Request,Bp=class extends wce{constructor(t,e){typeof t=="object"&&Us in t&&(t=t[Us]()),typeof e?.body?.getReader<"u"&&(e.duplex??="half"),super(t,e)}},kce=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)},Xq=Symbol("wrapBodyStream"),Sce=(t,e,n,r,i)=>{let a={method:t,headers:n,signal:i.signal};if(t==="TRACE"){a.method="GET";let o=new Bp(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[Xq]){let o;a.body=new ReadableStream({async pull(s){try{o||=RS.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=RS.Readable.toWeb(r);return new Bp(e,a)},Us=Symbol("getRequestCache"),Ece=Symbol("requestCache"),Wv=Symbol("incomingKey"),Gv=Symbol("urlKey"),$ce=Symbol("headersKey"),Ds=Symbol("abortControllerKey"),Tce=Symbol("getAbortController"),Jv={get method(){return this[Wv].method||"GET"},get url(){return this[Gv]},get headers(){return this[$ce]||=kce(this[Wv])},[Tce](){return this[Us](),this[Ds]},[Us](){return this[Ds]||=new AbortController,this[Ece]||=Sce(this.method,this[Gv],this.headers,this[Wv],this[Ds])}};["body","bodyUsed","cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","signal","keepalive"].forEach(t=>{Object.defineProperty(Jv,t,{get(){return this[Us]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Jv,t,{value:function(){return this[Us]()[t]()}})});Object.setPrototypeOf(Jv,Bp.prototype);var jce=(t,e)=>{let n=Object.create(Jv);n[Wv]=t;let r=t.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(t instanceof Hv.Http2ServerRequest)throw new Ca("Absolute URL for :path is not allowed in HTTP/2");try{let s=new URL(r);n[Gv]=s.href}catch(s){throw new Ca("Invalid absolute URL",{cause:s})}return n}let i=(t instanceof Hv.Http2ServerRequest?t.authority:t.headers.host)||e;if(!i)throw new Ca("Missing host header");let a;if(t instanceof Hv.Http2ServerRequest){if(a=t.scheme,!(a==="http"||a==="https"))throw new Ca("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 Ca("Invalid host header");return n[Gv]=o.href,n},Jq=Symbol("responseCache"),qs=Symbol("getResponseCache"),Aa=Symbol("cache"),AS=global.Response,Zp=class Yq{#t;#e;[qs](){return delete this[Aa],this[Jq]||=new AS(this.#t,this.#e)}constructor(e,n){let r;if(this.#t=e,n instanceof Yq){let i=n[Jq];if(i){this.#e=i,this[qs]();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[Aa]=[n?.status||200,e,r])}get headers(){let e=this[Aa];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2])),e[2]):this[qs]().headers}get status(){return this[Aa]?.[0]??this[qs]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(t=>{Object.defineProperty(Zp.prototype,t,{get(){return this[qs]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Zp.prototype,t,{value:function(){return this[qs]()[t]()}})});Object.setPrototypeOf(Zp,AS);Object.setPrototypeOf(Zp.prototype,AS.prototype);async function Pce(t){return Promise.race([t,Promise.resolve().then(()=>Promise.resolve(void 0))])}function Qq(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 Oce(t,e){if(t.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:Qq(t.getReader(),e)}var e9=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},Ice="x-hono-already-sent";typeof global.crypto>"u"&&(global.crypto=t9.default);var NS=Symbol("outgoingEnded"),zce=()=>new Response(null,{status:400}),n9=t=>new Response(null,{status:t instanceof Error&&(t.name==="TimeoutError"||t.constructor.name==="TimeoutError")?504:500}),CS=(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))},r9=t=>{"flushHeaders"in t&&t.writable&&t.flushHeaders()},i9=async(t,e)=>{let[n,r,i]=t[Aa];i instanceof Headers&&(i=e9(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())):(r9(e),await Oce(r,e)?.catch(a=>CS(a,e))),e[NS]?.()},Rce=t=>typeof t.then=="function",Cce=async(t,e,n={})=>{if(Rce(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(n9);if(Aa in t)return i9(t,e);let r=e9(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 Pce(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&&r9(e),await Qq(i,e,s))}else r[Ice]||(e.writeHead(t.status,r),e.end());e[NS]?.()},qS=(t,e={})=>{let n=e.autoCleanupIncoming??!0;return e.overrideGlobalObjects!==!1&&global.Request!==Bp&&(Object.defineProperty(global,"Request",{value:Bp}),Object.defineProperty(global,"Response",{value:Zp})),async(r,i)=>{let a,o;try{o=jce(r,e.hostname);let s=!n||r.method==="GET"||r.method==="HEAD";if(s||(r[Xq]=!0,r.on("end",()=>{s=!0}),r instanceof Kq.Http2ServerRequest&&(i[NS]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{r.destroy(),i.destroy()})})})),i.on("close",()=>{o[Ds]&&(r.errored?o[Ds].abort(r.errored.toString()):i.writableFinished||o[Ds].abort("Client connection prematurely closed.")),s||setTimeout(()=>{s||setTimeout(()=>{r.destroy()})})}),a=t(o,{incoming:r,outgoing:i}),Aa in a)return i9(a,i)}catch(s){if(a)return CS(s,i);if(e.errorHandler){if(a=await e.errorHandler(o?s:_ce(s)),!a)return}else o?a=n9(s):a=zce()}try{return await Cce(a,i,e)}catch(s){return CS(s,i)}}};bs();var Kv=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}
@@ -106,12 +106,12 @@ data:
106
106
  `;return i&&(a+=`id: ${i}
107
107
  `),a+=`data: ${JSON.stringify(r)}
108
108
 
109
- `,e.enqueue(n.encode(a)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(e,n){try{let r=e.headers.get("accept");if(!r?.includes("application/json")||!r.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let i=e.headers.get("content-type");if(!i||!i.includes("application/json"))return this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let a={headers:Object.fromEntries(e.headers.entries())},o;if(n?.parsedBody!==void 0)o=n.parsedBody;else try{o=await e.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let s;try{Array.isArray(o)?s=o.map(b=>ip.parse(b)):s=[ip.parse(o)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let c=s.some(Fw);if(c){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(s.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!c){let b=this.validateSession(e);if(b)return b;let w=this.validateProtocolVersion(e);if(w)return w}if(!s.some(Ei)){for(let b of s)this.onmessage?.(b,{authInfo:n?.authInfo,requestInfo:a});return new Response(null,{status:202})}let p=crypto.randomUUID(),l=s.find(b=>Fw(b)),d=l?l.params.protocolVersion:e.headers.get("mcp-protocol-version")??HA;if(this._enableJsonResponse)return new Promise(b=>{this._streamMapping.set(p,{resolveJson:b,cleanup:()=>{this._streamMapping.delete(p)}});for(let w of s)Ei(w)&&this._requestToStreamMapping.set(w.id,p);for(let w of s)this.onmessage?.(w,{authInfo:n?.authInfo,requestInfo:a})});let f=new TextEncoder,m,h=new ReadableStream({start:b=>{m=b},cancel:()=>{this._streamMapping.delete(p)}}),g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};this.sessionId!==void 0&&(g["mcp-session-id"]=this.sessionId);for(let b of s)Ei(b)&&(this._streamMapping.set(p,{controller:m,encoder:f,cleanup:()=>{this._streamMapping.delete(p);try{m.close()}catch{}}}),this._requestToStreamMapping.set(b.id,p));await this.writePrimingEvent(m,f,p,d);for(let b of s){let w,x;Ei(b)&&this._eventStore&&d>="2025-11-25"&&(w=()=>{this.closeSSEStream(b.id)},x=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(b,{authInfo:n?.authInfo,requestInfo:a,closeSSEStream:w,closeStandaloneSSEStream:x})}return new Response(h,{status:200,headers:g})}catch(r){return this.onerror?.(r),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(r)})}}async handleDeleteRequest(e){let n=this.validateSession(e);if(n)return n;let r=this.validateProtocolVersion(e);return r||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let n=e.headers.get("mcp-session-id");if(!n)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(n!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(e){let n=e.headers.get("mcp-protocol-version");if(n!==null&&!np.includes(n))return this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${n} (supported versions: ${np.join(", ")})`)}async close(){this._streamMapping.forEach(({cleanup:e})=>{e()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(e){let n=this._requestToStreamMapping.get(e);if(!n)return;let r=this._streamMapping.get(n);r&&r.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,n){let r=n?.relatedRequestId;if((qr(e)||hs(e))&&(r=e.id),r===void 0){if(qr(e)||hs(e))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let o;this._eventStore&&(o=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let s=this._streamMapping.get(this._standaloneSseStreamId);if(s===void 0)return;s.controller&&s.encoder&&this.writeSSEEvent(s.controller,s.encoder,e,o);return}let i=this._requestToStreamMapping.get(r);if(!i)throw new Error(`No connection established for request ID: ${String(r)}`);let a=this._streamMapping.get(i);if(!this._enableJsonResponse&&a?.controller&&a?.encoder){let o;this._eventStore&&(o=await this._eventStore.storeEvent(i,e)),this.writeSSEEvent(a.controller,a.encoder,e,o)}if(qr(e)||hs(e)){this._requestResponseMap.set(r,e);let o=Array.from(this._requestToStreamMapping.entries()).filter(([c,u])=>u===i).map(([c])=>c);if(o.every(c=>this._requestResponseMap.has(c))){if(!a)throw new Error(`No connection established for request ID: ${String(r)}`);if(this._enableJsonResponse&&a.resolveJson){let c={"Content-Type":"application/json"};this.sessionId!==void 0&&(c["mcp-session-id"]=this.sessionId);let u=o.map(p=>this._requestResponseMap.get(p));u.length===1?a.resolveJson(new Response(JSON.stringify(u[0]),{status:200,headers:c})):a.resolveJson(new Response(JSON.stringify(u),{status:200,headers:c}))}else a.cleanup();for(let c of o)this._requestResponseMap.delete(c),this._requestToStreamMapping.delete(c)}}}};var Xv=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new Kv(e),this._requestListener=qS(async n=>{let r=this._requestContext.get(n);return this._webStandardTransport.handleRequest(n,{authInfo:r?.authInfo,parsedBody:r?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,n){return this._webStandardTransport.send(e,n)}async handleRequest(e,n,r){let i=e.auth;await qS(async o=>this._webStandardTransport.handleRequest(o,{authInfo:i,parsedBody:r}),{overrideGlobalObjects:!1})(e,n)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};Vv();function a9(t){let e=[],n=!1,r=()=>{if(n)throw new Error("RpcServer has been disposed")};return{handle:{getSessions(o){r();let s=async c=>{try{let u=await o();c(u)}catch(u){console.error("[getSessions] Handler error:",u),c({message:u instanceof Error?u.message:String(u),code:"INTERNAL_ERROR",data:void 0})}};t.on("getSessions",s),e.push(()=>t.off("getSessions",s))},ping(o){r();let s=async c=>{try{let u=await o();c(u)}catch(u){console.error("[ping] Handler error:",u),c({message:u instanceof Error?u.message:String(u),code:"INTERNAL_ERROR",data:void 0})}};t.on("ping",s),e.push(()=>t.off("ping",s))},rpcError(o){r();let s=c=>o(c);t.on("rpcError",s),e.push(()=>t.off("rpcError",s))}},client:{async getPageContext(o=5e3){try{return await t.timeout(o).emitWithAck("getPageContext")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}},async getSelectedElements(o=5e3){try{return await t.timeout(o).emitWithAck("getSelectedElements")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}},async triggerSelection(o,s,c,u=5e3){try{return await t.timeout(u).emitWithAck("triggerSelection",o,s,c)}catch(p){return{message:p instanceof Error?p.message:String(p),code:"INTERNAL_ERROR",data:void 0}}},async captureScreenshot(o,s,c,u,p=5e3){try{return await t.timeout(p).emitWithAck("captureScreenshot",o,s,c,u)}catch(l){return{message:l instanceof Error?l.message:String(l),code:"INTERNAL_ERROR",data:void 0}}},clearSelection(){t.emit("clearSelection")},async injectCSS(o,s=5e3){try{return await t.timeout(s).emitWithAck("injectCSS",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async injectJS(o,s=5e3){try{return await t.timeout(s).emitWithAck("injectJS",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async getConsole(o,s=5e3){try{return await t.timeout(s).emitWithAck("getConsole",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async ping(o=5e3){try{return await t.timeout(o).emitWithAck("ping")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}}},get socket(){return t},get disposed(){return n},dispose(){n||(n=!0,e.forEach(o=>o()),e.length=0)}}}function Ct(t){return!!t&&typeof t.message=="string"&&typeof t.code=="string"}function o9(t){return{log:t?console.log.bind(console):()=>{},info:t?console.info.bind(console):()=>{},warn:t?console.warn.bind(console):()=>{},error:t?console.error.bind(console):()=>{}}}var Hn=new Map;function Ace(){return crypto.randomUUID()}function Vp(){return Array.from(Hn.values()).map(t=>t.session)}function Nce(t){if(t){let e=Hn.get(t);return e?{rpc:e.rpc,sessionId:t}:null}if(Hn.size===1){let e=Hn.entries().next().value;if(e){let[n,r]=e;return{rpc:r.rpc,sessionId:n}}}return null}function qce(){let t=Yv.join(s9.tmpdir(),"ai-annotator-screenshots");return qi.existsSync(t)||qi.mkdirSync(t,{recursive:!0}),t}function Dce(t,e){let n=qce(),i=`screenshot-${Date.now()}.${e}`,a=Yv.join(n,i),o=Buffer.from(t,"base64");return qi.writeFileSync(a,o),a}var Uce=["index","tagName","xpath","cssSelector","textContent"];function Mce(t,e){return t.map(n=>{let r={};"comment"in n&&(r.comment=n.comment);for(let i of Uce)i in n&&(r[i]=n[i]);return e?.includes("attributes")&&"attributes"in n&&(r.attributes=n.attributes),e?.includes("styles")&&"computedStyles"in n&&(r.computedStyles=n.computedStyles),e?.includes("component")&&"componentData"in n&&(r.componentData=n.componentData),e?.includes("children")&&"children"in n&&(r.children=n.children),r})}function Lce(t,e,n){t.get("/annotator-toolbar.js",(r,i)=>{try{let o=Yv.join(__dirname,"annotator-toolbar.js"),s=qi.readFileSync(o,"utf8");i.setHeader("Content-Type","application/javascript");let u=`
109
+ `,e.enqueue(n.encode(a)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(e,n){try{let r=e.headers.get("accept");if(!r?.includes("application/json")||!r.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let i=e.headers.get("content-type");if(!i||!i.includes("application/json"))return this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let a={headers:Object.fromEntries(e.headers.entries())},o;if(n?.parsedBody!==void 0)o=n.parsedBody;else try{o=await e.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let s;try{Array.isArray(o)?s=o.map(b=>ip.parse(b)):s=[ip.parse(o)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let c=s.some(Fw);if(c){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(s.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!c){let b=this.validateSession(e);if(b)return b;let w=this.validateProtocolVersion(e);if(w)return w}if(!s.some(Ei)){for(let b of s)this.onmessage?.(b,{authInfo:n?.authInfo,requestInfo:a});return new Response(null,{status:202})}let p=crypto.randomUUID(),l=s.find(b=>Fw(b)),d=l?l.params.protocolVersion:e.headers.get("mcp-protocol-version")??HA;if(this._enableJsonResponse)return new Promise(b=>{this._streamMapping.set(p,{resolveJson:b,cleanup:()=>{this._streamMapping.delete(p)}});for(let w of s)Ei(w)&&this._requestToStreamMapping.set(w.id,p);for(let w of s)this.onmessage?.(w,{authInfo:n?.authInfo,requestInfo:a})});let f=new TextEncoder,m,h=new ReadableStream({start:b=>{m=b},cancel:()=>{this._streamMapping.delete(p)}}),g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};this.sessionId!==void 0&&(g["mcp-session-id"]=this.sessionId);for(let b of s)Ei(b)&&(this._streamMapping.set(p,{controller:m,encoder:f,cleanup:()=>{this._streamMapping.delete(p);try{m.close()}catch{}}}),this._requestToStreamMapping.set(b.id,p));await this.writePrimingEvent(m,f,p,d);for(let b of s){let w,x;Ei(b)&&this._eventStore&&d>="2025-11-25"&&(w=()=>{this.closeSSEStream(b.id)},x=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(b,{authInfo:n?.authInfo,requestInfo:a,closeSSEStream:w,closeStandaloneSSEStream:x})}return new Response(h,{status:200,headers:g})}catch(r){return this.onerror?.(r),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(r)})}}async handleDeleteRequest(e){let n=this.validateSession(e);if(n)return n;let r=this.validateProtocolVersion(e);return r||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let n=e.headers.get("mcp-session-id");if(!n)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(n!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(e){let n=e.headers.get("mcp-protocol-version");if(n!==null&&!np.includes(n))return this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${n} (supported versions: ${np.join(", ")})`)}async close(){this._streamMapping.forEach(({cleanup:e})=>{e()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(e){let n=this._requestToStreamMapping.get(e);if(!n)return;let r=this._streamMapping.get(n);r&&r.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,n){let r=n?.relatedRequestId;if((qr(e)||hs(e))&&(r=e.id),r===void 0){if(qr(e)||hs(e))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let o;this._eventStore&&(o=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let s=this._streamMapping.get(this._standaloneSseStreamId);if(s===void 0)return;s.controller&&s.encoder&&this.writeSSEEvent(s.controller,s.encoder,e,o);return}let i=this._requestToStreamMapping.get(r);if(!i)throw new Error(`No connection established for request ID: ${String(r)}`);let a=this._streamMapping.get(i);if(!this._enableJsonResponse&&a?.controller&&a?.encoder){let o;this._eventStore&&(o=await this._eventStore.storeEvent(i,e)),this.writeSSEEvent(a.controller,a.encoder,e,o)}if(qr(e)||hs(e)){this._requestResponseMap.set(r,e);let o=Array.from(this._requestToStreamMapping.entries()).filter(([c,u])=>u===i).map(([c])=>c);if(o.every(c=>this._requestResponseMap.has(c))){if(!a)throw new Error(`No connection established for request ID: ${String(r)}`);if(this._enableJsonResponse&&a.resolveJson){let c={"Content-Type":"application/json"};this.sessionId!==void 0&&(c["mcp-session-id"]=this.sessionId);let u=o.map(p=>this._requestResponseMap.get(p));u.length===1?a.resolveJson(new Response(JSON.stringify(u[0]),{status:200,headers:c})):a.resolveJson(new Response(JSON.stringify(u),{status:200,headers:c}))}else a.cleanup();for(let c of o)this._requestResponseMap.delete(c),this._requestToStreamMapping.delete(c)}}}};var Xv=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new Kv(e),this._requestListener=qS(async n=>{let r=this._requestContext.get(n);return this._webStandardTransport.handleRequest(n,{authInfo:r?.authInfo,parsedBody:r?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,n){return this._webStandardTransport.send(e,n)}async handleRequest(e,n,r){let i=e.auth;await qS(async o=>this._webStandardTransport.handleRequest(o,{authInfo:i,parsedBody:r}),{overrideGlobalObjects:!1})(e,n)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};Vv();function a9(t){let e=[],n=!1,r=()=>{if(n)throw new Error("RpcServer has been disposed")};return{handle:{getSessions(o){r();let s=async c=>{try{let u=await o();c(u)}catch(u){console.error("[getSessions] Handler error:",u),c({message:u instanceof Error?u.message:String(u),code:"INTERNAL_ERROR",data:void 0})}};t.on("getSessions",s),e.push(()=>t.off("getSessions",s))},ping(o){r();let s=async c=>{try{let u=await o();c(u)}catch(u){console.error("[ping] Handler error:",u),c({message:u instanceof Error?u.message:String(u),code:"INTERNAL_ERROR",data:void 0})}};t.on("ping",s),e.push(()=>t.off("ping",s))},rpcError(o){r();let s=c=>o(c);t.on("rpcError",s),e.push(()=>t.off("rpcError",s))}},client:{async getPageContext(o=5e3){try{return await t.timeout(o).emitWithAck("getPageContext")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}},async getSelectedElements(o=5e3){try{return await t.timeout(o).emitWithAck("getSelectedElements")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}},async triggerSelection(o,s,c,u=5e3){try{return await t.timeout(u).emitWithAck("triggerSelection",o,s,c)}catch(p){return{message:p instanceof Error?p.message:String(p),code:"INTERNAL_ERROR",data:void 0}}},async captureScreenshot(o,s,c,u,p=5e3){try{return await t.timeout(p).emitWithAck("captureScreenshot",o,s,c,u)}catch(l){return{message:l instanceof Error?l.message:String(l),code:"INTERNAL_ERROR",data:void 0}}},clearSelection(){t.emit("clearSelection")},async injectCSS(o,s=5e3){try{return await t.timeout(s).emitWithAck("injectCSS",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async injectJS(o,s=5e3){try{return await t.timeout(s).emitWithAck("injectJS",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async getConsole(o,s=5e3){try{return await t.timeout(s).emitWithAck("getConsole",o)}catch(c){return{message:c instanceof Error?c.message:String(c),code:"INTERNAL_ERROR",data:void 0}}},async ping(o=5e3){try{return await t.timeout(o).emitWithAck("ping")}catch(s){return{message:s instanceof Error?s.message:String(s),code:"INTERNAL_ERROR",data:void 0}}}},get socket(){return t},get disposed(){return n},dispose(){n||(n=!0,e.forEach(o=>o()),e.length=0)}}}function Ct(t){return!!t&&typeof t.message=="string"&&typeof t.code=="string"}function o9(t){return{log:t?console.log.bind(console):()=>{},info:t?console.info.bind(console):()=>{},warn:t?console.warn.bind(console):()=>{},error:t?console.error.bind(console):()=>{}}}var Hn=new Map;function Ace(){return crypto.randomUUID()}function Vp(){return Array.from(Hn.values()).map(t=>t.session)}function Nce(t){if(t){let e=Hn.get(t);return e?{rpc:e.rpc,sessionId:t}:null}if(Hn.size===1){let e=Hn.entries().next().value;if(e){let[n,r]=e;return{rpc:r.rpc,sessionId:n}}}return null}function qce(){let t=Yv.join(s9.tmpdir(),"ai-annotator-screenshots");return qi.existsSync(t)||qi.mkdirSync(t,{recursive:!0}),t}function Dce(t,e){let n=qce(),i=`screenshot-${Date.now()}.${e}`,a=Yv.join(n,i),o=Buffer.from(t,"base64");return qi.writeFileSync(a,o),a}var Uce=["index","tagName","cssSelector","textContent"];function Mce(t,e){return t.map(n=>{let r={};"comment"in n&&(r.comment=n.comment),"componentData"in n&&(r.componentData=n.componentData);for(let i of Uce)i in n&&(r[i]=n[i]);return e?.includes("xpath")&&"xpath"in n&&(r.xpath=n.xpath),e?.includes("attributes")&&"attributes"in n&&(r.attributes=n.attributes),e?.includes("styles")&&"computedStyles"in n&&(r.computedStyles=n.computedStyles),e?.includes("children")&&"children"in n&&(r.children=n.children),r})}function Lce(t,e,n){t.get("/annotator-toolbar.js",(r,i)=>{try{let o=Yv.join(__dirname,"annotator-toolbar.js"),s=qi.readFileSync(o,"utf8");i.setHeader("Content-Type","application/javascript");let u=`
110
110
  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(Vp())})}function Fce(t,e){t.on("connection",n=>{if(n.handshake.query.clientType==="mcp"){Bce(n,e);return}let i=Ace(),a={id:i,url:"",title:"",connectedAt:Date.now(),lastActivity:Date.now()},o=a9(n);Hn.set(i,{socket:n,rpc:o,session:a}),e.log(`Browser connected: ${i} (total: ${Hn.size})`),o.handle.getSessions(async()=>Vp()),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 Bce(t,e){e.log("MCP client connected"),t.on("mcp:listSessions",n=>{n({success:!0,data:Vp()})}),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=Nce(t);if(!e){let n=Vp();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 Zce(){let t=new Ns({name:"ai-annotator",version:"1.0.0"}),e=ve.string().optional().describe("Browser session ID (optional if only one session)");function n(i){return{content:[{type:"text",text:i}]}}t.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{let i=Vp();return n(i.length>0?JSON.stringify(i,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:i})=>{let a=St(i);if("error"in a)return n(a.error);let o=await a.rpc.client.getPageContext(1e4);return Ct(o)?n(`Error: ${o.message}`):n(JSON.stringify(o,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:ve.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:ve.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:ve.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:i,mode:a,selector:o,selectorType:s})=>{let c=St(i);if("error"in c)return n(c.error);let u=await c.rpc.client.triggerSelection(a,o,s,1e4);return Ct(u)?n(`Error: ${u.message}`):n(u.success?`Feedback selection triggered. ${u.count} feedback item(s) selected.`:`Feedback selection failed: ${u.error}`)});let r=ve.enum(["attributes","styles","component","children"]);return 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,fields:ve.array(r).optional().describe("Additional fields to include: attributes, styles (computedStyles), component (componentData), children. By default only basic fields (index, tagName, xpath, cssSelector, textContent) and comment are returned.")},async({sessionId:i,fields:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.getSelectedElements(15e3);if(Ct(s))return n(`Error: ${s.message}`);if(s.length===0)return n("No feedback selected. Use annotator_select_feedback first.");let c=Mce(s,a);return n(JSON.stringify(c,null,2))}),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:ve.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:ve.string().optional().describe("CSS selector for element screenshot"),format:ve.enum(["png","jpeg"]).default("png").describe("Image format"),quality:ve.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:i,type:a,selector:o,format:s,quality:c})=>{let u=St(i);if("error"in u)return n(u.error);let p=await u.rpc.client.captureScreenshot(a,o,s,c,3e4);if(Ct(p))return n(`Error: ${p.message}`);if(p.success&&p.base64){let l=Dce(p.base64,s);return n(l)}return n(`Screenshot failed: ${p.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:i})=>{let a=St(i);return"error"in a?n(a.error):(a.rpc.client.clearSelection(),n("Feedback cleared."))}),t.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:e,css:ve.string().describe("CSS code to inject into the page")},async({sessionId:i,css:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.injectCSS(a,1e4);return Ct(s)?n(`Error: ${s.message}`):n(s.success?"CSS injected successfully.":`CSS injection failed: ${s.error}`)}),t.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:e,code:ve.string().describe("JavaScript code to execute in the page")},async({sessionId:i,code:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.injectJS(a,15e3);return Ct(s)?n(`Error: ${s.message}`):s.success?n(s.result!==void 0?`Result: ${JSON.stringify(s.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${s.error}`)}),t.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:e,clear:ve.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:i,clear:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.getConsole(a,15e3);return Ct(s)?n(`Error: ${s.message}`):n(s.length>0?JSON.stringify(s,null,2):"No console logs captured.")}),t}function Vce(t,e){let n=Zce(),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 Xv({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 u9(t,e,n,r=!1){let i=o9(r),a=(0,DS.default)();a.use((0,c9.default)({origin:"*",methods:["GET","POST","OPTIONS"],allowedHeaders:["Content-Type","Authorization"]})),a.use(DS.default.json({limit:"10mb"})),Lce(a,n,r),Vce(a,i);let o=await Hce(a,t,e),s=new DR(o,{cors:{origin:"*",methods:["GET","POST"]},path:"/socket.io"});return Fce(s,i),{app:a,server:o,io:s,port:t,listenAddress:e,publicAddress:n,verbose:r}}async function p9(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 Hce(t,e,n){return new Promise((r,i)=>{let a=t.listen(e,n,()=>r(a));a.on("error",o=>{i(o)})})}var xD=require("net"),fg=require("fs"),mg=require("path");function Due(){let t=[(0,mg.join)(__dirname,"..","package.json"),(0,mg.join)(__dirname,"package.json"),(0,mg.join)(process.cwd(),"package.json")];for(let e of t)if((0,fg.existsSync)(e))try{let n=JSON.parse((0,fg.readFileSync)(e,"utf-8"));if(n.name==="vite-plugin-ai-annotator"&&n.version)return n.version}catch{continue}return"0.0.0"}var Uue=Due(),Et=process.argv.slice(2),Mue=Et[0];Mue==="mcp"?Promise.resolve().then(()=>(gD(),que)).catch(t=>{console.error("Failed to start MCP CLI:",t),process.exit(1)}):Lue();async function Lue(){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(Vp())})}function Fce(t,e){t.on("connection",n=>{if(n.handshake.query.clientType==="mcp"){Bce(n,e);return}let i=Ace(),a={id:i,url:"",title:"",connectedAt:Date.now(),lastActivity:Date.now()},o=a9(n);Hn.set(i,{socket:n,rpc:o,session:a}),e.log(`Browser connected: ${i} (total: ${Hn.size})`),o.handle.getSessions(async()=>Vp()),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 Bce(t,e){e.log("MCP client connected"),t.on("mcp:listSessions",n=>{n({success:!0,data:Vp()})}),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=Nce(t);if(!e){let n=Vp();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 Zce(){let t=new Ns({name:"ai-annotator",version:"1.0.0"}),e=ve.string().optional().describe("Browser session ID (optional if only one session)");function n(i){return{content:[{type:"text",text:i}]}}t.tool("annotator_list_sessions","List all connected browser sessions",{},async()=>{let i=Vp();return n(i.length>0?JSON.stringify(i,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:i})=>{let a=St(i);if("error"in a)return n(a.error);let o=await a.rpc.client.getPageContext(1e4);return Ct(o)?n(`Error: ${o.message}`):n(JSON.stringify(o,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:ve.enum(["inspect","selector"]).default("inspect").describe("Feedback selection mode"),selector:ve.string().optional().describe('CSS or XPath selector (required when mode is "selector")'),selectorType:ve.enum(["css","xpath"]).default("css").describe("Type of selector")},async({sessionId:i,mode:a,selector:o,selectorType:s})=>{let c=St(i);if("error"in c)return n(c.error);let u=await c.rpc.client.triggerSelection(a,o,s,1e4);return Ct(u)?n(`Error: ${u.message}`):n(u.success?`Feedback selection triggered. ${u.count} feedback item(s) selected.`:`Feedback selection failed: ${u.error}`)});let r=ve.enum(["xpath","attributes","styles","children"]);return 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,fields:ve.array(r).optional().describe("Additional fields to include: xpath, attributes, styles (computedStyles), children. By default returns basic fields (index, tagName, cssSelector, textContent), comment, and componentData.")},async({sessionId:i,fields:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.getSelectedElements(15e3);if(Ct(s))return n(`Error: ${s.message}`);if(s.length===0)return n("No feedback selected. Use annotator_select_feedback first.");let c=Mce(s,a);return n(JSON.stringify(c,null,2))}),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:ve.enum(["viewport","element"]).default("viewport").describe("Type of screenshot"),selector:ve.string().optional().describe("CSS selector for element screenshot"),format:ve.enum(["png","jpeg"]).default("png").describe("Image format"),quality:ve.number().min(0).max(1).default(.8).describe("Image quality (0-1)")},async({sessionId:i,type:a,selector:o,format:s,quality:c})=>{let u=St(i);if("error"in u)return n(u.error);let p=await u.rpc.client.captureScreenshot(a,o,s,c,3e4);if(Ct(p))return n(`Error: ${p.message}`);if(p.success&&p.base64){let l=Dce(p.base64,s);return n(l)}return n(`Screenshot failed: ${p.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:i})=>{let a=St(i);return"error"in a?n(a.error):(a.rpc.client.clearSelection(),n("Feedback cleared."))}),t.tool("annotator_inject_css","Inject CSS styles into the page",{sessionId:e,css:ve.string().describe("CSS code to inject into the page")},async({sessionId:i,css:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.injectCSS(a,1e4);return Ct(s)?n(`Error: ${s.message}`):n(s.success?"CSS injected successfully.":`CSS injection failed: ${s.error}`)}),t.tool("annotator_inject_js","Inject and execute JavaScript code in the page context",{sessionId:e,code:ve.string().describe("JavaScript code to execute in the page")},async({sessionId:i,code:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.injectJS(a,15e3);return Ct(s)?n(`Error: ${s.message}`):s.success?n(s.result!==void 0?`Result: ${JSON.stringify(s.result,null,2)}`:"JavaScript executed successfully (no return value)."):n(`JavaScript execution failed: ${s.error}`)}),t.tool("annotator_get_console","Get console logs captured from the browser",{sessionId:e,clear:ve.boolean().default(!1).describe("Clear the console buffer after reading")},async({sessionId:i,clear:a})=>{let o=St(i);if("error"in o)return n(o.error);let s=await o.rpc.client.getConsole(a,15e3);return Ct(s)?n(`Error: ${s.message}`):n(s.length>0?JSON.stringify(s,null,2):"No console logs captured.")}),t}function Vce(t,e){let n=Zce(),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 Xv({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 u9(t,e,n,r=!1){let i=o9(r),a=(0,DS.default)();a.use((0,c9.default)({origin:"*",methods:["GET","POST","OPTIONS"],allowedHeaders:["Content-Type","Authorization"]})),a.use(DS.default.json({limit:"10mb"})),Lce(a,n,r),Vce(a,i);let o=await Hce(a,t,e),s=new DR(o,{cors:{origin:"*",methods:["GET","POST"]},path:"/socket.io"});return Fce(s,i),{app:a,server:o,io:s,port:t,listenAddress:e,publicAddress:n,verbose:r}}async function p9(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 Hce(t,e,n){return new Promise((r,i)=>{let a=t.listen(e,n,()=>r(a));a.on("error",o=>{i(o)})})}var xD=require("net"),fg=require("fs"),mg=require("path");function Due(){let t=[(0,mg.join)(__dirname,"..","package.json"),(0,mg.join)(__dirname,"package.json"),(0,mg.join)(process.cwd(),"package.json")];for(let e of t)if((0,fg.existsSync)(e))try{let n=JSON.parse((0,fg.readFileSync)(e,"utf-8"));if(n.name==="vite-plugin-ai-annotator"&&n.version)return n.version}catch{continue}return"0.0.0"}var Uue=Due(),Et=process.argv.slice(2),Mue=Et[0];Mue==="mcp"?Promise.resolve().then(()=>(gD(),que)).catch(t=>{console.error("Failed to start MCP CLI:",t),process.exit(1)}):Lue();async function Lue(){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.15",
3
+ "version": "1.1.16",
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",