@tokmizer/plugin 0.9.70 → 0.9.71

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.
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- function Z(e=5e3){return new Promise(t=>{let n=[],r=process.stdin,o=!1,i=()=>{o||(o=!0,clearTimeout(u),r.off("data",s),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},s=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},u=setTimeout(i,e);r.on("data",s).once("end",i).once("error",i),r.resume()})}import{appendFileSync as Qt,chmodSync as en,mkdirSync as tn,existsSync as nn,readFileSync as mi,rmSync as gi}from"node:fs";import{dirname as rn,join as on}from"node:path";import Zt from"node:os";import{join as Vt}from"node:path";function x(){return process.env.TOKMIZER_HOME||Vt(Zt.homedir(),".tokmizer")}import{readFileSync as Kt,renameSync as qt,statSync as Yt,writeFileSync as Xt}from"node:fs";function We(e,t,n){try{if(Yt(e).size<=t)return;let r=Kt(e,"utf8").split(`
4
- `).filter(u=>u.trim()!==""),o=[],i=0;for(let u=r.length-1;u>=0;u-=1){let l=r[u],a=Buffer.byteLength(l)+1;if(i+a>n)break;o.push(l),i+=a}o.reverse();let s=`${e}.tmp-${process.pid}`;Xt(s,o.length?`${o.join(`
3
+ function V(e=5e3){return new Promise(t=>{let n=[],r=process.stdin,o=!1,i=()=>{o||(o=!0,clearTimeout(u),r.off("data",s),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},s=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},u=setTimeout(i,e);r.on("data",s).once("end",i).once("error",i),r.resume()})}import{appendFileSync as nn,chmodSync as rn,mkdirSync as on,existsSync as sn,readFileSync as yi,rmSync as Si}from"node:fs";import{dirname as un,join as ln}from"node:path";import qt from"node:os";import{join as Yt}from"node:path";function x(){return process.env.TOKMIZER_HOME||Yt(qt.homedir(),".tokmizer")}import{readFileSync as Xt,renameSync as Qt,statSync as en,writeFileSync as tn}from"node:fs";function Be(e,t,n){try{if(en(e).size<=t)return;let r=Xt(e,"utf8").split(`
4
+ `).filter(u=>u.trim()!==""),o=[],i=0;for(let u=r.length-1;u>=0;u-=1){let l=r[u],a=Buffer.byteLength(l)+1;if(i+a>n)break;o.push(l),i+=a}o.reverse();let s=`${e}.tmp-${process.pid}`;tn(s,o.length?`${o.join(`
5
5
  `)}
6
- `:"",{mode:384}),qt(s,e)}catch{}}var sn="usage.jsonl";var Be=2*1024*1024;function un(){return on(x(),sn)}function y(e,t,n=un()){try{let r=rn(n);nn(r)||tn(r,{recursive:!0,mode:448});let o=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Qt(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${o}","o":${t?1:0}}
7
- `,{mode:384}),en(n,384),We(n,Be,Be/2)}catch{}}import{accessSync as hn,chmodSync as kn,constants as _n,existsSync as le,mkdirSync as bn,readdirSync as wn,readFileSync as yn,realpathSync as Xe,renameSync as Sn,unlinkSync as xn,writeFileSync as $n}from"node:fs";import{basename as Se,dirname as O,join as E,sep as j}from"node:path";import An from"node:os";import{realpathSync as Ge}from"node:fs";import{delimiter as fn,join as L}from"node:path";import dn from"node:os";import{basename as ln}from"node:path";var an={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},cn={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"};function ue(e){let t=ln(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(an))if(r===t)return[n];for(let[n,r]of Object.entries(cn))if(r===t)return["hook",n];return null}function V(){return!1}function Ze(e,t){try{return Ge(e)===Ge(t)}catch{return!1}}function be(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":fn)){if(!o||o.includes("node_modules"))continue;let i=L(o,r);if(Ze(i,n))return i}if(t!=="win32"){let o=dn.homedir();for(let i of[L(o,".local","bin",r),L(o,".local","share","tokmizer","current","dist","bin",r),L("/opt/homebrew/bin",r),L("/usr/local/bin",r),L("/home/linuxbrew/.linuxbrew/bin",r)])if(Ze(i,n))return i}return n}import{rmSync as pn,statSync as mn}from"node:fs";import{join as Ve}from"node:path";function Ke(){return Ve(x(),"shims")}function we(){return Ve(x(),"fail-open")}var gn=24*36e5;function C(e=Date.now()){try{if(e-mn(we()).mtimeMs<gn)return!0;pn(we(),{force:!0})}catch{}return!1}function qe(){return`[ -f ${N(we())} ]`}function N(e){return`'${e.replace(/'/g,"'\\''")}'`}function Ye(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}var et=1,K="tkr-shim.stable",tt=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function Tn(){return E(x(),"bin","tkr-shim-launch")}function Cn(){return E(x(),"bin","tkr-run")}function Qe(){return E(process.env.CLAUDE_CONFIG_DIR||E(An.homedir(),".claude"),"plugins","cache","tokmizer","tokmizer")}function En(e){let t=O(O(O(e)));return tt.test(Se(t))&&Se(O(t))==="tokmizer"?O(t):null}function xe(e){return/[\n\r]/.test(e)||e.includes(`${j}_npx${j}`)||e.includes(`${j}.bun${j}install${j}cache${j}`)}function $e(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=E(t[1],"opt",t[2],t[3]);try{return Xe(n)===Xe(e)?n:e}catch{return e}}function vn(e=process.execPath){return xe(e)?"":$e(e)}function On(e,t=V()){if(t&&ue(e)){let o=be();return{single:xe(o)?"":$e(o),js:"",cache:Qe(),node:""}}let n=vn(),r=En(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:xe(e)?"":$e(e),cache:Qe(),node:n}}function Rn(e){try{return hn(e,_n.X_OK),!0}catch{return!1}}function Nn(e){let t=null,n=-1,r;try{r=wn(e)}catch{return null}for(let o of r){if(!tt.test(o))continue;let i=E(e,o);if(!le(E(i,"dist","bin","tkr-shim.js"))||!le(E(i,"dist","bin",K)))continue;let[s,u,l]=o.split(".").map(Number),a=s*1e6+u*1e3+l;a>n&&(n=a,t=i)}return t}function ye(e){return e.single&&Rn(e.single)||e.js&&le(e.js)&&(Se(e.js)!=="tkr-shim.js"||le(E(O(e.js),K)))?!0:e.cache!==""&&Nn(e.cache)!==null}function Pn(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${K}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${K}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${N(Ke())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${K}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function In(e){return["#!/bin/sh",`_tk_f=${et}`,`_tk_s=${N(e.single)}`,`_tk_j=${N(e.js)}`,`_tk_k=${N(e.cache)}`,`_tk_n=${N(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${qe()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Pn("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
8
- `)}function nt(e){let t=Cn(),n=On(E(O(e),"tkr-shim.js")),r=Ln(t);if(r&&r.format===et&&ye(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!ye(n))return r&&ye(r.target)?t:null;let o=`${t}.${process.pid}.tmp`;try{return bn(O(t),{recursive:!0,mode:448}),$n(o,In(n),{mode:493}),kn(o,493),Sn(o,t),t}catch{try{xn(o)}catch{}return null}}function Hn(e){let t=u=>{let l=e.match(new RegExp(`^${u}=(.*)$`,"m"));return l?u==="_tk_f"?l[1]:Ye(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),i=t("_tk_k"),s=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||i===null?null:{format:n,target:{single:r,js:o,cache:i,node:s}}}function Ln(e=Tn()){try{return Hn(yn(e,"utf8"))}catch{return null}}import{spawnSync as xr}from"node:child_process";import{existsSync as F,readFileSync as ee,readdirSync as me}from"node:fs";import{homedir as P}from"node:os";import{fileURLToPath as $r}from"node:url";import{dirname as $t,join as p,resolve as Ar}from"node:path";function jn(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Dn(e,t,n){let r=e.split(/\r?\n/),o="",i=(Math.log10(t+1)|0)+1;for(let s=t-1;s<=t+1;s++){let u=r[s-1];u&&(o+=s.toString().padEnd(i," "),o+=": ",o+=u,o+=`
6
+ `:"",{mode:384}),Qt(s,e)}catch{}}var an="usage.jsonl";var Ge=2*1024*1024;function cn(){return ln(x(),an)}function y(e,t,n=cn()){try{let r=un(n);sn(r)||on(r,{recursive:!0,mode:448});let o=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";nn(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${o}","o":${t?1:0}}
7
+ `,{mode:384}),rn(n,384),Be(n,Ge,Ge/2)}catch{}}import fn from"node:os";import{isAbsolute as dn,join as Ze,resolve as Ve}from"node:path";function ue(e=process.env,t=fn.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return Ze(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=Ze(t,r.slice(2))),dn(r)?Ve(r):Ve(r)}import{accessSync as yn,chmodSync as Sn,constants as xn,existsSync as ae,mkdirSync as $n,readdirSync as An,readFileSync as Cn,realpathSync as tt,renameSync as Tn,unlinkSync as En,writeFileSync as vn}from"node:fs";import{basename as xe,dirname as O,join as E,sep as D}from"node:path";import{realpathSync as Ke}from"node:fs";import{delimiter as hn,join as j}from"node:path";import kn from"node:os";import{basename as pn}from"node:path";var mn={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},gn={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"};function le(e){let t=pn(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(mn))if(r===t)return[n];for(let[n,r]of Object.entries(gn))if(r===t)return["hook",n];return null}function K(){return!1}function qe(e,t){try{return Ke(e)===Ke(t)}catch{return!1}}function we(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":hn)){if(!o||o.includes("node_modules"))continue;let i=j(o,r);if(qe(i,n))return i}if(t!=="win32"){let o=kn.homedir();for(let i of[j(o,".local","bin",r),j(o,".local","share","tokmizer","current","dist","bin",r),j("/opt/homebrew/bin",r),j("/usr/local/bin",r),j("/home/linuxbrew/.linuxbrew/bin",r)])if(qe(i,n))return i}return n}import{rmSync as _n,statSync as bn}from"node:fs";import{join as Ye}from"node:path";function Xe(){return Ye(x(),"shims")}function ye(){return Ye(x(),"fail-open")}var wn=24*36e5;function T(e=Date.now()){try{if(e-bn(ye()).mtimeMs<wn)return!0;_n(ye(),{force:!0})}catch{}return!1}function Qe(){return`[ -f ${N(ye())} ]`}function N(e){return`'${e.replace(/'/g,"'\\''")}'`}function et(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}var rt=1,q="tkr-shim.stable",ot=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function On(){return E(x(),"bin","tkr-shim-launch")}function Rn(){return E(x(),"bin","tkr-run")}function nt(){return E(ue(),"plugins","cache","tokmizer","tokmizer")}function Nn(e){let t=O(O(O(e)));return ot.test(xe(t))&&xe(O(t))==="tokmizer"?O(t):null}function $e(e){return/[\n\r]/.test(e)||e.includes(`${D}_npx${D}`)||e.includes(`${D}.bun${D}install${D}cache${D}`)}function Ae(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=E(t[1],"opt",t[2],t[3]);try{return tt(n)===tt(e)?n:e}catch{return e}}function Pn(e=process.execPath){return $e(e)?"":Ae(e)}function In(e,t=K()){if(t&&le(e)){let o=we();return{single:$e(o)?"":Ae(o),js:"",cache:nt(),node:""}}let n=Pn(),r=Nn(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:$e(e)?"":Ae(e),cache:nt(),node:n}}function Hn(e){try{return yn(e,xn.X_OK),!0}catch{return!1}}function Ln(e){let t=null,n=-1,r;try{r=An(e)}catch{return null}for(let o of r){if(!ot.test(o))continue;let i=E(e,o);if(!ae(E(i,"dist","bin","tkr-shim.js"))||!ae(E(i,"dist","bin",q)))continue;let[s,u,l]=o.split(".").map(Number),a=s*1e6+u*1e3+l;a>n&&(n=a,t=i)}return t}function Se(e){return e.single&&Hn(e.single)||e.js&&ae(e.js)&&(xe(e.js)!=="tkr-shim.js"||ae(E(O(e.js),q)))?!0:e.cache!==""&&Ln(e.cache)!==null}function jn(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${q}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${q}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${N(Xe())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${q}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function Dn(e){return["#!/bin/sh",`_tk_f=${rt}`,`_tk_s=${N(e.single)}`,`_tk_j=${N(e.js)}`,`_tk_k=${N(e.cache)}`,`_tk_n=${N(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${Qe()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...jn("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
8
+ `)}function it(e){let t=Rn(),n=In(E(O(e),"tkr-shim.js")),r=Mn(t);if(r&&r.format===rt&&Se(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Se(n))return r&&Se(r.target)?t:null;let o=`${t}.${process.pid}.tmp`;try{return $n(O(t),{recursive:!0,mode:448}),vn(o,Dn(n),{mode:493}),Sn(o,493),Tn(o,t),t}catch{try{En(o)}catch{}return null}}function Fn(e){let t=u=>{let l=e.match(new RegExp(`^${u}=(.*)$`,"m"));return l?u==="_tk_f"?l[1]:et(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),i=t("_tk_k"),s=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||i===null?null:{format:n,target:{single:r,js:o,cache:i,node:s}}}function Mn(e=On()){try{return Fn(Cn(e,"utf8"))}catch{return null}}import{spawnSync as Tr}from"node:child_process";import{existsSync as P,readFileSync as te,readdirSync as ge,statSync as Er}from"node:fs";import{homedir as I}from"node:os";import{fileURLToPath as vr}from"node:url";import{dirname as Tt,join as p,resolve as Or}from"node:path";function zn(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Un(e,t,n){let r=e.split(/\r?\n/),o="",i=(Math.log10(t+1)|0)+1;for(let s=t-1;s<=t+1;s++){let u=r[s-1];u&&(o+=s.toString().padEnd(i," "),o+=": ",o+=u,o+=`
9
9
  `,s===t&&(o+=" ".repeat(i+n+2),o+=`^
10
- `))}return o}var f=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=jn(n.toml,n.ptr),i=Dn(n.toml,r,o);super(`Invalid TOML document: ${t}
10
+ `))}return o}var f=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=zn(n.toml,n.ptr),i=Un(n.toml,r,o);super(`Invalid TOML document: ${t}
11
11
 
12
- ${i}`,n),this.line=r,this.column=o,this.codeblock=i}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}};function ae(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,o=n===39,i=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);i&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let s="",u=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),i&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)f.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!i||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(i&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let a=e.s.slice(u,e.p);s=s?s+a:a}return e.p+=i?3:1,s}else if(!l)!o&&n===92&&(s+=e.s.slice(u,u=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let a=e.p++-1,c=0,d=n===120?2:n===117?4:8;for(let g=0;g<d;g++,e.p++){let m=e.s.charCodeAt(e.p),k=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;k<0&&f.x("invalid non-hex character in unicode escape",e),c=c<<4|k}(c<0||c>1114111||c>=55296&&c<=57343)&&f.x("invalid unicode escape",e,a),s+=String.fromCodePoint(c),u=e.p--,l=0}else i&&(n===32||n===9)?l=2:(n===98?s+="\b":n===116?s+=" ":n===110?s+=`
13
- `:n===102?s+="\f":n===114?s+="\r":n===101?s+="\x1B":n===34?s+='"':n===92?s+="\\":f.x("unrecognised escape sequence",e),u=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&f.x("invalid escape: only line-ending whitespace may be escaped",e,u),l=!o&&n===92?1:0,u=e.p);f.x("unfinished string",e,t)}var Fn=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,q=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,i=!0,s="Z",u;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(s=null,t+="Z"):(u=t.charCodeAt(t.length-1))!==90&&u!==122&&(s=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);o=n!==4,i=n!==3}else{let l=t.match(Fn);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),i=!!l[2],i&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(s=l[3]||null,!s&&i&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=i,this.#e=s)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}};function w(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Te(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function X(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||f.x("document contains excessively nested structures. aborting.",e);let o=r===91?it(e):ot(e);return e.d++,o}return r===34||r===39?ae(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&f.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&f.x("invalid value",e,n),e.p++,!1):r===43||r===45?ce(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?Mn(e,r,t):e.s.charCodeAt(e.p+2)===58?zn(e,r,t):ce(e,e.p,r,0,t)}function ce(e,t,n,r,o){let i=n,s=0,u=!1;if(i===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&f.x("invalid value",e,t),e.p++,(r||1)/0;if(i===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&f.x("invalid value",e,t),e.p++,NaN;if(i===48){if(++e.p>=e.s.length||Te(i=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(i===120)return Ae(e,t,16,o);if(i===98)return Ae(e,t,2,o);if(i===111)return Ae(e,t,8,o)}i===46?s=2:i===101||i===69?s=4:f.x("illegal leading zero",e,t)}else w(i)||f.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!Te(i,o));)s||(s=1),i===95?(s&1||f.x("illegal underscore",e),s+=11,u=!0):s===1&&i===46?s=2:(s===1||s===3)&&(i===101||i===69)?s=4:s===4&&(i===43||i===45)||(w(i)?s>9?s-=11:s&1||s++:f.x("illegal character in numeric literal",e));if(!s){let a=(n-48)*(r||1);return e.bi===!0?BigInt(a):a}s&1||f.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return u&&(l=l.replaceAll("_","")),s>1?parseFloat(l):rt(e,l,10,t)}function Ae(e,t,n,r){let o,i=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Te(o,r));)o===95?(i&1&&f.x("illegal underscore",e),i=3):w(o,n)?i&1&&i--:f.x("illegal character in numeric literal",e);i&1&&f.x("unfinished numeric value",e);let s=e.s.slice(t+2,e.p);return i&&(s=s.replaceAll("_","")),rt(e,s,n,t)}function rt(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;f.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function Mn(e,t,n){let r=e.p++,o;if(!w(t)||!w(e.s.charCodeAt(e.p++))||!w(e.s.charCodeAt(e.p++))||!w(e.s.charCodeAt(e.p++)))return ce(e,e.p=r,t,0,n);if(e.p+=5,w(e.s.charCodeAt(e.p++))||f.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!w(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let s=e.s.slice(r,e.p);return Y(e,s,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&f.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;w(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let s=e.s.slice(r,++e.p);return Y(e,s,1,o,r,"[+00:00]")}if(t===43||t===45){let s=e.s.slice(r,e.p+=6);return Y(e,s,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return Y(e,i,2,o,r)}function zn(e,t,n){let r=e.p;if(!w(t)||!w(e.s.charCodeAt(++e.p)))return ce(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;w(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return Y(e,o,4,!1,r)}function Y(e,t,n,r,o,i){if(e.ld){let s=new q(t,n,r);return s.isValid()||f.x("invalid date",e,o),s}try{switch(i&&(t+=i),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(s){f.x(s instanceof Error?s.message:""+s,e,o)}}function Un(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&f.x("control characters are not allowed in comments",e)}}function $(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;Un(e)}}function fe(e,t=61){let n,r=0,o=[],i,s=e.s.charCodeAt(n=e.p);do{if(s===t)return r||f.x("unexpected end of key",e),r===1&&o.push(e.s.slice(i,e.p)),e.p++,o;s===46?(r||f.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(i,e.p)),r=0):!r&&(s===34||s===39)?(s===e.s.charCodeAt(e.p+1)&&s===e.s.charCodeAt(e.p+2)&&f.x("illegal quoted key: multiline strings are not allowed",e),o.push(ae(e)),r=2,e.p--):s===32||s===9?r===1&&(o.push(e.s.slice(i,e.p)),r=2):r===2||s<48&&s!==45||s>57&&s<65||s>90&&s<97&&s!==95||s>122?f.x("illegal character in key",e):r||(r=1,i=e.p)}while(s=e.s.charCodeAt(++e.p));f.x("incomplete key-value: cannot find end of key",e,n)}function ot(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if($(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let i,s=n,u=!1,l=e.p,a=fe(e);for(let d=0;d<a.length;d++){d&&(s=u?s[i]:s[i]=Object.create(null)),i=a[d],(u=Object.hasOwn(s,i))&&(typeof s[i]!="object"||r.has(s[i]))&&f.x("trying to redefine an already defined value",e,l);let g=i==="__proto__";if(e.uk&&(g||i==="constructor")){s=e.uk!==1&&f.x("document contains an unsafe property",e,l);break}!u&&g&&Object.defineProperty(s,i,{enumerable:!0,configurable:!0,writable:!0})}u&&f.x("trying to redefine an already defined value",e,l),$(e,!0,!0);let c=X(e,125);if(s&&typeof(s[i]=c)=="object"&&r.add(c),$(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&f.x("expected comma or end of structure",e,e.p-1)}f.x("unfinished table",e,t)}function it(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if($(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(X(e,93)),$(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&f.x("expected comma or end of structure",e,e.p-1)}f.x("unfinished array",e,t)}function st(e,t,n,r,o){let i=n,s=r,u,l=!1,a;for(let c=0;c<t.length;c++){if(c){if(i=l?i[u]:i[u]=Object.create(null),s=(a=s[u]).c,o===0&&(a.t===1||a.t===2))return null;if(a.t===2){let d=i.length-1;i=i[d],s=s[d].c}}if(u=t[c],(l=Object.hasOwn(i,u))&&s[u]?.t===0&&s[u]?.d)return null;if(!l){let d=u==="__proto__";if(e.uk&&(d||u==="constructor"))return!1;d&&(Object.defineProperty(i,u,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(s,u,{enumerable:!0,configurable:!0,writable:!0})),s[u]={t:c<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(a=s[u],a.t!==o&&!(o===1&&a.t===3)||(o===2&&(a.d||(a.d=!0,i[u]=[]),i[u].push(i=Object.create(null)),a.c[a.i++]=a={t:1,d:!1,i:0,c:Object.create(null)}),a.d))return null;if(a.d=!0,o===1)i=l?i[u]:i[u]=Object.create(null);else if(o===0&&l)return null;return[u,i,a.c]}function ut(e,t,n){(t===null||e.uk===2)&&f.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Ce(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),o=Object.create(null),i,s=!1,u=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,$(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let a=e.charCodeAt(++n.p)===91;i=n.p+=+a,s=!1;let c=fe(n,93);a&&(e.charCodeAt(n.p)!==93&&f.x("expected end of table array declaration",n),n.p++);let d=st(n,c,r,o,a?2:1);d?(l=d[2],u=d[1]):(ut(n,d,i),s=!0)}else{i=n.p;let a=fe(n),c=st(n,a,u,l,0);!c&&!s&&ut(n,c,i),$(n,!0,!0);let d=X(n,void 0);c&&!s&&(c[1][c[0]]=d)}$(n,!0),n.p<e.length&&(i=e.charCodeAt(n.p))!==10&&(i!==13||e.charCodeAt(n.p+1)!==10)&&f.x("each key-value declaration must be followed by an end-of-line",n),$(n)}return r}var as=!!"".isWellFormed;import{execFileSync as cr}from"node:child_process";function Jn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Ee(e){return JSON.parse(Jn(e))}import{mkdirSync as fr,readFileSync as dt,renameSync as dr,statSync as pr,writeFileSync as mr}from"node:fs";import{join as pt}from"node:path";import{closeSync as Wn,openSync as Bn,readSync as Gn,readdirSync as Zn,readFileSync as Vn,statSync as at}from"node:fs";import{homedir as Kn}from"node:os";import{isAbsolute as qn,join as de,resolve as Yn}from"node:path";var Xn=/^[A-Za-z0-9._+@%:,/-]+$/,Qn=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),er=32,tr=4*1024*1024;function Oe(e){let t;try{t=Bn(e,"r");let n=Buffer.alloc(4),r=Gn(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&Wn(t)}}function Q(e,t=process.platform){try{let n=at(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Oe(e);return r==="#!"||r!==null&&Qn.has(r)}catch{return!1}}function nr(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function D(e,t,n,r=process.platform){if(!Xn.test(e))return!1;let o=r==="win32";if(e.includes("/"))return Q(Yn(t??process.cwd(),e),r);if(!n)return!1;let i=o?nr(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!qn(s))){for(let u of i)if(Q(de(s,u),r))return!0}return!1}var rr=/^eval \$'([^\s'()=]+) \(\) /,or=/^([^\s'"()=]+) \(\) \{$/,ir=/^alias -- ([^\s=]+)=(.*)$/,sr=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,ur=/^export PATH=(.*)$/,lr=/^(?:--colou?r(?:=\S+)?|-G)$/;function lt(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function ar(e,t){let n="";for(let r of e.split(`
14
- `)){let o=ur.exec(r);if(o&&n!=="# Functions"){let i=lt(o[1].trim());/[$`\\]/.test(i)||t.paths.push(i);continue}if(r.startsWith("# ")&&(n!=="# Functions"||sr.test(r))){n=r;continue}if(n==="# Functions"){let i=rr.exec(r)??or.exec(r);i&&t.functions.add(i[1])}else if(n==="# Aliases"){let i=ir.exec(r);i&&t.aliases.set(i[1],lt(i[2].trim()))}}}function ve(e){return e?.code==="ENOENT"}function ct(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=de(e||de(Kn(),".claude"),"shell-snapshots"),r=[];try{for(let o of Zn(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let i=de(n,o);try{let s=at(i);s.isFile()&&r.push({path:i,mtime:s.mtimeMs,size:s.size})}catch(s){ve(s)||(t.uncertain=!0)}}}catch(o){return ve(o)||(t.uncertain=!0),t}r=r.sort((o,i)=>i.mtime-o.mtime).slice(0,er);for(let o of r)try{if(o.size>tr)throw new Error("snapshot too large");ar(Vn(o.path,"utf8"),t)}catch(i){ve(i)||(t.uncertain=!0)}return t}function ft(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(o=>lr.test(o))}var gr="exec-probe.json",hr=6e4;function kr(){return pt(x(),gr)}function _r(e){try{let t=Ee(dt(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function br(e,t){try{fr(pt(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;mr(n,JSON.stringify(t),{mode:384}),dr(n,e)}catch{}}function wr(e){try{return cr(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function yr(e,t){try{let r=dt(e,"utf8").split(`
15
- `,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?D(r[1]??"",void 0,t):Q(o)}catch{return!1}}function Sr(e,t,n){try{let r=pr(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Re(e,t=process.platform,n=process.env.PATH,r=kr(),o=Date.now()){let i=t!=="win32"&&Oe(e)==="#!",s=Sr(e,i,n),u=_r(r);if(u?.key===s&&(u.ok||o-u.at<hr))return u.ok;let l=Q(e,t)&&(i?yr(e,n):wr(e));return br(r,{key:s,ok:l,at:o,skipped:(u?.skipped??0)+(l?0:1)}),l}var Tr=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),Cr=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),mt=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),gt="(?:dev|start|serve|watch|preview)",Er=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${gt}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${gt}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),vr=/(?:^|\s)--watch(?:\s|=|$)/;function Or(e){return Er.test(e)&&!vr.test(e)}var Rr=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Nr=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,At=3;function Tt(e){let t=Rr.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,i=e.indexOf(r,o);if(i<=o)return null;let s=e.slice(i+1);if(s&&!/^\s/.test(s))return null;let u=e.slice(o,i);return r==='"'&&/[$`\\!]/.test(u)||n&&Nr.test(u)?null:{script:u,start:o,end:i,quote:r}}var Pr=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Ir(e){return He(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Et(n.text);return r!==""&&!Pr.has(r)&&!Ie.test(r)}).length>1}function Hr(e,t,n,r,o){if(n>=At)return null;let i=Tt(e);if(!i)return null;let{script:s,start:u,end:l,quote:a}=i,c=[],d=vt(s,t,n+1,r,T=>c.push(T));if(d===s||a==='"'&&/["$`]/.test(d))return null;let g=a==="'"?d.replace(/'/g,"'\\''"):d,m=`${e.slice(0,u)}${g}${e.slice(l)}`,k=Ir(s);if(o)for(let T of k?[e,...c]:c)o(T);return k?`${t} ${m}`:m}var ht=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Lr=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,jr=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),kt=new Set(["npm","pnpm","yarn","bun"]),_t=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,Dr=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),bt=new Set(["npx","pnpx","bunx"]),Fr=new Set(["nodemon","top","htop","btop","watch"]),Mr=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),zr=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,wt=/(?:^|\s)-w(?:\s|$)/;function Ur(e){let t=e.map(s=>s.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=M(t[0]??"");if(bt.has(n)||kt.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(bt.has(n)?1:2).filter((s,u,l)=>!(s.startsWith("-")&&l.slice(0,u).every(a=>a.startsWith("-")))),n=M(t[0]??"");else if(kt.has(n)){let s=t.slice(1).filter((l,a,c)=>!l.startsWith("-")&&!Dr.has(c[a-1]??""));s[0]==="workspace"&&s.splice(0,2);let u=s[0]==="run"||s[0]==="run-script"?s[1]:s[0];return u!==void 0&&_t.test(u)}let r=t.slice(1),o=r.join(" "),i=r.find(s=>!s.startsWith("-"));if(Fr.has(n)||zr.test(o)||Mr.has(n)&&wt.test(o))return!0;switch(n){case"next":return i==="dev"||i==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return i==="watch"||i==="dev";case"cargo":case"dotnet":return i==="watch";case"turbo":{let s=i==="run"?r.filter(u=>!u.startsWith("-"))[1]:i;return s!==void 0&&_t.test(s)}case"nx":{let s=i==="run"?r.filter(u=>!u.startsWith("-"))[1]?.split(":")[1]:i;return s!==void 0&&/^(?:serve|dev|start|watch)$/.test(s)}case"ping":return!r.some(s=>/^-[a-zA-Z]*c/.test(s));case"docker":case"podman":case"nerdctl":case"docker-compose":{let s=n==="docker-compose"?r:i==="compose"?r.slice(r.indexOf("compose")+1):null;return s?s.includes("up")&&!s.some(u=>u==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(u)):i==="stats"&&!r.includes("--no-stream")||i==="events"}case"kubectl":return i==="port-forward"||(i==="get"||i==="rollout")&&wt.test(o)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(o);default:return!1}}function Jr(e,t){let n=M(t);return n==="tail"?Lr.test(e):n==="journalctl"?ht.test(e):n==="stern"||jr.has(n)&&/\blogs?\b/.test(e)&&ht.test(e)?!0:Ur(e.split(/\s+/))}var Ie=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Wr=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Br=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function M(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ct(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let o=e[r],i=e[r+1],s=n[n.length-1];if(s==="'"){o==="'"&&n.pop(),r+=1;continue}if(o==="\\"){if(i===void 0)return null;r+=2;continue}if(s==="$'"){o==="'"&&n.pop(),r+=1;continue}if(o==="$"&&(i==="("||i==="{")){n.push(i==="("?")":"}"),r+=2;continue}if(o==="`"){s==="`"?n.pop():n.push("`"),r+=1;continue}if(s==='"'){o==='"'&&n.pop(),r+=1;continue}if(o==="$"&&i==="'"){n.push("$'"),r+=2;continue}if(o==="'"||o==='"'){n.push(o),r+=1;continue}if(o==="("||o==="{"&&s==="}"){n.push(o==="("?")":"}"),r+=1;continue}if(o===s){n.pop(),r+=1;continue}if(o===")"&&s===void 0)return null;t[r]=s===void 0,r+=1}return n.length===0?t:null}function Ne(e){let t=Ct(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function He(e){let t=Ct(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",o=0,i=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},s=(u,l)=>{i(),n.push({kind:"sep",text:u}),o+=l};for(;o<e.length;){let u=e[o],l=e[o+1];if(t[o]){if(u===">"&&l==="|"){r+=">|",o+=2;continue}if(u==="&"&&l==="&"){s("&&",2);continue}if(u==="&"&&l!==">"){let a=r.replace(/\s+$/,""),c=a[a.length-1];if(c!==">"&&c!=="<"&&c!=="&"){s("&",1);continue}}if(u==="|"&&l==="|"){s("||",2);continue}if(u==="|"&&l==="&"){s("|&",2);continue}if(u===";"&&l===";"){let a=e[o+2]==="&";s(a?";;&":";;",a?3:2);continue}if(u===";"||u===`
16
- `||u==="|"){s(u,1);continue}}r+=u,o+=1}return i(),n}function Et(e){return e.trim().split(/\s+/)[0]??""}function A(e,t=process.platform){try{let n=$t($r(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=p(n,"..","bin","tkr-exec.exe");if(F(l))return Re(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let i=p(n,"..","bin","tkr-exec"),s=!r&&F(i);if(s&&!Re(i,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=nt(p(n,"..","bin","tkr-exec.js"));if(l&&(s||F(p(n,"..","bin","tkr-exec.js"))))return`${o}'${l.replace(/'/g,"'\\''")}'`}if(s)return`${o}'${i.replace(/'/g,"'\\''")}'`;if(V()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${l.replace(/'/g,"'\\''")}' exec`}let u=p(n,"..","bin","tkr-exec.js");return F(u)?`${o}node '${u.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Gr(e,t="tkr-exec",n=()=>!0,r){return vt(e,t,0,n,r)}var Zr=new Set(["{","for","while","until","if","case","select"]),Vr=new Set(["}","done","fi","esac"]),Kr=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function qr(e,t){let n=e[t+1];return Ne(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function Yr(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let o=e[r];if(!(o.kind!=="cmd"||o.unsafe))for(let i of o.text.trim().split(/\s+/)){if(Vr.has(i)){let s=n.pop();if(s!==void 0&&qr(e,r))for(let u=s;u<=r;u++)t.add(u);continue}if(Zr.has(i)&&n.push(r),!Kr.has(i))break}}return t}function vt(e,t,n,r,o){if(e.includes("<<")||Br.test(e))return e;let i=He(e),s=Yr(i),u=[];for(let l=0;l<i.length;l++){let a=i[l];if(a.kind==="sep"||a.unsafe||s.has(l)){u.push(a.text);continue}let c=a.text.trim();if(!c){u.push(a.text);continue}let d=Et(c),g=i[l+1],m=g?.kind==="sep"&&(g.text==="|"||g.text==="|&"),k=g?.kind==="sep"&&g.text==="&",T=!m&&!k&&!Ne(a.text)&&!a.text.includes("<(")&&!a.text.includes(">(")?Hr(c,t,n,r,o):null;if(T!==null){u.push(`${a.text.match(/^\s*/)?.[0]??""}${T}${a.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Tr.has(d)||Cr.has(d)||(mt.has(d)||mt.has(M(d)))&&!Or(c)||Ie.test(d)||d.startsWith("(")||d.startsWith("#")||d.startsWith("<")||d.startsWith(">")||Wr.test(c)||Jr(c,d)||d.endsWith(")")||m||k||Ne(a.text)||a.text.includes("<(")||a.text.includes(">(")||d==="node"&&c.includes("tkr-exec.js")||!r(d)){u.push(a.text);continue}let S=a.text.match(/^\s*/)?.[0]??"",G=a.text.match(/\s*$/)?.[0]??"";o?.(c),u.push(`${S}${t} ${c}${G}`)}return u.join("")}var Xr=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),Qr=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),eo=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),to={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},pe=["test","run test","run build","run lint","run typecheck"],no={npm:new Set(pe),pnpm:new Set([...pe,"build","lint","typecheck"]),yarn:new Set([...pe,"build","lint","typecheck"]),bun:new Set(pe),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},ro=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Ot(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of He(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<At?Tt(r.text.trim()):null;if(o){if(!Ot(o.script,t,n+1))return!1;continue}let i=r.text.trim().split(/\s+/).filter(Boolean).map(a=>a.replace(/['"\\]/g,""));if(i.length===0)continue;if(i.some(a=>Ie.test(a)))return!1;let s=M(i[0]);if(s!==i[0])return!1;let u=to[s];if(u&&i.slice(1).some(a=>u.test(a)))return!1;if((s==="git"?eo.has(i[1]??""):Qr.has(s))||t&&ro.has(s))continue;let l=t?no[s]:void 0;if(!(l&&(l.has(i[1]??"")||i[1]==="run"&&l.has(`run ${i[2]??""}`))))return!1}return!0}function Rt(e,t,n=A(t),r=y,o=ge(),i=process.env.PATH,s=Le){if(!h(e)||e.tool_name!=="Bash"||t==="claude-code"&&io(s()))return null;let u=e.tool_input;if(!h(u)||u.run_in_background)return null;let l=u.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(u).some(T=>!Xr.has(T)))return null;let a=typeof e.cwd=="string"&&e.cwd?e.cwd:u.workdir,c=typeof a=="string"&&a?a:void 0,d=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",g=typeof e.permission_mode=="string"?e.permission_mode:void 0,m=Ft(l,{host:t,sessionId:d,cwd:c,claudeDirs:o,pathEnv:i,permissionMode:g},n,r);if(!m)return null;let k={...u,command:m.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:k}:m.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${m.allowedBy}`,updatedInput:k}:m.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:k}:{hookEventName:"PreToolUse",updatedInput:k}})}var oo=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function Le(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=xr("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function io(e){return e===null||oo.test(e)}function so(e,t){if(!F(e))return"missing";try{let n=ee(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Nt(n):n)}catch{return"unreadable"}}function Nt(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e[r];if(n){t+=o,o==="\\"?t+=e[++r]??"":o==='"'&&(n=!1);continue}if(o==='"')n=!0,t+=o;else if(o==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
12
+ ${i}`,n),this.line=r,this.column=o,this.codeblock=i}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}};function ce(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,o=n===39,i=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);i&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let s="",u=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),i&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)f.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!i||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(i&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let a=e.s.slice(u,e.p);s=s?s+a:a}return e.p+=i?3:1,s}else if(!l)!o&&n===92&&(s+=e.s.slice(u,u=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let a=e.p++-1,c=0,d=n===120?2:n===117?4:8;for(let g=0;g<d;g++,e.p++){let m=e.s.charCodeAt(e.p),k=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;k<0&&f.x("invalid non-hex character in unicode escape",e),c=c<<4|k}(c<0||c>1114111||c>=55296&&c<=57343)&&f.x("invalid unicode escape",e,a),s+=String.fromCodePoint(c),u=e.p--,l=0}else i&&(n===32||n===9)?l=2:(n===98?s+="\b":n===116?s+=" ":n===110?s+=`
13
+ `:n===102?s+="\f":n===114?s+="\r":n===101?s+="\x1B":n===34?s+='"':n===92?s+="\\":f.x("unrecognised escape sequence",e),u=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&f.x("invalid escape: only line-ending whitespace may be escaped",e,u),l=!o&&n===92?1:0,u=e.p);f.x("unfinished string",e,t)}var Jn=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Y=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,i=!0,s="Z",u;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(s=null,t+="Z"):(u=t.charCodeAt(t.length-1))!==90&&u!==122&&(s=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);o=n!==4,i=n!==3}else{let l=t.match(Jn);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),i=!!l[2],i&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(s=l[3]||null,!s&&i&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=i,this.#e=s)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}};function w(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Te(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Q(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||f.x("document contains excessively nested structures. aborting.",e);let o=r===91?lt(e):ut(e);return e.d++,o}return r===34||r===39?ce(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&f.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&f.x("invalid value",e,n),e.p++,!1):r===43||r===45?fe(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?Wn(e,r,t):e.s.charCodeAt(e.p+2)===58?Bn(e,r,t):fe(e,e.p,r,0,t)}function fe(e,t,n,r,o){let i=n,s=0,u=!1;if(i===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&f.x("invalid value",e,t),e.p++,(r||1)/0;if(i===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&f.x("invalid value",e,t),e.p++,NaN;if(i===48){if(++e.p>=e.s.length||Te(i=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(i===120)return Ce(e,t,16,o);if(i===98)return Ce(e,t,2,o);if(i===111)return Ce(e,t,8,o)}i===46?s=2:i===101||i===69?s=4:f.x("illegal leading zero",e,t)}else w(i)||f.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!Te(i,o));)s||(s=1),i===95?(s&1||f.x("illegal underscore",e),s+=11,u=!0):s===1&&i===46?s=2:(s===1||s===3)&&(i===101||i===69)?s=4:s===4&&(i===43||i===45)||(w(i)?s>9?s-=11:s&1||s++:f.x("illegal character in numeric literal",e));if(!s){let a=(n-48)*(r||1);return e.bi===!0?BigInt(a):a}s&1||f.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return u&&(l=l.replaceAll("_","")),s>1?parseFloat(l):st(e,l,10,t)}function Ce(e,t,n,r){let o,i=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Te(o,r));)o===95?(i&1&&f.x("illegal underscore",e),i=3):w(o,n)?i&1&&i--:f.x("illegal character in numeric literal",e);i&1&&f.x("unfinished numeric value",e);let s=e.s.slice(t+2,e.p);return i&&(s=s.replaceAll("_","")),st(e,s,n,t)}function st(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;f.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function Wn(e,t,n){let r=e.p++,o;if(!w(t)||!w(e.s.charCodeAt(e.p++))||!w(e.s.charCodeAt(e.p++))||!w(e.s.charCodeAt(e.p++)))return fe(e,e.p=r,t,0,n);if(e.p+=5,w(e.s.charCodeAt(e.p++))||f.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!w(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let s=e.s.slice(r,e.p);return X(e,s,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&f.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;w(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let s=e.s.slice(r,++e.p);return X(e,s,1,o,r,"[+00:00]")}if(t===43||t===45){let s=e.s.slice(r,e.p+=6);return X(e,s,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return X(e,i,2,o,r)}function Bn(e,t,n){let r=e.p;if(!w(t)||!w(e.s.charCodeAt(++e.p)))return fe(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;w(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return X(e,o,4,!1,r)}function X(e,t,n,r,o,i){if(e.ld){let s=new Y(t,n,r);return s.isValid()||f.x("invalid date",e,o),s}try{switch(i&&(t+=i),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(s){f.x(s instanceof Error?s.message:""+s,e,o)}}function Gn(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&f.x("control characters are not allowed in comments",e)}}function $(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;Gn(e)}}function de(e,t=61){let n,r=0,o=[],i,s=e.s.charCodeAt(n=e.p);do{if(s===t)return r||f.x("unexpected end of key",e),r===1&&o.push(e.s.slice(i,e.p)),e.p++,o;s===46?(r||f.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(i,e.p)),r=0):!r&&(s===34||s===39)?(s===e.s.charCodeAt(e.p+1)&&s===e.s.charCodeAt(e.p+2)&&f.x("illegal quoted key: multiline strings are not allowed",e),o.push(ce(e)),r=2,e.p--):s===32||s===9?r===1&&(o.push(e.s.slice(i,e.p)),r=2):r===2||s<48&&s!==45||s>57&&s<65||s>90&&s<97&&s!==95||s>122?f.x("illegal character in key",e):r||(r=1,i=e.p)}while(s=e.s.charCodeAt(++e.p));f.x("incomplete key-value: cannot find end of key",e,n)}function ut(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if($(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let i,s=n,u=!1,l=e.p,a=de(e);for(let d=0;d<a.length;d++){d&&(s=u?s[i]:s[i]=Object.create(null)),i=a[d],(u=Object.hasOwn(s,i))&&(typeof s[i]!="object"||r.has(s[i]))&&f.x("trying to redefine an already defined value",e,l);let g=i==="__proto__";if(e.uk&&(g||i==="constructor")){s=e.uk!==1&&f.x("document contains an unsafe property",e,l);break}!u&&g&&Object.defineProperty(s,i,{enumerable:!0,configurable:!0,writable:!0})}u&&f.x("trying to redefine an already defined value",e,l),$(e,!0,!0);let c=Q(e,125);if(s&&typeof(s[i]=c)=="object"&&r.add(c),$(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&f.x("expected comma or end of structure",e,e.p-1)}f.x("unfinished table",e,t)}function lt(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if($(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Q(e,93)),$(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&f.x("expected comma or end of structure",e,e.p-1)}f.x("unfinished array",e,t)}function at(e,t,n,r,o){let i=n,s=r,u,l=!1,a;for(let c=0;c<t.length;c++){if(c){if(i=l?i[u]:i[u]=Object.create(null),s=(a=s[u]).c,o===0&&(a.t===1||a.t===2))return null;if(a.t===2){let d=i.length-1;i=i[d],s=s[d].c}}if(u=t[c],(l=Object.hasOwn(i,u))&&s[u]?.t===0&&s[u]?.d)return null;if(!l){let d=u==="__proto__";if(e.uk&&(d||u==="constructor"))return!1;d&&(Object.defineProperty(i,u,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(s,u,{enumerable:!0,configurable:!0,writable:!0})),s[u]={t:c<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(a=s[u],a.t!==o&&!(o===1&&a.t===3)||(o===2&&(a.d||(a.d=!0,i[u]=[]),i[u].push(i=Object.create(null)),a.c[a.i++]=a={t:1,d:!1,i:0,c:Object.create(null)}),a.d))return null;if(a.d=!0,o===1)i=l?i[u]:i[u]=Object.create(null);else if(o===0&&l)return null;return[u,i,a.c]}function ct(e,t,n){(t===null||e.uk===2)&&f.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Ee(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),o=Object.create(null),i,s=!1,u=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,$(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let a=e.charCodeAt(++n.p)===91;i=n.p+=+a,s=!1;let c=de(n,93);a&&(e.charCodeAt(n.p)!==93&&f.x("expected end of table array declaration",n),n.p++);let d=at(n,c,r,o,a?2:1);d?(l=d[2],u=d[1]):(ct(n,d,i),s=!0)}else{i=n.p;let a=de(n),c=at(n,a,u,l,0);!c&&!s&&ct(n,c,i),$(n,!0,!0);let d=Q(n,void 0);c&&!s&&(c[1][c[0]]=d)}$(n,!0),n.p<e.length&&(i=e.charCodeAt(n.p))!==10&&(i!==13||e.charCodeAt(n.p+1)!==10)&&f.x("each key-value declaration must be followed by an end-of-line",n),$(n)}return r}var bs=!!"".isWellFormed;import{execFileSync as mr}from"node:child_process";function Zn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ve(e){return JSON.parse(Zn(e))}import{mkdirSync as gr,readFileSync as gt,renameSync as hr,statSync as kr,writeFileSync as _r}from"node:fs";import{join as ht}from"node:path";import{closeSync as Vn,openSync as Kn,readSync as qn,readdirSync as Yn,readFileSync as Xn,statSync as dt}from"node:fs";import{homedir as Qn}from"node:os";import{isAbsolute as er,join as pe,resolve as tr}from"node:path";var nr=/^[A-Za-z0-9._+@%:,/-]+$/,rr=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),or=32,ir=4*1024*1024;function Re(e){let t;try{t=Kn(e,"r");let n=Buffer.alloc(4),r=qn(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&Vn(t)}}function ee(e,t=process.platform){try{let n=dt(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Re(e);return r==="#!"||r!==null&&rr.has(r)}catch{return!1}}function sr(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function F(e,t,n,r=process.platform){if(!nr.test(e))return!1;let o=r==="win32";if(e.includes("/"))return ee(tr(t??process.cwd(),e),r);if(!n)return!1;let i=o?sr(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!er(s))){for(let u of i)if(ee(pe(s,u),r))return!0}return!1}var ur=/^eval \$'([^\s'()=]+) \(\) /,lr=/^([^\s'"()=]+) \(\) \{$/,ar=/^alias -- ([^\s=]+)=(.*)$/,cr=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,fr=/^export PATH=(.*)$/,dr=/^(?:--colou?r(?:=\S+)?|-G)$/;function ft(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function pr(e,t){let n="";for(let r of e.split(`
14
+ `)){let o=fr.exec(r);if(o&&n!=="# Functions"){let i=ft(o[1].trim());/[$`\\]/.test(i)||t.paths.push(i);continue}if(r.startsWith("# ")&&(n!=="# Functions"||cr.test(r))){n=r;continue}if(n==="# Functions"){let i=ur.exec(r)??lr.exec(r);i&&t.functions.add(i[1])}else if(n==="# Aliases"){let i=ar.exec(r);i&&t.aliases.set(i[1],ft(i[2].trim()))}}}function Oe(e){return e?.code==="ENOENT"}function pt(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=pe(e||pe(Qn(),".claude"),"shell-snapshots"),r=[];try{for(let o of Yn(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let i=pe(n,o);try{let s=dt(i);s.isFile()&&r.push({path:i,mtime:s.mtimeMs,size:s.size})}catch(s){Oe(s)||(t.uncertain=!0)}}}catch(o){return Oe(o)||(t.uncertain=!0),t}r=r.sort((o,i)=>i.mtime-o.mtime).slice(0,or);for(let o of r)try{if(o.size>ir)throw new Error("snapshot too large");pr(Xn(o.path,"utf8"),t)}catch(i){Oe(i)||(t.uncertain=!0)}return t}function mt(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(o=>dr.test(o))}var br="exec-probe.json",wr=6e4;function yr(){return ht(x(),br)}function Sr(e){try{let t=ve(gt(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function xr(e,t){try{gr(ht(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;_r(n,JSON.stringify(t),{mode:384}),hr(n,e)}catch{}}function $r(e){try{return mr(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Ar(e,t){try{let r=gt(e,"utf8").split(`
15
+ `,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?F(r[1]??"",void 0,t):ee(o)}catch{return!1}}function Cr(e,t,n){try{let r=kr(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Ne(e,t=process.platform,n=process.env.PATH,r=yr(),o=Date.now()){let i=t!=="win32"&&Re(e)==="#!",s=Cr(e,i,n),u=Sr(r);if(u?.key===s&&(u.ok||o-u.at<wr))return u.ok;let l=ee(e,t)&&(i?Ar(e,n):$r(e));return xr(r,{key:s,ok:l,at:o,skipped:(u?.skipped??0)+(l?0:1)}),l}var Rr=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),Nr=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),kt=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),_t="(?:dev|start|serve|watch|preview)",Pr=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${_t}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${_t}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),Ir=/(?:^|\s)--watch(?:\s|=|$)/;function Hr(e){return Pr.test(e)&&!Ir.test(e)}var Lr=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,jr=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Et=3;function vt(e){let t=Lr.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,i=e.indexOf(r,o);if(i<=o)return null;let s=e.slice(i+1);if(s&&!/^\s/.test(s))return null;let u=e.slice(o,i);return r==='"'&&/[$`\\!]/.test(u)||n&&jr.test(u)?null:{script:u,start:o,end:i,quote:r}}var Dr=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Fr(e){return Le(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Rt(n.text);return r!==""&&!Dr.has(r)&&!He.test(r)}).length>1}function Mr(e,t,n,r,o){if(n>=Et)return null;let i=vt(e);if(!i)return null;let{script:s,start:u,end:l,quote:a}=i,c=[],d=Nt(s,t,n+1,r,C=>c.push(C));if(d===s||a==='"'&&/["$`]/.test(d))return null;let g=a==="'"?d.replace(/'/g,"'\\''"):d,m=`${e.slice(0,u)}${g}${e.slice(l)}`,k=Fr(s);if(o)for(let C of k?[e,...c]:c)o(C);return k?`${t} ${m}`:m}var bt=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,zr=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,Ur=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),wt=new Set(["npm","pnpm","yarn","bun"]),yt=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,Jr=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),St=new Set(["npx","pnpx","bunx"]),Wr=new Set(["nodemon","top","htop","btop","watch"]),Br=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),Gr=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,xt=/(?:^|\s)-w(?:\s|$)/;function Zr(e){let t=e.map(s=>s.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=M(t[0]??"");if(St.has(n)||wt.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(St.has(n)?1:2).filter((s,u,l)=>!(s.startsWith("-")&&l.slice(0,u).every(a=>a.startsWith("-")))),n=M(t[0]??"");else if(wt.has(n)){let s=t.slice(1).filter((l,a,c)=>!l.startsWith("-")&&!Jr.has(c[a-1]??""));s[0]==="workspace"&&s.splice(0,2);let u=s[0]==="run"||s[0]==="run-script"?s[1]:s[0];return u!==void 0&&yt.test(u)}let r=t.slice(1),o=r.join(" "),i=r.find(s=>!s.startsWith("-"));if(Wr.has(n)||Gr.test(o)||Br.has(n)&&xt.test(o))return!0;switch(n){case"next":return i==="dev"||i==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return i==="watch"||i==="dev";case"cargo":case"dotnet":return i==="watch";case"turbo":{let s=i==="run"?r.filter(u=>!u.startsWith("-"))[1]:i;return s!==void 0&&yt.test(s)}case"nx":{let s=i==="run"?r.filter(u=>!u.startsWith("-"))[1]?.split(":")[1]:i;return s!==void 0&&/^(?:serve|dev|start|watch)$/.test(s)}case"ping":return!r.some(s=>/^-[a-zA-Z]*c/.test(s));case"docker":case"podman":case"nerdctl":case"docker-compose":{let s=n==="docker-compose"?r:i==="compose"?r.slice(r.indexOf("compose")+1):null;return s?s.includes("up")&&!s.some(u=>u==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(u)):i==="stats"&&!r.includes("--no-stream")||i==="events"}case"kubectl":return i==="port-forward"||(i==="get"||i==="rollout")&&xt.test(o)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(o);default:return!1}}function Vr(e,t){let n=M(t);return n==="tail"?zr.test(e):n==="journalctl"?bt.test(e):n==="stern"||Ur.has(n)&&/\blogs?\b/.test(e)&&bt.test(e)?!0:Zr(e.split(/\s+/))}var He=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Kr=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,qr=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function M(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ot(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let o=e[r],i=e[r+1],s=n[n.length-1];if(s==="'"){o==="'"&&n.pop(),r+=1;continue}if(o==="\\"){if(i===void 0)return null;r+=2;continue}if(s==="$'"){o==="'"&&n.pop(),r+=1;continue}if(o==="$"&&(i==="("||i==="{")){n.push(i==="("?")":"}"),r+=2;continue}if(o==="`"){s==="`"?n.pop():n.push("`"),r+=1;continue}if(s==='"'){o==='"'&&n.pop(),r+=1;continue}if(o==="$"&&i==="'"){n.push("$'"),r+=2;continue}if(o==="'"||o==='"'){n.push(o),r+=1;continue}if(o==="("||o==="{"&&s==="}"){n.push(o==="("?")":"}"),r+=1;continue}if(o===s){n.pop(),r+=1;continue}if(o===")"&&s===void 0)return null;t[r]=s===void 0,r+=1}return n.length===0?t:null}function Pe(e){let t=Ot(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Le(e){let t=Ot(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",o=0,i=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},s=(u,l)=>{i(),n.push({kind:"sep",text:u}),o+=l};for(;o<e.length;){let u=e[o],l=e[o+1];if(t[o]){if(u===">"&&l==="|"){r+=">|",o+=2;continue}if(u==="&"&&l==="&"){s("&&",2);continue}if(u==="&"&&l!==">"){let a=r.replace(/\s+$/,""),c=a[a.length-1];if(c!==">"&&c!=="<"&&c!=="&"){s("&",1);continue}}if(u==="|"&&l==="|"){s("||",2);continue}if(u==="|"&&l==="&"){s("|&",2);continue}if(u===";"&&l===";"){let a=e[o+2]==="&";s(a?";;&":";;",a?3:2);continue}if(u===";"||u===`
16
+ `||u==="|"){s(u,1);continue}}r+=u,o+=1}return i(),n}function Rt(e){return e.trim().split(/\s+/)[0]??""}function A(e,t=process.platform){try{let n=Tt(vr(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=p(n,"..","bin","tkr-exec.exe");if(P(l))return Ne(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let i=p(n,"..","bin","tkr-exec"),s=!r&&P(i);if(s&&!Ne(i,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=it(p(n,"..","bin","tkr-exec.js"));if(l&&(s||P(p(n,"..","bin","tkr-exec.js"))))return`${o}'${l.replace(/'/g,"'\\''")}'`}if(s)return`${o}'${i.replace(/'/g,"'\\''")}'`;if(K()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${l.replace(/'/g,"'\\''")}' exec`}let u=p(n,"..","bin","tkr-exec.js");return P(u)?`${o}node '${u.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Yr(e,t="tkr-exec",n=()=>!0,r){return Nt(e,t,0,n,r)}var Xr=new Set(["{","for","while","until","if","case","select"]),Qr=new Set(["}","done","fi","esac"]),eo=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function to(e,t){let n=e[t+1];return Pe(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function no(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let o=e[r];if(!(o.kind!=="cmd"||o.unsafe))for(let i of o.text.trim().split(/\s+/)){if(Qr.has(i)){let s=n.pop();if(s!==void 0&&to(e,r))for(let u=s;u<=r;u++)t.add(u);continue}if(Xr.has(i)&&n.push(r),!eo.has(i))break}}return t}function Nt(e,t,n,r,o){if(e.includes("<<")||qr.test(e))return e;let i=Le(e),s=no(i),u=[];for(let l=0;l<i.length;l++){let a=i[l];if(a.kind==="sep"||a.unsafe||s.has(l)){u.push(a.text);continue}let c=a.text.trim();if(!c){u.push(a.text);continue}let d=Rt(c),g=i[l+1],m=g?.kind==="sep"&&(g.text==="|"||g.text==="|&"),k=g?.kind==="sep"&&g.text==="&",C=!m&&!k&&!Pe(a.text)&&!a.text.includes("<(")&&!a.text.includes(">(")?Mr(c,t,n,r,o):null;if(C!==null){u.push(`${a.text.match(/^\s*/)?.[0]??""}${C}${a.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Rr.has(d)||Nr.has(d)||(kt.has(d)||kt.has(M(d)))&&!Hr(c)||He.test(d)||d.startsWith("(")||d.startsWith("#")||d.startsWith("<")||d.startsWith(">")||Kr.test(c)||Vr(c,d)||d.endsWith(")")||m||k||Pe(a.text)||a.text.includes("<(")||a.text.includes(">(")||d==="node"&&c.includes("tkr-exec.js")||!r(d,c)){u.push(a.text);continue}let S=a.text.match(/^\s*/)?.[0]??"",Z=a.text.match(/\s*$/)?.[0]??"";o?.(c),u.push(`${S}${t} ${c}${Z}`)}return u.join("")}var ro=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),oo=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),io=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),so={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},me=["test","run test","run build","run lint","run typecheck"],uo={npm:new Set(me),pnpm:new Set([...me,"build","lint","typecheck"]),yarn:new Set([...me,"build","lint","typecheck"]),bun:new Set(me),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},lo=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Pt(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of Le(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<Et?vt(r.text.trim()):null;if(o){if(!Pt(o.script,t,n+1))return!1;continue}let i=r.text.trim().split(/\s+/).filter(Boolean).map(a=>a.replace(/['"\\]/g,""));if(i.length===0)continue;if(i.some(a=>He.test(a)))return!1;let s=M(i[0]);if(s!==i[0])return!1;let u=so[s];if(u&&i.slice(1).some(a=>u.test(a)))return!1;if((s==="git"?io.has(i[1]??""):oo.has(s))||t&&lo.has(s))continue;let l=t?uo[s]:void 0;if(!(l&&(l.has(i[1]??"")||i[1]==="run"&&l.has(`run ${i[2]??""}`))))return!1}return!0}function It(e,t,n=A(t),r=y,o=he(),i=process.env.PATH,s=je){if(!h(e)||e.tool_name!=="Bash"||t==="claude-code"&&co(s()))return null;let u=e.tool_input;if(!h(u)||u.run_in_background)return null;let l=u.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(u).some(C=>!ro.has(C)))return null;let a=typeof e.cwd=="string"&&e.cwd?e.cwd:u.workdir,c=typeof a=="string"&&a?a:void 0,d=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",g=typeof e.permission_mode=="string"?e.permission_mode:void 0,m=Ut(l,{host:t,sessionId:d,cwd:c,claudeDirs:o,pathEnv:i,permissionMode:g},n,r);if(!m)return null;let k={...u,command:m.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:k}:m.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${m.allowedBy}`,updatedInput:k}:m.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:k}:{hookEventName:"PreToolUse",updatedInput:k}})}var ao=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function je(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=Tr("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function co(e){return e===null||ao.test(e)}function fo(e,t){if(!P(e))return"missing";try{let n=te(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Ht(n):n)}catch{return"unreadable"}}function Ht(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e[r];if(n){t+=o,o==="\\"?t+=e[++r]??"":o==='"'&&(n=!1);continue}if(o==='"')n=!0,t+=o;else if(o==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
17
17
  `;)r++;t+=`
18
- `}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function ne(e){let t=[],n=Ar(e);for(;;){t.push(n);let r=$t(n);if(r===n)return t;n=r}}function uo(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[p(e,"managed-settings.json")];try{for(let n of me(p(e,"managed-settings.d")))n.endsWith(".json")&&t.push(p(e,"managed-settings.d",n))}catch{return t}return t}function re(e,t,n,r){let o=[];for(let i of e){let s=so(i,t);if(s!=="missing"&&(s==="unreadable"||!h(s)||!n(s,o)))return"unreadable"}return{matchers:o,complete:r}}function te(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function ge(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function lo(e,t){let n=S=>[p(S,"settings.json"),p(S,"settings.local.json")],r=S=>n(p(S,".claude")),o=p(P(),".claude"),i=t.configDir||o,s=[[uo(),"managed"],[[p(i,"settings.json")],"loaded"],[[p(i,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[ne(e).flatMap(r),"extra"]],u=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},a={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,d="managed",g=(S,G)=>{let v=S.permissions;if(d==="managed"&&(S.allowManagedPermissionRulesOnly===!0||h(v)&&v.allowManagedPermissionRulesOnly===!0)&&(c=!0),v===void 0)return!0;if(!h(v))return!1;for(let Me of["deny","ask","allow"]){let ze=te(v[Me]);if(!ze)return!1;for(let Ue of ze){let H=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(Ue);if(H)if(Me!=="allow")G.push(I((H[1]??"*").replace(/:\*$/," *")));else if(H[1]===void 0||H[1].trim()==="*")a[d]=!0;else{u.push(I(H[1].replace(/:\*$/," *")));let Je=vo(H[1]);Je&&l[d].push({rule:Ue.trim(),matches:Je})}}}return!0},m=[];for(let[S,G]of s){d=G;let v=re(S,!1,g,!0);if(v==="unreadable")return"unreadable";m.push(...v.matchers)}let k=a.managed||(a.loaded||a.loadedLocal)&&!c,T=[...l.managed,...c?[]:l.loaded];return{matchers:[...m,...k?[]:u],complete:!0,allow:u,allowsEverything:k,guards:m,trustedAllow:T}}function ao(e){let t=[p(P(),".cursor","cli-config.json"),...ne(e).map(n=>p(n,".cursor","cli.json"))];return re(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!h(o))return!1;let i=te(o.deny);if(!i)return!1;for(let s of i){let u=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(s);if(!u)continue;let l=u[1]??"*",a=l.indexOf(":");r.push(I(a===-1?`${l} *`:`${l.slice(0,a)} ${l.slice(a+1)}`))}return!0},!1)}function co(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Pt=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function fo(e,t){let n=e.tools;if(n!==void 0&&!h(n))return!1;let r=[te(e.excludeTools),te(h(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let i of o){let s=Pt.exec(i);s&&t.push(I(s[1]===void 0?"*":`${s[1]}*`))}}return!0}function yt(e){try{return JSON.parse(e)}catch{return null}}function po(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let o=r[2]??yt(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?yt(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function mo(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let a=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!a)continue;let c=po(a[2]);if(c===null)return!1;r[a[1]]=c}let o=r.decision;if(o!=="deny"&&o!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Pt.test(l)))continue;let s=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),u=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(s.length===0&&u.length===0){t.push(()=>!0);continue}for(let l of s)t.push(I(`${l}*`));for(let l of u){let a;try{a=new RegExp(l)}catch{return!1}t.push(c=>a.test(JSON.stringify({command:c}))||he(a,c))}}return!0}function St(e){try{return me(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function go(e){let t=co(),n=[p(t,"system-defaults.json"),p(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,p(P(),".gemini","settings.json"),...ne(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=re(n,!0,fo,!1);if(r==="unreadable")return r;for(let o of[...St(p(P(),".gemini","policies")),...St(p(t,"policies"))]){let i;try{i=ee(o,"utf8")}catch{return"unreadable"}if(!mo(i,r.matchers))return"unreadable"}return r}function Pe(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!h(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!h(r))return!1;for(let[o,i]of Object.entries(r))i!=="allow"&&t.push(I(o.replace(/\?/g,"*")))}}return!0}function xt(e,t){if(e.permissions!==void 0||!Pe(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!h(r))return!1;for(let o of Object.values(r))if(h(o)&&(o.permissions!==void 0||!Pe(o.permission,t)))return!1}}return!0}function ho(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=me(p(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(ee(p(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function ko(e){let t=p(process.env.XDG_CONFIG_HOME||p(P(),".config"),"opencode"),n=ne(e),r=[t,...n.map(u=>p(u,".opencode"))];if(ho(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],i=[...o.map(u=>p(t,u)),process.env.OPENCODE_CONFIG,...n.flatMap(u=>[...o.slice(0,2).map(l=>p(u,l)),...o.slice(0,2).map(l=>p(u,".opencode",l))])].filter(u=>!!u),s=re(i,!0,xt,!0);if(s==="unreadable")return s;for(let u of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!u)continue;let l;try{l=JSON.parse(Nt(u))}catch{return"unreadable"}if(!(u===process.env.OPENCODE_PERMISSION?Pe(l,s.matchers):h(l)&&xt(l,s.matchers)))return"unreadable"}return s}function _o(){return re([p(P(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!h(n))return!1;for(let r of["deny","ask"]){let o=te(n[r]);if(!o)return!1;for(let i of o){let s=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(i);if(!s)continue;let u=s[1].trim();if(!u.startsWith("regex:")){t.push(I(u==="*"?"*":`${u} *`));continue}let l;try{l=new RegExp(u.slice(6))}catch{return!1}t.push(a=>he(l,a))}}return!0},!1)}function bo(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function It(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let o=It(e,t);if(o===void 0)return;if(r.push(o),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Ht(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let o=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!o||o.length===0||!o.every(i=>typeof i=="string"&&i!==""))return null;t.push(`(?:${o.map(je).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>he(n,r)}function wo(e,t){let n=bo(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let o={i:r+2},i={};for(;n[o.i]!==")";){let l=n[o.i];if(!l||!/^[A-Za-z_]/.test(l)||n[o.i+1]!=="="||(o.i+=2,i[l]=It(n,o),i[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[o.i]===",")o.i++;else if(n[o.i]!==")")return!1}r=o.i;let s="decision"in i?i.decision:"allow";if(s!=="allow"&&s!=="prompt"&&s!=="forbidden")return!1;let u=Ht(i.pattern);if(!u)return!1;s!=="allow"&&t.push(u)}return!0}function yo(e){if(!F(e))return[];try{return me(e).filter(t=>t.endsWith(".rules")).sort().map(t=>p(e,t))}catch{return"unreadable"}}function So(){return process.platform==="win32"?p(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function xo(e){if(!(!h(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function $o(e,t){let n;try{n=Ce(e)}catch{return!1}if(n.rules===void 0)return!0;if(!h(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let o of r){if(!h(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let i=o.pattern.map(xo);if(i.some(u=>u===void 0))return!1;let s=Ht(i);if(!s)return!1;t.push(s)}return!0}function Ao(e){let t=process.env.CODEX_HOME||p(P(),".codex"),n=[p(t,"rules"),...ne(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=ee(So(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!$o(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=yo(i);if(s==="unreadable")return"unreadable";for(let u of s){let l;try{l=ee(u,"utf8")}catch{return"unreadable"}if(!wo(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function h(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function je(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function To(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(je).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Co=512;function Eo(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(M)]}function he(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Eo(t)){if(n.length>Co)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function I(e){let t=To(e);return n=>he(t,n)}function vo(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let o=new RegExp(`^${je(r)}${n?"(?: [\\s\\S]*)?":""}$`);return i=>o.test(i)}var Oo={"claude-code":lo,cursor:ao,"gemini-cli":go,opencode:ko,antigravity:_o,codex:Ao},Ro=new Set(["codex"]),Lt=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function No(e,t,n){let r=Oo[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Po(e,t,n){return e==="unreadable"||Lt.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Ot(t,!Ro.has(n))}var jt=new Set(["default","acceptEdits","dontAsk"]);function Dt(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&jt.has(t.permissionMode??"")}function Io(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return o=>e.host!=="claude-code"?D(o,e.cwd,n):(r??=ct(t.configDir),!D(o,e.cwd,n)&&!r.paths.some(i=>D(o,e.cwd,i))?!1:o.includes("/")||!ft(o,r))}var Ho=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Lo(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Dt(e,n)||!jt.has(n.permissionMode??"")||!Ho.test(t)||Lt.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var jo=/^(?:\S+=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function Do(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&jo.test(e.trim())}function Ft(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??ge(),i=No(t.host,t.cwd,o),s=Lo(i,e,t),u=s||Po(i,e,t.host)?Gr(e,n,Io(t,o)):e;return u!==e&&i!=="unreadable"&&(s?(i.guards??[]).some(l=>l(u)):i.matchers.some(l=>l(u))||(i.allow??[]).some(l=>l(u)&&!l(e)))&&(u=e),r(t.sessionId,u!==e),u===e?null:s?{command:u,allowedBy:s}:Dt(i,t)?{command:u}:i!=="unreadable"&&Do(e,t)&&!(i.allow??[]).some(l=>l(e))&&!(i.trustedAllow??[]).some(l=>l.matches(e))?{command:u,ask:!0}:null}function R(e,t,n,r){let o=Ft(e,t,n,r);return o&&!o.ask?o.command:null}function _(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function oe(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Fo(e){return _(e,"prompt_id")||_(e,"scratchpad_dir")?!0:oe(e.effort)}function Mo(e){return _(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(_(e,"model")??"")}var zo=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Uo=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),Jo=new Set(["pre_tool","post_tool"]),Wo=new Set(["before_tool_call","after_tool_call"]),Bo=new Set(["runTerminalCommand","run_in_terminal"]),Go=[["codex",e=>_(e,"turn_id")!==null],["claude-code",Fo],["cursor",e=>_(e,"cursor_version")!==null||_(e,"generation_id")!==null||_(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Uo.has(_(e,"hook_event_name")??"")],["gemini-cli",e=>zo.has(_(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>Jo.has(_(e,"hook_event_name")??"")],["antigravity",e=>oe(e.toolCall)],["copilot",e=>_(e,"toolName")!==null&&"toolArgs"in e||Bo.has(_(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||oe(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&_(e,"event")!==null&&!Wo.has(_(e,"event"))]],Zo=new Set(["codex","antigravity"]);function Vo(e){return oe(e)?Go.filter(([,t])=>t(e)).map(([t])=>t):[]}function Mt(e,t){if(!oe(e))return null;let n=Vo(e);return n.length>1?null:n.length===1?n[0]:Mo(e)&&Zo.has(t)?"claude-code":t==="codex"?null:t}var De=JSON.stringify({permission:"allow"});function zt(e,t=A("cursor"),n=y){if(e.tool_name!=="Shell")return De;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return De;let i=typeof r.working_directory=="string"?r.working_directory:void 0,s=R(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:i},C()?null:t,n);return s?JSON.stringify({permission:"allow",updated_input:{...r,command:s}}):De}var ke="{}";function Ut(e,t=A("gemini-cli"),n=y){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return ke;let r=e.tool_input??{};if(r.is_background)return ke;let o=r.command;if(typeof o!="string"||!o)return ke;let i=typeof e.cwd=="string"?e.cwd:void 0,s=R(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:i},C()?null:t,n);return s?JSON.stringify({hookSpecificOutput:{tool_input:{command:s}}}):ke}function z(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function U(e,t,n="unknown",r=A(t),o=y){return e?R(e,{host:t,sessionId:n},C()?null:r,o):null}var Ko=new Set(["bash","file_system.bash"]),Fe=JSON.stringify({decision:"allow"});function Jt(e,t=(n,r)=>U(n,"vibe",r)){if(!z(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!Ko.has(e.tool_name))return"";let n=e.tool_input;if(!z(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function Wt(e,t=(n,r)=>U(n,"antigravity",r)){if(!z(e)||!z(e.toolCall)||e.toolCall.name!=="run_command")return Fe;let n=e.toolCall.args;if(!z(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Fe;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Fe}function J(e){return C()?null:A(e)}function qo(e,t,n={}){let r=n.recordUsage??y;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Rt(t,e,J(e),r,n.claudeDirs??ge(),n.pathEnv??process.env.PATH,n.launchArgs??Le)??"";case"cursor":return zt(t,J(e),r);case"gemini-cli":return Ut(t,J(e),r);case"vibe":return Jt(t,(o,i)=>U(o,"vibe",i,J(e),r));case"antigravity":return Wt(t,(o,i)=>U(o,"antigravity",i,J(e),r));default:return Bt(e,t,J(e),r)}}function ie(e,t,n={}){let r=Mt(e,t);return r?qo(r,e,n):n.fallback??""}var b="{}",Yo=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),Xo=["run_in_background","is_background","isBackground"];function se(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Qo(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function ei(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function _e(e,t,n,r,o){if(!se(t)||Xo.some(s=>t[s]===!0))return null;let i=t.command;return typeof i!="string"||!i?null:R(i,{host:e,sessionId:Qo(n),cwd:ei(n,t)},C()?null:r,o)}function B(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function ti(e){if(se(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return se(t)?t:null}catch{return null}}function ni(e,t,n){if(typeof e.tool_name=="string"){if(!Yo.has(e.tool_name))return b;let i=e.tool_input,s=_e("copilot",i,e,t,n);return s?B(i,s):b}if(e.toolName!=="bash")return b;let r=ti(e.toolArgs),o=_e("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):b}function W(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return b;let s=r.tool_input,u=_e(e,s,r,o,i);return u?n(s,u):b}}var ri=new Set(["run_terminal_command","Bash","bash"]);function oi(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!ri.has(r))return b;let o=e.toolInput??e.tool_input,i=_e("grok",o,e,t,n);return i?B(o,i):b}var ii={copilot:ni,droid:W("droid","Execute",B),trae:W("trae","RunCommand",B),"qwen-code":W("qwen-code","run_shell_command",B),crush:W("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:W("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:W("zcode","Bash",B),grok:oi};function Bt(e,t,n=A(e),r=y){return se(t)?ii[e](t,n,r):b}function si(e,t){if(!t)return b;let n;try{n=JSON.parse(t.replace(/^/,""))}catch{return b}return se(n)?ie(n,e,{fallback:b}):b}async function Gt(e){process.stdout.write(si(e,await Z()))}Gt("crush").catch(e=>{process.stderr.write(`tkr-crush-hook: ${e.message}
18
+ `}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function z(e){let t=[],n=Or(e);for(;;){t.push(n);let r=Tt(n);if(r===n)return t;n=r}}function po(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[p(e,"managed-settings.json")];try{for(let n of ge(p(e,"managed-settings.d")))n.endsWith(".json")&&t.push(p(e,"managed-settings.d",n))}catch{return t}return t}function re(e,t,n,r){let o=[];for(let i of e){let s=fo(i,t);if(s!=="missing"&&(s==="unreadable"||!h(s)||!n(s,o)))return"unreadable"}return{matchers:o,complete:r}}function ne(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function he(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?ue():void 0}}function mo(e,t){let n=S=>[p(S,"settings.json"),p(S,"settings.local.json")],r=S=>n(p(S,".claude")),o=p(I(),".claude"),i=t.configDir||o,s=[[po(),"managed"],[[p(i,"settings.json")],"loaded"],[[p(i,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[z(e).flatMap(r),"extra"]],u=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},a={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,d="managed",g=(S,Z)=>{let v=S.permissions;if(d==="managed"&&(S.allowManagedPermissionRulesOnly===!0||h(v)&&v.allowManagedPermissionRulesOnly===!0)&&(c=!0),v===void 0)return!0;if(!h(v))return!1;for(let ze of["deny","ask","allow"]){let Ue=ne(v[ze]);if(!Ue)return!1;for(let Je of Ue){let L=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(Je);if(L)if(ze!=="allow")Z.push(H((L[1]??"*").replace(/:\*$/," *")));else if(L[1]===void 0||L[1].trim()==="*")a[d]=!0;else{u.push(H(L[1].replace(/:\*$/," *")));let We=Io(L[1]);We&&l[d].push({rule:Je.trim(),matches:We})}}}return!0},m=[];for(let[S,Z]of s){d=Z;let v=re(S,!1,g,!0);if(v==="unreadable")return"unreadable";m.push(...v.matchers)}let k=a.managed||(a.loaded||a.loadedLocal)&&!c,C=[...l.managed,...c?[]:l.loaded];return{matchers:[...m,...k?[]:u],complete:!0,allow:u,allowsEverything:k,guards:m,trustedAllow:C}}function go(e){let t=[p(I(),".cursor","cli-config.json"),...z(e).map(n=>p(n,".cursor","cli.json"))];return re(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!h(o))return!1;let i=ne(o.deny);if(!i)return!1;for(let s of i){let u=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(s);if(!u)continue;let l=u[1]??"*",a=l.indexOf(":");r.push(H(a===-1?`${l} *`:`${l.slice(0,a)} ${l.slice(a+1)}`))}return!0},!1)}function ho(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Lt=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function ko(e,t){let n=e.tools;if(n!==void 0&&!h(n))return!1;let r=[ne(e.excludeTools),ne(h(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let i of o){let s=Lt.exec(i);s&&t.push(H(s[1]===void 0?"*":`${s[1]}*`))}}return!0}function $t(e){try{return JSON.parse(e)}catch{return null}}function _o(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let o=r[2]??$t(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?$t(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function bo(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let a=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!a)continue;let c=_o(a[2]);if(c===null)return!1;r[a[1]]=c}let o=r.decision;if(o!=="deny"&&o!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Lt.test(l)))continue;let s=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),u=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(s.length===0&&u.length===0){t.push(()=>!0);continue}for(let l of s)t.push(H(`${l}*`));for(let l of u){let a;try{a=new RegExp(l)}catch{return!1}t.push(c=>a.test(JSON.stringify({command:c}))||ke(a,c))}}return!0}function At(e){try{return ge(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function wo(e){let t=ho(),n=[p(t,"system-defaults.json"),p(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,p(I(),".gemini","settings.json"),...z(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=re(n,!0,ko,!1);if(r==="unreadable")return r;for(let o of[...At(p(I(),".gemini","policies")),...At(p(t,"policies"))]){let i;try{i=te(o,"utf8")}catch{return"unreadable"}if(!bo(i,r.matchers))return"unreadable"}return r}function Ie(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!h(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!h(r))return!1;for(let[o,i]of Object.entries(r))i!=="allow"&&t.push(H(o.replace(/\?/g,"*")))}}return!0}function Ct(e,t){if(e.permissions!==void 0||!Ie(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!h(r))return!1;for(let o of Object.values(r))if(h(o)&&(o.permissions!==void 0||!Ie(o.permission,t)))return!1}}return!0}function yo(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=ge(p(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(te(p(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function So(e){let t=p(process.env.XDG_CONFIG_HOME||p(I(),".config"),"opencode"),n=z(e),r=[t,...n.map(u=>p(u,".opencode"))];if(yo(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],i=[...o.map(u=>p(t,u)),process.env.OPENCODE_CONFIG,...n.flatMap(u=>[...o.slice(0,2).map(l=>p(u,l)),...o.slice(0,2).map(l=>p(u,".opencode",l))])].filter(u=>!!u),s=re(i,!0,Ct,!0);if(s==="unreadable")return s;for(let u of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!u)continue;let l;try{l=JSON.parse(Ht(u))}catch{return"unreadable"}if(!(u===process.env.OPENCODE_PERMISSION?Ie(l,s.matchers):h(l)&&Ct(l,s.matchers)))return"unreadable"}return s}function xo(){return re([p(I(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!h(n))return!1;for(let r of["deny","ask"]){let o=ne(n[r]);if(!o)return!1;for(let i of o){let s=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(i);if(!s)continue;let u=s[1].trim();if(!u.startsWith("regex:")){t.push(H(u==="*"?"*":`${u} *`));continue}let l;try{l=new RegExp(u.slice(6))}catch{return!1}t.push(a=>ke(l,a))}}return!0},!1)}function $o(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function jt(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let o=jt(e,t);if(o===void 0)return;if(r.push(o),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Dt(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let o=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!o||o.length===0||!o.every(i=>typeof i=="string"&&i!==""))return null;t.push(`(?:${o.map(De).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>ke(n,r)}function Ao(e,t){let n=$o(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let o={i:r+2},i={};for(;n[o.i]!==")";){let l=n[o.i];if(!l||!/^[A-Za-z_]/.test(l)||n[o.i+1]!=="="||(o.i+=2,i[l]=jt(n,o),i[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[o.i]===",")o.i++;else if(n[o.i]!==")")return!1}r=o.i;let s="decision"in i?i.decision:"allow";if(s!=="allow"&&s!=="prompt"&&s!=="forbidden")return!1;let u=Dt(i.pattern);if(!u)return!1;s!=="allow"&&t.push(u)}return!0}function Co(e){if(!P(e))return[];try{return ge(e).filter(t=>t.endsWith(".rules")).sort().map(t=>p(e,t))}catch{return"unreadable"}}function To(){return process.platform==="win32"?p(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Eo(e){if(!(!h(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function vo(e,t){let n;try{n=Ee(e)}catch{return!1}if(n.rules===void 0)return!0;if(!h(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let o of r){if(!h(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let i=o.pattern.map(Eo);if(i.some(u=>u===void 0))return!1;let s=Dt(i);if(!s)return!1;t.push(s)}return!0}function Oo(e){let t=process.env.CODEX_HOME||p(I(),".codex"),n=[p(t,"rules"),...z(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=te(To(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!vo(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=Co(i);if(s==="unreadable")return"unreadable";for(let u of s){let l;try{l=te(u,"utf8")}catch{return"unreadable"}if(!Ao(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function h(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function De(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ro(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(De).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var No=512;function Po(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(M)]}function ke(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Po(t)){if(n.length>No)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function H(e){let t=Ro(e);return n=>ke(t,n)}function Io(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let o=new RegExp(`^${De(r)}${n?"(?: [\\s\\S]*)?":""}$`);return i=>o.test(i)}var Ho={"claude-code":mo,cursor:go,"gemini-cli":wo,opencode:So,antigravity:xo,codex:Oo},Lo=new Set(["codex"]),Ft=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function jo(e,t,n){let r=Ho[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Do(e,t,n){return e==="unreadable"||Ft.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Pt(t,!Lo.has(n))}var Mt=new Set(["default","acceptEdits","dontAsk"]);function zt(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Mt.has(t.permissionMode??"")}var Fo=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function Mo(e){if(!e)return!1;try{for(let t of z(e)){let n=p(t,".git");if(P(n))return Er(n).isFile()}}catch{return!0}return!1}function zo(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,o;return(i,s)=>e.host!=="claude-code"?F(i,e.cwd,n):s!==void 0&&Fo.test(s)&&(o??=Mo(e.cwd))||(r??=pt(t.configDir),!F(i,e.cwd,n)&&!r.paths.some(u=>F(i,e.cwd,u)))?!1:i.includes("/")||!mt(i,r)}var Uo=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Jo(e,t,n){return n.host!=="claude-code"||e==="unreadable"||zt(e,n)||!Mt.has(n.permissionMode??"")||!Uo.test(t)||Ft.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var Wo=/^(?:\S+=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function Bo(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&Wo.test(e.trim())}function Ut(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??he(),i=jo(t.host,t.cwd,o),s=Jo(i,e,t),u=s||Do(i,e,t.host)?Yr(e,n,zo(t,o)):e;return u!==e&&i!=="unreadable"&&(s?(i.guards??[]).some(l=>l(u)):i.matchers.some(l=>l(u))||(i.allow??[]).some(l=>l(u)&&!l(e)))&&(u=e),r(t.sessionId,u!==e),u===e?null:s?{command:u,allowedBy:s}:zt(i,t)?{command:u}:i!=="unreadable"&&Bo(e,t)&&!(i.allow??[]).some(l=>l(e))&&!(i.trustedAllow??[]).some(l=>l.matches(e))?{command:u,ask:!0}:null}function R(e,t,n,r){let o=Ut(e,t,n,r);return o&&!o.ask?o.command:null}function _(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function oe(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Go(e){return _(e,"prompt_id")||_(e,"scratchpad_dir")?!0:oe(e.effort)}function Zo(e){return _(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(_(e,"model")??"")}var Vo=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Ko=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),qo=new Set(["pre_tool","post_tool"]),Yo=new Set(["before_tool_call","after_tool_call"]),Xo=new Set(["runTerminalCommand","run_in_terminal"]),Qo=[["codex",e=>_(e,"turn_id")!==null],["claude-code",Go],["cursor",e=>_(e,"cursor_version")!==null||_(e,"generation_id")!==null||_(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Ko.has(_(e,"hook_event_name")??"")],["gemini-cli",e=>Vo.has(_(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>qo.has(_(e,"hook_event_name")??"")],["antigravity",e=>oe(e.toolCall)],["copilot",e=>_(e,"toolName")!==null&&"toolArgs"in e||Xo.has(_(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||oe(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&_(e,"event")!==null&&!Yo.has(_(e,"event"))]],ei=new Set(["codex","antigravity"]);function ti(e){return oe(e)?Qo.filter(([,t])=>t(e)).map(([t])=>t):[]}function Jt(e,t){if(!oe(e))return null;let n=ti(e);return n.length>1?null:n.length===1?n[0]:Zo(e)&&ei.has(t)?"claude-code":t==="codex"?null:t}var Fe=JSON.stringify({permission:"allow"});function Wt(e,t=A("cursor"),n=y){if(e.tool_name!=="Shell")return Fe;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return Fe;let i=typeof r.working_directory=="string"?r.working_directory:void 0,s=R(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:i},T()?null:t,n);return s?JSON.stringify({permission:"allow",updated_input:{...r,command:s}}):Fe}var _e="{}";function Bt(e,t=A("gemini-cli"),n=y){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return _e;let r=e.tool_input??{};if(r.is_background)return _e;let o=r.command;if(typeof o!="string"||!o)return _e;let i=typeof e.cwd=="string"?e.cwd:void 0,s=R(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:i},T()?null:t,n);return s?JSON.stringify({hookSpecificOutput:{tool_input:{command:s}}}):_e}function U(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function J(e,t,n="unknown",r=A(t),o=y){return e?R(e,{host:t,sessionId:n},T()?null:r,o):null}var ni=new Set(["bash","file_system.bash"]),Me=JSON.stringify({decision:"allow"});function Gt(e,t=(n,r)=>J(n,"vibe",r)){if(!U(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!ni.has(e.tool_name))return"";let n=e.tool_input;if(!U(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function Zt(e,t=(n,r)=>J(n,"antigravity",r)){if(!U(e)||!U(e.toolCall)||e.toolCall.name!=="run_command")return Me;let n=e.toolCall.args;if(!U(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Me;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Me}function W(e){return T()?null:A(e)}function ri(e,t,n={}){let r=n.recordUsage??y;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":It(t,e,W(e),r,n.claudeDirs??he(),n.pathEnv??process.env.PATH,n.launchArgs??je)??"";case"cursor":return Wt(t,W(e),r);case"gemini-cli":return Bt(t,W(e),r);case"vibe":return Gt(t,(o,i)=>J(o,"vibe",i,W(e),r));case"antigravity":return Zt(t,(o,i)=>J(o,"antigravity",i,W(e),r));default:return Vt(e,t,W(e),r)}}function ie(e,t,n={}){let r=Jt(e,t);return r?ri(r,e,n):n.fallback??""}var b="{}",oi=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),ii=["run_in_background","is_background","isBackground"];function se(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function si(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function ui(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function be(e,t,n,r,o){if(!se(t)||ii.some(s=>t[s]===!0))return null;let i=t.command;return typeof i!="string"||!i?null:R(i,{host:e,sessionId:si(n),cwd:ui(n,t)},T()?null:r,o)}function G(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function li(e){if(se(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return se(t)?t:null}catch{return null}}function ai(e,t,n){if(typeof e.tool_name=="string"){if(!oi.has(e.tool_name))return b;let i=e.tool_input,s=be("copilot",i,e,t,n);return s?G(i,s):b}if(e.toolName!=="bash")return b;let r=li(e.toolArgs),o=be("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):b}function B(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return b;let s=r.tool_input,u=be(e,s,r,o,i);return u?n(s,u):b}}var ci=new Set(["run_terminal_command","Bash","bash"]);function fi(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!ci.has(r))return b;let o=e.toolInput??e.tool_input,i=be("grok",o,e,t,n);return i?G(o,i):b}var di={copilot:ai,droid:B("droid","Execute",G),trae:B("trae","RunCommand",G),"qwen-code":B("qwen-code","run_shell_command",G),crush:B("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:B("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:B("zcode","Bash",G),grok:fi};function Vt(e,t,n=A(e),r=y){return se(t)?di[e](t,n,r):b}function pi(e,t){if(!t)return b;let n;try{n=JSON.parse(t.replace(/^/,""))}catch{return b}return se(n)?ie(n,e,{fallback:b}):b}async function Kt(e){process.stdout.write(pi(e,await V()))}Kt("crush").catch(e=>{process.stderr.write(`tkr-crush-hook: ${e.message}
19
19
  `),process.stdout.write(b),process.exit(0)});
20
20
  /*! Bundled license information:
21
21