@tokmizer/plugin 0.9.69 → 0.9.70
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 -13
- package/dist/bin/tkr-codex-hook.js +79 -75
- package/dist/bin/tkr-copilot-hook.js +13 -13
- package/dist/bin/tkr-crush-hook.js +13 -13
- package/dist/bin/tkr-cursor-hook.js +12 -12
- package/dist/bin/tkr-daemon.js +138 -133
- package/dist/bin/tkr-droid-hook.js +13 -13
- package/dist/bin/tkr-exec +0 -0
- package/dist/bin/tkr-exec.js +88 -83
- package/dist/bin/tkr-gemini-hook.js +12 -12
- package/dist/bin/tkr-grok-hook.js +13 -13
- package/dist/bin/tkr-junie-hook.js +13 -13
- package/dist/bin/tkr-processor.js +107 -102
- package/dist/bin/tkr-qwen-hook.js +13 -13
- package/dist/bin/tkr-shim.js +88 -83
- package/dist/bin/tkr-trae-hook.js +13 -13
- package/dist/bin/tkr-zcode-hook.js +13 -13
- package/dist/bin/tkr.js +266 -264
- package/dist/hooks-host/post-tool-use.js +100 -95
- package/dist/hooks-host/pre-tool-use.js +13 -13
- package/dist/hooks-host/reducer-stop.js +1 -1
- package/dist/hooks-host/session-recap.js +1 -1
- package/dist/index.js +98 -94
- 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,22 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
function
|
|
4
|
-
`)}function
|
|
5
|
-
`).filter(
|
|
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{basename as Kt}from"node:path";var qt={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Yt={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 se(e){let t=Kt(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(qt))if(r===t)return[n];for(let[n,r]of Object.entries(Yt))if(r===t)return["hook",n];return null}import{realpathSync as Ge}from"node:fs";import{delimiter as Xt,join as j}from"node:path";import Qt from"node:os";function V(){return!1}function Ze(e,t){try{return Ge(e)===Ge(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"?";":Xt)){if(!o||o.includes("node_modules"))continue;let i=j(o,r);if(Ze(i,n))return i}if(t!=="win32"){let o=Qt.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(Ze(i,n))return i}return n}import{accessSync as sn,chmodSync as un,constants as ln,existsSync as ue,mkdirSync as an,readdirSync as cn,readFileSync as fn,realpathSync as Xe,renameSync as dn,unlinkSync as pn,writeFileSync as mn}from"node:fs";import{basename as xe,dirname as O,join as C,sep as D}from"node:path";import gn from"node:os";import en from"node:os";import{join as tn}from"node:path";function S(){return process.env.TOKMIZER_HOME||tn(en.homedir(),".tokmizer")}import{rmSync as nn,statSync as rn}from"node:fs";import{join as Ve}from"node:path";function Ke(){return Ve(S(),"shims")}function ye(){return Ve(S(),"fail-open")}var on=24*36e5;function T(e=Date.now()){try{if(e-rn(ye()).mtimeMs<on)return!0;nn(ye(),{force:!0})}catch{}return!1}function qe(){return`[ -f ${N(ye())} ]`}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 hn(){return C(S(),"bin","tkr-shim-launch")}function kn(){return C(S(),"bin","tkr-run")}function Qe(){return C(process.env.CLAUDE_CONFIG_DIR||C(gn.homedir(),".claude"),"plugins","cache","tokmizer","tokmizer")}function _n(e){let t=O(O(O(e)));return tt.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=C(t[1],"opt",t[2],t[3]);try{return Xe(n)===Xe(e)?n:e}catch{return e}}function bn(e=process.execPath){return $e(e)?"":Ae(e)}function wn(e,t=V()){if(t&&se(e)){let o=we();return{single:$e(o)?"":Ae(o),js:"",cache:Qe(),node:""}}let n=bn(),r=_n(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:$e(e)?"":Ae(e),cache:Qe(),node:n}}function yn(e){try{return sn(e,ln.X_OK),!0}catch{return!1}}function Sn(e){let t=null,n=-1,r;try{r=cn(e)}catch{return null}for(let o of r){if(!tt.test(o))continue;let i=C(e,o);if(!ue(C(i,"dist","bin","tkr-shim.js"))||!ue(C(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 Se(e){return e.single&&yn(e.single)||e.js&&ue(e.js)&&(xe(e.js)!=="tkr-shim.js"||ue(C(O(e.js),K)))?!0:e.cache!==""&&Sn(e.cache)!==null}function xn(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 $n(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',...xn("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(`
|
|
4
|
+
`)}function nt(e){let t=kn(),n=wn(C(O(e),"tkr-shim.js")),r=Tn(t);if(r&&r.format===et&&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 an(O(t),{recursive:!0,mode:448}),mn(o,$n(n),{mode:493}),un(o,493),dn(o,t),t}catch{try{pn(o)}catch{}return null}}function An(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 Tn(e=hn()){try{return An(fn(e,"utf8"))}catch{return null}}function Cn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function Te(e){return JSON.parse(Cn(e))}function P(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}import{appendFileSync as Nn,chmodSync as Pn,mkdirSync as In,existsSync as Hn,readFileSync as Qi,rmSync as es}from"node:fs";import{dirname as Ln,join as jn}from"node:path";import{readFileSync as En,renameSync as vn,statSync as On,writeFileSync as Rn}from"node:fs";function rt(e,t,n){try{if(On(e).size<=t)return;let r=En(e,"utf8").split(`
|
|
5
|
+
`).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}`;Rn(s,o.length?`${o.join(`
|
|
6
6
|
`)}
|
|
7
|
-
`:"",{mode:384}),
|
|
8
|
-
`,{mode:384}),
|
|
7
|
+
`:"",{mode:384}),vn(s,e)}catch{}}var Dn="usage.jsonl";var ot=2*1024*1024;function Fn(){return jn(S(),Dn)}function w(e,t,n=Fn()){try{let r=Ln(n);Hn(r)||In(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}}
|
|
8
|
+
`,{mode:384}),Pn(n,384),rt(n,ot,ot/2)}catch{}}import{spawnSync as Ar}from"node:child_process";import{existsSync as M,readFileSync as ee,readdirSync as pe}from"node:fs";import{homedir as I}from"node:os";import{fileURLToPath as Tr}from"node:url";import{dirname as Tt,join as p,resolve as Cr}from"node:path";function Mn(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function zn(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]=
|
|
10
|
+
`))}return o}var f=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=Mn(n.toml,n.ptr),i=zn(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
|
|
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),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 Ln=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,V=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(Ln);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 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?it(e):ot(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?jn(e,r,t):e.s.charCodeAt(e.p+2)===58?Dn(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):rt(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("_","")),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 jn(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 K(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 K(e,s,1,o,r,"[+00:00]")}if(t===43||t===45){let s=e.s.slice(r,e.p+=6);return K(e,s,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return K(e,i,2,o,r)}function Dn(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 K(e,o,4,!1,r)}function K(e,t,n,r,o,i){if(e.ld){let s=new V(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 Fn(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;Fn(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 ot(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=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),x(e,!0,!0);let c=q(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 it(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(q(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 st(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 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 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++,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=le(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?(u=d[2],l=d[1]):(ut(n,d,i),s=!0)}else{i=n.p;let a=le(n),c=st(n,a,l,u,0);!c&&!s&&ut(n,c,i),x(n,!0,!0);let d=q(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 ls=!!"".isWellFormed;import{execFileSync as sr}from"node:child_process";import{mkdirSync as ur,readFileSync as dt,renameSync as lr,statSync as ar,writeFileSync as cr}from"node:fs";import{join as pt}from"node:path";import{closeSync as Mn,openSync as Un,readSync as zn,readdirSync as Jn,readFileSync as Bn,statSync as at}from"node:fs";import{homedir as Wn}from"node:os";import{isAbsolute as Gn,join as ae,resolve as Zn}from"node:path";var Vn=/^[A-Za-z0-9._+@%:,/-]+$/,Kn=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),qn=32,Yn=4*1024*1024;function Oe(e){let t;try{t=Un(e,"r");let n=Buffer.alloc(4),r=zn(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&&Mn(t)}}function Y(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&&Kn.has(r)}catch{return!1}}function Xn(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(!Vn.test(e))return!1;let o=r==="win32";if(e.includes("/"))return Y(Zn(t??process.cwd(),e),r);if(!n)return!1;let i=o?Xn(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!Gn(s))){for(let l of i)if(Y(ae(s,l),r))return!0}return!1}var Qn=/^eval \$'([^\s'()=]+) \(\) /,er=/^([^\s'"()=]+) \(\) \{$/,tr=/^alias -- ([^\s=]+)=(.*)$/,nr=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,rr=/^export PATH=(.*)$/,or=/^(?:--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 ir(e,t){let n="";for(let r of e.split(`
|
|
14
|
-
`)){let o=
|
|
15
|
-
`,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?F(r[1]??"",void 0,t):
|
|
16
|
-
`||
|
|
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 le(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 Un=/^(\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(Un);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 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 Ee(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?ut(e):st(e);return e.d++,o}return r===34||r===39?le(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?ae(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?Jn(e,r,t):e.s.charCodeAt(e.p+2)===58?Wn(e,r,t):ae(e,e.p,r,0,t)}function ae(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||Ee(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 b(i)||f.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!Ee(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)||(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 l=e.s.slice(t,e.p);return u&&(l=l.replaceAll("_","")),s>1?parseFloat(l):it(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),!Ee(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 Jn(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 ae(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 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(;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 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 Wn(e,t,n){let r=e.p;if(!b(t)||!b(e.s.charCodeAt(++e.p)))return ae(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 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 Bn(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;Bn(e)}}function ce(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(le(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(x(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let i,s=n,u=!1,l=e.p,a=ce(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),x(e,!0,!0);let c=X(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 ut(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(X(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 lt(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 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,u=r,l=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=ce(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?(l=d[2],u=d[1]):(at(n,d,i),s=!0)}else{i=n.p;let a=ce(n),c=lt(n,a,u,l,0);!c&&!s&&at(n,c,i),x(n,!0,!0);let d=X(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 Ts=!!"".isWellFormed;import{execFileSync as dr}from"node:child_process";import{mkdirSync as pr,readFileSync as mt,renameSync as mr,statSync as gr,writeFileSync as hr}from"node:fs";import{join as gt}from"node:path";import{closeSync as Gn,openSync as Zn,readSync as Vn,readdirSync as Kn,readFileSync as qn,statSync as ft}from"node:fs";import{homedir as Yn}from"node:os";import{isAbsolute as Xn,join as fe,resolve as Qn}from"node:path";var er=/^[A-Za-z0-9._+@%:,/-]+$/,tr=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),nr=32,rr=4*1024*1024;function Re(e){let t;try{t=Zn(e,"r");let n=Buffer.alloc(4),r=Vn(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&&Gn(t)}}function Q(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=Re(e);return r==="#!"||r!==null&&tr.has(r)}catch{return!1}}function or(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(!er.test(e))return!1;let o=r==="win32";if(e.includes("/"))return Q(Qn(t??process.cwd(),e),r);if(!n)return!1;let i=o?or(e):[e];for(let s of n.split(o?";":":"))if(!(!s||!Xn(s))){for(let u of i)if(Q(fe(s,u),r))return!0}return!1}var ir=/^eval \$'([^\s'()=]+) \(\) /,sr=/^([^\s'"()=]+) \(\) \{$/,ur=/^alias -- ([^\s=]+)=(.*)$/,lr=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,ar=/^export PATH=(.*)$/,cr=/^(?:--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 fr(e,t){let n="";for(let r of e.split(`
|
|
14
|
+
`)){let o=ar.exec(r);if(o&&n!=="# Functions"){let i=ct(o[1].trim());/[$`\\]/.test(i)||t.paths.push(i);continue}if(r.startsWith("# ")&&(n!=="# Functions"||lr.test(r))){n=r;continue}if(n==="# Functions"){let i=ir.exec(r)??sr.exec(r);i&&t.functions.add(i[1])}else if(n==="# Aliases"){let i=ur.exec(r);i&&t.aliases.set(i[1],ct(i[2].trim()))}}}function Oe(e){return e?.code==="ENOENT"}function dt(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=fe(e||fe(Yn(),".claude"),"shell-snapshots"),r=[];try{for(let o of Kn(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let i=fe(n,o);try{let s=ft(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,nr);for(let o of r)try{if(o.size>rr)throw new Error("snapshot too large");fr(qn(o.path,"utf8"),t)}catch(i){Oe(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=>cr.test(o))}var kr="exec-probe.json",_r=6e4;function br(){return gt(S(),kr)}function wr(e){try{let t=Te(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 yr(e,t){try{pr(gt(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;hr(n,JSON.stringify(t),{mode:384}),mr(n,e)}catch{}}function Sr(e){try{return dr(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function xr(e,t){try{let r=mt(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):Q(o)}catch{return!1}}function $r(e,t,n){try{let r=gr(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=br(),o=Date.now()){let i=t!=="win32"&&Re(e)==="#!",s=$r(e,i,n),u=wr(r);if(u?.key===s&&(u.ok||o-u.at<_r))return u.ok;let l=Q(e,t)&&(i?xr(e,n):Sr(e));return yr(r,{key:s,ok:l,at:o,skipped:(u?.skipped??0)+(l?0:1)}),l}var Er=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"]),vr=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)",Or=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)`),Rr=/(?:^|\s)--watch(?:\s|=|$)/;function Nr(e){return Or.test(e)&&!Rr.test(e)}var Pr=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Ir=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Ct=3;function Et(e){let t=Pr.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&&Ir.test(u)?null:{script:u,start:o,end:i,quote:r}}var Hr=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Lr(e){return Le(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ot(n.text);return r!==""&&!Hr.has(r)&&!He.test(r)}).length>1}function jr(e,t,n,r,o){if(n>=Ct)return null;let i=Et(e);if(!i)return null;let{script:s,start:u,end:l,quote:a}=i,c=[],d=Rt(s,t,n+1,r,A=>c.push(A));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=Lr(s);if(o)for(let A of k?[e,...c]:c)o(A);return k?`${t} ${m}`:m}var _t=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Dr=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,Fr=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),bt=new Set(["npm","pnpm","yarn","bun"]),wt=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,Mr=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),yt=new Set(["npx","pnpx","bunx"]),zr=new Set(["nodemon","top","htop","btop","watch"]),Ur=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),Jr=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,St=/(?:^|\s)-w(?:\s|$)/;function Wr(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=z(t[0]??"");if(yt.has(n)||bt.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(yt.has(n)?1:2).filter((s,u,l)=>!(s.startsWith("-")&&l.slice(0,u).every(a=>a.startsWith("-")))),n=z(t[0]??"");else if(bt.has(n)){let s=t.slice(1).filter((l,a,c)=>!l.startsWith("-")&&!Mr.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&&wt.test(u)}let r=t.slice(1),o=r.join(" "),i=r.find(s=>!s.startsWith("-"));if(zr.has(n)||Jr.test(o)||Ur.has(n)&&St.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&&wt.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")&&St.test(o)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(o);default:return!1}}function Br(e,t){let n=z(t);return n==="tail"?Dr.test(e):n==="journalctl"?_t.test(e):n==="stern"||Fr.has(n)&&/\blogs?\b/.test(e)&&_t.test(e)?!0:Wr(e.split(/\s+/))}var He=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Gr=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Zr=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function z(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function vt(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=vt(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=vt(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 Ot(e){return e.trim().split(/\s+/)[0]??""}function $(e,t=process.platform){try{let n=Tt(Tr(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(M(l))return Ne(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let i=p(n,"..","bin","tkr-exec"),s=!r&&M(i);if(s&&!Ne(i,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=nt(p(n,"..","bin","tkr-exec.js"));if(l&&(s||M(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 M(u)?`${o}node '${u.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Vr(e,t="tkr-exec",n=()=>!0,r){return Rt(e,t,0,n,r)}var Kr=new Set(["{","for","while","until","if","case","select"]),qr=new Set(["}","done","fi","esac"]),Yr=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function Xr(e,t){let n=e[t+1];return Pe(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function Qr(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&&Xr(e,r))for(let u=s;u<=r;u++)t.add(u);continue}if(Kr.has(i)&&n.push(r),!Yr.has(i))break}}return t}function Rt(e,t,n,r,o){if(e.includes("<<")||Zr.test(e))return e;let i=Le(e),s=Qr(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=Ot(c),g=i[l+1],m=g?.kind==="sep"&&(g.text==="|"||g.text==="|&"),k=g?.kind==="sep"&&g.text==="&",A=!m&&!k&&!Pe(a.text)&&!a.text.includes("<(")&&!a.text.includes(">(")?jr(c,t,n,r,o):null;if(A!==null){u.push(`${a.text.match(/^\s*/)?.[0]??""}${A}${a.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Er.has(d)||vr.has(d)||(ht.has(d)||ht.has(z(d)))&&!Nr(c)||He.test(d)||d.startsWith("(")||d.startsWith("#")||d.startsWith("<")||d.startsWith(">")||Gr.test(c)||Br(c,d)||d.endsWith(")")||m||k||Pe(a.text)||a.text.includes("<(")||a.text.includes(">(")||d==="node"&&c.includes("tkr-exec.js")||!r(d)){u.push(a.text);continue}let y=a.text.match(/^\s*/)?.[0]??"",G=a.text.match(/\s*$/)?.[0]??"";o?.(c),u.push(`${y}${t} ${c}${G}`)}return u.join("")}var eo=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),to=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"]),no=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),ro={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/},de=["test","run test","run build","run lint","run typecheck"],oo={npm:new Set(de),pnpm:new Set([...de,"build","lint","typecheck"]),yarn:new Set([...de,"build","lint","typecheck"]),bun:new Set(de),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"])},io=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Nt(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<Ct?Et(r.text.trim()):null;if(o){if(!Nt(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=z(i[0]);if(s!==i[0])return!1;let u=ro[s];if(u&&i.slice(1).some(a=>u.test(a)))return!1;if((s==="git"?no.has(i[1]??""):to.has(s))||t&&io.has(s))continue;let l=t?oo[s]:void 0;if(!(l&&(l.has(i[1]??"")||i[1]==="run"&&l.has(`run ${i[2]??""}`))))return!1}return!0}function Pt(e,t,n=$(t),r=w,o=me(),i=process.env.PATH,s=je){if(!h(e)||e.tool_name!=="Bash"||t==="claude-code"&&uo(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(A=>!eo.has(A)))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=zt(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 so=/(?:^|\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=Ar("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 uo(e){return e===null||so.test(e)}function lo(e,t){if(!M(e))return"missing";try{let n=ee(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?It(n):n)}catch{return"unreadable"}}function It(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 ee(e){let t=[],n=wr(e);for(;;){t.push(n);let r=wt(n);if(r===n)return t;n=r}}function Gr(){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 te(e,t,n,r){let o=[];for(let i of e){let s=Wr(i,t);if(s!=="missing"&&(s==="unreadable"||!g(s)||!n(s,o)))return"unreadable"}return{matchers:o,complete:r}}function Q(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function pe(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Zr(e,t){let n=w=>[p(w,"settings.json"),p(w,"settings.local.json")],r=w=>n(p(w,".claude")),o=p(I(),".claude"),i=t.configDir||o,s=[[Gr(),"managed"],[[p(i,"settings.json")],"loaded"],[[p(i,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[ee(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",_=(w,be)=>{let E=w.permissions;if(d==="managed"&&(w.allowManagedPermissionRulesOnly===!0||g(E)&&E.allowManagedPermissionRulesOnly===!0)&&(c=!0),E===void 0)return!0;if(!g(E))return!1;for(let Me of["deny","ask","allow"]){let Ue=Q(E[Me]);if(!Ue)return!1;for(let ze of Ue){let L=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(ze);if(L)if(Me!=="allow")be.push(H((L[1]??"*").replace(/:\*$/," *")));else if(L[1]===void 0||L[1].trim()==="*")a[d]=!0;else{l.push(H(L[1].replace(/:\*$/," *")));let Je=mo(L[1]);Je&&u[d].push({rule:ze.trim(),matches:Je})}}}return!0},m=[];for(let[w,be]of s){d=be;let E=te(w,!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 Vr(e){let t=[p(I(),".cursor","cli-config.json"),...ee(e).map(n=>p(n,".cursor","cli.json"))];return te(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!g(o))return!1;let i=Q(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(H(a===-1?`${u} *`:`${u.slice(0,a)} ${u.slice(a+1)}`))}return!0},!1)}function Kr(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Ot=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function qr(e,t){let n=e.tools;if(n!==void 0&&!g(n))return!1;let r=[Q(e.excludeTools),Q(g(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let i of o){let s=Ot.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 Yr(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 Xr(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=Yr(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==="*"||Ot.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(H(`${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}))||me(a,c))}}return!0}function bt(e){try{return fe(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function Qr(e){let t=Kr(),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"),...ee(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=te(n,!0,qr,!1);if(r==="unreadable")return r;for(let o of[...bt(p(I(),".gemini","policies")),...bt(p(t,"policies"))]){let i;try{i=X(o,"utf8")}catch{return"unreadable"}if(!Xr(i,r.matchers))return"unreadable"}return r}function Ne(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(H(o.replace(/\?/g,"*")))}}return!0}function yt(e,t){if(e.permissions!==void 0||!Ne(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||!Ne(o.permission,t)))return!1}}return!0}function eo(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(X(p(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function to(e){let t=p(process.env.XDG_CONFIG_HOME||p(I(),".config"),"opencode"),n=ee(e),r=[t,...n.map(l=>p(l,".opencode"))];if(eo(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=te(i,!0,yt,!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(Et(l))}catch{return"unreadable"}if(!(l===process.env.OPENCODE_PERMISSION?Ne(u,s.matchers):g(u)&&yt(u,s.matchers)))return"unreadable"}return s}function no(){return te([p(I(),".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=Q(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(H(l==="*"?"*":`${l} *`));continue}let u;try{u=new RegExp(l.slice(6))}catch{return!1}t.push(a=>me(u,a))}}return!0},!1)}function ro(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 Rt(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=Rt(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 Nt(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=>me(n,r)}function oo(e,t){let n=ro(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]=Rt(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=Nt(i.pattern);if(!l)return!1;s!=="allow"&&t.push(l)}return!0}function io(e){if(!M(e))return[];try{return fe(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 uo(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 lo(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(uo);if(i.some(l=>l===void 0))return!1;let s=Nt(i);if(!s)return!1;t.push(s)}return!0}function ao(e){let t=process.env.CODEX_HOME||p(I(),".codex"),n=[p(t,"rules"),...ee(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=X(so(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!lo(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=io(i);if(s==="unreadable")return"unreadable";for(let l of s){let u;try{u=X(l,"utf8")}catch{return"unreadable"}if(!oo(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 co(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 fo=512;function po(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(de)]}function me(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of po(t)){if(n.length>fo)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=co(e);return n=>me(t,n)}function mo(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 go={"claude-code":Zr,cursor:Vr,"gemini-cli":Qr,opencode:to,antigravity:no,codex:ao},ho=new Set(["codex"]),Pt=/(?:^|[\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 ko(e,t,n){let r=go[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function _o(e,t,n){return e==="unreadable"||Pt.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Ct(t,!ho.has(n))}var It=new Set(["default","acceptEdits","dontAsk"]);function Ht(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&It.has(t.permissionMode??"")}function bo(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??=ct(t.configDir),!F(o,e.cwd,n)&&!r.paths.some(i=>F(o,e.cwd,i))?!1:o.includes("/")||!ft(o,r))}var yo=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function wo(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Ht(e,n)||!It.has(n.permissionMode??"")||!yo.test(t)||Pt.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var So=/^(?:\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 xo(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&So.test(e.trim())}function Lt(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??pe(),i=ko(t.host,t.cwd,o),s=wo(i,e,t),l=s||_o(i,e,t.host)?Lr(e,n,bo(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}:Ht(i,t)?{command:l}:i!=="unreadable"&&xo(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=Lt(e,t,n,r);return o&&!o.ask?o.command:null}function U(e,t,n="unknown",r=$(t),o=y){return e?R(e,{host:t,sessionId:n},A()?null:r,o):null}function k(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function ne(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function $o(e){return k(e,"prompt_id")||k(e,"scratchpad_dir")?!0:ne(e.effort)}function Ao(e){return k(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(k(e,"model")??"")}var To=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Co=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),vo=new Set(["pre_tool","post_tool"]),Eo=new Set(["before_tool_call","after_tool_call"]),Oo=new Set(["runTerminalCommand","run_in_terminal"]),Ro=[["codex",e=>k(e,"turn_id")!==null],["claude-code",$o],["cursor",e=>k(e,"cursor_version")!==null||k(e,"generation_id")!==null||k(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Co.has(k(e,"hook_event_name")??"")],["gemini-cli",e=>To.has(k(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>vo.has(k(e,"hook_event_name")??"")],["antigravity",e=>ne(e.toolCall)],["copilot",e=>k(e,"toolName")!==null&&"toolArgs"in e||Oo.has(k(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||ne(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&&!Eo.has(k(e,"event"))]],No=new Set(["codex","antigravity"]);function Po(e){return ne(e)?Ro.filter(([,t])=>t(e)).map(([t])=>t):[]}function jt(e,t){if(!ne(e))return null;let n=Po(e);return n.length>1?null:n.length===1?n[0]:Ao(e)&&No.has(t)?"claude-code":t==="codex"?null:t}var je=JSON.stringify({permission:"allow"});function Dt(e,t=$("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 ge="{}";function Ft(e,t=$("gemini-cli"),n=y){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return ge;let r=e.tool_input??{};if(r.is_background)return ge;let o=r.command;if(typeof o!="string"||!o)return ge;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}}}):ge}var v="{}",Io=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),Ho=["run_in_background","is_background","isBackground"];function he(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Lo(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function jo(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function ke(e,t,n,r,o){if(!he(t)||Ho.some(s=>t[s]===!0))return null;let i=t.command;return typeof i!="string"||!i?null:R(i,{host:e,sessionId:Lo(n),cwd:jo(n,t)},A()?null:r,o)}function J(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function Do(e){if(he(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return he(t)?t:null}catch{return null}}function Fo(e,t,n){if(typeof e.tool_name=="string"){if(!Io.has(e.tool_name))return v;let i=e.tool_input,s=ke("copilot",i,e,t,n);return s?J(i,s):v}if(e.toolName!=="bash")return v;let r=Do(e.toolArgs),o=ke("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):v}function z(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return v;let s=r.tool_input,l=ke(e,s,r,o,i);return l?n(s,l):v}}var Mo=new Set(["run_terminal_command","Bash","bash"]);function Uo(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!Mo.has(r))return v;let o=e.toolInput??e.tool_input,i=ke("grok",o,e,t,n);return i?J(o,i):v}var zo={copilot:Fo,droid:z("droid","Execute",J),trae:z("trae","RunCommand",J),"qwen-code":z("qwen-code","run_shell_command",J),crush:z("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:z("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:z("zcode","Bash",J),grok:Uo};function Mt(e,t,n=$(e),r=y){return he(t)?zo[e](t,n,r):v}function B(e){return A()?null:$(e)}function Jo(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"?"":vt(t,e,B(e),r,n.claudeDirs??pe(),n.pathEnv??process.env.PATH,n.launchArgs??He)??"";case"cursor":return Dt(t,B(e),r);case"gemini-cli":return Ft(t,B(e),r);case"vibe":return De(t,(o,i)=>U(o,"vibe",i,B(e),r));case"antigravity":return Fe(t,(o,i)=>U(o,"antigravity",i,B(e),r));default:return Mt(e,t,B(e),r)}}function re(e,t,n={}){let r=jt(e,t);return r?Jo(r,e,n):n.fallback??""}var Bo=new Set(["bash","file_system.bash"]),_e=JSON.stringify({decision:"allow"});function De(e,t=(n,r)=>U(n,"vibe",r)){if(!P(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!Bo.has(e.tool_name))return"";let n=e.tool_input;if(!P(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 Fe(e,t=(n,r)=>U(n,"antigravity",r)){if(!P(e)||!P(e.toolCall)||e.toolCall.name!=="run_command")return _e;let n=e.toolCall.args;if(!P(n)||typeof n.CommandLine!="string"||!n.CommandLine)return _e;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):_e}var Ut={vibe:{build:e=>De(e),fallback:""},antigravity:{build:e=>Fe(e),fallback:_e}};function zt(e){return Ut[e??""]?.fallback??""}function Wo(e,t){let n=Ut[e??""];if(!n)return"";let r;try{r=JSON.parse(t.replace(/^/,""))}catch{return n.fallback}return P(r)?re(r,e,{fallback:n.fallback}):n.build(r)}async function Jt(e){process.stdout.write(Wo(e,await W()))}Jt(process.argv[2]).catch(e=>{process.stderr.write(`tkr-agent-hook: ${e.message}
|
|
19
|
-
`),process.stdout.write(
|
|
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=Cr(e);for(;;){t.push(n);let r=Tt(n);if(r===n)return t;n=r}}function ao(){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 pe(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=lo(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 me(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function co(e,t){let n=y=>[p(y,"settings.json"),p(y,"settings.local.json")],r=y=>n(p(y,".claude")),o=p(I(),".claude"),i=t.configDir||o,s=[[ao(),"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=(y,G)=>{let v=y.permissions;if(d==="managed"&&(y.allowManagedPermissionRulesOnly===!0||h(v)&&v.allowManagedPermissionRulesOnly===!0)&&(c=!0),v===void 0)return!0;if(!h(v))return!1;for(let Ue of["deny","ask","allow"]){let Je=te(v[Ue]);if(!Je)return!1;for(let We of Je){let L=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(We);if(L)if(Ue!=="allow")G.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 Be=Ro(L[1]);Be&&l[d].push({rule:We.trim(),matches:Be})}}}return!0},m=[];for(let[y,G]of s){d=G;let v=re(y,!1,g,!0);if(v==="unreadable")return"unreadable";m.push(...v.matchers)}let k=a.managed||(a.loaded||a.loadedLocal)&&!c,A=[...l.managed,...c?[]:l.loaded];return{matchers:[...m,...k?[]:u],complete:!0,allow:u,allowsEverything:k,guards:m,trustedAllow:A}}function fo(e){let t=[p(I(),".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(H(a===-1?`${l} *`:`${l.slice(0,a)} ${l.slice(a+1)}`))}return!0},!1)}function po(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Ht=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function mo(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=Ht.exec(i);s&&t.push(H(s[1]===void 0?"*":`${s[1]}*`))}}return!0}function xt(e){try{return JSON.parse(e)}catch{return null}}function go(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]??xt(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?xt(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function ho(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=go(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==="*"||Ht.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}))||ge(a,c))}}return!0}function $t(e){try{return pe(e).filter(t=>t.endsWith(".toml")).map(t=>p(e,t))}catch{return[]}}function ko(e){let t=po(),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"),...ne(e).map(o=>p(o,".gemini","settings.json"))].filter(o=>!!o),r=re(n,!0,mo,!1);if(r==="unreadable")return r;for(let o of[...$t(p(I(),".gemini","policies")),...$t(p(t,"policies"))]){let i;try{i=ee(o,"utf8")}catch{return"unreadable"}if(!ho(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 At(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 _o(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=pe(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 bo(e){let t=p(process.env.XDG_CONFIG_HOME||p(I(),".config"),"opencode"),n=ne(e),r=[t,...n.map(u=>p(u,".opencode"))];if(_o(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,At,!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(It(u))}catch{return"unreadable"}if(!(u===process.env.OPENCODE_PERMISSION?Ie(l,s.matchers):h(l)&&At(l,s.matchers)))return"unreadable"}return s}function wo(){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=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(H(u==="*"?"*":`${u} *`));continue}let l;try{l=new RegExp(u.slice(6))}catch{return!1}t.push(a=>ge(l,a))}}return!0},!1)}function yo(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 Lt(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=Lt(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 jt(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=>ge(n,r)}function So(e,t){let n=yo(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]=Lt(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=jt(i.pattern);if(!u)return!1;s!=="allow"&&t.push(u)}return!0}function xo(e){if(!M(e))return[];try{return pe(e).filter(t=>t.endsWith(".rules")).sort().map(t=>p(e,t))}catch{return"unreadable"}}function $o(){return process.platform==="win32"?p(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Ao(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 To(e,t){let n;try{n=ve(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(Ao);if(i.some(u=>u===void 0))return!1;let s=jt(i);if(!s)return!1;t.push(s)}return!0}function Co(e){let t=process.env.CODEX_HOME||p(I(),".codex"),n=[p(t,"rules"),...ne(e).map(i=>p(i,".codex","rules"))],r=[],o=null;try{o=ee($o(),"utf8")}catch(i){let s=i.code;if(s!=="ENOENT"&&s!=="ENOTDIR")return"unreadable"}if(o!==null&&!To(o,r))return"unreadable";for(let i of[...new Set(n)]){let s=xo(i);if(s==="unreadable")return"unreadable";for(let u of s){let l;try{l=ee(u,"utf8")}catch{return"unreadable"}if(!So(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 Eo(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 vo=512;function Oo(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(z)]}function ge(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Oo(t)){if(n.length>vo)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=Eo(e);return n=>ge(t,n)}function Ro(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 No={"claude-code":co,cursor:fo,"gemini-cli":ko,opencode:bo,antigravity:wo,codex:Co},Po=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 Io(e,t,n){let r=No[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Ho(e,t,n){return e==="unreadable"||Dt.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Nt(t,!Po.has(n))}var Ft=new Set(["default","acceptEdits","dontAsk"]);function Mt(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Ft.has(t.permissionMode??"")}function Lo(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 jo=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Do(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Mt(e,n)||!Ft.has(n.permissionMode??"")||!jo.test(t)||Dt.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var Fo=/^(?:\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 Mo(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&Fo.test(e.trim())}function zt(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??me(),i=Io(t.host,t.cwd,o),s=Do(i,e,t),u=s||Ho(i,e,t.host)?Vr(e,n,Lo(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}:Mt(i,t)?{command:u}:i!=="unreadable"&&Mo(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=zt(e,t,n,r);return o&&!o.ask?o.command:null}function U(e,t,n="unknown",r=$(t),o=w){return e?R(e,{host:t,sessionId:n},T()?null:r,o):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 zo(e){return _(e,"prompt_id")||_(e,"scratchpad_dir")?!0:oe(e.effort)}function Uo(e){return _(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(_(e,"model")??"")}var Jo=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Wo=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),Bo=new Set(["pre_tool","post_tool"]),Go=new Set(["before_tool_call","after_tool_call"]),Zo=new Set(["runTerminalCommand","run_in_terminal"]),Vo=[["codex",e=>_(e,"turn_id")!==null],["claude-code",zo],["cursor",e=>_(e,"cursor_version")!==null||_(e,"generation_id")!==null||_(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Wo.has(_(e,"hook_event_name")??"")],["gemini-cli",e=>Jo.has(_(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>Bo.has(_(e,"hook_event_name")??"")],["antigravity",e=>oe(e.toolCall)],["copilot",e=>_(e,"toolName")!==null&&"toolArgs"in e||Zo.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&&!Go.has(_(e,"event"))]],Ko=new Set(["codex","antigravity"]);function qo(e){return oe(e)?Vo.filter(([,t])=>t(e)).map(([t])=>t):[]}function Ut(e,t){if(!oe(e))return null;let n=qo(e);return n.length>1?null:n.length===1?n[0]:Uo(e)&&Ko.has(t)?"claude-code":t==="codex"?null:t}var Fe=JSON.stringify({permission:"allow"});function Jt(e,t=$("cursor"),n=w){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 he="{}";function Wt(e,t=$("gemini-cli"),n=w){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},T()?null:t,n);return s?JSON.stringify({hookSpecificOutput:{tool_input:{command:s}}}):he}var E="{}",Yo=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),Xo=["run_in_background","is_background","isBackground"];function ke(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(!ke(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)},T()?null:r,o)}function W(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function ti(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 ni(e,t,n){if(typeof e.tool_name=="string"){if(!Yo.has(e.tool_name))return E;let i=e.tool_input,s=_e("copilot",i,e,t,n);return s?W(i,s):E}if(e.toolName!=="bash")return E;let r=ti(e.toolArgs),o=_e("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):E}function J(e,t,n){return(r,o,i)=>{if(r.tool_name!==t)return E;let s=r.tool_input,u=_e(e,s,r,o,i);return u?n(s,u):E}}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 E;let o=e.toolInput??e.tool_input,i=_e("grok",o,e,t,n);return i?W(o,i):E}var ii={copilot:ni,droid:J("droid","Execute",W),trae:J("trae","RunCommand",W),"qwen-code":J("qwen-code","run_shell_command",W),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",W),grok:oi};function Bt(e,t,n=$(e),r=w){return ke(t)?ii[e](t,n,r):E}function B(e){return T()?null:$(e)}function si(e,t,n={}){let r=n.recordUsage??w;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Pt(t,e,B(e),r,n.claudeDirs??me(),n.pathEnv??process.env.PATH,n.launchArgs??je)??"";case"cursor":return Jt(t,B(e),r);case"gemini-cli":return Wt(t,B(e),r);case"vibe":return Me(t,(o,i)=>U(o,"vibe",i,B(e),r));case"antigravity":return ze(t,(o,i)=>U(o,"antigravity",i,B(e),r));default:return Bt(e,t,B(e),r)}}function ie(e,t,n={}){let r=Ut(e,t);return r?si(r,e,n):n.fallback??""}var ui=new Set(["bash","file_system.bash"]),be=JSON.stringify({decision:"allow"});function Me(e,t=(n,r)=>U(n,"vibe",r)){if(!P(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!ui.has(e.tool_name))return"";let n=e.tool_input;if(!P(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 ze(e,t=(n,r)=>U(n,"antigravity",r)){if(!P(e)||!P(e.toolCall)||e.toolCall.name!=="run_command")return be;let n=e.toolCall.args;if(!P(n)||typeof n.CommandLine!="string"||!n.CommandLine)return be;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):be}var Gt={vibe:{build:e=>Me(e),fallback:""},antigravity:{build:e=>ze(e),fallback:be}};function Zt(e){return Gt[e??""]?.fallback??""}function li(e,t){let n=Gt[e??""];if(!n)return"";let r;try{r=JSON.parse(t.replace(/^/,""))}catch{return n.fallback}return P(r)?ie(r,e,{fallback:n.fallback}):n.build(r)}async function Vt(e){process.stdout.write(li(e,await Z()))}Vt(process.argv[2]).catch(e=>{process.stderr.write(`tkr-agent-hook: ${e.message}
|
|
19
|
+
`),process.stdout.write(Zt(process.argv[2])),process.exit(0)});
|
|
20
20
|
/*! Bundled license information:
|
|
21
21
|
|
|
22
22
|
smol-toml/dist/error.js:
|