@tokmizer/plugin 0.9.50 → 0.9.52

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/dist/bin/tkr.js CHANGED
@@ -1,41 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var Di=Object.defineProperty;var E=(t,e,r)=>()=>{if(r)throw r[0];try{return t&&(e=t(t=0)),e}catch(n){throw r=[n],n}};var ee=(t,e)=>{for(var r in e)Di(t,r,{get:e[r],enumerable:!0})};var S,Zr,p,ne,yt=E(()=>{(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw new Error}t.assertNever=r,t.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},t.getValidEnumValues=s=>{let o=t.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return t.objectValues(i)},t.objectValues=s=>t.objectKeys(s).map(function(o){return s[o]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},t.find=(s,o)=>{for(let i of s)if(o(i))return i},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}t.joinValues=n,t.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(S||(S={}));(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Zr||(Zr={}));p=S.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ne=t=>{switch(typeof t){case"undefined":return p.undefined;case"string":return p.string;case"number":return Number.isNaN(t)?p.nan:p.number;case"boolean":return p.boolean;case"function":return p.function;case"bigint":return p.bigint;case"symbol":return p.symbol;case"object":return Array.isArray(t)?p.array:t===null?p.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?p.promise:typeof Map<"u"&&t instanceof Map?p.map:typeof Set<"u"&&t instanceof Set?p.set:typeof Date<"u"&&t instanceof Date?p.date:p.object;default:return p.unknown}}});var l,Ni,M,Wt=E(()=>{yt();l=S.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Ni=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),M=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(o){return o.message},n={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)n._errors.push(r(i));else{let a=n,c=0;for(;c<i.path.length;){let u=i.path[c];c===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(i))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return s(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,S.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];r[o]=r[o]||[],r[o].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};M.create=t=>new M(t)});var Mi,ce,Hr=E(()=>{Wt();yt();Mi=(t,e)=>{let r;switch(t.code){case l.invalid_type:t.received===p.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case l.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,S.jsonStringifyReplacer)}`;break;case l.unrecognized_keys:r=`Unrecognized key(s) in object: ${S.joinValues(t.keys,", ")}`;break;case l.invalid_union:r="Invalid input";break;case l.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${S.joinValues(t.options)}`;break;case l.invalid_enum_value:r=`Invalid enum value. Expected ${S.joinValues(t.options)}, received '${t.received}'`;break;case l.invalid_arguments:r="Invalid function arguments";break;case l.invalid_return_type:r="Invalid function return type";break;case l.invalid_date:r="Invalid date";break;case l.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:S.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case l.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case l.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case l.custom:r="Invalid input";break;case l.invalid_intersection_types:r="Intersection results could not be merged";break;case l.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case l.not_finite:r="Number must be finite";break;default:r=e.defaultError,S.assertNever(t)}return{message:r}},ce=Mi});function Li(t){cs=t}function Je(){return cs}var cs,Jt=E(()=>{Hr();cs=ce});function m(t,e){let r=Je(),n=wt({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===ce?void 0:ce].filter(s=>!!s)});t.common.issues.push(n)}var wt,Fi,$,g,Te,O,qt,Yt,he,qe,Vr=E(()=>{Jt();Hr();wt=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,o=[...r,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(i,{data:e,defaultError:a}).message;return{...s,path:o,message:a}},Fi=[];$=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return g;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let o=await s.key,i=await s.value;n.push({key:o,value:i})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return g;o.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(n[o.value]=i.value)}return{status:e.value,value:n}}},g=Object.freeze({status:"aborted"}),Te=t=>({status:"dirty",value:t}),O=t=>({status:"valid",value:t}),qt=t=>t.status==="aborted",Yt=t=>t.status==="dirty",he=t=>t.status==="valid",qe=t=>typeof Promise<"u"&&t instanceof Promise});var us=E(()=>{});var h,ls=E(()=>{(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(h||(h={}))});function b(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:s}}function ps(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function ta(t){return new RegExp(`^${ps(t)}$`)}function hs(t){let e=`${ms}T${ps(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function ra(t,e){return!!((e==="v4"||!e)&&Wi.test(t)||(e==="v6"||!e)&&qi.test(t))}function na(t,e){if(!Hi.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function sa(t,e){return!!((e==="v4"||!e)&&Ji.test(t)||(e==="v6"||!e)&&Yi.test(t))}function oa(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,o=Number.parseInt(t.toFixed(s).replace(".","")),i=Number.parseInt(e.toFixed(s).replace(".",""));return o%i/10**s}function Ye(t){if(t instanceof L){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=G.create(Ye(n))}return new L({...t._def,shape:()=>e})}else return t instanceof de?new de({...t._def,type:Ye(t.element)}):t instanceof G?G.create(Ye(t.unwrap())):t instanceof oe?oe.create(Ye(t.unwrap())):t instanceof se?se.create(t.items.map(e=>Ye(e))):t}function Gr(t,e){let r=ne(t),n=ne(e);if(t===e)return{valid:!0,data:t};if(r===p.object&&n===p.object){let s=S.objectKeys(e),o=S.objectKeys(t).filter(a=>s.indexOf(a)!==-1),i={...t,...e};for(let a of o){let c=Gr(t[a],e[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(r===p.array&&n===p.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let o=0;o<t.length;o++){let i=t[o],a=e[o],c=Gr(i,a);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return r===p.date&&n===p.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}function gs(t,e){return new Fe({values:t,typeName:w.ZodEnum,...b(e)})}function fs(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function ys(t,e={},r){return t?ye.create().superRefine((n,s)=>{let o=t(n);if(o instanceof Promise)return o.then(i=>{if(!i){let a=fs(e,n),c=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=fs(e,n),a=i.fatal??r??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ye.create()}var W,ds,x,ji,zi,Bi,Ui,Zi,Hi,Vi,Ki,Gi,Kr,Wi,Ji,qi,Yi,Xi,Qi,ms,ea,ge,Re,Ce,$e,Pe,Xe,Ie,Oe,ye,le,te,Qe,de,L,De,ue,Xt,Ne,se,Qt,et,tt,er,Me,Le,Fe,je,we,J,G,oe,ze,Be,rt,ia,_t,vt,Ue,aa,w,ca,ws,_s,ua,la,vs,da,fa,ma,pa,ha,ga,ya,wa,_a,va,ka,ba,xa,Sa,Ea,Aa,Ta,Ra,Ca,$a,Pa,Ia,Oa,Da,Na,Ma,La,Fa,ja,za,Ba,Ua,Za,Ha,ks=E(()=>{Wt();Jt();ls();Vr();yt();W=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ds=(t,e)=>{if(he(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new M(t.common.issues);return this._error=r,this._error}}};x=class{get description(){return this._def.description}_getType(e){return ne(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:ne(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new $,ctx:{common:e.parent.common,data:e.data,parsedType:ne(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(qe(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)},s=this._parseSync({data:e,path:n.path,parent:n});return ds(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return he(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>he(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)},s=this._parse({data:e,path:n.path,parent:n}),o=await(qe(s)?s:Promise.resolve(s));return ds(n,o)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,o)=>{let i=e(s),a=()=>o.addIssue({code:l.custom,...n(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new J({schema:this,typeName:w.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return G.create(this,this._def)}nullable(){return oe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return de.create(this)}promise(){return we.create(this,this._def)}or(e){return De.create([this,e],this._def)}and(e){return Ne.create(this,e,this._def)}transform(e){return new J({...b(this._def),schema:this,typeName:w.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ze({...b(this._def),innerType:this,defaultValue:r,typeName:w.ZodDefault})}brand(){return new _t({typeName:w.ZodBranded,type:this,...b(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Be({...b(this._def),innerType:this,catchValue:r,typeName:w.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vt.create(this,e)}readonly(){return Ue.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ji=/^c[^\s-]{8,}$/i,zi=/^[0-9a-z]+$/,Bi=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ui=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Zi=/^[a-z0-9_-]{21}$/i,Hi=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Vi=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ki=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Gi="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Wi=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ji=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,qi=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Yi=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Xi=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qi=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ms="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ea=new RegExp(`^${ms}$`);ge=class t extends x{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==p.string){let o=this._getOrReturnCtx(e);return m(o,{code:l.invalid_type,expected:p.string,received:o.parsedType}),g}let n=new $,s;for(let o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:l.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:l.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){let i=e.data.length>o.value,a=e.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(e,s),i?m(s,{code:l.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&m(s,{code:l.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")Ki.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"email",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")Kr||(Kr=new RegExp(Gi,"u")),Kr.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"emoji",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")Ui.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"uuid",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")Zi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"nanoid",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")ji.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")zi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid2",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")Bi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ulid",code:l.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),m(s,{validation:"url",code:l.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"regex",code:l.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?hs(o).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?ea.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?ta(o).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:l.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?Vi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"duration",code:l.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?ra(e.data,o.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ip",code:l.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?na(e.data,o.alg)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"jwt",code:l.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?sa(e.data,o.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cidr",code:l.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?Xi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64",code:l.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?Qi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64url",code:l.invalid_string,message:o.message}),n.dirty()):S.assertNever(o);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(s=>e.test(s),{validation:r,code:l.invalid_string,...h.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...h.errToObj(e)})}url(e){return this._addCheck({kind:"url",...h.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...h.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...h.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...h.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...h.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...h.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...h.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...h.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...h.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...h.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...h.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...h.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...h.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...h.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...h.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...h.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...h.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...h.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...h.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...h.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...h.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...h.errToObj(r)})}nonempty(e){return this.min(1,h.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};ge.create=t=>new ge({checks:[],typeName:w.ZodString,coerce:t?.coerce??!1,...b(t)});Re=class t extends x{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==p.number){let o=this._getOrReturnCtx(e);return m(o,{code:l.invalid_type,expected:p.number,received:o.parsedType}),g}let n,s=new $;for(let o of this._def.checks)o.kind==="int"?S.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:l.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?oa(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:l.not_finite,message:o.message}),s.dirty()):S.assertNever(o);return{status:s.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,h.toString(r))}gt(e,r){return this.setLimit("min",e,!1,h.toString(r))}lte(e,r){return this.setLimit("max",e,!0,h.toString(r))}lt(e,r){return this.setLimit("max",e,!1,h.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:h.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:h.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:h.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:h.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:h.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:h.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:h.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:h.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:h.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:h.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&S.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};Re.create=t=>new Re({checks:[],typeName:w.ZodNumber,coerce:t?.coerce||!1,...b(t)});Ce=class t extends x{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==p.bigint)return this._getInvalidInput(e);let n,s=new $;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),m(n,{code:l.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):S.assertNever(o);return{status:s.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return m(r,{code:l.invalid_type,expected:p.bigint,received:r.parsedType}),g}gte(e,r){return this.setLimit("min",e,!0,h.toString(r))}gt(e,r){return this.setLimit("min",e,!1,h.toString(r))}lte(e,r){return this.setLimit("max",e,!0,h.toString(r))}lt(e,r){return this.setLimit("max",e,!1,h.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:h.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:h.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:h.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:h.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:h.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:h.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Ce.create=t=>new Ce({checks:[],typeName:w.ZodBigInt,coerce:t?.coerce??!1,...b(t)});$e=class extends x{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==p.boolean){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.boolean,received:n.parsedType}),g}return O(e.data)}};$e.create=t=>new $e({typeName:w.ZodBoolean,coerce:t?.coerce||!1,...b(t)});Pe=class t extends x{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==p.date){let o=this._getOrReturnCtx(e);return m(o,{code:l.invalid_type,expected:p.date,received:o.parsedType}),g}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return m(o,{code:l.invalid_date}),g}let n=new $,s;for(let o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:l.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:l.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):S.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:h.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:h.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};Pe.create=t=>new Pe({checks:[],coerce:t?.coerce||!1,typeName:w.ZodDate,...b(t)});Xe=class extends x{_parse(e){if(this._getType(e)!==p.symbol){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.symbol,received:n.parsedType}),g}return O(e.data)}};Xe.create=t=>new Xe({typeName:w.ZodSymbol,...b(t)});Ie=class extends x{_parse(e){if(this._getType(e)!==p.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.undefined,received:n.parsedType}),g}return O(e.data)}};Ie.create=t=>new Ie({typeName:w.ZodUndefined,...b(t)});Oe=class extends x{_parse(e){if(this._getType(e)!==p.null){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.null,received:n.parsedType}),g}return O(e.data)}};Oe.create=t=>new Oe({typeName:w.ZodNull,...b(t)});ye=class extends x{constructor(){super(...arguments),this._any=!0}_parse(e){return O(e.data)}};ye.create=t=>new ye({typeName:w.ZodAny,...b(t)});le=class extends x{constructor(){super(...arguments),this._unknown=!0}_parse(e){return O(e.data)}};le.create=t=>new le({typeName:w.ZodUnknown,...b(t)});te=class extends x{_parse(e){let r=this._getOrReturnCtx(e);return m(r,{code:l.invalid_type,expected:p.never,received:r.parsedType}),g}};te.create=t=>new te({typeName:w.ZodNever,...b(t)});Qe=class extends x{_parse(e){if(this._getType(e)!==p.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.void,received:n.parsedType}),g}return O(e.data)}};Qe.create=t=>new Qe({typeName:w.ZodVoid,...b(t)});de=class t extends x{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==p.array)return m(r,{code:l.invalid_type,expected:p.array,received:r.parsedType}),g;if(s.exactLength!==null){let i=r.data.length>s.exactLength.value,a=r.data.length<s.exactLength.value;(i||a)&&(m(r,{code:i?l.too_big:l.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&r.data.length<s.minLength.value&&(m(r,{code:l.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&r.data.length>s.maxLength.value&&(m(r,{code:l.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((i,a)=>s.type._parseAsync(new W(r,i,r.path,a)))).then(i=>$.mergeArray(n,i));let o=[...r.data].map((i,a)=>s.type._parseSync(new W(r,i,r.path,a)));return $.mergeArray(n,o)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:h.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:h.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:h.toString(r)}})}nonempty(e){return this.min(1,e)}};de.create=(t,e)=>new de({type:t,minLength:null,maxLength:null,exactLength:null,typeName:w.ZodArray,...b(e)});L=class t extends x{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=S.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==p.object){let u=this._getOrReturnCtx(e);return m(u,{code:l.invalid_type,expected:p.object,received:u.parsedType}),g}let{status:n,ctx:s}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof te&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let c=[];for(let u of i){let d=o[u],_=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new W(s,_,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof te){let u=this._def.unknownKeys;if(u==="passthrough")for(let d of a)c.push({key:{status:"valid",value:d},value:{status:"valid",value:s.data[d]}});else if(u==="strict")a.length>0&&(m(s,{code:l.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let d of a){let _=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new W(s,_,s.path,d)),alwaysSet:d in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let d of c){let _=await d.key,v=await d.value;u.push({key:_,value:v,alwaysSet:d.alwaysSet})}return u}).then(u=>$.mergeObjectSync(n,u)):$.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return h.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:h.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:w.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of S.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of S.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Ye(this)}partial(e){let r={};for(let n of S.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of S.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof G;)o=o._def.innerType;r[n]=o}return new t({...this._def,shape:()=>r})}keyof(){return gs(S.objectKeys(this.shape))}};L.create=(t,e)=>new L({shape:()=>t,unknownKeys:"strip",catchall:te.create(),typeName:w.ZodObject,...b(e)});L.strictCreate=(t,e)=>new L({shape:()=>t,unknownKeys:"strict",catchall:te.create(),typeName:w.ZodObject,...b(e)});L.lazycreate=(t,e)=>new L({shape:t,unknownKeys:"strip",catchall:te.create(),typeName:w.ZodObject,...b(e)});De=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new M(a.ctx.common.issues));return m(r,{code:l.invalid_union,unionErrors:i}),g}if(r.common.async)return Promise.all(n.map(async o=>{let i={...r,common:{...r.common,issues:[]},parent:null};return{result:await o._parseAsync({data:r.data,path:r.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},d=c._parseSync({data:r.data,path:r.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!o&&(o={result:d,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(c=>new M(c));return m(r,{code:l.invalid_union,unionErrors:a}),g}}get options(){return this._def.options}};De.create=(t,e)=>new De({options:t,typeName:w.ZodUnion,...b(e)});ue=t=>t instanceof Me?ue(t.schema):t instanceof J?ue(t.innerType()):t instanceof Le?[t.value]:t instanceof Fe?t.options:t instanceof je?S.objectValues(t.enum):t instanceof ze?ue(t._def.innerType):t instanceof Ie?[void 0]:t instanceof Oe?[null]:t instanceof G?[void 0,...ue(t.unwrap())]:t instanceof oe?[null,...ue(t.unwrap())]:t instanceof _t||t instanceof Ue?ue(t.unwrap()):t instanceof Be?ue(t._def.innerType):[],Xt=class t extends x{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.object)return m(r,{code:l.invalid_type,expected:p.object,received:r.parsedType}),g;let n=this.discriminator,s=r.data[n],o=this.optionsMap.get(s);return o?r.common.async?o._parseAsync({data:r.data,path:r.path,parent:r}):o._parseSync({data:r.data,path:r.path,parent:r}):(m(r,{code:l.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),g)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let o of r){let i=ue(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,o)}}return new t({typeName:w.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...b(n)})}};Ne=class extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(o,i)=>{if(qt(o)||qt(i))return g;let a=Gr(o.value,i.value);return a.valid?((Yt(o)||Yt(i))&&r.dirty(),{status:r.value,value:a.data}):(m(n,{code:l.invalid_intersection_types}),g)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Ne.create=(t,e,r)=>new Ne({left:t,right:e,typeName:w.ZodIntersection,...b(r)});se=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.array)return m(n,{code:l.invalid_type,expected:p.array,received:n.parsedType}),g;if(n.data.length<this._def.items.length)return m(n,{code:l.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),g;!this._def.rest&&n.data.length>this._def.items.length&&(m(n,{code:l.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let o=[...n.data].map((i,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new W(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>$.mergeArray(r,i)):$.mergeArray(r,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};se.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new se({items:t,typeName:w.ZodTuple,rest:null,...b(e)})};Qt=class t extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.object)return m(n,{code:l.invalid_type,expected:p.object,received:n.parsedType}),g;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in n.data)s.push({key:o._parse(new W(n,a,n.path,a)),value:i._parse(new W(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?$.mergeObjectAsync(r,s):$.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof x?new t({keyType:e,valueType:r,typeName:w.ZodRecord,...b(n)}):new t({keyType:ge.create(),valueType:e,typeName:w.ZodRecord,...b(r)})}},et=class extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.map)return m(n,{code:l.invalid_type,expected:p.map,received:n.parsedType}),g;let s=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([a,c],u)=>({key:s._parse(new W(n,a,n.path,[u,"key"])),value:o._parse(new W(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of i){let u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return g;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of i){let u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return g;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),a.set(u.value,d.value)}return{status:r.value,value:a}}}};et.create=(t,e,r)=>new et({valueType:e,keyType:t,typeName:w.ZodMap,...b(r)});tt=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.set)return m(n,{code:l.invalid_type,expected:p.set,received:n.parsedType}),g;let s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(m(n,{code:l.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(m(n,{code:l.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let o=this._def.valueType;function i(c){let u=new Set;for(let d of c){if(d.status==="aborted")return g;d.status==="dirty"&&r.dirty(),u.add(d.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>o._parse(new W(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:h.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:h.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};tt.create=(t,e)=>new tt({valueType:t,minSize:null,maxSize:null,typeName:w.ZodSet,...b(e)});er=class t extends x{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.function)return m(r,{code:l.invalid_type,expected:p.function,received:r.parsedType}),g;function n(a,c){return wt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Je(),ce].filter(u=>!!u),issueData:{code:l.invalid_arguments,argumentsError:c}})}function s(a,c){return wt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Je(),ce].filter(u=>!!u),issueData:{code:l.invalid_return_type,returnTypeError:c}})}let o={errorMap:r.common.contextualErrorMap},i=r.data;if(this._def.returns instanceof we){let a=this;return O(async function(...c){let u=new M([]),d=await a._def.args.parseAsync(c,o).catch(k=>{throw u.addIssue(n(c,k)),u}),_=await Reflect.apply(i,this,d);return await a._def.returns._def.type.parseAsync(_,o).catch(k=>{throw u.addIssue(s(_,k)),u})})}else{let a=this;return O(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new M([n(c,u.error)]);let d=Reflect.apply(i,this,u.data),_=a._def.returns.safeParse(d,o);if(!_.success)throw new M([s(d,_.error)]);return _.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:se.create(e).rest(le.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||se.create([]).rest(le.create()),returns:r||le.create(),typeName:w.ZodFunction,...b(n)})}},Me=class extends x{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Me.create=(t,e)=>new Me({getter:t,typeName:w.ZodLazy,...b(e)});Le=class extends x{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return m(r,{received:r.data,code:l.invalid_literal,expected:this._def.value}),g}return{status:"valid",value:e.data}}get value(){return this._def.value}};Le.create=(t,e)=>new Le({value:t,typeName:w.ZodLiteral,...b(e)});Fe=class t extends x{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{expected:S.joinValues(n),received:r.parsedType,code:l.invalid_type}),g}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{received:r.data,code:l.invalid_enum_value,options:n}),g}return O(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};Fe.create=gs;je=class extends x{_parse(e){let r=S.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==p.string&&n.parsedType!==p.number){let s=S.objectValues(r);return m(n,{expected:S.joinValues(s),received:n.parsedType,code:l.invalid_type}),g}if(this._cache||(this._cache=new Set(S.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=S.objectValues(r);return m(n,{received:n.data,code:l.invalid_enum_value,options:s}),g}return O(e.data)}get enum(){return this._def.values}};je.create=(t,e)=>new je({values:t,typeName:w.ZodNativeEnum,...b(e)});we=class extends x{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.promise&&r.common.async===!1)return m(r,{code:l.invalid_type,expected:p.promise,received:r.parsedType}),g;let n=r.parsedType===p.promise?r.data:Promise.resolve(r.data);return O(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};we.create=(t,e)=>new we({type:t,typeName:w.ZodPromise,...b(e)});J=class extends x{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===w.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,o={addIssue:i=>{m(n,i),i.fatal?r.abort():r.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(n.data,o);if(n.common.async)return Promise.resolve(i).then(async a=>{if(r.value==="aborted")return g;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?g:c.status==="dirty"?Te(c.value):r.value==="dirty"?Te(c.value):c});{if(r.value==="aborted")return g;let a=this._def.schema._parseSync({data:i,path:n.path,parent:n});return a.status==="aborted"?g:a.status==="dirty"?Te(a.value):r.value==="dirty"?Te(a.value):a}}if(s.type==="refinement"){let i=a=>{let c=s.refinement(a,o);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?g:(a.status==="dirty"&&r.dirty(),i(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?g:(a.status==="dirty"&&r.dirty(),i(a.value).then(()=>({status:r.value,value:a.value}))))}if(s.type==="transform")if(n.common.async===!1){let i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!he(i))return g;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>he(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:r.value,value:a})):g);S.assertNever(s)}};J.create=(t,e,r)=>new J({schema:t,typeName:w.ZodEffects,effect:e,...b(r)});J.createWithPreprocess=(t,e,r)=>new J({schema:e,effect:{type:"preprocess",transform:t},typeName:w.ZodEffects,...b(r)});G=class extends x{_parse(e){return this._getType(e)===p.undefined?O(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};G.create=(t,e)=>new G({innerType:t,typeName:w.ZodOptional,...b(e)});oe=class extends x{_parse(e){return this._getType(e)===p.null?O(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};oe.create=(t,e)=>new oe({innerType:t,typeName:w.ZodNullable,...b(e)});ze=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===p.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ze.create=(t,e)=>new ze({innerType:t,typeName:w.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...b(e)});Be=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return qe(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new M(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new M(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Be.create=(t,e)=>new Be({innerType:t,typeName:w.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...b(e)});rt=class extends x{_parse(e){if(this._getType(e)!==p.nan){let n=this._getOrReturnCtx(e);return m(n,{code:l.invalid_type,expected:p.nan,received:n.parsedType}),g}return{status:"valid",value:e.data}}};rt.create=t=>new rt({typeName:w.ZodNaN,...b(t)});ia=Symbol("zod_brand"),_t=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},vt=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?g:o.status==="dirty"?(r.dirty(),Te(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?g:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:w.ZodPipeline})}},Ue=class extends x{_parse(e){let r=this._def.innerType._parse(e),n=s=>(he(s)&&(s.value=Object.freeze(s.value)),s);return qe(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};Ue.create=(t,e)=>new Ue({innerType:t,typeName:w.ZodReadonly,...b(e)});aa={object:L.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(w||(w={}));ca=(t,e={message:`Input not instance of ${t.name}`})=>ys(r=>r instanceof t,e),ws=ge.create,_s=Re.create,ua=rt.create,la=Ce.create,vs=$e.create,da=Pe.create,fa=Xe.create,ma=Ie.create,pa=Oe.create,ha=ye.create,ga=le.create,ya=te.create,wa=Qe.create,_a=de.create,va=L.create,ka=L.strictCreate,ba=De.create,xa=Xt.create,Sa=Ne.create,Ea=se.create,Aa=Qt.create,Ta=et.create,Ra=tt.create,Ca=er.create,$a=Me.create,Pa=Le.create,Ia=Fe.create,Oa=je.create,Da=we.create,Na=J.create,Ma=G.create,La=oe.create,Fa=J.createWithPreprocess,ja=vt.create,za=()=>ws().optional(),Ba=()=>_s().optional(),Ua=()=>vs().optional(),Za={string:(t=>ge.create({...t,coerce:!0})),number:(t=>Re.create({...t,coerce:!0})),boolean:(t=>$e.create({...t,coerce:!0})),bigint:(t=>Ce.create({...t,coerce:!0})),date:(t=>Pe.create({...t,coerce:!0}))},Ha=g});var f={};ee(f,{BRAND:()=>ia,DIRTY:()=>Te,EMPTY_PATH:()=>Fi,INVALID:()=>g,NEVER:()=>Ha,OK:()=>O,ParseStatus:()=>$,Schema:()=>x,ZodAny:()=>ye,ZodArray:()=>de,ZodBigInt:()=>Ce,ZodBoolean:()=>$e,ZodBranded:()=>_t,ZodCatch:()=>Be,ZodDate:()=>Pe,ZodDefault:()=>ze,ZodDiscriminatedUnion:()=>Xt,ZodEffects:()=>J,ZodEnum:()=>Fe,ZodError:()=>M,ZodFirstPartyTypeKind:()=>w,ZodFunction:()=>er,ZodIntersection:()=>Ne,ZodIssueCode:()=>l,ZodLazy:()=>Me,ZodLiteral:()=>Le,ZodMap:()=>et,ZodNaN:()=>rt,ZodNativeEnum:()=>je,ZodNever:()=>te,ZodNull:()=>Oe,ZodNullable:()=>oe,ZodNumber:()=>Re,ZodObject:()=>L,ZodOptional:()=>G,ZodParsedType:()=>p,ZodPipeline:()=>vt,ZodPromise:()=>we,ZodReadonly:()=>Ue,ZodRecord:()=>Qt,ZodSchema:()=>x,ZodSet:()=>tt,ZodString:()=>ge,ZodSymbol:()=>Xe,ZodTransformer:()=>J,ZodTuple:()=>se,ZodType:()=>x,ZodUndefined:()=>Ie,ZodUnion:()=>De,ZodUnknown:()=>le,ZodVoid:()=>Qe,addIssueToContext:()=>m,any:()=>ha,array:()=>_a,bigint:()=>la,boolean:()=>vs,coerce:()=>Za,custom:()=>ys,date:()=>da,datetimeRegex:()=>hs,defaultErrorMap:()=>ce,discriminatedUnion:()=>xa,effect:()=>Na,enum:()=>Ia,function:()=>Ca,getErrorMap:()=>Je,getParsedType:()=>ne,instanceof:()=>ca,intersection:()=>Sa,isAborted:()=>qt,isAsync:()=>qe,isDirty:()=>Yt,isValid:()=>he,late:()=>aa,lazy:()=>$a,literal:()=>Pa,makeIssue:()=>wt,map:()=>Ta,nan:()=>ua,nativeEnum:()=>Oa,never:()=>ya,null:()=>pa,nullable:()=>La,number:()=>_s,object:()=>va,objectUtil:()=>Zr,oboolean:()=>Ua,onumber:()=>Ba,optional:()=>Ma,ostring:()=>za,pipeline:()=>ja,preprocess:()=>Fa,promise:()=>Da,quotelessJson:()=>Ni,record:()=>Aa,set:()=>Ra,setErrorMap:()=>Li,strictObject:()=>ka,string:()=>ws,symbol:()=>fa,transformer:()=>Na,tuple:()=>Ea,undefined:()=>ma,union:()=>ba,unknown:()=>ga,util:()=>S,void:()=>wa});var Wr=E(()=>{Jt();Vr();us();yt();ks();Wt()});var nt=E(()=>{Wr();Wr()});import{createHash as Va}from"node:crypto";function _e(t){let e=bs.get(t);return e||(e=Va("sha256").update(`tkr:${t}`).digest("hex").slice(0,16),bs.set(t,e)),e}var Ka,Ga,Jr,bs,kt=E(()=>{"use strict";nt();Ka=f.enum(["normal","compact","minimal"]),Ga=f.enum(["off","light","balanced","max"]),Jr=f.object({enabled:f.boolean().default(!0),telemetryOptIn:f.boolean().default(!0),outputVerbosity:Ka.default("compact"),reducer:Ga.default("off"),filters:f.object({enableAll:f.boolean().default(!0),disabled:f.array(f.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),bs=new Map});var Ss={};ee(Ss,{bundleRefreshFile:()=>bt,claudeCommandFile:()=>ke,claudeCommandsDir:()=>nr,contentCacheDir:()=>St,contentCacheFile:()=>tr,enrollCooldownFile:()=>qr,installIdFile:()=>st,managedCommandsFile:()=>rr,skillFile:()=>ve,skillsDir:()=>xt,stateFile:()=>Wa,tokmizerHome:()=>y});import xs from"node:os";import{join as q}from"node:path";function y(){return process.env.TOKMIZER_HOME||q(xs.homedir(),".tokmizer")}function Wa(){return q(y(),"state.json")}function st(){return q(y(),"install-id")}function qr(){return q(y(),"enroll-cooldown")}function bt(){return q(y(),"bundle-refresh.json")}function xt(){return q(y(),"skills")}function ve(t){return q(xt(),`${t}.md`)}function St(){return q(y(),"content-cache")}function tr(t){return q(St(),t)}function rr(){return q(y(),"managed-commands.json")}function nr(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||q(xs.homedir(),".claude","commands")}function ke(t){return q(nr(),`${t}.md`)}var D=E(()=>{"use strict"});import ot from"node:os";import{createHash as Ja,randomUUID as qa}from"node:crypto";import{readFile as Es,writeFile as As,mkdir as Ya}from"node:fs/promises";async function sr(){try{let r=(await Es(st(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await Ya(y(),{recursive:!0});let t=qa();try{return await As(st(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await Es(st(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await As(st(),t,{mode:384}),t}}function Yr(t){return Ja("sha256").update(t).digest("hex")}function Xa(){let t=ot.networkInterfaces();for(let e of Object.keys(t))for(let r of t[e]??[])if(!r.internal&&r.mac&&r.mac!=="00:00:00:00:00:00")return r.mac;return"no-mac"}async function Y(){let t=await sr(),e=ot.hostname(),r=ot.platform(),n=ot.release(),s=ot.cpus(),o=s[0]?.model??"unknown",i=s.length,a=Yr(Xa()),c=Yr(ot.userInfo().username),u=[e,r,n,o,String(i),a,c,t].join("|");return{fingerprint:Yr(u),installId:t,hostname:e,os:r,osVersion:n,cpuModel:o,cpuCores:i,macHash:a,usernameHash:c}}var Ze=E(()=>{"use strict";D()});import{join as Xr}from"node:path";import{mkdir as Qa,readFile as ec,writeFile as tc,unlink as Ts,rename as rc}from"node:fs/promises";function Et(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function en(t){return t?.dir??y()}async function R(t){let e=en(t);try{let r=await ec(Xr(e,Qr),"utf8"),n=JSON.parse(r);return{...n,lastSettingsRevision:n.lastSettingsRevision??0,timeZone:n.timeZone??Et(),bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}async function or(t,e){let r=en(e);await Qa(r,{recursive:!0}),t.installedAt==null&&(t.installedAt=Math.floor(Date.now()/1e3));let n=Xr(r,Qr),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;await tc(s,JSON.stringify(t,null,2),{mode:384});try{await rc(s,n)}catch(o){try{await Ts(s)}catch{}throw o}}async function ir(t){let e=en(t);try{await Ts(Xr(e,Qr))}catch{return}}var Qr,fe=E(()=>{"use strict";D();Qr="state.json"});import{createRequire as nc}from"node:module";function oc(){for(let t of["../package.json","../../package.json"])try{let e=sc(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}function it(t,e){if(!t||!e)return!1;let r=t.split(".").map(s=>parseInt(s,10)),n=e.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=r[s]??0,i=n[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var sc,X,at=E(()=>{"use strict";sc=nc(import.meta.url);X=oc()});var Rs,Cs=E(()=>{"use strict";Rs=`-----BEGIN PUBLIC KEY-----
3
+ var Yi=Object.defineProperty;var A=(t,e,r)=>()=>{if(r)throw r[0];try{return t&&(e=t(t=0)),e}catch(n){throw r=[n],n}};var ee=(t,e)=>{for(var r in e)Yi(t,r,{get:e[r],enumerable:!0})};var E,Vr,p,ne,vt=A(()=>{(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw new Error}t.assertNever=r,t.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},t.getValidEnumValues=s=>{let o=t.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return t.objectValues(i)},t.objectValues=s=>t.objectKeys(s).map(function(o){return s[o]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},t.find=(s,o)=>{for(let i of s)if(o(i))return i},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}t.joinValues=n,t.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(E||(E={}));(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Vr||(Vr={}));p=E.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ne=t=>{switch(typeof t){case"undefined":return p.undefined;case"string":return p.string;case"number":return Number.isNaN(t)?p.nan:p.number;case"boolean":return p.boolean;case"function":return p.function;case"bigint":return p.bigint;case"symbol":return p.symbol;case"object":return Array.isArray(t)?p.array:t===null?p.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?p.promise:typeof Map<"u"&&t instanceof Map?p.map:typeof Set<"u"&&t instanceof Set?p.set:typeof Date<"u"&&t instanceof Date?p.date:p.object;default:return p.unknown}}});var d,Wi,M,Wt=A(()=>{vt();d=E.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Wi=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),M=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(o){return o.message},n={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)n._errors.push(r(i));else{let a=n,c=0;for(;c<i.path.length;){let u=i.path[c];c===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(i))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return s(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,E.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];r[o]=r[o]||[],r[o].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};M.create=t=>new M(t)});var Ji,ae,Kr=A(()=>{Wt();vt();Ji=(t,e)=>{let r;switch(t.code){case d.invalid_type:t.received===p.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case d.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,E.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:r=`Unrecognized key(s) in object: ${E.joinValues(t.keys,", ")}`;break;case d.invalid_union:r="Invalid input";break;case d.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${E.joinValues(t.options)}`;break;case d.invalid_enum_value:r=`Invalid enum value. Expected ${E.joinValues(t.options)}, received '${t.received}'`;break;case d.invalid_arguments:r="Invalid function arguments";break;case d.invalid_return_type:r="Invalid function return type";break;case d.invalid_date:r="Invalid date";break;case d.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:E.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case d.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case d.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case d.custom:r="Invalid input";break;case d.invalid_intersection_types:r="Intersection results could not be merged";break;case d.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case d.not_finite:r="Number must be finite";break;default:r=e.defaultError,E.assertNever(t)}return{message:r}},ae=Ji});function qi(t){ms=t}function Je(){return ms}var ms,Jt=A(()=>{Kr();ms=ae});function m(t,e){let r=Je(),n=kt({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===ae?void 0:ae].filter(s=>!!s)});t.common.issues.push(n)}var kt,Xi,$,k,Ce,D,qt,Xt,ye,qe,Gr=A(()=>{Jt();Kr();kt=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,o=[...r,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(i,{data:e,defaultError:a}).message;return{...s,path:o,message:a}},Xi=[];$=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return k;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let o=await s.key,i=await s.value;n.push({key:o,value:i})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return k;o.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(n[o.value]=i.value)}return{status:e.value,value:n}}},k=Object.freeze({status:"aborted"}),Ce=t=>({status:"dirty",value:t}),D=t=>({status:"valid",value:t}),qt=t=>t.status==="aborted",Xt=t=>t.status==="dirty",ye=t=>t.status==="valid",qe=t=>typeof Promise<"u"&&t instanceof Promise});var ps=A(()=>{});var g,hs=A(()=>{(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(g||(g={}))});function x(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:s}}function vs(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function ha(t){return new RegExp(`^${vs(t)}$`)}function ks(t){let e=`${ws}T${vs(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function ga(t,e){return!!((e==="v4"||!e)&&ca.test(t)||(e==="v6"||!e)&&la.test(t))}function ya(t,e){if(!sa.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function wa(t,e){return!!((e==="v4"||!e)&&ua.test(t)||(e==="v6"||!e)&&da.test(t))}function va(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,o=Number.parseInt(t.toFixed(s).replace(".","")),i=Number.parseInt(e.toFixed(s).replace(".",""));return o%i/10**s}function Xe(t){if(t instanceof L){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Y.create(Xe(n))}return new L({...t._def,shape:()=>e})}else return t instanceof le?new le({...t._def,type:Xe(t.element)}):t instanceof Y?Y.create(Xe(t.unwrap())):t instanceof oe?oe.create(Xe(t.unwrap())):t instanceof se?se.create(t.items.map(e=>Xe(e))):t}function Wr(t,e){let r=ne(t),n=ne(e);if(t===e)return{valid:!0,data:t};if(r===p.object&&n===p.object){let s=E.objectKeys(e),o=E.objectKeys(t).filter(a=>s.indexOf(a)!==-1),i={...t,...e};for(let a of o){let c=Wr(t[a],e[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(r===p.array&&n===p.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let o=0;o<t.length;o++){let i=t[o],a=e[o],c=Wr(i,a);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return r===p.date&&n===p.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}function bs(t,e){return new je({values:t,typeName:b.ZodEnum,...x(e)})}function ys(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function _s(t,e={},r){return t?ve.create().superRefine((n,s)=>{let o=t(n);if(o instanceof Promise)return o.then(i=>{if(!i){let a=ys(e,n),c=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=ys(e,n),a=i.fatal??r??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ve.create()}var W,gs,S,Qi,ea,ta,ra,na,sa,oa,ia,aa,Yr,ca,ua,la,da,fa,ma,ws,pa,we,Re,$e,Pe,Ie,Qe,Oe,De,ve,ue,te,et,le,L,Ne,ce,Qt,Me,se,er,tt,rt,tr,Le,Fe,je,ze,ke,J,Y,oe,Ue,Be,nt,ka,bt,_t,Ze,ba,b,_a,xs,Ss,xa,Sa,Es,Ea,Aa,Ta,Ca,Ra,$a,Pa,Ia,Oa,Da,Na,Ma,La,Fa,ja,za,Ua,Ba,Za,Ha,Va,Ka,Ga,Ya,Wa,Ja,qa,Xa,Qa,ec,tc,rc,nc,sc,As=A(()=>{Wt();Jt();hs();Gr();vt();W=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},gs=(t,e)=>{if(ye(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new M(t.common.issues);return this._error=r,this._error}}};S=class{get description(){return this._def.description}_getType(e){return ne(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:ne(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new $,ctx:{common:e.parent.common,data:e.data,parsedType:ne(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(qe(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)},s=this._parseSync({data:e,path:n.path,parent:n});return gs(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return ye(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>ye(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ne(e)},s=this._parse({data:e,path:n.path,parent:n}),o=await(qe(s)?s:Promise.resolve(s));return gs(n,o)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,o)=>{let i=e(s),a=()=>o.addIssue({code:d.custom,...n(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new J({schema:this,typeName:b.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Y.create(this,this._def)}nullable(){return oe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return le.create(this)}promise(){return ke.create(this,this._def)}or(e){return Ne.create([this,e],this._def)}and(e){return Me.create(this,e,this._def)}transform(e){return new J({...x(this._def),schema:this,typeName:b.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Ue({...x(this._def),innerType:this,defaultValue:r,typeName:b.ZodDefault})}brand(){return new bt({typeName:b.ZodBranded,type:this,...x(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Be({...x(this._def),innerType:this,catchValue:r,typeName:b.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return _t.create(this,e)}readonly(){return Ze.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Qi=/^c[^\s-]{8,}$/i,ea=/^[0-9a-z]+$/,ta=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ra=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,na=/^[a-z0-9_-]{21}$/i,sa=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,oa=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,ia=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,aa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",ca=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ua=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,la=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,da=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,fa=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ma=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ws="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",pa=new RegExp(`^${ws}$`);we=class t extends S{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==p.string){let o=this._getOrReturnCtx(e);return m(o,{code:d.invalid_type,expected:p.string,received:o.parsedType}),k}let n=new $,s;for(let o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:d.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:d.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){let i=e.data.length>o.value,a=e.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(e,s),i?m(s,{code:d.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&m(s,{code:d.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")ia.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"email",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")Yr||(Yr=new RegExp(aa,"u")),Yr.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"emoji",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")ra.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"uuid",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")na.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"nanoid",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")Qi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")ea.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid2",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")ta.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ulid",code:d.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),m(s,{validation:"url",code:d.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"regex",code:d.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?ks(o).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?pa.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?ha(o).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?oa.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"duration",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?ga(e.data,o.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ip",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?ya(e.data,o.alg)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"jwt",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?wa(e.data,o.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cidr",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?fa.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?ma.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64url",code:d.invalid_string,message:o.message}),n.dirty()):E.assertNever(o);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(s=>e.test(s),{validation:r,code:d.invalid_string,...g.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...g.errToObj(e)})}url(e){return this._addCheck({kind:"url",...g.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...g.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...g.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...g.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...g.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...g.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...g.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...g.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...g.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...g.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...g.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...g.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...g.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...g.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...g.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...g.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...g.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...g.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...g.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...g.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...g.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...g.errToObj(r)})}nonempty(e){return this.min(1,g.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};we.create=t=>new we({checks:[],typeName:b.ZodString,coerce:t?.coerce??!1,...x(t)});Re=class t extends S{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==p.number){let o=this._getOrReturnCtx(e);return m(o,{code:d.invalid_type,expected:p.number,received:o.parsedType}),k}let n,s=new $;for(let o of this._def.checks)o.kind==="int"?E.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:d.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?va(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:d.not_finite,message:o.message}),s.dirty()):E.assertNever(o);return{status:s.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,g.toString(r))}gt(e,r){return this.setLimit("min",e,!1,g.toString(r))}lte(e,r){return this.setLimit("max",e,!0,g.toString(r))}lt(e,r){return this.setLimit("max",e,!1,g.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:g.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:g.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:g.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:g.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:g.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:g.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:g.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:g.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:g.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:g.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&E.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};Re.create=t=>new Re({checks:[],typeName:b.ZodNumber,coerce:t?.coerce||!1,...x(t)});$e=class t extends S{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==p.bigint)return this._getInvalidInput(e);let n,s=new $;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),m(n,{code:d.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):E.assertNever(o);return{status:s.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return m(r,{code:d.invalid_type,expected:p.bigint,received:r.parsedType}),k}gte(e,r){return this.setLimit("min",e,!0,g.toString(r))}gt(e,r){return this.setLimit("min",e,!1,g.toString(r))}lte(e,r){return this.setLimit("max",e,!0,g.toString(r))}lt(e,r){return this.setLimit("max",e,!1,g.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:g.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:g.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:g.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:g.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:g.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:g.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};$e.create=t=>new $e({checks:[],typeName:b.ZodBigInt,coerce:t?.coerce??!1,...x(t)});Pe=class extends S{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==p.boolean){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.boolean,received:n.parsedType}),k}return D(e.data)}};Pe.create=t=>new Pe({typeName:b.ZodBoolean,coerce:t?.coerce||!1,...x(t)});Ie=class t extends S{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==p.date){let o=this._getOrReturnCtx(e);return m(o,{code:d.invalid_type,expected:p.date,received:o.parsedType}),k}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return m(o,{code:d.invalid_date}),k}let n=new $,s;for(let o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:d.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:d.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):E.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:g.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:g.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};Ie.create=t=>new Ie({checks:[],coerce:t?.coerce||!1,typeName:b.ZodDate,...x(t)});Qe=class extends S{_parse(e){if(this._getType(e)!==p.symbol){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.symbol,received:n.parsedType}),k}return D(e.data)}};Qe.create=t=>new Qe({typeName:b.ZodSymbol,...x(t)});Oe=class extends S{_parse(e){if(this._getType(e)!==p.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.undefined,received:n.parsedType}),k}return D(e.data)}};Oe.create=t=>new Oe({typeName:b.ZodUndefined,...x(t)});De=class extends S{_parse(e){if(this._getType(e)!==p.null){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.null,received:n.parsedType}),k}return D(e.data)}};De.create=t=>new De({typeName:b.ZodNull,...x(t)});ve=class extends S{constructor(){super(...arguments),this._any=!0}_parse(e){return D(e.data)}};ve.create=t=>new ve({typeName:b.ZodAny,...x(t)});ue=class extends S{constructor(){super(...arguments),this._unknown=!0}_parse(e){return D(e.data)}};ue.create=t=>new ue({typeName:b.ZodUnknown,...x(t)});te=class extends S{_parse(e){let r=this._getOrReturnCtx(e);return m(r,{code:d.invalid_type,expected:p.never,received:r.parsedType}),k}};te.create=t=>new te({typeName:b.ZodNever,...x(t)});et=class extends S{_parse(e){if(this._getType(e)!==p.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.void,received:n.parsedType}),k}return D(e.data)}};et.create=t=>new et({typeName:b.ZodVoid,...x(t)});le=class t extends S{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==p.array)return m(r,{code:d.invalid_type,expected:p.array,received:r.parsedType}),k;if(s.exactLength!==null){let i=r.data.length>s.exactLength.value,a=r.data.length<s.exactLength.value;(i||a)&&(m(r,{code:i?d.too_big:d.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&r.data.length<s.minLength.value&&(m(r,{code:d.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&r.data.length>s.maxLength.value&&(m(r,{code:d.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((i,a)=>s.type._parseAsync(new W(r,i,r.path,a)))).then(i=>$.mergeArray(n,i));let o=[...r.data].map((i,a)=>s.type._parseSync(new W(r,i,r.path,a)));return $.mergeArray(n,o)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:g.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:g.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:g.toString(r)}})}nonempty(e){return this.min(1,e)}};le.create=(t,e)=>new le({type:t,minLength:null,maxLength:null,exactLength:null,typeName:b.ZodArray,...x(e)});L=class t extends S{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=E.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==p.object){let u=this._getOrReturnCtx(e);return m(u,{code:d.invalid_type,expected:p.object,received:u.parsedType}),k}let{status:n,ctx:s}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof te&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let c=[];for(let u of i){let l=o[u],v=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new W(s,v,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof te){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")a.length>0&&(m(s,{code:d.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let v=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new W(s,v,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let v=await l.key,w=await l.value;u.push({key:v,value:w,alwaysSet:l.alwaysSet})}return u}).then(u=>$.mergeObjectSync(n,u)):$.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return g.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:g.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:b.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of E.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of E.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Xe(this)}partial(e){let r={};for(let n of E.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of E.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof Y;)o=o._def.innerType;r[n]=o}return new t({...this._def,shape:()=>r})}keyof(){return bs(E.objectKeys(this.shape))}};L.create=(t,e)=>new L({shape:()=>t,unknownKeys:"strip",catchall:te.create(),typeName:b.ZodObject,...x(e)});L.strictCreate=(t,e)=>new L({shape:()=>t,unknownKeys:"strict",catchall:te.create(),typeName:b.ZodObject,...x(e)});L.lazycreate=(t,e)=>new L({shape:t,unknownKeys:"strip",catchall:te.create(),typeName:b.ZodObject,...x(e)});Ne=class extends S{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new M(a.ctx.common.issues));return m(r,{code:d.invalid_union,unionErrors:i}),k}if(r.common.async)return Promise.all(n.map(async o=>{let i={...r,common:{...r.common,issues:[]},parent:null};return{result:await o._parseAsync({data:r.data,path:r.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!o&&(o={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(c=>new M(c));return m(r,{code:d.invalid_union,unionErrors:a}),k}}get options(){return this._def.options}};Ne.create=(t,e)=>new Ne({options:t,typeName:b.ZodUnion,...x(e)});ce=t=>t instanceof Le?ce(t.schema):t instanceof J?ce(t.innerType()):t instanceof Fe?[t.value]:t instanceof je?t.options:t instanceof ze?E.objectValues(t.enum):t instanceof Ue?ce(t._def.innerType):t instanceof Oe?[void 0]:t instanceof De?[null]:t instanceof Y?[void 0,...ce(t.unwrap())]:t instanceof oe?[null,...ce(t.unwrap())]:t instanceof bt||t instanceof Ze?ce(t.unwrap()):t instanceof Be?ce(t._def.innerType):[],Qt=class t extends S{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.object)return m(r,{code:d.invalid_type,expected:p.object,received:r.parsedType}),k;let n=this.discriminator,s=r.data[n],o=this.optionsMap.get(s);return o?r.common.async?o._parseAsync({data:r.data,path:r.path,parent:r}):o._parseSync({data:r.data,path:r.path,parent:r}):(m(r,{code:d.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),k)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let o of r){let i=ce(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,o)}}return new t({typeName:b.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...x(n)})}};Me=class extends S{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(o,i)=>{if(qt(o)||qt(i))return k;let a=Wr(o.value,i.value);return a.valid?((Xt(o)||Xt(i))&&r.dirty(),{status:r.value,value:a.data}):(m(n,{code:d.invalid_intersection_types}),k)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Me.create=(t,e,r)=>new Me({left:t,right:e,typeName:b.ZodIntersection,...x(r)});se=class t extends S{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.array)return m(n,{code:d.invalid_type,expected:p.array,received:n.parsedType}),k;if(n.data.length<this._def.items.length)return m(n,{code:d.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),k;!this._def.rest&&n.data.length>this._def.items.length&&(m(n,{code:d.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let o=[...n.data].map((i,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new W(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>$.mergeArray(r,i)):$.mergeArray(r,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};se.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new se({items:t,typeName:b.ZodTuple,rest:null,...x(e)})};er=class t extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.object)return m(n,{code:d.invalid_type,expected:p.object,received:n.parsedType}),k;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in n.data)s.push({key:o._parse(new W(n,a,n.path,a)),value:i._parse(new W(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?$.mergeObjectAsync(r,s):$.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof S?new t({keyType:e,valueType:r,typeName:b.ZodRecord,...x(n)}):new t({keyType:we.create(),valueType:e,typeName:b.ZodRecord,...x(r)})}},tt=class extends S{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.map)return m(n,{code:d.invalid_type,expected:p.map,received:n.parsedType}),k;let s=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([a,c],u)=>({key:s._parse(new W(n,a,n.path,[u,"key"])),value:o._parse(new W(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of i){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return k;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of i){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return k;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};tt.create=(t,e,r)=>new tt({valueType:e,keyType:t,typeName:b.ZodMap,...x(r)});rt=class t extends S{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==p.set)return m(n,{code:d.invalid_type,expected:p.set,received:n.parsedType}),k;let s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(m(n,{code:d.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(m(n,{code:d.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let o=this._def.valueType;function i(c){let u=new Set;for(let l of c){if(l.status==="aborted")return k;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>o._parse(new W(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:g.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:g.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};rt.create=(t,e)=>new rt({valueType:t,minSize:null,maxSize:null,typeName:b.ZodSet,...x(e)});tr=class t extends S{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.function)return m(r,{code:d.invalid_type,expected:p.function,received:r.parsedType}),k;function n(a,c){return kt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Je(),ae].filter(u=>!!u),issueData:{code:d.invalid_arguments,argumentsError:c}})}function s(a,c){return kt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Je(),ae].filter(u=>!!u),issueData:{code:d.invalid_return_type,returnTypeError:c}})}let o={errorMap:r.common.contextualErrorMap},i=r.data;if(this._def.returns instanceof ke){let a=this;return D(async function(...c){let u=new M([]),l=await a._def.args.parseAsync(c,o).catch(h=>{throw u.addIssue(n(c,h)),u}),v=await Reflect.apply(i,this,l);return await a._def.returns._def.type.parseAsync(v,o).catch(h=>{throw u.addIssue(s(v,h)),u})})}else{let a=this;return D(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new M([n(c,u.error)]);let l=Reflect.apply(i,this,u.data),v=a._def.returns.safeParse(l,o);if(!v.success)throw new M([s(l,v.error)]);return v.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:se.create(e).rest(ue.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||se.create([]).rest(ue.create()),returns:r||ue.create(),typeName:b.ZodFunction,...x(n)})}},Le=class extends S{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Le.create=(t,e)=>new Le({getter:t,typeName:b.ZodLazy,...x(e)});Fe=class extends S{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return m(r,{received:r.data,code:d.invalid_literal,expected:this._def.value}),k}return{status:"valid",value:e.data}}get value(){return this._def.value}};Fe.create=(t,e)=>new Fe({value:t,typeName:b.ZodLiteral,...x(e)});je=class t extends S{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{expected:E.joinValues(n),received:r.parsedType,code:d.invalid_type}),k}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{received:r.data,code:d.invalid_enum_value,options:n}),k}return D(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};je.create=bs;ze=class extends S{_parse(e){let r=E.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==p.string&&n.parsedType!==p.number){let s=E.objectValues(r);return m(n,{expected:E.joinValues(s),received:n.parsedType,code:d.invalid_type}),k}if(this._cache||(this._cache=new Set(E.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=E.objectValues(r);return m(n,{received:n.data,code:d.invalid_enum_value,options:s}),k}return D(e.data)}get enum(){return this._def.values}};ze.create=(t,e)=>new ze({values:t,typeName:b.ZodNativeEnum,...x(e)});ke=class extends S{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==p.promise&&r.common.async===!1)return m(r,{code:d.invalid_type,expected:p.promise,received:r.parsedType}),k;let n=r.parsedType===p.promise?r.data:Promise.resolve(r.data);return D(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ke.create=(t,e)=>new ke({type:t,typeName:b.ZodPromise,...x(e)});J=class extends S{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===b.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,o={addIssue:i=>{m(n,i),i.fatal?r.abort():r.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(n.data,o);if(n.common.async)return Promise.resolve(i).then(async a=>{if(r.value==="aborted")return k;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?k:c.status==="dirty"?Ce(c.value):r.value==="dirty"?Ce(c.value):c});{if(r.value==="aborted")return k;let a=this._def.schema._parseSync({data:i,path:n.path,parent:n});return a.status==="aborted"?k:a.status==="dirty"?Ce(a.value):r.value==="dirty"?Ce(a.value):a}}if(s.type==="refinement"){let i=a=>{let c=s.refinement(a,o);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?k:(a.status==="dirty"&&r.dirty(),i(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?k:(a.status==="dirty"&&r.dirty(),i(a.value).then(()=>({status:r.value,value:a.value}))))}if(s.type==="transform")if(n.common.async===!1){let i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ye(i))return k;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>ye(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:r.value,value:a})):k);E.assertNever(s)}};J.create=(t,e,r)=>new J({schema:t,typeName:b.ZodEffects,effect:e,...x(r)});J.createWithPreprocess=(t,e,r)=>new J({schema:e,effect:{type:"preprocess",transform:t},typeName:b.ZodEffects,...x(r)});Y=class extends S{_parse(e){return this._getType(e)===p.undefined?D(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Y.create=(t,e)=>new Y({innerType:t,typeName:b.ZodOptional,...x(e)});oe=class extends S{_parse(e){return this._getType(e)===p.null?D(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};oe.create=(t,e)=>new oe({innerType:t,typeName:b.ZodNullable,...x(e)});Ue=class extends S{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===p.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Ue.create=(t,e)=>new Ue({innerType:t,typeName:b.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...x(e)});Be=class extends S{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return qe(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new M(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new M(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Be.create=(t,e)=>new Be({innerType:t,typeName:b.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...x(e)});nt=class extends S{_parse(e){if(this._getType(e)!==p.nan){let n=this._getOrReturnCtx(e);return m(n,{code:d.invalid_type,expected:p.nan,received:n.parsedType}),k}return{status:"valid",value:e.data}}};nt.create=t=>new nt({typeName:b.ZodNaN,...x(t)});ka=Symbol("zod_brand"),bt=class extends S{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},_t=class t extends S{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?k:o.status==="dirty"?(r.dirty(),Ce(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?k:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:b.ZodPipeline})}},Ze=class extends S{_parse(e){let r=this._def.innerType._parse(e),n=s=>(ye(s)&&(s.value=Object.freeze(s.value)),s);return qe(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};Ze.create=(t,e)=>new Ze({innerType:t,typeName:b.ZodReadonly,...x(e)});ba={object:L.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(b||(b={}));_a=(t,e={message:`Input not instance of ${t.name}`})=>_s(r=>r instanceof t,e),xs=we.create,Ss=Re.create,xa=nt.create,Sa=$e.create,Es=Pe.create,Ea=Ie.create,Aa=Qe.create,Ta=Oe.create,Ca=De.create,Ra=ve.create,$a=ue.create,Pa=te.create,Ia=et.create,Oa=le.create,Da=L.create,Na=L.strictCreate,Ma=Ne.create,La=Qt.create,Fa=Me.create,ja=se.create,za=er.create,Ua=tt.create,Ba=rt.create,Za=tr.create,Ha=Le.create,Va=Fe.create,Ka=je.create,Ga=ze.create,Ya=ke.create,Wa=J.create,Ja=Y.create,qa=oe.create,Xa=J.createWithPreprocess,Qa=_t.create,ec=()=>xs().optional(),tc=()=>Ss().optional(),rc=()=>Es().optional(),nc={string:(t=>we.create({...t,coerce:!0})),number:(t=>Re.create({...t,coerce:!0})),boolean:(t=>Pe.create({...t,coerce:!0})),bigint:(t=>$e.create({...t,coerce:!0})),date:(t=>Ie.create({...t,coerce:!0}))},sc=k});var f={};ee(f,{BRAND:()=>ka,DIRTY:()=>Ce,EMPTY_PATH:()=>Xi,INVALID:()=>k,NEVER:()=>sc,OK:()=>D,ParseStatus:()=>$,Schema:()=>S,ZodAny:()=>ve,ZodArray:()=>le,ZodBigInt:()=>$e,ZodBoolean:()=>Pe,ZodBranded:()=>bt,ZodCatch:()=>Be,ZodDate:()=>Ie,ZodDefault:()=>Ue,ZodDiscriminatedUnion:()=>Qt,ZodEffects:()=>J,ZodEnum:()=>je,ZodError:()=>M,ZodFirstPartyTypeKind:()=>b,ZodFunction:()=>tr,ZodIntersection:()=>Me,ZodIssueCode:()=>d,ZodLazy:()=>Le,ZodLiteral:()=>Fe,ZodMap:()=>tt,ZodNaN:()=>nt,ZodNativeEnum:()=>ze,ZodNever:()=>te,ZodNull:()=>De,ZodNullable:()=>oe,ZodNumber:()=>Re,ZodObject:()=>L,ZodOptional:()=>Y,ZodParsedType:()=>p,ZodPipeline:()=>_t,ZodPromise:()=>ke,ZodReadonly:()=>Ze,ZodRecord:()=>er,ZodSchema:()=>S,ZodSet:()=>rt,ZodString:()=>we,ZodSymbol:()=>Qe,ZodTransformer:()=>J,ZodTuple:()=>se,ZodType:()=>S,ZodUndefined:()=>Oe,ZodUnion:()=>Ne,ZodUnknown:()=>ue,ZodVoid:()=>et,addIssueToContext:()=>m,any:()=>Ra,array:()=>Oa,bigint:()=>Sa,boolean:()=>Es,coerce:()=>nc,custom:()=>_s,date:()=>Ea,datetimeRegex:()=>ks,defaultErrorMap:()=>ae,discriminatedUnion:()=>La,effect:()=>Wa,enum:()=>Ka,function:()=>Za,getErrorMap:()=>Je,getParsedType:()=>ne,instanceof:()=>_a,intersection:()=>Fa,isAborted:()=>qt,isAsync:()=>qe,isDirty:()=>Xt,isValid:()=>ye,late:()=>ba,lazy:()=>Ha,literal:()=>Va,makeIssue:()=>kt,map:()=>Ua,nan:()=>xa,nativeEnum:()=>Ga,never:()=>Pa,null:()=>Ca,nullable:()=>qa,number:()=>Ss,object:()=>Da,objectUtil:()=>Vr,oboolean:()=>rc,onumber:()=>tc,optional:()=>Ja,ostring:()=>ec,pipeline:()=>Qa,preprocess:()=>Xa,promise:()=>Ya,quotelessJson:()=>Wi,record:()=>za,set:()=>Ba,setErrorMap:()=>qi,strictObject:()=>Na,string:()=>xs,symbol:()=>Aa,transformer:()=>Wa,tuple:()=>ja,undefined:()=>Ta,union:()=>Ma,unknown:()=>$a,util:()=>E,void:()=>Ia});var Jr=A(()=>{Jt();Gr();ps();vt();As();Wt()});var st=A(()=>{Jr();Jr()});import{createHash as oc}from"node:crypto";function be(t){let e=Ts.get(t);return e||(e=oc("sha256").update(`tkr:${t}`).digest("hex").slice(0,16),Ts.set(t,e)),e}var ic,ac,ot,Ts,xt=A(()=>{"use strict";st();ic=f.enum(["normal","compact","minimal"]),ac=f.enum(["off","light","balanced","max"]),ot=f.object({enabled:f.boolean().default(!0),telemetryOptIn:f.boolean().default(!0),outputVerbosity:ic.default("compact"),reducer:ac.default("off"),filters:f.object({enableAll:f.boolean().default(!0),disabled:f.array(f.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Ts=new Map});var Rs={};ee(Rs,{bundleRefreshFile:()=>St,claudeCommandFile:()=>xe,claudeCommandsDir:()=>sr,contentCacheDir:()=>At,contentCacheFile:()=>rr,enrollCooldownFile:()=>qr,installIdFile:()=>it,managedCommandsFile:()=>nr,skillFile:()=>_e,skillsDir:()=>Et,stateFile:()=>cc,tokmizerHome:()=>y});import Cs from"node:os";import{join as q}from"node:path";function y(){return process.env.TOKMIZER_HOME||q(Cs.homedir(),".tokmizer")}function cc(){return q(y(),"state.json")}function it(){return q(y(),"install-id")}function qr(){return q(y(),"enroll-cooldown")}function St(){return q(y(),"bundle-refresh.json")}function Et(){return q(y(),"skills")}function _e(t){return q(Et(),`${t}.md`)}function At(){return q(y(),"content-cache")}function rr(t){return q(At(),t)}function nr(){return q(y(),"managed-commands.json")}function sr(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||q(Cs.homedir(),".claude","commands")}function xe(t){return q(sr(),`${t}.md`)}var P=A(()=>{"use strict"});import at from"node:os";import{createHash as uc,randomUUID as lc}from"node:crypto";import{readFile as $s,writeFile as Ps,mkdir as dc}from"node:fs/promises";async function or(){try{let r=(await $s(it(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await dc(y(),{recursive:!0});let t=lc();try{return await Ps(it(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await $s(it(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await Ps(it(),t,{mode:384}),t}}function Xr(t){return uc("sha256").update(t).digest("hex")}function fc(){let t=at.networkInterfaces();for(let e of Object.keys(t))for(let r of t[e]??[])if(!r.internal&&r.mac&&r.mac!=="00:00:00:00:00:00")return r.mac;return"no-mac"}async function X(){let t=await or(),e=at.hostname(),r=at.platform(),n=at.release(),s=at.cpus(),o=s[0]?.model??"unknown",i=s.length,a=Xr(fc()),c=Xr(at.userInfo().username),u=[e,r,n,o,String(i),a,c,t].join("|");return{fingerprint:Xr(u),installId:t,hostname:e,os:r,osVersion:n,cpuModel:o,cpuCores:i,macHash:a,usernameHash:c}}var He=A(()=>{"use strict";P()});import{join as Qr}from"node:path";import{mkdir as mc,readFile as pc,writeFile as hc,unlink as Is,rename as gc}from"node:fs/promises";function Tt(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function tn(t){return t?.dir??y()}async function T(t){let e=tn(t);try{let r=await pc(Qr(e,en),"utf8"),n=JSON.parse(r);return{...n,lastSettingsRevision:n.lastSettingsRevision??0,timeZone:n.timeZone??Tt(),bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}async function ir(t,e){let r=tn(e);await mc(r,{recursive:!0}),t.installedAt==null&&(t.installedAt=Math.floor(Date.now()/1e3));let n=Qr(r,en),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;await hc(s,JSON.stringify(t,null,2),{mode:384});try{await gc(s,n)}catch(o){try{await Is(s)}catch{}throw o}}async function ar(t){let e=tn(t);try{await Is(Qr(e,en))}catch{return}}var en,de=A(()=>{"use strict";P();en="state.json"});import{createRequire as yc}from"node:module";function vc(){for(let t of["../package.json","../../package.json"])try{let e=wc(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}function ct(t,e){if(!t||!e)return!1;let r=t.split(".").map(s=>parseInt(s,10)),n=e.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=r[s]??0,i=n[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var wc,Q,ut=A(()=>{"use strict";wc=yc(import.meta.url);Q=vc()});var Os,Ds=A(()=>{"use strict";Os=`-----BEGIN PUBLIC KEY-----
4
4
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
5
5
  -----END PUBLIC KEY-----
6
- `});import{createHmac as ic,createPublicKey as ac,verify as cc}from"node:crypto";function At(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Rs).replace(/\\n/g,`
7
- `)}function lc(t,e,r,n){try{let s=ac({key:n,format:"pem"});return cc(null,Buffer.from(`${e}.${t}`,"utf8"),s,Buffer.from(r,"base64url"))}catch{return!1}}async function xe(t){let e=await t.text(),r=At(),n=t.headers?.get?.("x-tokmizer-resp-ts")??null;if(n!==null){let i=Number(n);if(!Number.isFinite(i)||Date.now()-i>uc)throw new be("http","stale server response (resp-ts outside freshness window)")}if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new be("http","no signing public key configured; refusing to trust server response");let s=t.headers?.get?.("x-tokmizer-resp-sig")??null,o=Number(n);if(!s||n===null||!Number.isFinite(o))throw new be("http","missing server response signature");if(!lc(e,o,s,r))throw new be("http","invalid server response signature");return JSON.parse(e)}function dc(t,e,r){return ic("sha256",r).update(`${e}.${t}`).digest("hex")}async function F(t,e,r,n){let s=Date.now(),o=r===void 0?"":JSON.stringify(r),i=n.signingSecret?dc(o,s,n.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":n.fingerprint,"x-tokmizer-install-id":n.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(s),"x-tokmizer-plugin-version":X};n.bearer&&(a.authorization=`Bearer ${n.bearer}`);let c=n.timeoutMs??5e3,u=t!=="GET"&&t!=="DELETE",d={method:t,headers:a,signal:AbortSignal.timeout(c)};u&&(d.body=o);try{return await fetch(`${n.baseUrl}${e}`,d)}catch(_){let v=_.name;throw v==="TimeoutError"||v==="AbortError"?new be("timeout",`${t} ${e} timed out after ${c}ms`):new be("network",`${t} ${e} failed: ${_.message}`)}}var uc,be,He=E(()=>{"use strict";at();Cs();uc=300*1e3;be=class extends Error{constructor(r,n,s){super(n);this.kind=r;this.status=s;this.name="TransportError"}kind;status}});import{readFile as Ec,writeFile as Ac,mkdir as Tc,chmod as Rc,rm as Ws,rename as Cc}from"node:fs/promises";import{join as cn}from"node:path";async function ie(){try{let t=await Ec(cn(y(),un),"utf8"),e=JSON.parse(t);return Jr.parse({...Gs,...e})}catch{return Gs}}async function Js(t){await Tc(y(),{recursive:!0});let e=cn(y(),un),r=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Ac(r,JSON.stringify(t,null,2),{mode:384});try{await Rc(r,384),await Cc(r,e)}catch(n){try{await Ws(r,{force:!0})}catch{}throw n}}async function qs(){try{await Ws(cn(y(),un),{force:!0})}catch{}}var un,Gs,$t=E(()=>{"use strict";kt();D();un="settings-cache.json",Gs=Jr.parse({})});var lr,ln=E(()=>{"use strict";nt();lr=f.object({slug:f.string().min(1).max(64),description:f.string().max(255).optional(),match_command:f.string().min(1),priority:f.number().int().default(50),strip_ansi:f.boolean().default(!1),strip_lines_matching:f.array(f.string()).default([]),keep_failures:f.boolean().default(!1),fold_passing:f.boolean().default(!1),fold_passing_threshold:f.number().int().positive().max(1e3).optional(),mask_abs_paths:f.boolean().default(!1),preserve_exact:f.boolean().default(!1),truncate_lines_at:f.number().int().positive().max(1e4).optional(),max_lines:f.number().int().positive().max(1e5).optional(),scale_with_level:f.boolean().default(!0),transform:f.string().max(64).optional(),on_empty:f.string().max(255).optional()})});function dn(t){return JSON.stringify(t)+dr}function*eo(t){let e=0;for(;;){let r=t.indexOf(dr,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function Pt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var Oc,Dc,Nc,Mc,Wf,Jf,qf,Qs,dr,Yf,to=E(()=>{"use strict";nt();ln();Oc=f.object({id:f.string().min(1).max(64),op:f.literal("filter"),cmd:f.string().min(1).max(2048),plan:f.enum(["trial","smart","pro"]),allowed:f.array(f.string().min(1).max(64)).max(512).optional(),installId:f.string().min(1).max(64).optional()}),Dc=f.object({id:f.string().min(1).max(64),op:f.literal("ping")}),Nc=f.object({id:f.string().min(1).max(64),op:f.literal("shutdown"),installId:f.string().min(1).max(64)}),Mc=f.object({id:f.string().min(1).max(64),op:f.literal("reload"),installId:f.string().min(1).max(64).optional()}),Wf=f.discriminatedUnion("op",[Oc,Dc,Nc,Mc]),Jf=f.object({id:f.string(),ok:f.literal(!0),data:f.unknown()}),qf=f.object({id:f.string(),ok:f.literal(!1),err:f.string(),retryAfterMs:f.number().int().nonnegative().optional()}),Qs=f.object({filter:lr.nullable(),cacheHit:f.boolean().optional()}),dr=`
8
- `,Yf=64*1024});var so={};ee(so,{IDLE_TIMEOUT_MS:()=>Gc,PARENT_WATCH_INTERVAL_MS:()=>Kc,cleanupStaleSocket:()=>fr,isParentAlive:()=>Wc,socketPath:()=>ct});import Lc from"node:os";import{join as It}from"node:path";import{existsSync as Fc,statSync as jc,lstatSync as ro,unlinkSync as zc,mkdirSync as Bc,chmodSync as Uc}from"node:fs";import{createHash as Zc}from"node:crypto";function Hc(t){let e=Zc("sha256").update(y()).digest("hex").slice(0,8),r=It(Lc.tmpdir(),`tkr-${t}-${e}`),n=It(r,"d.sock");if(Buffer.byteLength(n)>fn)throw new Error("Temporary directory path is too long for IPC");return no(r,t),n}function Vc(t,e){try{let r=ro(t);return r.isDirectory()&&r.uid===e&&(r.mode&63)===0}catch{return!1}}function no(t,e){Bc(t,{recursive:!0,mode:448});let r=ro(t);if(!r.isDirectory()||r.uid!==e)throw new Error("Unsafe IPC directory");Uc(t,448)}function ct(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let t=typeof process.getuid=="function"?process.getuid():0,e=process.env.XDG_RUNTIME_DIR;if(e&&Vc(e,t)){let s=It(e,`tokmizer-${t}.sock`);if(Buffer.byteLength(s)<=fn)return{path:s,isPipe:!1}}let r=It(y(),"run"),n=It(r,"daemon.sock");return Buffer.byteLength(n)>fn?{path:Hc(t),isPipe:!1}:(no(r,t),{path:n,isPipe:!1})}async function fr(){let{path:t,isPipe:e}=ct();if(e||!Fc(t))return;try{if(!jc(t).isSocket())return}catch{return}let r=await import("node:net");if(!await new Promise(s=>{let o=r.createConnection(t),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let c=a.code;i(c!=="ECONNREFUSED"&&c!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{zc(t)}catch{}}function Wc(){let t=process.ppid;if(!t||t===1)return!1;try{return process.kill(t,0),!0}catch{return!1}}var fn,Kc,Gc,mn=E(()=>{"use strict";D();fn=100;Kc=3e4,Gc=5*6e4});var ut={};ee(ut,{connectDaemon:()=>lo,shutdownDaemon:()=>uo});import{createConnection as Jc}from"node:net";import{spawn as qc}from"node:child_process";import{existsSync as ao,openSync as pn,closeSync as oo,unlinkSync as gn,writeFileSync as yn,mkdirSync as wn,readFileSync as Yc,appendFileSync as Xc,rmSync as Qc,statSync as eu}from"node:fs";import{dirname as tu,join as _n}from"node:path";import{fileURLToPath as ru}from"node:url";function vn(){return _n(y(),"daemon.spawn.fail")}function kn(){return _n(y(),"daemon.log")}function iu(){try{let t=Number(Yc(vn(),"utf8"));return Number.isFinite(t)&&Date.now()-t<su}catch{return!1}}function au(t){try{wn(y(),{recursive:!0});let e=kn();try{eu(e).size>ou&&gn(e)}catch{}Xc(e,`${new Date().toISOString()} ${t}
9
- `)}catch{}}function cu(t){try{wn(y(),{recursive:!0}),yn(vn(),String(Date.now()))}catch{}au(`spawn failed: ${t.message}`)}function uu(){try{Qc(vn(),{force:!0})}catch{}}async function mr(t,e){return new Promise((r,n)=>{let s=Jc(t),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}n(a)}else r(s)},i=setTimeout(()=>o(new Error("connect timeout")),e);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function lu(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:ru(new URL("../bin/tkr-daemon.js",import.meta.url))}async function hn(t,e=3e3){let r=Math.ceil(e/75),n=process.platform==="win32";for(let s=0;s<r;s++){if(n)try{return(await mr(t,75)).destroy(),!0}catch{}else if(ao(t))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function du(t){let e=lu();if(!ao(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=ct(),n=process.platform==="win32"?y():tu(r);try{wn(n,{recursive:!0})}catch{}let s=_n(n,"daemon.spawn.lock"),o=null;try{o=pn(s,"wx"),yn(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await hn(r,5e3))return;try{gn(s)}catch{}try{o=pn(s,"wx"),yn(o,String(process.pid))}catch(c){if(c.code==="EEXIST"){await hn(r,5e3);return}throw c}}else throw i}try{let i=null;try{i=pn(kn(),"a")}catch{}if(qc(process.execPath,[e],{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),i!==null)try{oo(i)}catch{}if(!await hn(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{oo(o)}catch{}try{gn(s)}catch{}}}}async function uo(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:ct(),r=await sr();try{let n=await mr(e,co);n.write(dn({id:Pt(),op:"shutdown",installId:r})),await new Promise(s=>setTimeout(s,150));try{n.destroy()}catch{}return!0}catch{return!1}}async function fu(t,e){let r=Date.now()+e;for(;Date.now()<r;){try{(await mr(t,250)).destroy()}catch{return!0}await new Promise(n=>setTimeout(n,100))}return!1}async function lo(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:ct(),r=await sr(),n=null,s=0,o=!1;for(;s<=io;)try{n=await mr(e,co),uu();break}catch{if(s+=1,s>io)throw new Error(`tkr-daemon unreachable at ${e}`);if(iu())throw new Error(`tkr-daemon spawn on cooldown (see ${kn()})`);await fr();try{await du(r),o=!0}catch(d){throw cu(d),d}}if(!n)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";n.setEncoding("utf8"),n.on("data",d=>{a+=d;let _=-1;for(let k=0;k<a.length;k++)a[k]===dr&&(_=k);if(_<0)return;let v=[];for(let k of eo(a.slice(0,_+1)))v.push(k);a=a.slice(_+1);for(let k of v)if(k)try{let A=JSON.parse(k),C=i.get(A.id);if(!C)continue;clearTimeout(C.timer),i.delete(A.id),C.resolve(A)}catch{}}),n.on("close",()=>{for(let d of i.values())clearTimeout(d.timer),d.reject(new Error("daemon socket closed"));i.clear()}),n.on("error",()=>{});function c(d){return new Promise((_,v)=>{let k=setTimeout(()=>{i.delete(d.id),v(new Error(`daemon request timeout (${d.op})`))},nu);i.set(d.id,{resolve:_,reject:v,timer:k}),n.write(dn(d))})}let u={filter:async(d,_,v)=>{let k=await c({id:Pt(),op:"filter",cmd:d.slice(0,2048),plan:_,...v&&v.length>0?{allowed:v.slice(0,512)}:{},installId:r});if(!k.ok)return null;let A=Qs.safeParse(k.data);return A.success?A.data.filter:null},ping:async()=>{let d=await c({id:Pt(),op:"ping"});if(!d.ok)throw new Error(d.err);return d.data},reload:async()=>{let d=await c({id:Pt(),op:"reload",installId:r});if(!d.ok)throw new Error(d.err);return d.data},close:()=>{try{n.end()}catch{}}};if(!t.skipVersionCheck&&!o){let d=!1;try{d=(await u.ping()).version!==X}catch{}if(d){try{await uo(t.socketPath?{socketPath:t.socketPath}:{})}catch{}u.close();let _=await fu(e,2e3);if(await fr(),!_)throw new Error("stale daemon still running after shutdown request");return lo({...t,skipVersionCheck:!0})}}return u}var co,nu,io,su,ou,lt=E(()=>{"use strict";to();mn();D();Ze();at();co=500,nu=3e3,io=1,su=6e4,ou=256*1024});import{readFileSync as mu,renameSync as pu,statSync as hu,writeFileSync as gu}from"node:fs";function pr(t,e,r){try{if(hu(t).size<=e)return;let n=mu(t,"utf8").split(`
10
- `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=n.length-1;a>=0;a-=1){let c=n[a],u=Buffer.byteLength(c)+1;if(o+u>r)break;s.push(c),o+=u}s.reverse();let i=`${t}.tmp-${process.pid}`;gu(i,s.length?`${s.join(`
6
+ `});import{createHmac as kc,createPublicKey as bc,verify as _c}from"node:crypto";function Ct(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Os).replace(/\\n/g,`
7
+ `)}function Sc(t,e,r,n){try{let s=bc({key:n,format:"pem"});return _c(null,Buffer.from(`${e}.${t}`,"utf8"),s,Buffer.from(r,"base64url"))}catch{return!1}}async function Ee(t){let e=await t.text(),r=Ct(),n=t.headers?.get?.("x-tokmizer-resp-ts")??null;if(n!==null){let i=Number(n);if(!Number.isFinite(i)||Date.now()-i>xc)throw new Se("http","stale server response (resp-ts outside freshness window)")}if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Se("http","no signing public key configured; refusing to trust server response");let s=t.headers?.get?.("x-tokmizer-resp-sig")??null,o=Number(n);if(!s||n===null||!Number.isFinite(o))throw new Se("http","missing server response signature");if(!Sc(e,o,s,r))throw new Se("http","invalid server response signature");return JSON.parse(e)}function Ec(t,e,r){return kc("sha256",r).update(`${e}.${t}`).digest("hex")}async function F(t,e,r,n){let s=Date.now(),o=r===void 0?"":JSON.stringify(r),i=n.signingSecret?Ec(o,s,n.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":n.fingerprint,"x-tokmizer-install-id":n.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(s),"x-tokmizer-plugin-version":Q};n.bearer&&(a.authorization=`Bearer ${n.bearer}`);let c=n.timeoutMs??5e3,u=t!=="GET"&&t!=="DELETE",l={method:t,headers:a,signal:AbortSignal.timeout(c)};u&&(l.body=o);try{return await fetch(`${n.baseUrl}${e}`,l)}catch(v){let w=v.name;throw w==="TimeoutError"||w==="AbortError"?new Se("timeout",`${t} ${e} timed out after ${c}ms`):new Se("network",`${t} ${e} failed: ${v.message}`)}}var xc,Se,Ve=A(()=>{"use strict";ut();Ds();xc=300*1e3;Se=class extends Error{constructor(r,n,s){super(n);this.kind=r;this.status=s;this.name="TransportError"}kind;status}});import{readFile as ro,writeFile as no,mkdir as so,chmod as Hc,rm as It,rename as oo,readdir as Vc}from"node:fs/promises";import{randomUUID as Kc}from"node:crypto";import{join as dt}from"node:path";import{setTimeout as Qs}from"node:timers/promises";async function j(){try{let t=await ro(dt(y(),un),"utf8"),e=JSON.parse(t);return ot.parse({...eo,...e})}catch{return eo}}async function ln(t){await so(y(),{recursive:!0});let e=dt(y(),un),r=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;await no(r,JSON.stringify(t,null,2),{mode:384});try{await Hc(r,384),await oo(r,e)}catch(n){try{await It(r,{force:!0})}catch{}throw n}}async function to(t){let e=[];for(let r of await Vc(t)){let n=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(r);if(!n)continue;let s=dt(t,r);try{process.kill(Number(n[1]),0)}catch(o){let i=o.code;if(i==="ESRCH"){await It(s,{force:!0});continue}if(i!=="EPERM")throw o}try{let o=JSON.parse(await ro(s,"utf8"));if(!Number.isSafeInteger(o)||o<0)throw new Error("Invalid local settings lock");e.push({id:r,ticket:o})}catch(o){if(o.code!=="ENOENT")throw o}}return e}async function io(t){let e=Gc.parse(t),r=dt(y(),"settings-cache-locks");await so(r,{recursive:!0,mode:448});let n=`${process.pid}-${Kc()}.json`,s=dt(r,n),o=`${s}.tmp`,i=performance.now()+3e3,a=async c=>{for(await no(o,String(c),{mode:384});;)try{await oo(o,s);return}catch(u){let l=u.code;if(process.platform!=="win32"||l!=="EPERM"&&l!=="EBUSY"||performance.now()>=i)throw u;await Qs(10)}};try{await a(0);let c=Math.max(0,...(await to(r)).map(u=>u.ticket))+1;if(!Number.isSafeInteger(c))throw new Error("Invalid local settings lock");for(await a(c);;){if(!(await to(r)).some(l=>l.id!==n&&(l.ticket===0||l.ticket<c||l.ticket===c&&l.id<n))){let l=await j(),v=ot.parse({...l,...e,filters:{...l.filters,...e.filters}});return await ln(v),v}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await Qs(10)}}finally{await Promise.all([It(s,{force:!0}),It(o,{force:!0})])}}async function ao(){try{await It(dt(y(),un),{force:!0})}catch{}}var un,eo,Gc,Ot=A(()=>{"use strict";xt();P();un="settings-cache.json",eo=ot.parse({}),Gc=ot.partial().extend({filters:ot.shape.filters.removeDefault().partial().optional()})});var fr,dn=A(()=>{"use strict";st();fr=f.object({slug:f.string().min(1).max(64),description:f.string().max(255).optional(),match_command:f.string().min(1),priority:f.number().int().default(50),strip_ansi:f.boolean().default(!1),strip_lines_matching:f.array(f.string()).default([]),keep_failures:f.boolean().default(!1),fold_passing:f.boolean().default(!1),fold_passing_threshold:f.number().int().positive().max(1e3).optional(),mask_abs_paths:f.boolean().default(!1),preserve_exact:f.boolean().default(!1),truncate_lines_at:f.number().int().positive().max(1e4).optional(),max_lines:f.number().int().positive().max(1e5).optional(),scale_with_level:f.boolean().default(!0),transform:f.string().max(64).optional(),on_empty:f.string().max(255).optional()})});function fn(t){return JSON.stringify(t)+mr}function*fo(t){let e=0;for(;;){let r=t.indexOf(mr,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function Dt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var qc,Xc,Qc,eu,wm,vm,km,lo,mr,bm,mo=A(()=>{"use strict";st();dn();qc=f.object({id:f.string().min(1).max(64),op:f.literal("filter"),cmd:f.string().min(1).max(2048),plan:f.enum(["trial","smart","pro"]),allowed:f.array(f.string().min(1).max(64)).max(512).optional(),installId:f.string().min(1).max(64).optional()}),Xc=f.object({id:f.string().min(1).max(64),op:f.literal("ping")}),Qc=f.object({id:f.string().min(1).max(64),op:f.literal("shutdown"),installId:f.string().min(1).max(64)}),eu=f.object({id:f.string().min(1).max(64),op:f.literal("reload"),installId:f.string().min(1).max(64).optional()}),wm=f.discriminatedUnion("op",[qc,Xc,Qc,eu]),vm=f.object({id:f.string(),ok:f.literal(!0),data:f.unknown()}),km=f.object({id:f.string(),ok:f.literal(!1),err:f.string(),retryAfterMs:f.number().int().nonnegative().optional()}),lo=f.object({filter:fr.nullable(),cacheHit:f.boolean().optional()}),mr=`
8
+ `,bm=64*1024});var go={};ee(go,{IDLE_TIMEOUT_MS:()=>du,PARENT_WATCH_INTERVAL_MS:()=>lu,cleanupStaleSocket:()=>pr,isParentAlive:()=>fu,socketPath:()=>ft});import tu from"node:os";import{join as Nt}from"node:path";import{existsSync as ru,statSync as nu,lstatSync as po,unlinkSync as su,mkdirSync as ou,chmodSync as iu}from"node:fs";import{createHash as au}from"node:crypto";function cu(t){let e=au("sha256").update(y()).digest("hex").slice(0,8),r=Nt(tu.tmpdir(),`tkr-${t}-${e}`),n=Nt(r,"d.sock");if(Buffer.byteLength(n)>mn)throw new Error("Temporary directory path is too long for IPC");return ho(r,t),n}function uu(t,e){try{let r=po(t);return r.isDirectory()&&r.uid===e&&(r.mode&63)===0}catch{return!1}}function ho(t,e){ou(t,{recursive:!0,mode:448});let r=po(t);if(!r.isDirectory()||r.uid!==e)throw new Error("Unsafe IPC directory");iu(t,448)}function ft(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let t=typeof process.getuid=="function"?process.getuid():0,e=process.env.XDG_RUNTIME_DIR;if(e&&uu(e,t)){let s=Nt(e,`tokmizer-${t}.sock`);if(Buffer.byteLength(s)<=mn)return{path:s,isPipe:!1}}let r=Nt(y(),"run"),n=Nt(r,"daemon.sock");return Buffer.byteLength(n)>mn?{path:cu(t),isPipe:!1}:(ho(r,t),{path:n,isPipe:!1})}async function pr(){let{path:t,isPipe:e}=ft();if(e||!ru(t))return;try{if(!nu(t).isSocket())return}catch{return}let r=await import("node:net");if(!await new Promise(s=>{let o=r.createConnection(t),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let c=a.code;i(c!=="ECONNREFUSED"&&c!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{su(t)}catch{}}function fu(){let t=process.ppid;if(!t||t===1)return!1;try{return process.kill(t,0),!0}catch{return!1}}var mn,lu,du,pn=A(()=>{"use strict";P();mn=100;lu=3e4,du=5*6e4});var mt={};ee(mt,{connectDaemon:()=>_o,shutdownDaemon:()=>bo});import{createConnection as mu}from"node:net";import{spawn as pu}from"node:child_process";import{existsSync as vo,openSync as hn,closeSync as yo,unlinkSync as yn,writeFileSync as wn,mkdirSync as vn,readFileSync as hu,appendFileSync as gu,rmSync as yu,statSync as wu}from"node:fs";import{dirname as vu,join as kn}from"node:path";import{fileURLToPath as ku}from"node:url";function bn(){return kn(y(),"daemon.spawn.fail")}function _n(){return kn(y(),"daemon.log")}function Su(){try{let t=Number(hu(bn(),"utf8"));return Number.isFinite(t)&&Date.now()-t<_u}catch{return!1}}function Eu(t){try{vn(y(),{recursive:!0});let e=_n();try{wu(e).size>xu&&yn(e)}catch{}gu(e,`${new Date().toISOString()} ${t}
9
+ `)}catch{}}function Au(t){try{vn(y(),{recursive:!0}),wn(bn(),String(Date.now()))}catch{}Eu(`spawn failed: ${t.message}`)}function Tu(){try{yu(bn(),{force:!0})}catch{}}async function hr(t,e){return new Promise((r,n)=>{let s=mu(t),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}n(a)}else r(s)},i=setTimeout(()=>o(new Error("connect timeout")),e);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Cu(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:ku(new URL("../bin/tkr-daemon.js",import.meta.url))}async function gn(t,e=3e3){let r=Math.ceil(e/75),n=process.platform==="win32";for(let s=0;s<r;s++){if(n)try{return(await hr(t,75)).destroy(),!0}catch{}else if(vo(t))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Ru(t){let e=Cu();if(!vo(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=ft(),n=process.platform==="win32"?y():vu(r);try{vn(n,{recursive:!0})}catch{}let s=kn(n,"daemon.spawn.lock"),o=null;try{o=hn(s,"wx"),wn(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await gn(r,5e3))return;try{yn(s)}catch{}try{o=hn(s,"wx"),wn(o,String(process.pid))}catch(c){if(c.code==="EEXIST"){await gn(r,5e3);return}throw c}}else throw i}try{let i=null;try{i=hn(_n(),"a")}catch{}if(pu(process.execPath,[e],{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),i!==null)try{yo(i)}catch{}if(!await gn(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{yo(o)}catch{}try{yn(s)}catch{}}}}async function bo(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:ft(),r=await or();try{let n=await hr(e,ko);n.write(fn({id:Dt(),op:"shutdown",installId:r})),await new Promise(s=>setTimeout(s,150));try{n.destroy()}catch{}return!0}catch{return!1}}async function $u(t,e){let r=Date.now()+e;for(;Date.now()<r;){try{(await hr(t,250)).destroy()}catch{return!0}await new Promise(n=>setTimeout(n,100))}return!1}async function _o(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:ft(),r=await or(),n=null,s=0,o=!1;for(;s<=wo;)try{n=await hr(e,ko),Tu();break}catch{if(s+=1,s>wo)throw new Error(`tkr-daemon unreachable at ${e}`);if(Su())throw new Error(`tkr-daemon spawn on cooldown (see ${_n()})`);await pr();try{await Ru(r),o=!0}catch(l){throw Au(l),l}}if(!n)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";n.setEncoding("utf8"),n.on("data",l=>{a+=l;let v=-1;for(let h=0;h<a.length;h++)a[h]===mr&&(v=h);if(v<0)return;let w=[];for(let h of fo(a.slice(0,v+1)))w.push(h);a=a.slice(v+1);for(let h of w)if(h)try{let C=JSON.parse(h),R=i.get(C.id);if(!R)continue;clearTimeout(R.timer),i.delete(C.id),R.resolve(C)}catch{}}),n.on("close",()=>{for(let l of i.values())clearTimeout(l.timer),l.reject(new Error("daemon socket closed"));i.clear()}),n.on("error",()=>{});function c(l){return new Promise((v,w)=>{let h=setTimeout(()=>{i.delete(l.id),w(new Error(`daemon request timeout (${l.op})`))},bu);i.set(l.id,{resolve:v,reject:w,timer:h}),n.write(fn(l))})}let u={filter:async(l,v,w)=>{let h=await c({id:Dt(),op:"filter",cmd:l.slice(0,2048),plan:v,...w&&w.length>0?{allowed:w.slice(0,512)}:{},installId:r});if(!h.ok)return null;let C=lo.safeParse(h.data);return C.success?C.data.filter:null},ping:async()=>{let l=await c({id:Dt(),op:"ping"});if(!l.ok)throw new Error(l.err);return l.data},reload:async()=>{let l=await c({id:Dt(),op:"reload",installId:r});if(!l.ok)throw new Error(l.err);return l.data},close:()=>{try{n.end()}catch{}}};if(!t.skipVersionCheck&&!o){let l=!1;try{l=(await u.ping()).version!==Q}catch{}if(l){try{await bo(t.socketPath?{socketPath:t.socketPath}:{})}catch{}u.close();let v=await $u(e,2e3);if(await pr(),!v)throw new Error("stale daemon still running after shutdown request");return _o({...t,skipVersionCheck:!0})}}return u}var ko,bu,wo,_u,xu,pt=A(()=>{"use strict";mo();pn();P();He();ut();ko=500,bu=3e3,wo=1,_u=6e4,xu=256*1024});import{readFileSync as Pu,renameSync as Iu,statSync as Ou,writeFileSync as Du}from"node:fs";function gr(t,e,r){try{if(Ou(t).size<=e)return;let n=Pu(t,"utf8").split(`
10
+ `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=n.length-1;a>=0;a-=1){let c=n[a],u=Buffer.byteLength(c)+1;if(o+u>r)break;s.push(c),o+=u}s.reverse();let i=`${t}.tmp-${process.pid}`;Du(i,s.length?`${s.join(`
11
11
  `)}
12
- `:"",{mode:384}),pu(i,t)}catch{}}var hr=E(()=>{"use strict"});var go={};ee(go,{codexHookCommand:()=>Sn,codexHookInstalled:()=>bn,codexHooksFile:()=>dt,ensureCodexHook:()=>xn});import{readFile as yu,writeFile as wu,rename as _u,mkdir as vu,copyFile as ku}from"node:fs/promises";import{existsSync as fo,readFileSync as bu,accessSync as xu,constants as Su}from"node:fs";import{join as gr}from"node:path";import Eu from"node:os";function dt(){return gr(process.env.CODEX_HOME||gr(Eu.homedir(),".codex"),"hooks.json")}function ho(t){return(t.hooks??[]).find(e=>typeof e.command=="string"&&e.command.includes(po))}function bn(){try{return(JSON.parse(bu(dt(),"utf8")).hooks?.PreToolUse??[]).some(e=>ho(e)!=null)}catch{return!1}}async function xn(t){let e=dt(),r={},n=fo(e);if(n)try{if(r=JSON.parse(await yu(e,"utf8")),!r||typeof r!="object"||Array.isArray(r))return"error"}catch{return"error"}let s=r.hooks&&typeof r.hooks=="object"?r.hooks:{},o=Array.isArray(s.PreToolUse)?s.PreToolUse:[],i="added",a=o.map(ho).find(c=>c!=null);if(a){if(a.command===t)return"present";a.command=t,i="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:t,timeout:10}]});s.PreToolUse=o,r.hooks=s;try{await vu(gr(e,".."),{recursive:!0});let c=`${e}.tkr-bak`;n&&!fo(c)&&await ku(e,c);let u=`${e}.tmp-${process.pid}`;await wu(u,`${JSON.stringify(r,null,2)}
13
- `),await _u(u,e)}catch{return"error"}return i}function mo(t){return`'${t.replace(/'/g,"'\\''")}'`}function Sn(t,e){if(process.platform!=="win32")for(let r of t.split(":")){if(!r||r.includes("node_modules"))continue;let n=gr(r,po);try{return xu(n,Su.X_OK),mo(n)}catch{}}return`node ${mo(e)}`}var po,En=E(()=>{"use strict";po="tkr-codex-hook"});var yr={};ee(yr,{autoUpdateEnabled:()=>Rn,claimSelfUpdateSlot:()=>So,defaultDeps:()=>Fu,maybeSpawnSelfUpdate:()=>zu,selfUpdate:()=>Mu,setAutoUpdate:()=>Du});import{spawn as ko}from"node:child_process";import{accessSync as Au,constants as Tu,existsSync as Ot,mkdirSync as bo,readFileSync as xo,rmSync as Ru,writeFileSync as Tn,appendFileSync as Cu}from"node:fs";import{fileURLToPath as $u}from"node:url";import{join as re}from"node:path";import Pu from"node:os";function Rn(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!Ot(An())}function Du(t){if(t){Ru(An(),{force:!0});return}bo(y(),{recursive:!0,mode:448}),Tn(An(),String(Date.now()))}function So(t=Date.now()){try{let e=Number(xo(_o(),"utf8"));if(Number.isFinite(e)&&t-e<Iu)return!1}catch{}try{bo(y(),{recursive:!0,mode:448}),Tn(_o(),String(t))}catch{return!1}return!0}function Nu(t){try{let e=re(y(),"self-update.log");Cu(e,`${new Date().toISOString()} ${t}
14
- `,{mode:384}),pr(e,wo,wo/2)}catch{}}async function Mu(t){if(!Rn())return["disabled"];let e=t.latest;if(!e||!yo.test(e))return["no-version"];let r=[],n=[],s=(await t.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),o=s?t.npmVersion(s):void 0;if(o)if(!it(o,e))n.push(o);else if(!t.writable(s))r.push("npm needs permission");else{let a=await t.run("npm",["i","-g",`@tokmizer/plugin@${e}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),c=t.npmVersion(s);a.code===0&&c===e?(r.push(`npm ${o} -> ${e}`),n.push(e)):r.push(`npm failed (${o})`)}if(process.platform!=="win32"){let a=await t.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),c=a.code===0?a.stdout.trim().split(/\s+/)[1]:void 0;if(c&&yo.test(c))if(!it(c,e))n.push(c);else{let u=await t.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));u.code===0?(r.push(`brew ${c} -> ${e}`),n.push(e)):/untrusted tap/i.test(u.stderr??"")?r.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):r.push(`brew failed (${c})`)}}if(r.some(a=>a.includes("->"))&&await t.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),n.some(a=>!it(a,Ou))&&t.codexInstalled()&&!Ot(vo())){let a=await t.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{Tn(vo(),String(Date.now()))}catch{}r.push(`codex hook ${a}`)}}for(let a of r)Nu(a);return r}function Lu(t,e,r){return new Promise(n=>{let s=ko(t,e,{env:r??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),o="",i="";s.stdout?.on("data",c=>{o+=c.toString("utf8")}),s.stderr?.on("data",c=>{i.length<8192&&(i+=c.toString("utf8"))});let a=setTimeout(()=>s.kill("SIGTERM"),10*6e4);s.on("error",()=>{clearTimeout(a),n({code:127,stdout:""})}),s.on("close",c=>{clearTimeout(a),n({code:c??1,stdout:o,stderr:i})})})}function Fu(t){return{latest:t,run:Lu,npmVersion:e=>{try{let r=JSON.parse(xo(re(e,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof r=="string"?r:void 0}catch{return}},writable:e=>{try{return Au(e,Tu.W_OK),!0}catch{return!1}},codexInstalled:()=>Ot(process.env.CODEX_HOME||re(Pu.homedir(),".codex")),ensureCodexHook:async e=>{let{ensureCodexHook:r,codexHookCommand:n}=await Promise.resolve().then(()=>(En(),go)),s=re(e,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),o=n(process.env.PATH??"",s);return o.startsWith("node ")&&!Ot(s)?"error":r(o)}}}function ju(){let t=$u(new URL(".",import.meta.url));for(let e of[re(t),re(t,"..")])if(Ot(re(e,"bin","tkr.js")))return e;return null}function zu(){try{if(!Rn())return;let t=ju();if(!t||!So())return;let e=ko(process.execPath,[re(t,"bin","tkr.js"),"self-update"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});e.on("error",()=>{}),e.unref()}catch{}}var yo,Iu,Ou,wo,An,_o,vo,wr=E(()=>{"use strict";D();at();hr();yo=/^\d+\.\d+\.\d+$/,Iu=6*36e5,Ou="0.9.34",wo=64*1024,An=()=>re(y(),"auto-update-off"),_o=()=>re(y(),"self-update-last"),vo=()=>re(y(),"codex-hook-offered")});function Dt(t){let e=t;for(let[r,n]of Bu)e=e.replace(r,n);return e}var Bu,Cn=E(()=>{"use strict";Bu=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]]});import{join as vr}from"node:path";import{appendFileSync as Ao,chmodSync as Uu,existsSync as Nt,mkdirSync as In,readFileSync as Nn,renameSync as On,rmdirSync as To,statSync as Mn,unlinkSync as ft,utimesSync as Zu,writeFileSync as Ln}from"node:fs";function Fn(t){return vr(Lt(),`${t}.lock`)}function Vu(t){let e=Fn(t);try{return In(Lt(),{recursive:!0,mode:448}),In(e),!0}catch{try{Date.now()-Mn(e).mtimeMs>Hu&&To(e)}catch{return!1}return!1}}function Ku(t){try{Zu(Fn(t),new Date,new Date)}catch{return}}function Gu(t){try{To(Fn(t))}catch{return}}function Lt(){return vr(y(),"spool")}function _r(t){return vr(Lt(),`${t}.jsonl`)}function kr(t){return vr(Lt(),`${t}.pending.jsonl`)}function br(t,e){try{In(Lt(),{recursive:!0,mode:448});let r=_r(t);if(Nt(r)&&Mn(r).size>=Dn)return;Ao(r,JSON.stringify(e)+`
15
- `,{mode:384}),Uu(r,384)}catch{return}}function Eo(t,e){Ao(t,Nn(e,"utf8"),{mode:384}),Ln(e,"",{mode:384});try{ft(e)}catch{return}}function Wu(t){if(Mn(t).size<=Dn)return;let e=Nn(t,"utf8").split(`
16
- `).filter(s=>s.trim()),r=0,n=[];for(let s=e.length-1;s>=0;s--){let o=e[s]??"";if(r+=Buffer.byteLength(o,"utf8")+1,r>Dn)break;n.unshift(o)}Ln(t,n.length?n.join(`
12
+ `:"",{mode:384}),Iu(i,t)}catch{}}var yr=A(()=>{"use strict"});var To={};ee(To,{codexHookCommand:()=>En,codexHookInstalled:()=>xn,codexHooksFile:()=>ht,ensureCodexHook:()=>Sn});import{readFile as Nu,writeFile as Mu,rename as Lu,mkdir as Fu,copyFile as ju}from"node:fs/promises";import{existsSync as xo,readFileSync as zu,accessSync as Uu,constants as Bu}from"node:fs";import{join as wr}from"node:path";import Zu from"node:os";function ht(){return wr(process.env.CODEX_HOME||wr(Zu.homedir(),".codex"),"hooks.json")}function Ao(t){return(t.hooks??[]).find(e=>typeof e.command=="string"&&e.command.includes(Eo))}function xn(){try{return(JSON.parse(zu(ht(),"utf8")).hooks?.PreToolUse??[]).some(e=>Ao(e)!=null)}catch{return!1}}async function Sn(t){let e=ht(),r={},n=xo(e);if(n)try{if(r=JSON.parse(await Nu(e,"utf8")),!r||typeof r!="object"||Array.isArray(r))return"error"}catch{return"error"}let s=r.hooks&&typeof r.hooks=="object"?r.hooks:{},o=Array.isArray(s.PreToolUse)?s.PreToolUse:[],i="added",a=o.map(Ao).find(c=>c!=null);if(a){if(a.command===t)return"present";a.command=t,i="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:t,timeout:10}]});s.PreToolUse=o,r.hooks=s;try{await Fu(wr(e,".."),{recursive:!0});let c=`${e}.tkr-bak`;n&&!xo(c)&&await ju(e,c);let u=`${e}.tmp-${process.pid}`;await Mu(u,`${JSON.stringify(r,null,2)}
13
+ `),await Lu(u,e)}catch{return"error"}return i}function So(t){return`'${t.replace(/'/g,"'\\''")}'`}function En(t,e){if(process.platform!=="win32")for(let r of t.split(":")){if(!r||r.includes("node_modules"))continue;let n=wr(r,Eo);try{return Uu(n,Bu.X_OK),So(n)}catch{}}return`node ${So(e)}`}var Eo,An=A(()=>{"use strict";Eo="tkr-codex-hook"});var vr={};ee(vr,{autoUpdateEnabled:()=>Rn,claimSelfUpdateSlot:()=>No,defaultDeps:()=>rl,maybeSpawnSelfUpdate:()=>sl,selfUpdate:()=>el,setAutoUpdate:()=>Xu});import{spawn as Io}from"node:child_process";import{accessSync as Hu,constants as Vu,existsSync as Mt,mkdirSync as Oo,readFileSync as Do,rmSync as Ku,writeFileSync as Cn,appendFileSync as Gu}from"node:fs";import{fileURLToPath as Yu}from"node:url";import{join as re}from"node:path";import Wu from"node:os";function Rn(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!Mt(Tn())}function Xu(t){if(t){Ku(Tn(),{force:!0});return}Oo(y(),{recursive:!0,mode:448}),Cn(Tn(),String(Date.now()))}function No(t=Date.now()){try{let e=Number(Do($o(),"utf8"));if(Number.isFinite(e)&&t-e<Ju)return!1}catch{}try{Oo(y(),{recursive:!0,mode:448}),Cn($o(),String(t))}catch{return!1}return!0}function Qu(t){try{let e=re(y(),"self-update.log");Gu(e,`${new Date().toISOString()} ${t}
14
+ `,{mode:384}),gr(e,Ro,Ro/2)}catch{}}async function el(t){if(!Rn())return["disabled"];let e=t.latest;if(!e||!Co.test(e))return["no-version"];let r=[],n=[],s=(await t.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),o=s?t.npmVersion(s):void 0;if(o)if(!ct(o,e))n.push(o);else if(!t.writable(s))r.push("npm needs permission");else{let a=await t.run("npm",["i","-g",`@tokmizer/plugin@${e}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),c=t.npmVersion(s);a.code===0&&c===e?(r.push(`npm ${o} -> ${e}`),n.push(e)):r.push(`npm failed (${o})`)}if(process.platform!=="win32"){let a=await t.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),c=a.code===0?a.stdout.trim().split(/\s+/)[1]:void 0;if(c&&Co.test(c))if(!ct(c,e))n.push(c);else{let u=await t.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));u.code===0?(r.push(`brew ${c} -> ${e}`),n.push(e)):/untrusted tap/i.test(u.stderr??"")?r.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):r.push(`brew failed (${c})`)}}if(r.some(a=>a.includes("->"))&&await t.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),n.some(a=>!ct(a,qu))&&t.codexInstalled()&&!Mt(Po())){let a=await t.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{Cn(Po(),String(Date.now()))}catch{}r.push(`codex hook ${a}`)}}for(let a of r)Qu(a);return r}function tl(t,e,r){return new Promise(n=>{let s=Io(t,e,{env:r??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),o="",i="";s.stdout?.on("data",c=>{o+=c.toString("utf8")}),s.stderr?.on("data",c=>{i.length<8192&&(i+=c.toString("utf8"))});let a=setTimeout(()=>s.kill("SIGTERM"),10*6e4);s.on("error",()=>{clearTimeout(a),n({code:127,stdout:""})}),s.on("close",c=>{clearTimeout(a),n({code:c??1,stdout:o,stderr:i})})})}function rl(t){return{latest:t,run:tl,npmVersion:e=>{try{let r=JSON.parse(Do(re(e,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof r=="string"?r:void 0}catch{return}},writable:e=>{try{return Hu(e,Vu.W_OK),!0}catch{return!1}},codexInstalled:()=>Mt(process.env.CODEX_HOME||re(Wu.homedir(),".codex")),ensureCodexHook:async e=>{let{ensureCodexHook:r,codexHookCommand:n}=await Promise.resolve().then(()=>(An(),To)),s=re(e,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),o=n(process.env.PATH??"",s);return o.startsWith("node ")&&!Mt(s)?"error":r(o)}}}function nl(){let t=Yu(new URL(".",import.meta.url));for(let e of[re(t),re(t,"..")])if(Mt(re(e,"bin","tkr.js")))return e;return null}function sl(){try{if(!Rn())return;let t=nl();if(!t||!No())return;let e=Io(process.execPath,[re(t,"bin","tkr.js"),"self-update"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});e.on("error",()=>{}),e.unref()}catch{}}var Co,Ju,qu,Ro,Tn,$o,Po,kr=A(()=>{"use strict";P();ut();yr();Co=/^\d+\.\d+\.\d+$/,Ju=6*36e5,qu="0.9.34",Ro=64*1024,Tn=()=>re(y(),"auto-update-off"),$o=()=>re(y(),"self-update-last"),Po=()=>re(y(),"codex-hook-offered")});function Lt(t){let e=t;for(let[r,n]of ol)e=e.replace(r,n);return e}var ol,$n=A(()=>{"use strict";ol=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]]});import{join as _r}from"node:path";import{appendFileSync as Lo,chmodSync as il,existsSync as Ft,mkdirSync as On,readFileSync as Mn,renameSync as Dn,rmdirSync as Fo,statSync as Ln,unlinkSync as gt,utimesSync as al,writeFileSync as Fn}from"node:fs";function jn(t){return _r(zt(),`${t}.lock`)}function ul(t){let e=jn(t);try{return On(zt(),{recursive:!0,mode:448}),On(e),!0}catch{try{Date.now()-Ln(e).mtimeMs>cl&&Fo(e)}catch{return!1}return!1}}function ll(t){try{al(jn(t),new Date,new Date)}catch{return}}function dl(t){try{Fo(jn(t))}catch{return}}function zt(){return _r(y(),"spool")}function br(t){return _r(zt(),`${t}.jsonl`)}function xr(t){return _r(zt(),`${t}.pending.jsonl`)}function Sr(t,e){try{On(zt(),{recursive:!0,mode:448});let r=br(t);if(Ft(r)&&Ln(r).size>=Nn)return;Lo(r,JSON.stringify(e)+`
15
+ `,{mode:384}),il(r,384)}catch{return}}function Mo(t,e){Lo(t,Mn(e,"utf8"),{mode:384}),Fn(e,"",{mode:384});try{gt(e)}catch{return}}function fl(t){if(Ln(t).size<=Nn)return;let e=Mn(t,"utf8").split(`
16
+ `).filter(s=>s.trim()),r=0,n=[];for(let s=e.length-1;s>=0;s--){let o=e[s]??"";if(r+=Buffer.byteLength(o,"utf8")+1,r>Nn)break;n.unshift(o)}Fn(t,n.length?n.join(`
17
17
  `)+`
18
- `:"",{mode:384})}function Ju(t){try{let e=kr(t),r=_r(t),n=`${r}.merging`;if(Nt(n)&&Eo(e,n),Nt(e))Nt(r)&&(On(r,n),Eo(e,n));else{if(!Nt(r))return[];On(r,e)}Wu(e);let s=[];for(let o of Nn(e,"utf8").split(`
19
- `))if(o.trim())try{s.push(JSON.parse(o))}catch{continue}return s.length===0?(ft(e),[]):s}catch{return[]}}function Ro(t){try{ft(kr(t))}catch{return}}function qu(t,e){if(e.length===0){Ro(t);return}let r=kr(t),n=`${r}.tmp`;Ln(n,e.map(s=>JSON.stringify(s)).join(`
18
+ `:"",{mode:384})}function ml(t){try{let e=xr(t),r=br(t),n=`${r}.merging`;if(Ft(n)&&Mo(e,n),Ft(e))Ft(r)&&(Dn(r,n),Mo(e,n));else{if(!Ft(r))return[];Dn(r,e)}fl(e);let s=[];for(let o of Mn(e,"utf8").split(`
19
+ `))if(o.trim())try{s.push(JSON.parse(o))}catch{continue}return s.length===0?(gt(e),[]):s}catch{return[]}}function jo(t){try{gt(xr(t))}catch{return}}function pl(t,e){if(e.length===0){jo(t);return}let r=xr(t),n=`${r}.tmp`;Fn(n,e.map(s=>JSON.stringify(s)).join(`
20
20
  `)+`
21
- `,{mode:384}),On(n,r)}async function xr(t,e,r={}){if(Pn.has(t)||!Vu(t))return"fail";Pn.add(t);try{if(!(await ie()).telemetryOptIn)return Mt(t),"empty";let n=Ju(t);if(n.length===0)return"empty";let s=await R();if(!s)return"fail";if(r.requirePro&&s.plan!=="pro")return Ro(t),"ok";let o=r.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await Y();for(let a=0;a<n.length;a+=$n){if(!(await ie()).telemetryOptIn)return Mt(t),"empty";Ku(t);let c=await F("POST",e,{events:n.slice(a,a+$n)},{baseUrl:o,bearer:s.jwt,signingSecret:s.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!c.ok)return c.status===401||c.status===403?"auth":"fail";qu(t,n.slice(a+$n))}return"ok"}catch{return"fail"}finally{Pn.delete(t),Gu(t)}}function Mt(t){try{ft(_r(t))}catch{}try{ft(`${_r(t)}.merging`)}catch{}try{ft(kr(t))}catch{return}}var Dn,$n,Hu,Pn,Sr=E(()=>{"use strict";D();fe();Ze();He();$t();Dn=512*1024,$n=100,Hu=12e4,Pn=new Set});var $o={};ee($o,{commandName:()=>Er,flushTelemetry:()=>sl,recordTelemetry:()=>jn});function Co(t){let e=t.toLowerCase();return e.startsWith("git")||el.has(e)}function Er(t){let e=t.trim().split(/\s+/).filter(a=>a.length>0),r=0;for(;r<e.length&&Qu.test(e[r]??"");)r+=1;let n=e[r];if(!n||!Yu.test(n)||n.length>rl||Co(n)||tl.test(n)||Dt(n)!==n)return"";let s=e[r+1];return s&&Co(s)?"":(s&&nl.has(n.toLowerCase())&&Xu.test(s)?`${n} ${s}`:n).slice(0,64)}async function jn(t){if(!t.telemetryOptIn)return;let e=Er(t.cmd),r=e&&Dt(e)===e?e:"other",n=t.sessionId?t.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";br("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),...t.tokensRestored?{tokensRestored:Math.max(0,Math.round(t.tokensRestored))}:{},...t.rawTokens!=null?{rawTokens:Math.max(0,Math.round(t.rawTokens))}:{},optimized:t.optimized,...n?{sessionId:n}:{},...t.host?{host:t.host}:{}})}async function sl(t){return xr("telemetry","/api/v1/telemetry",{baseUrl:t})}var Yu,Xu,Qu,el,tl,rl,nl,Ar=E(()=>{"use strict";Cn();Sr();Yu=/^[a-z0-9][a-z0-9._-]*$/i,Xu=/^[a-z][a-z-]+$/,Qu=/^[A-Za-z_][A-Za-z0-9_]*=/,el=new Set(["gh","glab","gup","hub","gist"]),tl=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,rl=24,nl=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"])});var Po={};ee(Po,{flush:()=>il,recordEvent:()=>ol});async function ol(t){if(t.plan!=="pro"||!(await ie()).telemetryOptIn)return;let e=Er(t.cmd);!e||Dt(e)!==e||br("learn",{cmd:e,filterId:t.filterId==null?null:_e(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}async function il(t){return xr("learn","/api/v1/learn",{baseUrl:t,requirePro:!0})}var Io=E(()=>{"use strict";Ar();Cn();Sr();kt();$t()});function Gn(t){return Vn.filter(e=>Kn.has(e.host)===t).flatMap(e=>e.vars)}function Wn(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of Vn)if(s.vars.some(o=>t[o]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!Kn.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}function zo(t){return Kn.has(t)?"native-hooks":"shell-shim"}var Vn,mp,Kn,Jn=E(()=>{"use strict";Vn=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"gemini-cli",vars:["GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]}],mp=[...Vn.map(t=>t.host),"shell"],Kn=new Set(["claude-code","codex"])});var Wo={};ee(Wo,{ensurePathInRc:()=>Bt,ensureShimPath:()=>Mr,envWithoutShimDir:()=>Al,installShims:()=>Ge,listShimmableCommands:()=>Tl,powershellProfilePath:()=>Go,powershellProfileSnippet:()=>Ko,refreshShimsIfStale:()=>Rl,refreshStaleShims:()=>Ho,resolveShimJsPath:()=>ae,shellRcLine:()=>pe,shimsDir:()=>P,shimsInstalled:()=>Ut,uninstallShims:()=>Xn,unixWrapperScript:()=>Dr,windowsWrapperScript:()=>Vo});import{mkdir as qn,writeFile as zt,readFile as Ir,unlink as Yn,chmod as Zo,rename as xl}from"node:fs/promises";import{existsSync as Ke}from"node:fs";import{delimiter as Bo,join as N,dirname as Pr}from"node:path";import{fileURLToPath as Sl}from"node:url";import{execFileSync as El}from"node:child_process";import U from"node:os";function P(){return N(y(),"shims")}function Al(){let t=P(),e={...process.env},r=process.platform==="win32"?"Path":"PATH",s=(e[r]??e.PATH??"").split(Bo).filter(o=>o&&o!==t);return e[r]=s.join(Bo),r==="Path"&&(e.PATH=e[r]),e}function Ut(){try{let t=U.platform()==="win32";return Ke(N(P(),t?"git.cmd":"git"))}catch{return!1}}function Tl(){return[...Or]}function jt(t){return`'${t.replace(/'/g,"'\\''")}'`}function Uo(t){return`"${t.map(e=>`\${${e}:-}`).join("")}"`}function Dr(t,e){return["#!/bin/sh",`if [ -n ${Uo(Gn(!0))} ] || { [ -z ${Uo(Gn(!1))} ] && [ ! -t 1 ]; }; then`," set -f",` _tk_d=${jt(P())}`,` _tk_c=${jt(e)}`," _tk_o=$IFS; IFS=:; _tk_p=; _tk_x="," for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c'," done"," IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",' [ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }',' exec "$_tk_x" "$@"',"fi",`exec node ${jt(t)} --as ${jt(e)} "$@"`,""].join(`
22
- `)}async function Rl(t,e){if(U.platform()==="win32")return 0;try{if(await Ir(N(P(),e),"utf8")===Dr(t,e))return 0}catch{return 0}return Ho(t)}async function Ho(t){if(U.platform()==="win32")return 0;let e=P();if(!Ke(e))return 0;let r=0;for(let n of Or){let s=N(e,n),o=Dr(t,n),i;try{i=await Ir(s,"utf8")}catch{continue}if(i===o)continue;let a=`${s}.${process.pid}.tmp`;try{await zt(a,o,{mode:493}),await Zo(a,493),await xl(a,s),r+=1}catch{try{await Yn(a)}catch{}}}return r}function Vo(t,e){return["@echo off",`node "${t}" --as "${e}" %*`,""].join(`\r
23
- `)}async function Ge(t){let e=P();await qn(e,{recursive:!0,mode:448});let r=[],n=U.platform()==="win32";for(let s of Or){let o=n?N(e,`${s}.cmd`):N(e,s);if(Ke(o))try{await Yn(o)}catch{}n?await zt(o,Vo(t,s)):(await zt(o,Dr(t,s),{mode:493}),await Zo(o,493)),r.push(s)}return r}async function Xn(){let t=P();if(!Ke(t))return 0;let e=0,r=U.platform()==="win32";for(let n of Or){let s=r?N(t,`${n}.cmd`):N(t,n);try{await Yn(s),e+=1}catch{}}return e}function pe(t=!1){let e=t?`'${P().replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`:jt(P());return`${Nr}
21
+ `,{mode:384}),Dn(n,r)}async function Er(t,e,r={}){if(In.has(t)||!ul(t))return"fail";In.add(t);try{if(!(await j()).telemetryOptIn)return jt(t),"empty";let n=ml(t);if(n.length===0)return"empty";let s=await T();if(!s)return"fail";if(r.requirePro&&s.plan!=="pro")return jo(t),"ok";let o=r.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await X();for(let a=0;a<n.length;a+=Pn){if(!(await j()).telemetryOptIn)return jt(t),"empty";ll(t);let c=await F("POST",e,{events:n.slice(a,a+Pn)},{baseUrl:o,bearer:s.jwt,signingSecret:s.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!c.ok)return c.status===401||c.status===403?"auth":"fail";pl(t,n.slice(a+Pn))}return"ok"}catch{return"fail"}finally{In.delete(t),dl(t)}}function jt(t){try{gt(br(t))}catch{}try{gt(`${br(t)}.merging`)}catch{}try{gt(xr(t))}catch{return}}var Nn,Pn,cl,In,Ar=A(()=>{"use strict";P();de();He();Ve();Ot();Nn=512*1024,Pn=100,cl=12e4,In=new Set});var Uo={};ee(Uo,{commandName:()=>Tr,flushTelemetry:()=>_l,recordTelemetry:()=>zn});function zo(t){let e=t.toLowerCase();return e.startsWith("git")||wl.has(e)}function Tr(t){let e=t.trim().split(/\s+/).filter(a=>a.length>0),r=0;for(;r<e.length&&yl.test(e[r]??"");)r+=1;let n=e[r];if(!n||!hl.test(n)||n.length>kl||zo(n)||vl.test(n)||Lt(n)!==n)return"";let s=e[r+1];return s&&zo(s)?"":(s&&bl.has(n.toLowerCase())&&gl.test(s)?`${n} ${s}`:n).slice(0,64)}async function zn(t){if(!t.telemetryOptIn)return;let e=Tr(t.cmd),r=e&&Lt(e)===e?e:"other",n=t.sessionId?t.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Sr("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),...t.tokensRestored?{tokensRestored:Math.max(0,Math.round(t.tokensRestored))}:{},...t.rawTokens!=null?{rawTokens:Math.max(0,Math.round(t.rawTokens))}:{},optimized:t.optimized,...n?{sessionId:n}:{},...t.host?{host:t.host}:{}})}async function _l(t){return Er("telemetry","/api/v1/telemetry",{baseUrl:t})}var hl,gl,yl,wl,vl,kl,bl,Cr=A(()=>{"use strict";$n();Ar();hl=/^[a-z0-9][a-z0-9._-]*$/i,gl=/^[a-z][a-z-]+$/,yl=/^[A-Za-z_][A-Za-z0-9_]*=/,wl=new Set(["gh","glab","gup","hub","gist"]),vl=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,kl=24,bl=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"])});var Bo={};ee(Bo,{flush:()=>Sl,recordEvent:()=>xl});async function xl(t){if(t.plan!=="pro"||!(await j()).telemetryOptIn)return;let e=Tr(t.cmd);!e||Lt(e)!==e||Sr("learn",{cmd:e,filterId:t.filterId==null?null:be(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}async function Sl(t){return Er("learn","/api/v1/learn",{baseUrl:t,requirePro:!0})}var Zo=A(()=>{"use strict";Cr();$n();Ar();xt();Ot()});function Yn(t){return Kn.filter(e=>Gn.has(e.host)===t).flatMap(e=>e.vars)}function Wn(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of Kn)if(s.vars.some(o=>t[o]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!Gn.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}function qo(t){return Gn.has(t)?"native-hooks":"shell-shim"}var Kn,Fp,Gn,Jn=A(()=>{"use strict";Kn=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"gemini-cli",vars:["GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]}],Fp=[...Kn.map(t=>t.host),"shell"],Gn=new Set(["claude-code","codex"])});var oi={};ee(oi,{ensurePathInRc:()=>Ht,ensureShimPath:()=>Fr,envWithoutShimDir:()=>Hl,installShims:()=>We,listShimmableCommands:()=>Vl,powershellProfilePath:()=>si,powershellProfileSnippet:()=>ni,refreshShimsIfStale:()=>Kl,refreshStaleShims:()=>ti,resolveShimJsPath:()=>ie,shellRcLine:()=>me,shimsDir:()=>I,shimsInstalled:()=>Vt,uninstallShims:()=>Qn,unixWrapperScript:()=>Mr,windowsWrapperScript:()=>ri});import{mkdir as qn,writeFile as Zt,readFile as Dr,unlink as Xn,chmod as ei,rename as Ul}from"node:fs/promises";import{existsSync as Ye}from"node:fs";import{delimiter as Xo,join as N,dirname as Or}from"node:path";import{fileURLToPath as Bl}from"node:url";import{execFileSync as Zl}from"node:child_process";import H from"node:os";function I(){return N(y(),"shims")}function Hl(){let t=I(),e={...process.env},r=process.platform==="win32"?"Path":"PATH",s=(e[r]??e.PATH??"").split(Xo).filter(o=>o&&o!==t);return e[r]=s.join(Xo),r==="Path"&&(e.PATH=e[r]),e}function Vt(){try{let t=H.platform()==="win32";return Ye(N(I(),t?"git.cmd":"git"))}catch{return!1}}function Vl(){return[...Nr]}function Bt(t){return`'${t.replace(/'/g,"'\\''")}'`}function Qo(t){return`"${t.map(e=>`\${${e}:-}`).join("")}"`}function Mr(t,e){return["#!/bin/sh",`if [ -n ${Qo(Yn(!0))} ] || { [ -z ${Qo(Yn(!1))} ] && [ ! -t 1 ]; }; then`," set -f",` _tk_d=${Bt(I())}`,` _tk_c=${Bt(e)}`," _tk_o=$IFS; IFS=:; _tk_p=; _tk_x="," for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c'," done"," IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",' [ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }',' exec "$_tk_x" "$@"',"fi",`exec node ${Bt(t)} --as ${Bt(e)} "$@"`,""].join(`
22
+ `)}async function Kl(t,e){if(H.platform()==="win32")return 0;try{if(await Dr(N(I(),e),"utf8")===Mr(t,e))return 0}catch{return 0}return ti(t)}async function ti(t){if(H.platform()==="win32")return 0;let e=I();if(!Ye(e))return 0;let r=0;for(let n of Nr){let s=N(e,n),o=Mr(t,n),i;try{i=await Dr(s,"utf8")}catch{continue}if(i===o)continue;let a=`${s}.${process.pid}.tmp`;try{await Zt(a,o,{mode:493}),await ei(a,493),await Ul(a,s),r+=1}catch{try{await Xn(a)}catch{}}}return r}function ri(t,e){return["@echo off",`node "${t}" --as "${e}" %*`,""].join(`\r
23
+ `)}async function We(t){let e=I();await qn(e,{recursive:!0,mode:448});let r=[],n=H.platform()==="win32";for(let s of Nr){let o=n?N(e,`${s}.cmd`):N(e,s);if(Ye(o))try{await Xn(o)}catch{}n?await Zt(o,ri(t,s)):(await Zt(o,Mr(t,s),{mode:493}),await ei(o,493)),r.push(s)}return r}async function Qn(){let t=I();if(!Ye(t))return 0;let e=0,r=H.platform()==="win32";for(let n of Nr){let s=r?N(t,`${n}.cmd`):N(t,n);try{await Xn(s),e+=1}catch{}}return e}function me(t=!1){let e=t?`'${I().replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`:Bt(I());return`${Lr}
24
24
  ${t?`set -gx PATH ${e} $PATH`:`export PATH=${e}:"$PATH"`}
25
- `}async function Bt(t,e=!1){try{await qn(Pr(t),{recursive:!0});let r=Ke(t)?await Ir(t,"utf8"):"";return r.includes(Nr)?"present":(await zt(t,`${r.replace(/\n*$/,`
25
+ `}async function Ht(t,e=!1){try{await qn(Or(t),{recursive:!0});let r=Ye(t)?await Dr(t,"utf8"):"";return r.includes(Lr)?"present":(await Zt(t,`${r.replace(/\n*$/,`
26
26
  `)}
27
- ${pe(e)}`,{mode:384}),"added")}catch{return"missing"}}function Ko(){return`${Nr}
28
- $env:Path = '${P().replace(/'/g,"''")};' + $env:Path
29
- `}function Go(){let t=U.platform()==="win32"?El("powershell.exe",["-NoProfile","-NonInteractive","-Command","[Environment]::GetFolderPath('MyDocuments')"],{encoding:"utf8",windowsHide:!0}).trim():N(U.homedir(),"Documents");return N(t||N(U.homedir(),"Documents"),"PowerShell","profile.ps1")}async function Mr(){if(U.platform()==="win32"){let o=N(U.homedir(),"Documents","PowerShell","profile.ps1"),i=Ko();try{o=Go();let a=!1;for(let c of[o,N(Pr(Pr(o)),"WindowsPowerShell","profile.ps1")]){await qn(Pr(c),{recursive:!0});let u=Ke(c)?await Ir(c,"utf8"):"";u.includes(Nr)||(await zt(c,`${u.replace(/\n*$/,`
27
+ ${me(e)}`,{mode:384}),"added")}catch{return"missing"}}function ni(){return`${Lr}
28
+ $env:Path = '${I().replace(/'/g,"''")};' + $env:Path
29
+ `}function si(){let t=H.platform()==="win32"?Zl("powershell.exe",["-NoProfile","-NonInteractive","-Command","[Environment]::GetFolderPath('MyDocuments')"],{encoding:"utf8",windowsHide:!0}).trim():N(H.homedir(),"Documents");return N(t||N(H.homedir(),"Documents"),"PowerShell","profile.ps1")}async function Fr(){if(H.platform()==="win32"){let o=N(H.homedir(),"Documents","PowerShell","profile.ps1"),i=ni();try{o=si();let a=!1;for(let c of[o,N(Or(Or(o)),"WindowsPowerShell","profile.ps1")]){await qn(Or(c),{recursive:!0});let u=Ye(c)?await Dr(c,"utf8"):"";u.includes(Lr)||(await Zt(c,`${u.replace(/\n*$/,`
30
30
  `)}
31
- ${i}`),a=!0)}return{status:a?"added":"present",target:o,manual:i}}catch{return{status:"missing",target:o,manual:i}}}let t=process.env.SHELL??"",e=t.endsWith("/fish"),r=e?".config/fish/config.fish":t.endsWith("/zsh")?".zshrc":t.endsWith("/bash")?".bashrc":".profile",n=N(U.homedir(),r),s=await Bt(n,e);if(t.endsWith("/bash")&&s!=="missing"){let o=[".bash_profile",".bash_login",".profile"].map(a=>N(U.homedir(),a)).find(Ke)??N(U.homedir(),".bash_profile"),i=await Bt(o);if(i==="missing")return{status:"missing",target:o,manual:pe()};if(i==="added")return{status:"added",target:o,manual:pe()}}return{status:s,target:n,manual:pe(e)}}function ae(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:Sl(new URL("../bin/tkr-shim.js",import.meta.url))}var Or,Nr,Lr=E(()=>{"use strict";D();Jn();Or=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];Nr="# tokmizer-shim PATH (managed by tokmizer)"});var _i={};ee(_i,{TAP_FORMULA_PATHS:()=>yi,brewTapStatus:()=>Kl,formulaWedged:()=>wi});import{readFileSync as Hl}from"node:fs";function wi(t){return/^(?:<{7}|={7}|>{7})/m.test(t)}function Kl(t=yi){for(let e of t)try{return{path:e,wedged:wi(Hl(e,"utf8"))}}catch{}return null}var Vl,yi,vi=E(()=>{"use strict";Vl=["/opt/homebrew/Library/Taps","/usr/local/Homebrew/Library/Taps","/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps"],yi=Vl.map(t=>`${t}/norwelltw/homebrew-tokmizer/Formula/tokmizer.rb`)});function Wl(t){if(!t)return"*";let e=ki.get(t);return e===void 0&&(e=[...t].join(","),ki.set(t,e)),e}function bi(t,e,r){let n=`${t}::${Wl(r)}`,s=ht.get(n);if(s!==void 0)return s;let o=null;for(let i of e)r&&!r.has(_e(i.slug))||i.matchRegex.test(t)&&(!o||i.priority>o.priority)&&(o=i);if(ht.size>=Gl){let i=ht.keys().next().value;i&&ht.delete(i)}return ht.set(n,o),o}function xi(){ht.clear()}var ht,Gl,ki,Si=E(()=>{"use strict";kt();ht=new Map,Gl=256,ki=new WeakMap});import{createCipheriv as th,createDecipheriv as Jl,hkdfSync as ql,randomBytes as rh}from"node:crypto";function Ql(t){return Buffer.from(ql("sha256",Buffer.from(t,"utf8"),Yl,Xl,32))}function Ei(t,e){let r=Ql(e),n=Buffer.from(t,"base64url"),s=n.subarray(0,12),o=n.subarray(12,28),i=n.subarray(28),a=Jl("aes-256-gcm",r,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var Yl,Xl,Ai=E(()=>{"use strict";Yl=Buffer.from("tokmizer-bundle-enc-v1"),Xl=Buffer.from("rules-bundle")});import{chmodSync as ed,readFileSync as td,writeFileSync as rd,mkdirSync as nd,renameSync as sd}from"node:fs";import{join as Ti}from"node:path";function os(){return Ti(y(),"bundle-cache.json")}function Ri(t){try{let e=y();nd(e,{recursive:!0});let r={...t,fetchedAt:Date.now()},n=Ti(e,`bundle-cache.${process.pid}.tmp`);rd(n,JSON.stringify(r),{mode:384}),sd(n,os()),ed(os(),384)}catch{}}function Ci(){try{let t=td(os(),"utf8"),e=od.safeParse(JSON.parse(t));return e.success?e.data:null}catch{return null}}var od,$i=E(()=>{"use strict";nt();D();od=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1"),fetchedAt:f.number().int().nonnegative()})});var Pi={};ee(Pi,{BundleFetchError:()=>Ht,bundleExpired:()=>dd,fetchBundle:()=>pd,healOn401:()=>md,maxBundleAgeMs:()=>is,runtimeFromCache:()=>hd,runtimeFromEnvelope:()=>as});import{createPublicKey as id,verify as ad}from"node:crypto";function is(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?t:ld}function dd(t,e=Date.now()){return e-t.fetchedAt>is()}function fd(t,e){let r=At();if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let n=id({key:r,format:"pem"});if(!ad(null,Buffer.from(t.payload,"utf8"),n,Buffer.from(t.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Ei(t.payload,e))}async function md(t,e,r){if(t instanceof Ht&&(t.status===401||t.status===403))try{return await r.heartbeat(e),await r.fetchBundle(e)}catch(n){return r.log(`initial fetch failed after heartbeat: ${n.message}`),null}return r.log(`initial fetch failed: ${t.message}`),null}async function pd(t){let e=await R();if(!e||!e.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!e.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let r=await F("GET","/api/v1/rules/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:e.fingerprint??"0".repeat(64),installId:e.installId,timeoutMs:1e4});if(!r.ok)throw new Ht(r.status);let n=ud.parse(await r.json()),s=as(n,e.signingSecret);return Ri(n),s}function as(t,e){let r=fd(t,e),n=cd.parse(r);if(Date.now()-n.signedAt>is())throw new Error("tkr-daemon: rules bundle is stale");let s=new Map;for(let o of n.filters)s.set(o.slug,{...o,matchRegex:new RegExp(o.match_command)});return xi(),{bundleVersion:n.bundleVersion,signedAt:n.signedAt,ruleCount:s.size,startedAt:Date.now(),fetchedAt:Date.now(),selectFor:(o,i,a)=>bi(o,s.values(),a&&a.length>0?new Set(a):null)}}async function hd(){try{let t=Ci();if(!t)return null;let e=await R();return e?.signingSecret?as(t,e.signingSecret):null}catch{return null}}var cd,ud,ld,Ht,Ii=E(()=>{"use strict";nt();ln();Si();fe();He();Ai();$i();cd=f.object({bundleVersion:f.number().int().nonnegative(),signedAt:f.number().int(),filters:f.array(lr)}),ud=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1")}),ld=10080*60*1e3;Ht=class extends Error{status;constructor(e){super(`tkr-daemon: bundle fetch failed ${e}`),this.status=e}}});import Jo from"node:readline/promises";import{stdin as Qn,stdout as Z}from"node:process";import Cl from"node:os";import{join as $l}from"node:path";var z={welcome:"Link your Tokmizer account.",needToken:"Tokmizer already works on this device. Linking attaches it to your account.",getToken:"Sign in at tokmizer.com, then grab your key from your dashboard.",askToken:"Paste your dashboard key, then press Enter:",activating:"Linking...",activated:t=>`Linked. You are on the ${t} plan.`,failed:t=>`Activation failed: ${t}`,suspended:t=>`Your token is suspended. ${t}`,revoked:"Your token has been revoked. Contact support at tokmizer.com/contact",rotated:"Token rotated. Paste your new token from tokmizer.com/dashboard/token",offline:"Network required. Tokmizer needs an internet connection.",deviceCap:"Device limit reached. Manage devices at tokmizer.com/dashboard/devices"};function Ur(t,e){return t===null?e!==null?` \u26A0 engine offline \u2014 compression continues on ${e} cached rules (details: tkr doctor)
31
+ ${i}`),a=!0)}return{status:a?"added":"present",target:o,manual:i}}catch{return{status:"missing",target:o,manual:i}}}let t=process.env.SHELL??"",e=t.endsWith("/fish"),r=e?".config/fish/config.fish":t.endsWith("/zsh")?".zshrc":t.endsWith("/bash")?".bashrc":".profile",n=N(H.homedir(),r),s=await Ht(n,e);if(t.endsWith("/bash")&&s!=="missing"){let o=[".bash_profile",".bash_login",".profile"].map(a=>N(H.homedir(),a)).find(Ye)??N(H.homedir(),".bash_profile"),i=await Ht(o);if(i==="missing")return{status:"missing",target:o,manual:me()};if(i==="added")return{status:"added",target:o,manual:me()}}return{status:s,target:n,manual:me(e)}}function ie(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:Bl(new URL("../bin/tkr-shim.js",import.meta.url))}var Nr,Lr,jr=A(()=>{"use strict";P();Jn();Nr=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];Lr="# tokmizer-shim PATH (managed by tokmizer)"});var Ci={};ee(Ci,{TAP_FORMULA_PATHS:()=>Ai,brewTapStatus:()=>ad,formulaWedged:()=>Ti});import{readFileSync as od}from"node:fs";function Ti(t){return/^(?:<{7}|={7}|>{7})/m.test(t)}function ad(t=Ai){for(let e of t)try{return{path:e,wedged:Ti(od(e,"utf8"))}}catch{}return null}var id,Ai,Ri=A(()=>{"use strict";id=["/opt/homebrew/Library/Taps","/usr/local/Homebrew/Library/Taps","/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps"],Ai=id.map(t=>`${t}/norwelltw/homebrew-tokmizer/Formula/tokmizer.rb`)});function ud(t){if(!t)return"*";let e=$i.get(t);return e===void 0&&(e=[...t].join(","),$i.set(t,e)),e}function Pi(t,e,r){let n=`${t}::${ud(r)}`,s=yt.get(n);if(s!==void 0)return s;let o=null;for(let i of e)r&&!r.has(be(i.slug))||i.matchRegex.test(t)&&(!o||i.priority>o.priority)&&(o=i);if(yt.size>=cd){let i=yt.keys().next().value;i&&yt.delete(i)}return yt.set(n,o),o}function Ii(){yt.clear()}var yt,cd,$i,Oi=A(()=>{"use strict";xt();yt=new Map,cd=256,$i=new WeakMap});import{createCipheriv as Ah,createDecipheriv as ld,hkdfSync as dd,randomBytes as Th}from"node:crypto";function pd(t){return Buffer.from(dd("sha256",Buffer.from(t,"utf8"),fd,md,32))}function Di(t,e){let r=pd(e),n=Buffer.from(t,"base64url"),s=n.subarray(0,12),o=n.subarray(12,28),i=n.subarray(28),a=ld("aes-256-gcm",r,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var fd,md,Ni=A(()=>{"use strict";fd=Buffer.from("tokmizer-bundle-enc-v1"),md=Buffer.from("rules-bundle")});import{chmodSync as hd,readFileSync as gd,writeFileSync as yd,mkdirSync as wd,renameSync as vd}from"node:fs";import{join as Mi}from"node:path";function os(){return Mi(y(),"bundle-cache.json")}function Li(t){try{let e=y();wd(e,{recursive:!0});let r={...t,fetchedAt:Date.now()},n=Mi(e,`bundle-cache.${process.pid}.tmp`);yd(n,JSON.stringify(r),{mode:384}),vd(n,os()),hd(os(),384)}catch{}}function Fi(){try{let t=gd(os(),"utf8"),e=kd.safeParse(JSON.parse(t));return e.success?e.data:null}catch{return null}}var kd,ji=A(()=>{"use strict";st();P();kd=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1"),fetchedAt:f.number().int().nonnegative()})});var zi={};ee(zi,{BundleFetchError:()=>Gt,bundleExpired:()=>Ad,fetchBundle:()=>Rd,healOn401:()=>Cd,maxBundleAgeMs:()=>is,runtimeFromCache:()=>$d,runtimeFromEnvelope:()=>as});import{createPublicKey as bd,verify as _d}from"node:crypto";function is(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?t:Ed}function Ad(t,e=Date.now()){return e-t.fetchedAt>is()}function Td(t,e){let r=Ct();if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let n=bd({key:r,format:"pem"});if(!_d(null,Buffer.from(t.payload,"utf8"),n,Buffer.from(t.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Di(t.payload,e))}async function Cd(t,e,r){if(t instanceof Gt&&(t.status===401||t.status===403))try{return await r.heartbeat(e),await r.fetchBundle(e)}catch(n){return r.log(`initial fetch failed after heartbeat: ${n.message}`),null}return r.log(`initial fetch failed: ${t.message}`),null}async function Rd(t){let e=await T();if(!e||!e.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!e.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let r=await F("GET","/api/v1/rules/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:e.fingerprint??"0".repeat(64),installId:e.installId,timeoutMs:1e4});if(!r.ok)throw new Gt(r.status);let n=Sd.parse(await r.json()),s=as(n,e.signingSecret);return Li(n),s}function as(t,e){let r=Td(t,e),n=xd.parse(r);if(Date.now()-n.signedAt>is())throw new Error("tkr-daemon: rules bundle is stale");let s=new Map;for(let o of n.filters)s.set(o.slug,{...o,matchRegex:new RegExp(o.match_command)});return Ii(),{bundleVersion:n.bundleVersion,signedAt:n.signedAt,ruleCount:s.size,startedAt:Date.now(),fetchedAt:Date.now(),selectFor:(o,i,a)=>Pi(o,s.values(),a&&a.length>0?new Set(a):null)}}async function $d(){try{let t=Fi();if(!t)return null;let e=await T();return e?.signingSecret?as(t,e.signingSecret):null}catch{return null}}var xd,Sd,Ed,Gt,Ui=A(()=>{"use strict";st();dn();Oi();de();Ve();Ni();ji();xd=f.object({bundleVersion:f.number().int().nonnegative(),signedAt:f.number().int(),filters:f.array(fr)}),Sd=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1")}),Ed=10080*60*1e3;Gt=class extends Error{status;constructor(e){super(`tkr-daemon: bundle fetch failed ${e}`),this.status=e}}});import ii from"node:readline/promises";import{stdin as es,stdout as V}from"node:process";import Gl from"node:os";import{join as Yl}from"node:path";var Z={welcome:"Link your Tokmizer account.",needToken:"Tokmizer already works on this device. Linking attaches it to your account.",getToken:"Sign in at tokmizer.com, then grab your key from your dashboard.",askToken:"Paste your dashboard key, then press Enter:",activating:"Linking...",activated:t=>`Linked. You are on the ${t} plan.`,failed:t=>`Activation failed: ${t}`,suspended:t=>`Your token is suspended. ${t}`,revoked:"Your token has been revoked. Contact support at tokmizer.com/contact",rotated:"Token rotated. Paste your new token from tokmizer.com/dashboard/token",offline:"Network required. Tokmizer needs an internet connection.",deviceCap:"Device limit reached. Manage devices at tokmizer.com/dashboard/devices"};function Hr(t,e){return t===null?e!==null?` \u26A0 engine offline \u2014 compression continues on ${e} cached rules (details: tkr doctor)
32
32
  `:` \u26A0 optimizer engine offline \u2014 run: tkr doctor
33
33
  `:t===0?` \u26A0 optimizer engine reconnecting \u2014 savings resume shortly (details: tkr doctor)
34
- `:""}kt();Ze();fe();He();D();import{readFile as al,writeFile as No,mkdir as cl}from"node:fs/promises";He();fe();Ze();import{createPublicKey as fc,verify as mc}from"node:crypto";function pc(t,e){let r=At();if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let n=fc({key:r,format:"pem"});try{let s=Buffer.from(e,"base64url");return mc(null,Buffer.from(t,"utf8"),n,s)}catch{return!1}}var hc=/^[a-z0-9][a-z0-9-]*$/;async function $s(t){let e=await R();if(!e)throw new Error("Plugin not activated.");let r=await Y(),n=await F("GET","/api/v1/skills/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:8e3});if(!n.ok)throw new Error(`bundle fetch failed ${n.status}`);let s=await xe(n),o=[];for(let i of s.bundles){if(!hc.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((c,u)=>c.position-u.position);for(let c of a)if(!pc(c.body,c.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${c.position}]`);o.push({slug:i.slug,version:i.version,body:a.map(c=>c.body).join(`
34
+ `:""}xt();He();de();Ve();P();import{readFile as El,writeFile as Ko,mkdir as Al}from"node:fs/promises";Ve();de();He();import{createPublicKey as Ac,verify as Tc}from"node:crypto";function Cc(t,e){let r=Ct();if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let n=Ac({key:r,format:"pem"});try{let s=Buffer.from(e,"base64url");return Tc(null,Buffer.from(t,"utf8"),n,s)}catch{return!1}}var Rc=/^[a-z0-9][a-z0-9-]*$/;async function Ns(t){let e=await T();if(!e)throw new Error("Plugin not activated.");let r=await X(),n=await F("GET","/api/v1/skills/bundle",void 0,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:8e3});if(!n.ok)throw new Error(`bundle fetch failed ${n.status}`);let s=await Ee(n),o=[];for(let i of s.bundles){if(!Rc.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((c,u)=>c.position-u.position);for(let c of a)if(!Cc(c.body,c.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${c.position}]`);o.push({slug:i.slug,version:i.version,body:a.map(c=>c.body).join(`
35
35
 
36
- `)})}return o}D();import{chmod as rn,mkdir as ar,readFile as Tt,writeFile as cr,stat as nn,readdir as gc,rm as Is}from"node:fs/promises";var Os="managed-by: tokmizer",tn=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update"],yc=["power","tkr-reducer"];async function Ds(){try{let t=JSON.parse(await Tt(rr(),"utf8"));return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}catch{return[]}}async function Ns(t){try{await ar(y(),{recursive:!0}),await cr(rr(),JSON.stringify(t),{mode:384})}catch{}}var wc=3600*1e3,Ps=10080*60*1e3;function Ms(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?Math.min(t,Ps):Ps}async function Ls(t){try{let e=await nn(ve(t)),r=Date.now()-e.mtimeMs;return r<wc&&r<=Ms()}catch{return!1}}async function Fs(t,e){await ar(xt(),{recursive:!0}),await cr(ve(t),e,{mode:384}),await rn(ve(t),384)}async function Rt(t){let e=new Set(t),r;try{r=await gc(xt())}catch{return}for(let n of r){if(!n.endsWith(".md"))continue;let s=n.slice(0,-3);if(!e.has(s))try{await Is(ve(s))}catch{}}}async function js(t,e){await ar(nr(),{recursive:!0});try{if(!(await Tt(ke(t),"utf8")).includes(Os))return}catch{}await cr(ke(t),e,{mode:384}),await rn(ke(t),384);let r=await Ds();r.includes(t)||await Ns([...r,t])}async function Ct(t){let e=new Set([...t,...tn]),r=await Ds(),n=new Set([...r,...yc]);for(let s of n)if(!e.has(s))try{if(!(await Tt(ke(s),"utf8")).includes(Os))continue;await Is(ke(s))}catch{}await Ns(r.filter(s=>e.has(s)))}async function zs(){let t=0;for(let e of tn)await sn(e)&&t++;return{installed:t,total:tn.length}}async function sn(t){try{return await nn(ke(t)),!0}catch{return!1}}async function on(t){try{await ar(y(),{recursive:!0}),await cr(bt(),JSON.stringify({at:Date.now(),error:t}),{mode:384}),await rn(bt(),384)}catch{}}async function ur(){try{return JSON.parse(await Tt(bt(),"utf8"))}catch{return null}}async function Bs(t){try{let e=await nn(ve(t));return Date.now()-e.mtimeMs>Ms()?null:await Tt(ve(t),"utf8")}catch{return null}}import{chmod as Af,mkdir as Tf,readFile as _c,writeFile as Rf,stat as Zs,readdir as vc,rm as Us,rename as Cf}from"node:fs/promises";D();import{join as kc}from"node:path";var Hs=10080*60*1e3,bc=100*1024*1024,If=2*1024*1024,xc=/^[0-9a-f]{8,64}$/i;function an(t,e){let r=Number(process.env[t]);return Number.isFinite(r)&&r>0?r:e}async function Vs(t){if(!t)return{stderr:`usage: tkr restore <hash>
37
- `,code:1};let e=await Sc(t);return e==null?{stderr:`tkr restore: no cached content for ${t}
38
- `,code:1,restoredTokens:0}:{stdout:e,code:0,restoredTokens:Math.round(Buffer.byteLength(e,"utf8")/4)}}async function Sc(t){if(!xc.test(t))return null;try{let e=await Zs(tr(t));return Date.now()-e.mtimeMs>an("TOKMIZER_CCR_MAX_AGE_MS",Hs)?null:await _c(tr(t),"utf8")}catch{return null}}async function Ks(){let t;try{t=await vc(St())}catch{return}let e=an("TOKMIZER_CCR_MAX_AGE_MS",Hs),r=an("TOKMIZER_CCR_DIR_CAP_BYTES",bc),n=Date.now(),s=[];for(let i of t){let a=kc(St(),i);try{let c=await Zs(a);n-c.mtimeMs>e?await Us(a):s.push({path:a,mtimeMs:c.mtimeMs,size:c.size})}catch{}}let o=s.reduce((i,a)=>i+a.size,0);if(!(o<=r)){s.sort((i,a)=>i.mtimeMs-a.mtimeMs);for(let i of s){if(o<=r)break;try{await Us(i.path),o-=i.size}catch{}}}}fe();Ze();He();$t();async function Ys(t,e){let r=await R();if(!r)throw new Error("Not activated. Run: tkr link");let n=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await Y(),o=await F(t,"/api/v1/settings",e,{baseUrl:n,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!o.ok)throw new Error(`Settings ${t} failed: ${o.status}`);let i=await xe(o);return await Js(i.settings),i}async function Ve(){return Ys("GET")}async function Se(t){return Ys("PATCH",t)}var $c=new Set(["__proto__","constructor","prototype"]);function Pc(t,e,r){let n=e.split(".");if(n.some(o=>$c.has(o)))throw new Error(`invalid settings key: ${e}`);let s=t;for(let o=0;o<n.length-1;o++){let i=n[o];(typeof s[i]!="object"||s[i]===null)&&(s[i]={}),s=s[i]}s[n[n.length-1]]=r}function Ic(t){if(t==="true")return!0;if(t==="false")return!1;if(/^-?\d+$/.test(t))return Number.parseInt(t,10);if(t.startsWith("[")||t.startsWith("{"))try{return JSON.parse(t)}catch{}return t}function Xs(t,e){let r=Ic(e),n={};return Pc(n,t,r),n}at();var Oo="-command",Do=3;async function zn(){try{let{connectDaemon:t}=await Promise.resolve().then(()=>(lt(),ut)),e=await t();try{await e.reload()}finally{e.close()}}catch{}}async function Bn(t,e){if(!(!e&&await Ls("power"))){try{let r=await $s(t),n=[],s=[];for(let o of r)if(o.slug.endsWith(Oo)){let i=o.slug.slice(0,-Oo.length);await js(i,o.body),s.push(i)}else await Fs(o.slug,o.body),n.push(o.slug);await Rt(n),await Ct(s),await on(null)}catch(r){await on(r instanceof Error?r.message:String(r))}try{await Ks()}catch{}}}async function ul(t,e){let r;for(let n=0;n<e.attempts;n++)try{return await t()}catch(s){if(r=s,n===e.attempts-1)break;let o=500*Math.pow(3,n)+Math.floor(Math.random()*300);await new Promise(i=>setTimeout(i,o))}throw r}async function Tr(t){let e=await Y(),r=Et(),n={token:t.token,...t.email?{email:t.email}:{},pluginVersion:X,timeZone:r,...e},s=await ul(()=>F("POST","/api/v1/license/activate",n,{baseUrl:t.baseUrl,bearer:t.token,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:1e4}),{attempts:3});if(!s.ok){if(s.status>=500)throw new Error("Tokmizer servers are temporarily unreachable. Try again in a minute.");let a=await s.text();throw ll(a)==="device_cap"?new Error(z.deviceCap):new Error(z.failed(`${s.status} ${a}`))}let o=await xe(s),i={token:t.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:X,...t.email||o.boundEmail?{email:t.email??o.boundEmail??""}:{},timeZone:r,bonusActive:!1,linked:!0,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(_e)}:{}};return await or(i),await zn(),await Bn(t.baseUrl,!0),i}function ll(t){try{let e=JSON.parse(t);return typeof e.code=="string"?e.code:null}catch{return null}}function dl(t){try{return new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}async function Ft(t,e){let r=await R();return r&&r.token!==t.token?!1:(await or(e),!0)}async function Un(t){let e=await R();if(!e)return null;let r=await Y(),n=e.timeZone??Et(),s={ts:Date.now(),localDate:dl(n),timeZone:n},o;try{o=await F("POST","/api/v1/license/heartbeat",s,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:5e3})}catch{return e}if(o.status===401){let v=(e.heartbeatAuthFails??0)+1,k={...e,heartbeatAuthFails:v},A=e.linked??(!!e.email||e.plan==="smart"||e.plan==="pro");if(v>=Do&&A&&(k.relinkRequired=!0),!await Ft(e,k))return null;if(v>=Do&&!A){try{await No(`${y()}/state.replaced.json`,JSON.stringify(e),{mode:384})}catch{}try{return await Mo(t)}catch{return null}}return null}if(o.status===451){let v=await R();if(v&&v.token!==e.token)return null;await ir();try{await Rt([]),await Ct([])}catch{}return null}if(o.status===426)return await Ft(e,{...e,updateRequired:!0}),null;if(o.status===423)return await Ft(e,{...e,relinkRequired:!0}),null;if(!o.ok){if(o.status===400)try{(await o.json())?.code==="stale_ts"&&await Ft(e,{...e,clockSkewDetected:!0})}catch{}return e}let i;try{i=await xe(o)}catch{return e}let a=i.settingsRevision??0,c=e.lastSettingsRevision??0,u=a>c,d=i.plan!==e.plan,_={...e,jwt:i.jwt,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:n,bonusActive:i.bonusActive??!1,...i.bonusResetAt!==void 0?{bonusResetAt:i.bonusResetAt}:{},...i.latestPluginVersion?{latestPluginVersion:i.latestPluginVersion}:{},...Array.isArray(i.allowedFilters)?{allowedFilters:i.allowedFilters.map(_e)}:{}};if(u)try{await Ve(),_.lastSettingsRevision=a}catch{}if(!await Ft(e,_))return R();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:v}=await Promise.resolve().then(()=>(wr(),yr));v()}catch{}(u||d)&&await zn(),await Bn(t,u||d);try{let{flushTelemetry:v}=await Promise.resolve().then(()=>(Ar(),$o)),{flush:k}=await Promise.resolve().then(()=>(Io(),Po));await v(t),await k(t)}catch{}return _}var fl=5*6e4;function ml(){return process.env.TOKMIZER_BASE_URL??"https://tokmizer.com"}async function Mo(t){let e=await Y(),r=Et(),n={pluginVersion:X,timeZone:r,...e},s=await F("POST","/api/v1/license/enroll",n,{baseUrl:t,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let o=await xe(s),i={token:o.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:X,email:"",timeZone:r,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(_e)}:{}};return await or(i),await zn(),await Bn(t,!0),i}function pl(){let t=process.env.CI;return t&&t!=="false"&&t!=="0"?!0:!!process.env.GITHUB_ACTIONS}async function me(t){let e=await R();if(e)return e;if(pl())return null;let r=qr();try{let n=await al(r,"utf8"),s=Number(n);if(Number.isFinite(s)&&Date.now()-s<fl)return null}catch{}try{return await Mo(t??ml())}catch{return await cl(y(),{recursive:!0}),await No(r,String(Date.now()),{mode:384}),null}}fe();import gl from"node:readline/promises";import{stdin as yl,stdout as B}from"node:process";function Rr(t,e=!1){return!0}fe();function hl(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function Lo(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>hl())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function Cr(t,e=Date.now()){return t.plan}function $r(t,e=Date.now()){return t.bonusActive??!1}var wl={enabled:!0,outputVerbosity:"compact",filters:{enableAll:!0,disabled:[]}},_l=`
36
+ `)})}return o}P();import{chmod as nn,mkdir as cr,readFile as Rt,writeFile as ur,stat as sn,readdir as $c,rm as Ls}from"node:fs/promises";var Fs="managed-by: tokmizer",rn=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],Pc=["power","tkr-reducer"];async function js(){try{let t=JSON.parse(await Rt(nr(),"utf8"));return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}catch{return[]}}async function zs(t){try{await cr(y(),{recursive:!0}),await ur(nr(),JSON.stringify(t),{mode:384})}catch{}}var Ic=3600*1e3,Ms=10080*60*1e3;function Us(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?Math.min(t,Ms):Ms}async function Bs(t){try{let e=await sn(_e(t)),r=Date.now()-e.mtimeMs;return r<Ic&&r<=Us()}catch{return!1}}async function Zs(t,e){await cr(Et(),{recursive:!0}),await ur(_e(t),e,{mode:384}),await nn(_e(t),384)}async function $t(t){let e=new Set(t),r;try{r=await $c(Et())}catch{return}for(let n of r){if(!n.endsWith(".md"))continue;let s=n.slice(0,-3);if(!e.has(s))try{await Ls(_e(s))}catch{}}}async function Hs(t,e){await cr(sr(),{recursive:!0});try{if(!(await Rt(xe(t),"utf8")).includes(Fs))return}catch{}await ur(xe(t),e,{mode:384}),await nn(xe(t),384);let r=await js();r.includes(t)||await zs([...r,t])}async function Pt(t){let e=new Set([...t,...rn]),r=await js(),n=new Set([...r,...Pc]);for(let s of n)if(!e.has(s))try{if(!(await Rt(xe(s),"utf8")).includes(Fs))continue;await Ls(xe(s))}catch{}await zs(r.filter(s=>e.has(s)))}async function Vs(){let t=0;for(let e of rn)await on(e)&&t++;return{installed:t,total:rn.length}}async function on(t){try{return await sn(xe(t)),!0}catch{return!1}}async function an(t){try{await cr(y(),{recursive:!0}),await ur(St(),JSON.stringify({at:Date.now(),error:t}),{mode:384}),await nn(St(),384)}catch{}}async function lr(){try{return JSON.parse(await Rt(St(),"utf8"))}catch{return null}}async function dr(t){try{let e=await sn(_e(t));return Date.now()-e.mtimeMs>Us()?null:await Rt(_e(t),"utf8")}catch{return null}}import{chmod as Gf,mkdir as Yf,readFile as Fc,writeFile as Wf,stat as Ws,readdir as jc,rm as Ys,rename as Jf}from"node:fs/promises";P();import{join as zc}from"node:path";P();import{randomUUID as Oc}from"node:crypto";import{readFileSync as Dc}from"node:fs";import{mkdir as Nc,rename as Mc,rm as Ks,writeFile as Lc}from"node:fs/promises";import{join as Gs}from"node:path";function lt(){try{return Dc(Gs(y(),"yolo-mode"),"utf8")==="on"}catch{return!1}}async function Ke(t){let e=y(),r=Gs(e,"yolo-mode");if(!t){await Ks(r,{force:!0});return}await Nc(e,{recursive:!0,mode:448});let n=`${r}.tmp-${process.pid}-${Oc()}`;try{await Lc(n,"on",{mode:384,flag:"wx"}),await Mc(n,r)}finally{await Ks(n,{force:!0})}}var Js=10080*60*1e3,Uc=100*1024*1024,em=2*1024*1024,Bc=/^[0-9a-f]{8,64}$/i;function cn(t,e){let r=Number(process.env[t]);return Number.isFinite(r)&&r>0?r:e}async function qs(t){if(!t)return{stderr:`usage: tkr restore <hash>
37
+ `,code:1};let e=await Zc(t);return e==null?{stderr:`tkr restore: no cached content for ${t}
38
+ `,code:1,restoredTokens:0}:{stdout:e,code:0,restoredTokens:Math.round(Buffer.byteLength(e,"utf8")/4)}}async function Zc(t){if(!Bc.test(t))return null;try{let e=await Ws(rr(t));return Date.now()-e.mtimeMs>cn("TOKMIZER_CCR_MAX_AGE_MS",Js)?null:await Fc(rr(t),"utf8")}catch{return null}}async function Xs(){let t;try{t=await jc(At())}catch{return}let e=cn("TOKMIZER_CCR_MAX_AGE_MS",Js),r=cn("TOKMIZER_CCR_DIR_CAP_BYTES",Uc),n=Date.now(),s=[];for(let i of t){let a=zc(At(),i);try{let c=await Ws(a);n-c.mtimeMs>e?await Ys(a):s.push({path:a,mtimeMs:c.mtimeMs,size:c.size})}catch{}}let o=s.reduce((i,a)=>i+a.size,0);if(!(o<=r)){s.sort((i,a)=>i.mtimeMs-a.mtimeMs);for(let i of s){if(o<=r)break;try{await Ys(i.path),o-=i.size}catch{}}}}de();He();Ve();Ot();async function co(t,e){let r=await T();if(!r)throw new Error("Not activated. Run: tkr link");if(r.linked===!1){if(t==="GET")return{plan:r.plan,settings:await j()};let a=await io(e);return{plan:r.plan,settings:a}}let n=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await X(),o=await F(t,"/api/v1/settings",e,{baseUrl:n,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!o.ok)throw new Error(`Settings ${t} failed: ${o.status}`);let i=await Ee(o);return await ln(i.settings),i}async function Ge(){return co("GET")}async function Ae(t){return co("PATCH",t)}var Yc=new Set(["__proto__","constructor","prototype"]);function Wc(t,e,r){let n=e.split(".");if(n.some(o=>Yc.has(o)))throw new Error(`invalid settings key: ${e}`);let s=t;for(let o=0;o<n.length-1;o++){let i=n[o];(typeof s[i]!="object"||s[i]===null)&&(s[i]={}),s=s[i]}s[n[n.length-1]]=r}function Jc(t){if(t==="true")return!0;if(t==="false")return!1;if(/^-?\d+$/.test(t))return Number.parseInt(t,10);if(t.startsWith("[")||t.startsWith("{"))try{return JSON.parse(t)}catch{}return t}function uo(t,e){let r=Jc(e),n={};return Wc(n,t,r),n}ut();var Ho="-command",Vo=3;async function Un(){try{let{connectDaemon:t}=await Promise.resolve().then(()=>(pt(),mt)),e=await t();try{await e.reload()}finally{e.close()}}catch{}}async function Bn(t,e){if(!(!e&&await Bs("power"))){try{let r=await Ns(t),n=[],s=[];for(let o of r)if(o.slug.endsWith(Ho)){let i=o.slug.slice(0,-Ho.length);await Hs(i,o.body),s.push(i)}else await Zs(o.slug,o.body),n.push(o.slug);await $t(n),await Pt(s),await an(null)}catch(r){await an(r instanceof Error?r.message:String(r))}try{await Xs()}catch{}}}async function Tl(t,e){let r;for(let n=0;n<e.attempts;n++)try{return await t()}catch(s){if(r=s,n===e.attempts-1)break;let o=500*Math.pow(3,n)+Math.floor(Math.random()*300);await new Promise(i=>setTimeout(i,o))}throw r}async function Rr(t){let e=await X(),r=Tt(),n={token:t.token,...t.email?{email:t.email}:{},pluginVersion:Q,timeZone:r,...e},s=await Tl(()=>F("POST","/api/v1/license/activate",n,{baseUrl:t.baseUrl,bearer:t.token,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:1e4}),{attempts:3});if(!s.ok){if(s.status>=500)throw new Error("Tokmizer servers are temporarily unreachable. Try again in a minute.");let a=await s.text();throw Cl(a)==="device_cap"?new Error(Z.deviceCap):new Error(Z.failed(`${s.status} ${a}`))}let o=await Ee(s),i={token:t.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:Q,...t.email||o.boundEmail?{email:t.email??o.boundEmail??""}:{},timeZone:r,bonusActive:!1,linked:!0,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(be)}:{}};return await ir(i),await Un(),await Bn(t.baseUrl,!0),i}function Cl(t){try{let e=JSON.parse(t);return typeof e.code=="string"?e.code:null}catch{return null}}function Rl(t){try{return new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}async function Ut(t,e){let r=await T();return r&&r.token!==t.token?!1:(await ir(e),!0)}async function Zn(t){let e=await T();if(!e)return null;let r=await X(),n=e.timeZone??Tt(),s={ts:Date.now(),localDate:Rl(n),timeZone:n},o;try{o=await F("POST","/api/v1/license/heartbeat",s,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:5e3})}catch{return e}if(o.status===401){let w=(e.heartbeatAuthFails??0)+1,h={...e,heartbeatAuthFails:w},C=e.linked??(!!e.email||e.plan==="smart"||e.plan==="pro");if(w>=Vo&&C&&(h.relinkRequired=!0),!await Ut(e,h))return null;if(w>=Vo&&!C){try{await Ko(`${y()}/state.replaced.json`,JSON.stringify(e),{mode:384})}catch{}try{return await Go(t)}catch{return null}}return null}if(o.status===451){let w=await T();if(w&&w.token!==e.token)return null;await ar();try{await $t([]),await Pt([])}catch{}return null}if(o.status===426)return await Ut(e,{...e,updateRequired:!0}),null;if(o.status===423)return await Ut(e,{...e,relinkRequired:!0}),null;if(!o.ok){if(o.status===400)try{(await o.json())?.code==="stale_ts"&&await Ut(e,{...e,clockSkewDetected:!0})}catch{}return e}let i;try{i=await Ee(o)}catch{return e}let a=i.settingsRevision??0,c=e.lastSettingsRevision??0,u=a>c,l=i.plan!==e.plan,v={...e,jwt:i.jwt,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:n,bonusActive:i.bonusActive??!1,...i.bonusResetAt!==void 0?{bonusResetAt:i.bonusResetAt}:{},...i.latestPluginVersion?{latestPluginVersion:i.latestPluginVersion}:{},...Array.isArray(i.allowedFilters)?{allowedFilters:i.allowedFilters.map(be)}:{}};if(u)try{await Ge(),v.lastSettingsRevision=a}catch{}if(!await Ut(e,v))return T();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:w}=await Promise.resolve().then(()=>(kr(),vr));w()}catch{}(u||l)&&await Un(),await Bn(t,u||l);try{let{flushTelemetry:w}=await Promise.resolve().then(()=>(Cr(),Uo)),{flush:h}=await Promise.resolve().then(()=>(Zo(),Bo));await w(t),await h(t)}catch{}return v}var $l=5*6e4;function Pl(){return process.env.TOKMIZER_BASE_URL??"https://tokmizer.com"}async function Go(t){let e=await X(),r=Tt(),n={pluginVersion:Q,timeZone:r,...e},s=await F("POST","/api/v1/license/enroll",n,{baseUrl:t,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let o=await Ee(s),i={token:o.token,jwt:o.jwt,signingSecret:o.signingSecret,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:Q,email:"",timeZone:r,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(o.allowedFilters)&&o.allowedFilters.length>0?{allowedFilters:o.allowedFilters.map(be)}:{}};return await ir(i),await Un(),await Bn(t,!0),i}function Il(){let t=process.env.CI;return t&&t!=="false"&&t!=="0"?!0:!!process.env.GITHUB_ACTIONS}async function fe(t){let e=await T();if(e)return e;if(Il())return null;let r=qr();try{let n=await El(r,"utf8"),s=Number(n);if(Number.isFinite(s)&&Date.now()-s<$l)return null}catch{}try{return await Go(t??Pl())}catch{return await Al(y(),{recursive:!0}),await Ko(r,String(Date.now()),{mode:384}),null}}de();import Dl from"node:readline/promises";import{stdin as Nl,stdout as z}from"node:process";function $r(t,e=!1){return!0}de();function Ol(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function Yo(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>Ol())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function Pr(t,e=Date.now()){return t.plan}function Ir(t,e=Date.now()){return t.bonusActive??!1}var Ml={enabled:!0,outputVerbosity:"compact",filters:{enableAll:!0,disabled:[]}},Ll=`
39
39
  Help improve Tokmizer
40
40
  We can collect the NAME of the commands you run, like "git" or "docker",
41
41
  and whether we managed to compress them. Never their arguments, your output,
@@ -43,132 +43,153 @@ your file paths, or anything inside them. It just shows us which commands to
43
43
  optimize next, so you save even more over time. You can change this anytime
44
44
  in your settings.
45
45
 
46
- `;async function vl(t){return B.write(_l),Zn(t,"Share anonymous command names to help improve filters?",!0)}async function Fo(t,e,r){let n=(await t.question(`${e} [${r}]: `)).trim();return n.length===0?r:n}async function Zn(t,e,r){let n=r?"Y/n":"y/N",s=(await t.question(`${e} [${n}]: `)).trim().toLowerCase();return s===""?r:s==="y"||s==="yes"}async function kl(t,e,r,n){let s=(await t.question(`${e} (${r.join(" / ")}) [${n}]: `)).trim().toLowerCase();return s.length===0?n:r.find(i=>i===s)??n}async function bl(t,e,r){B.write(`
46
+ `;async function Fl(t){return z.write(Ll),Hn(t,"Share anonymous command names to help improve filters?",!0)}async function Wo(t,e,r){let n=(await t.question(`${e} [${r}]: `)).trim();return n.length===0?r:n}async function Hn(t,e,r){let n=r?"Y/n":"y/N",s=(await t.question(`${e} [${n}]: `)).trim().toLowerCase();return s===""?r:s==="y"||s==="yes"}async function jl(t,e,r,n){let s=(await t.question(`${e} (${r.join(" / ")}) [${n}]: `)).trim().toLowerCase();return s.length===0?n:r.find(i=>i===s)??n}async function zl(t,e,r){z.write(`
47
47
  Let us walk through each setting. Press Enter to keep the default.
48
48
 
49
- `);let n=await Zn(t,"Enable Tokmizer optimizations?",!0),s=await kl(t,"Output verbosity",["normal","compact","minimal"],"normal"),o=await Zn(t,"Enable all built-in filters?",!0),i=[];o||(i=(await Fo(t,"Comma-separated slugs to DISABLE (e.g. git,grep)","")).split(",").map(u=>u.trim()).filter(u=>u.length>0));let a={enabled:n,outputVerbosity:s,filters:{enableAll:o,disabled:i}};return Rr(e,r)?B.write(`
49
+ `);let n=await Hn(t,"Enable Tokmizer optimizations?",!0),s=await jl(t,"Output verbosity",["normal","compact","minimal"],"normal"),o=await Hn(t,"Enable all built-in filters?",!0),i=[];o||(i=(await Wo(t,"Comma-separated slugs to DISABLE (e.g. git,grep)","")).split(",").map(u=>u.trim()).filter(u=>u.length>0));let a={enabled:n,outputVerbosity:s,filters:{enableAll:o,disabled:i}};return $r(e,r)?z.write(`
50
50
  /power is available right now on this token.
51
- `):e==="smart"&&B.write(`
51
+ `):e==="smart"&&z.write(`
52
52
  /power is included with Pro.
53
53
  It is NOT available on this token today.
54
- `),a}async function Hn(t,e=!1){let r=gl.createInterface({input:yl,output:B});try{let n=e?" (bonus window active)":"";B.write(`
54
+ `),a}async function Vn(t,e=!1){let r=Dl.createInterface({input:Nl,output:z});try{let n=e?" (bonus window active)":"";z.write(`
55
55
  Configure Tokmizer (current plan: ${t}${n})
56
56
 
57
- `),B.write(` 1) Recommended - sane defaults, ready to go
58
- `),B.write(` 2) Custom - walk through each option
57
+ `),z.write(` 1) Recommended - sane defaults, ready to go
58
+ `),z.write(` 2) Custom - walk through each option
59
59
 
60
- `);let o=await Fo(r,"Choose 1 or 2","1")==="2"?await bl(r,t,e):{...wl},i=await vl(r),a={...o,telemetryOptIn:i};B.write(`
60
+ `);let o=await Wo(r,"Choose 1 or 2","1")==="2"?await zl(r,t,e):{...Ml},i=await Fl(r),a={...o,telemetryOptIn:i};z.write(`
61
61
  Saving...
62
- `);let c=await Se(a);B.write(`Done.
63
- `),B.write(`${JSON.stringify(c.settings,null,2)}
64
- `),B.write(`
62
+ `);let c=await Ae(a);await Ke(!1),z.write(`Done.
63
+ `),z.write(`YOLO: off (this machine only)
64
+ `),z.write(`${JSON.stringify(c.settings,null,2)}
65
+ `),z.write(`
65
66
  You can re-run this any time with: tkr settings configure
66
- `),B.write(`Or edit at: https://tokmizer.com/dashboard/settings
67
- `)}finally{r.close()}}async function jo(){let t=await Ve(),e=await R(),r=e?Cr({...e,plan:t.plan}):t.plan,n=e?$r(e):!1;await Hn(r,n)}Lr();async function qo(t){let e=await R();if(e){Z.write(z.activated(e.plan)+`
68
- `);return}let r=Jo.createInterface({input:Qn,output:Z}),n=null,s=!1;try{Z.write(`${z.welcome}
69
- ${z.needToken}
70
- ${z.getToken}
67
+ `),z.write((await T())?.linked===!1?`These settings are saved only on this machine.
68
+ `:`Or edit at: https://tokmizer.com/dashboard/settings
69
+ `)}finally{r.close()}}async function Jo(){let t=await Ge(),e=await T(),r=e?Pr({...e,plan:t.plan}):t.plan,n=e?Ir(e):!1;await Vn(r,n)}jr();async function ai(t){let e=await T();if(e){V.write(Z.activated(e.plan)+`
70
+ `);return}let r=ii.createInterface({input:es,output:V}),n=null,s=!1;try{V.write(`${Z.welcome}
71
+ ${Z.needToken}
72
+ ${Z.getToken}
71
73
 
72
- `);let o=(await r.question(`${z.askToken} `)).trim();Z.write(`${z.activating}
73
- `);let i=await Tr({token:o,baseUrl:t});Z.write(z.activated(i.plan)+`
74
- `),n=i.plan,s=i.bonusActive??!1}catch(o){let i=o instanceof Error?o.message:String(o);Z.write(`${i}
75
- `),process.exitCode=1}finally{r.close()}n&&(await Hn(n,s),await Pl())}async function Pl(){try{if(Qn.isTTY){let t=Jo.createInterface({input:Qn,output:Z});try{let e=(await t.question("Also optimize your commands outside the agent (terminal)? [y/N] ")).trim().toLowerCase();if(e==="y"||e==="yes"){let r=await Ge(ae());Z.write(`Installed ${r.length} shims.
76
- `);let n=$l(Cl.homedir(),(process.env.SHELL??"").includes("zsh")?".zshrc":".bashrc"),s=await Bt(n);s==="added"?Z.write(`Added PATH to ${n}. Open a new terminal.
77
- `):s==="missing"&&Z.write(`Add this to your shell rc:
78
- ${pe()}`)}}finally{t.close()}}}catch{}try{let{connectDaemon:t}=await Promise.resolve().then(()=>(lt(),ut)),e=await t();await e.ping(),e.close(),Z.write(` Engine: \u2705 active
79
- `)}catch{Z.write(` Engine: starts on first use
80
- `)}Z.write(`
74
+ `);let o=(await r.question(`${Z.askToken} `)).trim();V.write(`${Z.activating}
75
+ `);let i=await Rr({token:o,baseUrl:t});V.write(Z.activated(i.plan)+`
76
+ `),n=i.plan,s=i.bonusActive??!1}catch(o){let i=o instanceof Error?o.message:String(o);V.write(`${i}
77
+ `),process.exitCode=1}finally{r.close()}n&&(await Vn(n,s),await Wl())}async function Wl(){try{if(es.isTTY){let t=ii.createInterface({input:es,output:V});try{let e=(await t.question("Also optimize your commands outside the agent (terminal)? [y/N] ")).trim().toLowerCase();if(e==="y"||e==="yes"){let r=await We(ie());V.write(`Installed ${r.length} shims.
78
+ `);let n=Yl(Gl.homedir(),(process.env.SHELL??"").includes("zsh")?".zshrc":".bashrc"),s=await Ht(n);s==="added"?V.write(`Added PATH to ${n}. Open a new terminal.
79
+ `):s==="missing"&&V.write(`Add this to your shell rc:
80
+ ${me()}`)}}finally{t.close()}}}catch{}try{let{connectDaemon:t}=await Promise.resolve().then(()=>(pt(),mt)),e=await t();await e.ping(),e.close(),V.write(` Engine: \u2705 active
81
+ `)}catch{V.write(` Engine: starts on first use
82
+ `)}V.write(`
81
83
  \u2705 Ready. tokmizer optimizes your commands automatically.
82
84
  Run "tkr gain" anytime to see your savings.
83
- `)}fe();at();Ze();He();Jn();import{readFile as ei,rm as Ol}from"node:fs/promises";hr();D();import{join as Dl}from"node:path";var mt={anthropic:3,openai:2.5,google:2,vertex:3.3,bedrock:3.5,openrouter:3.5},Il={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Yo(t){return t?Il[t]??"anthropic":"anthropic"}function es(t){let e=0,r=0;for(let n of Object.keys(t)){let s=t[n]??0;s<=0||(e+=s,r+=s/1e6*(mt[n]??mt.anthropic))}return e<=0?mt.anthropic:r/(e/1e6)}var Nl="stats.jsonl",Xo=2e4,jp=2*1024*1024;async function ti(t){let r=(await ei(t,"utf8")).split(`
84
- `).filter(n=>n.trim()!=="");return r.length>Xo?r.slice(r.length-Xo):r}function ns(){return Dl(y(),Nl)}async function ri(t=ns()){try{let r=(await ei(t,"utf8")).split(`
85
- `).filter(n=>n.trim()!=="").length;return await Ol(t,{force:!0}),r}catch{return 0}}function Ml(t,e,r){return typeof t=="number"&&t>0?Math.max(1,Math.ceil((e-t)/86400)):Math.max(1,r)}function ss(t,e,r){return{...t,sinceDays:Ml(e,r,t.sinceDays)}}function Ll(t,e,r){return t<=0||e<=0||r<=0?0:t/e*30/1e6*r}var Qo=4.99,Fl=9.99;function ni(t){return t==="pro"?{priceUsd:Fl,label:"Pro plan",upsell:!1}:t==="smart"?{priceUsd:Qo,label:"Smart plan",upsell:!1}:{priceUsd:Qo,label:"Smart plan",upsell:!0}}function Q(t){return Math.ceil(t/4)}function si(t){if(!t.count)return null;let e=Math.round(t.compressedCount/t.count*100),r=(t.byCommand??[]).filter(s=>!s.native&&s.compressedCount===0).sort((s,o)=>o.count-s.count).slice(0,3).map(s=>s.cmd),n=r.length?` \xB7 top uncovered: ${r.join(", ")}`:"";return`${e}% of runs compressed (${t.compressedCount}/${t.count})${n}`}async function Zt(t=ns(),e=0){let r;try{r=await ti(t)}catch{return{count:0,compressedCount:0,rawTokens:0,filteredTokens:0,savedTokens:0,modeledSavedTokens:0,savedPct:0,sinceDays:1,savedByProvider:{},shellCompressedCount:0,shellSavedPct:0,byCommand:[]}}let n=0,s=0,o=0,i=0,a=0,c=0,u=0,d=0,_=0,v=new Map,k=Number.POSITIVE_INFINITY,A=new Map;for(let Ae of r){let j=Ae.trim();if(j)try{let T=JSON.parse(j);if(typeof T.t!="number"||typeof T.r!="number"||typeof T.f!="number"||T.t<e)continue;if(T.m!==1){if(n+=1,typeof T.c=="string"&&T.c){let K=v.get(T.c)??{count:0,cc:0,r:0,f:0,sh:!1};K.count+=1,T.f<T.r&&(K.cc+=1),T.k==="sh"&&(K.sh=!0),K.r+=T.r,K.f+=T.f,v.set(T.c,K)}if(T.f<T.r){s+=1,o+=T.r,i+=T.f,T.k==="sh"&&(_+=1,u+=T.r,d+=T.f);let K=Yo(typeof T.h=="string"?T.h:void 0),Br=A.get(K)??{r:0,f:0};Br.r+=T.r,Br.f+=T.f,A.set(K,Br)}}else a+=T.r,c+=T.f;T.t<k&&(k=T.t)}catch{continue}}let C=Q(o),I=Q(i),Ee=Math.max(0,C-I),Vt=C?Math.round(Ee/C*100):0,Kt=Math.floor(Date.now()/1e3),Gt=Number.isFinite(k)?Math.max(1,Math.ceil((Kt-k)/86400)):1,jr=Math.max(0,Q(a)-Q(c)),V={};for(let[Ae,j]of A)V[Ae]=Math.max(0,Q(j.r)-Q(j.f));let gt=[...v.entries()].map(([Ae,j])=>{let T=Q(j.r),K=Math.max(0,T-Q(j.f));return{cmd:Ae,count:j.count,compressedCount:j.cc,savedTokens:K,avgPct:T?Math.round(K/T*100):0,native:!j.sh}}).sort((Ae,j)=>j.savedTokens-Ae.savedTokens).slice(0,10),zr=Q(u),Oi=zr?Math.round((zr-Q(d))/zr*100):0;return{count:n,compressedCount:s,rawTokens:C,filteredTokens:I,savedTokens:Ee,modeledSavedTokens:jr,savedPct:Vt,sinceDays:Gt,savedByProvider:V,shellCompressedCount:_,shellSavedPct:Oi,byCommand:gt}}function pt(t){return t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t)}function ts(t){return t<=0?"~$0":t<1?"~$1":"~$"+Math.round(t)}function rs(t){return String(t).replace(/\B(?=(\d{3})+(?!\d))/g,",")}var oi="\x1B[38;2;245;176;65m",ii="\x1B[0m",We=32;function Fr(t,e){let r="\u2588".repeat(t);return e?`${oi}${r}${ii}`:r}function ai(t,e){if(t.count===0)return` No data yet. Run a few commands \u2014 tkr counts your savings quietly.
86
- Watch this session live: tkr session`;let r=ts(t.savedTokens/1e6*e.pricePerMtok),n=pt(t.rawTokens)+" tokens",s=pt(t.filteredTokens)+" tokens",o=We,i=t.rawTokens>0?Math.max(1,Math.round(We*(t.filteredTokens/t.rawTokens))):1,a=" ".repeat(We-o),c=" ".repeat(We-i),u=" tokmizer \xB7 your savings",d=e.subtitle??`since install \xB7 ${t.sinceDays}d`,_=" "+"\u2500".repeat(61),v=t.sinceDays>=3?Ll(t.savedTokens,t.sinceDays,e.pricePerMtok):0,k=v>0?` ${"At this pace".padEnd(16)} ${ts(v)} / month`:null,A=v>0&&e.plan&&e.plan.priceUsd>0?v/e.plan.priceUsd:0,C=A>=1&&e.plan?e.plan.upsell?` ${"Covers".padEnd(16)} ${A.toFixed(1)}\xD7 the ${e.plan.label} ($${e.plan.priceUsd}/mo) \xB7 link to bank it`:` ${"Pays for itself".padEnd(16)} ${A.toFixed(1)}\xD7 your ${e.plan.label} ($${e.plan.priceUsd}/mo)`:null,I=Object.entries(t.savedByProvider??{}).filter(([,V])=>V>0).map(([V,gt])=>({prov:V,usd:gt/1e6*(mt[V]??mt.anthropic)})).sort((V,gt)=>gt.usd-V.usd),Ee=I.length>=2?I.map(V=>`${V.prov} ${ts(V.usd)}`).join(" \xB7 "):null,Vt=Math.min(We,Math.max(1,Math.round(We*t.savedPct/100))),Kt=!!(t.shellCompressedCount&&t.shellSavedPct),Gt=Kt?t.shellSavedPct:t.savedPct,jr=Kt?` \u2212${Gt} % shell noise removed${t.shellSavedPct!==t.savedPct?` \xB7 all tools \u2212${t.savedPct} %`:""}`:` \u2212${Gt} % noise removed`;return[`${u}${" ".repeat(Math.max(2,40-u.length))}${d}`,_,"",jr,"",` ${"Without tokmizer".padEnd(16)} ${Fr(o,e.color)}${a} ${n}`,` ${"With tokmizer".padEnd(16)} ${Fr(i,e.color)}${c} ${s}`,"",` ${"Saved".padEnd(16)} ${pt(t.savedTokens)} tokens \u2248 ${r} \xB7 \u2212${t.savedPct} % overall`,...Ee?[` ${"By provider".padEnd(16)} ${Ee}`]:[],` ${"Efficiency".padEnd(16)} ${Fr(Vt,e.color)}${"\u2591".repeat(We-Vt)} ${t.savedPct} %`,...t.modeledSavedTokens>0?[` ${"Reducer (est.)".padEnd(16)} \u2248 ${pt(t.modeledSavedTokens)} tokens \xB7 modeled`]:[],...k?[k]:[],...C?[C]:[],...jl(t.byCommand,e.color),"",` ${rs(t.compressedCount)} of ${rs(t.count)} commands compressed \xB7 every trim recoverable: tkr restore`,""].join(`
87
- `)}async function ci(t=ns(),e=0){let r;try{r=await ti(t)}catch{return[]}let n=new Map;for(let s of r){let o=s.trim();if(o)try{let i=JSON.parse(o);if(typeof i.t!="number"||typeof i.r!="number"||typeof i.f!="number"||i.t<e)continue;let a=new Date(i.t*1e3),c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,u=n.get(c)??{count:0,rawB:0,filtB:0};i.m!==1&&(u.count+=1),u.rawB+=i.r,u.filtB+=i.f,n.set(c,u)}catch{continue}}return[...n.entries()].sort(([s],[o])=>s<o?-1:s>o?1:0).map(([s,o])=>({day:s,count:o.count,savedTokens:Math.max(0,Q(o.rawB)-Q(o.filtB))}))}function jl(t,e){let r=(t??[]).filter(o=>o.savedTokens>0).slice(0,8);if(r.length===0)return[];let n=r[0].savedTokens,s=[""," By command \xB7 compressed/runs \xB7 avg % over all runs"," "+"\u2500".repeat(61)];for(let o of r){let i=Math.max(1,Math.round(o.savedTokens/n*10)),a=Fr(i,e)+"\u2591".repeat(10-i),c=o.native?`${o.cmd} (native)`:o.cmd,u=`${o.compressedCount}/${o.count}`;s.push(` ${c.padEnd(24)} ${u.padStart(7)} ${(pt(o.savedTokens)+" saved").padStart(13)} ${String(o.avgPct).padStart(3)} % ${a}`)}return s}function ui(t,e){if(t.length===0)return"";let r=(u,d,_)=>` ${u.padEnd(11)}${rs(d).padStart(4)}${pt(_).padStart(13)}`,n=" "+"Day".padEnd(11)+"Cmds".padStart(4)+"Saved".padStart(13),s=" "+"\u2500".repeat(31),o=t.map(u=>r(`${u.day.slice(8,10)}/${u.day.slice(5,7)}`,u.count,u.savedTokens)),i=t.reduce((u,d)=>u+d.count,0),a=t.reduce((u,d)=>u+d.savedTokens,0),c=r("Total",i,a);return[n,s,...o,s,e.color?`${oi}${c}${ii}`:c,""].join(`
88
- `)}D();hr();import{appendFileSync as Up,chmodSync as Zp,mkdirSync as Hp,existsSync as zl,readFileSync as fi,rmSync as Bl}from"node:fs";import{dirname as Kp,join as Ul}from"node:path";var Zl="usage.jsonl",li=2e4,Jp=2*1024*1024;function mi(){return Ul(y(),Zl)}function pi(t=mi()){try{if(!zl(t))return 0;let e=fi(t,"utf8").split(`
89
- `).filter(r=>r.trim()!=="").length;return Bl(t,{force:!0}),e}catch{return 0}}function di(t){let e=t.trim();if(!e)return null;try{let r=JSON.parse(e);return typeof r.t!="number"||typeof r.s!="string"||typeof r.o!="number"?null:{s:r.s,o:r.o}}catch{return null}}function hi(t=mi()){let e;try{e=fi(t,"utf8").split(`
90
- `).filter(o=>o.trim()!=="")}catch{return{sessionId:null,total:0,routed:0,pct:0}}e.length>li&&(e=e.slice(e.length-li));let r=null;for(let o=e.length-1;o>=0;o-=1){let i=di(e[o]??"");if(i){r=i.s;break}}if(r===null)return{sessionId:null,total:0,routed:0,pct:0};let n=0,s=0;for(let o of e){let i=di(o);!i||i.s!==r||(n+=1,i.o===1&&(s+=1))}return{sessionId:r,total:n,routed:s,pct:n?Math.round(s/n*100):0}}function gi(t){return t.total===0?" No commands yet this session.":[" This session"," "+"\u2500".repeat(40),` ${t.total} commands \xB7 ${t.routed} handled by tkr (${t.pct} %)`," The rest (cd, echo\u2026) has nothing to optimize.",""].join(`
91
- `)}Sr();Ar();$t();Lr();En();import{fileURLToPath as gd}from"node:url";var H=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com";function yd(){process.stdout.write(["Usage: tkr <command>",""," link link a paid account (paste your key)"," link <key> link without prompts"," link --shim [--shim-runner P] install shell-shims (universal compat)"," unlink unlink this machine from your account"," status show current plan + status"," gain [--day|--week|--json] token savings (today / 7 days / all-time)"," session this session's tkr coverage"," restore <hash> re-fetch the full output behind a [tkr restore \u2026] hint"," discover what's covered (agent + terminal)"," setup-codex one-command setup for OpenAI Codex"," auto-update [on|off|status] keep the tkr CLI up to date on its own (on by default)"," doctor print detected host, OS, adapter"," shim install [--runner P] install shell-shims into ~/.tokmizer/shims"," shim uninstall remove shell-shims"," heartbeat refresh JWT + bundle"," settings show print current settings"," settings set <key> <value> update one setting (key uses dot path, e.g. filters.enableAll true)"," settings configure interactive wizard (recommended or custom)"," settings reset reset all settings to defaults"," compression [level] show or set compression level (light, balanced, max)"," reducer [level] show or set response reducer (off, light, balanced, max) \u2014 Smart/Pro"," telemetry status show telemetry on/off + local record count"," telemetry on | off turn anonymous telemetry on or off"," telemetry forget erase telemetry data stored on this machine",""].join(`
92
- `))}async function wd(t){let e=t[0]??"show";if(e==="show"){let r=await Ve();process.stdout.write(`Plan: ${r.plan}
85
+ `)}de();ut();He();Ve();Jn();import{readFile as ui,rm as ql}from"node:fs/promises";yr();P();import{join as Xl}from"node:path";var ts={anthropic:3,openai:2.5,google:2,vertex:3.3,bedrock:3.5,openrouter:3.5},Jl={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function ci(t){return t?Jl[t]??"anthropic":"anthropic"}function rs(t){let e=0,r=0;for(let n of Object.keys(t)){let s=t[n]??0;s<=0||(e+=s,r+=s/1e6*(ts[n]??ts.anthropic))}return e<=0?ts.anthropic:r/(e/1e6)}var Ql="stats.jsonl",Ur=2e4,lh=2*1024*1024;async function li(t){let r=(await ui(t,"utf8")).split(`
86
+ `).filter(n=>n.trim()!=="");return r.length>Ur?r.slice(r.length-Ur):r}function ss(){return Xl(y(),Ql)}async function di(t=ss()){try{let r=(await ui(t,"utf8")).split(`
87
+ `).filter(n=>n.trim()!=="").length;return await ql(t,{force:!0}),r}catch{return 0}}function U(t){return Math.ceil(t/4)}function fi(t){if(!t.count)return null;let e=Math.round(t.compressedCount/t.count*100),r=(t.byCommand??[]).filter(s=>!s.native&&s.compressedCount===0).sort((s,o)=>o.count-s.count).slice(0,3).map(s=>s.cmd),n=r.length?` \xB7 top unchanged: ${r.join(", ")}`:"";return`${e}% of recorded outputs reduced (${t.compressedCount}/${t.count})${n}`}async function Kt(t=ss(),e=0){let r;try{r=await li(t)}catch{r=[]}let n=0,s=0,o=0,i=0,a=0,c=0,u=0,l=0,v=0,w=0,h=0,C=0,R=new Map,O=Number.POSITIVE_INFINITY,ge=Number.NEGATIVE_INFINITY,wt=new Map;for(let Te of r){let B=Te.trim();if(B)try{let _=JSON.parse(B);if(typeof _.t!="number"||!Number.isFinite(_.t)||_.t<0||_.t>864e10||typeof _.r!="number"||!Number.isSafeInteger(_.r)||_.r<0||typeof _.f!="number"||!Number.isSafeInteger(_.f)||_.f<0||_.r+_.f===0||_.t<e)continue;if(_.m!==1){if(n+=1,w+=_.r,h+=_.f,_.f>_.r&&(C+=1),O=Math.min(O,_.t),ge=Math.max(ge,_.t),typeof _.c=="string"&&_.c){let G=R.get(_.c)??{count:0,cc:0,r:0,f:0,sh:!1};G.count+=1,_.f<_.r&&(G.cc+=1),_.k==="sh"&&(G.sh=!0),G.r+=_.r,G.f+=_.f,R.set(_.c,G)}if(_.f<_.r){s+=1,o+=_.r,i+=_.f,_.k==="sh"&&(v+=1,u+=_.r,l+=_.f);let G=ci(typeof _.h=="string"?_.h:void 0),Zr=wt.get(G)??{r:0,f:0};Zr.r+=_.r,Zr.f+=_.f,wt.set(G,Zr)}}else a+=_.r,c+=_.f}catch{continue}}let Yt=U(o),cs=U(i),us=Math.max(0,Yt-cs),Bi=Yt?Math.round(us/Yt*100):0,Zi=Math.floor(Date.now()/1e3),Hi=Number.isFinite(O)?Math.max(1,Math.ceil((Zi-O)/86400)):1,Vi=Math.max(0,U(a)-U(c)),ls={};for(let[Te,B]of wt)ls[Te]=Math.max(0,U(B.r)-U(B.f));let Ki=[...R.entries()].map(([Te,B])=>{let _=U(B.r),G=_-U(B.f);return{cmd:Te,count:B.count,compressedCount:B.cc,savedTokens:G,avgPct:_?Math.round(G/_*100):0,native:!B.sh}}).sort((Te,B)=>B.savedTokens-Te.savedTokens).slice(0,10),Br=U(u),Gi=Br?Math.round((Br-U(l))/Br*100):0,ds=U(w),fs=U(h);return{count:n,compressedCount:s,rawTokens:Yt,filteredTokens:cs,savedTokens:us,modeledSavedTokens:Vi,savedPct:Bi,sinceDays:Hi,savedByProvider:ls,shellCompressedCount:v,shellSavedPct:Gi,byCommand:Ki,observed:{count:n,rawTokens:ds,filteredTokens:fs,savedTokens:ds-fs,savedPct:w?Math.round((w-h)/w*1e4)/100:null,expandedCount:C},window:{firstAt:Number.isFinite(O)?O:null,lastAt:Number.isFinite(ge)?ge:null,limit:Ur,atLimit:r.length>=Ur},measurement:{scope:"tool-output",legacyScope:"reduced-outputs",tokenMethod:"bytes/4",tokenCounts:"estimated",billing:"not-measured"}}}function he(t){return t<0?`-${he(-t)}`:t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t)}function mi(t){return t<0?`-${mi(-t)}`:t>0&&t<.01?"<$0.01":`$${t.toFixed(2)}`}function pe(t){return String(t).replace(/\B(?=(\d{3})+(?!\d))/g,",")}var pi="\x1B[38;2;245;176;65m",hi="\x1B[0m",zr=32;function ns(t,e){let r="\u2588".repeat(t);return e?`${pi}${r}${hi}`:r}function gi(t,e){if(t.count===0)return` No data yet. Run a few commands to measure your output savings.
88
+ Watch this session live: tkr session`;let r=t.observed?.savedTokens??t.savedTokens,n=mi(r/1e6*e.pricePerMtok),s=he(t.rawTokens)+" tokens",o=he(t.filteredTokens)+" tokens",i=zr,a=t.rawTokens>0?Math.max(1,Math.round(zr*(t.filteredTokens/t.rawTokens))):1,c=" ".repeat(zr-i),u=" ".repeat(zr-a),l=" tokmizer \xB7 output savings",v=e.subtitle??"retained history",w=" "+"\u2500".repeat(61),h=t.observed,C=h?.savedPct!=null?h.savedPct<0?`+${Math.abs(h.savedPct)}`:`${h.savedPct}`:null,R=t.window,O=wt=>new Date(wt*1e3).toISOString().slice(0,16).replace("T"," "),ge=t.count-t.compressedCount-(h?.expandedCount??0);return[`${l}${" ".repeat(Math.max(2,40-l.length))}${v}`,w,"",` ${r>=0?"Saved":"Added"} ${he(Math.abs(r))} estimated tokens in tool output`,"",...t.compressedCount>0?[` ${t.savedPct} % on reduced outputs \xB7 ${pe(t.compressedCount)} commands`,` ${"Without tokmizer".padEnd(16)} ${ns(i,e.color)}${c} ${s}`,` ${"With tokmizer".padEnd(16)} ${ns(a,e.color)}${u} ${o}`]:[],...t.shellCompressedCount?[` Shell: ${t.shellSavedPct} % on reduced shell outputs \xB7 ${pe(t.shellCompressedCount)} commands`]:[],...h?[...C!=null?[` ${C} % across all observed outputs${h.savedPct<0?" (increase)":" (reduction)"}`]:[],` ${he(h.rawTokens)} \u2192 ${he(h.filteredTokens)} estimated tokens across ${pe(h.count)} commands`]:[],"",` API equivalent: ${n} at reference $${e.pricePerMtok.toFixed(2)}/M input tokens`," Estimate only, not your bill. Model, caching and subscription change the cost.",...t.modeledSavedTokens>0?[` Reducer (est.): ${he(t.modeledSavedTokens)} tokens modeled separately, excluded above`]:[],...ed(t.byCommand,e.color),"",` ${pe(t.compressedCount)} of ${pe(t.count)} recorded commands reduced \xB7 ${pe(ge)} unchanged${h?.expandedCount?` \xB7 ${pe(h.expandedCount)} expanded`:""}`,...R?.firstAt!=null&&R.lastAt!=null?[` Observed: ${O(R.firstAt)} \u2192 ${O(R.lastAt)} UTC`]:[],` Retained history${R?.atLimit?`: latest ${pe(R.limit)} records`:""}; not a lifetime total.`," Tokens estimated from output bytes / 4; prompts, replies and replayed context are not counted."," Inspect retained output: tkr restore",""].join(`
89
+ `)}async function yi(t=ss(),e=0){let r;try{r=await li(t)}catch{return[]}let n=new Map;for(let s of r){let o=s.trim();if(o)try{let i=JSON.parse(o);if(typeof i.t!="number"||!Number.isFinite(i.t)||i.t<0||i.t>864e10||typeof i.r!="number"||!Number.isSafeInteger(i.r)||i.r<0||typeof i.f!="number"||!Number.isSafeInteger(i.f)||i.f<0||i.r+i.f===0||i.m===1||i.t<e)continue;let a=new Date(i.t*1e3),c=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,u=n.get(c)??{count:0,rawB:0,filtB:0};u.count+=1,u.rawB+=i.r,u.filtB+=i.f,n.set(c,u)}catch{continue}}return[...n.entries()].sort(([s],[o])=>s<o?-1:s>o?1:0).map(([s,o])=>({day:s,count:o.count,savedTokens:U(o.rawB)-U(o.filtB)}))}function ed(t,e){let r=(t??[]).filter(o=>o.savedTokens>0).slice(0,8);if(r.length===0)return[];let n=r[0].savedTokens,s=[""," By command \xB7 reduced/runs \xB7 weighted % over all runs"," "+"\u2500".repeat(61)];for(let o of r){let i=Math.max(1,Math.round(o.savedTokens/n*10)),a=ns(i,e)+"\u2591".repeat(10-i),c=o.native?`${o.cmd} (native)`:o.cmd,u=`${o.compressedCount}/${o.count}`;s.push(` ${c.padEnd(24)} ${u.padStart(7)} ${(he(o.savedTokens)+" saved").padStart(13)} ${String(o.avgPct).padStart(3)} % ${a}`)}return s}function wi(t,e){if(t.length===0)return"";let r=(u,l,v)=>` ${u.padEnd(11)}${pe(l).padStart(4)}${he(v).padStart(13)}`,n=" "+"Day".padEnd(11)+"Cmds".padStart(4)+"Saved".padStart(13),s=" "+"\u2500".repeat(31),o=t.map(u=>r(`${u.day.slice(8,10)}/${u.day.slice(5,7)}`,u.count,u.savedTokens)),i=t.reduce((u,l)=>u+l.count,0),a=t.reduce((u,l)=>u+l.savedTokens,0),c=r("Total",i,a);return[n,s,...o,s,e.color?`${pi}${c}${hi}`:c,""].join(`
90
+ `)}P();yr();import{appendFileSync as mh,chmodSync as ph,mkdirSync as hh,existsSync as td,readFileSync as bi,rmSync as rd}from"node:fs";import{dirname as yh,join as nd}from"node:path";var sd="usage.jsonl",vi=2e4,kh=2*1024*1024;function _i(){return nd(y(),sd)}function xi(t=_i()){try{if(!td(t))return 0;let e=bi(t,"utf8").split(`
91
+ `).filter(r=>r.trim()!=="").length;return rd(t,{force:!0}),e}catch{return 0}}function ki(t){let e=t.trim();if(!e)return null;try{let r=JSON.parse(e);return typeof r.t!="number"||typeof r.s!="string"||typeof r.o!="number"?null:{s:r.s,o:r.o}}catch{return null}}function Si(t=_i()){let e;try{e=bi(t,"utf8").split(`
92
+ `).filter(o=>o.trim()!=="")}catch{return{sessionId:null,total:0,routed:0,pct:0}}e.length>vi&&(e=e.slice(e.length-vi));let r=null;for(let o=e.length-1;o>=0;o-=1){let i=ki(e[o]??"");if(i){r=i.s;break}}if(r===null)return{sessionId:null,total:0,routed:0,pct:0};let n=0,s=0;for(let o of e){let i=ki(o);!i||i.s!==r||(n+=1,i.o===1&&(s+=1))}return{sessionId:r,total:n,routed:s,pct:n?Math.round(s/n*100):0}}function Ei(t){return t.total===0?" No commands yet this session.":[" This session"," "+"\u2500".repeat(40),` ${t.total} commands \xB7 ${t.routed} handled by tkr (${t.pct} %)`," The rest (cd, echo\u2026) has nothing to optimize.",""].join(`
93
+ `)}Ar();Cr();Ot();jr();An();import{fileURLToPath as Pd}from"node:url";var K=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com";function Id(){process.stdout.write(["Usage: tkr <command>",""," link link your account (optional; paste your key)"," link <key> link without prompts"," link --shim [--shim-runner P] install shell-shims (universal compat)"," unlink unlink this machine from your account"," status show current plan + status"," gain [--day|--week|--json] estimated tool-output savings (today / 7 days / retained history)"," session this session's tkr coverage"," restore <hash> re-fetch the full output behind a [tkr restore \u2026] hint"," discover what's covered (agent + terminal)"," setup-codex one-command setup for OpenAI Codex"," auto-update [on|off|status] keep the tkr CLI up to date on its own (on by default)"," doctor print detected host, OS, adapter"," shim install [--runner P] install shell-shims into ~/.tokmizer/shims"," shim uninstall remove shell-shims"," heartbeat refresh JWT + bundle"," settings show print current settings"," settings set <key> <value> update one setting (key uses dot path, e.g. filters.enableAll true)"," settings configure interactive wizard (recommended or custom)"," settings reset reset all settings to defaults"," compression [level] show or set compression level (light, balanced, max)"," yolo [on|off|status] local aggressive output reduction; content can be lost"," reducer [level] show or set response reducer (off, light, balanced, max)"," telemetry status show telemetry on/off + local record count"," telemetry on | off turn anonymous telemetry on or off"," telemetry forget erase telemetry data stored on this machine",""].join(`
94
+ `))}async function Od(t){let e=t[0]??"show";if(e==="show"){try{let r=await Ge();process.stdout.write(`Plan: ${r.plan}
93
95
  `),process.stdout.write(`${JSON.stringify(r.settings,null,2)}
94
- `);return}if(e==="set"){let r=t[1],n=t[2];if(!r||n===void 0){process.stderr.write(`Usage: tkr settings set <key> <value>
95
- `),process.exitCode=1;return}let s=Xs(r,n),o=await Se(s);process.stdout.write(`Updated. ${r} = ${JSON.stringify(n)}
96
+ `)}catch(r){process.stdout.write(`Settings unavailable; showing local cached settings: ${r instanceof Error?r.message:String(r)}
97
+ `),process.stdout.write(`${JSON.stringify(await j(),null,2)}
98
+ `)}return}if(e==="set"){let r=t[1],n=t[2];if(!r||n===void 0){process.stderr.write(`Usage: tkr settings set <key> <value>
99
+ `),process.exitCode=1;return}let s=uo(r,n),o=await Ae(s);process.stdout.write(`Updated. ${r} = ${JSON.stringify(n)}
96
100
  `),process.stdout.write(`Current: ${JSON.stringify(o.settings,null,2)}
97
- `);return}if(e==="configure"){await jo();return}if(e==="reset"){let r=await Se({enabled:!0,telemetryOptIn:!0,outputVerbosity:"compact",reducer:"off",filters:{enableAll:!0,disabled:[]}});process.stdout.write(`Settings reset to defaults.
101
+ `);return}if(e==="configure"){await Jo();return}if(e==="reset"){let r=await Ae({enabled:!0,telemetryOptIn:!0,outputVerbosity:"compact",reducer:"off",filters:{enableAll:!0,disabled:[]}});await Ke(!1),process.stdout.write(`Settings reset to defaults.
102
+ `),process.stdout.write(`YOLO: off (this machine only)
98
103
  `),process.stdout.write(`${JSON.stringify(r.settings,null,2)}
99
104
  `);return}process.stderr.write(`Unknown settings subcommand: ${e}
100
- `),process.exitCode=1}async function _d(t){let e=t[0]??"status";if(e==="on"||e==="off"){let r=e==="on";try{let n=await Se({telemetryOptIn:r});process.stdout.write(`Telemetry ${n.settings.telemetryOptIn?"on":"off"}.
105
+ `),process.exitCode=1}async function Dd(t){let e=t[0]??"status";if(e==="on"||e==="off"){let r=e==="on";try{let n=await Ae({telemetryOptIn:r});process.stdout.write(`Telemetry ${n.settings.telemetryOptIn?"on":"off"}.
101
106
  `)}catch(n){process.stdout.write(`${n instanceof Error?n.message:String(n)}
102
- `),process.exitCode=1}return}if(e==="forget"){Mt("telemetry"),Mt("learn");let r=await ri()+pi();process.stdout.write(`Cleared ${r} local telemetry record${r===1?"":"s"} from this machine.
103
- `);return}if(e==="status"){let r;try{r=(await Ve()).settings.telemetryOptIn?"on":"off"}catch{r=`${(await ie()).telemetryOptIn?"on":"off"} (offline; last known)`}let n=await Zt();process.stdout.write(`Telemetry: ${r}
107
+ `),process.exitCode=1}return}if(e==="forget"){jt("telemetry"),jt("learn");let r=await di()+xi();process.stdout.write(`Cleared ${r} local telemetry record${r===1?"":"s"} from this machine.
108
+ `);return}if(e==="status"){let r;try{r=(await Ge()).settings.telemetryOptIn?"on":"off"}catch{r=`${(await j()).telemetryOptIn?"on":"off"} (offline; last known)`}let n=await Kt();process.stdout.write(`Telemetry: ${r}
104
109
  ${n.count} commands recorded locally.
105
110
  Manage: tkr telemetry on | off | forget
106
111
  `);return}process.stderr.write(`Unknown telemetry subcommand: ${e}
107
- `),process.exitCode=1}async function vd(){let t=process.argv[2]??"help",e=process.argv.slice(3);if(t==="init"||t==="link"){if(t==="init"&&process.stdout.write("`tkr init` is now `tkr link`. Running link...\n"),e.includes("--shim")){let i=e.indexOf("--shim-runner"),a=i>=0?e[i+1]:ae(),c=await Ge(a??ae());process.stdout.write(`Installed ${c.length} shims into ${P()}
112
+ `),process.exitCode=1}async function Nd(){let t=process.argv[2]??"help",e=process.argv.slice(3);if(t==="yolo"){let r=e[0]??"status";if(e.length>1||!["on","off","status"].includes(r)){process.stderr.write(`Usage: tkr yolo [on|off|status]
113
+ `),process.exitCode=1;return}r==="on"?(process.stderr.write(`Warning: YOLO can discard content and diagnostics. Lost output cannot be restored; command exit codes are preserved.
114
+ `),await Ke(!0)):r==="off"&&await Ke(!1),process.stdout.write(`YOLO: ${lt()?"on":"off"} (this machine only)
115
+ `);return}if(t==="init"||t==="link"){if(t==="init"&&process.stdout.write("`tkr init` is now `tkr link`. Running link...\n"),e.includes("--shim")){let i=e.indexOf("--shim-runner"),a=i>=0?e[i+1]:ie(),c=await We(a??ie());process.stdout.write(`Installed ${c.length} shims into ${I()}
108
116
  `),process.stdout.write(`Add this line to your shell rc if not already:
109
- ${pe()}`);return}let r=e.indexOf("--email"),n=e.indexOf("--token"),s=e.find(i=>i.startsWith("tokmizer_")),o=n>=0?e[n+1]??"":s??"";if(o||r>=0){if(!o){process.stdout.write(`Usage: tkr link <key> (the key from tokmizer.com/dashboard/token, starts with tokmizer_)
110
- `),process.exitCode=1;return}let i=r>=0?e[r+1]:"";try{let a=await Tr({token:o,baseUrl:H,...i?{email:i}:{}});process.stdout.write(z.activated(a.plan)+`
111
- `),process.stdout.write(`Settings stay on the recommended defaults. Adjust anytime: tkr settings configure
112
- `);let c=await ur();c?.error&&process.stdout.write(`Note: feature sync failed (${c.error}). Run "tkr heartbeat" to retry.
117
+ ${me()}`);return}let r=e.indexOf("--email"),n=e.indexOf("--token"),s=e.find(i=>i.startsWith("tokmizer_")),o=n>=0?e[n+1]??"":s??"";if(e.length>0){if(!o){process.stdout.write(`Usage: tkr link <key> (the key from tokmizer.com/dashboard/token, starts with tokmizer_)
118
+ `),process.exitCode=1;return}let i=r>=0?e[r+1]:"";try{let a=await Rr({token:o,baseUrl:K,...i?{email:i}:{}});process.stdout.write(Z.activated(a.plan)+`
119
+ `),process.stdout.write(`Review this account's settings: tkr settings show. Adjust them with: tkr settings configure
120
+ `);let c=await lr();c?.error&&process.stdout.write(`Note: feature sync failed (${c.error}). Run "tkr heartbeat" to retry.
113
121
  `)}catch(a){process.stdout.write(`${a instanceof Error?a.message:String(a)}
114
- `),process.exitCode=1}return}await qo(H);return}if(t==="unlink"){let r=await R();if(r?.jwt&&r.signingSecret)try{let s=await Y();await F("POST","/api/v1/license/unlink",{ts:Date.now()},{baseUrl:H,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:4e3})}catch{}await ir();try{await Rt([]),await Ct([])}catch{}await qs();try{let{shutdownDaemon:s}=await Promise.resolve().then(()=>(lt(),ut));await s()}catch{}let n=r?.email?` from ${r.email}`:"";process.stdout.write(`Unlinked this machine${n}. The plugin falls back to the free tier; a fresh anonymous token starts on the next online run. Link another account with: tkr link
115
- `);return}if(t==="doctor"){let r=Wn(),n=await zs(),{brewTapStatus:s}=await Promise.resolve().then(()=>(vi(),_i)),o=s(),i=o?.wedged?o.path.replace(/\/Formula\/tokmizer\.rb$/,""):null,a=[`Host: ${r.host} (source: ${r.source})`,`OS: ${r.os}`,`Arch: ${r.arch}`,`Adapter: ${zo(r.host)}`,`Shim dir: ${P()}`,`Shim: ${Ut()?"installed":"not installed \u2014 run: tkr setup-codex"}`,`Codex: ${bn()?"hook installed":"hook not installed \u2014 run: tkr setup-codex"}`,`Commands: ${n.installed}/${n.total} unprefixed slash commands${n.installed<n.total?" \u2014 restart Claude Code to reinstall":""}`,`Restore: ${process.env.TOKMIZER_CCR_DISABLED==="1"||process.env.TOKMIZER_CCR_DISABLED==="true"?"disabled (TOKMIZER_CCR_DISABLED)":"active"}`,...i?[`Homebrew: tap clone conflicted \u2014 updates are stuck. Fix: git -C ${i} fetch origin && git -C ${i} reset --hard origin/main && brew upgrade tokmizer`]:[],""];try{let{connectDaemon:c}=await Promise.resolve().then(()=>(lt(),ut)),{socketPath:u}=await Promise.resolve().then(()=>(mn(),so)),{path:d}=u(),_=await c(),v=await _.ping();_.close(),a.push(`Daemon: running (pid ${v.pid})`,` socket: ${d}`,` uptime: ${Math.floor(v.uptimeMs/1e3)}s`,` ruleCount: ${v.ruleCount}`,` bundleVersion: ${v.bundleVersion}`,"")}catch(c){a.push(`Daemon: not running (${c.message})`,"")}try{let{readFileSync:c,existsSync:u,statSync:d}=await import("node:fs"),{join:_}=await import("node:path"),{tokmizerHome:v}=await Promise.resolve().then(()=>(D(),Ss)),k=v(),A=_(k,"daemon.spawn.fail");if(u(A)){let I=Number(c(A,"utf8"));a.push(` last spawn failure: ${Number.isFinite(I)?new Date(I).toISOString():"unknown"} (details: ${_(k,"daemon.log")})`)}let C=_(k,"drift.jsonl");if(u(C)&&d(C).size>0){let I=c(C,"utf8").trim().split(`
116
- `),Ee=JSON.parse(I[I.length-1]);a.push(`Drift: ${I.length} unrecognized hook payload shape(s), last on ${Ee.tool??"?"} (${C})`,"")}}catch{}try{let c=si(await Zt());c&&a.push(`Coverage: ${c}`,"")}catch{}process.stdout.write(a.join(`
117
- `));return}if(t==="auto-update"){let{autoUpdateEnabled:r,setAutoUpdate:n}=await Promise.resolve().then(()=>(wr(),yr)),s=e[0]??"status";if(s==="on"||s==="off")n(s==="on");else if(s!=="status"){process.stderr.write(`Usage: tkr auto-update [on|off|status]
122
+ `),process.exitCode=1}return}await ai(K);return}if(t==="unlink"){let r=await T();if(r?.jwt&&r.signingSecret)try{let s=await X();await F("POST","/api/v1/license/unlink",{ts:Date.now()},{baseUrl:K,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:4e3})}catch{}await ar();try{await $t([]),await Pt([])}catch{}await ao();try{let{shutdownDaemon:s}=await Promise.resolve().then(()=>(pt(),mt));await s()}catch{}let n=r?.email?` from ${r.email}`:"";process.stdout.write(`Unlinked this machine${n}. The plugin keeps working without an account; a fresh anonymous token starts on the next online run. Link another account with: tkr link
123
+ `);return}if(t==="doctor"){let r=Wn(),n=await Vs(),{brewTapStatus:s}=await Promise.resolve().then(()=>(Ri(),Ci)),o=s(),i=o?.wedged?o.path.replace(/\/Formula\/tokmizer\.rb$/,""):null,a=[`Host: ${r.host} (source: ${r.source})`,`OS: ${r.os}`,`Arch: ${r.arch}`,`Adapter: ${qo(r.host)}`,`Shim dir: ${I()}`,`Shim: ${Vt()?"installed":"not installed \u2014 run: tkr setup-codex"}`,`Codex: ${xn()?"hook installed":"hook not installed \u2014 run: tkr setup-codex"}`,`Commands: ${n.installed}/${n.total} unprefixed slash commands${n.installed<n.total?" \u2014 restart Claude Code to reinstall":""}`,`Restore: ${process.env.TOKMIZER_CCR_DISABLED==="1"||process.env.TOKMIZER_CCR_DISABLED==="true"?"disabled (TOKMIZER_CCR_DISABLED)":"active"}`,...i?[`Homebrew: tap clone conflicted \u2014 updates are stuck. Fix: git -C ${i} fetch origin && git -C ${i} reset --hard origin/main && brew upgrade tokmizer`]:[],""];try{let{connectDaemon:c}=await Promise.resolve().then(()=>(pt(),mt)),{socketPath:u}=await Promise.resolve().then(()=>(pn(),go)),{path:l}=u(),v=await c(),w=await v.ping();v.close(),a.push(`Daemon: running (pid ${w.pid})`,` socket: ${l}`,` uptime: ${Math.floor(w.uptimeMs/1e3)}s`,` ruleCount: ${w.ruleCount}`,` bundleVersion: ${w.bundleVersion}`,"")}catch(c){a.push(`Daemon: not running (${c.message})`,"")}try{let{readFileSync:c,existsSync:u,statSync:l}=await import("node:fs"),{join:v}=await import("node:path"),{tokmizerHome:w}=await Promise.resolve().then(()=>(P(),Rs)),h=w(),C=v(h,"daemon.spawn.fail");if(u(C)){let O=Number(c(C,"utf8"));a.push(` last spawn failure: ${Number.isFinite(O)?new Date(O).toISOString():"unknown"} (details: ${v(h,"daemon.log")})`)}let R=v(h,"drift.jsonl");if(u(R)&&l(R).size>0){let O=c(R,"utf8").trim().split(`
124
+ `),ge=JSON.parse(O[O.length-1]);a.push(`Drift: ${O.length} unrecognized hook payload shape(s), last on ${ge.tool??"?"} (${R})`,"")}}catch{}try{let c=fi(await Kt());c&&a.push(`Coverage: ${c}`,"")}catch{}process.stdout.write(a.join(`
125
+ `));return}if(t==="auto-update"){let{autoUpdateEnabled:r,setAutoUpdate:n}=await Promise.resolve().then(()=>(kr(),vr)),s=e[0]??"status";if(s==="on"||s==="off")n(s==="on");else if(s!=="status"){process.stderr.write(`Usage: tkr auto-update [on|off|status]
118
126
  `),process.exitCode=1;return}process.stdout.write(`auto-update: ${r()?"on":"off"}
119
- `);return}if(t==="self-update"){let{selfUpdate:r,defaultDeps:n}=await Promise.resolve().then(()=>(wr(),yr)),s=await R(),o=await r(n(s?.latestPluginVersion));process.stdout.write(`${o.length?o.join(`
127
+ `);return}if(t==="self-update"){let{selfUpdate:r,defaultDeps:n}=await Promise.resolve().then(()=>(kr(),vr)),s=await T(),o=await r(n(s?.latestPluginVersion));process.stdout.write(`${o.length?o.join(`
120
128
  `):"up to date"}
121
- `);return}if(t==="shims-refresh"){let{refreshStaleShims:r}=await Promise.resolve().then(()=>(Lr(),Wo)),n=await r(ae());process.stdout.write(`shims refreshed: ${n}
122
- `);return}if(t==="setup-codex"){await me(H);let r=await Ge(ae()),n=await Mr(),s=gd(new URL("./tkr-codex-hook.js",import.meta.url)),o=await xn(Sn(process.env.PATH??"",s)),i=o==="error"?`Could not update ${dt()}: it is not valid JSON. Fix it, then run tkr setup-codex again.`:`${o==="present"?"Codex hook already set":"Added the tokmizer hook"} in ${dt()}. In Codex, run /hooks once and approve it.`,a=n.status==="added"?`Added the shim path to ${n.target}.`:n.status==="present"?`Shim path already set in ${n.target}.`:`Could not update ${n.target}. Add this to your shell profile:
123
- ${n.manual}`;process.stdout.write([`Installed ${r.length} command shims into ${P()}.`,i,a,"","Last step: open a new terminal and restart Codex so it picks up the change.","Check coverage anytime with: tkr discover","Tokmizer is free. No account is required.",""].join(`
124
- `)),(o==="error"||n.status==="missing")&&(process.exitCode=1);return}if(t==="shim"){let r=e[0]??"install";if(r==="install"){let n=e.indexOf("--runner"),s=n>=0?e[n+1]:ae(),o=await Ge(s??ae());process.stdout.write(`Installed ${o.length} shims into ${P()}
125
- `);let i=await Mr();if(i.status==="added"?process.stdout.write(`Added PATH to ${i.target}. Open a new terminal to activate.
129
+ `);return}if(t==="shims-refresh"){let{refreshStaleShims:r}=await Promise.resolve().then(()=>(jr(),oi)),n=await r(ie());process.stdout.write(`shims refreshed: ${n}
130
+ `);return}if(t==="setup-codex"){await fe(K);let r=await We(ie()),n=await Fr(),s=Pd(new URL("./tkr-codex-hook.js",import.meta.url)),o=await Sn(En(process.env.PATH??"",s)),i=o==="error"?`Could not update ${ht()}: it is not valid JSON. Fix it, then run tkr setup-codex again.`:`${o==="present"?"Codex hook already set":"Added the tokmizer hook"} in ${ht()}. In Codex, run /hooks once and approve it.`,a=n.status==="added"?`Added the shim path to ${n.target}.`:n.status==="present"?`Shim path already set in ${n.target}.`:`Could not update ${n.target}. Add this to your shell profile:
131
+ ${n.manual}`;process.stdout.write([`Installed ${r.length} command shims into ${I()}.`,i,a,"","Last step: open a new terminal and restart Codex so it picks up the change.","Check coverage anytime with: tkr discover","Tokmizer is free. No account is required.",""].join(`
132
+ `)),(o==="error"||n.status==="missing")&&(process.exitCode=1);return}if(t==="shim"){let r=e[0]??"install";if(r==="install"){let n=e.indexOf("--runner"),s=n>=0?e[n+1]:ie(),o=await We(s??ie());process.stdout.write(`Installed ${o.length} shims into ${I()}
133
+ `);let i=await Fr();if(i.status==="added"?process.stdout.write(`Added PATH to ${i.target}. Open a new terminal to activate.
126
134
  `):i.status==="present"?process.stdout.write(`PATH already set in ${i.target}. Open a new terminal if not active.
127
135
  `):process.stdout.write(`Add this to your shell profile, then open a new terminal:
128
- ${i.manual}`),i.status==="missing"){process.exitCode=1;return}let a=await R()??await me(H);process.stdout.write(a?`Free access is ready. No account is required.
136
+ ${i.manual}`),i.status==="missing"){process.exitCode=1;return}let a=await T()??await fe(K);process.stdout.write(a?`Free access is ready. No account is required.
129
137
  `:`Free activation is pending. When online, run: tkr status
130
- `);return}if(r==="uninstall"){let n=await Xn();process.stdout.write(`Removed ${n} shims from ${P()}
138
+ `);return}if(r==="uninstall"){let n=await Qn();process.stdout.write(`Removed ${n} shims from ${I()}
131
139
  `);return}process.stderr.write(`Unknown shim subcommand: ${r}
132
- `),process.exitCode=1;return}if(t==="status"){let r=await R()??await me(H);if(!r){process.stdout.write(`Free tier starts automatically on the first online run. Could not reach tokmizer.com right now. Retry later, or run: tkr link
133
- `);return}let n=r.bonusActive??!1,s=Rr(Cr(r),$r(r));if(process.stdout.write(`Plan ${r.plan} | Status ${r.status}${r.email?` | Email ${r.email}`:r.plan==="free"?" | Anonymous":""}
134
- `),process.stdout.write(`power: ${s?"available":"locked"}
135
- `),s){let o=await sn("power"),i=await Bs("power")!==null;if(!o||!i){let a=await ur(),c=a?.error?` (last sync failed: ${a.error})`:"";process.stdout.write(`/power not synced yet${c} \u2014 run: tkr heartbeat
136
- `)}}if(Lo(r)&&process.stdout.write(`Offline too long \u2014 reconnect (tkr heartbeat) to restore your plan.
137
- `),r.plan==="smart")if(n){let o=r.bonusResetAt?` (window resets ${r.bonusResetAt})`:"";process.stdout.write(`Bonus active: Pro filters + /power are enabled today${o}.
138
- `)}else process.stdout.write(`/power is not available on this token right now.
139
- `);else r.plan==="free"&&process.stdout.write(`Everything is included on this token.
140
- `);return}if(t==="gain"){let r=e[0]??"",n=0,s,o=!1;if(r==="--json"){let[A,C]=await Promise.all([Zt(void 0,0),R()]),I=es(A.savedByProvider);process.stdout.write(JSON.stringify({...ss(A,C?.installedAt,Math.floor(Date.now()/1e3)),savedUsd:Number((A.savedTokens/1e6*I).toFixed(2)),plan:C?.plan??"free"})+`
141
- `);return}if(r==="--jour"||r==="--day"){let A=new Date;n=Math.floor(new Date(A.getFullYear(),A.getMonth(),A.getDate()).getTime()/1e3),s="today"}else(r==="--semaine"||r==="--week")&&(n=Math.floor(Date.now()/1e3)-7*86400,s="last 7 days",o=!0);let[i,a]=await Promise.all([Zt(void 0,n),R()]),c=es(i.savedByProvider),u=!!a?.jwt&&a?.plan!=="free",d=!a||!u?"not linked \xB7 anonymous free tier (run tkr link to send these to your dashboard)":a.email?`${a.email} \xB7 ${a.plan}`:`linked \xB7 ${a.plan}`,_=!!process.stdout.isTTY&&!process.env.NO_COLOR,v=n===0?ss(i,a?.installedAt,Math.floor(Date.now()/1e3)):i,k=` Account: ${d}
142
- `+ai(v,{color:_,pricePerMtok:c,subtitle:s,plan:ni(a?.plan??"free")});if(o){let A=ui(await ci(void 0,n),{color:_});A&&(k+=`
143
- `+A)}i.count>0&&!Ut()&&(k+=` Only agent commands are counted here. Cover every terminal: tkr shim install
144
- `),a?.relinkRequired&&(k+=` \u26A0 dashboard link lost \u2014 run: tkr link <your-token> (from tokmizer.com/dashboard)
145
- `),a?.updateRequired?k+=` \u26A0 plugin update required \u2014 run: /tkr-update
146
- `:it(X,a?.latestPluginVersion)&&(k+=` \u26A0 you run v${X}, v${a?.latestPluginVersion} is out \u2014 older versions undercount savings. Run /tkr-update, then RESTART Claude Code.
147
- `),a?.clockSkewDetected&&(k+=` \u26A0 system clock looks off \u2014 sync it, then run: tkr heartbeat
148
- `);try{let{connectDaemon:A}=await Promise.resolve().then(()=>(lt(),ut)),C=await A(),I=await C.ping();C.close(),k+=Ur(I.ruleCount,null)}catch{let{runtimeFromCache:A}=await Promise.resolve().then(()=>(Ii(),Pi)),C=await A();k+=Ur(null,C?C.ruleCount:null)}process.stdout.write(k+`
149
- `);return}if(t==="session"){process.stdout.write(gi(hi())+`
150
- `);return}if(t==="discover"){let r=Ut(),n=[" tokmizer coverage"," "+"\u2500".repeat(40)," Agent (Claude/Codex) \u2705 optimized automatically",r?" Your terminal \u2705 covered (shims installed)":" Your terminal \u26A0\uFE0F not covered"];r||n.push("",' \u2192 run "tkr shim install" to also cover your commands outside the agent.'),n.push(""),process.stdout.write(n.join(`
140
+ `),process.exitCode=1;return}if(t==="status"){process.stdout.write(`YOLO: ${lt()?"on":"off"} (this machine only)
141
+ `);let r=await T()??await fe(K);if(!r){process.stdout.write(`Free tier starts automatically on the first online run. Could not reach tokmizer.com right now. Retry later, or run: tkr link
142
+ `);return}let n=$r(Pr(r),Ir(r));if(process.stdout.write(`Plan ${r.plan} | Status ${r.status}${r.email?` | Email ${r.email}`:r.plan==="free"?" | Anonymous":""}
143
+ `),process.stdout.write(`power: ${n?"available":"locked"}
144
+ `),n){let s=await on("power"),o=await dr("power")!==null;if(!s||!o){let i=await lr(),a=i?.error?` (last sync failed: ${i.error})`:"";process.stdout.write(`/power not synced yet${a} \u2014 run: tkr heartbeat
145
+ `)}}Yo(r)&&process.stdout.write(`Offline too long \u2014 reconnect (tkr heartbeat) to refresh your local state.
146
+ `),process.stdout.write(`Everything is included on this token.
147
+ `);return}if(t==="gain"){let r=e[0]??"";if(e.length>1||!["","--json","--jour","--day","--semaine","--week"].includes(r)){process.stderr.write(`Usage: tkr gain [--day|--week|--json]
148
+ `),process.exitCode=1;return}let n=0,s,o=!1;if(r==="--json"){let[h,C]=await Promise.all([Kt(void 0,0),T()]),R=rs(h.savedByProvider);process.stdout.write(JSON.stringify({...h,savedUsd:Number((h.savedTokens/1e6*R).toFixed(2)),savedUsdBasis:"reference-input-price",savedUsdScope:"reduced-outputs",netSavedUsd:Number(((h.observed?.savedTokens??h.savedTokens)/1e6*R).toFixed(2)),netSavedUsdScope:"all-observed-outputs",referencePricePerMtok:R,plan:C?.plan??"free"})+`
149
+ `);return}if(r==="--jour"||r==="--day"){let h=new Date;n=Math.floor(new Date(h.getFullYear(),h.getMonth(),h.getDate()).getTime()/1e3),s="today"}else(r==="--semaine"||r==="--week")&&(n=Math.floor(Date.now()/1e3)-7*86400,s="last 7 days",o=!0);let[i,a]=await Promise.all([Kt(void 0,n),T()]),c=rs(i.savedByProvider),u=a?.linked??(!!a?.jwt&&a?.plan!=="free"),l=!a||!u?"not linked \xB7 anonymous free tier (run tkr link to send these to your dashboard)":a.email?`${a.email} \xB7 ${a.plan}`:`linked \xB7 ${a.plan}`,v=!!process.stdout.isTTY&&!process.env.NO_COLOR,w=` Account: ${l}
150
+ `+gi(i,{color:v,pricePerMtok:c,subtitle:s});if(o){let h=wi(await yi(void 0,n),{color:v});h&&(w+=`
151
+ `+h)}i.count>0&&!Vt()&&(w+=` To include commands from every terminal: tkr shim install
152
+ `),a?.relinkRequired&&(w+=` \u26A0 dashboard link lost \u2014 run: tkr link <your-token> (from tokmizer.com/dashboard)
153
+ `),a?.updateRequired?w+=` \u26A0 plugin update required \u2014 run: /tkr-update
154
+ `:ct(Q,a?.latestPluginVersion)&&(w+=` \u26A0 you run v${Q}, v${a?.latestPluginVersion} is out \u2014 older versions undercount savings. Run /tkr-update, then RESTART Claude Code.
155
+ `),a?.clockSkewDetected&&(w+=` \u26A0 system clock looks off \u2014 sync it, then run: tkr heartbeat
156
+ `);try{let{connectDaemon:h}=await Promise.resolve().then(()=>(pt(),mt)),C=await h(),R=await C.ping();C.close(),w+=Hr(R.ruleCount,null)}catch{let{runtimeFromCache:h}=await Promise.resolve().then(()=>(Ui(),zi)),C=await h();w+=Hr(null,C?C.ruleCount:null)}process.stdout.write(w+`
157
+ `);return}if(t==="session"){process.stdout.write(Ei(Si())+`
158
+ `);return}if(t==="discover"){let r=Vt(),n=[" tokmizer coverage"," "+"\u2500".repeat(40)," Agent (Claude/Codex) \u2705 optimized automatically",r?" Your terminal \u2705 covered (shims installed)":" Your terminal \u26A0\uFE0F not covered"];r||n.push("",' \u2192 run "tkr shim install" to also cover your commands outside the agent.'),n.push(""),process.stdout.write(n.join(`
151
159
  `)+`
152
- `);return}if(t==="restore"){let r=await Vs(e[0]);if(r.stdout&&process.stdout.write(r.stdout),r.stderr&&process.stderr.write(r.stderr),r.code===0&&r.restoredTokens){let n=await ie();await jn({cmd:"restore",tokensSaved:0,tokensRestored:r.restoredTokens,optimized:!1,telemetryOptIn:n.telemetryOptIn,host:Wn().host})}process.exitCode=r.code;return}if(t==="heartbeat"){await me(H);let r=await Un(H);if(process.stdout.write(r?`OK plan=${r.plan} status=${r.status}
153
- `:`Heartbeat failed
154
- `),r){let n=await ur();n?.error&&process.stdout.write(`Note: feature sync failed: ${n.error}
155
- `)}return}if(t==="settings"){await me(H),await wd(e);return}if(t==="telemetry"){await me(H),await _d(e);return}if(t==="reducer"){let r=["off","light","balanced","max"],n={off:"default: responses untouched",light:"trims padding, keeps natural prose",balanced:"dense and direct, answer first",max:"telegraphic, every token earns its place"},s=e[0]?.toLowerCase();if(!s){let o=await ie();process.stdout.write(`Reducer: ${o.reducer}
156
- `+r.map(i=>` ${i.padEnd(10)} ${n[i]}`).join(`
160
+ `);return}if(t==="restore"){let r=await qs(e[0]);if(r.stdout&&process.stdout.write(r.stdout),r.stderr&&process.stderr.write(r.stderr),r.code===0&&r.restoredTokens){let n=await j();await zn({cmd:"restore",tokensSaved:0,tokensRestored:r.restoredTokens,optimized:!1,telemetryOptIn:n.telemetryOptIn,host:Wn().host})}process.exitCode=r.code;return}if(t==="heartbeat"){await fe(K);let r=Date.now(),n=await Zn(K);if(!n||(n.lastHeartbeatOkAt??0)<r){process.stderr.write(`Heartbeat failed
161
+ `),process.exitCode=1;return}process.stdout.write(`OK plan=${n.plan} status=${n.status}
162
+ `);let s=await lr();s?.error&&process.stdout.write(`Note: feature sync failed: ${s.error}
163
+ `);return}if(t==="settings"){(e[0]??"show")==="show"&&process.stdout.write(`YOLO: ${lt()?"on":"off"} (this machine only)
164
+ `),await fe(K),await Od(e);return}if(t==="telemetry"){await fe(K),await Dd(e);return}if(t==="reducer"){let r=["off","light","balanced","max"],n={off:"default: responses untouched",light:"trims padding, keeps natural prose",balanced:"dense and direct, answer first",max:"telegraphic, every token earns its place"},s=e[0]?.toLowerCase();if(!s){let o=await j(),i=o.reducer==="off"?"":o.enabled?await dr(`reducer-${o.reducer}`)?`Ready for the next Claude Code session.
165
+ `:`Reducer ruleset unavailable; reconnect and run: tkr heartbeat
166
+ `:`Tokmizer is disabled; the reducer is inactive.
167
+ `;process.stdout.write(`Reducer: ${o.reducer}
168
+ `+r.map(a=>` ${a.padEnd(10)} ${n[a]}`).join(`
157
169
  `)+`
158
- Reducer shortens the assistant's replies, not your command output. Smart and Pro plans.
159
- Change it: tkr reducer <off|light|balanced|max>
170
+ Reducer guides Claude Code response style; command output compression is separate.
171
+ `+i+`Change it: tkr reducer <off|light|balanced|max>
160
172
  `);return}if(!r.includes(s)){process.stderr.write(`Unknown level: ${e[0]}. Use off, light, balanced or max.
161
- `),process.exitCode=1;return}await me(H);try{let o=await Se({reducer:s});o.settings.reducer==="off"?process.stdout.write(`Reducer off. Responses back to normal next session.
162
- `):(await Un(H),process.stdout.write(`Reducer set to ${o.settings.reducer}. Takes full effect next session.
163
- `))}catch(o){let i=o instanceof Error?o.message:String(o);i.includes("plan_required")||i.toLowerCase().includes("smart and pro")?process.stdout.write(`Reducer is not available on this token right now.
173
+ `),process.exitCode=1;return}await fe(K);try{let o=await Ae({reducer:s});if(o.settings.reducer==="off")process.stdout.write(`Reducer off. Claude Code responses back to normal next session.
174
+ `);else if(!o.settings.enabled)process.stdout.write(`Reducer saved as ${o.settings.reducer} for Claude Code. Tokmizer is disabled; enable it with: tkr settings set enabled true
175
+ `);else{if(await Zn(K),!await dr(`reducer-${o.settings.reducer}`)){process.stderr.write(`Reducer saved as ${o.settings.reducer}, but its ruleset is unavailable. Reconnect and run: tkr heartbeat before starting a new Claude Code session.
176
+ `),process.exitCode=1;return}process.stdout.write(`Reducer set to ${o.settings.reducer} for Claude Code. Its response-style instructions load next session.
177
+ `)}}catch(o){let i=o instanceof Error?o.message:String(o);i.includes("plan_required")||i.toLowerCase().includes("smart and pro")?process.stdout.write(`Reducer is not available on this token right now.
164
178
  `):process.stdout.write(`${i}
165
- `),process.exitCode=1}return}if(t==="compression"){let r={light:"normal",balanced:"compact",max:"minimal",normal:"normal",compact:"compact",minimal:"minimal"},n={normal:"light",compact:"balanced",minimal:"max"},s=e[0];if(!s){let i=await ie();process.stdout.write(`Compression: ${n[i.outputVerbosity]}
179
+ `),process.exitCode=1}return}if(t==="compression"){if(e.length>1){process.stderr.write(`Usage: tkr compression [light|balanced|max]
180
+ `),process.exitCode=1;return}let r={light:"normal",balanced:"compact",max:"minimal",normal:"normal",compact:"compact",minimal:"minimal"},n={normal:"light",compact:"balanced",minimal:"max"},s=e[0];if(!s){let i=await j(),a=lt();process.stdout.write((a?`Compression: YOLO (this machine only)
181
+ Standard level: ${n[i.outputVerbosity]}
182
+ Content and diagnostics can be lost; discarded output cannot be restored.
183
+ `:`Compression: ${n[i.outputVerbosity]}
184
+ `)+`YOLO: ${a?"on":"off"} (this machine only)
166
185
  light gentle: standard cleanup only
167
186
  balanced default: also collapses repeated output and blank runs
168
- max strongest: also drops verbose log noise (errors always stay)
169
- Change it: tkr compression <light|balanced|max>
170
- `);return}let o=r[s.toLowerCase()];if(!o){process.stderr.write(`Unknown level: ${s}. Use light, balanced or max.
171
- `),process.exitCode=1;return}await me(H);try{let i=await Se({outputVerbosity:o});process.stdout.write(`Compression set to ${n[i.settings.outputVerbosity]}. Applies to your next commands.
172
- `)}catch(i){process.stdout.write(`${i instanceof Error?i.message:String(i)}
173
- `),process.exitCode=1}return}yd(),process.exitCode=t==="help"?0:1}vd().catch(t=>{process.stderr.write(`${t.message??t}
187
+ max strongest standard level: also drops verbose log noise
188
+ Change standard level and leave YOLO: tkr compression <light|balanced|max>
189
+ Local mode: tkr yolo <on|off|status>
190
+ `);return}let o=Object.hasOwn(r,s.toLowerCase())?r[s.toLowerCase()]:void 0;if(!o){process.stderr.write(`Unknown level: ${s}. Use light, balanced or max.
191
+ `),process.exitCode=1;return}await Ke(!1),process.stdout.write(`YOLO: off (this machine only)
192
+ `);try{await fe(K);let i=await Ae({outputVerbosity:o});process.stdout.write(`Compression set to ${n[i.settings.outputVerbosity]}. Applies to your next commands.
193
+ `)}catch(i){process.stderr.write(`Could not update standard compression: ${i instanceof Error?i.message:String(i)}
194
+ `),process.exitCode=1}return}Id(),process.exitCode=["help","--help","-h"].includes(t)?0:1}Nd().catch(t=>{process.stderr.write(`${t.message??t}
174
195
  `),process.exitCode=1});