@tokmizer/plugin 0.9.52 → 0.9.53

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 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-----
3
+ var Vi=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 Q=(t,e)=>{for(var r in e)Vi(t,r,{get:e[r],enumerable:!0})};var S,jr,p,se,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})})(jr||(jr={}));p=S.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),se=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,Ki,F,Vt=E(()=>{yt();d=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"]),Ki=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),F=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()}};F.create=t=>new F(t)});var Gi,ue,zr=E(()=>{Vt();yt();Gi=(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,S.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:r=`Unrecognized key(s) in object: ${S.joinValues(t.keys,", ")}`;break;case d.invalid_union:r="Invalid input";break;case d.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${S.joinValues(t.options)}`;break;case d.invalid_enum_value:r=`Invalid enum value. Expected ${S.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}"`:S.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,S.assertNever(t)}return{message:r}},ue=Gi});function Ji(t){os=t}function We(){return os}var os,Kt=E(()=>{zr();os=ue});function m(t,e){let r=We(),n=wt({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===ue?void 0:ue].filter(s=>!!s)});t.common.issues.push(n)}var wt,Wi,O,w,Ae,N,Gt,Jt,ge,Ye,Ur=E(()=>{Kt();zr();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}},Wi=[];O=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 w;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 w;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}}},w=Object.freeze({status:"aborted"}),Ae=t=>({status:"dirty",value:t}),N=t=>({status:"valid",value:t}),Gt=t=>t.status==="aborted",Jt=t=>t.status==="dirty",ge=t=>t.status==="valid",Ye=t=>typeof Promise<"u"&&t instanceof Promise});var is=E(()=>{});var h,as=E(()=>{(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(h||(h={}))});function _(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 ds(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 fa(t){return new RegExp(`^${ds(t)}$`)}function fs(t){let e=`${ls}T${ds(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 ma(t,e){return!!((e==="v4"||!e)&&oa.test(t)||(e==="v6"||!e)&&aa.test(t))}function pa(t,e){if(!ta.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 ha(t,e){return!!((e==="v4"||!e)&&ia.test(t)||(e==="v6"||!e)&&ca.test(t))}function ga(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 qe(t){if(t instanceof j){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=G.create(qe(n))}return new j({...t._def,shape:()=>e})}else return t instanceof fe?new fe({...t._def,type:qe(t.element)}):t instanceof G?G.create(qe(t.unwrap())):t instanceof ie?ie.create(qe(t.unwrap())):t instanceof oe?oe.create(t.items.map(e=>qe(e))):t}function Hr(t,e){let r=se(t),n=se(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=Hr(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=Hr(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 ms(t,e){return new Le({values:t,typeName:v.ZodEnum,..._(e)})}function us(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function ps(t,e={},r){return t?we.create().superRefine((n,s)=>{let o=t(n);if(o instanceof Promise)return o.then(i=>{if(!i){let a=us(e,n),c=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!o){let i=us(e,n),a=i.fatal??r??!0;s.addIssue({code:"custom",...i,fatal:a})}}):we.create()}var J,cs,x,Yi,qi,Xi,Qi,ea,ta,ra,na,sa,Zr,oa,ia,aa,ca,ua,la,ls,da,ye,Te,Re,Ce,$e,Xe,Pe,Oe,we,de,ee,Qe,fe,j,Ie,le,Wt,De,oe,Yt,et,tt,qt,Ne,Me,Le,Fe,ve,W,G,ie,je,ze,rt,ya,vt,bt,Ue,wa,v,va,hs,gs,ba,ka,ys,_a,xa,Sa,Ea,Aa,Ta,Ra,Ca,$a,Pa,Oa,Ia,Da,Na,Ma,La,Fa,ja,za,Ua,Za,Ha,Ba,Va,Ka,Ga,Ja,Wa,Ya,qa,Xa,Qa,ec,tc,ws=E(()=>{Vt();Kt();as();Ur();yt();J=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}},cs=(t,e)=>{if(ge(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 F(t.common.issues);return this._error=r,this._error}}};x=class{get description(){return this._def.description}_getType(e){return se(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:se(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new O,ctx:{common:e.parent.common,data:e.data,parsedType:se(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ye(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:se(e)},s=this._parseSync({data:e,path:n.path,parent:n});return cs(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:se(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return ge(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=>ge(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:se(e)},s=this._parse({data:e,path:n.path,parent:n}),o=await(Ye(s)?s:Promise.resolve(s));return cs(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 W({schema:this,typeName:v.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 ie.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fe.create(this)}promise(){return ve.create(this,this._def)}or(e){return Ie.create([this,e],this._def)}and(e){return De.create(this,e,this._def)}transform(e){return new W({..._(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new je({..._(this._def),innerType:this,defaultValue:r,typeName:v.ZodDefault})}brand(){return new vt({typeName:v.ZodBranded,type:this,..._(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new ze({..._(this._def),innerType:this,catchValue:r,typeName:v.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return bt.create(this,e)}readonly(){return Ue.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Yi=/^c[^\s-]{8,}$/i,qi=/^[0-9a-z]+$/,Xi=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qi=/^[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,ea=/^[a-z0-9_-]{21}$/i,ta=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ra=/^[-+]?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)?)??$/,na=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,sa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",oa=/^(?:(?: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])$/,ia=/^(?:(?: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])$/,aa=/^(([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]))$/,ca=/^(([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])$/,ua=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,la=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ls="((\\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])))",da=new RegExp(`^${ls}$`);ye=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:d.invalid_type,expected:p.string,received:o.parsedType}),w}let n=new O,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")na.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")Zr||(Zr=new RegExp(sa,"u")),Zr.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")Qi.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")ea.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")Yi.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")qi.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")Xi.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"?fs(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"?da.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:d.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?fa(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"?ra.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"duration",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?ma(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"?pa(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"?ha(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"?ua.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64",code:d.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?la.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64url",code:d.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:d.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}};ye.create=t=>new ye({checks:[],typeName:v.ZodString,coerce:t?.coerce??!1,..._(t)});Te=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:d.invalid_type,expected:p.number,received:o.parsedType}),w}let n,s=new O;for(let o of this._def.checks)o.kind==="int"?S.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"?ga(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()):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)}};Te.create=t=>new Te({checks:[],typeName:v.ZodNumber,coerce:t?.coerce||!1,..._(t)});Re=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 O;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()):S.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}),w}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}};Re.create=t=>new Re({checks:[],typeName:v.ZodBigInt,coerce:t?.coerce??!1,..._(t)});Ce=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:d.invalid_type,expected:p.boolean,received:n.parsedType}),w}return N(e.data)}};Ce.create=t=>new Ce({typeName:v.ZodBoolean,coerce:t?.coerce||!1,..._(t)});$e=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:d.invalid_type,expected:p.date,received:o.parsedType}),w}if(Number.isNaN(e.data.getTime())){let o=this._getOrReturnCtx(e);return m(o,{code:d.invalid_date}),w}let n=new O,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()):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}};$e.create=t=>new $e({checks:[],coerce:t?.coerce||!1,typeName:v.ZodDate,..._(t)});Xe=class extends x{_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}),w}return N(e.data)}};Xe.create=t=>new Xe({typeName:v.ZodSymbol,..._(t)});Pe=class extends x{_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}),w}return N(e.data)}};Pe.create=t=>new Pe({typeName:v.ZodUndefined,..._(t)});Oe=class extends x{_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}),w}return N(e.data)}};Oe.create=t=>new Oe({typeName:v.ZodNull,..._(t)});we=class extends x{constructor(){super(...arguments),this._any=!0}_parse(e){return N(e.data)}};we.create=t=>new we({typeName:v.ZodAny,..._(t)});de=class extends x{constructor(){super(...arguments),this._unknown=!0}_parse(e){return N(e.data)}};de.create=t=>new de({typeName:v.ZodUnknown,..._(t)});ee=class extends x{_parse(e){let r=this._getOrReturnCtx(e);return m(r,{code:d.invalid_type,expected:p.never,received:r.parsedType}),w}};ee.create=t=>new ee({typeName:v.ZodNever,..._(t)});Qe=class extends x{_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}),w}return N(e.data)}};Qe.create=t=>new Qe({typeName:v.ZodVoid,..._(t)});fe=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:d.invalid_type,expected:p.array,received:r.parsedType}),w;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 J(r,i,r.path,a)))).then(i=>O.mergeArray(n,i));let o=[...r.data].map((i,a)=>s.type._parseSync(new J(r,i,r.path,a)));return O.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)}};fe.create=(t,e)=>new fe({type:t,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,..._(e)});j=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:d.invalid_type,expected:p.object,received:u.parsedType}),w}let{status:n,ctx:s}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ee&&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],g=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new J(s,g,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof ee){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 g=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new J(s,g,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let g=await l.key,b=await l.value;u.push({key:g,value:b,alwaysSet:l.alwaysSet})}return u}).then(u=>O.mergeObjectSync(n,u)):O.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:v.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 qe(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 ms(S.objectKeys(this.shape))}};j.create=(t,e)=>new j({shape:()=>t,unknownKeys:"strip",catchall:ee.create(),typeName:v.ZodObject,..._(e)});j.strictCreate=(t,e)=>new j({shape:()=>t,unknownKeys:"strict",catchall:ee.create(),typeName:v.ZodObject,..._(e)});j.lazycreate=(t,e)=>new j({shape:t,unknownKeys:"strip",catchall:ee.create(),typeName:v.ZodObject,..._(e)});Ie=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 F(a.ctx.common.issues));return m(r,{code:d.invalid_union,unionErrors:i}),w}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 F(c));return m(r,{code:d.invalid_union,unionErrors:a}),w}}get options(){return this._def.options}};Ie.create=(t,e)=>new Ie({options:t,typeName:v.ZodUnion,..._(e)});le=t=>t instanceof Ne?le(t.schema):t instanceof W?le(t.innerType()):t instanceof Me?[t.value]:t instanceof Le?t.options:t instanceof Fe?S.objectValues(t.enum):t instanceof je?le(t._def.innerType):t instanceof Pe?[void 0]:t instanceof Oe?[null]:t instanceof G?[void 0,...le(t.unwrap())]:t instanceof ie?[null,...le(t.unwrap())]:t instanceof vt||t instanceof Ue?le(t.unwrap()):t instanceof ze?le(t._def.innerType):[],Wt=class t extends x{_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}),w;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]}),w)}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=le(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:v.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,..._(n)})}};De=class extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(o,i)=>{if(Gt(o)||Gt(i))return w;let a=Hr(o.value,i.value);return a.valid?((Jt(o)||Jt(i))&&r.dirty(),{status:r.value,value:a.data}):(m(n,{code:d.invalid_intersection_types}),w)};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}))}};De.create=(t,e,r)=>new De({left:t,right:e,typeName:v.ZodIntersection,..._(r)});oe=class t extends x{_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}),w;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"}),w;!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 J(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>O.mergeArray(r,i)):O.mergeArray(r,o)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};oe.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new oe({items:t,typeName:v.ZodTuple,rest:null,..._(e)})};Yt=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:d.invalid_type,expected:p.object,received:n.parsedType}),w;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in n.data)s.push({key:o._parse(new J(n,a,n.path,a)),value:i._parse(new J(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?O.mergeObjectAsync(r,s):O.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:v.ZodRecord,..._(n)}):new t({keyType:ye.create(),valueType:e,typeName:v.ZodRecord,..._(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:d.invalid_type,expected:p.map,received:n.parsedType}),w;let s=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([a,c],u)=>({key:s._parse(new J(n,a,n.path,[u,"key"])),value:o._parse(new J(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 w;(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 w;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};et.create=(t,e,r)=>new et({valueType:e,keyType:t,typeName:v.ZodMap,..._(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:d.invalid_type,expected:p.set,received:n.parsedType}),w;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 w;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 J(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:v.ZodSet,..._(e)});qt=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:d.invalid_type,expected:p.function,received:r.parsedType}),w;function n(a,c){return wt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,We(),ue].filter(u=>!!u),issueData:{code:d.invalid_arguments,argumentsError:c}})}function s(a,c){return wt({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,We(),ue].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 ve){let a=this;return N(async function(...c){let u=new F([]),l=await a._def.args.parseAsync(c,o).catch(k=>{throw u.addIssue(n(c,k)),u}),g=await Reflect.apply(i,this,l);return await a._def.returns._def.type.parseAsync(g,o).catch(k=>{throw u.addIssue(s(g,k)),u})})}else{let a=this;return N(function(...c){let u=a._def.args.safeParse(c,o);if(!u.success)throw new F([n(c,u.error)]);let l=Reflect.apply(i,this,u.data),g=a._def.returns.safeParse(l,o);if(!g.success)throw new F([s(l,g.error)]);return g.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:oe.create(e).rest(de.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||oe.create([]).rest(de.create()),returns:r||de.create(),typeName:v.ZodFunction,..._(n)})}},Ne=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})}};Ne.create=(t,e)=>new Ne({getter:t,typeName:v.ZodLazy,..._(e)});Me=class extends x{_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}),w}return{status:"valid",value:e.data}}get value(){return this._def.value}};Me.create=(t,e)=>new Me({value:t,typeName:v.ZodLiteral,..._(e)});Le=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:d.invalid_type}),w}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}),w}return N(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})}};Le.create=ms;Fe=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:d.invalid_type}),w}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:d.invalid_enum_value,options:s}),w}return N(e.data)}get enum(){return this._def.values}};Fe.create=(t,e)=>new Fe({values:t,typeName:v.ZodNativeEnum,..._(e)});ve=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:d.invalid_type,expected:p.promise,received:r.parsedType}),w;let n=r.parsedType===p.promise?r.data:Promise.resolve(r.data);return N(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ve.create=(t,e)=>new ve({type:t,typeName:v.ZodPromise,..._(e)});W=class extends x{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.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 w;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?w:c.status==="dirty"?Ae(c.value):r.value==="dirty"?Ae(c.value):c});{if(r.value==="aborted")return w;let a=this._def.schema._parseSync({data:i,path:n.path,parent:n});return a.status==="aborted"?w:a.status==="dirty"?Ae(a.value):r.value==="dirty"?Ae(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"?w:(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"?w:(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(!ge(i))return w;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=>ge(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:r.value,value:a})):w);S.assertNever(s)}};W.create=(t,e,r)=>new W({schema:t,typeName:v.ZodEffects,effect:e,..._(r)});W.createWithPreprocess=(t,e,r)=>new W({schema:e,effect:{type:"preprocess",transform:t},typeName:v.ZodEffects,..._(r)});G=class extends x{_parse(e){return this._getType(e)===p.undefined?N(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};G.create=(t,e)=>new G({innerType:t,typeName:v.ZodOptional,..._(e)});ie=class extends x{_parse(e){return this._getType(e)===p.null?N(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ie.create=(t,e)=>new ie({innerType:t,typeName:v.ZodNullable,..._(e)});je=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}};je.create=(t,e)=>new je({innerType:t,typeName:v.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,..._(e)});ze=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 Ye(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new F(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new F(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};ze.create=(t,e)=>new ze({innerType:t,typeName:v.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,..._(e)});rt=class extends x{_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}),w}return{status:"valid",value:e.data}}};rt.create=t=>new rt({typeName:v.ZodNaN,..._(t)});ya=Symbol("zod_brand"),vt=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}},bt=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"?w:o.status==="dirty"?(r.dirty(),Ae(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"?w: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:v.ZodPipeline})}},Ue=class extends x{_parse(e){let r=this._def.innerType._parse(e),n=s=>(ge(s)&&(s.value=Object.freeze(s.value)),s);return Ye(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};Ue.create=(t,e)=>new Ue({innerType:t,typeName:v.ZodReadonly,..._(e)});wa={object:j.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"})(v||(v={}));va=(t,e={message:`Input not instance of ${t.name}`})=>ps(r=>r instanceof t,e),hs=ye.create,gs=Te.create,ba=rt.create,ka=Re.create,ys=Ce.create,_a=$e.create,xa=Xe.create,Sa=Pe.create,Ea=Oe.create,Aa=we.create,Ta=de.create,Ra=ee.create,Ca=Qe.create,$a=fe.create,Pa=j.create,Oa=j.strictCreate,Ia=Ie.create,Da=Wt.create,Na=De.create,Ma=oe.create,La=Yt.create,Fa=et.create,ja=tt.create,za=qt.create,Ua=Ne.create,Za=Me.create,Ha=Le.create,Ba=Fe.create,Va=ve.create,Ka=W.create,Ga=G.create,Ja=ie.create,Wa=W.createWithPreprocess,Ya=bt.create,qa=()=>hs().optional(),Xa=()=>gs().optional(),Qa=()=>ys().optional(),ec={string:(t=>ye.create({...t,coerce:!0})),number:(t=>Te.create({...t,coerce:!0})),boolean:(t=>Ce.create({...t,coerce:!0})),bigint:(t=>Re.create({...t,coerce:!0})),date:(t=>$e.create({...t,coerce:!0}))},tc=w});var f={};Q(f,{BRAND:()=>ya,DIRTY:()=>Ae,EMPTY_PATH:()=>Wi,INVALID:()=>w,NEVER:()=>tc,OK:()=>N,ParseStatus:()=>O,Schema:()=>x,ZodAny:()=>we,ZodArray:()=>fe,ZodBigInt:()=>Re,ZodBoolean:()=>Ce,ZodBranded:()=>vt,ZodCatch:()=>ze,ZodDate:()=>$e,ZodDefault:()=>je,ZodDiscriminatedUnion:()=>Wt,ZodEffects:()=>W,ZodEnum:()=>Le,ZodError:()=>F,ZodFirstPartyTypeKind:()=>v,ZodFunction:()=>qt,ZodIntersection:()=>De,ZodIssueCode:()=>d,ZodLazy:()=>Ne,ZodLiteral:()=>Me,ZodMap:()=>et,ZodNaN:()=>rt,ZodNativeEnum:()=>Fe,ZodNever:()=>ee,ZodNull:()=>Oe,ZodNullable:()=>ie,ZodNumber:()=>Te,ZodObject:()=>j,ZodOptional:()=>G,ZodParsedType:()=>p,ZodPipeline:()=>bt,ZodPromise:()=>ve,ZodReadonly:()=>Ue,ZodRecord:()=>Yt,ZodSchema:()=>x,ZodSet:()=>tt,ZodString:()=>ye,ZodSymbol:()=>Xe,ZodTransformer:()=>W,ZodTuple:()=>oe,ZodType:()=>x,ZodUndefined:()=>Pe,ZodUnion:()=>Ie,ZodUnknown:()=>de,ZodVoid:()=>Qe,addIssueToContext:()=>m,any:()=>Aa,array:()=>$a,bigint:()=>ka,boolean:()=>ys,coerce:()=>ec,custom:()=>ps,date:()=>_a,datetimeRegex:()=>fs,defaultErrorMap:()=>ue,discriminatedUnion:()=>Da,effect:()=>Ka,enum:()=>Ha,function:()=>za,getErrorMap:()=>We,getParsedType:()=>se,instanceof:()=>va,intersection:()=>Na,isAborted:()=>Gt,isAsync:()=>Ye,isDirty:()=>Jt,isValid:()=>ge,late:()=>wa,lazy:()=>Ua,literal:()=>Za,makeIssue:()=>wt,map:()=>Fa,nan:()=>ba,nativeEnum:()=>Ba,never:()=>Ra,null:()=>Ea,nullable:()=>Ja,number:()=>gs,object:()=>Pa,objectUtil:()=>jr,oboolean:()=>Qa,onumber:()=>Xa,optional:()=>Ga,ostring:()=>qa,pipeline:()=>Ya,preprocess:()=>Wa,promise:()=>Va,quotelessJson:()=>Ki,record:()=>La,set:()=>ja,setErrorMap:()=>Ji,strictObject:()=>Oa,string:()=>hs,symbol:()=>xa,transformer:()=>Ka,tuple:()=>Ma,undefined:()=>Sa,union:()=>Ia,unknown:()=>Ta,util:()=>S,void:()=>Ca});var Br=E(()=>{Kt();Ur();is();yt();ws();Vt()});var nt=E(()=>{Br();Br()});import{createHash as rc}from"node:crypto";function be(t){let e=vs.get(t);return e||(e=rc("sha256").update(`tkr:${t}`).digest("hex").slice(0,16),vs.set(t,e)),e}var nc,sc,st,vs,kt=E(()=>{"use strict";nt();nc=f.enum(["normal","compact","minimal"]),sc=f.enum(["off","light","balanced","max"]),st=f.object({enabled:f.boolean().default(!0),telemetryOptIn:f.boolean().default(!0),outputVerbosity:nc.default("compact"),reducer:sc.default("off"),filters:f.object({enableAll:f.boolean().default(!0),disabled:f.array(f.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),vs=new Map});var ks={};Q(ks,{bundleRefreshFile:()=>_t,claudeCommandFile:()=>_e,claudeCommandsDir:()=>er,contentCacheDir:()=>St,contentCacheFile:()=>Xt,enrollCooldownFile:()=>Vr,installIdFile:()=>ot,managedCommandsFile:()=>Qt,skillFile:()=>ke,skillsDir:()=>xt,stateFile:()=>oc,tokmizerHome:()=>y});import bs from"node:os";import{join as Y}from"node:path";function y(){return process.env.TOKMIZER_HOME||Y(bs.homedir(),".tokmizer")}function oc(){return Y(y(),"state.json")}function ot(){return Y(y(),"install-id")}function Vr(){return Y(y(),"enroll-cooldown")}function _t(){return Y(y(),"bundle-refresh.json")}function xt(){return Y(y(),"skills")}function ke(t){return Y(xt(),`${t}.md`)}function St(){return Y(y(),"content-cache")}function Xt(t){return Y(St(),t)}function Qt(){return Y(y(),"managed-commands.json")}function er(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||Y(bs.homedir(),".claude","commands")}function _e(t){return Y(er(),`${t}.md`)}var I=E(()=>{"use strict"});import it from"node:os";import{createHash as ic,randomUUID as ac}from"node:crypto";import{readFile as _s,writeFile as xs,mkdir as cc}from"node:fs/promises";async function tr(){try{let r=(await _s(ot(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await cc(y(),{recursive:!0});let t=ac();try{return await xs(ot(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await _s(ot(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await xs(ot(),t,{mode:384}),t}}function Kr(t){return ic("sha256").update(t).digest("hex")}function uc(){let t=it.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 q(){let t=await tr(),e=it.hostname(),r=it.platform(),n=it.release(),s=it.cpus(),o=s[0]?.model??"unknown",i=s.length,a=Kr(uc()),c=Kr(it.userInfo().username),u=[e,r,n,o,String(i),a,c,t].join("|");return{fingerprint:Kr(u),installId:t,hostname:e,os:r,osVersion:n,cpuModel:o,cpuCores:i,macHash:a,usernameHash:c}}var Ze=E(()=>{"use strict";I()});import{join as Gr}from"node:path";import{mkdir as lc,readFile as dc,writeFile as fc,unlink as Ss,rename as mc}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 Wr(t){return t?.dir??y()}async function A(t){let e=Wr(t);try{let r=await dc(Gr(e,Jr),"utf8"),n=JSON.parse(r),s=n.timeZone;return{...n,lastSettingsRevision:n.lastSettingsRevision??0,get timeZone(){return s??=Et()},bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}async function rr(t,e){let r=Wr(e);await lc(r,{recursive:!0}),t.installedAt==null&&(t.installedAt=Math.floor(Date.now()/1e3));let n=Gr(r,Jr),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;await fc(s,JSON.stringify(t,null,2),{mode:384});try{await mc(s,n)}catch(o){try{await Ss(s)}catch{}throw o}}async function nr(t){let e=Wr(t);try{await Ss(Gr(e,Jr))}catch{return}}var Jr,me=E(()=>{"use strict";I();Jr="state.json"});import{createRequire as pc}from"node:module";function gc(){for(let t of["../package.json","../../package.json"])try{let e=hc(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}function at(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 hc,X,ct=E(()=>{"use strict";hc=pc(import.meta.url);X=gc()});var Es,As=E(()=>{"use strict";Es=`-----BEGIN PUBLIC KEY-----
4
4
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
5
5
  -----END PUBLIC KEY-----
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(`
6
+ `});import{createHmac as yc,createPublicKey as wc,verify as vc}from"node:crypto";function At(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Es).replace(/\\n/g,`
7
+ `)}function kc(t,e,r,n){try{let s=wc({key:n,format:"pem"});return vc(null,Buffer.from(`${e}.${t}`,"utf8"),s,Buffer.from(r,"base64url"))}catch{return!1}}async function Se(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>bc)throw new xe("http","stale server response (resp-ts outside freshness window)")}if(!r||!r.includes("BEGIN PUBLIC KEY"))throw new xe("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 xe("http","missing server response signature");if(!kc(e,o,s,r))throw new xe("http","invalid server response signature");return JSON.parse(e)}function _c(t,e,r){return yc("sha256",r).update(`${e}.${t}`).digest("hex")}async function z(t,e,r,n){let s=Date.now(),o=r===void 0?"":JSON.stringify(r),i=n.signingSecret?_c(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",l={method:t,headers:a,signal:AbortSignal.timeout(c)};u&&(l.body=o);try{return await fetch(`${n.baseUrl}${e}`,l)}catch(g){let b=g.name;throw b==="TimeoutError"||b==="AbortError"?new xe("timeout",`${t} ${e} timed out after ${c}ms`):new xe("network",`${t} ${e} failed: ${g.message}`)}}var bc,xe,He=E(()=>{"use strict";ct();As();bc=300*1e3;xe=class extends Error{constructor(r,n,s){super(n);this.kind=r;this.status=s;this.name="TransportError"}kind;status}});import{readFile as Js,writeFile as Ws,mkdir as Ys,chmod as Uc,rm as $t,rename as qs,readdir as Zc}from"node:fs/promises";import{randomUUID as Hc}from"node:crypto";import{join as lt}from"node:path";import{setTimeout as Vs}from"node:timers/promises";async function U(){try{let t=await Js(lt(y(),rn),"utf8"),e=JSON.parse(t);return st.parse({...Ks,...e})}catch{return Ks}}async function nn(t){await Ys(y(),{recursive:!0});let e=lt(y(),rn),r=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Ws(r,JSON.stringify(t,null,2),{mode:384});try{await Uc(r,384),await qs(r,e)}catch(n){try{await $t(r,{force:!0})}catch{}throw n}}async function Gs(t){let e=[];for(let r of await Zc(t)){let n=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(r);if(!n)continue;let s=lt(t,r);try{process.kill(Number(n[1]),0)}catch(o){let i=o.code;if(i==="ESRCH"){await $t(s,{force:!0});continue}if(i!=="EPERM")throw o}try{let o=JSON.parse(await Js(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 Xs(t){let e=Bc.parse(t),r=lt(y(),"settings-cache-locks");await Ys(r,{recursive:!0,mode:448});let n=`${process.pid}-${Hc()}.json`,s=lt(r,n),o=`${s}.tmp`,i=performance.now()+3e3,a=async c=>{for(await Ws(o,String(c),{mode:384});;)try{await qs(o,s);return}catch(u){let l=u.code;if(process.platform!=="win32"||l!=="EPERM"&&l!=="EBUSY"||performance.now()>=i)throw u;await Vs(10)}};try{await a(0);let c=Math.max(0,...(await Gs(r)).map(u=>u.ticket))+1;if(!Number.isSafeInteger(c))throw new Error("Invalid local settings lock");for(await a(c);;){if(!(await Gs(r)).some(l=>l.id!==n&&(l.ticket===0||l.ticket<c||l.ticket===c&&l.id<n))){let l=await U(),g=st.parse({...l,...e,filters:{...l.filters,...e.filters}});return await nn(g),g}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 Vs(10)}}finally{await Promise.all([$t(s,{force:!0}),$t(o,{force:!0})])}}async function Qs(){try{await $t(lt(y(),rn),{force:!0})}catch{}}var rn,Ks,Bc,Pt=E(()=>{"use strict";kt();I();rn="settings-cache.json",Ks=st.parse({}),Bc=st.partial().extend({filters:st.shape.filters.removeDefault().partial().optional()})});var cr,sn=E(()=>{"use strict";nt();cr=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 on(t){return JSON.stringify(t)+ur}function*no(t){let e=0;for(;;){let r=t.indexOf(ur,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function Ot(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var Jc,Wc,Yc,qc,km,_m,xm,ro,ur,Sm,so=E(()=>{"use strict";nt();sn();Jc=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()}),Wc=f.object({id:f.string().min(1).max(64),op:f.literal("ping")}),Yc=f.object({id:f.string().min(1).max(64),op:f.literal("shutdown"),installId:f.string().min(1).max(64)}),qc=f.object({id:f.string().min(1).max(64),op:f.literal("reload"),installId:f.string().min(1).max(64).optional()}),km=f.discriminatedUnion("op",[Jc,Wc,Yc,qc]),_m=f.object({id:f.string(),ok:f.literal(!0),data:f.unknown()}),xm=f.object({id:f.string(),ok:f.literal(!1),err:f.string(),retryAfterMs:f.number().int().nonnegative().optional()}),ro=f.object({filter:cr.nullable(),cacheHit:f.boolean().optional()}),ur=`
8
+ `,Sm=64*1024});var ao={};Q(ao,{IDLE_TIMEOUT_MS:()=>cu,PARENT_WATCH_INTERVAL_MS:()=>au,cleanupStaleSocket:()=>lr,isParentAlive:()=>uu,socketPath:()=>dt});import Xc from"node:os";import{join as It}from"node:path";import{existsSync as Qc,statSync as eu,lstatSync as oo,unlinkSync as tu,mkdirSync as ru,chmodSync as nu}from"node:fs";import{createHash as su}from"node:crypto";function ou(t){let e=su("sha256").update(y()).digest("hex").slice(0,8),r=It(Xc.tmpdir(),`tkr-${t}-${e}`),n=It(r,"d.sock");if(Buffer.byteLength(n)>an)throw new Error("Temporary directory path is too long for IPC");return io(r,t),n}function iu(t,e){try{let r=oo(t);return r.isDirectory()&&r.uid===e&&(r.mode&63)===0}catch{return!1}}function io(t,e){ru(t,{recursive:!0,mode:448});let r=oo(t);if(!r.isDirectory()||r.uid!==e)throw new Error("Unsafe IPC directory");nu(t,448)}function dt(){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&&iu(e,t)){let s=It(e,`tokmizer-${t}.sock`);if(Buffer.byteLength(s)<=an)return{path:s,isPipe:!1}}let r=It(y(),"run"),n=It(r,"daemon.sock");return Buffer.byteLength(n)>an?{path:ou(t),isPipe:!1}:(io(r,t),{path:n,isPipe:!1})}async function lr(){let{path:t,isPipe:e}=dt();if(e||!Qc(t))return;try{if(!eu(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{tu(t)}catch{}}function uu(){let t=process.ppid;if(!t||t===1)return!1;try{return process.kill(t,0),!0}catch{return!1}}var an,au,cu,cn=E(()=>{"use strict";I();an=100;au=3e4,cu=5*6e4});var ft={};Q(ft,{connectDaemon:()=>po,shutdownDaemon:()=>mo});import{createConnection as lu}from"node:net";import{spawn as du}from"node:child_process";import{existsSync as lo,openSync as un,closeSync as co,unlinkSync as dn,writeFileSync as fn,mkdirSync as mn,readFileSync as fu,appendFileSync as mu,rmSync as pu,statSync as hu}from"node:fs";import{dirname as gu,join as pn}from"node:path";import{fileURLToPath as yu}from"node:url";function hn(){return pn(y(),"daemon.spawn.fail")}function gn(){return pn(y(),"daemon.log")}function ku(){try{let t=Number(fu(hn(),"utf8"));return Number.isFinite(t)&&Date.now()-t<vu}catch{return!1}}function _u(t){try{mn(y(),{recursive:!0});let e=gn();try{hu(e).size>bu&&dn(e)}catch{}mu(e,`${new Date().toISOString()} ${t}
9
+ `)}catch{}}function xu(t){try{mn(y(),{recursive:!0}),fn(hn(),String(Date.now()))}catch{}_u(`spawn failed: ${t.message}`)}function Su(){try{pu(hn(),{force:!0})}catch{}}async function dr(t,e){return new Promise((r,n)=>{let s=lu(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 Eu(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:yu(new URL("../bin/tkr-daemon.js",import.meta.url))}async function ln(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 dr(t,75)).destroy(),!0}catch{}else if(lo(t))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Au(t){let e=Eu();if(!lo(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=dt(),n=process.platform==="win32"?y():gu(r);try{mn(n,{recursive:!0})}catch{}let s=pn(n,"daemon.spawn.lock"),o=null;try{o=un(s,"wx"),fn(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await ln(r,5e3))return;try{dn(s)}catch{}try{o=un(s,"wx"),fn(o,String(process.pid))}catch(c){if(c.code==="EEXIST"){await ln(r,5e3);return}throw c}}else throw i}try{let i=null;try{i=un(gn(),"a")}catch{}if(du(process.execPath,[e],{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),i!==null)try{co(i)}catch{}if(!await ln(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{co(o)}catch{}try{dn(s)}catch{}}}}async function mo(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:dt(),r=await tr();try{let n=await dr(e,fo);n.write(on({id:Ot(),op:"shutdown",installId:r})),await new Promise(s=>setTimeout(s,150));try{n.destroy()}catch{}return!0}catch{return!1}}async function Tu(t,e){let r=Date.now()+e;for(;Date.now()<r;){try{(await dr(t,250)).destroy()}catch{return!0}await new Promise(n=>setTimeout(n,100))}return!1}async function po(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:dt(),r=await tr(),n=null,s=0,o=!1;for(;s<=uo;)try{n=await dr(e,fo),Su();break}catch{if(s+=1,s>uo)throw new Error(`tkr-daemon unreachable at ${e}`);if(ku())throw new Error(`tkr-daemon spawn on cooldown (see ${gn()})`);await lr();try{await Au(r),o=!0}catch(l){throw xu(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 g=-1;for(let k=0;k<a.length;k++)a[k]===ur&&(g=k);if(g<0)return;let b=[];for(let k of no(a.slice(0,g+1)))b.push(k);a=a.slice(g+1);for(let k of b)if(k)try{let C=JSON.parse(k),P=i.get(C.id);if(!P)continue;clearTimeout(P.timer),i.delete(C.id),P.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((g,b)=>{if(n.destroyed||!n.writable){b(new Error("daemon socket closed"));return}let k=setTimeout(()=>{i.delete(l.id),b(new Error(`daemon request timeout (${l.op})`))},wu);i.set(l.id,{resolve:g,reject:b,timer:k}),n.write(on(l))})}let u={filter:async(l,g,b)=>{let k=await c({id:Ot(),op:"filter",cmd:l.slice(0,2048),plan:g,...b&&b.length>0?{allowed:b.slice(0,512)}:{},installId:r});if(!k.ok)return null;let C=ro.safeParse(k.data);return C.success?C.data.filter:null},ping:async()=>{let l=await c({id:Ot(),op:"ping"});if(!l.ok)throw new Error(l.err);return l.data},reload:async()=>{let l=await c({id:Ot(),op:"reload",installId:r});if(!l.ok)throw new Error(l.err);return l.data},close:()=>{try{n.destroy()}catch{}}};if(!t.skipVersionCheck&&!o){let l=!1;try{l=(await u.ping()).version!==X}catch(g){throw u.close(),g}if(l){try{await mo(t.socketPath?{socketPath:t.socketPath}:{})}catch{}u.close();let g=await Tu(e,2e3);if(await lr(),!g)throw new Error("stale daemon still running after shutdown request");return po({...t,skipVersionCheck:!0})}}return u}var fo,wu,uo,vu,bu,mt=E(()=>{"use strict";so();cn();I();Ze();ct();fo=500,wu=3e3,uo=1,vu=6e4,bu=256*1024});import{readFileSync as Ru,renameSync as Cu,statSync as $u,writeFileSync as Pu}from"node:fs";function yn(t,e,r){try{if($u(t).size<=e)return;let n=Ru(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}`;Pu(i,s.length?`${s.join(`
11
11
  `)}
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(`
12
+ `:"",{mode:384}),Cu(i,t)}catch{}}var wn=E(()=>{"use strict"});var vo={};Q(vo,{codexHookCommand:()=>kn,codexHookInstalled:()=>vn,codexHooksFile:()=>pt,ensureCodexHook:()=>bn});import{readFile as Ou,writeFile as Iu,rename as Du,mkdir as Nu,copyFile as Mu}from"node:fs/promises";import{existsSync as ho,readFileSync as Lu,accessSync as Fu,constants as ju}from"node:fs";import{join as fr}from"node:path";import zu from"node:os";function pt(){return fr(process.env.CODEX_HOME||fr(zu.homedir(),".codex"),"hooks.json")}function wo(t){return(t.hooks??[]).find(e=>typeof e.command=="string"&&e.command.includes(yo))}function vn(){try{return(JSON.parse(Lu(pt(),"utf8")).hooks?.PreToolUse??[]).some(e=>wo(e)!=null)}catch{return!1}}async function bn(t){let e=pt(),r={},n=ho(e);if(n)try{if(r=JSON.parse(await Ou(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(wo).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 Nu(fr(e,".."),{recursive:!0});let c=`${e}.tkr-bak`;n&&!ho(c)&&await Mu(e,c);let u=`${e}.tmp-${process.pid}`;await Iu(u,`${JSON.stringify(r,null,2)}
13
+ `),await Du(u,e)}catch{return"error"}return i}function go(t){return`'${t.replace(/'/g,"'\\''")}'`}function kn(t,e){if(process.platform!=="win32")for(let r of t.split(":")){if(!r||r.includes("node_modules"))continue;let n=fr(r,yo);try{return Fu(n,ju.X_OK),go(n)}catch{}}return`node ${go(e)}`}var yo,_n=E(()=>{"use strict";yo="tkr-codex-hook"});var mr={};Q(mr,{autoUpdateEnabled:()=>En,claimSelfUpdateSlot:()=>To,defaultDeps:()=>Qu,maybeSpawnSelfUpdate:()=>tl,selfUpdate:()=>qu,setAutoUpdate:()=>Wu});import{spawn as So}from"node:child_process";import{accessSync as Uu,constants as Zu,existsSync as Dt,mkdirSync as Eo,readFileSync as Ao,rmSync as Hu,writeFileSync as Sn,appendFileSync as Bu}from"node:fs";import{fileURLToPath as Vu}from"node:url";import{join as te}from"node:path";import Ku from"node:os";function En(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!Dt(xn())}function Wu(t){if(t){Hu(xn(),{force:!0});return}Eo(y(),{recursive:!0,mode:448}),Sn(xn(),String(Date.now()))}function To(t=Date.now()){try{let e=Number(Ao(_o(),"utf8"));if(Number.isFinite(e)&&t-e<Gu)return!1}catch{}try{Eo(y(),{recursive:!0,mode:448}),Sn(_o(),String(t))}catch{return!1}return!0}function Yu(t){try{let e=te(y(),"self-update.log");Bu(e,`${new Date().toISOString()} ${t}
14
+ `,{mode:384}),yn(e,ko,ko/2)}catch{}}async function qu(t){if(!En())return["disabled"];let e=t.latest;if(!e||!bo.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(!at(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&&bo.test(c))if(!at(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=>!at(a,Ju))&&t.codexInstalled()&&!Dt(xo())){let a=await t.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{Sn(xo(),String(Date.now()))}catch{}r.push(`codex hook ${a}`)}}for(let a of r)Yu(a);return r}function Xu(t,e,r){return new Promise(n=>{let s=So(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 Qu(t){return{latest:t,run:Xu,npmVersion:e=>{try{let r=JSON.parse(Ao(te(e,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof r=="string"?r:void 0}catch{return}},writable:e=>{try{return Uu(e,Zu.W_OK),!0}catch{return!1}},codexInstalled:()=>Dt(process.env.CODEX_HOME||te(Ku.homedir(),".codex")),ensureCodexHook:async e=>{let{ensureCodexHook:r,codexHookCommand:n}=await Promise.resolve().then(()=>(_n(),vo)),s=te(e,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),o=n(process.env.PATH??"",s);return o.startsWith("node ")&&!Dt(s)?"error":r(o)}}}function el(){let t=Vu(new URL(".",import.meta.url));for(let e of[te(t),te(t,"..")])if(Dt(te(e,"bin","tkr.js")))return e;return null}function tl(){try{if(!En())return;let t=el();if(!t||!To())return;let e=So(process.execPath,[te(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 bo,Gu,Ju,ko,xn,_o,xo,pr=E(()=>{"use strict";I();ct();wn();bo=/^\d+\.\d+\.\d+$/,Gu=6*36e5,Ju="0.9.34",ko=64*1024,xn=()=>te(y(),"auto-update-off"),_o=()=>te(y(),"self-update-last"),xo=()=>te(y(),"codex-hook-offered")});function Nt(t){let e=t;for(let[r,n]of rl)e=e.replace(r,n);return e}var rl,An=E(()=>{"use strict";rl=[[/(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 gr}from"node:path";import{appendFileSync as Co,chmodSync as nl,existsSync as Mt,mkdirSync as Cn,readFileSync as On,renameSync as $n,rmdirSync as $o,statSync as In,unlinkSync as ht,utimesSync as sl,writeFileSync as Dn}from"node:fs";function Nn(t){return gr(Ft(),`${t}.lock`)}function il(t){let e=Nn(t);try{return Cn(Ft(),{recursive:!0,mode:448}),Cn(e),!0}catch{try{Date.now()-In(e).mtimeMs>ol&&$o(e)}catch{return!1}return!1}}function al(t){try{sl(Nn(t),new Date,new Date)}catch{return}}function cl(t){try{$o(Nn(t))}catch{return}}function Ft(){return gr(y(),"spool")}function hr(t){return gr(Ft(),`${t}.jsonl`)}function yr(t){return gr(Ft(),`${t}.pending.jsonl`)}function wr(t,e){try{Cn(Ft(),{recursive:!0,mode:448});let r=hr(t);if(Mt(r)&&In(r).size>=Pn)return;Co(r,JSON.stringify(e)+`
15
+ `,{mode:384}),nl(r,384)}catch{return}}function Ro(t,e){Co(t,On(e,"utf8"),{mode:384}),Dn(e,"",{mode:384});try{ht(e)}catch{return}}function ul(t){if(In(t).size<=Pn)return;let e=On(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>Pn)break;n.unshift(o)}Dn(t,n.length?n.join(`
17
17
  `)+`
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(`
18
+ `:"",{mode:384})}function ll(t){try{let e=yr(t),r=hr(t),n=`${r}.merging`;if(Mt(n)&&Ro(e,n),Mt(e))Mt(r)&&($n(r,n),Ro(e,n));else{if(!Mt(r))return[];$n(r,e)}ul(e);let s=[];for(let o of On(e,"utf8").split(`
19
+ `))if(o.trim())try{s.push(JSON.parse(o))}catch{continue}return s.length===0?(ht(e),[]):s}catch{return[]}}function Po(t){try{ht(yr(t))}catch{return}}function dl(t,e){if(e.length===0){Po(t);return}let r=yr(t),n=`${r}.tmp`;Dn(n,e.map(s=>JSON.stringify(s)).join(`
20
20
  `)+`
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}
21
+ `,{mode:384}),$n(n,r)}async function vr(t,e,r={}){if(Rn.has(t)||!il(t))return"fail";Rn.add(t);try{if(!(await U()).telemetryOptIn)return Lt(t),"empty";let n=ll(t);if(n.length===0)return"empty";let s=await A();if(!s)return"fail";if(r.requirePro&&s.plan!=="pro")return Po(t),"ok";let o=r.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await q();for(let a=0;a<n.length;a+=Tn){if(!(await U()).telemetryOptIn)return Lt(t),"empty";al(t);let c=await z("POST",e,{events:n.slice(a,a+Tn)},{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";dl(t,n.slice(a+Tn))}return"ok"}catch{return"fail"}finally{Rn.delete(t),cl(t)}}function Lt(t){try{ht(hr(t))}catch{}try{ht(`${hr(t)}.merging`)}catch{}try{ht(yr(t))}catch{return}}var Pn,Tn,ol,Rn,br=E(()=>{"use strict";I();me();Ze();He();Pt();Pn=512*1024,Tn=100,ol=12e4,Rn=new Set});var Io={};Q(Io,{commandName:()=>kr,flushTelemetry:()=>vl,recordTelemetry:()=>Mn});function Oo(t){let e=t.toLowerCase();return e.startsWith("git")||hl.has(e)}function kr(t){let e=t.trim().split(/\s+/).filter(a=>a.length>0),r=0;for(;r<e.length&&pl.test(e[r]??"");)r+=1;let n=e[r];if(!n||!fl.test(n)||n.length>yl||Oo(n)||gl.test(n)||Nt(n)!==n)return"";let s=e[r+1];return s&&Oo(s)?"":(s&&wl.has(n.toLowerCase())&&ml.test(s)?`${n} ${s}`:n).slice(0,64)}async function Mn(t){if(!t.telemetryOptIn)return;let e=kr(t.cmd),r=e&&Nt(e)===e?e:"other",n=t.sessionId?t.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";wr("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 vl(t){return vr("telemetry","/api/v1/telemetry",{baseUrl:t})}var fl,ml,pl,hl,gl,yl,wl,_r=E(()=>{"use strict";An();br();fl=/^[a-z0-9][a-z0-9._-]*$/i,ml=/^[a-z][a-z-]+$/,pl=/^[A-Za-z_][A-Za-z0-9_]*=/,hl=new Set(["gh","glab","gup","hub","gist"]),gl=/^(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,yl=24,wl=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 Do={};Q(Do,{flush:()=>kl,recordEvent:()=>bl});async function bl(t){if(t.plan!=="pro"||!(await U()).telemetryOptIn)return;let e=kr(t.cmd);!e||Nt(e)!==e||wr("learn",{cmd:e,filterId:t.filterId==null?null:be(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}async function kl(t){return vr("learn","/api/v1/learn",{baseUrl:t,requirePro:!0})}var No=E(()=>{"use strict";_r();An();br();kt();Pt()});function Bn(t){return Zn.filter(e=>Hn.has(e.host)===t).flatMap(e=>e.vars)}function Tr(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of Zn)if(s.vars.some(o=>t[o]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!Hn.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}function Ho(t){return Hn.has(t)?"native-hooks":"shell-shim"}var Zn,Up,Hn,Vn=E(()=>{"use strict";Zn=[{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"]}],Up=[...Zn.map(t=>t.host),"shell"],Hn=new Set(["claude-code","codex"])});var qo={};Q(qo,{ensurePathInRc:()=>Zt,ensureShimPath:()=>Ir,envWithoutShimDir:()=>Ul,installShims:()=>Ge,listShimmableCommands:()=>Zl,powershellProfilePath:()=>Yo,powershellProfileSnippet:()=>Wo,refreshShimsIfStale:()=>Hl,refreshStaleShims:()=>Go,resolveShimJsPath:()=>ae,shellRcLine:()=>he,shimsDir:()=>D,shimsInstalled:()=>Ht,uninstallShims:()=>Jn,unixWrapperScript:()=>Pr,windowsWrapperScript:()=>Jo});import{mkdir as Kn,writeFile as Ut,readFile as Cr,unlink as Gn,chmod as Ko,rename as Fl}from"node:fs/promises";import{existsSync as Ke}from"node:fs";import{delimiter as Bo,join as M,dirname as Rr}from"node:path";import{fileURLToPath as jl}from"node:url";import{execFileSync as zl}from"node:child_process";import B from"node:os";function D(){return M(y(),"shims")}function Ul(){let t=D(),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 Ht(){try{let t=B.platform()==="win32";return Ke(M(D(),t?"git.cmd":"git"))}catch{return!1}}function Zl(){return[...$r]}function zt(t){return`'${t.replace(/'/g,"'\\''")}'`}function Vo(t){return`"${t.map(e=>`\${${e}:-}`).join("")}"`}function Pr(t,e){return["#!/bin/sh",`if [ -n ${Vo(Bn(!0))} ] || { [ -z ${Vo(Bn(!1))} ] && [ ! -t 1 ]; }; then`," set -f",` _tk_d=${zt(D())}`,` _tk_c=${zt(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 ${zt(t)} --as ${zt(e)} "$@"`,""].join(`
22
+ `)}async function Hl(t,e){if(B.platform()==="win32")return 0;try{if(await Cr(M(D(),e),"utf8")===Pr(t,e))return 0}catch{return 0}return Go(t)}async function Go(t){if(B.platform()==="win32")return 0;let e=D();if(!Ke(e))return 0;let r=0;for(let n of $r){let s=M(e,n),o=Pr(t,n),i;try{i=await Cr(s,"utf8")}catch{continue}if(i===o)continue;let a=`${s}.${process.pid}.tmp`;try{await Ut(a,o,{mode:493}),await Ko(a,493),await Fl(a,s),r+=1}catch{try{await Gn(a)}catch{}}}return r}function Jo(t,e){return["@echo off",`node "${t}" --as "${e}" %*`,""].join(`\r
23
+ `)}async function Ge(t){let e=D();await Kn(e,{recursive:!0,mode:448});let r=[],n=B.platform()==="win32";for(let s of $r){let o=n?M(e,`${s}.cmd`):M(e,s);if(Ke(o))try{await Gn(o)}catch{}n?await Ut(o,Jo(t,s)):(await Ut(o,Pr(t,s),{mode:493}),await Ko(o,493)),r.push(s)}return r}async function Jn(){let t=D();if(!Ke(t))return 0;let e=0,r=B.platform()==="win32";for(let n of $r){let s=r?M(t,`${n}.cmd`):M(t,n);try{await Gn(s),e+=1}catch{}}return e}function he(t=!1){let e=t?`'${D().replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`:zt(D());return`${Or}
24
24
  ${t?`set -gx PATH ${e} $PATH`:`export PATH=${e}:"$PATH"`}
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*$/,`
25
+ `}async function Zt(t,e=!1){try{await Kn(Rr(t),{recursive:!0});let r=Ke(t)?await Cr(t,"utf8"):"";return r.includes(Or)?"present":(await Ut(t,`${r.replace(/\n*$/,`
26
26
  `)}
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*$/,`
27
+ ${he(e)}`,{mode:384}),"added")}catch{return"missing"}}function Wo(){return`${Or}
28
+ $env:Path = '${D().replace(/'/g,"''")};' + $env:Path
29
+ `}function Yo(){let t=B.platform()==="win32"?zl("powershell.exe",["-NoProfile","-NonInteractive","-Command","[Environment]::GetFolderPath('MyDocuments')"],{encoding:"utf8",windowsHide:!0}).trim():M(B.homedir(),"Documents");return M(t||M(B.homedir(),"Documents"),"PowerShell","profile.ps1")}async function Ir(){if(B.platform()==="win32"){let o=M(B.homedir(),"Documents","PowerShell","profile.ps1"),i=Wo();try{o=Yo();let a=!1;for(let c of[o,M(Rr(Rr(o)),"WindowsPowerShell","profile.ps1")]){await Kn(Rr(c),{recursive:!0});let u=Ke(c)?await Cr(c,"utf8"):"";u.includes(Or)||(await Ut(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(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)
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=M(B.homedir(),r),s=await Zt(n,e);if(t.endsWith("/bash")&&s!=="missing"){let o=[".bash_profile",".bash_login",".profile"].map(a=>M(B.homedir(),a)).find(Ke)??M(B.homedir(),".bash_profile"),i=await Zt(o);if(i==="missing")return{status:"missing",target:o,manual:he()};if(i==="added")return{status:"added",target:o,manual:he()}}return{status:s,target:n,manual:he(e)}}function ae(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:jl(new URL("../bin/tkr-shim.js",import.meta.url))}var $r,Or,Dr=E(()=>{"use strict";I();Vn();$r=["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"];Or="# tokmizer-shim PATH (managed by tokmizer)"});var Oi={};Q(Oi,{TAP_FORMULA_PATHS:()=>$i,brewTapStatus:()=>dd,formulaWedged:()=>Pi});import{readFileSync as ud}from"node:fs";function Pi(t){return/^(?:<{7}|={7}|>{7})/m.test(t)}function dd(t=$i){for(let e of t)try{return{path:e,wedged:Pi(ud(e,"utf8"))}}catch{}return null}var ld,$i,Ii=E(()=>{"use strict";ld=["/opt/homebrew/Library/Taps","/usr/local/Homebrew/Library/Taps","/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps"],$i=ld.map(t=>`${t}/norwelltw/homebrew-tokmizer/Formula/tokmizer.rb`)});function Ni(t,e,r,n=e){let s=Di.get(n);s||(s=new Map,Di.set(n,s));let o=JSON.stringify([t,r?[...r].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let c of e)r&&!r.has(be(c.slug))||c.matchRegex.test(t)&&(!a||c.priority>a.priority)&&(a=c);if(s.size>=fd){let c=s.keys().next().value;c&&s.delete(c)}return s.set(o,a),a}var Di,fd,Mi=E(()=>{"use strict";kt();Di=new WeakMap,fd=256});import{createCipheriv as Rh,createDecipheriv as md,hkdfSync as pd,randomBytes as Ch}from"node:crypto";function yd(t){return Buffer.from(pd("sha256",Buffer.from(t,"utf8"),hd,gd,32))}function Li(t,e){let r=yd(e),n=Buffer.from(t,"base64url"),s=n.subarray(0,12),o=n.subarray(12,28),i=n.subarray(28),a=md("aes-256-gcm",r,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var hd,gd,Fi=E(()=>{"use strict";hd=Buffer.from("tokmizer-bundle-enc-v1"),gd=Buffer.from("rules-bundle")});import{chmodSync as wd,readFileSync as vd,writeFileSync as bd,mkdirSync as kd,renameSync as _d}from"node:fs";import{join as ji}from"node:path";function rs(){return ji(y(),"bundle-cache.json")}function zi(t){try{let e=y();kd(e,{recursive:!0});let r={...t,fetchedAt:Date.now()},n=ji(e,`bundle-cache.${process.pid}.tmp`);bd(n,JSON.stringify(r),{mode:384}),_d(n,rs()),wd(rs(),384)}catch{}}function Ui(){try{let t=vd(rs(),"utf8"),e=xd.safeParse(JSON.parse(t));return e.success?e.data:null}catch{return null}}var xd,Zi=E(()=>{"use strict";nt();I();xd=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1"),fetchedAt:f.number().int().nonnegative()})});var Hi={};Q(Hi,{BundleFetchError:()=>Bt,bundleExpired:()=>Cd,fetchBundle:()=>Od,healOn401:()=>Pd,maxBundleAgeMs:()=>ns,runtimeFromCache:()=>Id,runtimeFromEnvelope:()=>ss});import{createPublicKey as Sd,verify as Ed}from"node:crypto";function ns(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?t:Rd}function Cd(t,e=Date.now()){return e-t.fetchedAt>ns()}function $d(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=Sd({key:r,format:"pem"});if(!Ed(null,Buffer.from(t.payload,"utf8"),n,Buffer.from(t.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Li(t.payload,e))}async function Pd(t,e,r){if(t instanceof Bt&&(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 Od(t){let e=await A();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 z("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 Bt(r.status);let n=Td.parse(await r.json()),s=ss(n,e.signingSecret);return zi(n),s}function ss(t,e){let r=$d(t,e),n=Ad.parse(r);if(Date.now()-n.signedAt>ns())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{bundleVersion:n.bundleVersion,signedAt:n.signedAt,ruleCount:s.size,startedAt:Date.now(),fetchedAt:Date.now(),selectFor:(o,i,a)=>Ni(o,s.values(),a?new Set(a):null,s)}}async function Id(){try{let t=Ui();if(!t)return null;let e=await A();return e?.signingSecret?ss(t,e.signingSecret):null}catch{return null}}var Ad,Td,Rd,Bt,Bi=E(()=>{"use strict";nt();sn();Mi();me();He();Fi();Zi();Ad=f.object({bundleVersion:f.number().int().nonnegative(),signedAt:f.number().int(),filters:f.array(cr)}),Td=f.object({payload:f.string().min(1),signature:f.string().min(1),enc:f.literal("v1")}),Rd=10080*60*1e3;Bt=class extends Error{status;constructor(e){super(`tkr-daemon: bundle fetch failed ${e}`),this.status=e}}});import Xo from"node:readline/promises";import{stdin as Wn,stdout as V}from"node:process";import Bl from"node:os";import{join as Vl}from"node:path";var H={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 Fr(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
- `:""}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(`
34
+ `:""}kt();Ze();me();He();I();import{readFile as _l,writeFile as Fo,mkdir as xl}from"node:fs/promises";He();me();Ze();import{createPublicKey as xc,verify as Sc}from"node:crypto";function Ec(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=xc({key:r,format:"pem"});try{let s=Buffer.from(e,"base64url");return Sc(null,Buffer.from(t,"utf8"),n,s)}catch{return!1}}var Ac=/^[a-z0-9][a-z0-9-]*$/;async function Ts(t){let e=await A();if(!e)throw new Error("Plugin not activated.");let r=await q(),n=await z("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 Se(n),o=[];for(let i of s.bundles){if(!Ac.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(!Ec(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}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=`
36
+ `)})}return o}I();import{chmod as qr,mkdir as sr,readFile as Tt,writeFile as or,stat as Xr,readdir as Tc,rm as Cs}from"node:fs/promises";var $s="managed-by: tokmizer",Yr=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],Rc=["power","tkr-reducer"];async function Ps(){try{let t=JSON.parse(await Tt(Qt(),"utf8"));return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}catch{return[]}}async function Os(t){try{await sr(y(),{recursive:!0}),await or(Qt(),JSON.stringify(t),{mode:384})}catch{}}var Cc=3600*1e3,Rs=10080*60*1e3;function Is(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?Math.min(t,Rs):Rs}async function Ds(t){try{let e=await Xr(ke(t)),r=Date.now()-e.mtimeMs;return r<Cc&&r<=Is()}catch{return!1}}async function Ns(t,e){await sr(xt(),{recursive:!0}),await or(ke(t),e,{mode:384}),await qr(ke(t),384)}async function Rt(t){let e=new Set(t),r;try{r=await Tc(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 Cs(ke(s))}catch{}}}async function Ms(t,e){await sr(er(),{recursive:!0});try{if(!(await Tt(_e(t),"utf8")).includes($s))return}catch{}await or(_e(t),e,{mode:384}),await qr(_e(t),384);let r=await Ps();r.includes(t)||await Os([...r,t])}async function Ct(t){let e=new Set([...t,...Yr]),r=await Ps(),n=new Set([...r,...Rc]);for(let s of n)if(!e.has(s))try{if(!(await Tt(_e(s),"utf8")).includes($s))continue;await Cs(_e(s))}catch{}await Os(r.filter(s=>e.has(s)))}async function Ls(){let t=0;for(let e of Yr)await Qr(e)&&t++;return{installed:t,total:Yr.length}}async function Qr(t){try{return await Xr(_e(t)),!0}catch{return!1}}async function en(t){try{await sr(y(),{recursive:!0}),await or(_t(),JSON.stringify({at:Date.now(),error:t}),{mode:384}),await qr(_t(),384)}catch{}}async function ir(){try{return JSON.parse(await Tt(_t(),"utf8"))}catch{return null}}async function ar(t){try{let e=await Xr(ke(t));return Date.now()-e.mtimeMs>Is()?null:await Tt(ke(t),"utf8")}catch{return null}}import{chmod as Yf,mkdir as qf,readFile as Nc,writeFile as Xf,stat as Us,readdir as Mc,rm as zs,rename as Qf}from"node:fs/promises";I();import{join as Lc}from"node:path";I();import{randomUUID as $c}from"node:crypto";import{readFileSync as Pc}from"node:fs";import{mkdir as Oc,rename as Ic,rm as Fs,writeFile as Dc}from"node:fs/promises";import{join as js}from"node:path";function ut(){try{return Pc(js(y(),"yolo-mode"),"utf8")==="on"}catch{return!1}}async function Be(t){let e=y(),r=js(e,"yolo-mode");if(!t){await Fs(r,{force:!0});return}await Oc(e,{recursive:!0,mode:448});let n=`${r}.tmp-${process.pid}-${$c()}`;try{await Dc(n,"on",{mode:384,flag:"wx"}),await Ic(n,r)}finally{await Fs(n,{force:!0})}}var Zs=10080*60*1e3,Fc=100*1024*1024,nm=2*1024*1024,jc=/^[0-9a-f]{8,64}$/i;function tn(t,e,r=process.env){let n=Number(r[t]);return Number.isFinite(n)&&n>0?n:e}async function Hs(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(!jc.test(t))return null;try{let e=await Us(Xt(t));return Date.now()-e.mtimeMs>tn("TOKMIZER_CCR_MAX_AGE_MS",Zs)?null:await Nc(Xt(t),"utf8")}catch{return null}}async function Bs(){let t;try{t=await Mc(St())}catch{return}let e=tn("TOKMIZER_CCR_MAX_AGE_MS",Zs),r=tn("TOKMIZER_CCR_DIR_CAP_BYTES",Fc),n=Date.now(),s=[];for(let i of t){let a=Lc(St(),i);try{let c=await Us(a);n-c.mtimeMs>e?await zs(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 zs(i.path),o-=i.size}catch{}}}}me();Ze();He();Pt();async function eo(t,e){let r=await A();if(!r)throw new Error("Not activated. Run: tkr link");if(r.linked===!1){if(t==="GET")return{plan:r.plan,settings:await U()};let a=await Xs(e);return{plan:r.plan,settings:a}}let n=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await q(),o=await z(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 Se(o);return await nn(i.settings),i}async function Ve(){return eo("GET")}async function Ee(t){return eo("PATCH",t)}var Vc=new Set(["__proto__","constructor","prototype"]);function Kc(t,e,r){let n=e.split(".");if(n.some(o=>Vc.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 Gc(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 to(t,e){let r=Gc(e),n={};return Kc(n,t,r),n}ct();var Mo="-command",Lo=3;async function Ln(){try{let{connectDaemon:t}=await Promise.resolve().then(()=>(mt(),ft)),e=await t();try{await e.reload()}finally{e.close()}}catch{}}async function Fn(t,e){if(!(!e&&await Ds("power"))){try{let r=await Ts(t),n=[],s=[];for(let o of r)if(o.slug.endsWith(Mo)){let i=o.slug.slice(0,-Mo.length);await Ms(i,o.body),s.push(i)}else await Ns(o.slug,o.body),n.push(o.slug);await Rt(n),await Ct(s),await en(null)}catch(r){await en(r instanceof Error?r.message:String(r))}try{await Bs()}catch{}}}async function Sl(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 xr(t){let e=await q(),r=Et(),n={token:t.token,...t.email?{email:t.email}:{},pluginVersion:X,timeZone:r,...e},s=await Sl(()=>z("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 El(a)==="device_cap"?new Error(H.deviceCap):new Error(H.failed(`${s.status} ${a}`))}let o=await Se(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(be)}:{}};return await rr(i),await Ln(),await Fn(t.baseUrl,!0),i}function El(t){try{let e=JSON.parse(t);return typeof e.code=="string"?e.code:null}catch{return null}}function Al(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 jt(t,e){let r=await A();return r&&r.token!==t.token?!1:(await rr(e),!0)}async function jn(t){let e=await A();if(!e)return null;let r=await q(),n=e.timeZone??Et(),s={ts:Date.now(),localDate:Al(n),timeZone:n},o;try{o=await z("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 b=(e.heartbeatAuthFails??0)+1,k={...e,heartbeatAuthFails:b},C=e.linked??(!!e.email||e.plan==="smart"||e.plan==="pro");if(b>=Lo&&C&&(k.relinkRequired=!0),!await jt(e,k))return null;if(b>=Lo&&!C){try{await Fo(`${y()}/state.replaced.json`,JSON.stringify(e),{mode:384})}catch{}try{return await jo(t)}catch{return null}}return null}if(o.status===451){let b=await A();if(b&&b.token!==e.token)return null;await nr();try{await Rt([]),await Ct([])}catch{}return null}if(o.status===426)return await jt(e,{...e,updateRequired:!0}),null;if(o.status===423)return await jt(e,{...e,relinkRequired:!0}),null;if(!o.ok){if(o.status===400)try{(await o.json())?.code==="stale_ts"&&await jt(e,{...e,clockSkewDetected:!0})}catch{}return e}let i;try{i=await Se(o)}catch{return e}let a=i.settingsRevision??0,c=e.lastSettingsRevision??0,u=a>c,l=i.plan!==e.plan,g={...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 Ve(),g.lastSettingsRevision=a}catch{}if(!await jt(e,g))return A();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:b}=await Promise.resolve().then(()=>(pr(),mr));b()}catch{}(u||l)&&await Ln(),await Fn(t,u||l);try{let{flushTelemetry:b}=await Promise.resolve().then(()=>(_r(),Io)),{flush:k}=await Promise.resolve().then(()=>(No(),Do));await b(t),await k(t)}catch{}return g}var Tl=5*6e4;function Rl(){return process.env.TOKMIZER_BASE_URL??"https://tokmizer.com"}async function jo(t){let e=await q(),r=Et(),n={pluginVersion:X,timeZone:r,...e},s=await z("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 Se(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(be)}:{}};return await rr(i),await Ln(),await Fn(t,!0),i}function Cl(){let t=process.env.CI;return t&&t!=="false"&&t!=="0"?!0:!!process.env.GITHUB_ACTIONS}async function pe(t){let e=await A();if(e)return e;if(Cl())return null;let r=Vr();try{let n=await _l(r,"utf8"),s=Number(n);if(Number.isFinite(s)&&Date.now()-s<Tl)return null}catch{}try{return await jo(t??Rl())}catch{return await xl(y(),{recursive:!0}),await Fo(r,String(Date.now()),{mode:384}),null}}me();import Pl from"node:readline/promises";import{stdin as Ol,stdout as Z}from"node:process";function Sr(t,e=!1){return!0}me();function $l(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function zo(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>$l())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function Er(t,e=Date.now()){return t.plan}function Ar(t,e=Date.now()){return t.bonusActive??!1}var Il={enabled:!0,outputVerbosity:"compact",filters:{enableAll:!0,disabled:[]}},Dl=`
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,125 +43,129 @@ 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 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(`
46
+ `;async function Nl(t){return Z.write(Dl),zn(t,"Share anonymous command names to help improve filters?",!0)}async function Uo(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 Ml(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 Ll(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 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(`
49
+ `);let n=await zn(t,"Enable Tokmizer optimizations?",!0),s=await Ml(t,"Output verbosity",["normal","compact","minimal"],"normal"),o=await zn(t,"Enable all built-in filters?",!0),i=[];o||(i=(await Uo(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 Sr(e,r)?Z.write(`
50
50
  /power is available right now on this token.
51
- `):e==="smart"&&z.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 Vn(t,e=!1){let r=Dl.createInterface({input:Nl,output:z});try{let n=e?" (bonus window active)":"";z.write(`
54
+ `),a}async function Un(t,e=!1){let r=Pl.createInterface({input:Ol,output:Z});try{let n=e?" (bonus window active)":"";Z.write(`
55
55
  Configure Tokmizer (current plan: ${t}${n})
56
56
 
57
- `),z.write(` 1) Recommended - sane defaults, ready to go
58
- `),z.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 Wo(r,"Choose 1 or 2","1")==="2"?await zl(r,t,e):{...Ml},i=await Fl(r),a={...o,telemetryOptIn:i};z.write(`
60
+ `);let o=await Uo(r,"Choose 1 or 2","1")==="2"?await Ll(r,t,e):{...Il},i=await Nl(r),a={...o,telemetryOptIn:i};Z.write(`
61
61
  Saving...
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(`
62
+ `);let c=await Ee(a);await Be(!1),Z.write(`Done.
63
+ `),Z.write(`YOLO: off (this machine only)
64
+ `),Z.write(`${JSON.stringify(c.settings,null,2)}
65
+ `),Z.write(`
66
66
  You can re-run this any time with: tkr settings configure
67
- `),z.write((await T())?.linked===!1?`These settings are saved only on this machine.
67
+ `),Z.write((await A())?.linked===!1?`These settings are saved only on this machine.
68
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}
69
+ `)}finally{r.close()}}async function Zo(){let t=await Ve(),e=await A(),r=e?Er({...e,plan:t.plan}):t.plan,n=e?Ar(e):!1;await Un(r,n)}Dr();async function Qo(t){let e=await A();if(e){V.write(H.activated(e.plan)+`
70
+ `);return}let r=Xo.createInterface({input:Wn,output:V}),n=null,s=!1;try{V.write(`${H.welcome}
71
+ ${H.needToken}
72
+ ${H.getToken}
73
73
 
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)+`
74
+ `);let o=(await r.question(`${H.askToken} `)).trim();V.write(`${H.activating}
75
+ `);let i=await xr({token:o,baseUrl:t});V.write(H.activated(i.plan)+`
76
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.
77
+ `),process.exitCode=1}finally{r.close()}n&&(await Un(n,s),await Kl())}async function Kl(){try{if(Wn.isTTY){let t=Xo.createInterface({input:Wn,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 Ge(ae());V.write(`Installed ${r.length} shims.
78
+ `);let n=Vl(Bl.homedir(),(process.env.SHELL??"").includes("zsh")?".zshrc":".bashrc"),s=await Zt(n);s==="added"?V.write(`Added PATH to ${n}. Open a new terminal.
79
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
80
+ ${he()}`)}}finally{t.close()}}}catch{}try{let{connectDaemon:t}=await Promise.resolve().then(()=>(mt(),ft)),e=await t();await e.ping(),e.close(),V.write(` Engine: \u2705 active
81
81
  `)}catch{V.write(` Engine: starts on first use
82
82
  `)}V.write(`
83
83
  \u2705 Ready. tokmizer optimizes your commands automatically.
84
84
  Run "tkr gain" anytime to see your savings.
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}
85
+ `)}me();ct();Ze();He();Vn();I();import{readFile as si,rm as ti}from"node:fs/promises";import{appendFileSync as Jl,chmodSync as Wl,mkdirSync as Yl,readFileSync as oi,renameSync as ii,rmSync as ai,statSync as ci,writeFileSync as Xn}from"node:fs";import{dirname as ql,join as ui}from"node:path";var Yn={anthropic:3,openai:2.5,google:2,vertex:3.3,bedrock:3.5,openrouter:3.5},Gl={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function ei(t){return t?Gl[t]??"anthropic":"anthropic"}function qn(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*(Yn[n]??Yn.anthropic))}return e<=0?Yn.anthropic:r/(e/1e6)}var Xl="stats.jsonl",Ql="stats-ledger.json",ri=2*1024*1024,ed=3e4;function Mr(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,t0:null,t1:null,cmds:{},prov:{}}}function li(t){let e=t.trim();if(!e)return null;try{let r=JSON.parse(e);return typeof r.t!="number"||!Number.isFinite(r.t)||r.t<0||r.t>864e10||typeof r.r!="number"||!Number.isSafeInteger(r.r)||r.r<0||typeof r.f!="number"||!Number.isSafeInteger(r.f)||r.f<0||r.r+r.f===0?null:{t:r.t,r:r.r,f:r.f,m:r.m===1,...typeof r.h=="string"?{h:r.h}:{},...typeof r.k=="string"?{k:r.k}:{},...typeof r.c=="string"&&r.c?{c:r.c}:{}}}catch{return null}}function di(t,e){if(e.m){t.mr+=e.r,t.mf+=e.f;return}if(e.k==="restore"&&(t.rn+=1,t.rb+=e.f),t.n+=1,t.or+=e.r,t.of+=e.f,e.f>e.r&&(t.x+=1),t.t0=t.t0==null?e.t:Math.min(t.t0,e.t),t.t1=t.t1==null?e.t:Math.max(t.t1,e.t),e.c){let r=t.cmds[e.c]??{n:0,nc:0,r:0,f:0,sh:!1};r.n+=1,e.f<e.r&&(r.nc+=1),(e.k==="sh"||e.k==="restore")&&(r.sh=!0),r.r+=e.r,r.f+=e.f,t.cmds[e.c]=r}if(e.f<e.r){t.nc+=1,t.r+=e.r,t.f+=e.f,e.k==="sh"&&(t.sn+=1,t.sr+=e.r,t.sf+=e.f);let r=ei(e.h),n=t.prov[r]??{r:0,f:0};n.r+=e.r,n.f+=e.f,t.prov[r]=n}}function td(t,e){for(let r of["n","nc","r","f","or","of","x","sn","sr","sf","mr","mf","rn","rb"])t[r]+=e[r];e.t0!=null&&(t.t0=t.t0==null?e.t0:Math.min(t.t0,e.t0)),e.t1!=null&&(t.t1=t.t1==null?e.t1:Math.max(t.t1,e.t1));for(let[r,n]of Object.entries(e.cmds)){let s=t.cmds[r]??{n:0,nc:0,r:0,f:0,sh:!1};s.n+=n.n,s.nc+=n.nc,s.r+=n.r,s.f+=n.f,s.sh=s.sh||n.sh,t.cmds[r]=s}for(let[r,n]of Object.entries(e.prov)){let s=t.prov[r]??{r:0,f:0};s.r+=n.r,s.f+=n.f,t.prov[r]=s}}function Qn(t){let e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function ts(t){return ui(ql(t),Ql)}function fi(t){let e=ts(t),r;try{r=oi(e,"utf8")}catch{return{}}try{let n=JSON.parse(r);if(!n.days||typeof n.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(n.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Mr(),...i});return s}catch{try{ii(e,`${e}.corrupt-${Date.now()}`)}catch{}return{}}}function ni(t,e){let r=`${t}.tmp-${process.pid}`;Xn(r,e,{mode:384}),ii(r,t)}function rd(t){try{return Xn(t,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-ci(t).mtimeMs<ed?!1:(ai(t,{force:!0}),Xn(t,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function nd(t,e=ri,r=ri/2){try{if(ci(t).size<=e)return}catch{return}let n=`${t}.lock`;if(rd(n))try{let s=oi(t,"utf8").split(`
86
+ `).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>r)break;i+=u,o-=1}let a=fi(t);for(let u of s.slice(0,o)){let l=li(u);if(!l)continue;let g=Qn(l.t),b=a[g]??Mr();di(b,l),a[g]=b}let c=s.slice(o);ni(t,c.length?`${c.join(`
87
+ `)}
88
+ `:""),ni(ts(t),JSON.stringify({v:1,days:a}))}catch{return}finally{ai(n,{force:!0})}}async function mi(t,e){let r=e>0?Qn(e):"",n=new Map;for(let[o,i]of Object.entries(fi(t)))o>=r&&n.set(o,i);let s="";try{s=await si(t,"utf8")}catch{}for(let o of s.split(`
89
+ `)){let i=li(o);if(!i||i.t<e)continue;let a=Qn(i.t),c=n.get(a)??Mr();di(c,i),n.set(a,c)}return n}function Lr(){return ui(y(),Xl)}async function pi(t=Lr()){try{let r=(await si(t,"utf8")).split(`
90
+ `).filter(n=>n.trim()!=="").length;return await ti(t,{force:!0}),await ti(ts(t),{force:!0}),r}catch{return 0}}function hi(t,e,r=Lr(),n=!1,s,o,i){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(e)||t<0||e<0||t+e===0)return;let a=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",u=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",l=`{"t":${Math.floor(Date.now()/1e3)},"r":${t},"f":${e}${n?',"m":1':""}${a}${c}${u}}
91
+ `;try{Yl(y(),{recursive:!0,mode:448}),Jl(r,l,{mode:384}),Wl(r,384),nd(r)}catch{return}}function L(t){return Math.ceil(t/4)}function gi(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 Je(t=Lr(),e=0){let r=Mr();for(let $ of(await mi(t,e)).values())td(r,$);let n=L(r.r),s=L(r.f),o=Math.max(0,n-s),i=n?Math.round(o/n*100):0,a=Math.floor(Date.now()/1e3),c=r.t0!=null?Math.max(1,Math.ceil((a-r.t0)/86400)):1,u=Math.max(0,L(r.mr)-L(r.mf)),l={};for(let[$,T]of Object.entries(r.prov))l[$]=Math.max(0,L(T.r)-L(T.f));let g=Object.entries(r.cmds).map(([$,T])=>{let R=L(T.r),ne=R-L(T.f);return{cmd:$,count:T.n,compressedCount:T.nc,savedTokens:ne,avgPct:R?Math.round(ne/R*100):0,native:!T.sh}}).sort(($,T)=>T.savedTokens-$.savedTokens).slice(0,10),b=L(r.sr),k=b?Math.round((b-L(r.sf))/b*100):0,C=L(r.or),P=L(r.of);return{count:r.n,compressedCount:r.nc,rawTokens:n,filteredTokens:s,savedTokens:o,modeledSavedTokens:u,savedPct:i,sinceDays:c,savedByProvider:l,shellCompressedCount:r.sn,shellSavedPct:k,byCommand:g,observed:{count:r.n,rawTokens:C,filteredTokens:P,savedTokens:C-P,savedPct:r.or?Math.round((r.or-r.of)/r.or*1e4)/100:null,expandedCount:r.x},restoration:{count:r.rn,tokens:L(r.rb)},window:{firstAt:r.t0,lastAt:r.t1},measurement:{scope:"tool-output",legacyScope:"reduced-outputs",tokenMethod:"bytes/4",tokenCounts:"estimated",billing:"not-measured"}}}function re(t){return t<0?`-${re(-t)}`:t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t)}function yi(t){return t<0?`-${yi(-t)}`:t>0&&t<.01?"<$0.01":`$${t.toFixed(2)}`}function ce(t){return String(t).replace(/\B(?=(\d{3})+(?!\d))/g,",")}var wi="\x1B[38;2;245;176;65m",vi="\x1B[0m",Nr=32;function es(t,e){let r="\u2588".repeat(t);return e?`${wi}${r}${vi}`:r}function bi(t,e){if(t.count===0)return` No data yet. Run a few commands to measure your output savings.
92
+ Watch this session live: tkr session`;let r=t.observed?.savedTokens??t.savedTokens,n=yi(r/1e6*e.pricePerMtok),s=re(t.rawTokens)+" tokens",o=re(t.filteredTokens)+" tokens",i=Nr,a=t.rawTokens>0?Math.max(1,Math.round(Nr*(t.filteredTokens/t.rawTokens))):1,c=" ".repeat(Nr-i),u=" ".repeat(Nr-a),l=" tokmizer \xB7 output savings",g=e.subtitle??"all time",b=" "+"\u2500".repeat(61),k=t.observed,C=k?.savedPct!=null?k.savedPct<0?`+${Math.abs(k.savedPct)}`:`${k.savedPct}`:null,P=t.window,$=R=>new Date(R*1e3).toISOString().slice(0,16).replace("T"," "),T=t.count-t.compressedCount-(k?.expandedCount??0);return[`${l}${" ".repeat(Math.max(2,40-l.length))}${g}`,b,"",` ${r>=0?"Saved":"Added"} ${re(Math.abs(r))} estimated tokens in tool output`,"",...e.periods?.length?[...e.periods.map(R=>` ${R.label.padEnd(12)}${(re(R.savedTokens)+" saved").padStart(14)} \xB7 ${ce(R.count)} commands`),""]:[],...t.compressedCount>0?[` ${t.savedPct} % on reduced outputs \xB7 ${ce(t.compressedCount)} commands`,` ${"Without tokmizer".padEnd(16)} ${es(i,e.color)}${c} ${s}`,` ${"With tokmizer".padEnd(16)} ${es(a,e.color)}${u} ${o}`]:[],...t.shellCompressedCount?[` Shell: ${t.shellSavedPct} % on reduced shell outputs \xB7 ${ce(t.shellCompressedCount)} commands`]:[],...k?[...C!=null?[` ${C} % across all observed outputs${k.savedPct<0?" (increase)":" (reduction)"}`]:[],` ${re(k.rawTokens)} \u2192 ${re(k.filteredTokens)} estimated tokens across ${ce(k.count)} commands`]:[],...t.restoration?.count?[` Restored: ${re(t.restoration.tokens)} estimated tokens across ${ce(t.restoration.count)} calls, deducted above`]:[],"",` 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.): ${re(t.modeledSavedTokens)} tokens modeled separately, excluded above`]:[],...sd(t.byCommand,e.color),"",` ${ce(t.compressedCount)} of ${ce(t.count)} recorded commands reduced \xB7 ${ce(T)} unchanged${k?.expandedCount?` \xB7 ${ce(k.expandedCount)} expanded`:""}`,...P?.firstAt!=null&&P.lastAt!=null?[` Observed: ${$(P.firstAt)} \u2192 ${$(P.lastAt)} UTC`]:[]," Tokens estimated from output bytes / 4; prompts, replies and replayed context are not counted."," Percentages measure bytes, not tokenizer counts. Restorations before this update are not deducted."," Inspect retained output: tkr restore",""].join(`
93
+ `)}async function ki(t=Lr(),e=0){return[...(await mi(t,e)).entries()].filter(([,r])=>r.n>0).sort(([r],[n])=>r<n?-1:r>n?1:0).map(([r,n])=>({day:r,count:n.n,savedTokens:L(n.or)-L(n.of)}))}function sd(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=es(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)} ${(re(o.savedTokens)+" saved").padStart(13)} ${String(o.avgPct).padStart(3)} % ${a}`)}return s}function _i(t,e){if(t.length===0)return"";let r=(u,l,g)=>` ${u.padEnd(11)}${ce(l).padStart(4)}${re(g).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?`${wi}${c}${vi}`:c,""].join(`
94
+ `)}I();wn();import{appendFileSync as hh,chmodSync as gh,mkdirSync as yh,existsSync as od,readFileSync as Ei,rmSync as id}from"node:fs";import{dirname as vh,join as ad}from"node:path";var cd="usage.jsonl",xi=2e4,_h=2*1024*1024;function Ai(){return ad(y(),cd)}function Ti(t=Ai()){try{if(!od(t))return 0;let e=Ei(t,"utf8").split(`
95
+ `).filter(r=>r.trim()!=="").length;return id(t,{force:!0}),e}catch{return 0}}function Si(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 Ri(t=Ai()){let e;try{e=Ei(t,"utf8").split(`
96
+ `).filter(o=>o.trim()!=="")}catch{return{sessionId:null,total:0,routed:0,pct:0}}e.length>xi&&(e=e.slice(e.length-xi));let r=null;for(let o=e.length-1;o>=0;o-=1){let i=Si(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=Si(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 Ci(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(`
97
+ `)}br();_r();Pt();Dr();_n();import{fileURLToPath as Dd}from"node:url";var K=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com";function Nd(){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|--month|--json] estimated tool-output savings (today / 7 days / 30 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)"," 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(`
98
+ `))}async function Md(t){let e=t[0]??"show";if(e==="show"){try{let r=await Ve();process.stdout.write(`Plan: ${r.plan}
95
99
  `),process.stdout.write(`${JSON.stringify(r.settings,null,2)}
96
100
  `)}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)}
101
+ `),process.stdout.write(`${JSON.stringify(await U(),null,2)}
98
102
  `)}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)}
103
+ `),process.exitCode=1;return}let s=to(r,n),o=await Ee(s);process.stdout.write(`Updated. ${r} = ${JSON.stringify(n)}
100
104
  `),process.stdout.write(`Current: ${JSON.stringify(o.settings,null,2)}
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.
105
+ `);return}if(e==="configure"){await Zo();return}if(e==="reset"){let r=await Ee({enabled:!0,telemetryOptIn:!0,outputVerbosity:"compact",reducer:"off",filters:{enableAll:!0,disabled:[]}});await Be(!1),process.stdout.write(`Settings reset to defaults.
102
106
  `),process.stdout.write(`YOLO: off (this machine only)
103
107
  `),process.stdout.write(`${JSON.stringify(r.settings,null,2)}
104
108
  `);return}process.stderr.write(`Unknown settings subcommand: ${e}
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"}.
109
+ `),process.exitCode=1}async function Ld(t){let e=t[0]??"status";if(e==="on"||e==="off"){let r=e==="on";try{let n=await Ee({telemetryOptIn:r});process.stdout.write(`Telemetry ${n.settings.telemetryOptIn?"on":"off"}.
106
110
  `)}catch(n){process.stdout.write(`${n instanceof Error?n.message:String(n)}
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}
111
+ `),process.exitCode=1}return}if(e==="forget"){Lt("telemetry"),Lt("learn");let r=await pi()+Ti();process.stdout.write(`Cleared ${r} local telemetry record${r===1?"":"s"} from this machine.
112
+ `);return}if(e==="status"){let r;try{r=(await Ve()).settings.telemetryOptIn?"on":"off"}catch{r=`${(await U()).telemetryOptIn?"on":"off"} (offline; last known)`}let n=await Je();process.stdout.write(`Telemetry: ${r}
109
113
  ${n.count} commands recorded locally.
110
114
  Manage: tkr telemetry on | off | forget
111
115
  `);return}process.stderr.write(`Unknown telemetry subcommand: ${e}
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]
116
+ `),process.exitCode=1}async function Fd(){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
117
  `),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()}
118
+ `),await Be(!0)):r==="off"&&await Be(!1),process.stdout.write(`YOLO: ${ut()?"on":"off"} (this machine only)
119
+ `);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]:ae(),c=await Ge(a??ae());process.stdout.write(`Installed ${c.length} shims into ${D()}
116
120
  `),process.stdout.write(`Add this line to your shell rc if not already:
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)+`
121
+ ${he()}`);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_)
122
+ `),process.exitCode=1;return}let i=r>=0?e[r+1]:"";try{let a=await xr({token:o,baseUrl:K,...i?{email:i}:{}});process.stdout.write(H.activated(a.plan)+`
119
123
  `),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.
124
+ `);let c=await ir();c?.error&&process.stdout.write(`Note: feature sync failed (${c.error}). Run "tkr heartbeat" to retry.
121
125
  `)}catch(a){process.stdout.write(`${a instanceof Error?a.message:String(a)}
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]
126
+ `),process.exitCode=1}return}await Qo(K);return}if(t==="unlink"){let r=await A();if(r?.jwt&&r.signingSecret)try{let s=await q();await z("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 nr();try{await Rt([]),await Ct([])}catch{}await Qs();try{let{shutdownDaemon:s}=await Promise.resolve().then(()=>(mt(),ft));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
127
+ `);return}if(t==="doctor"){let r=Tr(),n=await Ls(),{brewTapStatus:s}=await Promise.resolve().then(()=>(Ii(),Oi)),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: ${Ho(r.host)}`,`Shim dir: ${D()}`,`Shim: ${Ht()?"installed":"not installed \u2014 run: tkr setup-codex"}`,`Codex: ${vn()?"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(()=>(mt(),ft)),{socketPath:u}=await Promise.resolve().then(()=>(cn(),ao)),{path:l}=u(),g=await c(),b=await g.ping();g.close(),a.push(`Daemon: running (pid ${b.pid})`,` socket: ${l}`,` uptime: ${Math.floor(b.uptimeMs/1e3)}s`,` ruleCount: ${b.ruleCount}`,` bundleVersion: ${b.bundleVersion}`,"")}catch(c){a.push(`Daemon: not running (${c.message})`,"")}try{let{readFileSync:c,existsSync:u,statSync:l}=await import("node:fs"),{join:g}=await import("node:path"),{tokmizerHome:b}=await Promise.resolve().then(()=>(I(),ks)),k=b(),C=g(k,"daemon.spawn.fail");if(u(C)){let $=Number(c(C,"utf8"));a.push(` last spawn failure: ${Number.isFinite($)?new Date($).toISOString():"unknown"} (details: ${g(k,"daemon.log")})`)}let P=g(k,"drift.jsonl");if(u(P)&&l(P).size>0){let $=c(P,"utf8").trim().split(`
128
+ `),T=JSON.parse($[$.length-1]);a.push(`Drift: ${$.length} unrecognized hook payload shape(s), last on ${T.tool??"?"} (${P})`,"")}}catch{}try{let c=gi(await Je());c&&a.push(`Coverage: ${c}`,"")}catch{}process.stdout.write(a.join(`
129
+ `));return}if(t==="auto-update"){let{autoUpdateEnabled:r,setAutoUpdate:n}=await Promise.resolve().then(()=>(pr(),mr)),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]
126
130
  `),process.exitCode=1;return}process.stdout.write(`auto-update: ${r()?"on":"off"}
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(`
131
+ `);return}if(t==="self-update"){let{selfUpdate:r,defaultDeps:n}=await Promise.resolve().then(()=>(pr(),mr)),s=await A(),o=await r(n(s?.latestPluginVersion));process.stdout.write(`${o.length?o.join(`
128
132
  `):"up to date"}
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.
133
+ `);return}if(t==="shims-refresh"){let{refreshStaleShims:r}=await Promise.resolve().then(()=>(Dr(),qo)),n=await r(ae());process.stdout.write(`shims refreshed: ${n}
134
+ `);return}if(t==="setup-codex"){await pe(K);let r=await Ge(ae()),n=await Ir(),s=Dd(new URL("./tkr-codex-hook.js",import.meta.url)),o=await bn(kn(process.env.PATH??"",s)),i=o==="error"?`Could not update ${pt()}: it is not valid JSON. Fix it, then run tkr setup-codex again.`:`${o==="present"?"Codex hook already set":"Added the tokmizer hook"} in ${pt()}. 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:
135
+ ${n.manual}`;process.stdout.write([`Installed ${r.length} command shims into ${D()}.`,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(`
136
+ `)),(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 ${D()}
137
+ `);let i=await Ir();if(i.status==="added"?process.stdout.write(`Added PATH to ${i.target}. Open a new terminal to activate.
134
138
  `):i.status==="present"?process.stdout.write(`PATH already set in ${i.target}. Open a new terminal if not active.
135
139
  `):process.stdout.write(`Add this to your shell profile, then open a new terminal:
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.
140
+ ${i.manual}`),i.status==="missing"){process.exitCode=1;return}let a=await A()??await pe(K);process.stdout.write(a?`Free access is ready. No account is required.
137
141
  `:`Free activation is pending. When online, run: tkr status
138
- `);return}if(r==="uninstall"){let n=await Qn();process.stdout.write(`Removed ${n} shims from ${I()}
142
+ `);return}if(r==="uninstall"){let n=await Jn();process.stdout.write(`Removed ${n} shims from ${D()}
139
143
  `);return}process.stderr.write(`Unknown shim subcommand: ${r}
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":""}
144
+ `),process.exitCode=1;return}if(t==="status"){process.stdout.write(`YOLO: ${ut()?"on":"off"} (this machine only)
145
+ `);let r=await A()??await pe(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
146
+ `);return}let n=Sr(Er(r),Ar(r));if(process.stdout.write(`Plan ${r.plan} | Status ${r.status}${r.email?` | Email ${r.email}`:r.plan==="free"?" | Anonymous":""}
143
147
  `),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.
148
+ `),n){let s=await Qr("power"),o=await ar("power")!==null;if(!s||!o){let i=await ir(),a=i?.error?` (last sync failed: ${i.error})`:"";process.stdout.write(`/power not synced yet${a} \u2014 run: tkr heartbeat
149
+ `)}}zo(r)&&process.stdout.write(`Offline too long \u2014 reconnect (tkr heartbeat) to refresh your local state.
146
150
  `),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
+ `);return}if(t==="gain"){let r=e[0]??"";if(e.length>1||!["","--json","--jour","--day","--semaine","--week","--mois","--month"].includes(r)){process.stderr.write(`Usage: tkr gain [--day|--week|--month|--json]
152
+ `),process.exitCode=1;return}let n=0,s,o=!1;if(r==="--json"){let[R,ne]=await Promise.all([Je(void 0,0),A()]),gt=qn(R.savedByProvider);process.stdout.write(JSON.stringify({...R,savedUsd:Number((R.savedTokens/1e6*gt).toFixed(2)),savedUsdBasis:"reference-input-price",savedUsdScope:"reduced-outputs",netSavedUsd:Number(((R.observed?.savedTokens??R.savedTokens)/1e6*gt).toFixed(2)),netSavedUsdScope:"all-observed-outputs",referencePricePerMtok:gt,plan:ne?.plan??"free"})+`
153
+ `);return}let i=new Date,a=R=>Math.floor(new Date(i.getFullYear(),i.getMonth(),i.getDate()-R).getTime()/1e3);r==="--jour"||r==="--day"?(n=a(0),s="today"):r==="--semaine"||r==="--week"?(n=a(6),s="last 7 days",o=!0):(r==="--mois"||r==="--month")&&(n=a(29),s="last 30 days",o=!0);let[c,u,l,g]=await Promise.all([Je(void 0,n),A(),r===""?Je(void 0,a(0)):void 0,r===""?Je(void 0,a(6)):void 0]),b=l&&g?[{label:"Today",savedTokens:l.observed?.savedTokens??l.savedTokens,count:l.count},{label:"Last 7 days",savedTokens:g.observed?.savedTokens??g.savedTokens,count:g.count},{label:"All time",savedTokens:c.observed?.savedTokens??c.savedTokens,count:c.count}]:void 0,k=qn(c.savedByProvider),C=u?.linked??(!!u?.jwt&&u?.plan!=="free"),P=!u||!C?"not linked \xB7 anonymous free tier (run tkr link to send these to your dashboard)":u.email?`${u.email} \xB7 ${u.plan}`:`linked \xB7 ${u.plan}`,$=!!process.stdout.isTTY&&!process.env.NO_COLOR,T=` Account: ${P}
154
+ `+bi(c,{color:$,pricePerMtok:k,subtitle:s,periods:b});if(o){let R=_i(await ki(void 0,n),{color:$});R&&(T+=`
155
+ `+R)}c.count>0&&!Ht()&&(T+=` To include commands from every terminal: tkr shim install
156
+ `),u?.relinkRequired&&(T+=` \u26A0 dashboard link lost \u2014 run: tkr link <your-token> (from tokmizer.com/dashboard)
157
+ `),u?.updateRequired?T+=` \u26A0 plugin update required \u2014 run: /tkr-update
158
+ `:at(X,u?.latestPluginVersion)&&(T+=` \u26A0 you run v${X}, v${u?.latestPluginVersion} is out \u2014 older versions undercount savings. Run /tkr-update, then RESTART Claude Code.
159
+ `),u?.clockSkewDetected&&(T+=` \u26A0 system clock looks off \u2014 sync it, then run: tkr heartbeat
160
+ `);try{let{connectDaemon:R}=await Promise.resolve().then(()=>(mt(),ft)),ne=await R(),gt=await ne.ping();ne.close(),T+=Fr(gt.ruleCount,null)}catch{let{runtimeFromCache:R}=await Promise.resolve().then(()=>(Bi(),Hi)),ne=await R();T+=Fr(null,ne?ne.ruleCount:null)}process.stdout.write(T+`
161
+ `);return}if(t==="session"){process.stdout.write(Ci(Ri())+`
162
+ `);return}if(t==="discover"){let r=Ht(),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(`
159
163
  `)+`
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
164
+ `);return}if(t==="restore"){let r=await Hs(e[0]);if(r.stdout&&process.stdout.write(r.stdout),r.stderr&&process.stderr.write(r.stderr),r.code===0&&r.stdout&&hi(0,Buffer.byteLength(r.stdout,"utf8"),void 0,!1,Tr().host,"restore","tkr restore"),r.code===0&&r.restoredTokens){let n=await U();await Mn({cmd:"restore",tokensSaved:0,tokensRestored:r.restoredTokens,optimized:!1,telemetryOptIn:n.telemetryOptIn,host:Tr().host})}process.exitCode=r.code;return}if(t==="heartbeat"){await pe(K);let r=Date.now(),n=await jn(K);if(!n||(n.lastHeartbeatOkAt??0)<r){process.stderr.write(`Heartbeat failed
161
165
  `),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.
166
+ `);let s=await ir();s?.error&&process.stdout.write(`Note: feature sync failed: ${s.error}
167
+ `);return}if(t==="settings"){(e[0]??"show")==="show"&&process.stdout.write(`YOLO: ${ut()?"on":"off"} (this machine only)
168
+ `),await pe(K),await Md(e);return}if(t==="telemetry"){await pe(K),await Ld(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 U(),i=o.reducer==="off"?"":o.enabled?await ar(`reducer-${o.reducer}`)?`Ready for the next Claude Code session.
165
169
  `:`Reducer ruleset unavailable; reconnect and run: tkr heartbeat
166
170
  `:`Tokmizer is disabled; the reducer is inactive.
167
171
  `;process.stdout.write(`Reducer: ${o.reducer}
@@ -170,14 +174,14 @@ ${i.manual}`),i.status==="missing"){process.exitCode=1;return}let a=await T()??a
170
174
  Reducer guides Claude Code response style; command output compression is separate.
171
175
  `+i+`Change it: tkr reducer <off|light|balanced|max>
172
176
  `);return}if(!r.includes(s)){process.stderr.write(`Unknown level: ${e[0]}. Use off, light, balanced or max.
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.
177
+ `),process.exitCode=1;return}await pe(K);try{let o=await Ee({reducer:s});if(o.settings.reducer==="off")process.stdout.write(`Reducer off. Claude Code responses back to normal next session.
174
178
  `);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.
179
+ `);else{if(await jn(K),!await ar(`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
180
  `),process.exitCode=1;return}process.stdout.write(`Reducer set to ${o.settings.reducer} for Claude Code. Its response-style instructions load next session.
177
181
  `)}}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.
178
182
  `):process.stdout.write(`${i}
179
183
  `),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)
184
+ `),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 U(),a=ut();process.stdout.write((a?`Compression: YOLO (this machine only)
181
185
  Standard level: ${n[i.outputVerbosity]}
182
186
  Content and diagnostics can be lost; discarded output cannot be restored.
183
187
  `:`Compression: ${n[i.outputVerbosity]}
@@ -188,8 +192,8 @@ Content and diagnostics can be lost; discarded output cannot be restored.
188
192
  Change standard level and leave YOLO: tkr compression <light|balanced|max>
189
193
  Local mode: tkr yolo <on|off|status>
190
194
  `);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.
195
+ `),process.exitCode=1;return}await Be(!1),process.stdout.write(`YOLO: off (this machine only)
196
+ `);try{await pe(K);let i=await Ee({outputVerbosity:o});process.stdout.write(`Compression set to ${n[i.settings.outputVerbosity]}. Applies to your next commands.
193
197
  `)}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}
198
+ `),process.exitCode=1}return}Nd(),process.exitCode=["help","--help","-h"].includes(t)?0:1}Fd().catch(t=>{process.stderr.write(`${t.message??t}
195
199
  `),process.exitCode=1});