@tokmizer/plugin 0.9.68 → 0.9.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/bin/tkr-agent-hook.js +13 -12
- package/dist/bin/tkr-codex-hook.js +75 -69
- package/dist/bin/tkr-copilot-hook.js +12 -11
- package/dist/bin/tkr-crush-hook.js +12 -11
- package/dist/bin/tkr-cursor-hook.js +12 -11
- package/dist/bin/tkr-daemon.js +134 -128
- package/dist/bin/tkr-droid-hook.js +12 -11
- package/dist/bin/tkr-exec +0 -0
- package/dist/bin/tkr-exec.js +83 -78
- package/dist/bin/tkr-gemini-hook.js +12 -11
- package/dist/bin/tkr-grok-hook.js +12 -11
- package/dist/bin/tkr-junie-hook.js +12 -11
- package/dist/bin/tkr-processor.js +102 -96
- package/dist/bin/tkr-qwen-hook.js +12 -11
- package/dist/bin/tkr-shim.js +85 -80
- package/dist/bin/tkr-trae-hook.js +12 -11
- package/dist/bin/tkr-zcode-hook.js +12 -11
- package/dist/bin/tkr.js +267 -263
- package/dist/hooks-host/post-tool-use.js +94 -89
- package/dist/hooks-host/pre-tool-use.js +13 -12
- package/dist/hooks-host/reducer-stop.js +1 -1
- package/dist/hooks-host/session-recap.js +1 -1
- package/dist/index.js +93 -88
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/package.json +7 -7
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
2
|
-
function
|
|
3
|
-
`).filter(l=>l.trim()!==""),o=[],i=0;for(let l=r.length-1;l>=0;l-=1){let u=r[l],a=Buffer.byteLength(u)+1;if(i+a>n)break;o.push(u),i+=a}o.reverse();let s=`${e}.tmp-${process.pid}`;
|
|
2
|
+
function L(e=5e3){return new Promise(t=>{let n=[],r=process.stdin,o=!1,i=()=>{o||(o=!0,clearTimeout(l),r.off("data",s),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},s=u=>{n.push(Buffer.isBuffer(u)?u:Buffer.from(u))},l=setTimeout(i,e);r.on("data",s).once("end",i).once("error",i),r.resume()})}import{realpathSync as Je}from"node:fs";import{fileURLToPath as Wt,pathToFileURL as Gt}from"node:url";var Be=null;function We(e,t,n){if(n!==void 0&&Be===n)return!0;if(Be!==null||!e)return!1;if(t===Gt(e).href)return!0;try{return Je(e)===Je(Wt(t))}catch{return!1}}import{appendFileSync as Qt,chmodSync as en,mkdirSync as tn,existsSync as nn,readFileSync as si,rmSync as ui}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 Ge(e,t,n){try{if(Yt(e).size<=t)return;let r=Kt(e,"utf8").split(`
|
|
3
|
+
`).filter(l=>l.trim()!==""),o=[],i=0;for(let l=r.length-1;l>=0;l-=1){let u=r[l],a=Buffer.byteLength(u)+1;if(i+a>n)break;o.push(u),i+=a}o.reverse();let s=`${e}.tmp-${process.pid}`;Xt(s,o.length?`${o.join(`
|
|
4
4
|
`)}
|
|
5
|
-
`:"",{mode:384}),
|
|
6
|
-
`,{mode:384}),
|
|
5
|
+
`:"",{mode:384}),qt(s,e)}catch{}}var sn="usage.jsonl";var Ze=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}}
|
|
6
|
+
`,{mode:384}),en(n,384),Ge(n,Ze,Ze/2)}catch{}}import{rmSync as ln,statSync as an}from"node:fs";import{join as Ve}from"node:path";function Ke(){return Ve(x(),"shims")}function ye(){return Ve(x(),"fail-open")}var cn=24*36e5;function A(e=Date.now()){try{if(e-an(ye()).mtimeMs<cn)return!0;ln(ye(),{force:!0})}catch{}return!1}function qe(){return`[ -f ${P(ye())} ]`}function P(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("'")}import{accessSync as hn,chmodSync as kn,constants as _n,existsSync as ie,mkdirSync as bn,readdirSync as yn,readFileSync as wn,realpathSync as et,renameSync as Sn,unlinkSync as xn,writeFileSync as $n}from"node:fs";import{basename as xe,dirname as O,join as T,sep as D}from"node:path";import An from"node:os";import{realpathSync as Xe}from"node:fs";import{delimiter as mn,join as j}from"node:path";import gn from"node:os";import{basename as fn}from"node:path";var dn={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},pn={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 oe(e){let t=fn(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(dn))if(r===t)return[n];for(let[n,r]of Object.entries(pn))if(r===t)return["hook",n];return null}function Z(){return!1}function Qe(e,t){try{return Xe(e)===Xe(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"?";":mn)){if(!o||o.includes("node_modules"))continue;let i=j(o,r);if(Qe(i,n))return i}if(t!=="win32"){let o=gn.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}var nt=1,V="tkr-shim.stable",rt=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function Tn(){return T(x(),"bin","tkr-shim-launch")}function Cn(){return T(x(),"bin","tkr-run")}function tt(){return T(process.env.CLAUDE_CONFIG_DIR||T(An.homedir(),".claude"),"plugins","cache","tokmizer","tokmizer")}function vn(e){let t=O(O(O(e)));return rt.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=T(t[1],"opt",t[2],t[3]);try{return et(n)===et(e)?n:e}catch{return e}}function En(e=process.execPath){return $e(e)?"":Ae(e)}function On(e,t=Z()){if(t&&oe(e)){let o=we();return{single:$e(o)?"":Ae(o),js:"",cache:tt(),node:""}}let n=En(),r=vn(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:$e(e)?"":Ae(e),cache:tt(),node:n}}function Rn(e){try{return hn(e,_n.X_OK),!0}catch{return!1}}function Pn(e){let t=null,n=-1,r;try{r=yn(e)}catch{return null}for(let o of r){if(!rt.test(o))continue;let i=T(e,o);if(!ie(T(i,"dist","bin","tkr-shim.js"))||!ie(T(i,"dist","bin",V)))continue;let[s,l,u]=o.split(".").map(Number),a=s*1e6+l*1e3+u;a>n&&(n=a,t=i)}return t}function Se(e){return e.single&&Rn(e.single)||e.js&&ie(e.js)&&(xe(e.js)!=="tkr-shim.js"||ie(T(O(e.js),V)))?!0:e.cache!==""&&Pn(e.cache)!==null}function Nn(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${V}" ]; }; 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/${V}" ] || 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=${P(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/${V}" ] && [ -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=${nt}`,`_tk_s=${P(e.single)}`,`_tk_j=${P(e.js)}`,`_tk_k=${P(e.cache)}`,`_tk_n=${P(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${qe()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Nn("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(`
|
|
7
|
+
`)}function ot(e){let t=Cn(),n=On(T(O(e),"tkr-shim.js")),r=Ln(t);if(r&&r.format===nt&&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 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=l=>{let u=e.match(new RegExp(`^${l}=(.*)$`,"m"));return u?l==="_tk_f"?u[1]:Ye(u[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(wn(e,"utf8"))}catch{return null}}import{spawnSync as Sr}from"node:child_process";import{existsSync as M,readFileSync as Q,readdirSync as fe}from"node:fs";import{homedir as N}from"node:os";import{fileURLToPath as xr}from"node:url";import{dirname as xt,join as p,resolve as $r}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 l=r[s-1];l&&(o+=s.toString().padEnd(i," "),o+=": ",o+=l,o+=`
|
|
7
8
|
`,s===t&&(o+=" ".repeat(i+n+2),o+=`^
|
|
8
|
-
`))}return o}var f=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=
|
|
9
|
+
`))}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}
|
|
9
10
|
|
|
10
|
-
${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
|
|
11
|
-
`:n===102?s+="\f":n===114?s+="\r":n===101?s+="\x1B":n===34?s+='"':n===92?s+="\\":f.x("unrecognised escape sequence",e),l=e.p+1,u=0);else n!==32&&n!==9&&(u===2&&f.x("invalid escape: only line-ending whitespace may be escaped",e,l),u=!o&&n===92?1:0,l=e.p);f.x("unfinished string",e,t)}var Bt=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,U=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,i=!0,s="Z",l;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"):(l=t.charCodeAt(t.length-1))!==90&&l!==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 u=t.match(Bt);u?(u[1]||(o=!1,t=`0000-01-01T${t}`),i=!!u[2],i&&t[10]===" "&&(t=t.replace(" ","T")),u[2]&&+u[2]>23?t="":(s=u[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 b(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function pe(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function J(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?De(e):Le(e);return e.d++,o}return r===34||r===39?Y(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?X(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?Wt(e,r,t):e.s.charCodeAt(e.p+2)===58?Gt(e,r,t):X(e,e.p,r,0,t)}function X(e,t,n,r,o){let i=n,s=0,l=!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||pe(i=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(i===120)return de(e,t,16,o);if(i===98)return de(e,t,2,o);if(i===111)return de(e,t,8,o)}i===46?s=2:i===101||i===69?s=4:f.x("illegal leading zero",e,t)}else b(i)||f.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!pe(i,o));)s||(s=1),i===95?(s&1||f.x("illegal underscore",e),s+=11,l=!0):s===1&&i===46?s=2:(s===1||s===3)&&(i===101||i===69)?s=4:s===4&&(i===43||i===45)||(b(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 u=e.s.slice(t,e.p);return l&&(u=u.replaceAll("_","")),s>1?parseFloat(u):He(e,u,10,t)}function de(e,t,n,r){let o,i=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!pe(o,r));)o===95?(i&1&&f.x("illegal underscore",e),i=3):b(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("_","")),He(e,s,n,t)}function He(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 Wt(e,t,n){let r=e.p++,o;if(!b(t)||!b(e.s.charCodeAt(e.p++))||!b(e.s.charCodeAt(e.p++))||!b(e.s.charCodeAt(e.p++)))return X(e,e.p=r,t,0,n);if(e.p+=5,b(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,!b(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let s=e.s.slice(r,e.p);return z(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(;b(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 z(e,s,1,o,r,"[+00:00]")}if(t===43||t===45){let s=e.s.slice(r,e.p+=6);return z(e,s,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return z(e,i,2,o,r)}function Gt(e,t,n){let r=e.p;if(!b(t)||!b(e.s.charCodeAt(++e.p)))return X(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;b(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return z(e,o,4,!1,r)}function z(e,t,n,r,o,i){if(e.ld){let s=new U(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 Zt(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 x(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;Zt(e)}}function Q(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(Y(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 Le(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if(x(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let i,s=n,l=!1,u=e.p,a=Q(e);for(let d=0;d<a.length;d++){d&&(s=l?s[i]:s[i]=Object.create(null)),i=a[d],(l=Object.hasOwn(s,i))&&(typeof s[i]!="object"||r.has(s[i]))&&f.x("trying to redefine an already defined value",e,u);let _=i==="__proto__";if(e.uk&&(_||i==="constructor")){s=e.uk!==1&&f.x("document contains an unsafe property",e,u);break}!l&&_&&Object.defineProperty(s,i,{enumerable:!0,configurable:!0,writable:!0})}l&&f.x("trying to redefine an already defined value",e,u),x(e,!0,!0);let c=J(e,125);if(s&&typeof(s[i]=c)=="object"&&r.add(c),x(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 De(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(x(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(J(e,93)),x(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 je(e,t,n,r,o){let i=n,s=r,l,u=!1,a;for(let c=0;c<t.length;c++){if(c){if(i=u?i[l]:i[l]=Object.create(null),s=(a=s[l]).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(l=t[c],(u=Object.hasOwn(i,l))&&s[l]?.t===0&&s[l]?.d)return null;if(!u){let d=l==="__proto__";if(e.uk&&(d||l==="constructor"))return!1;d&&(Object.defineProperty(i,l,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(s,l,{enumerable:!0,configurable:!0,writable:!0})),s[l]={t:c<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(a=s[l],a.t!==o&&!(o===1&&a.t===3)||(o===2&&(a.d||(a.d=!0,i[l]=[]),i[l].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=u?i[l]:i[l]=Object.create(null);else if(o===0&&u)return null;return[l,i,a.c]}function Fe(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 me(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,l=r,u=o;for(e.charCodeAt(0)===65279&&n.p++,x(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=Q(n,93);a&&(e.charCodeAt(n.p)!==93&&f.x("expected end of table array declaration",n),n.p++);let d=je(n,c,r,o,a?2:1);d?(u=d[2],l=d[1]):(Fe(n,d,i),s=!0)}else{i=n.p;let a=Q(n),c=je(n,a,l,u,0);!c&&!s&&Fe(n,c,i),x(n,!0,!0);let d=J(n,void 0);c&&!s&&(c[1][c[0]]=d)}x(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),x(n)}return r}var zo=!!"".isWellFormed;function ee(){return!1}import{execFileSync as gn}from"node:child_process";import{mkdirSync as hn,readFileSync as We,renameSync as kn,statSync as _n,writeFileSync as bn}from"node:fs";import{join as Ge}from"node:path";import{closeSync as Vt,openSync as qt,readSync as Kt,readdirSync as Yt,readFileSync as Xt,statSync as ze}from"node:fs";import{homedir as Qt}from"node:os";import{isAbsolute as en,join as te,resolve as tn}from"node:path";var nn=/^[A-Za-z0-9._+@%:,/-]+$/,rn=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),on=32,sn=4*1024*1024;function he(e){let t;try{t=qt(e,"r");let n=Buffer.alloc(4),r=Kt(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&&Vt(t)}}function B(e,t=process.platform){try{let n=ze(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=he(e);return r==="#!"||r!==null&&rn.has(r)}catch{return!1}}function ln(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 N(e,t,n,r=process.platform){if(!nn.test(e))return!1;let o=r==="win32";if(e.includes("/"))return B(tn(t??process.cwd(),e),r);if(!n)return!1;let i=o?ln(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!en(s))){for(let l of i)if(B(te(s,l),r))return!0}return!1}var un=/^eval \$'([^\s'()=]+) \(\) /,an=/^([^\s'"()=]+) \(\) \{$/,cn=/^alias -- ([^\s=]+)=(.*)$/,fn=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,dn=/^export PATH=(.*)$/,pn=/^(?:--colou?r(?:=\S+)?|-G)$/;function Ue(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 mn(e,t){let n="";for(let r of e.split(`
|
|
12
|
-
`)){let o=
|
|
13
|
-
`,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?
|
|
14
|
-
`||l==="|"){s(l,1);continue}}r+=l,o+=1}return i(),n}function
|
|
11
|
+
${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 se(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="",l=e.p,u=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))u=u&&3;else if(n<32&&n!==9||n===127)f.x("control characters are not allowed in strings",e);else if((!u||u===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++),!u){let a=e.s.slice(l,e.p);s=s?s+a:a}return e.p+=i?3:1,s}else if(!u)!o&&n===92&&(s+=e.s.slice(l,l=e.p),u=1);else if(u===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 _=0;_<d;_++,e.p++){let m=e.s.charCodeAt(e.p),h=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;h<0&&f.x("invalid non-hex character in unicode escape",e),c=c<<4|h}(c<0||c>1114111||c>=55296&&c<=57343)&&f.x("invalid unicode escape",e,a),s+=String.fromCodePoint(c),l=e.p--,u=0}else i&&(n===32||n===9)?u=2:(n===98?s+="\b":n===116?s+=" ":n===110?s+=`
|
|
12
|
+
`:n===102?s+="\f":n===114?s+="\r":n===101?s+="\x1B":n===34?s+='"':n===92?s+="\\":f.x("unrecognised escape sequence",e),l=e.p+1,u=0);else n!==32&&n!==9&&(u===2&&f.x("invalid escape: only line-ending whitespace may be escaped",e,l),u=!o&&n===92?1:0,l=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,K=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,i=!0,s="Z",l;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"):(l=t.charCodeAt(t.length-1))!==90&&l!==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 u=t.match(Fn);u?(u[1]||(o=!1,t=`0000-01-01T${t}`),i=!!u[2],i&&t[10]===" "&&(t=t.replace(" ","T")),u[2]&&+u[2]>23?t="":(s=u[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 b(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ce(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Y(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?ut(e):st(e);return e.d++,o}return r===34||r===39?se(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?ue(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?Un(e,r,t):ue(e,e.p,r,0,t)}function ue(e,t,n,r,o){let i=n,s=0,l=!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||Ce(i=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(i===120)return Te(e,t,16,o);if(i===98)return Te(e,t,2,o);if(i===111)return Te(e,t,8,o)}i===46?s=2:i===101||i===69?s=4:f.x("illegal leading zero",e,t)}else b(i)||f.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!Ce(i,o));)s||(s=1),i===95?(s&1||f.x("illegal underscore",e),s+=11,l=!0):s===1&&i===46?s=2:(s===1||s===3)&&(i===101||i===69)?s=4:s===4&&(i===43||i===45)||(b(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 u=e.s.slice(t,e.p);return l&&(u=u.replaceAll("_","")),s>1?parseFloat(u):it(e,u,10,t)}function Te(e,t,n,r){let o,i=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ce(o,r));)o===95?(i&1&&f.x("illegal underscore",e),i=3):b(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("_","")),it(e,s,n,t)}function it(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(!b(t)||!b(e.s.charCodeAt(e.p++))||!b(e.s.charCodeAt(e.p++))||!b(e.s.charCodeAt(e.p++)))return ue(e,e.p=r,t,0,n);if(e.p+=5,b(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,!b(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let s=e.s.slice(r,e.p);return q(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(;b(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 q(e,s,1,o,r,"[+00:00]")}if(t===43||t===45){let s=e.s.slice(r,e.p+=6);return q(e,s,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return q(e,i,2,o,r)}function Un(e,t,n){let r=e.p;if(!b(t)||!b(e.s.charCodeAt(++e.p)))return ue(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;b(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return q(e,o,4,!1,r)}function q(e,t,n,r,o,i){if(e.ld){let s=new K(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 zn(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;zn(e)}}function le(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(se(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 st(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,l=!1,u=e.p,a=le(e);for(let d=0;d<a.length;d++){d&&(s=l?s[i]:s[i]=Object.create(null)),i=a[d],(l=Object.hasOwn(s,i))&&(typeof s[i]!="object"||r.has(s[i]))&&f.x("trying to redefine an already defined value",e,u);let _=i==="__proto__";if(e.uk&&(_||i==="constructor")){s=e.uk!==1&&f.x("document contains an unsafe property",e,u);break}!l&&_&&Object.defineProperty(s,i,{enumerable:!0,configurable:!0,writable:!0})}l&&f.x("trying to redefine an already defined value",e,u),$(e,!0,!0);let c=Y(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 ut(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(Y(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 lt(e,t,n,r,o){let i=n,s=r,l,u=!1,a;for(let c=0;c<t.length;c++){if(c){if(i=u?i[l]:i[l]=Object.create(null),s=(a=s[l]).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(l=t[c],(u=Object.hasOwn(i,l))&&s[l]?.t===0&&s[l]?.d)return null;if(!u){let d=l==="__proto__";if(e.uk&&(d||l==="constructor"))return!1;d&&(Object.defineProperty(i,l,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(s,l,{enumerable:!0,configurable:!0,writable:!0})),s[l]={t:c<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(a=s[l],a.t!==o&&!(o===1&&a.t===3)||(o===2&&(a.d||(a.d=!0,i[l]=[]),i[l].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=u?i[l]:i[l]=Object.create(null);else if(o===0&&u)return null;return[l,i,a.c]}function at(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 ve(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,l=r,u=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=le(n,93);a&&(e.charCodeAt(n.p)!==93&&f.x("expected end of table array declaration",n),n.p++);let d=lt(n,c,r,o,a?2:1);d?(u=d[2],l=d[1]):(at(n,d,i),s=!0)}else{i=n.p;let a=le(n),c=lt(n,a,l,u,0);!c&&!s&&at(n,c,i),$(n,!0,!0);let d=Y(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 ts=!!"".isWellFormed;import{execFileSync as ar}from"node:child_process";import{mkdirSync as cr,readFileSync as mt,renameSync as fr,statSync as dr,writeFileSync as pr}from"node:fs";import{join as gt}from"node:path";import{closeSync as Jn,openSync as Bn,readSync as Wn,readdirSync as Gn,readFileSync as Zn,statSync as ft}from"node:fs";import{homedir as Vn}from"node:os";import{isAbsolute as Kn,join as ae,resolve as qn}from"node:path";var Yn=/^[A-Za-z0-9._+@%:,/-]+$/,Xn=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),Qn=32,er=4*1024*1024;function Oe(e){let t;try{t=Bn(e,"r");let n=Buffer.alloc(4),r=Wn(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&&Jn(t)}}function X(e,t=process.platform){try{let n=ft(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&&Xn.has(r)}catch{return!1}}function tr(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(!Yn.test(e))return!1;let o=r==="win32";if(e.includes("/"))return X(qn(t??process.cwd(),e),r);if(!n)return!1;let i=o?tr(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!Kn(s))){for(let l of i)if(X(ae(s,l),r))return!0}return!1}var nr=/^eval \$'([^\s'()=]+) \(\) /,rr=/^([^\s'"()=]+) \(\) \{$/,or=/^alias -- ([^\s=]+)=(.*)$/,ir=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,sr=/^export PATH=(.*)$/,ur=/^(?:--colou?r(?:=\S+)?|-G)$/;function ct(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 lr(e,t){let n="";for(let r of e.split(`
|
|
13
|
+
`)){let o=sr.exec(r);if(o&&n!=="# Functions"){let i=ct(o[1].trim());/[$`\\]/.test(i)||t.paths.push(i);continue}if(r.startsWith("# ")&&(n!=="# Functions"||ir.test(r))){n=r;continue}if(n==="# Functions"){let i=nr.exec(r)??rr.exec(r);i&&t.functions.add(i[1])}else if(n==="# Aliases"){let i=or.exec(r);i&&t.aliases.set(i[1],ct(i[2].trim()))}}}function Ee(e){return e?.code==="ENOENT"}function dt(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=ae(e||ae(Vn(),".claude"),"shell-snapshots"),r=[];try{for(let o of Gn(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let i=ae(n,o);try{let s=ft(i);s.isFile()&&r.push({path:i,mtime:s.mtimeMs,size:s.size})}catch(s){Ee(s)||(t.uncertain=!0)}}}catch(o){return Ee(o)||(t.uncertain=!0),t}r=r.sort((o,i)=>i.mtime-o.mtime).slice(0,Qn);for(let o of r)try{if(o.size>er)throw new Error("snapshot too large");lr(Zn(o.path,"utf8"),t)}catch(i){Ee(i)||(t.uncertain=!0)}return t}function pt(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=>ur.test(o))}var mr="exec-probe.json",gr=6e4;function hr(){return gt(x(),mr)}function kr(e){try{let t=JSON.parse(mt(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 _r(e,t){try{cr(gt(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;pr(n,JSON.stringify(t),{mode:384}),fr(n,e)}catch{}}function br(e){try{return ar(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=mt(e,"utf8").split(`
|
|
14
|
+
`,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?F(r[1]??"",void 0,t):X(o)}catch{return!1}}function wr(e,t,n){try{let r=dr(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=hr(),o=Date.now()){let i=t!=="win32"&&Oe(e)==="#!",s=wr(e,i,n),l=kr(r);if(l?.key===s&&(l.ok||o-l.at<gr))return l.ok;let u=X(e,t)&&(i?yr(e,n):br(e));return _r(r,{key:s,ok:u,at:o,skipped:(l?.skipped??0)+(u?0:1)}),u}var Ar=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"]),Tr=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"]),ht=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),kt="(?:dev|start|serve|watch|preview)",Cr=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${kt}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${kt}(?:\\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 Er(e){return Cr.test(e)&&!vr.test(e)}var Or=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Rr=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,$t=3;function At(e){let t=Or.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 l=e.slice(o,i);return r==='"'&&/[$`\\!]/.test(l)||n&&Rr.test(l)?null:{script:l,start:o,end:i,quote:r}}var Pr=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Nr(e){return pe(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ct(n.text);return r!==""&&!Pr.has(r)&&!Ne.test(r)}).length>1}function Ir(e,t,n,r,o){if(n>=$t)return null;let i=At(e);if(!i)return null;let{script:s,start:l,end:u,quote:a}=i,c=[],d=Et(s,t,n+1,r,C=>c.push(C));if(d===s||a==='"'&&/["$`]/.test(d))return null;let _=a==="'"?d.replace(/'/g,"'\\''"):d,m=`${e.slice(0,l)}${_}${e.slice(u)}`,h=Nr(s);if(o)for(let C of h?[e,...c]:c)o(C);return h?`${t} ${m}`:m}var _t=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Hr=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function Lr(e,t){let n=de(t);return n==="tail"||n==="journalctl"?_t.test(e):n==="stern"?!0:Hr.has(n)?/\blogs?\b/.test(e)&&_t.test(e):!1}var Ne=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,jr=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Dr=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function de(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Tt(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 bt(e){let t=Tt(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function pe(e){let t=Tt(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=(l,u)=>{i(),n.push({kind:"sep",text:l}),o+=u};for(;o<e.length;){let l=e[o],u=e[o+1];if(t[o]){if(l===">"&&u==="|"){r+=">|",o+=2;continue}if(l==="&"&&u==="&"){s("&&",2);continue}if(l==="&"&&u!==">"){let a=r.replace(/\s+$/,""),c=a[a.length-1];if(c!==">"&&c!=="<"&&c!=="&"){s("&",1);continue}}if(l==="|"&&u==="|"){s("||",2);continue}if(l==="|"&&u==="&"){s("|&",2);continue}if(l===";"&&u===";"){let a=e[o+2]==="&";s(a?";;&":";;",a?3:2);continue}if(l===";"||l===`
|
|
15
|
+
`||l==="|"){s(l,1);continue}}r+=l,o+=1}return i(),n}function Ct(e){return e.trim().split(/\s+/)[0]??""}function w(e,t=process.platform){try{let n=xt(xr(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let u=p(n,"..","bin","tkr-exec.exe");if(M(u))return Re(u,t)?`'${u.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let i=p(n,"..","bin","tkr-exec"),s=!r&&M(i);if(s&&!Re(i,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let u=ot(p(n,"..","bin","tkr-exec.js"));if(u&&(s||M(p(n,"..","bin","tkr-exec.js"))))return`${o}'${u.replace(/'/g,"'\\''")}'`}if(s)return`${o}'${i.replace(/'/g,"'\\''")}'`;if(Z()){let u=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${u.replace(/'/g,"'\\''")}' exec`}let l=p(n,"..","bin","tkr-exec.js");return M(l)?`${o}node '${l.replace(/'/g,"'\\''")}'`:null}catch{return null}}function vt(e,t="tkr-exec",n=()=>!0,r){return Et(e,t,0,n,r)}function Et(e,t,n,r,o){if(e.includes("<<")||Dr.test(e))return e;let i=pe(e),s=[];for(let l=0;l<i.length;l++){let u=i[l];if(u.kind==="sep"||u.unsafe){s.push(u.text);continue}let a=u.text.trim();if(!a){s.push(u.text);continue}let c=Ct(a),d=i[l+1],_=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),m=d?.kind==="sep"&&d.text==="&",h=!_&&!m&&!bt(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?Ir(a,t,n,r,o):null;if(h!==null){s.push(`${u.text.match(/^\s*/)?.[0]??""}${h}${u.text.match(/\s*$/)?.[0]??""}`);continue}if(a===t||a.startsWith(t)&&/^\s/.test(a.slice(t.length))||Ar.has(c)||Tr.has(c)||(ht.has(c)||ht.has(de(c)))&&!Er(a)||Ne.test(c)||c.startsWith("(")||c.startsWith("#")||c.startsWith("<")||c.startsWith(">")||jr.test(a)||Lr(a,c)||c.endsWith(")")||_||m||bt(u.text)||u.text.includes("<(")||u.text.includes(">(")||c==="node"&&a.includes("tkr-exec.js")||!r(c)){s.push(u.text);continue}let C=u.text.match(/^\s*/)?.[0]??"",S=u.text.match(/\s*$/)?.[0]??"";o?.(a),s.push(`${C}${t} ${a}${S}`)}return s.join("")}var Fr=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),Mr=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"]),Ur=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),zr={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/},ce=["test","run test","run build","run lint","run typecheck"],Jr={npm:new Set(ce),pnpm:new Set([...ce,"build","lint","typecheck"]),yarn:new Set([...ce,"build","lint","typecheck"]),bun:new Set(ce),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"])},Br=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 pe(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<$t?At(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=>Ne.test(a)))return!1;let s=de(i[0]);if(s!==i[0])return!1;let l=zr[s];if(l&&i.slice(1).some(a=>l.test(a)))return!1;if((s==="git"?Ur.has(i[1]??""):Mr.has(s))||t&&Br.has(s))continue;let u=t?Jr[s]:void 0;if(!(u&&(u.has(i[1]??"")||i[1]==="run"&&u.has(`run ${i[2]??""}`))))return!1}return!0}function Ie(e,t,n=w(t),r=y,o=me(),i=process.env.PATH,s=He){if(!g(e)||e.tool_name!=="Bash"||t==="claude-code"&&Gr(s()))return null;let l=e.tool_input;if(!g(l)||l.run_in_background)return null;let u=l.command;if(typeof u!="string"||!u||t==="codex"&&Object.keys(l).some(C=>!Fr.has(C)))return null;let a=typeof e.cwd=="string"&&e.cwd?e.cwd:l.workdir,c=typeof a=="string"&&a?a:void 0,d=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",_=typeof e.permission_mode=="string"?e.permission_mode:void 0,m=Dt(u,{host:t,sessionId:d,cwd:c,claudeDirs:o,pathEnv:i,permissionMode:_},n,r);if(!m)return null;let h={...l,command:m.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:h}:m.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${m.allowedBy}`,updatedInput:h}:m.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:h}:{hookEventName:"PreToolUse",updatedInput:h}})}var Wr=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function He(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=Sr("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 Gr(e){return e===null||Wr.test(e)}function Zr(e,t){if(!M(e))return"missing";try{let n=Q(e,"utf8");return JSON.parse(t?Rt(n):n)}catch{return"unreadable"}}function Rt(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]!==`
|
|
15
16
|
`;)r++;t+=`
|
|
16
|
-
`}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 V(e){let t=[],n=vn(e);for(;;){t.push(n);let r=et(n);if(r===n)return t;n=r}}function er(){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 re(p(e,"managed-settings.d")))n.endsWith(".json")&&t.push(p(e,"managed-settings.d",n))}catch{return t}return t}function q(e,t,n,r){let o=[];for(let i of e){let s=Qn(i,t);if(s!=="missing"&&(s==="unreadable"||!g(s)||!n(s,o)))return"unreadable"}return{matchers:o,complete:r}}function Z(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function se(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function tr(e,t){let n=S=>[p(S,"settings.json"),p(S,"settings.local.json")],r=S=>n(p(S,".claude")),o=p(v(),".claude"),i=t.configDir||o,s=[[er(),"managed"],[[p(i,"settings.json")],"loaded"],[[p(i,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[V(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},a={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,d="managed",_=(S,fe)=>{let C=S.permissions;if(d==="managed"&&(S.allowManagedPermissionRulesOnly===!0||g(C)&&C.allowManagedPermissionRulesOnly===!0)&&(c=!0),C===void 0)return!0;if(!g(C))return!1;for(let $e of["deny","ask","allow"]){let Te=Z(C[$e]);if(!Te)return!1;for(let Ce of Te){let P=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(Ce);if(P)if($e!=="allow")fe.push(R((P[1]??"*").replace(/:\*$/," *")));else if(P[1]===void 0||P[1].trim()==="*")a[d]=!0;else{l.push(R(P[1].replace(/:\*$/," *")));let Ee=wr(P[1]);Ee&&u[d].push({rule:Ce.trim(),matches:Ee})}}}return!0},m=[];for(let[S,fe]of s){d=fe;let C=q(S,!1,_,!0);if(C==="unreadable")return"unreadable";m.push(...C.matchers)}let h=a.managed||(a.loaded||a.loadedLocal)&&!c,$=[...u.managed,...c?[]:u.loaded];return{matchers:[...m,...h?[]:l],complete:!0,allow:l,allowsEverything:h,guards:m,trustedAllow:$}}function nr(e){let t=[p(v(),".cursor","cli-config.json"),...V(e).map(n=>p(n,".cursor","cli.json"))];return q(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!g(o))return!1;let i=Z(o.deny);if(!i)return!1;for(let s of i){let l=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(s);if(!l)continue;let u=l[1]??"*",a=u.indexOf(":");r.push(R(a===-1?`${u} *`:`${u.slice(0,a)} ${u.slice(a+1)}`))}return!0},!1)}function rr(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var at=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function or(e,t){let n=e.tools;if(n!==void 0&&!g(n))return!1;let r=[Z(e.excludeTools),Z(g(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let i of o){let s=at.exec(i);s&&t.push(R(s[1]===void 0?"*":`${s[1]}*`))}}return!0}function Ye(e){try{return JSON.parse(e)}catch{return null}}function ir(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]??Ye(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Ye(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function sr(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let u of n.split(/\r?\n/)){if(/^\s*\[/.test(u))break;let a=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(u);if(!a)continue;let c=ir(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(u=>u==="*"||at.test(u)))continue;let s=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),l=[r.commandRegex,r.argsPattern].flat().filter(u=>typeof u=="string");if(s.length===0&&l.length===0){t.push(()=>!0);continue}for(let u of s)t.push(R(`${u}*`));for(let u of l){let a;try{a=new RegExp(u)}catch{return!1}t.push(c=>a.test(JSON.stringify({command:c}))||le(a,c))}}return!0}function Xe(e){try{return re(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function lr(e){let t=rr(),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(v(),".gemini","settings.json"),...V(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=q(n,!0,or,!1);if(r==="unreadable")return r;for(let o of[...Xe(p(v(),".gemini","policies")),...Xe(p(t,"policies"))]){let i;try{i=G(o,"utf8")}catch{return"unreadable"}if(!sr(i,r.matchers))return"unreadable"}return r}function _e(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!g(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(!g(r))return!1;for(let[o,i]of Object.entries(r))i!=="allow"&&t.push(R(o.replace(/\?/g,"*")))}}return!0}function Qe(e,t){if(e.permissions!==void 0||!_e(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!g(r))return!1;for(let o of Object.values(r))if(g(o)&&(o.permissions!==void 0||!_e(o.permission,t)))return!1}}return!0}function ur(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=re(p(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(G(p(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function ar(e){let t=p(process.env.XDG_CONFIG_HOME||p(v(),".config"),"opencode"),n=V(e),r=[t,...n.map(l=>p(l,".opencode"))];if(ur(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],i=[...o.map(l=>p(t,l)),process.env.OPENCODE_CONFIG,...n.flatMap(l=>[...o.slice(0,2).map(u=>p(l,u)),...o.slice(0,2).map(u=>p(l,".opencode",u))])].filter(l=>!!l),s=q(i,!0,Qe,!0);if(s==="unreadable")return s;for(let l of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!l)continue;let u;try{u=JSON.parse(ut(l))}catch{return"unreadable"}if(!(l===process.env.OPENCODE_PERMISSION?_e(u,s.matchers):g(u)&&Qe(u,s.matchers)))return"unreadable"}return s}function cr(){return q([p(v(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!g(n))return!1;for(let r of["deny","ask"]){let o=Z(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 l=s[1].trim();if(!l.startsWith("regex:")){t.push(R(l==="*"?"*":`${l} *`));continue}let u;try{u=new RegExp(l.slice(6))}catch{return!1}t.push(a=>le(u,a))}}return!0},!1)}function fr(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 ct(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=ct(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 ft(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(Se).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>le(n,r)}function dr(e,t){let n=fr(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 u=n[o.i];if(!u||!/^[A-Za-z_]/.test(u)||n[o.i+1]!=="="||(o.i+=2,i[u]=ct(n,o),i[u]===void 0&&(u==="pattern"||u==="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 l=ft(i.pattern);if(!l)return!1;s!=="allow"&&t.push(l)}return!0}function pr(e){if(!W(e))return[];try{return re(e).filter(t=>t.endsWith(".rules")).sort().map(t=>p(e,t))}catch{return"unreadable"}}function mr(){return process.platform==="win32"?p(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function gr(e){if(!(!g(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 hr(e,t){let n;try{n=me(e)}catch{return!1}if(n.rules===void 0)return!0;if(!g(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(!g(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let i=o.pattern.map(gr);if(i.some(l=>l===void 0))return!1;let s=ft(i);if(!s)return!1;t.push(s)}return!0}function kr(e){let t=process.env.CODEX_HOME||p(v(),".codex"),n=[p(t,"rules"),...V(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=G(mr(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!hr(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=pr(i);if(s==="unreadable")return"unreadable";for(let l of s){let u;try{u=G(l,"utf8")}catch{return"unreadable"}if(!dr(u,r))return"unreadable"}}return{matchers:r,complete:!1}}function g(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Se(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _r(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Se).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var br=512;function yr(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(oe)]}function le(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of yr(t)){if(n.length>br)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function R(e){let t=_r(e);return n=>le(t,n)}function wr(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(`^${Se(r)}${n?"(?: [\\s\\S]*)?":""}$`);return i=>o.test(i)}var Sr={"claude-code":tr,cursor:nr,"gemini-cli":lr,opencode:ar,antigravity:cr,codex:kr},xr=new Set(["codex"]),dt=/(?:^|[\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 Ar(e,t,n){let r=Sr[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function $r(e,t,n){return e==="unreadable"||dt.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||lt(t,!xr.has(n))}var pt=new Set(["default","acceptEdits","dontAsk"]);function mt(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&pt.has(t.permissionMode??"")}function Tr(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return o=>e.host!=="claude-code"?N(o,e.cwd,n):(r??=Je(t.configDir),!N(o,e.cwd,n)&&!r.paths.some(i=>N(o,e.cwd,i))?!1:o.includes("/")||!Be(o,r))}var Cr=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Er(e,t,n){return n.host!=="claude-code"||e==="unreadable"||mt(e,n)||!pt.has(n.permissionMode??"")||!Cr.test(t)||dt.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}function gt(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??se(),i=Ar(t.host,t.cwd,o),s=Er(i,e,t),l=s||$r(i,e,t.host)?it(e,n,Tr(t,o)):e;return l!==e&&i!=="unreadable"&&(s?(i.guards??[]).some(u=>u(l)):i.matchers.some(u=>u(l))||(i.allow??[]).some(u=>u(l)&&!u(e)))&&(l=e),r(t.sessionId,l!==e),l===e?null:s?{command:l,allowedBy:s}:mt(i,t)?{command:l}:null}function O(e,t,n,r){return gt(e,t,n,r)?.command??null}function k(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function K(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Or(e){return k(e,"prompt_id")||k(e,"scratchpad_dir")?!0:K(e.effort)}function vr(e){return k(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(k(e,"model")??"")}var Rr=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Pr=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),Ir=new Set(["pre_tool","post_tool"]),Nr=new Set(["before_tool_call","after_tool_call"]),Hr=new Set(["runTerminalCommand","run_in_terminal"]),Lr=[["codex",e=>k(e,"turn_id")!==null],["claude-code",Or],["cursor",e=>k(e,"cursor_version")!==null||k(e,"generation_id")!==null||k(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Pr.has(k(e,"hook_event_name")??"")],["gemini-cli",e=>Rr.has(k(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>Ir.has(k(e,"hook_event_name")??"")],["antigravity",e=>K(e.toolCall)],["copilot",e=>k(e,"toolName")!==null&&"toolArgs"in e||Hr.has(k(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||K(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&&k(e,"event")!==null&&!Nr.has(k(e,"event"))]],Dr=new Set(["codex","antigravity"]);function jr(e){return K(e)?Lr.filter(([,t])=>t(e)).map(([t])=>t):[]}function ht(e,t){if(!K(e))return null;let n=jr(e);return n.length>1?null:n.length===1?n[0]:vr(e)&&Dr.has(t)?"claude-code":t==="codex"?null:t}var xe=JSON.stringify({permission:"allow"});function kt(e,t=w("cursor"),n=y){if(e.tool_name!=="Shell")return xe;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return xe;let i=typeof r.working_directory=="string"?r.working_directory:void 0,s=O(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:i},A()?null:t,n);return s?JSON.stringify({permission:"allow",updated_input:{...r,command:s}}):xe}var ue="{}";function _t(e,t=w("gemini-cli"),n=y){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return ue;let r=e.tool_input??{};if(r.is_background)return ue;let o=r.command;if(typeof o!="string"||!o)return ue;let i=typeof e.cwd=="string"?e.cwd:void 0,s=O(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:i},A()?null:t,n);return s?JSON.stringify({hookSpecificOutput:{tool_input:{command:s}}}):ue}function L(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}var rs=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function D(e,t,n="unknown",r=w(t),o=y){return e?O(e,{host:t,sessionId:n},A()?null:r,o):null}var Mr=new Set(["bash","file_system.bash"]),Ae=JSON.stringify({decision:"allow"});function bt(e,t=(n,r)=>D(n,"vibe",r)){if(!L(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!Mr.has(e.tool_name))return"";let n=e.tool_input;if(!L(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 yt(e,t=(n,r)=>D(n,"antigravity",r)){if(!L(e)||!L(e.toolCall)||e.toolCall.name!=="run_command")return Ae;let n=e.toolCall.args;if(!L(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Ae;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Ae}var T="{}",Ur=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),zr=["run_in_background","is_background","isBackground"];function ae(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Jr(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function Br(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function ce(e,t,n,r,o){if(!ae(t)||zr.some(s=>t[s]===!0))return null;let i=t.command;return typeof i!="string"||!i?null:O(i,{host:e,sessionId:Jr(n),cwd:Br(n,t)},A()?null:r,o)}function F(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function Wr(e){if(ae(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return ae(t)?t:null}catch{return null}}function Gr(e,t,n){if(typeof e.tool_name=="string"){if(!Ur.has(e.tool_name))return T;let i=e.tool_input,s=ce("copilot",i,e,t,n);return s?F(i,s):T}if(e.toolName!=="bash")return T;let r=Wr(e.toolArgs),o=ce("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):T}function j(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return T;let s=r.tool_input,l=ce(e,s,r,o,i);return l?n(s,l):T}}var Zr=new Set(["run_terminal_command","Bash","bash"]);function Vr(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!Zr.has(r))return T;let o=e.toolInput??e.tool_input,i=ce("grok",o,e,t,n);return i?F(o,i):T}var qr={copilot:Gr,droid:j("droid","Execute",F),trae:j("trae","RunCommand",F),"qwen-code":j("qwen-code","run_shell_command",F),crush:j("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:j("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:j("zcode","Bash",F),grok:Vr};function wt(e,t,n=w(e),r=y){return ae(t)?qr[e](t,n,r):T}function M(e){return A()?null:w(e)}function Kr(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"?"":ye(t,e,M(e),r,n.claudeDirs??se(),n.pathEnv??process.env.PATH,n.launchArgs??we)??"";case"cursor":return kt(t,M(e),r);case"gemini-cli":return _t(t,M(e),r);case"vibe":return bt(t,(o,i)=>D(o,"vibe",i,M(e),r));case"antigravity":return yt(t,(o,i)=>D(o,"antigravity",i,M(e),r));default:return wt(e,t,M(e),r)}}function H(e,t,n={}){let r=ht(e,t);return r?Kr(r,e,n):n.fallback??""}function Yr(e){let t;try{t=JSON.parse(e)}catch{return""}return H(t,"claude-code")}async function Xr(){let e=await I(),t=e?Yr(e):"";t&&process.stdout.write(t)}var Qr=process.argv[1]??"";Re(Qr,import.meta.url,"pre-tool-use")&&Xr().catch(e=>{process.stderr.write(`tkr pre-tool-use: ${e.message}
|
|
17
|
-
`),process.exit(0)});export{
|
|
17
|
+
`}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 te(e){let t=[],n=$r(e);for(;;){t.push(n);let r=xt(n);if(r===n)return t;n=r}}function Vr(){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 fe(p(e,"managed-settings.d")))n.endsWith(".json")&&t.push(p(e,"managed-settings.d",n))}catch{return t}return t}function ne(e,t,n,r){let o=[];for(let i of e){let s=Zr(i,t);if(s!=="missing"&&(s==="unreadable"||!g(s)||!n(s,o)))return"unreadable"}return{matchers:o,complete:r}}function ee(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function me(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Kr(e,t){let n=S=>[p(S,"settings.json"),p(S,"settings.local.json")],r=S=>n(p(S,".claude")),o=p(N(),".claude"),i=t.configDir||o,s=[[Vr(),"managed"],[[p(i,"settings.json")],"loaded"],[[p(i,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[te(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},a={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,d="managed",_=(S,be)=>{let E=S.permissions;if(d==="managed"&&(S.allowManagedPermissionRulesOnly===!0||g(E)&&E.allowManagedPermissionRulesOnly===!0)&&(c=!0),E===void 0)return!0;if(!g(E))return!1;for(let Fe of["deny","ask","allow"]){let Me=ee(E[Fe]);if(!Me)return!1;for(let Ue of Me){let H=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(Ue);if(H)if(Fe!=="allow")be.push(I((H[1]??"*").replace(/:\*$/," *")));else if(H[1]===void 0||H[1].trim()==="*")a[d]=!0;else{l.push(I(H[1].replace(/:\*$/," *")));let ze=ho(H[1]);ze&&u[d].push({rule:Ue.trim(),matches:ze})}}}return!0},m=[];for(let[S,be]of s){d=be;let E=ne(S,!1,_,!0);if(E==="unreadable")return"unreadable";m.push(...E.matchers)}let h=a.managed||(a.loaded||a.loadedLocal)&&!c,C=[...u.managed,...c?[]:u.loaded];return{matchers:[...m,...h?[]:l],complete:!0,allow:l,allowsEverything:h,guards:m,trustedAllow:C}}function qr(e){let t=[p(N(),".cursor","cli-config.json"),...te(e).map(n=>p(n,".cursor","cli.json"))];return ne(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!g(o))return!1;let i=ee(o.deny);if(!i)return!1;for(let s of i){let l=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(s);if(!l)continue;let u=l[1]??"*",a=u.indexOf(":");r.push(I(a===-1?`${u} *`:`${u.slice(0,a)} ${u.slice(a+1)}`))}return!0},!1)}function Yr(){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 Xr(e,t){let n=e.tools;if(n!==void 0&&!g(n))return!1;let r=[ee(e.excludeTools),ee(g(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 Qr(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 eo(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let u of n.split(/\r?\n/)){if(/^\s*\[/.test(u))break;let a=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(u);if(!a)continue;let c=Qr(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(u=>u==="*"||Pt.test(u)))continue;let s=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),l=[r.commandRegex,r.argsPattern].flat().filter(u=>typeof u=="string");if(s.length===0&&l.length===0){t.push(()=>!0);continue}for(let u of s)t.push(I(`${u}*`));for(let u of l){let a;try{a=new RegExp(u)}catch{return!1}t.push(c=>a.test(JSON.stringify({command:c}))||ge(a,c))}}return!0}function wt(e){try{return fe(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function to(e){let t=Yr(),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(N(),".gemini","settings.json"),...te(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=ne(n,!0,Xr,!1);if(r==="unreadable")return r;for(let o of[...wt(p(N(),".gemini","policies")),...wt(p(t,"policies"))]){let i;try{i=Q(o,"utf8")}catch{return"unreadable"}if(!eo(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(!g(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(!g(r))return!1;for(let[o,i]of Object.entries(r))i!=="allow"&&t.push(I(o.replace(/\?/g,"*")))}}return!0}function St(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(!g(r))return!1;for(let o of Object.values(r))if(g(o)&&(o.permissions!==void 0||!Pe(o.permission,t)))return!1}}return!0}function no(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=fe(p(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(Q(p(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function ro(e){let t=p(process.env.XDG_CONFIG_HOME||p(N(),".config"),"opencode"),n=te(e),r=[t,...n.map(l=>p(l,".opencode"))];if(no(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],i=[...o.map(l=>p(t,l)),process.env.OPENCODE_CONFIG,...n.flatMap(l=>[...o.slice(0,2).map(u=>p(l,u)),...o.slice(0,2).map(u=>p(l,".opencode",u))])].filter(l=>!!l),s=ne(i,!0,St,!0);if(s==="unreadable")return s;for(let l of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!l)continue;let u;try{u=JSON.parse(Rt(l))}catch{return"unreadable"}if(!(l===process.env.OPENCODE_PERMISSION?Pe(u,s.matchers):g(u)&&St(u,s.matchers)))return"unreadable"}return s}function oo(){return ne([p(N(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!g(n))return!1;for(let r of["deny","ask"]){let o=ee(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 l=s[1].trim();if(!l.startsWith("regex:")){t.push(I(l==="*"?"*":`${l} *`));continue}let u;try{u=new RegExp(l.slice(6))}catch{return!1}t.push(a=>ge(u,a))}}return!0},!1)}function io(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 Nt(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=Nt(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 It(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(Le).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>ge(n,r)}function so(e,t){let n=io(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 u=n[o.i];if(!u||!/^[A-Za-z_]/.test(u)||n[o.i+1]!=="="||(o.i+=2,i[u]=Nt(n,o),i[u]===void 0&&(u==="pattern"||u==="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 l=It(i.pattern);if(!l)return!1;s!=="allow"&&t.push(l)}return!0}function uo(e){if(!M(e))return[];try{return fe(e).filter(t=>t.endsWith(".rules")).sort().map(t=>p(e,t))}catch{return"unreadable"}}function lo(){return process.platform==="win32"?p(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function ao(e){if(!(!g(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 co(e,t){let n;try{n=ve(e)}catch{return!1}if(n.rules===void 0)return!0;if(!g(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(!g(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let i=o.pattern.map(ao);if(i.some(l=>l===void 0))return!1;let s=It(i);if(!s)return!1;t.push(s)}return!0}function fo(e){let t=process.env.CODEX_HOME||p(N(),".codex"),n=[p(t,"rules"),...te(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=Q(lo(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!co(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=uo(i);if(s==="unreadable")return"unreadable";for(let l of s){let u;try{u=Q(l,"utf8")}catch{return"unreadable"}if(!so(u,r))return"unreadable"}}return{matchers:r,complete:!1}}function g(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Le(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function po(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Le).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var mo=512;function go(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(de)]}function ge(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of go(t)){if(n.length>mo)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=po(e);return n=>ge(t,n)}function ho(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(`^${Le(r)}${n?"(?: [\\s\\S]*)?":""}$`);return i=>o.test(i)}var ko={"claude-code":Kr,cursor:qr,"gemini-cli":to,opencode:ro,antigravity:oo,codex:fo},_o=new Set(["codex"]),Ht=/(?:^|[\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 bo(e,t,n){let r=ko[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function yo(e,t,n){return e==="unreadable"||Ht.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Ot(t,!_o.has(n))}var Lt=new Set(["default","acceptEdits","dontAsk"]);function jt(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Lt.has(t.permissionMode??"")}function wo(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return o=>e.host!=="claude-code"?F(o,e.cwd,n):(r??=dt(t.configDir),!F(o,e.cwd,n)&&!r.paths.some(i=>F(o,e.cwd,i))?!1:o.includes("/")||!pt(o,r))}var So=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function xo(e,t,n){return n.host!=="claude-code"||e==="unreadable"||jt(e,n)||!Lt.has(n.permissionMode??"")||!So.test(t)||Ht.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var $o=/^(?:\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 Ao(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&$o.test(e.trim())}function Dt(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??me(),i=bo(t.host,t.cwd,o),s=xo(i,e,t),l=s||yo(i,e,t.host)?vt(e,n,wo(t,o)):e;return l!==e&&i!=="unreadable"&&(s?(i.guards??[]).some(u=>u(l)):i.matchers.some(u=>u(l))||(i.allow??[]).some(u=>u(l)&&!u(e)))&&(l=e),r(t.sessionId,l!==e),l===e?null:s?{command:l,allowedBy:s}:jt(i,t)?{command:l}:i!=="unreadable"&&Ao(e,t)&&!(i.allow??[]).some(u=>u(e))&&!(i.trustedAllow??[]).some(u=>u.matches(e))?{command:l,ask:!0}:null}function R(e,t,n,r){let o=Dt(e,t,n,r);return o&&!o.ask?o.command:null}function k(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function re(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function To(e){return k(e,"prompt_id")||k(e,"scratchpad_dir")?!0:re(e.effort)}function Co(e){return k(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(k(e,"model")??"")}var vo=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Eo=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),Oo=new Set(["pre_tool","post_tool"]),Ro=new Set(["before_tool_call","after_tool_call"]),Po=new Set(["runTerminalCommand","run_in_terminal"]),No=[["codex",e=>k(e,"turn_id")!==null],["claude-code",To],["cursor",e=>k(e,"cursor_version")!==null||k(e,"generation_id")!==null||k(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Eo.has(k(e,"hook_event_name")??"")],["gemini-cli",e=>vo.has(k(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>Oo.has(k(e,"hook_event_name")??"")],["antigravity",e=>re(e.toolCall)],["copilot",e=>k(e,"toolName")!==null&&"toolArgs"in e||Po.has(k(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||re(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&&k(e,"event")!==null&&!Ro.has(k(e,"event"))]],Io=new Set(["codex","antigravity"]);function Ho(e){return re(e)?No.filter(([,t])=>t(e)).map(([t])=>t):[]}function Ft(e,t){if(!re(e))return null;let n=Ho(e);return n.length>1?null:n.length===1?n[0]:Co(e)&&Io.has(t)?"claude-code":t==="codex"?null:t}var je=JSON.stringify({permission:"allow"});function Mt(e,t=w("cursor"),n=y){if(e.tool_name!=="Shell")return je;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return je;let i=typeof r.working_directory=="string"?r.working_directory:void 0,s=R(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:i},A()?null:t,n);return s?JSON.stringify({permission:"allow",updated_input:{...r,command:s}}):je}var he="{}";function Ut(e,t=w("gemini-cli"),n=y){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return he;let r=e.tool_input??{};if(r.is_background)return he;let o=r.command;if(typeof o!="string"||!o)return he;let i=typeof e.cwd=="string"?e.cwd:void 0,s=R(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:i},A()?null:t,n);return s?JSON.stringify({hookSpecificOutput:{tool_input:{command:s}}}):he}function z(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}var nu=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function J(e,t,n="unknown",r=w(t),o=y){return e?R(e,{host:t,sessionId:n},A()?null:r,o):null}var Lo=new Set(["bash","file_system.bash"]),De=JSON.stringify({decision:"allow"});function zt(e,t=(n,r)=>J(n,"vibe",r)){if(!z(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!Lo.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 Jt(e,t=(n,r)=>J(n,"antigravity",r)){if(!z(e)||!z(e.toolCall)||e.toolCall.name!=="run_command")return De;let n=e.toolCall.args;if(!z(n)||typeof n.CommandLine!="string"||!n.CommandLine)return De;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):De}var v="{}",jo=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),Do=["run_in_background","is_background","isBackground"];function ke(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Fo(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function Mo(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(!ke(t)||Do.some(s=>t[s]===!0))return null;let i=t.command;return typeof i!="string"||!i?null:R(i,{host:e,sessionId:Fo(n),cwd:Mo(n,t)},A()?null:r,o)}function W(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function Uo(e){if(ke(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return ke(t)?t:null}catch{return null}}function zo(e,t,n){if(typeof e.tool_name=="string"){if(!jo.has(e.tool_name))return v;let i=e.tool_input,s=_e("copilot",i,e,t,n);return s?W(i,s):v}if(e.toolName!=="bash")return v;let r=Uo(e.toolArgs),o=_e("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):v}function B(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return v;let s=r.tool_input,l=_e(e,s,r,o,i);return l?n(s,l):v}}var Jo=new Set(["run_terminal_command","Bash","bash"]);function Bo(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!Jo.has(r))return v;let o=e.toolInput??e.tool_input,i=_e("grok",o,e,t,n);return i?W(o,i):v}var Wo={copilot:zo,droid:B("droid","Execute",W),trae:B("trae","RunCommand",W),"qwen-code":B("qwen-code","run_shell_command",W),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",W),grok:Bo};function Bt(e,t,n=w(e),r=y){return ke(t)?Wo[e](t,n,r):v}function G(e){return A()?null:w(e)}function Go(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"?"":Ie(t,e,G(e),r,n.claudeDirs??me(),n.pathEnv??process.env.PATH,n.launchArgs??He)??"";case"cursor":return Mt(t,G(e),r);case"gemini-cli":return Ut(t,G(e),r);case"vibe":return zt(t,(o,i)=>J(o,"vibe",i,G(e),r));case"antigravity":return Jt(t,(o,i)=>J(o,"antigravity",i,G(e),r));default:return Bt(e,t,G(e),r)}}function U(e,t,n={}){let r=Ft(e,t);return r?Go(r,e,n):n.fallback??""}function Zo(e){let t;try{t=JSON.parse(e)}catch{return""}return U(t,"claude-code")}async function Vo(){let e=await L(),t=e?Zo(e):"";t&&process.stdout.write(t)}var Ko=process.argv[1]??"";We(Ko,import.meta.url,"pre-tool-use")&&Vo().catch(e=>{process.stderr.write(`tkr pre-tool-use: ${e.message}
|
|
18
|
+
`),process.exit(0)});export{Ie as buildPreToolUseOutput,w as execInvocation,Zo as preToolUseResponse,vt as rewrite,pe as splitTopLevel};
|
|
18
19
|
/*! Bundled license information:
|
|
19
20
|
|
|
20
21
|
smol-toml/dist/error.js:
|