@tokmizer/plugin 0.5.13 → 0.5.14

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.
@@ -5,8 +5,8 @@ var Ar=Object.defineProperty;var Rr=(t,e)=>{for(var r in e)Ar(t,r,{get:e[r],enum
5
5
  `).length<6)}var ls=/\b(?:DEBUG|TRACE|INFO|VERBOSE)\b/;function $t(t){return t.filter(e=>!ls.test(e))}function Mt(t){if(t.length===0)return t;let e=[],r=1,n=t[0];for(let s=1;s<t.length;s++){if(t[s]===n){r+=1;continue}e.push(r>1?`${n} \xD7${r}`:n),n=t[s],r=1}return e.push(r>1?`${n} \xD7${r}`:n),e}function Lt(t){let e=[],r=0;for(let n of t){if(n.trim()===""){r+=1;continue}r>0&&e.push(""),r=0,e.push(n)}return e}var jt=new Map;function Z(t,e){jt.set(t,e)}function Ft(t){return jt.get(t)}var us=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,ds=/^[./~][^\s]*:$/,et=1e3;function fs(t){if(t<1024)return String(t);let e=["K","M","G","T"],r=t/1024,n=0;for(;r>=1024&&n<e.length-1;)r/=1024,n+=1;return`${r.toFixed(1)}${e[n]}`}function ps(t){if(!us.test(t))return null;let e=t.split(/\s+/);if(e.length<9)return null;let r=Number(e[4]);if(!Number.isFinite(r))return null;let n=e.slice(8).join(" ").trim();if(n===""||n==="."||n==="..")return null;let s=e[0].charCodeAt(0)===100;return{name:n,size:r,isDir:s}}function ms(t){if(t.length<3)return null;let e=new Map;for(let s of t){let i=s.name.lastIndexOf(".");if(i<=0)continue;let a=s.name.slice(i);e.set(a,(e.get(a)??0)+1)}let r=null,n=0;for(let[s,i]of e)i>n&&(n=i,r=s);return r&&n>=Math.ceil(t.length/2)?`${n} ${r}`:null}function hs(t){let e=[],r=[],n=!1;for(let _ of t){if(/^total\s+\d+/.test(_))continue;if(ds.test(_.trim()))return t;let E=ps(_);E&&(n=!0,(E.isDir?e:r).push(E))}if(!n)return t;let s=(_,E)=>_.name.localeCompare(E.name);e.sort(s),r.sort((_,E)=>E.size-_.size||s(_,E));let i=[...e,...r],a=Math.min(40,Math.max(0,...i.map(_=>_.isDir?_.name.length+1:_.name.length))),o=[];for(let _ of i){let E=_.isDir?`${_.name}/`:_.name,O=_.isDir?"":fs(_.size);o.push(O?`${E.padEnd(a)} ${O}`:E)}if(o.length>et){let _=o.length-et;o=[...o.slice(0,et),`\u2026 ${_} more lines omitted`]}let c=r.length===1?"file":"files",u=e.length===1?"dir":"dirs",f=ms(r),v=`${r.length} ${c}, ${e.length} ${u}`+(f?` (${f})`:"");return o.push(v),o}Z("smart-ls",hs);Z("smart-read",t=>He(t));var tt=1e3;function gs(t){let e=t.filter(f=>f.trim()!=="");if(e.length===0||e.filter(f=>!/\s/.test(f.trim())).length<e.length*.6)return t;let n=new Map,s=[],i=0;for(let f of e){let v=f.trim();if(v.startsWith("find:")){s.push(v);continue}let _=v.replace(/^\.\//,"").replace(/\/+$/,""),E=_.lastIndexOf("/"),O=E>=0?_.slice(0,E):"",B=E>=0?_.slice(E+1):_;if(!B)continue;let $=n.get(O)??[];$.push(/\s/.test(B)?`"${B}"`:B),n.set(O,$),i+=1}if(i===0)return t;let a=new Set([""]);for(let f of n.keys()){if(f==="")continue;let v=f.split("/");for(let _=1;_<=v.length;_+=1)a.add(v.slice(0,_).join("/"))}let o=[...a].sort(),c=o.filter(f=>f!=="").length,u=[`${i}F ${c}D:`,""];for(let f of o){let v=f===""?0:f.split("/").length,_=f===""?".":f.slice(f.lastIndexOf("/")+1),E=n.get(f)??[],O=E.length?` ${E.join(" ")}`:"";u.push(`${" ".repeat(v)}${_}/${O}`)}if(u.push(...s),u.length>tt){let f=u.length-tt;return[...u.slice(0,tt),`\u2026 ${f} more lines omitted`]}return u}Z("smart-find",gs);var ys=/^[\s=]+$/,_s=/^\s*=+\s+(.*?)\s+=+\s*$/;Z("strip-banners",t=>{let e=[];for(let r of t){if(ys.test(r))continue;let n=_s.exec(r);e.push(n?n[1]:r)}return e});function vs(t){let e=[],r=0,n=0;for(;n<t.length;){let s=t[n].replace(/\s+$/,"");if(s===""){r+=1,n+=1,r<=1&&e.push("");continue}r=0;let i=1;for(;n+i<t.length&&t[n+i].replace(/\s+$/,"")===s;)i+=1;if(i>=3)e.push(s),e.push(` \u2026 (repeated ${i}x)`);else for(let a=0;a<i;a++)e.push(s);n+=i}for(;e.length>0&&e[e.length-1]==="";)e.pop();return e}Z("squeeze-output",vs);var zt=new WeakMap;function xs(t){let e=zt.get(t);if(e)return e;let r=t.strip_lines_matching.map(s=>new RegExp(s)),n={def:t,stripRegexes:r};return zt.set(t,n),n}function Zt(t,e,r={}){let n=xs(e),s=t;e.strip_ansi&&(s=It(s));let i=s.split(`
6
6
  `);n.stripRegexes.length&&(i=Ot(i,n.stripRegexes));let a=r.verbosity??"normal";if(a!=="normal"&&(i=Mt(i),i=Lt(i)),a==="minimal"&&(i=$t(i)),(r.smartCode||r.smartCode===void 0&&a!=="normal"&&Pt(s))&&(i=He(i)),e.transform){let c=Ft(e.transform);c&&(i=c(i))}e.truncate_lines_at&&(i=Dt(i,e.truncate_lines_at)),e.max_lines&&(i=Nt(i,e.max_lines));let o=i.join(`
7
7
  `);return o.trim().length===0&&e.on_empty&&(o=e.on_empty),o}var bs=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/thread '.*' panicked/];function Bt(t){if(!t)return!1;let e=t.length<=262144*2?[t]:[t.slice(0,262144),t.slice(-262144)];for(let r of bs)for(let n of e)if(r.test(n))return!0;return!1}var Ut=null;function rt(t){Ut=t}async function ks(t,e){let r=await St();return Ct(t,r.values(),e)}async function Vt(t,e,r,n={}){let s=Buffer.byteLength(e,"utf8"),{exitCode:i,...a}=n;if(i!=null?i!==0:Bt(e))return{output:e,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:!0};let u=await(Ut??ks)(t,r);if(!u)return{output:e,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:!1};let f=Zt(e,u,a);return{output:f,filterId:u.slug,rawBytes:s,filteredBytes:Buffer.byteLength(f,"utf8"),debugBypass:!1}}import{join as ws}from"node:path";import{mkdir as so,readFile as Ss,writeFile as io,unlink as ao,rename as oo}from"node:fs/promises";import Es from"node:os";import{join as Ht}from"node:path";function T(){return process.env.TOKMIZER_HOME||Ht(Es.homedir(),".tokmizer")}function De(){return Ht(T(),"install-id")}var Ts="state.json",lo={lastSettingsRevision:0,timeZone:Kt(),bonusActive:!1};function Kt(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function As(t){return t?.dir??T()}async function nt(t){let e=As(t);try{let r=await Ss(ws(e,Ts),"utf8"),n=JSON.parse(r);return{...n,lastSettingsRevision:n.lastSettingsRevision??0,timeZone:n.timeZone??Kt(),bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}function Rs(){let t=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(t)&&t>0?t:6048e5}function st(t,e=Date.now()){let r=t.lastHeartbeatOkAt;if(typeof r=="number"&&e-r>Rs())return!0;if(t.subEndsAt){let n=Date.parse(t.subEndsAt);if(Number.isFinite(n)&&e>n)return!0}return!1}function Wt(t,e=Date.now()){return st(t,e)?"free":t.plan}import{readFile as Cs,writeFile as mo,mkdir as ho,chmod as go}from"node:fs/promises";import{join as Is}from"node:path";var Os="settings-cache.json",Gt=Qe.parse({});async function qt(){try{let t=await Cs(Is(T(),Os),"utf8"),e=JSON.parse(t);return Qe.parse({...Gt,...e})}catch{return Gt}}var Ds=[[/(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]+-)*(?: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+.-]*:\/\/[^:/\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]"]];function Ne(t){let e=t;for(let[r,n]of Ds)e=e.replace(r,n);return e}import{join as Qt}from"node:path";import{appendFileSync as Fs,chmodSync as zs,existsSync as Zs,mkdirSync as Bs,readFileSync as Fo,renameSync as zo,rmdirSync as Zo,statSync as Us,unlinkSync as Bo,writeFileSync as Uo}from"node:fs";import{createHash as Eo,randomUUID as Ns}from"node:crypto";import{readFile as Yt,writeFile as Jt,mkdir as Ps}from"node:fs/promises";async function Xt(){try{let r=(await Yt(De(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await Ps(T(),{recursive:!0});let t=Ns();try{return await Jt(De(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await Yt(De(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await Jt(De(),t,{mode:384}),t}}import{createRequire as $s}from"node:module";var Ms=$s(import.meta.url);function Ls(){for(let t of["../package.json","../../package.json"])try{let e=Ms(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}var js=Ls();var No=300*1e3;var Vs=512*1024;function er(){return Qt(T(),"spool")}function Hs(t){return Qt(er(),`${t}.jsonl`)}function Ke(t,e){try{Bs(er(),{recursive:!0,mode:448});let r=Hs(t);if(Zs(r)&&Us(r).size>=Vs)return;Fs(r,JSON.stringify(e)+`
8
- `,{mode:384}),zs(r,384)}catch{return}}var Ws=/^[a-z0-9][a-z0-9._-]*$/i,Gs=/^[a-z][a-z-]+$/,qs=/^[A-Za-z_][A-Za-z0-9_]*=/,Ys=new Set(["gh","glab","gup","hub","gist"]),Js=/^(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,Xs=24,Qs=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"]);function tr(t){let e=t.toLowerCase();return e.startsWith("git")||Ys.has(e)}function it(t){let e=t.trim().split(/\s+/).filter(o=>o.length>0),r=0;for(;r<e.length&&qs.test(e[r]??"");)r+=1;let n=e[r];if(!n||!Ws.test(n)||n.length>Xs||tr(n)||Js.test(n)||Ne(n)!==n)return"";let s=e[r+1];return s&&tr(s)?"":(s&&Qs.has(n.toLowerCase())&&Gs.test(s)?`${n} ${s}`:n).slice(0,64)}async function rr(t){if(!t.telemetryOptIn)return;let e=it(t.cmd),r=e&&Ne(e)===e?e:"other";Ke("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),optimized:t.optimized})}async function nr(t){if(t.plan!=="pro")return;let e=it(t.cmd);!e||Ne(e)!==e||Ke("learn",{cmd:e,filterId:t.filterId==null?null:z(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}import{appendFileSync as ei,chmodSync as ti,mkdirSync as ri}from"node:fs";import{join as ni}from"node:path";var si="stats.jsonl";function ii(){return ni(T(),si)}function at(t,e,r=ii()){if(t<=0||e<0||e>t)return;let n=`{"t":${Math.floor(Date.now()/1e3)},"r":${t},"f":${e}}
9
- `;try{ri(T(),{recursive:!0,mode:448}),ei(r,n,{mode:384}),ti(r,384)}catch{return}}function sr(t,e,r){let n=r!=null?Math.min(t,r):t,s=Math.min(e,n);return{raw:n,filtered:s}}import{delimiter as ir,join as ai}from"node:path";function oi(){return ai(T(),"shims")}function ar(){let t=oi(),e={...process.env},r=process.platform==="win32"?"Path":"PATH",s=(e[r]??e.PATH??"").split(ir).filter(i=>i&&i!==t);return e[r]=s.join(ir),r==="Path"&&(e.PATH=e[r]),e}var ci=[{host:"claude-code",vars:["CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX"]},{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"]}],or=new Set(["claude-code","codex"]),li=3e4;function cr(t){return or.has(t)?li:null}function ot(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of ci)if(s.vars.some(i=>t[i]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!or.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}import{createConnection as _i}from"node:net";import{spawn as vi}from"node:child_process";import{existsSync as vr,openSync as mr,closeSync as xi,unlinkSync as hr,writeFileSync as gr}from"node:fs";import{dirname as bi,join as ki}from"node:path";import{fileURLToPath as Ei}from"node:url";var ui=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),installId:h.string().min(1).max(64).optional()}),di=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),fi=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),pi=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),pc=h.discriminatedUnion("op",[ui,di,fi,pi]),mc=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),hc=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),lr=h.object({filter:Ue.nullable(),cacheHit:h.boolean().optional()}),We=`
8
+ `,{mode:384}),zs(r,384)}catch{return}}var Ws=/^[a-z0-9][a-z0-9._-]*$/i,Gs=/^[a-z][a-z-]+$/,qs=/^[A-Za-z_][A-Za-z0-9_]*=/,Ys=new Set(["gh","glab","gup","hub","gist"]),Js=/^(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,Xs=24,Qs=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"]);function tr(t){let e=t.toLowerCase();return e.startsWith("git")||Ys.has(e)}function it(t){let e=t.trim().split(/\s+/).filter(o=>o.length>0),r=0;for(;r<e.length&&qs.test(e[r]??"");)r+=1;let n=e[r];if(!n||!Ws.test(n)||n.length>Xs||tr(n)||Js.test(n)||Ne(n)!==n)return"";let s=e[r+1];return s&&tr(s)?"":(s&&Qs.has(n.toLowerCase())&&Gs.test(s)?`${n} ${s}`:n).slice(0,64)}async function rr(t){if(!t.telemetryOptIn)return;let e=it(t.cmd),r=e&&Ne(e)===e?e:"other";Ke("telemetry",{cmd:r,tokensSaved:Math.max(0,Math.round(t.tokensSaved)),optimized:t.optimized})}async function nr(t){if(t.plan!=="pro")return;let e=it(t.cmd);!e||Ne(e)!==e||Ke("learn",{cmd:e,filterId:t.filterId==null?null:z(t.filterId),rawBytes:t.rawBytes,filteredBytes:t.filteredBytes})}import{appendFileSync as ei,chmodSync as ti,mkdirSync as ri}from"node:fs";import{join as ni}from"node:path";var si="stats.jsonl";function ii(){return ni(T(),si)}function at(t,e,r=ii(),n=!1){if(t<=0||e<0||e>t)return;let s=`{"t":${Math.floor(Date.now()/1e3)},"r":${t},"f":${e}${n?',"m":1':""}}
9
+ `;try{ri(T(),{recursive:!0,mode:448}),ei(r,s,{mode:384}),ti(r,384)}catch{return}}function sr(t,e,r){let n=r!=null?Math.min(t,r):t,s=Math.min(e,n);return{raw:n,filtered:s}}import{delimiter as ir,join as ai}from"node:path";function oi(){return ai(T(),"shims")}function ar(){let t=oi(),e={...process.env},r=process.platform==="win32"?"Path":"PATH",s=(e[r]??e.PATH??"").split(ir).filter(i=>i&&i!==t);return e[r]=s.join(ir),r==="Path"&&(e.PATH=e[r]),e}var ci=[{host:"claude-code",vars:["CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX"]},{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"]}],or=new Set(["claude-code","codex"]),li=3e4;function cr(t){return or.has(t)?li:null}function ot(t=process.env){let e=process.platform,r=e==="darwin"||e==="linux"||e==="win32"?e:"other",n=process.arch;for(let s of ci)if(s.vars.some(i=>t[i]))return{host:s.host,source:"env",os:r,arch:n,shimRecommended:!or.has(s.host)};return{host:"shell",source:"fallback",os:r,arch:n,shimRecommended:!0}}import{createConnection as _i}from"node:net";import{spawn as vi}from"node:child_process";import{existsSync as vr,openSync as mr,closeSync as xi,unlinkSync as hr,writeFileSync as gr}from"node:fs";import{dirname as bi,join as ki}from"node:path";import{fileURLToPath as Ei}from"node:url";var ui=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),installId:h.string().min(1).max(64).optional()}),di=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),fi=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),pi=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),pc=h.discriminatedUnion("op",[ui,di,fi,pi]),mc=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),hc=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),lr=h.object({filter:Ue.nullable(),cacheHit:h.boolean().optional()}),We=`
10
10
  `,gc=64*1024;function ur(t){return JSON.stringify(t)+We}function*dr(t){let e=0;for(;;){let r=t.indexOf(We,e);if(r<0)return;yield t.slice(e,r),e=r+1}}function Ge(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import{join as ct}from"node:path";import{existsSync as fr,statSync as mi,unlinkSync as hi,mkdirSync as gi,chmodSync as yi}from"node:fs";function qe(){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&&fr(e))return{path:ct(e,`tokmizer-${t}.sock`),isPipe:!1};let r=ct(T(),"run");try{gi(r,{recursive:!0,mode:448}),yi(r,448)}catch{}return{path:ct(r,"daemon.sock"),isPipe:!1}}async function pr(){let{path:t,isPipe:e}=qe();if(e||!fr(t))return;try{if(!mi(t).isSocket())return}catch{return}let r=await import("node:net");if(!await new Promise(s=>{let i=r.createConnection(t),a=o=>{i.removeAllListeners();try{i.destroy()}catch{}s(o)};i.once("connect",()=>a(!0)),i.once("error",o=>{let c=o.code;a(c!=="ECONNREFUSED"&&c!=="ENOENT")}),setTimeout(()=>a(!0),250)}))try{hi(t)}catch{}}var bc=5*6e4;var wi=500,Si=3e3,yr=1;async function Ti(t,e){return new Promise((r,n)=>{let s=_i(t),i=o=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(a),o){try{s.destroy()}catch{}n(o)}else r(s)},a=setTimeout(()=>i(new Error("connect timeout")),e);s.once("connect",()=>i(null)),s.once("error",o=>i(o))})}function Ai(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Ei(new URL("../bin/tkr-daemon.js",import.meta.url))}async function _r(t,e=3e3){let r=Math.ceil(e/75);for(let n=0;n<r;n++){if(vr(t))return!0;await new Promise(s=>setTimeout(s,75))}return!1}async function Ri(t){let e=Ai();if(!vr(e))throw new Error(`tkr-daemon binary not found at ${e}`);let{path:r}=qe(),n=ki(bi(r),"daemon.spawn.lock"),s=null;try{s=mr(n,"wx"),gr(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await _r(r,5e3))return;try{hr(n)}catch{}s=mr(n,"wx"),gr(s,String(process.pid))}else throw i}try{if(vi(process.execPath,[e],{detached:!0,stdio:["ignore","ignore","ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:t}}).unref(),!await _r(r,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{xi(s)}catch{}try{hr(n)}catch{}}}}async function xr(t={}){let{path:e}=t.socketPath?{path:t.socketPath}:qe(),r=await Xt(),n=null,s=0;for(;s<=yr;)try{n=await Ti(e,wi);break}catch{if(s+=1,s>yr)throw new Error(`tkr-daemon unreachable at ${e}`);await pr(),await Ri(r)}if(!n)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";n.setEncoding("utf8"),n.on("data",c=>{a+=c;let u=-1;for(let v=0;v<a.length;v++)a[v]===We&&(u=v);if(u<0)return;let f=[];for(let v of dr(a.slice(0,u+1)))f.push(v);a=a.slice(u+1);for(let v of f)if(v)try{let _=JSON.parse(v),E=i.get(_.id);if(!E)continue;clearTimeout(E.timer),i.delete(_.id),E.resolve(_)}catch{}}),n.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),n.on("error",()=>{});function o(c){return new Promise((u,f)=>{let v=setTimeout(()=>{i.delete(c.id),f(new Error(`daemon request timeout (${c.op})`))},Si);i.set(c.id,{resolve:u,reject:f,timer:v}),n.write(ur(c))})}return{filter:async(c,u)=>{let f=await o({id:Ge(),op:"filter",cmd:c.slice(0,2048),plan:u,installId:r});if(!f.ok)return null;let v=lr.safeParse(f.data);return v.success?v.data.filter:null},ping:async()=>{let c=await o({id:Ge(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await o({id:Ge(),op:"reload",installId:r});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{n.end()}catch{}}}}var Ae=null,Pe=null;async function Ci(){if(Ae)return Ae;if(Pe)return Pe;let t=xr().then(e=>{if(Pe===t)return Ae=e,e;try{e.close()}catch{}return null}).catch(()=>null);return Pe=t,t}function Ii(t){return t?{...t,matchRegex:new RegExp(t.match_command)}:null}function br(t){rt(async(e,r)=>{let n=await Ci();if(!n)return null;try{let s=t==="free"?"trial":t,i=await n.filter(e,s);return!i||!(r??Ve(void 0)).has(z(i.slug))?null:Ii(i)}catch{return null}})}function kr(){if(rt(null),Ae)try{Ae.close()}catch{}Ae=null,Pe=null}var Er=16*1024*1024,wr=Number(process.env.TOKMIZER_SHIM_TIMEOUT_MS??"600000");function Sr(t){return t[0]==="--as"&&typeof t[1]=="string"?{cmdName:t[1],args:t.slice(2)}:t.length>0?{cmdName:t[0],args:t.slice(1)}:{cmdName:"",args:[]}}async function Tr(t){let{cmdName:e,args:r}=t;if(!e)return process.stderr.write(`tkr-shim: missing command name
11
11
  `),{exitCode:2,filteredOut:"",filteredErr:"",filterId:null,rawBytes:0,filteredBytes:0};let n=[e,...r].join(" "),s=await qt(),i=await nt(),a=i?Wt(i):null,o=i?Ve(i.allowedFilters,st(i)):new Set,c=new Set(s.filters.disabled.map(z)),u=c.size>0?new Set([...o].filter(_=>!c.has(_))):o,f=!process.stdout.isTTY&&ot().host==="shell",v=!s.enabled||!i;i&&!v&&!f&&br(a);try{return await new Promise(_=>{let E=Oi(e,r,{stdio:["inherit","pipe","pipe"],shell:!1,windowsHide:!0,env:ar(),timeout:wr>0?wr:void 0}),O=[],B=[],$=0,W=0,he=!1,lt=A=>{try{E.kill(A)}catch{}};process.on("SIGINT",()=>lt("SIGINT")),process.on("SIGTERM",()=>lt("SIGTERM")),E.stdout.on("data",A=>{if($+=A.length,$>Er){if(!he){for(let ge of O)process.stdout.write(ge);O.length=0,he=!0}process.stdout.write(A);return}O.push(A)}),E.stderr.on("data",A=>{if(W+=A.length,W>Er){if(!he){for(let ge of B)process.stderr.write(ge);B.length=0,he=!0}process.stderr.write(A);return}B.push(A)}),E.on("error",A=>{process.stderr.write(`tkr-shim: ${A.message}
12
12
  `),_({exitCode:127,filteredOut:"",filteredErr:"",filterId:null,rawBytes:0,filteredBytes:0})}),E.on("close",async(A,ge)=>{let $e=typeof A=="number"?A:ge==="SIGTERM"?143:ge==="SIGINT"?130:1,ye=Buffer.concat(O),_e=Buffer.concat(B);if(he||v||f){ye.length&&process.stdout.write(ye),_e.length&&process.stderr.write(_e),f&&!v&&!he&&at($+W,$+W),_({exitCode:$e,filteredOut:ye.toString("utf8"),filteredErr:_e.toString("utf8"),filterId:null,rawBytes:$+W,filteredBytes:$+W});return}let ut=ye.toString("utf8"),Me=_e.toString("utf8");try{let I=await Vt(n,ut,u,{verbosity:s.outputVerbosity,exitCode:$e}),Le=sr(I.rawBytes,I.filteredBytes,cr(ot().host));at(Le.raw,Le.filtered);try{await nr({cmd:n,filterId:I.filterId,rawBytes:I.rawBytes,filteredBytes:I.filteredBytes,plan:a}),await rr({cmd:n,tokensSaved:Math.round((Le.raw-Le.filtered)/4),optimized:I.filterId!=null,telemetryOptIn:s.telemetryOptIn})}catch{}if(I.filteredBytes<I.rawBytes){process.stdout.write(I.output),Me&&process.stderr.write(Me),_({exitCode:$e,filteredOut:I.output,filteredErr:Me,filterId:I.filterId,rawBytes:I.rawBytes,filteredBytes:I.filteredBytes});return}}catch{}ye.length&&process.stdout.write(ye),_e.length&&process.stderr.write(_e),_({exitCode:$e,filteredOut:ut,filteredErr:Me,filterId:null,rawBytes:$+W,filteredBytes:$+W})})})}finally{kr()}}var Di=Sr(process.argv.slice(2));Tr(Di).then(t=>{process.exitCode=t.exitCode}).catch(t=>{process.stderr.write(`tkr-shim: ${t.message}