gazesight 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/chrome/background.js +7 -7
- package/dist/chrome/content.js +7 -7
- package/dist/chrome/manifest.json +1 -1
- package/dist/chrome/options.js +37 -12
- package/dist/chrome/popup.html +3 -1
- package/dist/chrome/popup.js +1 -1
- package/dist/cli/index.js +249 -60
- package/dist/firefox/background.js +1 -1
- package/dist/firefox/content.js +6 -6
- package/dist/firefox/manifest.json +1 -1
- package/dist/firefox/options.js +29 -4
- package/dist/firefox/popup.html +3 -1
- package/dist/gazesight-firefox.xpi +0 -0
- package/dist/mcp/index.js +477 -30
- package/dist/worker/visual-diff.js +21 -4
- package/package.json +2 -2
package/dist/firefox/options.js
CHANGED
|
@@ -61,6 +61,8 @@ ${c}
|
|
|
61
61
|
|
|
62
62
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let u=a[1];if(n===a[0]){r(a);continue}if(e.external){let s=e.external.registry.get(a[0])?.id;if(n!==a[0]&&s){r(a);continue}}if(e.metadataRegistry.get(a[0])?.id){r(a);continue}if(u.cycle){r(a);continue}u.count>1&&e.reused==="ref"&&r(a)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Vf(e){let n=e.anyOf;if(!Array.isArray(n)||n.length===0||e.type!==void 0)return;let i=[];for(let o of n){if(!o||typeof o!="object")return;Vf(o);let t=Object.keys(o);if(t.length!==1||t[0]!=="type")return;let r=o.type;for(let a of Array.isArray(r)?r:[r]){if(typeof a!="string")return;i.includes(a)||i.push(a)}}delete e.anyOf,e.type=i.length===1?i[0]:i}var Rf=new Set(["type","properties","required","additionalProperties"]),Cf=["oneOf","anyOf"];function Lf(e){let n=e.additionalProperties;return n===void 0||n===!1||typeof n!="object"||n===null?null:Object.keys(n).length?n:null}function Dc(e){let n=[];for(let r of e){if(typeof r!="object"||r.type!=="object")return null;for(let a in r)if(!Rf.has(a))return null;n.push(r)}let i={},o=new Set;for(let r of n){for(let a in r.properties){if(Object.prototype.hasOwnProperty.call(i,a))continue;let u=[];for(let s of n){let l=s.properties?.[a]??Lf(s);l!=null&&(u.some(d=>JSON.stringify(d)===JSON.stringify(l))||u.push(l))}let c=u.length===1?u[0]:Dc(u)??{allOf:u};G(i,a,c)}for(let a of r.required??[])o.add(a)}let t={type:"object",properties:i};if(o.size&&(t.required=[...o]),n.every(r=>r.additionalProperties===!1))t.additionalProperties=!1;else{let r=[];for(let a of n){let u=Lf(a);u&&!r.some(c=>JSON.stringify(c)===JSON.stringify(u))&&r.push(u)}r.length===1?t.additionalProperties=r[0]:r.length>1&&(t.additionalProperties={allOf:r})}return t}function Hh(e){let n=e.allOf;if(!Array.isArray(n)||n.length<2)return;for(let t of Rf)if(t in e)return;let i=n.filter(t=>Cf.some(r=>Array.isArray(t[r]))),o=null;if(!i.length)o=Dc(n);else{let t=i[0],r=Cf.find(c=>Array.isArray(t[c]));if(Object.keys(t).length!==1)return;let a=n.filter(c=>c!==t),u=t[r].map(c=>Dc([...a,c]));if(u.some(c=>!c))return;o={[r]:u}}o&&(delete e.allOf,zn(e,o))}function Ue(e,n){let i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=u=>{let c=e.seen.get(u);if(c.ref===null)return;let s=c.def??c.schema,l={...s},d=c.ref;if(c.ref=null,d){o(d);let m=e.seen.get(d),v=m.schema;if(v.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(s.allOf=s.allOf??[],s.allOf.push(v)):zn(s,v),zn(s,l),u._zod.parent===d)for(let k in s)k==="$ref"||k==="allOf"||k in l||delete s[k];if(v.$ref&&m.def)for(let k in s)k==="$ref"||k==="allOf"||k in m.def&&JSON.stringify(s[k])===JSON.stringify(m.def[k])&&delete s[k]}let f=u._zod.parent;if(f&&f!==d){o(f);let m=e.seen.get(f);if(m?.schema.$ref&&(s.$ref=m.schema.$ref,m.def))for(let v in s)v==="$ref"||v==="allOf"||v in m.def&&JSON.stringify(s[v])===JSON.stringify(m.def[v])&&delete s[v]}e.override({zodSchema:u,jsonSchema:s,path:c.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let u of[...e.seen.entries()].reverse())o(u[0]);if(e.target!=="openapi-3.0")for(let u of e.seen.entries())Vf(u[1].def??u[1].schema);for(let u of e.deferred)u();if(e.intersections.length){let u=new Map;for(let c of e.seen.values())for(let s of[c.schema,c.def]){let l=s?.allOf;if(!Array.isArray(l))continue;let d=u.get(l);d?d.push(s):u.set(l,[s])}for(let c of e.intersections)for(let s of u.get(c)??[])Hh(s)}}let t={};if(e.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let u=e.external.registry.get(n)?.id;if(!u)throw new Error("Schema is missing an `id` property");t.$id=e.external.uri(u)}zn(t,i.defId?i.schema:i.def??i.schema);let r=e.metadataRegistry.get(n)?.id;r!==void 0&&t.id===r&&delete t.id;let a=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let u of e.seen.entries()){let c=u[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,G(a,c.defId,c.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?t.$defs=a:t.definitions=a);try{let u=JSON.parse(JSON.stringify(t));return Object.defineProperty(u,"~standard",{value:{...n["~standard"],jsonSchema:{input:Ot(n,"input",e.processors),output:Ot(n,"output",e.processors)}},enumerable:!1,writable:!1}),u}catch{throw new Error("Error converting schema to JSON.")}}function ee(e,n){let i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return ee(o.element,i);if(o.type==="set")return ee(o.valueType,i);if(o.type==="lazy")return ee(o.getter(),i);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault"||o.type==="catch")return ee(o.innerType,i);if(o.type==="intersection")return ee(o.left,i)||ee(o.right,i);if(o.type==="record"||o.type==="map")return ee(o.keyType,i)||ee(o.valueType,i);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:ee(o.in,i)||ee(o.out,i);if(o.type==="object"){for(let t in o.shape)if(ee(o.shape[t],i))return!0;return!1}if(o.type==="union"){for(let t of o.options)if(ee(t,i))return!0;return!1}if(o.type==="tuple"){for(let t of o.items)if(ee(t,i))return!0;return!!(o.rest&&ee(o.rest,i))}return!1}var jc=(e,n={})=>i=>{let o=Oe({...i,processors:n});return E(e,o),Ne(o,e),Ue(o,e)},Ot=(e,n,i={})=>o=>{let{libraryOptions:t,target:r}=o??{},a=Oe({...t??{},target:r,io:n,processors:i});return E(e,a),Ne(a,e),Ue(a,e)};var Nt=(e,n,i)=>{(e[n]===void 0||i>e[n])&&(e[n]=i)},Ut=(e,n,i)=>{(e[n]===void 0||i<e[n])&&(e[n]=i)},Ff=(e,n)=>{Nt(e,"minimum",n),Ut(e,"maximum",n)},Kf=(e,n)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(n)||e.multipleOf.push(n)},Gf=(e,n)=>{e.patterns??(e.patterns=new Set),e.patterns.add(n)},Wf=(e,n)=>{e.mime=e.mime?e.mime.filter(i=>n.includes(i)):[...n]},qf=(e,n)=>{e.format=n,n.includes("int")&&(e.isInt=!0)},Mf=(e,n)=>Nt(e,"minimum",n.minimum),Jf=(e,n)=>Ut(e,"maximum",n.maximum),Bf=e=>(n,i)=>{qf(n,i.format);let[o,t]=e[i.format];Nt(n,"minimum",o),Ut(n,"maximum",t)},Yh={greater_than:(e,n)=>Nt(e,n.inclusive?"minimum":"exclusiveMinimum",n.value),less_than:(e,n)=>Ut(e,n.inclusive?"maximum":"exclusiveMaximum",n.value),multiple_of:(e,n)=>Kf(e,n.value),number_format:Bf(Wt),bigint_format:Bf(qt),min_length:Mf,max_length:Jf,length_equals:(e,n)=>Ff(e,n.length),min_size:Mf,max_size:Jf,size_equals:(e,n)=>Ff(e,n.size),string_format:(e,n)=>{qf(e,n.format),n.pattern&&Gf(e,n.pattern),(n.format==="base64"||n.format==="base64url")&&(e.contentEncoding=n.format),(n.local||n.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,n)=>Wf(e,n.mime)};function B(e){let n={},i=e._zod.def,o=e._zod.traits.has("$ZodCheck")?[e,...i.checks??[]]:i.checks??[];for(let r of o)Yh[r._zod.def.check]?.(n,r._zod.def);let t=e._zod.bag;t.minimum!==void 0&&Nt(n,"minimum",t.minimum),t.exclusiveMinimum!==void 0&&Nt(n,"exclusiveMinimum",t.exclusiveMinimum),t.maximum!==void 0&&Ut(n,"maximum",t.maximum),t.exclusiveMaximum!==void 0&&Ut(n,"exclusiveMaximum",t.exclusiveMaximum),t.multipleOf!==void 0&&Kf(n,t.multipleOf),t.format!==void 0&&(n.format??(n.format=t.format),t.format.includes("int")&&(n.isInt=!0)),t.mime&&Wf(n,t.mime);for(let r of t.patterns??[])Gf(n,r);return n}var Qh={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ey=new Map([[_r,Co],[fn,Lo]]),Xf=e=>ey.get(e)??e,Uc=(e,n,i,o)=>{let t=i;t.type="string";let{minimum:r,maximum:a,format:u,patterns:c,contentEncoding:s,laxFormat:l}=B(e);if(typeof r=="number"&&(t.minLength=r),typeof a=="number"&&(t.maxLength=a),u&&(t.format=Qh[u]??u,t.format===""&&delete t.format,(u==="time"||l)&&delete t.format),s&&(t.contentEncoding=s),c&&c.size>0){let d=[...c].map(Xf);d.length===1?t.pattern=d[0].source:d.length>1&&(t.allOf=[...d.map(f=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Ac=(e,n,i,o)=>{let t=i,{minimum:r,maximum:a,multipleOf:u,exclusiveMaximum:c,exclusiveMinimum:s,isInt:l}=B(e);t.type=l?"integer":"number";let d=typeof s=="number"&&s>=(r??Number.NEGATIVE_INFINITY),f=typeof c=="number"&&c<=(a??Number.POSITIVE_INFINITY),m=n.target==="draft-04"||n.target==="openapi-3.0";if(d?m?(t.minimum=s,t.exclusiveMinimum=!0):t.exclusiveMinimum=s:typeof r=="number"&&(t.minimum=r),f?m?(t.maximum=c,t.exclusiveMaximum=!0):t.exclusiveMaximum=c:typeof a=="number"&&(t.maximum=a),u){let v=new Set;for(let S of u)Number.isFinite(S)&&S!==0?v.add(Math.abs(S)):J(e,n,t,o,`A multipleOf divisor of ${S} cannot be represented in JSON Schema`);let[_,...k]=v;_!==void 0&&(t.multipleOf=_),k.length&&(t.allOf=[...t.allOf??[],...k.map(S=>({multipleOf:S}))])}},Tc=(e,n,i,o)=>{i.type="boolean"},Zc=(e,n,i,o)=>{J(e,n,i,o,"BigInt cannot be represented in JSON Schema")},Ec=(e,n,i,o)=>{J(e,n,i,o,"Symbols cannot be represented in JSON Schema")},Cc=(e,n,i,o)=>{n.target==="openapi-3.0"?(i.type="string",i.nullable=!0,i.enum=[null]):i.type="null"},Lc=(e,n,i,o)=>{J(e,n,i,o,"Undefined cannot be represented in JSON Schema")},Vc=(e,n,i,o)=>{J(e,n,i,o,"Void cannot be represented in JSON Schema")},Rc=(e,n,i,o)=>{i.not={}},Fc=(e,n,i,o)=>{},Mc=(e,n,i,o)=>{},Jc=(e,n,i,o)=>{J(e,n,i,o,"Date cannot be represented in JSON Schema")},Bc=(e,n,i,o)=>{let t=e._zod.def,r=it(t.entries);if(r.length===0){i.not={};return}r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),i.enum=r},Kc=(e,n,i,o)=>{let t=e._zod.def;if(t.values.length===0){i.not={};return}let r=[];for(let a of t.values)if(a===void 0){if(J(e,n,i,o,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof a=="bigint"){if(J(e,n,i,o,"BigInt literals cannot be represented in JSON Schema"))return;r.push(Number(a))}else r.push(a);if(r.length!==0)if(r.length===1){let a=r[0];i.type=a===null?"null":typeof a,n.target==="draft-04"||n.target==="openapi-3.0"?i.enum=[a]:i.const=a}else r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),r.every(a=>typeof a=="boolean")&&(i.type="boolean"),r.every(a=>a===null)&&(i.type="null"),i.enum=r},Gc=(e,n,i,o)=>{J(e,n,i,o,"NaN cannot be represented in JSON Schema")},Wc=(e,n,i,o)=>{let t=i,r=e._zod.pattern;if(!r)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=r.source},qc=(e,n,i,o)=>{let t=i;t.type="string",t.format="binary",t.contentEncoding="binary";let{minimum:r,maximum:a,mime:u}=B(e);r!==void 0&&(t.minLength=r),a!==void 0&&(t.maxLength=a),u&&(u.length===0?t.not={}:u.length===1?t.contentMediaType=u[0]:t.anyOf=u.map(c=>({contentMediaType:c})))},Xc=(e,n,i,o)=>{i.type="boolean"},Hc=(e,n,i,o)=>{J(e,n,i,o,"Custom types cannot be represented in JSON Schema")},Yc=(e,n,i,o)=>{J(e,n,i,o,"Function types cannot be represented in JSON Schema")},Qc=(e,n,i,o)=>{J(e,n,i,o,"Transforms cannot be represented in JSON Schema")},es=(e,n,i,o)=>{J(e,n,i,o,"Map cannot be represented in JSON Schema")},ts=(e,n,i,o)=>{J(e,n,i,o,"Set cannot be represented in JSON Schema")},ns=(e,n,i,o)=>{let t=i,r=e._zod.def,{minimum:a,maximum:u}=B(e);typeof a=="number"&&(t.minItems=a),typeof u=="number"&&(t.maxItems=u),t.type="array",t.items=E(r.element,n,{...o,path:[...o.path,"items"]})};function Pn(e){let n=e._zod.def;return n.type==="pipe"&&n.in._zod.traits.has("$ZodTransform")?Pn(n.out):n.type==="catch"?Pn(n.innerType):e._zod.optin}var rs=(e,n,i,o)=>{let t=i,r=e._zod.def,a=r.shape;if(Object.getOwnPropertySymbols(a).length&&J(e,n,t,o,"Symbol keys cannot be represented in JSON Schema"))return;t.type="object",t.properties={};for(let s in a)G(t.properties,s,E(a[s],n,{...o,path:[...o.path,"properties",s]}));let c=[];for(let s of Object.keys(a)){let l=r.shape[s];(n.io==="input"?Pn(l)===void 0:l._zod.optout===void 0)&&c.push(s)}c.length>0&&(t.required=c),r.catchall?._zod.def.type==="never"?t.additionalProperties=!1:r.catchall?r.catchall&&(t.additionalProperties=E(r.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=!1)},$i=(e,n,i,o)=>{let t=e._zod.def,r=t.inclusive===!1,a=t.options.map((u,c)=>E(u,n,{...o,path:[...o.path,r?"oneOf":"anyOf",c]}));r?i.oneOf=a:i.anyOf=a},is=(e,n,i,o)=>{let t=e._zod.def,r=E(t.left,n,{...o,path:[...o.path,"allOf",0]}),a=E(t.right,n,{...o,path:[...o.path,"allOf",1]}),u=s=>"allOf"in s&&Object.keys(s).length===1,c=[...u(r)?r.allOf:[r],...u(a)?a.allOf:[a]];i.allOf=c,n.intersections.push(c)},os=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="array";let a=n.target==="draft-2020-12"?"prefixItems":"items",u=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",c=r.items.map((_,k)=>E(_,n,{...o,path:[...o.path,a,k]})),s=r.rest?E(r.rest,n,{...o,path:[...o.path,u,...n.target==="openapi-3.0"?[r.items.length]:[]]}):null,l=r.items.length;for(;l>0;){let _=r.items[l-1];if(!(n.io==="input"?Pn(_)!==void 0:_._zod.optout==="optional"))break;l--}let d=r.items.length,f=!r.rest;n.target==="draft-2020-12"?(t.prefixItems=c,f?t.items=!1:s&&(t.items=s),l>0&&(t.minItems=l),f&&(t.maxItems=d)):n.target==="openapi-3.0"?(t.items={anyOf:c},s&&t.items.anyOf.push(s),l>0&&(t.minItems=l),f&&(t.maxItems=d)):(t.items=c,f?t.additionalItems=!1:s&&(t.additionalItems=s),l>0&&(t.minItems=l),f&&(t.maxItems=d));let{minimum:m,maximum:v}=B(e);typeof m=="number"&&(t.minItems=m),typeof v=="number"&&(t.maxItems=v)};function Oc(e,n,i){if(n.$ref){if(i.has(n))return n;i.add(n);let v=e.get(n)?.def;if(!v)return n;let _=Oc(e,v,i);return _===v?n:_}for(let v of["anyOf","oneOf"]){let _=n[v];if(!Array.isArray(_))continue;let k=_.map(S=>Oc(e,S,i));k.some((S,I)=>S!==_[I])&&(n={...n,[v]:k})}let o=Array.isArray(n.type)?n.type:[n.type],t=!o.includes("string")&&o.some(v=>v==="number"||v==="integer"),r=n.enum??(n.const!==void 0?[n.const]:void 0);if(!t&&!r?.some(v=>typeof v=="number"))return n;let{minimum:a,maximum:u,exclusiveMinimum:c,exclusiveMaximum:s,multipleOf:l,format:d,id:f,...m}=n;return m.enum?m.enum=m.enum.map(v=>typeof v=="number"?String(v):v):typeof m.const=="number"&&(m.const=String(m.const)),t&&(m.type="string",r||(m.pattern=(o.includes("number")?ke:on).source)),m}var Nc=new WeakMap;function ty(e){let n=new Map;for(let o of e.seen.values())o.def&&!n.has(o.schema)&&n.set(o.schema,o);let i=new Map;for(let o of Nc.get(e)??[]){let t=e.seen.get(o),r=(t?.def??t?.schema)?.propertyNames;if(!r||r===!0||i.has(r))continue;let a=Oc(n,r,new Set);a!==r&&i.set(r,a)}if(i.size)for(let o of e.seen.values())for(let t of[o.schema,o.def]){let r=t&&i.get(t.propertyNames);r&&(t.propertyNames=r)}}var as=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="object";let a=r.keyType,u=B(a).patterns;if(r.mode==="loose"&&u&&u.size>0){let l=E(r.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let d of u)G(t.patternProperties,Xf(d).source,l)}else{if(n.target==="draft-07"||n.target==="draft-2020-12"){t.propertyNames=E(r.keyType,n,{...o,path:[...o.path,"propertyNames"]});let l=Nc.get(n);l||(l=[],Nc.set(n,l),n.deferred.push(()=>ty(n))),l.push(e)}t.additionalProperties=E(r.valueType,n,{...o,path:[...o.path,"additionalProperties"]})}let c=a._zod.values,s=n.io==="input"&&Pn(r.valueType)!==void 0;if(c&&!r.partial&&!s){let l=[...c].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(t.required=l.map(String))}},us=(e,n,i,o)=>{let t=e._zod.def,r=E(t.innerType,n,o),a=n.seen.get(e);n.target==="openapi-3.0"?(a.ref=t.innerType,i.nullable=!0):i.anyOf=[r,{type:"null"}]},cs=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},ss=Symbol();function Hf(e,n,i,o,t){let r=!1,a=JSON.stringify(e,(u,c)=>typeof c!="bigint"?c:(r=!0,null));return r?(J(n,i,o,t,"BigInt defaults cannot be represented in JSON Schema"),ss):JSON.parse(a)}var ls=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a=Hf(t.defaultValue,e,n,i,o);a!==ss&&(i.default=a)},ds=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);if(r.ref=t.innerType,n.io!=="input")return;let a=Hf(t.defaultValue,e,n,i,o);a!==ss&&(i._prefault=a)},fs=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a;try{a=t.catchValue(void 0)}catch{J(e,n,i,o,"Dynamic catch values are not supported in JSON Schema");return}i.default=a},ms=(e,n,i,o)=>{let t=e._zod.def,r=t.in._zod.traits.has("$ZodTransform"),a=n.io==="input"?r?t.out:t.in:t.out;E(a,n,o);let u=n.seen.get(e);u.ref=a},ps=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType,i.readOnly=!0},gs=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},hi=(e,n,i,o)=>{let t=e._zod.def;E(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},vs=(e,n,i,o)=>{let t=e._zod.innerType;E(t,n,o);let r=n.seen.get(e);r.ref=t},vi={string:Uc,number:Ac,boolean:Tc,bigint:Zc,symbol:Ec,null:Cc,undefined:Lc,void:Vc,never:Rc,any:Fc,unknown:Mc,date:Jc,enum:Bc,literal:Kc,nan:Gc,template_literal:Wc,file:qc,success:Xc,custom:Hc,function:Yc,transform:Qc,map:es,set:ts,array:ns,object:rs,union:$i,intersection:is,tuple:os,record:as,nullable:us,nonoptional:cs,default:ls,prefault:ds,catch:fs,pipe:ms,readonly:ps,promise:gs,optional:hi,lazy:vs};function yi(e,n){if("_idmap"in e){let o=e,t=Oe({...n,processors:vi}),r={};for(let c of o._idmap.entries()){let[s,l]=c;E(l,t)}let a={},u={registry:o,uri:n?.uri,defs:r};t.external=u;for(let c of o._idmap.entries()){let[s,l]=c;Ne(t,l),G(a,s,Ue(t,l))}if(Object.keys(r).length>0){let c=t.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[c]:r}}return{schemas:a}}let i=Oe({...n,processors:vi});return E(e,i),Ne(i,e),Ue(i,e)}var _i=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(n){this.ctx.counter=n}get seen(){return this.ctx.seen}constructor(n){let i=n?.target??"draft-2020-12";i==="draft-4"&&(i="draft-04"),i==="draft-7"&&(i="draft-07"),this.ctx=Oe({processors:vi,target:i,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}})}process(n,i={path:[],schemaPath:[]}){return E(n,this.ctx,i)}emit(n,i){i&&(i.cycles&&(this.ctx.cycles=i.cycles),i.reused&&(this.ctx.reused=i.reused),i.external&&(this.ctx.external=i.external)),this.ctx.sharedDefsExtractedFor=void 0,this.ctx.sharedEmitDoneFor=void 0,Ne(this.ctx,n);let o=Ue(this.ctx,n),{"~standard":t,...r}=o;return r}};var Yf={};var Rt={};ye(Rt,{ZodAny:()=>Cs,ZodArray:()=>Fs,ZodBase64:()=>Li,ZodBase64URL:()=>Vi,ZodBigInt:()=>Lt,ZodBigIntFormat:()=>Mi,ZodBoolean:()=>Ct,ZodCIDRv4:()=>Ei,ZodCIDRv6:()=>Ci,ZodCUID:()=>ji,ZodCUID2:()=>Oi,ZodCatch:()=>sl,ZodCodec:()=>Cn,ZodCreditCard:()=>js,ZodCustom:()=>Ln,ZodCustomStringFormat:()=>tt,ZodDate:()=>Nn,ZodDefault:()=>rl,ZodDiscriminatedUnion:()=>Js,ZodE164:()=>Ri,ZodEmail:()=>Si,ZodEmoji:()=>Pi,ZodEnum:()=>Tt,ZodExactOptional:()=>Gi,ZodFile:()=>Qs,ZodFunction:()=>yl,ZodGUID:()=>zi,ZodIBAN:()=>Os,ZodIPv4:()=>Ti,ZodIPv6:()=>Zi,ZodISODate:()=>Te,ZodISODateTime:()=>Ae,ZodISODuration:()=>Ee,ZodISOTime:()=>Ze,ZodInstanceOf:()=>kl,ZodIntersection:()=>Bs,ZodJWT:()=>Fi,ZodKSUID:()=>Ai,ZodLazy:()=>vl,ZodLiteral:()=>Ys,ZodMAC:()=>Ds,ZodMap:()=>Xs,ZodNaN:()=>dl,ZodNanoID:()=>Di,ZodNever:()=>Vs,ZodNonOptional:()=>Wi,ZodNull:()=>Zs,ZodNullable:()=>nl,ZodNumber:()=>Et,ZodNumberFormat:()=>nt,ZodObject:()=>An,ZodOptional:()=>Zn,ZodPipe:()=>En,ZodPrefault:()=>ol,ZodPreprocess:()=>fl,ZodPromise:()=>hl,ZodReadonly:()=>ml,ZodRecord:()=>At,ZodSet:()=>Hs,ZodString:()=>Zt,ZodStringFormat:()=>C,ZodSuccess:()=>cl,ZodSymbol:()=>As,ZodTemplateLiteral:()=>gl,ZodTransform:()=>el,ZodTuple:()=>Gs,ZodType:()=>j,ZodULID:()=>Ni,ZodURL:()=>On,ZodUUID:()=>he,ZodUndefined:()=>Ts,ZodUnion:()=>Tn,ZodUnknown:()=>Ls,ZodVoid:()=>Rs,ZodXID:()=>Ui,ZodXor:()=>Ms,_ZodString:()=>wi,_default:()=>il,_function:()=>lp,any:()=>Rm,array:()=>Un,base64:()=>bm,base64url:()=>km,bigint:()=>Zm,boolean:()=>Us,catch:()=>ll,check:()=>dp,cidrv4:()=>ym,cidrv6:()=>_m,codec:()=>ap,creditCard:()=>Im,cuid:()=>dm,cuid2:()=>fm,currencyCode:()=>jm,custom:()=>fp,date:()=>Mm,describe:()=>mp,discriminatedUnion:()=>qm,e164:()=>xm,email:()=>tm,emoji:()=>sm,enum:()=>Bi,exactOptional:()=>tl,file:()=>np,float32:()=>Nm,float64:()=>Um,function:()=>lp,guid:()=>nm,hash:()=>Om,hex:()=>Dm,hostname:()=>Pm,httpUrl:()=>cm,iban:()=>wm,instanceof:()=>gp,int:()=>xi,int32:()=>Am,int64:()=>Em,intersection:()=>Ks,invertCodec:()=>up,ipv4:()=>vm,ipv6:()=>hm,json:()=>$p,jwt:()=>Sm,keyof:()=>Jm,ksuid:()=>gm,lazy:()=>$l,literal:()=>tp,looseObject:()=>Gm,looseRecord:()=>Hm,mac:()=>$m,map:()=>Ym,meta:()=>pp,nan:()=>op,nanoid:()=>lm,nativeEnum:()=>ep,never:()=>Ji,nonoptional:()=>ul,null:()=>Es,nullable:()=>jn,nullish:()=>rp,number:()=>Ns,object:()=>Bm,optional:()=>Qe,partialRecord:()=>Xm,pipe:()=>Ii,prefault:()=>al,preprocess:()=>hp,promise:()=>sp,readonly:()=>pl,record:()=>qs,refine:()=>_l,set:()=>Qm,strictObject:()=>Km,string:()=>Dn,stringFormat:()=>zm,stringbool:()=>vp,success:()=>ip,superRefine:()=>bl,symbol:()=>Lm,templateLiteral:()=>cp,transform:()=>Ki,tuple:()=>Ws,uint32:()=>Tm,uint64:()=>Cm,ulid:()=>mm,undefined:()=>Vm,union:()=>Vt,unknown:()=>Ye,url:()=>um,uuid:()=>rm,uuidv4:()=>im,uuidv6:()=>om,uuidv7:()=>am,void:()=>Fm,xid:()=>pm,xor:()=>Wm});var bi={};ye(bi,{endsWith:()=>xt,gt:()=>ve,gte:()=>ce,includes:()=>bt,length:()=>Xe,lowercase:()=>yt,lt:()=>ge,lte:()=>ue,maxLength:()=>qe,maxSize:()=>je,mime:()=>wt,minLength:()=>xe,minSize:()=>$e,multipleOf:()=>De,negative:()=>fi,nonnegative:()=>pi,nonpositive:()=>mi,normalize:()=>St,overwrite:()=>pe,positive:()=>di,properties:()=>It,property:()=>gi,regex:()=>ht,size:()=>We,slugify:()=>jt,startsWith:()=>kt,toLowerCase:()=>Pt,toUpperCase:()=>Dt,trim:()=>zt,uppercase:()=>_t});var Qf=new WeakSet([Object.prototype,Error.prototype]);function ki(e,n,i){Object.defineProperty(e,n,{configurable:!0,enumerable:!1,get(){let o=i(this);return Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0}),o},set(o){Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0})}})}var em=(e,n)=>{ho.init(e,n),e.name="ZodError";let i=Object.getPrototypeOf(e);Qf.has(i)||(Qf.add(i),ki(i,"format",o=>t=>en(o,t)),ki(i,"flatten",o=>t=>Qt(o,t)),ki(i,"addIssue",o=>t=>{o.issues.push(t),o.message=JSON.stringify(o.issues,ot,2)}),ki(i,"addIssues",o=>t=>{o.issues.push(...t),o.message=JSON.stringify(o.issues,ot,2)}),Object.defineProperty(i,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},ry=p("ZodError",em),ae=p("ZodError",em,void 0,{Parent:Error});var $s=st(ae),hs=lt(ae),ys=dt(ae),_s=ft(ae),bs=Hn(ae),ks=Yn(ae),xs=Qn(ae),Is=er(ae),ws=tr(ae),Ss=nr(ae),zs=rr(ae),Ps=ir(ae);function oy(){K.localeError||F(Zr())}function et(){K.memoizer||F({memoizer:yn()})}var j=p("ZodType",(e,n)=>(oy(),P.init(e,n),e.def=n,e.type=n.type,e),{check(...e){let n=this.def;return this.clone($.mergeDefs(n,{checks:[...n.checks??[],...e.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,n){return T(this,e,n)},brand(){return this},register(e,n){return e.add(this,n),this},refine(e,n){return this.check(_l(e,n))},superRefine(e,n){return this.check(bl(e,n))},overwrite(e){return this.check(pe(e))},optional(){return Qe(this)},exactOptional(){return tl(this)},nullable(){return jn(this)},nullish(){return Qe(jn(this))},nonoptional(e){return ul(this,e)},array(){return Un(this)},or(e){return Vt([this,e])},and(e){return Ks(this,e)},transform(e){return Ii(this,Ki(e))},default(e){return il(this,e)},prefault(e){return al(this,e)},catch(e){return ll(this,e)},pipe(e){return Ii(this,e)},readonly(){return pl(this)},describe(e){let n=this.clone();return W.add(n,{description:e}),n},meta(...e){if(e.length===0)return W.get(this);let n=this.clone();return W.add(n,e[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...n){return n.length===0?e(this):e(this,...n)},get"~standard"(){return $.hide(this,"~standard",{...gr(this),jsonSchema:{input:Ot(this,"input"),output:Ot(this,"output")}})},set"~standard"(e){$.own(this,"~standard",e)},parse:function e(n,i){return $s(this,n,i,{callee:e})},parseAsync:async function e(n,i){return await hs(this,n,i,{callee:e})},safeParse(e,n){return ys(this,e,n)},async safeParseAsync(e,n){return _s(this,e,n)},get spa(){return this?.safeParseAsync},set spa(e){$.own(this,"spa",e)},validate(e,n){return tn(this,e,n)},validateAsync(e,n){return nn(this,e,n)},encode:function e(n,i){return bs(this,n,i,{callee:e})},decode:function e(n,i){return ks(this,n,i,{callee:e})},encodeAsync:async function e(n,i){return await xs(this,n,i,{callee:e})},decodeAsync:async function e(n,i){return await Is(this,n,i,{callee:e})},safeEncode(e,n){return ws(this,e,n)},safeDecode(e,n){return Ss(this,e,n)},async safeEncodeAsync(e,n){return zs(this,e,n)},async safeDecodeAsync(e,n){return Ps(this,e,n)},toJSONSchema(e){return jc(this,{})(e)},get description(){return W.get(this)?.description},get _def(){return this._zod.def}}),wi=p("_ZodString",(e,n)=>{Me.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Uc(e,i,o,t)},$.derived({format:e=>B(e).format??null,minLength:e=>B(e).minimum??null,maxLength:e=>B(e).maximum??null},{regex(...e){return this.check(ht(...e))},includes(...e){return this.check(bt(...e))},startsWith(...e){return this.check(kt(...e))},endsWith(...e){return this.check(xt(...e))},min(...e){return this.check(xe(...e))},max(...e){return this.check(qe(...e))},length(...e){return this.check(Xe(...e))},nonempty(...e){return this.check(xe(1,...e))},lowercase(e){return this.check(yt(e))},uppercase(e){return this.check(_t(e))},trim(){return this.check(zt())},normalize(...e){return this.check(St(...e))},toLowerCase(){return this.check(Pt())},toUpperCase(){return this.check(Dt())},slugify(){return this.check(jt())}})),Zt=p("ZodString",(e,n)=>{Me.init(e,n),wi.init(e,n)},{email(e){return this.check(Jr(Si,e))},url(e){return this.check(kn(On,e))},jwt(e){return this.check(li(Fi,e))},emoji(e){return this.check(Xr(Pi,e))},guid(e){return this.check(Br(zi,e))},uuid(e){return this.check(Kr(he,e))},uuidv4(e){return this.check(Gr(he,e))},uuidv6(e){return this.check(Wr(he,e))},uuidv7(e){return this.check(qr(he,e))},nanoid(e){return this.check(Hr(Di,e))},cuid(e){return this.check(Yr(ji,e))},cuid2(e){return this.check(Qr(Oi,e))},ulid(e){return this.check(ei(Ni,e))},base64(e){return this.check(ui(Li,e))},base64url(e){return this.check(ci(Vi,e))},xid(e){return this.check(ti(Ui,e))},ksuid(e){return this.check(ni(Ai,e))},ipv4(e){return this.check(ri(Ti,e))},ipv6(e){return this.check(ii(Zi,e))},cidrv4(e){return this.check(oi(Ei,e))},cidrv6(e){return this.check(ai(Ci,e))},e164(e){return this.check(si(Ri,e))},datetime(e){return this.check(xn(Ae,e))},date(e){return this.check(In(Te,e))},time(e){return this.check(wn(Ze,e))},duration(e){return this.check(Sn(Ee,e))}});function Dn(e){return Ku(Zt,e)}var C=p("ZodStringFormat",(e,n)=>{Z.init(e,n),wi.init(e,n)}),Ae=p("ZodISODateTime",(e,n)=>{Ca.init(e,n),C.init(e,n)}),Te=p("ZodISODate",(e,n)=>{La.init(e,n),C.init(e,n)}),Ze=p("ZodISOTime",(e,n)=>{Va.init(e,n),C.init(e,n)}),Ee=p("ZodISODuration",(e,n)=>{Ra.init(e,n),C.init(e,n)}),Si=p("ZodEmail",(e,n)=>{za.init(e,n),C.init(e,n)});function tm(e){return Jr(Si,e)}var zi=p("ZodGUID",(e,n)=>{wa.init(e,n),C.init(e,n)});function nm(e){return Br(zi,e)}var he=p("ZodUUID",(e,n)=>{Sa.init(e,n),C.init(e,n)});function rm(e){return Kr(he,e)}function im(e){return Gr(he,e)}function om(e){return Wr(he,e)}function am(e){return qr(he,e)}var On=p("ZodURL",(e,n)=>{ja.init(e,n),C.init(e,n)});function um(e){return kn(On,e)}function cm(e){return kn(On,{protocol:rn,hostname:Ro,...$.normalizeParams(e)})}var Pi=p("ZodEmoji",(e,n)=>{Oa.init(e,n),C.init(e,n)});function sm(e){return Xr(Pi,e)}var Di=p("ZodNanoID",(e,n)=>{Na.init(e,n),C.init(e,n)});function lm(e){return Hr(Di,e)}var ji=p("ZodCUID",(e,n)=>{Ua.init(e,n),C.init(e,n)});function dm(e){return Yr(ji,e)}var Oi=p("ZodCUID2",(e,n)=>{Aa.init(e,n),C.init(e,n)});function fm(e){return Qr(Oi,e)}var Ni=p("ZodULID",(e,n)=>{Ta.init(e,n),C.init(e,n)});function mm(e){return ei(Ni,e)}var Ui=p("ZodXID",(e,n)=>{Za.init(e,n),C.init(e,n)});function pm(e){return ti(Ui,e)}var Ai=p("ZodKSUID",(e,n)=>{Ea.init(e,n),C.init(e,n)});function gm(e){return ni(Ai,e)}var Ti=p("ZodIPv4",(e,n)=>{Fa.init(e,n),C.init(e,n)});function vm(e){return ri(Ti,e)}var Ds=p("ZodMAC",(e,n)=>{Ja.init(e,n),C.init(e,n)});function $m(e){return Wu(Ds,e)}var Zi=p("ZodIPv6",(e,n)=>{Ma.init(e,n),C.init(e,n)});function hm(e){return ii(Zi,e)}var Ei=p("ZodCIDRv4",(e,n)=>{Ba.init(e,n),C.init(e,n)});function ym(e){return oi(Ei,e)}var Ci=p("ZodCIDRv6",(e,n)=>{Ka.init(e,n),C.init(e,n)});function _m(e){return ai(Ci,e)}var Li=p("ZodBase64",(e,n)=>{Ga.init(e,n),C.init(e,n)});function bm(e){return ui(Li,e)}var Vi=p("ZodBase64URL",(e,n)=>{Wa.init(e,n),C.init(e,n)});function km(e){return ci(Vi,e)}var Ri=p("ZodE164",(e,n)=>{qa.init(e,n),C.init(e,n)});function xm(e){return si(Ri,e)}var js=p("ZodCreditCard",(e,n)=>{Xa.init(e,n),C.init(e,n)});function Im(e){return qu(js,e)}var Os=p("ZodIBAN",(e,n)=>{Ha.init(e,n),C.init(e,n)});function wm(e){return Xu(Os,e)}var Fi=p("ZodJWT",(e,n)=>{Ya.init(e,n),C.init(e,n)});function Sm(e){return li(Fi,e)}var tt=p("ZodCustomStringFormat",(e,n)=>{Qa.init(e,n),C.init(e,n)});function zm(e,n,i={}){return He(tt,e,n,i)}function Pm(e){return He(tt,"hostname",Vo,e)}function Dm(e){return He(tt,"hex",ta,e)}function jm(e){return He(tt,"currency_code",Mo,e)}function Om(e,n){let i=n?.enc??"hex",o=`${e}_${i}`,t=de[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return He(tt,o,t,n)}var Et=p("ZodNumber",(e,n)=>{wr.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ac(e,i,o,t),e.isFinite=!0},$.derived({minValue:e=>{let{minimum:n,exclusiveMinimum:i}=B(e);return Math.max(n??Number.NEGATIVE_INFINITY,i??Number.NEGATIVE_INFINITY)},maxValue:e=>{let{maximum:n,exclusiveMaximum:i}=B(e);return Math.min(n??Number.POSITIVE_INFINITY,i??Number.POSITIVE_INFINITY)},isInt:e=>{let{isInt:n,multipleOf:i}=B(e);return!!n||!!i?.some(Number.isSafeInteger)},format:e=>B(e).format??null},{gt(e,n){return this.check(ve(e,n))},gte(e,n){return this.check(ce(e,n))},min(e,n){return this.check(ce(e,n))},lt(e,n){return this.check(ge(e,n))},lte(e,n){return this.check(ue(e,n))},max(e,n){return this.check(ue(e,n))},int(e){return this.check(xi(e))},safe(e){return this.check(xi(e))},positive(e){return this.check(ve(0,e))},nonnegative(e){return this.check(ce(0,e))},negative(e){return this.check(ge(0,e))},nonpositive(e){return this.check(ue(0,e))},multipleOf(e,n){return this.check(De(e,n))},step(e,n){return this.check(De(e,n))},finite(){return this}}));function Ns(e){return Yu(Et,e)}var nt=p("ZodNumberFormat",(e,n)=>{eu.init(e,n),Et.init(e,n)});function xi(e){return ec(nt,e)}function Nm(e){return tc(nt,e)}function Um(e){return nc(nt,e)}function Am(e){return rc(nt,e)}function Tm(e){return ic(nt,e)}var Ct=p("ZodBoolean",(e,n)=>{mn.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Tc(e,i,o,t)});function Us(e){return oc(Ct,e)}var Lt=p("ZodBigInt",(e,n)=>{Sr.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Zc(e,i,o,t)},$.derived({minValue:e=>B(e).minimum??null,maxValue:e=>B(e).maximum??null,format:e=>B(e).format??null},{gte(e,n){return this.check(ce(e,n))},min(e,n){return this.check(ce(e,n))},gt(e,n){return this.check(ve(e,n))},lt(e,n){return this.check(ge(e,n))},lte(e,n){return this.check(ue(e,n))},max(e,n){return this.check(ue(e,n))},positive(e){return this.check(ve(BigInt(0),e))},negative(e){return this.check(ge(BigInt(0),e))},nonpositive(e){return this.check(ue(BigInt(0),e))},nonnegative(e){return this.check(ce(BigInt(0),e))},multipleOf(e,n){return this.check(De(e,n))}}));function Zm(e){return uc(Lt,e)}var Mi=p("ZodBigIntFormat",(e,n)=>{tu.init(e,n),Lt.init(e,n)});function Em(e){return sc(Mi,e)}function Cm(e){return lc(Mi,e)}var As=p("ZodSymbol",(e,n)=>{nu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ec(e,i,o,t)});function Lm(e){return dc(As,e)}var Ts=p("ZodUndefined",(e,n)=>{ru.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Lc(e,i,o,t)});function Vm(e){return fc(Ts,e)}var Zs=p("ZodNull",(e,n)=>{iu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Cc(e,i,o,t)});function Es(e){return mc(Zs,e)}var Cs=p("ZodAny",(e,n)=>{ou.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Fc(e,i,o,t)});function Rm(){return pc(Cs)}var Ls=p("ZodUnknown",(e,n)=>{au.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Mc(e,i,o,t)});function Ye(){return gc(Ls)}var Vs=p("ZodNever",(e,n)=>{uu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Rc(e,i,o,t)});function Ji(e){return vc(Vs,e)}var Rs=p("ZodVoid",(e,n)=>{cu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Vc(e,i,o,t)});function Fm(e){return $c(Rs,e)}var Nn=p("ZodDate",(e,n)=>{su.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Jc(e,i,o,t),e.min=(i,o)=>e.check(ce(i,o)),e.max=(i,o)=>e.check(ue(i,o))},$.derived({minDate:e=>{let{minimum:n}=B(e);return n?new Date(n):null},maxDate:e=>{let{maximum:n}=B(e);return n?new Date(n):null}},{}));function Mm(e){return hc(Nn,e)}var Fs=p("ZodArray",(e,n)=>{et(),lu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ns(e,i,o,t),e.element=n.element},{min(e,n){return this.check(xe(e,n))},nonempty(e){return this.check(xe(1,e))},max(e,n){return this.check(qe(e,n))},length(e,n){return this.check(Xe(e,n))},unwrap(){return this.element}});function Un(e,n){return bc(Fs,e,n)}function Jm(e){let n=e._zod.def.shape;return Bi(Object.keys(n))}var An=p("ZodObject",(e,n)=>{et(),du.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>rs(e,i,o,t),$.installLazyProp(e,"shape",i=>i._zod.def.shape,!1)},{keyof(){return Bi(Object.keys(this._zod.def.shape))},catchall(e){return this.clone($.mergeDefs(this._zod.def,{catchall:e}))},passthrough(){return this.clone($.mergeDefs(this._zod.def,{catchall:Ye()}))},loose(){return this.clone($.mergeDefs(this._zod.def,{catchall:Ye()}))},strict(){return this.clone($.mergeDefs(this._zod.def,{catchall:Ji()}))},strip(){return this.clone($.mergeDefs(this._zod.def,{catchall:void 0}))},extend(e){return $.extend(this,e)},safeExtend(e){return $.safeExtend(this,e)},merge(e){return $.merge(this,e)},pick(e){return $.pick(this,e)},omit(e){return $.omit(this,e)},partial(...e){return $.partial(Zn,this,e[0])},exactPartial(...e){return $.partial(Gi,this,e[0],"exactPartial")},required(...e){return $.required(Wi,this,e[0])}});function Bm(e,n){let i={type:"object",shape:e??{},...$.normalizeParams(n)};return new An(i)}function Km(e,n){return new An({type:"object",shape:e,catchall:Ji(),...$.normalizeParams(n)})}function Gm(e,n){return new An({type:"object",shape:e,catchall:Ye(),...$.normalizeParams(n)})}var Tn=p("ZodUnion",(e,n)=>{pn.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>$i(e,i,o,t),e.options=n.options});function Vt(e,n){return new Tn({type:"union",options:e,...$.normalizeParams(n)})}var Ms=p("ZodXor",(e,n)=>{Tn.init(e,n),fu.init(e,n),e._zod.processJSONSchema=(i,o,t)=>$i(e,i,o,t),e.options=n.options});function Wm(e,n){return new Ms({type:"union",options:e,inclusive:!1,...$.normalizeParams(n)})}var Js=p("ZodDiscriminatedUnion",(e,n)=>{Tn.init(e,n),pu.init(e,n)});function qm(e,n,i){return new Js({type:"union",options:n,discriminator:e,...$.normalizeParams(i)})}var Bs=p("ZodIntersection",(e,n)=>{gu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>is(e,i,o,t)});function Ks(e,n){return new Bs({type:"intersection",left:e,right:n})}var Gs=p("ZodTuple",(e,n)=>{et(),zr.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>os(e,i,o,t)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...e,items:e.items.map(n=>new Zn({type:"optional",innerType:n}))})}});function Ws(e,n,i){let o=n instanceof P,t=o?i:n,r=o?n:null;return new Gs({type:"tuple",items:e,rest:r,...$.normalizeParams(t)})}var At=p("ZodRecord",(e,n)=>{et(),vu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>as(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType});function qs(e,n,i){return!n||!n._zod?new At({type:"record",keyType:Dn(),valueType:e,...$.normalizeParams(n)}):new At({type:"record",keyType:e,valueType:n,...$.normalizeParams(i)})}function Xm(e,n,i){return new At({type:"record",keyType:e,valueType:n,...$.normalizeParams(i),partial:!0})}function Hm(e,n,i){return new At({type:"record",keyType:e,valueType:n,mode:"loose",...$.normalizeParams(i)})}var Xs=p("ZodMap",(e,n)=>{et(),$u.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>es(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...i)=>e.check($e(...i)),e.nonempty=i=>e.check($e(1,i)),e.max=(...i)=>e.check(je(...i)),e.size=(...i)=>e.check(We(...i))});function Ym(e,n,i){return new Xs({type:"map",keyType:e,valueType:n,...$.normalizeParams(i)})}var Hs=p("ZodSet",(e,n)=>{et(),hu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ts(e,i,o,t),e.min=(...i)=>e.check($e(...i)),e.nonempty=i=>e.check($e(1,i)),e.max=(...i)=>e.check(je(...i)),e.size=(...i)=>e.check(We(...i))});function Qm(e,n){return new Hs({type:"set",valueType:e,...$.normalizeParams(n)})}var Tt=p("ZodEnum",(e,n)=>{yu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(o,t,r)=>Bc(e,o,t,r),e.enum=n.entries,e.options=[...e._zod.values];let i=new Set(Object.keys(n.entries));e.extract=(o,t)=>{let r={};for(let a of o)if(i.has(a))r[a]=n.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Tt({...n,checks:[],...$.normalizeParams(t),entries:r})},e.exclude=(o,t)=>{let r={...n.entries};for(let a of o)if(i.has(a))delete r[a];else throw new Error(`Key ${a} not found in enum`);return new Tt({...n,checks:[],...$.normalizeParams(t),entries:r})}});function Bi(e,n){let i=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new Tt({type:"enum",entries:i,...$.normalizeParams(n)})}function ep(e,n){return new Tt({type:"enum",entries:e,...$.normalizeParams(n)})}var Ys=p("ZodLiteral",(e,n)=>{_u.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Kc(e,i,o,t),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function tp(e,n){return new Ys({type:"literal",values:Array.isArray(e)?e:[e],...$.normalizeParams(n)})}var Qs=p("ZodFile",(e,n)=>{bu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>qc(e,i,o,t),e.min=(i,o)=>e.check($e(i,o)),e.max=(i,o)=>e.check(je(i,o)),e.mime=(i,o)=>e.check(wt(Array.isArray(i)?i:[i],o))});function np(e){return kc(Qs,e)}var el=p("ZodTransform",(e,n)=>{et(),ku.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Qc(e,i,o,t),e._zod.parse=(i,o)=>{if(o.direction==="backward")throw new Pe(e.constructor.name);i.addIssue=r=>{if(typeof r=="string")i.issues.push($.issue(r,i.value,n));else{let a=r;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),"input"in a||(a.input=i.value),a.inst??(a.inst=e),i.issues.push($.issue(a))}};let t=n.transform(i.value,i);return t instanceof Promise?t.then(r=>(i.value=r,i)):(i.value=t,i)}});function Ki(e){return new el({type:"transform",transform:e})}var Zn=p("ZodOptional",(e,n)=>{Pr.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>hi(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Qe(e){return new Zn({type:"optional",innerType:e})}var Gi=p("ZodExactOptional",(e,n)=>{xu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>hi(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function tl(e){return new Gi({type:"optional",innerType:e})}var nl=p("ZodNullable",(e,n)=>{Iu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>us(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function jn(e){return new nl({type:"nullable",innerType:e})}function rp(e){return Qe(jn(e))}var rl=p("ZodDefault",(e,n)=>{wu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ls(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function il(e,n){return new rl({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():$.shallowClone(n)}})}var ol=p("ZodPrefault",(e,n)=>{Su.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ds(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function al(e,n){return new ol({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():$.shallowClone(n)}})}var Wi=p("ZodNonOptional",(e,n)=>{zu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>cs(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function ul(e,n){return new Wi({type:"nonoptional",innerType:e,...$.normalizeParams(n)})}var cl=p("ZodSuccess",(e,n)=>{Pu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Xc(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function ip(e){return new cl({type:"success",innerType:e})}var sl=p("ZodCatch",(e,n)=>{Du.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>fs(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ll(e,n){return new sl({type:"catch",innerType:e,catchValue:typeof n=="function"?n:$.constantCatch(n)})}var dl=p("ZodNaN",(e,n)=>{ju.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Gc(e,i,o,t)});function op(e){return _c(dl,e)}var En=p("ZodPipe",(e,n)=>{Dr.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ms(e,i,o,t),e.in=n.in,e.out=n.out});function Ii(e,n){return new En({type:"pipe",in:e,out:n})}var Cn=p("ZodCodec",(e,n)=>{En.init(e,n),gn.init(e,n)});function ap(e,n,i){return new Cn({type:"pipe",in:e,out:n,transform:i.decode,reverseTransform:i.encode})}function up(e){let n=e._zod.def;return new Cn({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var fl=p("ZodPreprocess",(e,n)=>{En.init(e,n),Ou.init(e,n)}),ml=p("ZodReadonly",(e,n)=>{Nu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ps(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function pl(e){return new ml({type:"readonly",innerType:e})}var gl=p("ZodTemplateLiteral",(e,n)=>{Uu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Wc(e,i,o,t)});function cp(e,n){return new gl({type:"template_literal",parts:e,...$.normalizeParams(n)})}var vl=p("ZodLazy",(e,n)=>{vn.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>vs(e,i,o,t),e.unwrap=()=>e._zod.def.getter()});function $l(e){return new vl({type:"lazy",getter:e})}var hl=p("ZodPromise",(e,n)=>{Tu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>gs(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function sp(e){return new hl({type:"promise",innerType:e})}var yl=p("ZodFunction",(e,n)=>{Au.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Yc(e,i,o,t)});function lp(e){return new yl({type:"function",input:Array.isArray(e?.input)?Ws(e?.input):e?.input??Un(Ye()),output:e?.output??Ye()})}var Ln=p("ZodCustom",(e,n)=>{Zu.init(e,n),j.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Hc(e,i,o,t)});function dp(e){let n=new L({check:"custom"});return n._zod.check=e,n}function fp(e,n){return xc(Ln,e??(()=>!0),n)}function _l(e,n={}){return Ic(Ln,e,n)}function bl(e,n){return wc(e,n)}var mp=Sc,pp=zc,kl=p("ZodInstanceOf",(e,n)=>{Ln.init(e,n)},{properties(e,n){return this.check(It(e,n))}});function gp(e,n={}){let i=new kl({type:"custom",check:"custom",fn:o=>o instanceof e,abort:!0,...$.normalizeParams(n)});return i._zod.bag.Class=e,i._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:i,path:[...i._zod.def.path??[]]})},i}var vp=(...e)=>Pc({Codec:Cn,Boolean:Ct,String:Zt},...e);function $p(e){let n=$l(()=>Vt([Dn(e),Ns(),Us(),Es(),Un(n),qs(Dn(),n)]));return n}function hp(e,n){return new fl({type:"pipe",in:Ki(e),out:n})}var ay={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function uy(e){F({customError:e})}function cy(){return F().customError}var xl;xl||(xl={});var Vn={};ye(Vn,{ZodISODate:()=>Te,ZodISODateTime:()=>Ae,ZodISODuration:()=>Ee,ZodISOTime:()=>Ze,date:()=>ly,datetime:()=>sy,duration:()=>fy,time:()=>dy});function sy(e){return xn(Ae,e)}function ly(e){return In(Te,e)}function dy(e){return wn(Ze,e)}function fy(e){return Sn(Ee,e)}var x={...Rt,...bi,iso:Vn},my=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function py(e,n){let i=e.$schema;return i==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":i==="http://json-schema.org/draft-07/schema#"?"draft-7":i==="http://json-schema.org/draft-04/schema#"?"draft-4":n??"draft-2020-12"}function yp(e,n){return e.map((i,o)=>o<n?i:i.optional())}function gy(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function vy(e,n){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let i=e.slice(1).split("/").filter(Boolean);if(i.length===0)return n.rootSchema;let o=n.version==="draft-2020-12"?"$defs":"definitions";if(i[0]===o){let t=i[1]===void 0?void 0:gy(i[1]);if(!t||!n.defs[t])throw new Error(`Reference not found: ${e}`);return n.defs[t]}throw new Error(`Reference not found: ${e}`)}function $y(e,n){return x.transform(o=>o).check(o=>{let t=o.value;if(typeof t!="object"||t===null||Array.isArray(t))return;let r=Object.getOwnPropertyNames(t);if(n.minProperties!==void 0&&r.length<n.minProperties&&o.issues.push({origin:"object",code:"too_small",minimum:n.minProperties,inclusive:!0,message:`Too small: expected object to have >=${n.minProperties} properties`,input:t,inst:e,continue:!0}),n.maxProperties!==void 0&&r.length>n.maxProperties&&o.issues.push({origin:"object",code:"too_big",maximum:n.maxProperties,inclusive:!0,message:`Too big: expected object to have <=${n.maxProperties} properties`,input:t,inst:e,continue:!0}),n.keySchema)for(let a of r){let u=n.keySchema.safeParse(a);u.success||o.issues.push({code:"invalid_key",origin:"record",issues:u.error.issues,input:a,path:[a],continue:!0})}}).pipe(e)}function Il(e,n){if(e===null)return"z";let i=typeof e;if(i!=="object"){if(i==="number"&&Number.isNaN(e))return null;let o=String(e);return`${i[0]}${o.length}:${o}`}if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let r=[];for(let a of e){let u=Il(a,n);if(u===null)return null;r.push(u)}return`a${r.length}:[${r.join(",")}]`}let o=Object.keys(e).sort(),t=[];for(let r of o){let a=Il(e[r],n);if(a===null)return null;t.push(`${r.length}:${r}=${a}`)}return`o${t.length}:{${t.join(",")}}`}finally{n.delete(e)}}var hy=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]),yy=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function Rn(e){return typeof e!="object"||e===null?!1:Array.isArray(e)?e.some(Rn):typeof e.$ref=="string"?!0:Object.entries(e).some(([n,i])=>hy.has(n)?Rn(i):!yy.has(n)||typeof i!="object"||i===null?!1:Object.values(i).some(Rn))}function _p(e){return e===1?"element":"elements"}function _y(e,n){return x.transform(o=>o).check(o=>{let t=o.value;if(Array.isArray(t)){if(n.uniqueItems===!0){let r=new Map;for(let a=0;a<t.length;a++){let u=Il(t[a],new Set);if(u===null)continue;let c=r.get(u);if(c===void 0){r.set(u,a);continue}o.issues.push({code:"custom",message:`Array items must be unique: element at index ${a} duplicates the one at index ${c}`,input:t,path:[a],continue:!0})}}if(n.containsSchema){let r=n.minContains??1,a=n.maxContains!==void 0?n.maxContains+1:Number.POSITIVE_INFINITY,u=0;for(let c of t)if(n.containsSchema.safeParse(c).success&&++u>=a)break;u<r&&o.issues.push({code:"custom",message:`Array must contain at least ${r} matching ${_p(r)}; found ${u}`,input:t,continue:!0}),n.maxContains!==void 0&&u>n.maxContains&&o.issues.push({code:"custom",message:`Array must contain at most ${n.maxContains} matching ${_p(n.maxContains)}`,input:t,continue:!0})}}}).pipe(e)}function bp(e,n){if(e!==!1)return e===void 0||e===!0?x.any():te(e,n)}var by=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function kp(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return x.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(n.refs.has(t))return n.refs.get(t);if(n.processing.has(t))return x.lazy(()=>{if(!n.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return n.refs.get(t)});n.processing.add(t);let r=vy(t,n),a=te(r,n);return n.refs.set(t,a),n.processing.delete(t),a}if(e.enum!==void 0){let t=e.enum;if(n.version==="openapi-3.0"&&e.nullable===!0&&t.length===1&&t[0]===null)return x.null();if(t.length===0)return x.never();if(t.length===1)return x.literal(t[0]);if(t.every(a=>typeof a=="string"))return x.enum(t);let r=t.map(a=>x.literal(a));return r.length<2?r[0]:x.union([r[0],r[1],...r.slice(2)])}if(e.const!==void 0)return x.literal(e.const);let i=e.type;if(Array.isArray(i)){let t=i.map(r=>{let a={...e,type:r};return kp(a,n)});return t.length===0?x.never():t.length===1?t[0]:x.union(t)}if(!i)return x.any();let o;switch(i){case"string":{let t=x.string();if(e.format){let r=e.format;r==="email"?t=t.check(x.email()):r==="uri"||r==="uri-reference"?t=t.check(x.url()):r==="uuid"||r==="guid"?t=t.check(x.uuid()):r==="date-time"?t=t.check(x.iso.datetime({offset:!0})):r==="date"?t=t.check(x.iso.date()):r==="time"?t=t.check(x.regex(by)):r==="duration"?t=t.check(x.iso.duration()):r==="hostname"?t=t.check(x.hostname()):r==="ipv4"?t=t.check(x.ipv4()):r==="ipv6"?t=t.check(x.ipv6()):r==="mac"?t=t.check(x.mac()):r==="cidr"?t=t.check(x.cidrv4()):r==="cidr-v6"?t=t.check(x.cidrv6()):r==="base64"?t=t.check(x.base64()):r==="base64url"?t=t.check(x.base64url()):r==="e164"?t=t.check(x.e164()):r==="credit_card"?t=t.check(x.creditCard()):r==="iban"?t=t.check(x.iban()):r==="jwt"?t=t.check(x.jwt()):r==="emoji"?t=t.check(x.emoji()):r==="nanoid"?t=t.check(x.nanoid()):r==="cuid"?t=t.check(x.cuid()):r==="cuid2"?t=t.check(x.cuid2()):r==="ulid"?t=t.check(x.ulid()):r==="xid"?t=t.check(x.xid()):r==="ksuid"&&(t=t.check(x.ksuid()))}typeof e.minLength=="number"&&(t=t.min(e.minLength)),typeof e.maxLength=="number"&&(t=t.max(e.maxLength)),e.pattern&&(t=t.regex(new RegExp(e.pattern))),o=t;break}case"number":case"integer":{let t=i==="integer"?x.number().int():x.number();typeof e.minimum=="number"&&e.exclusiveMinimum!==!0&&(t=t.min(e.minimum)),typeof e.maximum=="number"&&e.exclusiveMaximum!==!0&&(t=t.max(e.maximum)),typeof e.exclusiveMinimum=="number"?t=t.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(t=t.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?t=t.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(t=t.lt(e.maximum)),typeof e.multipleOf=="number"&&(t=t.multipleOf(e.multipleOf)),o=t;break}case"boolean":{o=x.boolean();break}case"null":{o=x.null();break}case"object":{let t={},r=e.properties||{},a=new Set(e.required||[]),u=typeof e.additionalProperties=="object"?te(e.additionalProperties,n):void 0;for(let[d,f]of Object.entries(r)){let m=te(f,n);G(t,d,a.has(d)?m:m.optional())}if(e.patternProperties){let d=e.patternProperties,f=Object.keys(d),m=[];for(let _ of f){let k=te(d[_],n),S=x.string().regex(new RegExp(_));m.push(x.looseRecord(S,k))}let v=[];if(Object.keys(t).length>0&&v.push(x.object(t).passthrough()),v.push(...m),v.length===0)o=x.object({}).passthrough();else if(v.length===1)o=v[0];else{let _=x.intersection(v[0],v[1]);for(let k=2;k<v.length;k++)_=x.intersection(_,v[k]);o=_}if(e.additionalProperties===!1){let _=Object.keys(t),k=f.map(I=>new RegExp(I)),S=o;o=o.check(I=>{if(!se(I.value))return;let D=[];for(let A of Object.keys(I.value))_.includes(A)||k.some(V=>V.test(A))||D.push(A);D.length&&I.issues.push({code:"unrecognized_keys",keys:D,input:I.value,inst:S})})}}else{let d=x.object(t);e.additionalProperties===!1?o=d.strict():u?o=d.catchall(u):o=d.passthrough()}let c=e.propertyNames!==void 0&&e.propertyNames!==!0,s=typeof e.minProperties=="number"?e.minProperties:void 0,l=typeof e.maxProperties=="number"?e.maxProperties:void 0;if(c||s!==void 0||l!==void 0){let d;if(c){let f=typeof e.propertyNames=="object"&&e.propertyNames.type===void 0?{type:"string",...e.propertyNames}:e.propertyNames;d=te(f,n)}o=$y(o,{keySchema:d,minProperties:s,maxProperties:l})}break}case"array":{let t=e.prefixItems,r=e.items;if(t&&Array.isArray(t)){let a=typeof e.minItems=="number"?e.minItems:0,u=t.map(d=>te(d,n)),c=yp(u,a),s=Array.isArray(r)?void 0:bp(r,n),l=x.tuple(c);o=s?l.rest(s):l,typeof e.minItems=="number"&&(o=o.check(x.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(x.maxLength(e.maxItems)))}else if(Array.isArray(r)){let a=typeof e.minItems=="number"?e.minItems:0,u=r.map(d=>te(d,n)),c=yp(u,a),s=bp(e.additionalItems,n),l=x.tuple(c);o=s?l.rest(s):l,typeof e.minItems=="number"&&(o=o.check(x.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(x.maxLength(e.maxItems)))}else if(r!==void 0){let a=te(r,n),u=x.array(a);typeof e.minItems=="number"&&(u=u.min(e.minItems)),typeof e.maxItems=="number"&&(u=u.max(e.maxItems)),o=u}else o=x.array(x.any());(e.uniqueItems===!0||e.contains!==void 0)&&(o=_y(o,{uniqueItems:e.uniqueItems===!0,containsSchema:e.contains!==void 0?te(e.contains,n):void 0,minContains:typeof e.minContains=="number"?e.minContains:void 0,maxContains:typeof e.maxContains=="number"?e.maxContains:void 0}));break}default:throw new Error(`Unsupported type: ${i}`)}return o}function te(e,n){if(typeof e=="boolean")return e?x.any():x.never();let i=kp(e,n),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let u=e.anyOf.map(s=>te(s,n)),c=x.union(u);i=o?x.intersection(i,c):c}if(e.oneOf&&Array.isArray(e.oneOf)){let u=e.oneOf.map(s=>te(s,n)),c=x.xor(u);i=o?x.intersection(i,c):c}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)i=o?i:x.any();else{let u=o?i:te(e.allOf[0],n),c=o?0:1;for(let s=c;s<e.allOf.length;s++)u=x.intersection(u,te(e.allOf[s],n));i=u}e.nullable===!0&&n.version==="openapi-3.0"&&(i=x.nullable(i)),e.readOnly===!0&&(i=x.readonly(i)),e.default!==void 0&&(i=i.default(e.default));let t={},r=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let u of r)u in e&&(t[u]=e[u]);let a=["contentEncoding","contentMediaType","contentSchema"];for(let u of a)u in e&&(t[u]=e[u]);if(e.type==="object"&&e.$ref===void 0){e.propertyNames!==void 0&&!Rn(e.propertyNames)&&(t.propertyNames=e.propertyNames);for(let u of["minProperties","maxProperties"])e[u]!==void 0&&(t[u]=e[u])}if(e.type==="array"&&e.$ref===void 0){e.contains!==void 0&&!Rn(e.contains)&&(t.contains=e.contains);for(let u of["uniqueItems","minContains","maxContains"])e[u]!==void 0&&(t[u]=e[u])}for(let u of Object.keys(e))my.has(u)||G(t,u,e[u]);return Object.keys(t).length>0&&n.registry.add(i,t),e.description&&(i=i.describe(e.description)),i}function xp(e,n){if(typeof e=="boolean")return e?x.any():x.never();let i;try{i=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=py(i,n?.defaultTarget),t=i.$defs||i.definitions||{},r={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:i,registry:n?.registry??W};return te(i,r)}var Ip=Symbol("z.visit/resolving");function Fn(e,n){let i=typeof n=="function"?n:(a,u)=>{let c=n[a._zod.def.type];return c?c(a,u):a},o=new Map;function t(a){let u=o.get(a);if(u===Ip)return new vn({type:"lazy",getter:()=>o.get(a)});if(u!==void 0)return u;o.set(a,Ip);let c=r(a),s=i(c,c!==a);return o.set(a,s),s}function r(a){let u=a._zod.def,c=u.type;switch(c){case"object":{let s=u.shape,l=Object.keys(s),d=!1,f={};for(let v of l){let _=t(s[v]);_!==s[v]&&(d=!0),f[v]=_}let m=u.catchall;return u.catchall&&(m=t(u.catchall),m!==u.catchall&&(d=!0)),d?T(a,{...u,shape:f,catchall:m}):a}case"array":{let s=t(u.element);return s===u.element?a:T(a,{...u,element:s})}case"tuple":{let s=u.items,l=!1,d=[];for(let m of s){let v=t(m);v!==m&&(l=!0),d.push(v)}let f=u.rest;return u.rest&&(f=t(u.rest),f!==u.rest&&(l=!0)),l?T(a,{...u,items:d,rest:f}):a}case"record":case"map":{let s=t(u.keyType),l=t(u.valueType);return s===u.keyType&&l===u.valueType?a:T(a,{...u,keyType:s,valueType:l})}case"set":{let s=t(u.valueType);return s===u.valueType?a:T(a,{...u,valueType:s})}case"union":{let s=u.options,l=!1,d=[];for(let f of s){let m=t(f);m!==f&&(l=!0),d.push(m)}return l?T(a,{...u,options:d}):a}case"intersection":{let s=t(u.left),l=t(u.right);return s===u.left&&l===u.right?a:T(a,{...u,left:s,right:l})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{let s=t(u.innerType);return s===u.innerType?a:T(a,{...u,innerType:s})}case"pipe":{let s=t(u.in),l=t(u.out);return s===u.in&&l===u.out?a:T(a,{...u,in:s,out:l})}case"function":{let s=t(u.input),l=t(u.output);return s===u.input&&l===u.output?a:T(a,{...u,input:s,output:l})}case"lazy":{let s=u.getter,{_cachedInner:l,...d}=u;return T(a,{...d,getter:()=>t(s())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return a;default:return a}}return t(e)}function wp(e){return Fn(e,{object:n=>n.partial(),union:n=>{let i=n._zod.def;return i.discriminator===void 0?n:Vt(i.options)}})}function ky(e,n){if(!n?.length)return e;let i=e._zod.def;return T(e,fe(i,{checks:[...i.checks??[],...n]}),{parent:!0})}function Sp(e){return ky(e.out,e.checks)}function xy(e){return e.in._zod.traits.has("$ZodTransform")?Sp(e):e.in}function zp(e){return Fn(e,{pipe:n=>xy(n._zod.def),default:(n,i)=>i?Qe(n._zod.def.innerType):n,catch:(n,i)=>i?n._zod.def.innerType:n})}function Pp(e){return Fn(e,{pipe:n=>Sp(n._zod.def),prefault:(n,i)=>i?n._zod.def.innerType:n})}var wl={};ye(wl,{bigint:()=>zy,boolean:()=>Sy,date:()=>Py,number:()=>wy,string:()=>Iy});function Iy(e){return Gu(Zt,e)}function wy(e){return Qu(Et,e)}function Sy(e){return ac(Ct,e)}function zy(e){return cc(Lt,e)}function Py(e){return yc(Nn,e)}var Dy=M.strictObject({enabled:M.boolean().default(!0),visualFidelity:M.boolean().default(!0)}),Dp=M.strictObject({token:M.string().regex(/^[a-f0-9]{64}$/),port:M.number().int().min(1024).max(65535),pairings:M.array(M.strictObject({id:M.string().uuid(),browser:M.enum(["firefox","chrome"]),extensionId:M.string().min(1).max(256),origin:M.string().min(1).max(300),credentialHash:M.string().regex(/^[a-f0-9]{64}$/),createdAt:M.string().datetime(),revokedAt:M.string().datetime().optional()})).max(32).default([]),allowedOrigins:M.array(M.url()).default([]),agentGuidance:Dy.default({enabled:!0,visualFidelity:!0})});var jp=`GazeSight gives you visual access to the developer's explicitly authorized browser tab \u2014 nothing else, and only when they selected it.
|
|
63
63
|
|
|
64
|
+
If a separate, general-purpose browser automation tool is also available for the same check, prefer GazeSight's authorized tab over spinning up a new automated browser instance: it's the developer's real, already-running session (their actual logged-in state and environment), not a fresh, unauthenticated instance that may not even reproduce the page correctly, and needs no separate browser install. Fall back to a general-purpose browser tool only when no GazeSight tab is authorized for what you need to check.
|
|
65
|
+
|
|
64
66
|
When visual accuracy matters: inspect the rendered page before assuming how it looks; verify frontend changes after implementing them; preserve existing application state unless the task requires changing it; prefer the project's existing assets, icons, fonts and design-system components over invented ones; use DOM inspection (visual_get_dom / visual_get_element) when a screenshot alone is ambiguous; use visual_diff when comparing two controlled captures; fix meaningful visible discrepancies before calling a visual task done; don't redesign an interface when the user asked for a faithful reproduction.
|
|
65
67
|
|
|
66
68
|
Typical loop: inspect -> implement -> capture -> compare -> correct -> verify. Don't capture after every line of code, and prefer visual_capture_element or visual_capture_region over a full-page capture when only part of the page matters; use FAST for quick feedback and STABLE after changes that may still be settling. Avoid unnecessary reloads, navigation or viewport changes: most CSS/JS edits already hot-reload, and a reload can still reset in-page state even when GazeSight stays connected, so only reload when you have a specific reason to believe the page is stale. If a call ever returns GS_REAUTHORIZE_TARGET, wait briefly and retry once before assuming anything is wrong: GazeSight often reconnects automatically after a same-origin reload or navigation. Only tell the developer to click the extension again if that error persists.
|
|
@@ -75,8 +77,31 @@ Match as closely as practical: layout, spacing, alignment, component dimensions,
|
|
|
75
77
|
|
|
76
78
|
After implementing: capture the result, compare it against the reference (visual_diff when a comparable baseline exists), and diagnose before editing \u2014 localize the problem with visual_diff or visual_get_changed_regions, or DOM/computed-style inspection, rather than guessing CSS values repeatedly. Correct in priority order: overall structure and layout, then element size and position, then typography, then spacing, then colors/borders/radius/shadows, then decorative details \u2014 don't polish a detail while the layout underneath is still wrong.
|
|
77
79
|
|
|
78
|
-
Leave a region alone once it matches the reference unless the current fix depends on it. If a change makes the result visibly worse, revise or revert it before touching anything else, rather than layering more edits on top of a regression. Repeat diagnose -> correct -> verify until no meaningful visible difference remains, further edits stop producing visible improvement, a fix requires an asset or information you don't have, or the developer's stated acceptance criteria are met. Don't chase indefinite sub-pixel differences, and don't capture again without a specific reason to expect something changed
|
|
80
|
+
Leave a region alone once it matches the reference unless the current fix depends on it. If a change makes the result visibly worse, revise or revert it before touching anything else, rather than layering more edits on top of a regression. Repeat diagnose -> correct -> verify until no meaningful visible difference remains, further edits stop producing visible improvement, a fix requires an asset or information you don't have, or the developer's stated acceptance criteria are met. Don't chase indefinite sub-pixel differences, and don't capture again without a specific reason to expect something changed.`,Oy=`VISUAL CONVERGENCE (part of Visual Fidelity Mode) applies when a local PNG reference file is available and the task is to iteratively make the live page match it. Use visual_diff's referenceImagePath (not baseline) to compare the live capture directly against that file, and pass the same stable checkpoint id (e.g. "hero-desktop") on every call for that reference/viewport pair \u2014 this persists an objective, server-computed best-so-far result outside your own assessment.
|
|
81
|
+
|
|
82
|
+
After every correction, call visual_diff again with the same referenceImagePath, checkpoint and viewport. Read isBest and regressed directly from the result rather than relying on your own visual impression of whether a change helped, and don't report a fix as successful without first confirming isBest:true or a lower currentDifferencePercent in that next call \u2014 a self-reported "reverted successfully" that the next measurement contradicts is a known failure mode. If regressed:true, the result's regressionBoundingBoxes and bestImagePath show exactly what changed since the best-known state and where to find it; use them as concrete recovery context and revise toward that best state rather than layering further edits on top of a regression. shouldWarn:true only marks the first call to observe a given regression episode; it will not repeat on every call while still regressed, so keep checking regressed on later calls rather than assuming an earlier warning is the only one that matters.
|
|
83
|
+
|
|
84
|
+
If the developer or project supplies a convergence config (for example a local JSON file listing checkpoints with their referenceImagePath, viewport and tolerance/max-iteration limits), read and honor it: set the matching viewport with visual_set_viewport before each capture, and stop once currentDifferencePercent is within the stated tolerance.
|
|
85
|
+
|
|
86
|
+
When checkpoint is used, visual_diff also runs an immediate self-vs-self recapture of the same tab and reports reliable, stabilityDifferencePercent and unstableBoundingBoxes alongside isBest/regressed on every call. reliable:false means this specific reading was too noisy (animation, video, a live clock, anything moving on its own) to trust: isBest/regressed in that same result reflect the untouched previous best-so-far state, not this reading \u2014 don't treat an unreliable call as either progress or a regression, and don't let it interrupt a correct-diagnose-verify sequence otherwise going well.
|
|
87
|
+
|
|
88
|
+
Stop the convergence loop, and report honestly rather than as success, on any of these. Never continue indefinitely past them:
|
|
89
|
+
- acceptable fidelity: currentDifferencePercent is within the stated tolerance (or, absent a stated tolerance, no meaningful visible difference remains per Visual Fidelity Mode above).
|
|
90
|
+
- stagnation: two consecutive reliable calls show no improvement in currentDifferencePercent.
|
|
91
|
+
- max iterations: the stated max-iteration count is reached, or, absent a stated limit, after at most 5 correction attempts for a single reference.
|
|
92
|
+
- unrecoverable regression: regressed:true persists across repeated attempts to recover toward bestImagePath/regressionBoundingBoxes rather than clearing.
|
|
93
|
+
- environmental instability: reliable:false persists across repeated attempts \u2014 the page itself is too noisy to measure (e.g. autoplaying media), not a fidelity problem you can fix by editing code; report which region is unstable (unstableBoundingBoxes) rather than continuing to chase it.`,Ny=`AUTOMATIC VISUAL CONVERGENCE TRIGGER: enter Visual Convergence (above) on your own, without the developer needing to mention GazeSight, whenever their request combines (a) genuine visual reproduction intent \u2014 asking you to build, reproduce, clone, match, replicate, or closely follow the look of something \u2014 with (b) an accessible visual reference: an attached/pasted image, a local design file path, or an existing page/URL to match. Detect this from meaning, not fixed phrases: the request can be in any language the connected coding agent supports (French, English, Spanish, Portuguese, German, and others), can mix languages, and may not use any of this guidance's own English words at all. Judge intent the way you would if a colleague said it to you in that language, not by scanning for keywords.
|
|
94
|
+
|
|
95
|
+
Do not trigger on a visual reference alone: a screenshot attached to a bug report, an error message, a design discussion, or a "what does this look like" question is not a reproduction request even though an image is present. Both genuine reproduction intent AND an accessible reference are required together.
|
|
96
|
+
|
|
97
|
+
If reproduction intent is clear but no reference is actually accessible yet (described verbally only, or an image mentioned but not attached/reachable), ask the developer for the reference in their own language rather than proceeding without one or silently skipping Visual Convergence.
|
|
98
|
+
|
|
99
|
+
Once triggered, save any attached/pasted image to a local file first (Visual Convergence's referenceImagePath needs a path, not inline image data), then follow Visual Convergence and Visual Fidelity Mode above exactly as if the developer had asked for them by name. Give the developer status updates and the final verification report in the same language they used to make the request \u2014 translate none of it to English on their behalf. This applies per request: a developer switching languages between requests changes only that request's response language, not a standing preference.`;function Op(e){if(e.enabled)return e.visualFidelity?`${jp}
|
|
100
|
+
|
|
101
|
+
${jy}
|
|
102
|
+
|
|
103
|
+
${Oy}
|
|
79
104
|
|
|
80
|
-
${
|
|
81
|
-
`);var Hi=Ft.agentGuidance??{enabled:!0,visualFidelity:!0};Ep(Hi);var
|
|
82
|
-
`),Hi=o.agentGuidance,Ep(Hi),Xi.textContent="Configuration import\xE9e. Cliquez sur Enregistrer et connecter."}).catch(()=>{Xi.textContent="Fichier de configuration invalide."})});
|
|
105
|
+
${Ny}`:jp}var we="pendingPairing";function Uy(){return[...crypto.getRandomValues(new Uint8Array(32))].map(n=>n.toString(16).padStart(2,"0")).join("")}function Ay(){return location.protocol==="moz-extension:"?"firefox":"chrome"}async function Sl(e,n,i,o,t=2500){return fetch(`http://127.0.0.1:${e}/gazesight/pairing/${n}`,{method:"POST",headers:{"Content-Type":"application/json",...o?{Authorization:`Bearer ${o}`}:{}},body:JSON.stringify(i),signal:AbortSignal.timeout(t)})}async function Np(e,n){let{requestId:i,proof:o,code:t,expiresAt:r,port:a}=n;for(;;){if(Date.now()>=r)return await browser.storage.local.remove(we),e("expired",t),!1;e("waiting_approval",t);let u;try{u=await Sl(a,"status",{requestId:i,secret:o})}catch{await new Promise(s=>setTimeout(s,800));continue}let c=await u.json();if(c.state==="approved"&&c.credential&&c.pairingId)return await browser.storage.local.set({token:c.credential,pairingId:c.pairingId,port:a,pairingState:"connected"}),await browser.storage.local.remove(we),e("connected"),!0;if(c.state==="rejected")return await browser.storage.local.remove(we),e("reconnect_required",t),!1;if(c.state==="expired"||u.status===410)return await browser.storage.local.remove(we),e("expired",t),!1;await new Promise(s=>setTimeout(s,800))}}async function Up(e,n=32147){e("searching");let i=Uy(),o;try{o=await Sl(n,"request",{browser:Ay(),extensionId:browser.runtime.id,secret:i},void 0,6e4)}catch{return e("unavailable"),!1}if(!o.ok)return e("unavailable"),!1;let t=await o.json(),r={requestId:t.requestId,proof:i,code:t.code,expiresAt:t.expiresAt,port:n};return await browser.storage.local.set({[we]:r}),e("pending",t.code),Np(e,r)}async function Ap(e){let i=(await browser.storage.local.get(we))[we];if(i){if(Date.now()>=i.expiresAt){await browser.storage.local.remove(we);return}return Np(e,i)}}async function Tp(){let e=await browser.storage.local.get(["port","token","pairingId"]);typeof e.token=="string"&&typeof e.pairingId=="string"&&await Sl(Number(e.port??32147),"revoke-self",{id:e.pairingId},e.token).catch(()=>{}),await browser.storage.local.remove(["token","pairingId","pairingState",we])}var Ty=document.querySelector("form"),qi=document.querySelector("#token"),Yi=document.querySelector("#port"),zl=document.querySelector("#origins"),Xi=document.querySelector("output"),Zy=document.querySelector("#guidance-enabled"),Ey=document.querySelector("#guidance-fidelity"),Cy=document.querySelector("#guidance-text");function Ep(e){Zy.textContent=e.enabled?"Activ\xE9":"D\xE9sactiv\xE9",Ey.textContent=e.enabled?e.visualFidelity?"Activ\xE9e":"D\xE9sactiv\xE9e":"\u2014",Cy.textContent=Op(e)??"Agent Guidance d\xE9sactiv\xE9 : aucune instruction n'est envoy\xE9e \xE0 l'agent."}var Ft=await browser.storage.local.get(["token","port","allowedOrigins","agentGuidance"]);qi.value=Ft.token??"";Yi.value=String(Ft.port??32147);zl.value=(Ft.allowedOrigins??[]).join(`
|
|
106
|
+
`);var Hi=Ft.agentGuidance??{enabled:!0,visualFidelity:!0};Ep(Hi);var Ly=document.querySelector("#pairing-status"),Zp=document.querySelector("#pairing-code"),Cp=document.querySelector("#pair-connect"),Vy=document.querySelector("#pair-disconnect"),Ry={not_connected:"Not connected.",searching:"Searching for local GazeSight\u2026",pending:"Pairing request pending.",waiting_approval:"Waiting for approval in your terminal\u2026",connected:"Connected.",unavailable:"Connection unavailable. Run gazesight pair and try again.",expired:"Pairing expired. Start a new request.",reconnect_required:"Reconnect required. The request was rejected or revoked."};function Qi(e,n){Ly.textContent=Ry[e],Zp.hidden=!n,Zp.textContent=n?`Verification code: ${n}`:"",Cp.disabled=["searching","pending","waiting_approval"].includes(e)}Qi(typeof Ft.token=="string"?"connected":"not_connected");Cp.addEventListener("click",()=>void Up(Qi,Number(Yi.value||32147)));Vy.addEventListener("click",async()=>{await Tp(),Qi("not_connected")});typeof Ft.token!="string"&&Ap(Qi);document.querySelector("#config-file").addEventListener("change",e=>{let n=e.target.files?.[0];n&&n.text().then(i=>{let o=Dp.parse(JSON.parse(i));qi.value=o.token,Yi.value=String(o.port),zl.value=o.allowedOrigins.join(`
|
|
107
|
+
`),Hi=o.agentGuidance,Ep(Hi),Xi.textContent="Configuration import\xE9e. Cliquez sur Enregistrer et connecter."}).catch(()=>{Xi.textContent="Fichier de configuration invalide."})});Ty.addEventListener("submit",e=>{e.preventDefault(),Fy()});async function Fy(){try{if(!/^[a-f0-9]{64}$/.test(qi.value))throw new Error("Le token doit contenir 64 caract\xE8res hexad\xE9cimaux.");let e=Number(Yi.value);if(!Number.isInteger(e)||e<1024||e>65535)throw new Error("Port invalide.");let n=zl.value.split(/\s+/).filter(Boolean).map(i=>{let o=new URL(i);if(!["http:","https:"].includes(o.protocol)||o.origin!==i)throw new Error("Saisir des origines exactes, sans chemin.");return o.origin});await browser.storage.local.set({token:qi.value,port:e,allowedOrigins:n,agentGuidance:Hi}),Xi.textContent="Configuration enregistr\xE9e. Cliquez sur l\u2019ic\xF4ne dans votre onglet de pr\xE9visualisation."}catch(e){Xi.textContent=e.message}}
|
package/dist/firefox/popup.html
CHANGED
|
@@ -117,7 +117,9 @@
|
|
|
117
117
|
><span id="select-label">Use this tab</span>
|
|
118
118
|
</button>
|
|
119
119
|
<p class="hint">
|
|
120
|
-
|
|
120
|
+
Selecting a tab allows your configured coding agent to receive its
|
|
121
|
+
screenshots, page structure, URL, and diagnostics through your local MCP
|
|
122
|
+
runtime.
|
|
121
123
|
<span id="shortcut">Ctrl+Shift+Y</span> also selects or reauthorizes
|
|
122
124
|
a tab.
|
|
123
125
|
</p>
|
|
Binary file
|