@visa/cli 5.0.0-rc.411 → 5.0.0-rc.412
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/README.md +5 -2
- package/dist/cli.js +6 -6
- package/dist/enrollment-finisher.js +2 -2
- package/dist/mcp-server/index.js +111 -111
- package/dist/tool-call.js +20 -20
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -93,7 +93,7 @@ MCP server and makes one call:
|
|
|
93
93
|
|
|
94
94
|
```sh
|
|
95
95
|
VISA_RUNTIME_CUSTODY_PROFILE=headless visa connect --no-open --wait 0 # once; the owner approves
|
|
96
|
-
visa-tool --skill #
|
|
96
|
+
visa-tool --skill # the Visa skill: recovery after a rebuilt VM, and the rules below
|
|
97
97
|
visa-tool --list # the server's rules and the tools with their inputs (JSON)
|
|
98
98
|
visa-tool status # one call: the tool's answer as JSON, exit 1 on a refusal
|
|
99
99
|
visa-tool pay '{"target":"https://…","request_id":"order-1"}' # no max: a price preview, nothing is paid
|
|
@@ -101,7 +101,10 @@ visa-tool pay '{"target":"https://…","request_id":"order-1"}' # no max: a pr
|
|
|
101
101
|
|
|
102
102
|
On a computer with no keyring, every command needs
|
|
103
103
|
`VISA_RUNTIME_CUSTODY_PROFILE=headless`. The skill reads `visa-tool --list` on
|
|
104
|
-
each use rather than copying it,
|
|
104
|
+
each use rather than copying it, and carries a version: when `--list` reports a
|
|
105
|
+
higher `skill_version`, the app asks its owner for the new text. Muse will not
|
|
106
|
+
save a program's output as a skill, so its owner pastes the same text from the
|
|
107
|
+
Console's Muse message.
|
|
105
108
|
|
|
106
109
|
## MCP tools
|
|
107
110
|
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";var tI=Object.create;var md=Object.defineProperty;var nI=Object.getOwnPropertyDescriptor;var rI=Object.getOwnPropertyNames;var iI=Object.getPrototypeOf,aI=Object.prototype.hasOwnProperty;var Ie=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(i){throw r=[i],i}};var P=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},_t=(e,t)=>{for(var r in t)md(e,r,{get:t[r],enumerable:!0})},oI=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of rI(t))!aI.call(e,n)&&n!==r&&md(e,n,{get:()=>t[n],enumerable:!(i=nI(t,n))||i.enumerable});return e};var Q=(e,t,r)=>(r=e!=null?tI(iI(e)):{},oI(t||!e||!e.__esModule?md(r,"default",{value:e,enumerable:!0}):r,e));var Ps=P((sG,sI)=>{sI.exports={name:"@visa/cli",version:"5.0.0-rc.
|
|
1
|
+
"use strict";var tI=Object.create;var md=Object.defineProperty;var nI=Object.getOwnPropertyDescriptor;var rI=Object.getOwnPropertyNames;var iI=Object.getPrototypeOf,aI=Object.prototype.hasOwnProperty;var Ie=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(i){throw r=[i],i}};var P=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},_t=(e,t)=>{for(var r in t)md(e,r,{get:t[r],enumerable:!0})},oI=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of rI(t))!aI.call(e,n)&&n!==r&&md(e,n,{get:()=>t[n],enumerable:!(i=nI(t,n))||i.enumerable});return e};var Q=(e,t,r)=>(r=e!=null?tI(iI(e)):{},oI(t||!e||!e.__esModule?md(r,"default",{value:e,enumerable:!0}):r,e));var Ps=P((sG,sI)=>{sI.exports={name:"@visa/cli",version:"5.0.0-rc.412",description:"Visa CLI runtime for stable agent identity and separately authorized payment capabilities",bin:{"visa-cli":"./bin/visa-cli.js",visa:"./bin/visa-cli.js","visa-runtime-converge":"./dist/managed-runtime/resolve-and-update.mjs","visa-tool":"./bin/visa-tool.js"},scripts:{"sync:server-json":"node scripts/sync-server-json.mjs","check:server-json":"node scripts/sync-server-json.mjs --check",prebuild:"node scripts/sync-server-json.mjs",build:"pnpm test:types && node esbuild.config.js",prepack:"node scripts/sync-server-json.mjs --check",dev:"tsc --watch",pretest:"pnpm build",start:"node dist/mcp-server/index.js",test:"jest --config jest.config.js","test:types":"tsc -p tsconfig.test.json","pretest:unit":"pnpm test:types","test:unit":"jest --config jest.config.js","pretest:unit:watch":"pnpm test:types","test:unit:watch":"jest --config jest.config.js --watch","pretest:unit:coverage":"pnpm test:types","test:unit:coverage":"jest --config jest.config.js --coverage","test:smoke":"VISA_AUTH_URL=https://auth.visacli.sh jest --config jest.smoke.config.js","test:packed":"node scripts/packed-cli-smoke.mjs","test:e2e":"jest --config jest.e2e.config.js","test:all":"npm run test:unit && npm run test:e2e",prepublishOnly:"npm run build && npm test",lint:"eslint src/**/*.ts",format:'prettier --write "src/**/*.ts"',"format:check":'prettier --check "src/**/*.ts"'},keywords:["visa","checkout","mcp","ai-agent","payments","click-to-pay","usdc","stablecoin"],author:"Visa Crypto Labs",license:"SEE LICENSE IN LICENSE",dependencies:{"@modelcontextprotocol/server":"2.0.0",commander:"^12.1.0",punycode:"^2.3.1"},devDependencies:{"@types/express":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^22.20.5","@typescript-eslint/eslint-plugin":"^8.68.0","@typescript-eslint/parser":"^8.68.0","@visa/financial-core":"workspace:*","@visa/identity":"workspace:*","@visa/contracts":"workspace:*","@visa/observability":"workspace:*","@visa/shared":"workspace:*","@visa/wallet":"workspace:*",esbuild:"^0.28.1",eslint:"^10.0.2",express:"^4.21.0",jest:"^30.3.0",prettier:"^3.9.6","ts-jest":"^29.4.12",typescript:"^5.7.0",viem:"^2.56.0"},engines:{node:">=20.0.0"},mcpName:"io.github.visa-crypto-labs/visa-cli",files:["bin/visa-cli.js","bin/visa-tool.js","dist/","install.ps1","install.sh","server.json","README.md"]}});var $g={};_t($g,{buildUpgradeCommand:()=>vI,buildUpgradePlan:()=>Eg,collectInstallDiagnostics:()=>wg,detectInstalledPackageManager:()=>vg,detectPackageManager:()=>yg,formatInstallConflictWarning:()=>yI,quoteDisplayArg:()=>Sg,resolveUpdateNpmTag:()=>cI});function cI(e){return e.includes("-rc.")?"rc":"latest"}function yg(){let e=process.env.npm_config_user_agent;if(!e)return;let t=e.trim();if(t==="")return;let r=t.split(lI)[0]??"",i=r.indexOf("/"),n=i===-1?r:r.slice(0,i);return uI.includes(n)?n:void 0}function hd(e){if(!e)return;let t=e;try{t=kn.realpathSync(e)}catch{}let r=t.replace(/\\/g,"/").toLowerCase();if(r.includes("/pnpm/")||r.includes("/.pnpm/"))return"pnpm";if(r.includes("/yarn/")||r.includes("/.yarn/"))return"yarn";if(r.includes("/bun/")||r.includes("/.bun/"))return"bun";if(r.includes("/npm/")||r.includes("/node_modules/@visa/cli/"))return"npm"}function vg(e=process.argv[1]){return yg()??hd(process.env.npm_execpath)??hd(process.env.npm_node_execpath)??hd(e)}function pI(e=process.env.PATH??""){let t=[];for(let r of e.split(ct.delimiter))r&&t.push(r);return t}function fI(e=process.env.PATH??""){let t=new Set,r=[];for(let i of pI(e))try{let n=ct.join(i,dI);kn.accessSync(n,kn.constants.X_OK);let a=ct.resolve(n);t.has(a)||(t.add(a),r.push(n))}catch{}return r}function bg(e){try{let t=kn.readFileSync(ct.join(e,"package.json"),"utf-8"),r=JSON.parse(t);if(r.name==="@visa/cli"&&typeof r.version=="string")return r.version}catch{}}function mI(e){let t=ct.resolve(e).split(ct.sep);for(let r=t.length-gd.length;r>=0;r--)if(gd.every((i,n)=>t[r+n]===i)){let i=t.slice(0,r+gd.length).join(ct.sep)||ct.sep;if(bg(i))return i}}function gI(e){if(!e)return;let t=ct.normalize(e),r=t.split(ct.sep),i=a=>a.every((s,c)=>r[r.length-a.length+c]===s)?r.slice(0,-a.length).join(ct.sep)||ct.parse(t).root:void 0,n=i(["lib","node_modules","@visa","cli"]);if(n)return n;if(process.platform==="win32")return i(["node_modules","@visa","cli"])}function hI(e,t){let r=ct.resolve(e);try{r=kn.realpathSync(e)}catch{}let i=mI(r);return{binPath:e,realPath:r,packageRoot:i,version:i?bg(i):void 0,prefix:gI(i),isActive:r===t}}function wg(e,t=process.env.PATH??""){let r=e??process.argv[1],i=r?ct.resolve(r):"";try{r&&(i=kn.realpathSync(r))}catch{}let n=e?[e]:[r,...fI(t)].filter(Boolean),a=new Map;for(let f of n){let m=hI(f,i),h=a.get(m.realPath);a.set(m.realPath,h?{...m,binPath:h.binPath}:m)}let o=[...a.values()],s=o.find(f=>f.isActive);!s&&o.length>0&&!e&&(s={...o[0],isActive:!0},o[0]=s);let c=new Set(o.map(f=>f.packageRoot).filter(Boolean)),u=!!s?.packageRoot&&c.size>1,l=s?.prefix;return{active:s,installs:o,hasConflictingInstalls:u,recommendedPrefix:l}}function Sg(e,t=process.platform){return/^[A-Za-z0-9_./:@+-]+$/.test(e)?e:t==="win32"?`"${e.replace(/"/g,'""')}"`:`'${e.replace(/'/g,"'\\''")}'`}function Eg(e,t,r,i={}){let n=t??vg(r)??"npm",a=i.withDiagnostics?wg(r):void 0,s=`@visa/cli@${e??"latest"}`;switch(n){case"npm":if(a?.hasConflictingInstalls&&a.recommendedPrefix){let c=a.recommendedPrefix;return{packageManager:n,command:"npm",args:["install","-g","--prefix",c,s],display:`npm install -g --prefix ${Sg(c)} ${s}`,diagnostics:a}}return{packageManager:n,command:"npm",args:["install","-g",s],display:`npm install -g ${s}`,diagnostics:a};case"pnpm":return{packageManager:n,command:"pnpm",args:["add","-g",s],display:`pnpm add -g ${s}`,diagnostics:a};case"yarn":return{packageManager:n,command:"yarn",args:["global","add",s],display:`yarn global add ${s}`,diagnostics:a};case"bun":return{packageManager:n,command:"bun",args:["add","-g",s],display:`bun add -g ${s}`,diagnostics:a}}}function _I(e){let t=e.isActive?" (active)":"",r=e.version?` v${e.version}`:" version unknown",i=e.prefix?` via ${e.prefix}`:"";return` - ${e.binPath}${t}: ${r}${i}`}function yI(e,t){if(!e.hasConflictingInstalls)return null;let r=["Multiple Visa CLI installs detected.",...e.installs.map(_I)];return t&&(e.recommendedPrefix?r.push("The update command below targets the active install so your shell actually picks up the new version."):r.push("The update command is shown below; remove duplicate installs if your shell still picks up an older version."),r.push(` ${t}`)),r.join(`
|
|
2
2
|
`)}function vI(e,t,r){return Eg(e,t,r).display}var kn,ct,uI,lI,dI,gd,Og=Ie(()=>{"use strict";kn=Q(require("fs")),ct=Q(require("path"));uI=["npm","pnpm","yarn","bun"],lI=/\s+/,dI=process.platform==="win32"?"visa-cli.cmd":"visa-cli",gd=["node_modules","@visa","cli"]});var Ag={};_t(Ag,{getClaudeSettingsPath:()=>As});function As(e=Ig.homedir()){return Pg.join(e,".claude","settings.json")}var Ig,Pg,_d=Ie(()=>{"use strict";Ig=Q(require("os")),Pg=Q(require("path"))});var zs={};_t(zs,{FAILURE_STEPS:()=>wI,REFERENCE_RE:()=>bI,REQUEST_ID_RE:()=>ks,__resetProcessAttemptForTest:()=>$I,beginProcessAttempt:()=>SI,currentAttempt:()=>zn,currentReference:()=>Ia,failedRequestOf:()=>vd,newReference:()=>zg,newRequestId:()=>Oa,noteFailedRequest:()=>jn,requestIdOf:()=>jg,requestTraceHeaders:()=>Pa,runInAttempt:()=>EI});function zg(){return(0,Ts.randomBytes)(4).toString("hex")}function Oa(){return(0,Ts.randomUUID)()}function yd(e,t){return{reference:zg(),surface:e,step:t,reported:new Set}}function SI(e,t){return vi?(vi.surface=e,vi.step=t):vi=yd(e,t),vi}function zn(){let e=kg.getStore();return e||(vi??=yd("cli","other"),vi)}function Ia(){return zn().reference}function EI(e,t,r){return kg.run(yd(e,t),r)}function Pa(e){return{"x-request-id":e,"x-visa-reference":Ia()}}function jn(e,t,r){try{let i=typeof r=="number"?r:null,n=zn();n.failedRequestId=t,i!==null?n.failedHttpStatus=i:delete n.failedHttpStatus,e&&typeof e=="object"&&Object.isExtensible(e)&&!Object.prototype.hasOwnProperty.call(e,"requestId")&&(Object.defineProperty(e,"requestId",{value:t,enumerable:!1}),Object.defineProperty(e,"requestStatus",{value:i,enumerable:!1}))}catch{}return e}function jg(e){let t=e?.requestId;return typeof t=="string"&&ks.test(t)?t:void 0}function vd(e){let t=jg(e);if(!t)return;let r=e.requestStatus;return{requestId:t,httpStatus:typeof r=="number"?r:null}}function $I(){vi=null}var Tg,Ts,bI,ks,wI,kg,vi,Jr=Ie(()=>{"use strict";Tg=require("node:async_hooks"),Ts=require("node:crypto"),bI=/^[0-9a-f]{8}$/,ks=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,wI=["connect","connect_sign_in","connect_enroll","connect_mount","connect_skill","connect_hud","disconnect","update","statusline","keychain","enrollment_finisher","get_status","agent_enroll","discover","pay","history","purchase_create","purchase_retrieve","purchase_cancel","crash","other"],kg=new Tg.AsyncLocalStorage,vi=null});var Rs={};_t(Rs,{flushLogger:()=>CI,getLogPath:()=>Ns,logger:()=>qe});function II(){Lt.existsSync(bd)||Lt.mkdirSync(bd,{recursive:!0,mode:448})}function PI(){if(!Ji){if(II(),Lt.existsSync(Aa)&&Lt.statSync(Aa).size>OI){let r=Aa+".1";Lt.existsSync(r)&&Lt.unlinkSync(r),Lt.renameSync(Aa,r)}let e=Lt.createWriteStream(Aa,{flags:"a"});e.on?.("error",()=>{Ji===e&&(Ji=null)}),Ji=e}return Ji}function AI(){try{return zn().surface}catch{return"cli"}}function TI(e){return(e==="WARN"||e==="ERROR")&&AI()!=="cli"||process.env.VISA_CLI_DEBUG==="1"}function jI(e){let t=e.code;return{name:e.name,message:e.message.slice(0,kI),...typeof t=="string"||typeof t=="number"?{code:t}:{},...e.stack?{stack:e.stack.slice(0,zI)}:{}}}function NI(e){if(typeof e=="string")return e;try{return JSON.stringify(e,(r,i)=>i instanceof Error?jI(i):i,2)??""}catch{try{return String(e)}catch{return"[unserializable]"}}}function RI(){try{return`[ref:${Ia()}] `}catch{return""}}function js(e,...t){let r=new Date().toISOString(),i=t.map(NI).join(" "),n=`[${r}] [${e}] ${RI()}${i}
|
|
3
3
|
`;TI(e)&&process.stderr.write(n),PI().write(n)}function CI(e=2e3){let t=Ji;return t?(Ji=null,new Promise(r=>{let i=setTimeout(r,e);i.unref?.(),t.end(()=>{clearTimeout(i),r()})})):Promise.resolve()}function Ns(){return Aa}var Lt,wd,Ng,bd,Aa,OI,Ji,kI,zI,qe,on=Ie(()=>{"use strict";Lt=Q(require("fs")),wd=Q(require("path")),Ng=Q(require("os"));Jr();bd=wd.join(Ng.homedir(),".visa-mcp"),Aa=wd.join(bd,"mcp-server.log"),OI=5*1024*1024,Ji=null;kI=300,zI=2e3;qe={debug:(...e)=>js("DEBUG",...e),info:(...e)=>js("INFO",...e),warn:(...e)=>js("WARN",...e),error:(...e)=>js("ERROR",...e)}});function Dg(e){let t=e;return[Zt.join(t,".zshrc"),Zt.join(t,".bashrc"),Zt.join(t,".bash_profile"),Zt.join(t,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),Zt.join(t,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1"),Zt.join(t,"OneDrive","Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),Zt.join(t,"OneDrive","Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1"),Zt.join(t,".config","powershell","Microsoft.PowerShell_profile.ps1")]}function UI(e){return e.includes("_visa_cli_shell_hud_precmd")||e.includes(MI)||e.includes("shell-hud.line")||e.includes("__visa_cli_original_prompt")||e.includes("function global:prompt")}function LI(e,t,r){let i=new RegExp(`(^|\\n)([ \\t]*${Rg(t)}[ \\t]*\\r?\\n)([\\s\\S]*?)(\\r?\\n[ \\t]*${Rg(r)}[ \\t]*)(?=\\r?\\n|$)(\\r?\\n)?`,"g");return e.replace(i,(n,a,o,s,c,u,l)=>{if(!UI(s))return n;let f=l>0?e[l-1]:"";return a===`
|
|
4
4
|
`&&f!==`
|
|
5
5
|
`?`
|
|
6
6
|
`:""})}function Mg(e){return LI(e,xI,DI).trimEnd()}function ZI(e){return Mg(e)!==e.trimEnd()}function Cs(e=xg.homedir()){let t=[],r=Dg(e);for(let i of r)try{if(!De.existsSync(i))continue;let n=De.readFileSync(i,"utf-8");ZI(n)&&t.push(i)}catch{}return t}function Sd(e){let t=[],r=[],i=[];try{for(let n of Dg(e))if(r.push(n),!!De.existsSync(n))try{let a=De.realpathSync(n),o=De.openSync(a,De.constants.O_RDONLY|De.constants.O_NOFOLLOW),s,c;try{s=De.readFileSync(o,"utf-8"),c=De.fstatSync(o).mode&511}finally{De.closeSync(o)}let u=Mg(s);if(u===s.trimEnd())continue;qI(a,u.length>0?`${u}
|
|
7
7
|
`:"",c),t.push(n)}catch(a){i.push(`${n}: ${Cg(a)}`)}return t.length>0?{removed:!0,rcPath:t[0],rcPaths:t,message:i.length>0?`Removed persistent shell HUD from ${t.join(", ")}. Some rc files could not be updated: ${i.join("; ")}.`:`Removed persistent shell HUD from ${t.join(", ")}.`}:i.length>0?{removed:!1,rcPath:r[0],rcPaths:r,message:`Failed to remove persistent shell HUD: ${i.join("; ")}`}:{removed:!0,rcPath:r[0],rcPaths:r,message:"Persistent shell HUD was not installed in any supported shell rc file."}}catch(n){return{removed:!1,message:`Failed to remove persistent shell HUD: ${Cg(n)}`}}}function Rg(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cg(e){qe.warn("hud:shell_rc_update_failed",{code:e?.code??null,message:(e instanceof Error?e.message:String(e)).slice(0,300)});let t=e?.code;return t==="EACCES"||t==="EPERM"?"permission denied":"the file could not be changed"}function qI(e,t,r=384){De.mkdirSync(Zt.dirname(e),{recursive:!0,mode:448});let i=De.mkdtempSync(Zt.join(Zt.dirname(e),".hud-write-")),n=Zt.join(i,"contents");try{De.writeFileSync(n,t,{flag:"wx",mode:r}),De.chmodSync(n,r),De.renameSync(n,e)}finally{De.rmSync(i,{recursive:!0,force:!0})}}var De,xg,Zt,xI,DI,MI,Ug=Ie(()=>{"use strict";De=Q(require("fs")),xg=Q(require("os")),Zt=Q(require("path"));on();xI="# >>> visa-cli shell hud v2 >>>",DI="# <<< visa-cli shell hud v2 <<<",MI="visa-cli config hud-refresh"});var Fg={};_t(Fg,{VISA_STATUSLINE_MARKER:()=>xs,buildStatusLineCommand:()=>Od,installVisaStatusLine:()=>YI,isVisaOwnedStatusLine:()=>Ms,selfHealVisaHudIntegration:()=>Id,shellQuote:()=>$d,uninstallVisaStatusLine:()=>Pd,writeJsonAtomic:()=>So});function So(e,t){dt.mkdirSync(bt.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${Zg.randomBytes(8).toString("hex")}.tmp`;try{dt.writeFileSync(r,JSON.stringify(t,null,2)+`
|
|
8
|
-
`),dt.renameSync(r,e)}catch(i){try{dt.unlinkSync(r)}catch{}throw i}}function $d(e){return`'${e.replace(/'/g,"'\\''")}'`}function Od(e,t){if(!e&&!t&&FI())return`visa-cli config statusline ${xs}`;let r=e??process.execPath,i=t??process.argv[1]??"",n=i?bt.resolve(i):"";return`${n?`${$d(r)} ${$d(n)} config statusline`:"visa-cli config statusline"} ${xs}`}function FI(){try{return(0,qg.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function Ms(e){return typeof e!="string"?!1:e.includes(xs)?!0:e.includes("visa-cli")&&e.includes("statusline")}function BI(){return"5.0.0-rc.
|
|
8
|
+
`),dt.renameSync(r,e)}catch(i){try{dt.unlinkSync(r)}catch{}throw i}}function $d(e){return`'${e.replace(/'/g,"'\\''")}'`}function Od(e,t){if(!e&&!t&&FI())return`visa-cli config statusline ${xs}`;let r=e??process.execPath,i=t??process.argv[1]??"",n=i?bt.resolve(i):"";return`${n?`${$d(r)} ${$d(n)} config statusline`:"visa-cli config statusline"} ${xs}`}function FI(){try{return(0,qg.execSync)("command -v visa-cli",{stdio:"ignore",timeout:1e3}),!0}catch{return!1}}function Ms(e){return typeof e!="string"?!1:e.includes(xs)?!0:e.includes("visa-cli")&&e.includes("statusline")}function BI(){return"5.0.0-rc.412"}function Us(e){let t=bt.dirname(bt.resolve(e));return bt.basename(t)===".claude"?bt.dirname(t):Vg.homedir()}function Ds(e,t){let r=bt.relative(t,e);return!r.startsWith("..")&&!bt.isAbsolute(r)?`~/${r}`:e}function GI(e){return bt.join(Us(e),".visa-cli","hud-self-heal.json")}function JI(e,t,r,i){try{if(!dt.existsSync(e))return!1;let n=JSON.parse(dt.readFileSync(e,"utf-8"));return n.version===t&&typeof n.checkedAt=="number"&&r-n.checkedAt<i}catch{return!1}}function Ed(e,t,r){try{dt.mkdirSync(bt.dirname(e),{recursive:!0,mode:448}),So(e,{version:t,checkedAt:r})}catch{}}function WI(e,t){return e&&typeof e=="object"&&!Array.isArray(e)?{...e,type:"command",command:t}:{type:"command",command:t}}function Id(e,t={}){let r=t.now??Date.now(),i=t.version??BI(),n=t.stampPath??GI(e),a=t.minIntervalMs??VI,o=[],s=!1,c=!1;if(!t.force&&JI(n,i,r,a))return{checked:!1,statusLineRepaired:!1,shellHudRemoved:!1,messages:o,skippedReason:"recently checked"};try{if(!dt.existsSync(e))return Ed(n,i,r),{checked:!0,statusLineRepaired:s,shellHudRemoved:c,messages:o};let u=JSON.parse(dt.readFileSync(e,"utf-8")),l=u.statusLine,f=l&&typeof l=="object"&&!Array.isArray(l)?l.command:"";if(!Ms(f))return Ed(n,i,r),{checked:!0,statusLineRepaired:s,shellHudRemoved:c,messages:o};let m=(t.getCommand??Od)();f!==m&&(u.statusLine=WI(l,m),So(e,u),s=!0,o.push("Repaired Claude Code statusLine command to use the current Visa CLI."));let h=Us(e);if(Cs(h).length>0){let S=Sd(h);if(S.removed&&S.rcPaths&&S.rcPaths.length>0){let $=S.rcPaths.map(x=>Ds(x,h)).join(", ");c=!0,o.push(`Cleaned legacy shell-prompt HUD block from ${$}.`)}}return Ed(n,i,r),{checked:!0,statusLineRepaired:s,shellHudRemoved:c,messages:o}}catch(u){if(t.force){qe.warn("hud:self_heal_skipped",{message:u instanceof Error?u.message.slice(0,300):"unknown error"});try{process.stderr.write(`The Visa HUD could not be checked because ~/.claude/settings.json could not be read. Fix that file, then run: visa connect claude
|
|
9
9
|
`)}catch{}}return{checked:!0,statusLineRepaired:s,shellHudRemoved:c,messages:o}}}function HI(e,t){let r=Us(t),i=Cs(r);if(i.length===0)return e;let n=i.map(a=>Ds(a,r)).join(", ");return`${e}
|
|
10
10
|
Note: a shell-prompt HUD block was detected in ${n}. If it is unintended, delete the lines between '# >>> visa-cli shell hud v2 >>>' and '# <<< visa-cli shell hud v2 <<<' in ${n}`}function Lg(e,t){let r=Us(t),i=Cs(r);if(i.length===0)return e;let n=i.map(o=>Ds(o,r)).join(", "),a=Sd(r);if(a.removed&&a.rcPaths&&a.rcPaths.length>0){let o=a.rcPaths.map(s=>Ds(s,r)).join(", ");return`${e}
|
|
11
11
|
Cleaned legacy shell-prompt HUD block from ${o} (was leaking output above every shell prompt).`}return`${e}
|
|
12
|
-
Note: a legacy shell-prompt HUD block was detected in ${n} but could not be auto-removed (${a.message}). Delete the lines between '# >>> visa-cli shell hud v2 >>>' and '# <<< visa-cli shell hud v2 <<<' in ${n} by hand`}function YI(e,t=Od){let r={},i=!1;if(dt.existsSync(e)){i=!0;try{r=JSON.parse(dt.readFileSync(e,"utf-8"))}catch(n){return qe.warn("hud:settings_unreadable",{message:String(n?.message).slice(0,300)}),{installed:"malformed-json",message:"~/.claude/settings.json is not valid JSON, so the Visa HUD was not added. Fix the file, then run: visa connect claude"}}}if(r.statusLine){let n=typeof r.statusLine=="object"?r.statusLine.command:"";return Ms(n)?{installed:"already-visa",message:Lg("Visa HUD already registered in ~/.claude/settings.json.",e)}:{installed:"other-hud-present",message:HI("Another HUD is already configured (keeping it). To switch to Visa HUD, edit ~/.claude/settings.json \u2192 statusLine.command",e)}}try{return r.statusLine={type:"command",command:t()},So(e,r),{installed:"new",message:Lg(`Visa HUD registered in ~/.claude/settings.json${i?"":" (new file)"}. Restart Claude Code to see it pinned below the input.`,e)}}catch(n){return qe.warn("hud:settings_write_failed",{message:String(n?.message).slice(0,300)}),{installed:"error",message:"Could not save ~/.claude/settings.json, so the Visa HUD was not added. Check that file can be written, then run: visa connect claude"}}}function Pd(e){if(!dt.existsSync(e))return{removed:!1,status:"missing-settings",message:"No ~/.claude/settings.json found."};let t;try{t=JSON.parse(dt.readFileSync(e,"utf-8"))}catch(i){return qe.warn("hud:settings_unreadable",{message:String(i?.message).slice(0,300)}),{removed:!1,status:"malformed-json",message:"~/.claude/settings.json is not valid JSON, so the Visa HUD was left in place."}}if(!t.statusLine)return{removed:!1,status:"missing-statusline",message:"No statusLine configured."};let r=typeof t.statusLine=="object"?t.statusLine.command:"";if(!Ms(r))return{removed:!1,status:"foreign-statusline",message:"statusLine is owned by another tool \u2014 leaving it alone."};delete t.statusLine;try{So(e,t)}catch(i){return qe.warn("hud:settings_write_failed",{message:String(i?.message).slice(0,300)}),{removed:!1,status:"error",message:"Could not save ~/.claude/settings.json, so the Visa HUD was left in place."}}return{removed:!0,status:"removed",message:"Visa HUD removed from ~/.claude/settings.json. Restart Claude Code to take effect."}}var Zg,qg,dt,Vg,bt,VI,xs,Ad=Ie(()=>{"use strict";Zg=Q(require("crypto")),qg=require("child_process"),dt=Q(require("fs")),Vg=Q(require("os")),bt=Q(require("path"));Ug();on();VI=1440*60*1e3;xs="# visa-cli-hud-v1"});function Ls(e,t,r,i){try{e[t](r,i)}catch{}}var Bg=Ie(()=>{"use strict"});var qs,Td,Gg,Zs,Jg=Ie(()=>{"use strict";qs=Q(require("fs")),Td=Q(require("path")),Gg=Q(require("os")),Zs=class{static ensureConfigDir(){let t=this.getConfigDir();qs.existsSync(t)||qs.mkdirSync(t,{recursive:!0,mode:448})}static getConfigDir(){let t=process.env.VISA_CLI_HOME;return typeof t=="string"&&t.trim().length>0?Td.join(t,".visa-mcp"):Td.join(Gg.homedir(),".visa-mcp")}}});function Wg(e){let t=Yg.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function QI(){return Kg.join(Zs.getConfigDir(),KI)}function Xg(e){if((0,kd.isIP)(e)!==4)return!1;let[t]=e.split(".").map(Number);return t===127}function eP(e){let t=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(!t)return!1;let r=Number.parseInt(t[1],16),i=Number.parseInt(t[2],16);if(!Number.isFinite(r)||!Number.isFinite(i))return!1;let n=[r>>8&255,r&255,i>>8&255,i&255].join(".");return Xg(n)}function tP(e){let t=e.toLowerCase().replace(/^\[(.*)\]$/,"$1");if(t==="localhost")return!0;let r=(0,kd.isIP)(t);return r===4?Xg(t):r===6?t==="::1"||eP(t):!1}function Hg(e,t="auth.serverUrl"){let r;try{r=new URL(e)}catch{throw new Error(`${t} must be a valid URL (got: ${JSON.stringify(e)})`)}if(r.username||r.password)throw new Error(`${t} must not include username or password credentials`);if(r.protocol!=="https:"&&!(r.protocol==="http:"&&tP(r.hostname)))throw new Error(`${t} ${XI}`)}function Qg(){let e=QI();if(!Vs.existsSync(e))return{};try{let t=Vs.readFileSync(e,"utf-8"),r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?(qe.warn("settings:corrupt",{path:Wg(e),reason:"not_object"}),{}):r}catch(t){return qe.warn("settings:corrupt",{path:Wg(e),error:t?.message||String(t)}),{}}}function nP(e){let t=Qg()[e];return typeof t=="string"?t:void 0}function rP(e){let t=Qg()[e];return typeof t=="boolean"?t:void 0}function iP(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function aP(){try{let e=Ps();return iP(e.version)}catch{return!1}}function oP(e){return e.envVar!==void 0&&e.envVar!==""?(Hg(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(Hg(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?th:eh}function zd(e=process.env){let t=oP({envVar:e.VISA_AUTH_URL,settingValue:nP("auth.serverUrl"),isPrerelease:aP()}),r=new URL(t).origin,n=e.VISA_VERIFY_WEB_URL?.trim()||(r===th?cP:r===eh?sP:r);for(;n.endsWith("/");)n=n.slice(0,-1);return{authUrl:t,webUrl:n}}function bi(){return zd().authUrl}function Fs(e=process.env){let t=[e.VISA_SUPPRESS_BROWSER,e.VISA_CLI_NO_BROWSER,e.CHECKOUT_SKIP_BROWSER_OPEN];return t.some(r=>r==="true"||r==="1")?!0:t.some(r=>r!==void 0)?!1:rP("ui.suppressBrowser")??!1}var Vs,kd,Yg,Kg,KI,XI,eh,th,sP,cP,Eo=Ie(()=>{"use strict";Vs=Q(require("fs")),kd=require("node:net"),Yg=Q(require("os")),Kg=Q(require("path"));Jg();on();KI="settings.json",XI="must use https unless it points at localhost/loopback for local development";eh="https://auth.visacli.sh",th="https://auth-visa-code-preview.up.railway.app";sP="https://app.visacli.sh",cP="https://web-visa-code-preview.up.railway.app"});function uP(e){return[["openclaw",Ta.join(e,".openclaw")],["hermes",Ta.join(e,".hermes")],["claude-code",Ta.join(e,".claude")],["codex",Ta.join(e,".codex")],["gemini",Ta.join(e,".gemini")]]}function $o(e=process.env,t={}){if(e.VISA_CLI_RUNTIME&&e.VISA_CLI_RUNTIME.trim().length>0)return e.VISA_CLI_RUNTIME.trim();if(e.AGENT_RUNTIME&&e.AGENT_RUNTIME.trim().length>0)return e.AGENT_RUNTIME.trim();let r=o=>Object.entries(e).some(([s,c])=>s.startsWith(o)&&typeof c=="string"&&c.trim()!==""),i=new Set;if(r("CODEX_")&&i.add("codex"),(typeof e.CLAUDECODE=="string"&&e.CLAUDECODE.trim()!==""||r("CLAUDE_CODE_")||typeof e.CLAUDE_PROJECT_DIR=="string"&&e.CLAUDE_PROJECT_DIR.trim()!=="")&&i.add("claude-code"),r("OPENCLAW_")&&i.add("openclaw"),r("HERMES_")&&i.add("hermes"),(r("ANTIGRAVITY_")||r("GEMINI_"))&&i.add("gemini"),i.size>0)return i.size===1?i.values().next().value:void 0;let n=t.home??rh.homedir(),a=uP(n).filter(([,o])=>nh.existsSync(o));return a.length===1?a[0][0]:void 0}function jd(e=process.env,t={}){switch($o(e,t)){case"claude-code":return"claude";case"codex":return"codex";case"openclaw":return"openclaw";case"hermes":return"hermes";case"gemini":return"gemini";default:return"claude"}}var nh,rh,Ta,Nd=Ie(()=>{"use strict";nh=Q(require("fs")),rh=Q(require("os")),Ta=Q(require("path"))});var Gs={};_t(Gs,{FAILURE_EVENT_PATH:()=>ih,FAILURE_SEND_BUDGET_MS:()=>ah,cliCommandStep:()=>bP,failureFooterLines:()=>Cd,failureReportingDisabled:()=>oh,reportFailure:()=>xd,updateFailureCode:()=>wP});function oh(e=process.env){return e.NODE_ENV==="test"}function sh(e){return typeof e=="number"&&Number.isInteger(e)&&e>=100&&e<=599?e:void 0}function gP(e){return sh(e?.status)}function hP(){let e=process.platform;return e==="darwin"||e==="linux"||e==="win32"?e:"other"}function _P(e){try{let t=$o(e);return t&&pP.has(t)?t:void 0}catch{return}}function yP(e){return e instanceof Error?e.name:typeof e}function vP(e,t){let r=fP[e];if(!r)return!1;let i=Bs.join(t,`failure-report-${e}.stamp`);try{if(Date.now()-ka.statSync(i).mtimeMs<r)return!0}catch{}try{ka.mkdirSync(t,{recursive:!0,mode:448}),ka.writeFileSync(i,"",{mode:384})}catch{}return!1}function bP(e){switch(e){case"connect":case"disconnect":case"update":return e;case"config statusline":case"config hud-refresh":return"statusline";default:return"other"}}function wP(e){let t=e;return t?.code==="ENOENT"?"package_manager_not_found":t?.killed===!0?"update_timed_out":"update_command_failed"}function Cd(e,t=" "){return[`${t}log: ${Ns()}`,`${t}ref: ${e}`]}async function xd(e,t={}){try{let r=t.env??process.env,i=zn(),n=e.step??i.step,a=lP.test(e.code)?e.code:"unspecified_error",o=sh(e.httpStatus),s=vd(e.cause),c,u;e.failedRequestId&&ks.test(e.failedRequestId)?(c=e.failedRequestId,u=o):s?(c=s.requestId,u=o??s.httpStatus??void 0):e.cause!==void 0?u=o??gP(e.cause):(c=i.failedRequestId,u=o??(c?i.failedHttpStatus:void 0));let l=i.reference;if(Ls(qe,i.surface==="mcp"?"warn":"info",i.surface==="mcp"?"tool:failed":"command:failed",{step:n,code:a,kind:e.kind,status:u??null,reference:l,failedRequestId:c??null}),mP.has(a)||!(t.enabled??!oh(r))||i.reported.has(a)||(i.reported.add(a),vP(n,t.stampDir??Bs.dirname(Ns()))))return;let f=Date.now(),m=_P(r),h={reference:l,...c?{failedRequestId:c}:{},surface:i.surface,step:n,code:a,kind:e.kind,...u!==void 0?{httpStatus:u}:{},cliVersion:dP.test(Rd)?Rd:"0.0.0",platform:hP(),...m?{harness:m}:{}},g=Oa(),S=`${(t.authUrl??bi()).replace(/\/+$/,"")}${ih}`;try{let $=await(t.fetch??fetch)(S,{method:"POST",headers:{"Content-Type":"application/json","X-Source":"cli","X-Visa-CLI-Version":Rd,...Pa(g)},body:JSON.stringify(h),redirect:"error",signal:AbortSignal.timeout(Math.max(1,ah-(Date.now()-f)))});$.body?.cancel().catch(()=>{}),Ls(qe,"info","failure_report:sent",{reference:l,requestId:g,status:$.status})}catch($){Ls(qe,"info","failure_report:unsent",{reference:l,requestId:g,reason:yP($)})}}catch{}}var ka,Bs,Rd,ih,ah,lP,dP,pP,fP,mP,Oo=Ie(()=>{"use strict";ka=Q(require("node:fs")),Bs=Q(require("node:path"));Jr();Bg();on();Eo();Nd();Rd="5.0.0-rc.411",ih="/v1/cli/failure-event",ah=2e3,lP=/^[a-z][a-z0-9_]{1,63}$/,dP=/^[0-9A-Za-z.+-]{1,40}$/,pP=new Set(["claude-code","codex","openclaw","hermes","gemini"]),fP={statusline:10*6e4},mP=new Set(["setup_declined","owner_declined"])});function At(e=process.env){let t=e[SP];return typeof t=="string"&&t.trim().length>0?t:uh.join(ch.homedir(),".visa-cli")}var ch,uh,SP,za=Ie(()=>{"use strict";ch=Q(require("os")),uh=Q(require("path")),SP="VISA_CLI_HOME"});function $P(e){if(!Number.isSafeInteger(e)||e<=0)return!0;try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function ja(e,t){let r=Wi.dirname(e);yn.mkdirSync(r,{recursive:!0,mode:448});let i=`${Wi.basename(e)}.`,n=`${i}${process.pid}.${(0,lh.randomUUID)()}`,a=Wi.join(r,n),o=null,s;if(t)try{o=t.processStart(process.pid)}catch{o=null}let c=m=>yn.writeFileSync(a,t?JSON.stringify({ticket:m,pidStart:o,createdAt:t.now,token:s}):String(m)),u=()=>yn.readdirSync(r).filter(m=>m.startsWith(i)).flatMap(m=>{let h=Number(m.slice(i.length).split(".")[0]);if(!$P(h))return[];try{let g=yn.readFileSync(Wi.join(r,m),"utf8"),S=Number(g);if(t&&g.startsWith("{")){let $;try{$=JSON.parse(g)}catch{return[{name:m,ticket:0}]}if(!$||typeof $!="object"||typeof $.createdAt!="number"||!Number.isFinite($.createdAt)||!($.pidStart===null||typeof $.pidStart=="string")||!($.token===void 0||typeof $.token=="string"))return[{name:m,ticket:0}];if(!t.live({pid:h,createdAt:$.createdAt,pidStart:$.pidStart,token:$.token}))return[];S=Number($.ticket)}return[{name:m,ticket:Number.isSafeInteger(S)&&S>0?S:0}]}catch(g){if(g.code==="ENOENT")return[];throw g}}),l=!1,f=()=>{l||(yn.rmSync(a,{force:!0}),l=!0)};try{yn.writeFileSync(a,"0",{flag:"wx",mode:384}),t&&c(0);let m=Math.max(0,...u().map($=>$.ticket))+1;c(m);let h=u(),g=Dd.performance.now()+1e3;for(;h.some($=>$.name!==n&&$.ticket===0);){if(Dd.performance.now()>=g)return f(),null;Atomics.wait(EP,0,0,1),h=u()}return h.some($=>$.name!==n&&($.ticket===0||$.ticket<m||$.ticket===m&&$.name<n))?(f(),null):Object.assign(f,{bind:$=>{s=$,c(m)}})}catch(m){throw f(),m}}var lh,yn,Wi,Dd,EP,Js=Ie(()=>{"use strict";lh=require("node:crypto"),yn=Q(require("node:fs")),Wi=Q(require("node:path")),Dd=require("node:perf_hooks"),EP=new Int32Array(new SharedArrayBuffer(4))});function OP(e){if(!Number.isSafeInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t?.code==="EPERM"}}function Ws(e){try{let t=JSON.parse((0,Tt.readFileSync)(e,"utf8"));return t.version===1&&Number.isSafeInteger(t.pid)&&typeof t.token=="string"&&Number.isFinite(t.createdAt)&&(t.pidStart===void 0||t.pidStart===null||typeof t.pidStart=="string")&&(t.holder===void 0||t.holder==="finisher"||t.holder==="connect")?t:null}catch{return null}}function Md(e){if(process.platform==="win32"||!Number.isSafeInteger(e)||e<=0)return null;try{return(0,Hs.execFileSync)("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim()||null}catch{return null}}function Ud(e,t,r){if(!OP(e.pid))return!1;let i=null;try{i=(r.processStart??Md)(e.pid)}catch{i=null}return e.pidStart&&i?i===e.pidStart:t-e.createdAt<r.staleMs}function ph(e,t=Date.now()){let r=Ws(e.file);return r&&Ud(r,t,e)?r:null}function Na(e,t=Date.now(),r=process.pid,i="finisher"){let n=e.file,a=null;try{a=(e.processStart??Md)(r)}catch{a=null}let o=ja(`${n}.arbitration`,{now:t,processStart:e.processStart??Md,live:c=>(!c.token||Ws(n)?.token===c.token)&&Ud(c,t,e)});if(!o)return null;let s=!1;try{for(let c=0;c<2;c++){let u=(0,dh.randomUUID)();try{let l=(0,Tt.openSync)(n,"wx",384);try{(0,Tt.writeFileSync)(l,JSON.stringify({version:1,pid:r,token:u,createdAt:t,pidStart:a,holder:i}),"utf8"),(0,Tt.fsyncSync)(l)}finally{(0,Tt.closeSync)(l)}let f=!1,m=()=>!f&&Ws(n)?.token===u;return o.bind(u),s=!0,Object.assign(()=>{if(!f)try{m()&&(0,Tt.unlinkSync)(n)}catch{}finally{f=!0,o()}},{held:m})}catch(l){if(l?.code!=="EEXIST")throw l;let f=Ws(n),m;if(f)m=!Ud(f,t,e);else try{m=t-(0,Tt.statSync)(n).mtimeMs>=e.staleMs}catch{m=!0}if(!m)return null;try{(0,Tt.unlinkSync)(n)}catch(h){if(h?.code!=="ENOENT")throw h}}}return null}finally{s||o()}}function fh(e,t,r,i){let n=(0,Hs.spawn)(process.execPath,[e,...t],{detached:!0,stdio:"ignore",env:r,windowsHide:!0});return n.on("error",i),n.unref(),n}var Hs,dh,Tt,Ld=Ie(()=>{"use strict";Hs=require("node:child_process"),dh=require("node:crypto"),Tt=require("node:fs");Js()});var G=P(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.CONSTANT_CATCH=V.Class=V.BIGINT_FORMAT_RANGES=V.NUMBER_FORMAT_RANGES=V.primitiveTypes=V.propertyKeyTypes=V.getParsedType=V.allowsEval=V.captureStackTrace=void 0;V.assertEqual=PP;V.assertNotEqual=AP;V.toZod=TP;V.assertIs=kP;V.assertNever=zP;V.assert=jP;V.getEnumValues=NP;V.joinValues=RP;V.jsonStringifyReplacer=CP;V.cached=gh;V.nullish=xP;V.cleanRegex=DP;V.floatSafeRemainder=MP;V.defineLazy=UP;V.objectClone=LP;V.assignProp=Wr;V.mergeDefs=Hr;V.cloneDef=ZP;V.getElementAtPath=qP;V.promiseAllObject=VP;V.randomString=FP;V.esc=BP;V.slugify=GP;V.isObject=qd;V.isPlainObject=Ks;V.shallowClone=JP;V.numKeys=WP;V.escapeRegex=YP;V.clone=Si;V.normalizeParams=KP;V.createTransparentProxy=XP;V.stringifyPrimitive=hh;V.optionalKeys=QP;V.pick=eA;V.omit=tA;V.extend=nA;V.safeExtend=rA;V.merge=iA;V.partial=aA;V.required=oA;V.aborted=sA;V.explicitlyAborted=cA;V.prefixIssues=uA;V.unwrapMessage=Ra;V.attachSchema=lA;V.finalizeIssue=dA;V.getSizableOrigin=pA;V.codePointLength=mA;V.getLengthableOrigin=gA;V.parsedType=hA;V.issue=_A;V.cleanEnum=yA;V.base64ToUint8Array=_h;V.uint8ArrayToBase64=yh;V.base64urlToUint8Array=vA;V.uint8ArrayToBase64url=bA;V.hexToUint8Array=wA;V.uint8ArrayToHex=SA;V.members=EA;V.own=Ys;V.hide=$A;V.defineLazyInternal=AA;V.installLazyProp=TA;V.constantCatch=kA;var IP=Ei();function PP(e){return e}function AP(e){return e}function TP(){return e=>e}function kP(e){}function zP(e){throw new Error("Unexpected value in exhaustive check")}function jP(e){}function NP(e){let t=Object.values(e).filter(i=>typeof i=="number");return Object.entries(e).filter(([i,n])=>t.indexOf(+i)===-1).map(([i,n])=>n)}function RP(e,t="|"){return e.map(r=>hh(r)).join(t)}function CP(e,t){return typeof t=="bigint"?t.toString():t}function gh(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function xP(e){return e==null}function DP(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function MP(e,t){let r=e/t,i=Math.round(r),n=4*Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-i)<n?0:r-i}var mh=Symbol("evaluating");function UP(e,t,r){let i;Object.defineProperty(e,t,{get(){if(i!==mh)return i===void 0&&(i=mh,i=r()),i},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function LP(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Wr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Hr(...e){let t={};for(let r of e){let i=Object.getOwnPropertyDescriptors(r);Object.assign(t,i)}return Object.defineProperties({},t)}function ZP(e){return Hr(e._zod.def)}function qP(e,t){return t?t.reduce((r,i)=>r?.[i],e):e}function VP(e){let t=Object.keys(e),r=t.map(i=>e[i]);return Promise.all(r).then(i=>{let n={};for(let a=0;a<t.length;a++)n[t[a]]=i[a];return n})}function FP(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let i=0;i<e;i++)r+=t[Math.floor(Math.random()*t.length)];return r}function BP(e){return JSON.stringify(e)}function GP(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}V.captureStackTrace="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function qd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}V.allowsEval=gh(()=>{if(IP.globalConfig.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function Ks(e){if(qd(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(qd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function JP(e){return Ks(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function WP(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var HP=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}};V.getParsedType=HP;V.propertyKeyTypes=new Set(["string","number","symbol"]);V.primitiveTypes=new Set(["string","number","bigint","boolean","symbol","undefined"]);function YP(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Si(e,t,r){let i=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(i._zod.parent=e),i}function KP(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function XP(e){let t;return new Proxy({},{get(r,i,n){return t??(t=e()),Reflect.get(t,i,n)},set(r,i,n,a){return t??(t=e()),Reflect.set(t,i,n,a)},has(r,i){return t??(t=e()),Reflect.has(t,i)},deleteProperty(r,i){return t??(t=e()),Reflect.deleteProperty(t,i)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,i){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,i)},defineProperty(r,i,n){return t??(t=e()),Reflect.defineProperty(t,i,n)}})}function hh(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function QP(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}V.NUMBER_FORMAT_RANGES={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};V.BIGINT_FORMAT_RANGES={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function eA(e,t){let r=e._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let a=Hr(e._zod.def,{get shape(){let o={};for(let s of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(r.shape,s))throw new Error(`Unrecognized key: "${String(s)}"`);t[s]&&Wr(o,s,r.shape[s])}return Wr(this,"shape",o),o},checks:[]});return Si(e,a)}function tA(e,t){let r=e._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let a=Hr(e._zod.def,{get shape(){let o={...e._zod.def.shape};for(let s of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(r.shape,s))throw new Error(`Unrecognized key: "${String(s)}"`);t[s]&&delete o[s]}return Wr(this,"shape",o),o},checks:[]});return Si(e,a)}function nA(e,t){if(!Ks(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let a=e._zod.def.shape;for(let o of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(a,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let n=Hr(e._zod.def,{get shape(){let a={...e._zod.def.shape,...t};return Wr(this,"shape",a),a}});return Si(e,n)}function rA(e,t){if(!Ks(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Hr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Wr(this,"shape",i),i}});return Si(e,r)}function iA(e,t){if(!t?._zod?.def)throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=Hr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t._zod.def.shape};return Wr(this,"shape",i),i},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Si(e,r)}function aA(e,t,r,i="partial"){let a=t._zod.def.checks;if(a&&a.length>0)throw new Error(`.${i}() cannot be used on object schemas containing refinements`);let s=Hr(t._zod.def,{get shape(){let c=t._zod.def.shape,u={...c};if(r)for(let l of Reflect.ownKeys(r)){if(!Object.prototype.hasOwnProperty.call(c,l))throw new Error(`Unrecognized key: "${String(l)}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:c[l]}):c[l])}else for(let l of Reflect.ownKeys(c))u[l]=e?new e({type:"optional",innerType:c[l]}):c[l];return Wr(this,"shape",u),u},checks:[]});return Si(t,s)}function oA(e,t,r){let i=Hr(t._zod.def,{get shape(){let n=t._zod.def.shape,a={...n};if(r)for(let o of Reflect.ownKeys(r)){if(!Object.prototype.hasOwnProperty.call(a,o))throw new Error(`Unrecognized key: "${String(o)}"`);r[o]&&(a[o]=new e({type:"nonoptional",innerType:n[o]}))}else for(let o of Reflect.ownKeys(n))a[o]=new e({type:"nonoptional",innerType:n[o]});return Wr(this,"shape",a),a}});return Si(t,i)}function sA(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function cA(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function uA(e,t){return t.map(r=>{var i;return(i=r).path??(i.path=[]),r.path.unshift(e),r})}function Ra(e){return typeof e=="string"?e:e?.message}function lA(e,t,r){var i;for(let n=t;n<e.length;n++)(i=e[n]).schema??(i.schema=r)}function dA(e,t,r){var i;let n=e.inst?._zod?.traits;n?.has("$ZodType")&&(n.has("$ZodCheck")?(i=e).schema??(i.schema=e.inst):e.schema=e.inst);let a=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,o=e.message?e.message:Ra(e.inst?._zod.def?.error?.(e))??Ra(a?.(e))??Ra(t?.error?.(e))??Ra(r.customError?.(e))??Ra(r.localeError?.(e))??"Invalid input",{inst:s,schema:c,continue:u,input:l,...f}=e;return f.path??(f.path=[]),f.message=o,t?.reportInput&&(f.input=l),f}function pA(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}var fA=/[\uD800-\uDBFF]/;function mA(e){let t=e.length;if(!fA.test(e))return t;let r=t;for(let i=0;i<t-1;i++)(e.charCodeAt(i)&64512)===55296&&(e.charCodeAt(i+1)&64512)===56320&&(r--,i++);return r}function gA(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function hA(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function _A(...e){let[t,r,i]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:i}:{...t}}function yA(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function _h(e){let t=atob(e),r=new Uint8Array(t.length);for(let i=0;i<t.length;i++)r[i]=t.charCodeAt(i);return r}function yh(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function vA(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return _h(t+r)}function bA(e){return yh(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function wA(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let i=0;i<t.length;i+=2)r[i/2]=Number.parseInt(t.slice(i,i+2),16);return r}function SA(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Vd=class{constructor(...t){}};V.Class=Vd;function EA(e,t){for(let r in t){let i=Object.getOwnPropertyDescriptor(t,r);i.get?Object.defineProperty(e,r,{...i,enumerable:!1}):OA(e,r,i.value)}}function Ys(e,t,r,i=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:i,value:r}),r}function $A(e,t,r){return Ys(e,t,r,!1)}function OA(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:Ys(this,t,r.bind(this))},set(i){Ys(this,t,i)}})}function IA(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var Zd,wi=!1,PA={configurable:!0,get(){wi=!0}};function AA(e,t,r){let i=Object.getPrototypeOf(e._zod);if(t in i&&Zd!==e._zod){Zd=void 0;return}Zd=e._zod,Object.defineProperty(i,t,{configurable:!0,get(){Object.defineProperty(this,t,PA);let n=wi;wi=!1;try{let a=r(this);return wi?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:a}),wi=wi||n,a}catch(a){throw delete this[t],wi=wi||n,a}},set(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})}function TA(e,t,r,i){let n=IA(e,t);n&&Object.defineProperty(n,t,{configurable:!0,get(){let a={configurable:!0,writable:!0,enumerable:i,value:void 0};return Object.defineProperty(this,t,a),a.value=r(this),Object.defineProperty(this,t,a),a.value},set(a){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:i,value:a})}})}V.CONSTANT_CATCH="~constantCatch";function kA(e){let t=()=>e;return t[V.CONSTANT_CATCH]=!0,t}});var Ei=P(wt=>{"use strict";var vh;Object.defineProperty(wt,"__esModule",{value:!0});wt.globalConfig=wt.$ZodEncodeError=wt.$ZodAsyncError=wt.$brand=wt.NEVER=void 0;wt.$constructor=NA;wt.config=RA;var zA=G();wt.NEVER=Object.freeze({status:"aborted"});var Fd={value:void 0,enumerable:!1},bh="captureStackTrace"in Error?Error:null;function jA(e){let t=bh;if(t){let r=t.stackTraceLimit;if(typeof r=="number"){try{t.stackTraceLimit=0}catch{return bh=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function NA(e,t,r,i){let n={};function a(m){this.def=m,this.constr=f,this.traits=new Set}a.prototype=n;let o=r,s=o&&new WeakSet;function c(m,h){if(!m._zod){Fd.value=new a(h);try{Object.defineProperty(m,"_zod",Fd)}finally{Fd.value=void 0}}if(m._zod.traits.has(e))return;if(m._zod.traits.add(e),t(m,h),s){let S=Object.getPrototypeOf(m),$=m._zod.constr.prototype,x=S;for(;x&&x!==$;)x=Object.getPrototypeOf(x);let N=x??S;s.has(N)||(s.add(N),(0,zA.members)(N,o))}let g=f.prototype;for(let S in g)Object.prototype.hasOwnProperty.call(g,S)&&(S in m||(m[S]=g[S].bind(m)))}let u=i?.Parent??Object;class l extends u{}Object.defineProperty(l,"name",{value:e});function f(m){let h=i?.Parent?jA(l):this;c(h,m);let g=h._zod.deferred;if(g){for(let $ of g)$();h._zod.deferred=void 0}let S=globalThis.__zod_globalConfig?.postProcessor;return S&&S(h),h}return Object.defineProperty(f,"init",{value:c}),Object.defineProperty(f,Symbol.hasInstance,{value:m=>i?.Parent&&m instanceof i.Parent?!0:m?._zod?.traits?.has(e)}),Object.defineProperty(f,"name",{value:e}),f}wt.$brand=Symbol("zod_brand");var Bd=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};wt.$ZodAsyncError=Bd;var Gd=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};wt.$ZodEncodeError=Gd;(vh=globalThis).__zod_globalConfig??(vh.__zod_globalConfig={});wt.globalConfig=globalThis.__zod_globalConfig;function RA(e){return e&&Object.assign(wt.globalConfig,e),wt.globalConfig}});var Hd=P(yt=>{"use strict";var CA=yt&&yt.__createBinding||(Object.create?(function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}):(function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]})),xA=yt&&yt.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),DA=yt&&yt.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&CA(t,e,r);return xA(t,e),t};Object.defineProperty(yt,"__esModule",{value:!0});yt.$ZodRealError=yt.$ZodError=void 0;yt.flattenError=VA;yt.formatError=FA;yt.treeifyError=BA;yt.toDotPath=$h;yt.prettifyError=GA;var Sh=Ei(),MA=DA(G());function UA(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,MA.jsonStringifyReplacer,2)),e.message}function LA(e){this._zod.message=e}var ZA={get:UA,set:LA,enumerable:!0,configurable:!0},Jd={value:void 0,enumerable:!1},Wd={value:void 0,enumerable:!1},wh=new WeakSet([Object.prototype,Error.prototype]),Eh=(e,t)=>{e.name="$ZodError",Jd.value=e._zod,Object.defineProperty(e,"_zod",Jd),Wd.value=t,Object.defineProperty(e,"issues",Wd),Jd.value=void 0,Wd.value=void 0,Object.defineProperty(e,"message",ZA);let r=Object.getPrototypeOf(e);wh.has(r)||(wh.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let i=()=>this.message;return Object.defineProperty(this,"toString",{value:i,configurable:!0,writable:!0}),i},set(i){Object.defineProperty(this,"toString",{value:i,configurable:!0,writable:!0})}}))};yt.$ZodError=(0,Sh.$constructor)("$ZodError",Eh);yt.$ZodRealError=(0,Sh.$constructor)("$ZodError",Eh,void 0,{Parent:Error});function qA(e,t,r){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:r(),writable:!0,enumerable:!0,configurable:!0}):e[t]=r()),e[t]}function VA(e,t=r=>r.message){let r={},i=[];for(let n of e.issues)n.path.length>0?qA(r,n.path[0],()=>[]).push(t(n)):i.push(t(n));return{formErrors:i,fieldErrors:r}}function FA(e,t=r=>r.message){let r={_errors:[]},i=(n,a=[])=>{for(let o of n.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s},[...a,...o.path]));else if(o.code==="invalid_key")i({issues:o.issues},[...a,...o.path]);else if(o.code==="invalid_element")i({issues:o.issues},[...a,...o.path]);else{let s=[...a,...o.path];if(s.length===0)r._errors.push(t(o));else{let c=r,u=0;for(;u<s.length;){let l=s[u],f=u===s.length-1;if(l==="_errors"){f&&c._errors.push(t(o)),u++;continue}Object.prototype.hasOwnProperty.call(c,l)||Object.defineProperty(c,l,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let m=c[l];f&&m._errors.push(t(o)),c=m,u++}}}};return i(e),r}function BA(e,t=r=>r.message){let r={errors:[]},i=(n,a=[])=>{var o;for(let s of n.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(c=>i({issues:c},[...a,...s.path]));else if(s.code==="invalid_key")i({issues:s.issues},[...a,...s.path]);else if(s.code==="invalid_element")i({issues:s.issues},[...a,...s.path]);else{let c=[...a,...s.path];if(c.length===0){r.errors.push(t(s));continue}let u=r,l=0;for(;l<c.length;){let f=c[l],m=l===c.length-1;typeof f=="string"?(u.properties??(u.properties={}),Object.prototype.hasOwnProperty.call(u.properties,f)||Object.defineProperty(u.properties,f,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),u=u.properties[f]):(u.items??(u.items=[]),(o=u.items)[f]??(o[f]={errors:[]}),u=u.items[f]),m&&u.errors.push(t(s)),l++}}};return i(e),r}function $h(e){let t=[],r=e.map(i=>typeof i=="object"?i.key:i);for(let i of r)typeof i=="number"?t.push(`[${i}]`):typeof i=="symbol"?t.push(`[${JSON.stringify(String(i))}]`):/[^\w$]/.test(i)?t.push(`[${JSON.stringify(i)}]`):(t.length&&t.push("."),t.push(i));return t.join("")}function GA(e){let t=[],r=[...e.issues].sort((i,n)=>(i.path??[]).length-(n.path??[]).length);for(let i of r)t.push(`\u2716 ${i.message}`),i.path?.length&&t.push(` \u2192 at ${$h(i.path)}`);return t.join(`
|
|
12
|
+
Note: a legacy shell-prompt HUD block was detected in ${n} but could not be auto-removed (${a.message}). Delete the lines between '# >>> visa-cli shell hud v2 >>>' and '# <<< visa-cli shell hud v2 <<<' in ${n} by hand`}function YI(e,t=Od){let r={},i=!1;if(dt.existsSync(e)){i=!0;try{r=JSON.parse(dt.readFileSync(e,"utf-8"))}catch(n){return qe.warn("hud:settings_unreadable",{message:String(n?.message).slice(0,300)}),{installed:"malformed-json",message:"~/.claude/settings.json is not valid JSON, so the Visa HUD was not added. Fix the file, then run: visa connect claude"}}}if(r.statusLine){let n=typeof r.statusLine=="object"?r.statusLine.command:"";return Ms(n)?{installed:"already-visa",message:Lg("Visa HUD already registered in ~/.claude/settings.json.",e)}:{installed:"other-hud-present",message:HI("Another HUD is already configured (keeping it). To switch to Visa HUD, edit ~/.claude/settings.json \u2192 statusLine.command",e)}}try{return r.statusLine={type:"command",command:t()},So(e,r),{installed:"new",message:Lg(`Visa HUD registered in ~/.claude/settings.json${i?"":" (new file)"}. Restart Claude Code to see it pinned below the input.`,e)}}catch(n){return qe.warn("hud:settings_write_failed",{message:String(n?.message).slice(0,300)}),{installed:"error",message:"Could not save ~/.claude/settings.json, so the Visa HUD was not added. Check that file can be written, then run: visa connect claude"}}}function Pd(e){if(!dt.existsSync(e))return{removed:!1,status:"missing-settings",message:"No ~/.claude/settings.json found."};let t;try{t=JSON.parse(dt.readFileSync(e,"utf-8"))}catch(i){return qe.warn("hud:settings_unreadable",{message:String(i?.message).slice(0,300)}),{removed:!1,status:"malformed-json",message:"~/.claude/settings.json is not valid JSON, so the Visa HUD was left in place."}}if(!t.statusLine)return{removed:!1,status:"missing-statusline",message:"No statusLine configured."};let r=typeof t.statusLine=="object"?t.statusLine.command:"";if(!Ms(r))return{removed:!1,status:"foreign-statusline",message:"statusLine is owned by another tool \u2014 leaving it alone."};delete t.statusLine;try{So(e,t)}catch(i){return qe.warn("hud:settings_write_failed",{message:String(i?.message).slice(0,300)}),{removed:!1,status:"error",message:"Could not save ~/.claude/settings.json, so the Visa HUD was left in place."}}return{removed:!0,status:"removed",message:"Visa HUD removed from ~/.claude/settings.json. Restart Claude Code to take effect."}}var Zg,qg,dt,Vg,bt,VI,xs,Ad=Ie(()=>{"use strict";Zg=Q(require("crypto")),qg=require("child_process"),dt=Q(require("fs")),Vg=Q(require("os")),bt=Q(require("path"));Ug();on();VI=1440*60*1e3;xs="# visa-cli-hud-v1"});function Ls(e,t,r,i){try{e[t](r,i)}catch{}}var Bg=Ie(()=>{"use strict"});var qs,Td,Gg,Zs,Jg=Ie(()=>{"use strict";qs=Q(require("fs")),Td=Q(require("path")),Gg=Q(require("os")),Zs=class{static ensureConfigDir(){let t=this.getConfigDir();qs.existsSync(t)||qs.mkdirSync(t,{recursive:!0,mode:448})}static getConfigDir(){let t=process.env.VISA_CLI_HOME;return typeof t=="string"&&t.trim().length>0?Td.join(t,".visa-mcp"):Td.join(Gg.homedir(),".visa-mcp")}}});function Wg(e){let t=Yg.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function QI(){return Kg.join(Zs.getConfigDir(),KI)}function Xg(e){if((0,kd.isIP)(e)!==4)return!1;let[t]=e.split(".").map(Number);return t===127}function eP(e){let t=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(!t)return!1;let r=Number.parseInt(t[1],16),i=Number.parseInt(t[2],16);if(!Number.isFinite(r)||!Number.isFinite(i))return!1;let n=[r>>8&255,r&255,i>>8&255,i&255].join(".");return Xg(n)}function tP(e){let t=e.toLowerCase().replace(/^\[(.*)\]$/,"$1");if(t==="localhost")return!0;let r=(0,kd.isIP)(t);return r===4?Xg(t):r===6?t==="::1"||eP(t):!1}function Hg(e,t="auth.serverUrl"){let r;try{r=new URL(e)}catch{throw new Error(`${t} must be a valid URL (got: ${JSON.stringify(e)})`)}if(r.username||r.password)throw new Error(`${t} must not include username or password credentials`);if(r.protocol!=="https:"&&!(r.protocol==="http:"&&tP(r.hostname)))throw new Error(`${t} ${XI}`)}function Qg(){let e=QI();if(!Vs.existsSync(e))return{};try{let t=Vs.readFileSync(e,"utf-8"),r=JSON.parse(t);return!r||typeof r!="object"||Array.isArray(r)?(qe.warn("settings:corrupt",{path:Wg(e),reason:"not_object"}),{}):r}catch(t){return qe.warn("settings:corrupt",{path:Wg(e),error:t?.message||String(t)}),{}}}function nP(e){let t=Qg()[e];return typeof t=="string"?t:void 0}function rP(e){let t=Qg()[e];return typeof t=="boolean"?t:void 0}function iP(e){return typeof e=="string"&&/-(?:rc|alpha|beta)\./i.test(e)}function aP(){try{let e=Ps();return iP(e.version)}catch{return!1}}function oP(e){return e.envVar!==void 0&&e.envVar!==""?(Hg(e.envVar,"VISA_AUTH_URL"),e.envVar):e.settingValue!==void 0?(Hg(e.settingValue,"auth.serverUrl"),e.settingValue):e.isPrerelease?th:eh}function zd(e=process.env){let t=oP({envVar:e.VISA_AUTH_URL,settingValue:nP("auth.serverUrl"),isPrerelease:aP()}),r=new URL(t).origin,n=e.VISA_VERIFY_WEB_URL?.trim()||(r===th?cP:r===eh?sP:r);for(;n.endsWith("/");)n=n.slice(0,-1);return{authUrl:t,webUrl:n}}function bi(){return zd().authUrl}function Fs(e=process.env){let t=[e.VISA_SUPPRESS_BROWSER,e.VISA_CLI_NO_BROWSER,e.CHECKOUT_SKIP_BROWSER_OPEN];return t.some(r=>r==="true"||r==="1")?!0:t.some(r=>r!==void 0)?!1:rP("ui.suppressBrowser")??!1}var Vs,kd,Yg,Kg,KI,XI,eh,th,sP,cP,Eo=Ie(()=>{"use strict";Vs=Q(require("fs")),kd=require("node:net"),Yg=Q(require("os")),Kg=Q(require("path"));Jg();on();KI="settings.json",XI="must use https unless it points at localhost/loopback for local development";eh="https://auth.visacli.sh",th="https://auth-visa-code-preview.up.railway.app";sP="https://app.visacli.sh",cP="https://web-visa-code-preview.up.railway.app"});function uP(e){return[["openclaw",Ta.join(e,".openclaw")],["hermes",Ta.join(e,".hermes")],["claude-code",Ta.join(e,".claude")],["codex",Ta.join(e,".codex")],["gemini",Ta.join(e,".gemini")]]}function $o(e=process.env,t={}){if(e.VISA_CLI_RUNTIME&&e.VISA_CLI_RUNTIME.trim().length>0)return e.VISA_CLI_RUNTIME.trim();if(e.AGENT_RUNTIME&&e.AGENT_RUNTIME.trim().length>0)return e.AGENT_RUNTIME.trim();let r=o=>Object.entries(e).some(([s,c])=>s.startsWith(o)&&typeof c=="string"&&c.trim()!==""),i=new Set;if(r("CODEX_")&&i.add("codex"),(typeof e.CLAUDECODE=="string"&&e.CLAUDECODE.trim()!==""||r("CLAUDE_CODE_")||typeof e.CLAUDE_PROJECT_DIR=="string"&&e.CLAUDE_PROJECT_DIR.trim()!=="")&&i.add("claude-code"),r("OPENCLAW_")&&i.add("openclaw"),r("HERMES_")&&i.add("hermes"),(r("ANTIGRAVITY_")||r("GEMINI_"))&&i.add("gemini"),i.size>0)return i.size===1?i.values().next().value:void 0;let n=t.home??rh.homedir(),a=uP(n).filter(([,o])=>nh.existsSync(o));return a.length===1?a[0][0]:void 0}function jd(e=process.env,t={}){switch($o(e,t)){case"claude-code":return"claude";case"codex":return"codex";case"openclaw":return"openclaw";case"hermes":return"hermes";case"gemini":return"gemini";default:return"claude"}}var nh,rh,Ta,Nd=Ie(()=>{"use strict";nh=Q(require("fs")),rh=Q(require("os")),Ta=Q(require("path"))});var Gs={};_t(Gs,{FAILURE_EVENT_PATH:()=>ih,FAILURE_SEND_BUDGET_MS:()=>ah,cliCommandStep:()=>bP,failureFooterLines:()=>Cd,failureReportingDisabled:()=>oh,reportFailure:()=>xd,updateFailureCode:()=>wP});function oh(e=process.env){return e.NODE_ENV==="test"}function sh(e){return typeof e=="number"&&Number.isInteger(e)&&e>=100&&e<=599?e:void 0}function gP(e){return sh(e?.status)}function hP(){let e=process.platform;return e==="darwin"||e==="linux"||e==="win32"?e:"other"}function _P(e){try{let t=$o(e);return t&&pP.has(t)?t:void 0}catch{return}}function yP(e){return e instanceof Error?e.name:typeof e}function vP(e,t){let r=fP[e];if(!r)return!1;let i=Bs.join(t,`failure-report-${e}.stamp`);try{if(Date.now()-ka.statSync(i).mtimeMs<r)return!0}catch{}try{ka.mkdirSync(t,{recursive:!0,mode:448}),ka.writeFileSync(i,"",{mode:384})}catch{}return!1}function bP(e){switch(e){case"connect":case"disconnect":case"update":return e;case"config statusline":case"config hud-refresh":return"statusline";default:return"other"}}function wP(e){let t=e;return t?.code==="ENOENT"?"package_manager_not_found":t?.killed===!0?"update_timed_out":"update_command_failed"}function Cd(e,t=" "){return[`${t}log: ${Ns()}`,`${t}ref: ${e}`]}async function xd(e,t={}){try{let r=t.env??process.env,i=zn(),n=e.step??i.step,a=lP.test(e.code)?e.code:"unspecified_error",o=sh(e.httpStatus),s=vd(e.cause),c,u;e.failedRequestId&&ks.test(e.failedRequestId)?(c=e.failedRequestId,u=o):s?(c=s.requestId,u=o??s.httpStatus??void 0):e.cause!==void 0?u=o??gP(e.cause):(c=i.failedRequestId,u=o??(c?i.failedHttpStatus:void 0));let l=i.reference;if(Ls(qe,i.surface==="mcp"?"warn":"info",i.surface==="mcp"?"tool:failed":"command:failed",{step:n,code:a,kind:e.kind,status:u??null,reference:l,failedRequestId:c??null}),mP.has(a)||!(t.enabled??!oh(r))||i.reported.has(a)||(i.reported.add(a),vP(n,t.stampDir??Bs.dirname(Ns()))))return;let f=Date.now(),m=_P(r),h={reference:l,...c?{failedRequestId:c}:{},surface:i.surface,step:n,code:a,kind:e.kind,...u!==void 0?{httpStatus:u}:{},cliVersion:dP.test(Rd)?Rd:"0.0.0",platform:hP(),...m?{harness:m}:{}},g=Oa(),S=`${(t.authUrl??bi()).replace(/\/+$/,"")}${ih}`;try{let $=await(t.fetch??fetch)(S,{method:"POST",headers:{"Content-Type":"application/json","X-Source":"cli","X-Visa-CLI-Version":Rd,...Pa(g)},body:JSON.stringify(h),redirect:"error",signal:AbortSignal.timeout(Math.max(1,ah-(Date.now()-f)))});$.body?.cancel().catch(()=>{}),Ls(qe,"info","failure_report:sent",{reference:l,requestId:g,status:$.status})}catch($){Ls(qe,"info","failure_report:unsent",{reference:l,requestId:g,reason:yP($)})}}catch{}}var ka,Bs,Rd,ih,ah,lP,dP,pP,fP,mP,Oo=Ie(()=>{"use strict";ka=Q(require("node:fs")),Bs=Q(require("node:path"));Jr();Bg();on();Eo();Nd();Rd="5.0.0-rc.412",ih="/v1/cli/failure-event",ah=2e3,lP=/^[a-z][a-z0-9_]{1,63}$/,dP=/^[0-9A-Za-z.+-]{1,40}$/,pP=new Set(["claude-code","codex","openclaw","hermes","gemini"]),fP={statusline:10*6e4},mP=new Set(["setup_declined","owner_declined"])});function At(e=process.env){let t=e[SP];return typeof t=="string"&&t.trim().length>0?t:uh.join(ch.homedir(),".visa-cli")}var ch,uh,SP,za=Ie(()=>{"use strict";ch=Q(require("os")),uh=Q(require("path")),SP="VISA_CLI_HOME"});function $P(e){if(!Number.isSafeInteger(e)||e<=0)return!0;try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function ja(e,t){let r=Wi.dirname(e);yn.mkdirSync(r,{recursive:!0,mode:448});let i=`${Wi.basename(e)}.`,n=`${i}${process.pid}.${(0,lh.randomUUID)()}`,a=Wi.join(r,n),o=null,s;if(t)try{o=t.processStart(process.pid)}catch{o=null}let c=m=>yn.writeFileSync(a,t?JSON.stringify({ticket:m,pidStart:o,createdAt:t.now,token:s}):String(m)),u=()=>yn.readdirSync(r).filter(m=>m.startsWith(i)).flatMap(m=>{let h=Number(m.slice(i.length).split(".")[0]);if(!$P(h))return[];try{let g=yn.readFileSync(Wi.join(r,m),"utf8"),S=Number(g);if(t&&g.startsWith("{")){let $;try{$=JSON.parse(g)}catch{return[{name:m,ticket:0}]}if(!$||typeof $!="object"||typeof $.createdAt!="number"||!Number.isFinite($.createdAt)||!($.pidStart===null||typeof $.pidStart=="string")||!($.token===void 0||typeof $.token=="string"))return[{name:m,ticket:0}];if(!t.live({pid:h,createdAt:$.createdAt,pidStart:$.pidStart,token:$.token}))return[];S=Number($.ticket)}return[{name:m,ticket:Number.isSafeInteger(S)&&S>0?S:0}]}catch(g){if(g.code==="ENOENT")return[];throw g}}),l=!1,f=()=>{l||(yn.rmSync(a,{force:!0}),l=!0)};try{yn.writeFileSync(a,"0",{flag:"wx",mode:384}),t&&c(0);let m=Math.max(0,...u().map($=>$.ticket))+1;c(m);let h=u(),g=Dd.performance.now()+1e3;for(;h.some($=>$.name!==n&&$.ticket===0);){if(Dd.performance.now()>=g)return f(),null;Atomics.wait(EP,0,0,1),h=u()}return h.some($=>$.name!==n&&($.ticket===0||$.ticket<m||$.ticket===m&&$.name<n))?(f(),null):Object.assign(f,{bind:$=>{s=$,c(m)}})}catch(m){throw f(),m}}var lh,yn,Wi,Dd,EP,Js=Ie(()=>{"use strict";lh=require("node:crypto"),yn=Q(require("node:fs")),Wi=Q(require("node:path")),Dd=require("node:perf_hooks"),EP=new Int32Array(new SharedArrayBuffer(4))});function OP(e){if(!Number.isSafeInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t?.code==="EPERM"}}function Ws(e){try{let t=JSON.parse((0,Tt.readFileSync)(e,"utf8"));return t.version===1&&Number.isSafeInteger(t.pid)&&typeof t.token=="string"&&Number.isFinite(t.createdAt)&&(t.pidStart===void 0||t.pidStart===null||typeof t.pidStart=="string")&&(t.holder===void 0||t.holder==="finisher"||t.holder==="connect")?t:null}catch{return null}}function Md(e){if(process.platform==="win32"||!Number.isSafeInteger(e)||e<=0)return null;try{return(0,Hs.execFileSync)("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim()||null}catch{return null}}function Ud(e,t,r){if(!OP(e.pid))return!1;let i=null;try{i=(r.processStart??Md)(e.pid)}catch{i=null}return e.pidStart&&i?i===e.pidStart:t-e.createdAt<r.staleMs}function ph(e,t=Date.now()){let r=Ws(e.file);return r&&Ud(r,t,e)?r:null}function Na(e,t=Date.now(),r=process.pid,i="finisher"){let n=e.file,a=null;try{a=(e.processStart??Md)(r)}catch{a=null}let o=ja(`${n}.arbitration`,{now:t,processStart:e.processStart??Md,live:c=>(!c.token||Ws(n)?.token===c.token)&&Ud(c,t,e)});if(!o)return null;let s=!1;try{for(let c=0;c<2;c++){let u=(0,dh.randomUUID)();try{let l=(0,Tt.openSync)(n,"wx",384);try{(0,Tt.writeFileSync)(l,JSON.stringify({version:1,pid:r,token:u,createdAt:t,pidStart:a,holder:i}),"utf8"),(0,Tt.fsyncSync)(l)}finally{(0,Tt.closeSync)(l)}let f=!1,m=()=>!f&&Ws(n)?.token===u;return o.bind(u),s=!0,Object.assign(()=>{if(!f)try{m()&&(0,Tt.unlinkSync)(n)}catch{}finally{f=!0,o()}},{held:m})}catch(l){if(l?.code!=="EEXIST")throw l;let f=Ws(n),m;if(f)m=!Ud(f,t,e);else try{m=t-(0,Tt.statSync)(n).mtimeMs>=e.staleMs}catch{m=!0}if(!m)return null;try{(0,Tt.unlinkSync)(n)}catch(h){if(h?.code!=="ENOENT")throw h}}}return null}finally{s||o()}}function fh(e,t,r,i){let n=(0,Hs.spawn)(process.execPath,[e,...t],{detached:!0,stdio:"ignore",env:r,windowsHide:!0});return n.on("error",i),n.unref(),n}var Hs,dh,Tt,Ld=Ie(()=>{"use strict";Hs=require("node:child_process"),dh=require("node:crypto"),Tt=require("node:fs");Js()});var G=P(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.CONSTANT_CATCH=V.Class=V.BIGINT_FORMAT_RANGES=V.NUMBER_FORMAT_RANGES=V.primitiveTypes=V.propertyKeyTypes=V.getParsedType=V.allowsEval=V.captureStackTrace=void 0;V.assertEqual=PP;V.assertNotEqual=AP;V.toZod=TP;V.assertIs=kP;V.assertNever=zP;V.assert=jP;V.getEnumValues=NP;V.joinValues=RP;V.jsonStringifyReplacer=CP;V.cached=gh;V.nullish=xP;V.cleanRegex=DP;V.floatSafeRemainder=MP;V.defineLazy=UP;V.objectClone=LP;V.assignProp=Wr;V.mergeDefs=Hr;V.cloneDef=ZP;V.getElementAtPath=qP;V.promiseAllObject=VP;V.randomString=FP;V.esc=BP;V.slugify=GP;V.isObject=qd;V.isPlainObject=Ks;V.shallowClone=JP;V.numKeys=WP;V.escapeRegex=YP;V.clone=Si;V.normalizeParams=KP;V.createTransparentProxy=XP;V.stringifyPrimitive=hh;V.optionalKeys=QP;V.pick=eA;V.omit=tA;V.extend=nA;V.safeExtend=rA;V.merge=iA;V.partial=aA;V.required=oA;V.aborted=sA;V.explicitlyAborted=cA;V.prefixIssues=uA;V.unwrapMessage=Ra;V.attachSchema=lA;V.finalizeIssue=dA;V.getSizableOrigin=pA;V.codePointLength=mA;V.getLengthableOrigin=gA;V.parsedType=hA;V.issue=_A;V.cleanEnum=yA;V.base64ToUint8Array=_h;V.uint8ArrayToBase64=yh;V.base64urlToUint8Array=vA;V.uint8ArrayToBase64url=bA;V.hexToUint8Array=wA;V.uint8ArrayToHex=SA;V.members=EA;V.own=Ys;V.hide=$A;V.defineLazyInternal=AA;V.installLazyProp=TA;V.constantCatch=kA;var IP=Ei();function PP(e){return e}function AP(e){return e}function TP(){return e=>e}function kP(e){}function zP(e){throw new Error("Unexpected value in exhaustive check")}function jP(e){}function NP(e){let t=Object.values(e).filter(i=>typeof i=="number");return Object.entries(e).filter(([i,n])=>t.indexOf(+i)===-1).map(([i,n])=>n)}function RP(e,t="|"){return e.map(r=>hh(r)).join(t)}function CP(e,t){return typeof t=="bigint"?t.toString():t}function gh(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function xP(e){return e==null}function DP(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function MP(e,t){let r=e/t,i=Math.round(r),n=4*Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-i)<n?0:r-i}var mh=Symbol("evaluating");function UP(e,t,r){let i;Object.defineProperty(e,t,{get(){if(i!==mh)return i===void 0&&(i=mh,i=r()),i},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function LP(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Wr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Hr(...e){let t={};for(let r of e){let i=Object.getOwnPropertyDescriptors(r);Object.assign(t,i)}return Object.defineProperties({},t)}function ZP(e){return Hr(e._zod.def)}function qP(e,t){return t?t.reduce((r,i)=>r?.[i],e):e}function VP(e){let t=Object.keys(e),r=t.map(i=>e[i]);return Promise.all(r).then(i=>{let n={};for(let a=0;a<t.length;a++)n[t[a]]=i[a];return n})}function FP(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let i=0;i<e;i++)r+=t[Math.floor(Math.random()*t.length)];return r}function BP(e){return JSON.stringify(e)}function GP(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}V.captureStackTrace="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function qd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}V.allowsEval=gh(()=>{if(IP.globalConfig.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function Ks(e){if(qd(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(qd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function JP(e){return Ks(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function WP(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var HP=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}};V.getParsedType=HP;V.propertyKeyTypes=new Set(["string","number","symbol"]);V.primitiveTypes=new Set(["string","number","bigint","boolean","symbol","undefined"]);function YP(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Si(e,t,r){let i=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(i._zod.parent=e),i}function KP(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function XP(e){let t;return new Proxy({},{get(r,i,n){return t??(t=e()),Reflect.get(t,i,n)},set(r,i,n,a){return t??(t=e()),Reflect.set(t,i,n,a)},has(r,i){return t??(t=e()),Reflect.has(t,i)},deleteProperty(r,i){return t??(t=e()),Reflect.deleteProperty(t,i)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,i){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,i)},defineProperty(r,i,n){return t??(t=e()),Reflect.defineProperty(t,i,n)}})}function hh(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function QP(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}V.NUMBER_FORMAT_RANGES={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};V.BIGINT_FORMAT_RANGES={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function eA(e,t){let r=e._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let a=Hr(e._zod.def,{get shape(){let o={};for(let s of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(r.shape,s))throw new Error(`Unrecognized key: "${String(s)}"`);t[s]&&Wr(o,s,r.shape[s])}return Wr(this,"shape",o),o},checks:[]});return Si(e,a)}function tA(e,t){let r=e._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let a=Hr(e._zod.def,{get shape(){let o={...e._zod.def.shape};for(let s of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(r.shape,s))throw new Error(`Unrecognized key: "${String(s)}"`);t[s]&&delete o[s]}return Wr(this,"shape",o),o},checks:[]});return Si(e,a)}function nA(e,t){if(!Ks(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let a=e._zod.def.shape;for(let o of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(a,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let n=Hr(e._zod.def,{get shape(){let a={...e._zod.def.shape,...t};return Wr(this,"shape",a),a}});return Si(e,n)}function rA(e,t){if(!Ks(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Hr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Wr(this,"shape",i),i}});return Si(e,r)}function iA(e,t){if(!t?._zod?.def)throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=Hr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t._zod.def.shape};return Wr(this,"shape",i),i},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Si(e,r)}function aA(e,t,r,i="partial"){let a=t._zod.def.checks;if(a&&a.length>0)throw new Error(`.${i}() cannot be used on object schemas containing refinements`);let s=Hr(t._zod.def,{get shape(){let c=t._zod.def.shape,u={...c};if(r)for(let l of Reflect.ownKeys(r)){if(!Object.prototype.hasOwnProperty.call(c,l))throw new Error(`Unrecognized key: "${String(l)}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:c[l]}):c[l])}else for(let l of Reflect.ownKeys(c))u[l]=e?new e({type:"optional",innerType:c[l]}):c[l];return Wr(this,"shape",u),u},checks:[]});return Si(t,s)}function oA(e,t,r){let i=Hr(t._zod.def,{get shape(){let n=t._zod.def.shape,a={...n};if(r)for(let o of Reflect.ownKeys(r)){if(!Object.prototype.hasOwnProperty.call(a,o))throw new Error(`Unrecognized key: "${String(o)}"`);r[o]&&(a[o]=new e({type:"nonoptional",innerType:n[o]}))}else for(let o of Reflect.ownKeys(n))a[o]=new e({type:"nonoptional",innerType:n[o]});return Wr(this,"shape",a),a}});return Si(t,i)}function sA(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function cA(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function uA(e,t){return t.map(r=>{var i;return(i=r).path??(i.path=[]),r.path.unshift(e),r})}function Ra(e){return typeof e=="string"?e:e?.message}function lA(e,t,r){var i;for(let n=t;n<e.length;n++)(i=e[n]).schema??(i.schema=r)}function dA(e,t,r){var i;let n=e.inst?._zod?.traits;n?.has("$ZodType")&&(n.has("$ZodCheck")?(i=e).schema??(i.schema=e.inst):e.schema=e.inst);let a=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,o=e.message?e.message:Ra(e.inst?._zod.def?.error?.(e))??Ra(a?.(e))??Ra(t?.error?.(e))??Ra(r.customError?.(e))??Ra(r.localeError?.(e))??"Invalid input",{inst:s,schema:c,continue:u,input:l,...f}=e;return f.path??(f.path=[]),f.message=o,t?.reportInput&&(f.input=l),f}function pA(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}var fA=/[\uD800-\uDBFF]/;function mA(e){let t=e.length;if(!fA.test(e))return t;let r=t;for(let i=0;i<t-1;i++)(e.charCodeAt(i)&64512)===55296&&(e.charCodeAt(i+1)&64512)===56320&&(r--,i++);return r}function gA(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function hA(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function _A(...e){let[t,r,i]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:i}:{...t}}function yA(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function _h(e){let t=atob(e),r=new Uint8Array(t.length);for(let i=0;i<t.length;i++)r[i]=t.charCodeAt(i);return r}function yh(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function vA(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return _h(t+r)}function bA(e){return yh(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function wA(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let i=0;i<t.length;i+=2)r[i/2]=Number.parseInt(t.slice(i,i+2),16);return r}function SA(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Vd=class{constructor(...t){}};V.Class=Vd;function EA(e,t){for(let r in t){let i=Object.getOwnPropertyDescriptor(t,r);i.get?Object.defineProperty(e,r,{...i,enumerable:!1}):OA(e,r,i.value)}}function Ys(e,t,r,i=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:i,value:r}),r}function $A(e,t,r){return Ys(e,t,r,!1)}function OA(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:Ys(this,t,r.bind(this))},set(i){Ys(this,t,i)}})}function IA(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var Zd,wi=!1,PA={configurable:!0,get(){wi=!0}};function AA(e,t,r){let i=Object.getPrototypeOf(e._zod);if(t in i&&Zd!==e._zod){Zd=void 0;return}Zd=e._zod,Object.defineProperty(i,t,{configurable:!0,get(){Object.defineProperty(this,t,PA);let n=wi;wi=!1;try{let a=r(this);return wi?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:a}),wi=wi||n,a}catch(a){throw delete this[t],wi=wi||n,a}},set(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})}function TA(e,t,r,i){let n=IA(e,t);n&&Object.defineProperty(n,t,{configurable:!0,get(){let a={configurable:!0,writable:!0,enumerable:i,value:void 0};return Object.defineProperty(this,t,a),a.value=r(this),Object.defineProperty(this,t,a),a.value},set(a){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:i,value:a})}})}V.CONSTANT_CATCH="~constantCatch";function kA(e){let t=()=>e;return t[V.CONSTANT_CATCH]=!0,t}});var Ei=P(wt=>{"use strict";var vh;Object.defineProperty(wt,"__esModule",{value:!0});wt.globalConfig=wt.$ZodEncodeError=wt.$ZodAsyncError=wt.$brand=wt.NEVER=void 0;wt.$constructor=NA;wt.config=RA;var zA=G();wt.NEVER=Object.freeze({status:"aborted"});var Fd={value:void 0,enumerable:!1},bh="captureStackTrace"in Error?Error:null;function jA(e){let t=bh;if(t){let r=t.stackTraceLimit;if(typeof r=="number"){try{t.stackTraceLimit=0}catch{return bh=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function NA(e,t,r,i){let n={};function a(m){this.def=m,this.constr=f,this.traits=new Set}a.prototype=n;let o=r,s=o&&new WeakSet;function c(m,h){if(!m._zod){Fd.value=new a(h);try{Object.defineProperty(m,"_zod",Fd)}finally{Fd.value=void 0}}if(m._zod.traits.has(e))return;if(m._zod.traits.add(e),t(m,h),s){let S=Object.getPrototypeOf(m),$=m._zod.constr.prototype,x=S;for(;x&&x!==$;)x=Object.getPrototypeOf(x);let N=x??S;s.has(N)||(s.add(N),(0,zA.members)(N,o))}let g=f.prototype;for(let S in g)Object.prototype.hasOwnProperty.call(g,S)&&(S in m||(m[S]=g[S].bind(m)))}let u=i?.Parent??Object;class l extends u{}Object.defineProperty(l,"name",{value:e});function f(m){let h=i?.Parent?jA(l):this;c(h,m);let g=h._zod.deferred;if(g){for(let $ of g)$();h._zod.deferred=void 0}let S=globalThis.__zod_globalConfig?.postProcessor;return S&&S(h),h}return Object.defineProperty(f,"init",{value:c}),Object.defineProperty(f,Symbol.hasInstance,{value:m=>i?.Parent&&m instanceof i.Parent?!0:m?._zod?.traits?.has(e)}),Object.defineProperty(f,"name",{value:e}),f}wt.$brand=Symbol("zod_brand");var Bd=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};wt.$ZodAsyncError=Bd;var Gd=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};wt.$ZodEncodeError=Gd;(vh=globalThis).__zod_globalConfig??(vh.__zod_globalConfig={});wt.globalConfig=globalThis.__zod_globalConfig;function RA(e){return e&&Object.assign(wt.globalConfig,e),wt.globalConfig}});var Hd=P(yt=>{"use strict";var CA=yt&&yt.__createBinding||(Object.create?(function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}):(function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]})),xA=yt&&yt.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),DA=yt&&yt.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&CA(t,e,r);return xA(t,e),t};Object.defineProperty(yt,"__esModule",{value:!0});yt.$ZodRealError=yt.$ZodError=void 0;yt.flattenError=VA;yt.formatError=FA;yt.treeifyError=BA;yt.toDotPath=$h;yt.prettifyError=GA;var Sh=Ei(),MA=DA(G());function UA(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,MA.jsonStringifyReplacer,2)),e.message}function LA(e){this._zod.message=e}var ZA={get:UA,set:LA,enumerable:!0,configurable:!0},Jd={value:void 0,enumerable:!1},Wd={value:void 0,enumerable:!1},wh=new WeakSet([Object.prototype,Error.prototype]),Eh=(e,t)=>{e.name="$ZodError",Jd.value=e._zod,Object.defineProperty(e,"_zod",Jd),Wd.value=t,Object.defineProperty(e,"issues",Wd),Jd.value=void 0,Wd.value=void 0,Object.defineProperty(e,"message",ZA);let r=Object.getPrototypeOf(e);wh.has(r)||(wh.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let i=()=>this.message;return Object.defineProperty(this,"toString",{value:i,configurable:!0,writable:!0}),i},set(i){Object.defineProperty(this,"toString",{value:i,configurable:!0,writable:!0})}}))};yt.$ZodError=(0,Sh.$constructor)("$ZodError",Eh);yt.$ZodRealError=(0,Sh.$constructor)("$ZodError",Eh,void 0,{Parent:Error});function qA(e,t,r){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:r(),writable:!0,enumerable:!0,configurable:!0}):e[t]=r()),e[t]}function VA(e,t=r=>r.message){let r={},i=[];for(let n of e.issues)n.path.length>0?qA(r,n.path[0],()=>[]).push(t(n)):i.push(t(n));return{formErrors:i,fieldErrors:r}}function FA(e,t=r=>r.message){let r={_errors:[]},i=(n,a=[])=>{for(let o of n.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s},[...a,...o.path]));else if(o.code==="invalid_key")i({issues:o.issues},[...a,...o.path]);else if(o.code==="invalid_element")i({issues:o.issues},[...a,...o.path]);else{let s=[...a,...o.path];if(s.length===0)r._errors.push(t(o));else{let c=r,u=0;for(;u<s.length;){let l=s[u],f=u===s.length-1;if(l==="_errors"){f&&c._errors.push(t(o)),u++;continue}Object.prototype.hasOwnProperty.call(c,l)||Object.defineProperty(c,l,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let m=c[l];f&&m._errors.push(t(o)),c=m,u++}}}};return i(e),r}function BA(e,t=r=>r.message){let r={errors:[]},i=(n,a=[])=>{var o;for(let s of n.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(c=>i({issues:c},[...a,...s.path]));else if(s.code==="invalid_key")i({issues:s.issues},[...a,...s.path]);else if(s.code==="invalid_element")i({issues:s.issues},[...a,...s.path]);else{let c=[...a,...s.path];if(c.length===0){r.errors.push(t(s));continue}let u=r,l=0;for(;l<c.length;){let f=c[l],m=l===c.length-1;typeof f=="string"?(u.properties??(u.properties={}),Object.prototype.hasOwnProperty.call(u.properties,f)||Object.defineProperty(u.properties,f,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),u=u.properties[f]):(u.items??(u.items=[]),(o=u.items)[f]??(o[f]={errors:[]}),u=u.items[f]),m&&u.errors.push(t(s)),l++}}};return i(e),r}function $h(e){let t=[],r=e.map(i=>typeof i=="object"?i.key:i);for(let i of r)typeof i=="number"?t.push(`[${i}]`):typeof i=="symbol"?t.push(`[${JSON.stringify(String(i))}]`):/[^\w$]/.test(i)?t.push(`[${JSON.stringify(i)}]`):(t.length&&t.push("."),t.push(i));return t.join("")}function GA(e){let t=[],r=[...e.issues].sort((i,n)=>(i.path??[]).length-(n.path??[]).length);for(let i of r)t.push(`\u2716 ${i.message}`),i.path?.length&&t.push(` \u2192 at ${$h(i.path)}`);return t.join(`
|
|
13
13
|
`)}});var Kd=P(B=>{"use strict";var JA=B&&B.__createBinding||(Object.create?(function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}):(function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]})),WA=B&&B.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Yd=B&&B.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&JA(t,e,r);return WA(t,e),t};Object.defineProperty(B,"__esModule",{value:!0});B.safeDecodeAsync=B._safeDecodeAsync=B.safeEncodeAsync=B._safeEncodeAsync=B.safeDecode=B._safeDecode=B.safeEncode=B._safeEncode=B.decodeAsync=B._decodeAsync=B.encodeAsync=B._encodeAsync=B.decode=B._decode=B.encode=B._encode=B.validateAsync=B.validate=B.safeParseAsync=B._safeParseAsync=B.safeParse=B._safeParse=B.parseAsync=B._parseAsync=B.parse=B._parse=void 0;var Hi=Yd(Ei()),Kt=Yd(Hd()),Ca=Yd(G());function Xs(e,t){return{callee:t?.callee??e,Err:t?.Err}}var HA=e=>{let t=(r,i,n,a)=>{let o=n?{...n,async:!1}:{async:!1},s=r._zod.run({value:i,issues:[]},o);if(s instanceof Promise)throw new Hi.$ZodAsyncError;if(s.issues.length){let c=new(a?.Err??e)(s.issues.map(u=>Ca.finalizeIssue(u,o,Hi.config())));throw Ca.captureStackTrace(c,a?.callee??t),c}return s.value};return t};B._parse=HA;B.parse=(0,B._parse)(Kt.$ZodRealError);var YA=e=>{let t=async(r,i,n,a)=>{let o=n?{...n,async:!0}:{async:!0},s=r._zod.run({value:i,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(a?.Err??e)(s.issues.map(u=>Ca.finalizeIssue(u,o,Hi.config())));throw Ca.captureStackTrace(c,a?.callee??t),c}return s.value};return t};B._parseAsync=YA;B.parseAsync=(0,B._parseAsync)(Kt.$ZodRealError);var KA=e=>(t,r,i)=>{let n=i?{...i,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},n);if(a instanceof Promise)throw new Hi.$ZodAsyncError;return a.issues.length?{success:!1,error:new(e??Kt.$ZodError)(a.issues.map(o=>Ca.finalizeIssue(o,n,Hi.config())))}:{success:!0,data:a.value}};B._safeParse=KA;B.safeParse=(0,B._safeParse)(Kt.$ZodRealError);var XA=e=>async(t,r,i)=>{let n=i?{...i,async:!0}:{async:!0},a=t._zod.run({value:r,issues:[]},n);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(o=>Ca.finalizeIssue(o,n,Hi.config())))}:{success:!0,data:a.value}};B._safeParseAsync=XA;B.safeParseAsync=(0,B._safeParseAsync)(Kt.$ZodRealError);var QA=Symbol.for("zod.compile.invalid"),eT=Symbol.for("zod.compile.fallback");B.validate=((e,t,r)=>{let i=e._zod.bag.validator;return i!==void 0&&i(t)!==QA?!0:tT(e,t,r)});function tT(e,t,r){let i=r?{...r,async:!1}:{async:!1},n=e._zod.bag.fallbackRun,a;if(n?(i[eT]=!0,a=n({value:t,issues:[]},i)):a=e._zod.run({value:t,issues:[]},i),a instanceof Promise)throw new Hi.$ZodAsyncError;return a.issues.length===0}var nT=async(e,t,r)=>{let i=r?{...r,async:!0}:{async:!0},n=e._zod.run({value:t,issues:[]},i);return n instanceof Promise&&(n=await n),n.issues.length===0};B.validateAsync=nT;var rT=e=>{let t=(0,B._parse)(e),r=(i,n,a,o)=>{let s=a?{...a,direction:"backward"}:{direction:"backward"};return t(i,n,s,Xs(r,o))};return r};B._encode=rT;B.encode=(0,B._encode)(Kt.$ZodRealError);var iT=e=>{let t=(0,B._parse)(e),r=(i,n,a,o)=>t(i,n,a,Xs(r,o));return r};B._decode=iT;B.decode=(0,B._decode)(Kt.$ZodRealError);var aT=e=>{let t=(0,B._parseAsync)(e),r=async(i,n,a,o)=>{let s=a?{...a,direction:"backward"}:{direction:"backward"};return await t(i,n,s,Xs(r,o))};return r};B._encodeAsync=aT;B.encodeAsync=(0,B._encodeAsync)(Kt.$ZodRealError);var oT=e=>{let t=(0,B._parseAsync)(e),r=async(i,n,a,o)=>await t(i,n,a,Xs(r,o));return r};B._decodeAsync=oT;B.decodeAsync=(0,B._decodeAsync)(Kt.$ZodRealError);var sT=e=>(t,r,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return(0,B._safeParse)(e)(t,r,n)};B._safeEncode=sT;B.safeEncode=(0,B._safeEncode)(Kt.$ZodRealError);var cT=e=>(t,r,i)=>(0,B._safeParse)(e)(t,r,i);B._safeDecode=cT;B.safeDecode=(0,B._safeDecode)(Kt.$ZodRealError);var uT=e=>async(t,r,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return(0,B._safeParseAsync)(e)(t,r,n)};B._safeEncodeAsync=uT;B.safeEncodeAsync=(0,B._safeEncodeAsync)(Kt.$ZodRealError);var lT=e=>async(t,r,i)=>(0,B._safeParseAsync)(e)(t,r,i);B._safeDecodeAsync=lT;B.safeDecodeAsync=(0,B._safeDecodeAsync)(Kt.$ZodRealError)});var xa=P(k=>{"use strict";var dT=k&&k.__createBinding||(Object.create?(function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}):(function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]})),pT=k&&k.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),fT=k&&k.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&dT(t,e,r);return pT(t,e),t};Object.defineProperty(k,"__esModule",{value:!0});k.sha256_base64=k.sha256_hex=k.sha1_base64url=k.sha1_base64=k.sha1_hex=k.md5_base64url=k.md5_base64=k.md5_hex=k.hex=k.uppercase=k.lowercase=k.undefined=k.null=k.boolean=k.number=k.integer=k.bigint=k.string=k.date=k.creditCard=k.e164=k.httpProtocol=k.domain=k.hostname=k.base64url=k.base64=k.cidrv6=k.cidrv4=k.mac=k.ipv6=k.ipv4=k.browserEmail=k.idnEmail=k.unicodeEmail=k.rfc5322Email=k.html5Email=k.email=k.uuid7=k.uuid6=k.uuid4=k.uuid=k.guid=k.extendedDuration=k.duration=k.nanoid=k.ksuid=k.xid=k.ulid=k.cuid2=k.cuid=void 0;k.sha512_base64url=k.sha512_base64=k.sha512_hex=k.sha384_base64url=k.sha384_base64=k.sha384_hex=k.sha256_base64url=void 0;k.nanoidOfLength=gT;k.emoji=yT;k.time=wT;k.datetime=ST;var mT=fT(G());k.cuid=/^[cC][0-9a-z]{6,}$/;k.cuid2=/^[0-9a-z]+$/;k.ulid=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;k.xid=/^[0-9a-vA-V]{20}$/;k.ksuid=/^[A-Za-z0-9]{27}$/;k.nanoid=/^[a-zA-Z0-9_-]{21}$/;function gT(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}k.duration=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;k.extendedDuration=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;k.guid=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;var hT=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;k.uuid=hT;k.uuid4=(0,k.uuid)(4);k.uuid6=(0,k.uuid)(6);k.uuid7=(0,k.uuid)(7);k.email=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;k.html5Email=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;k.rfc5322Email=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;k.unicodeEmail=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u;k.idnEmail=k.unicodeEmail;k.browserEmail=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;var _T="^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function yT(){return new RegExp(_T,"u")}k.ipv4=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;k.ipv6=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var vT=e=>{let t=mT.escapeRegex(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)};k.mac=vT;k.cidrv4=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;k.cidrv6=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;k.base64=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;k.base64url=/^[A-Za-z0-9_-]*$/;k.hostname=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;k.domain=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/;k.httpProtocol=/^https?$/;k.e164=/^\+[1-9]\d{6,14}$/;k.creditCard=/^\d(?:[ -]?\d){11,18}$/;var Oh="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function bT(e){return new RegExp(`^${e}$`)}k.date=bT(Oh);function Xd(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function wT(e){return new RegExp(`^${Xd(e)}$`)}function ST(e){let t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${Xd({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,i=e.local?`${r}|${Xd({precision:e.precision})}`:r;return new RegExp(`^${Oh}T(?:${i})$`)}var ET=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};k.string=ET;k.bigint=/^-?\d+n?$/;k.integer=/^-?\d+$/;k.number=/^-?\d+(?:\.\d+)?$/;k.boolean=/^(?:true|false)$/i;var $T=/^null$/i;k.null=$T;var OT=/^undefined$/i;k.undefined=OT;k.lowercase=/^[^A-Z]*$/;k.uppercase=/^[^a-z]*$/;k.hex=/^[0-9a-fA-F]*$/;function Io(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function Po(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}k.md5_hex=/^[0-9a-fA-F]{32}$/;k.md5_base64=Io(22,"==");k.md5_base64url=Po(22);k.sha1_hex=/^[0-9a-fA-F]{40}$/;k.sha1_base64=Io(27,"=");k.sha1_base64url=Po(27);k.sha256_hex=/^[0-9a-fA-F]{64}$/;k.sha256_base64=Io(43,"=");k.sha256_base64url=Po(43);k.sha384_hex=/^[0-9a-fA-F]{96}$/;k.sha384_base64=Io(64,"");k.sha384_base64url=Po(64);k.sha512_hex=/^[0-9a-fA-F]{128}$/;k.sha512_base64=Io(86,"==");k.sha512_base64url=Po(86)});var ec=P(W=>{"use strict";var IT=W&&W.__createBinding||(Object.create?(function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}):(function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]})),PT=W&&W.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Qd=W&&W.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&IT(t,e,r);return PT(t,e),t};Object.defineProperty(W,"__esModule",{value:!0});W.$ZodCheckOverwrite=W.$ZodCheckMimeType=W.$ZodCheckProperty=W.$ZodCheckEndsWith=W.$ZodCheckStartsWith=W.$ZodCheckIncludes=W.$ZodCheckUpperCase=W.$ZodCheckLowerCase=W.$ZodCheckRegex=W.$ZodCheckStringFormat=W.$ZodCheckLengthEquals=W.$ZodCheckMinLength=W.$ZodCheckMaxLength=W.$ZodCheckSizeEquals=W.$ZodCheckMinSize=W.$ZodCheckMaxSize=W.$ZodCheckBigIntFormat=W.$ZodCheckNumberFormat=W.$ZodCheckMultipleOf=W.$ZodCheckGreaterThan=W.$ZodCheckLessThan=W.$ZodCheck=void 0;var rt=Qd(Ei()),ep=Qd(xa()),pt=Qd(G());W.$ZodCheck=rt.$constructor("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])});var tp=e=>{let t=e.value;return!pt.nullish(t)&&t.size!==void 0},np=e=>{let t=e.value;return!pt.nullish(t)&&t.length!==void 0},Qs={number:"number",bigint:"bigint",object:"date"};W.$ZodCheckLessThan=rt.$constructor("$ZodCheckLessThan",(e,t)=>{W.$ZodCheck.init(e,t);let r=Qs[typeof t.value];e._zod.onattach.push(i=>{let n=i._zod.bag,a=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<a&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=i=>{(t.inclusive?i.value<=t.value:i.value<t.value)||i.issues.push({origin:Qs[typeof i.value]??r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:i.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}});W.$ZodCheckGreaterThan=rt.$constructor("$ZodCheckGreaterThan",(e,t)=>{W.$ZodCheck.init(e,t);let r=Qs[typeof t.value];e._zod.onattach.push(i=>{let n=i._zod.bag,a=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>a&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=i=>{(t.inclusive?i.value>=t.value:i.value>t.value)||i.issues.push({origin:Qs[typeof i.value]??r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:i.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}});W.$ZodCheckMultipleOf=rt.$constructor("$ZodCheckMultipleOf",(e,t)=>{W.$ZodCheck.init(e,t),e._zod.onattach.push(r=>{var i;(i=r._zod.bag).multipleOf??(i.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?t.value!==BigInt(0)&&r.value%t.value===BigInt(0):pt.floatSafeRemainder(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}});W.$ZodCheckNumberFormat=rt.$constructor("$ZodCheckNumberFormat",(e,t)=>{W.$ZodCheck.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),i=r?"int":"number",[n,a]=pt.NUMBER_FORMAT_RANGES[t.format];e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,s.minimum=n,s.maximum=a,r&&(s.pattern=ep.integer)}),e._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:i,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort});return}}s<n&&o.issues.push({origin:"number",input:s,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:e,continue:!t.abort})}});W.$ZodCheckBigIntFormat=rt.$constructor("$ZodCheckBigIntFormat",(e,t)=>{W.$ZodCheck.init(e,t);let[r,i]=pt.BIGINT_FORMAT_RANGES[t.format];e._zod.onattach.push(n=>{let a=n._zod.bag;a.format=t.format,a.minimum=r,a.maximum=i}),e._zod.check=n=>{let a=n.value;a<r&&n.issues.push({origin:"bigint",input:a,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),a>i&&n.issues.push({origin:"bigint",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}});W.$ZodCheckMaxSize=rt.$constructor("$ZodCheckMaxSize",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=tp),e._zod.onattach.push(i=>{let n=i._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(i._zod.bag.maximum=t.maximum)}),e._zod.check=i=>{let n=i.value;n.size<=t.maximum||i.issues.push({origin:pt.getSizableOrigin(n),code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}});W.$ZodCheckMinSize=rt.$constructor("$ZodCheckMinSize",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=tp),e._zod.onattach.push(i=>{let n=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(i._zod.bag.minimum=t.minimum)}),e._zod.check=i=>{let n=i.value;n.size>=t.minimum||i.issues.push({origin:pt.getSizableOrigin(n),code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}});W.$ZodCheckSizeEquals=rt.$constructor("$ZodCheckSizeEquals",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=tp),e._zod.onattach.push(i=>{let n=i._zod.bag;n.minimum=t.size,n.maximum=t.size,n.size=t.size}),e._zod.check=i=>{let n=i.value,a=n.size;if(a===t.size)return;let o=a>t.size;i.issues.push({origin:pt.getSizableOrigin(n),...o?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!t.abort})}});W.$ZodCheckMaxLength=rt.$constructor("$ZodCheckMaxLength",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=np),e._zod.onattach.push(i=>{let n=i._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(i._zod.bag.maximum=t.maximum)}),e._zod.check=i=>{let n=i.value,a=n.length;if((typeof n=="string"&&a>t.maximum?pt.codePointLength(n):a)<=t.maximum)return;let s=pt.getLengthableOrigin(n);i.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}});W.$ZodCheckMinLength=rt.$constructor("$ZodCheckMinLength",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=np),e._zod.onattach.push(i=>{let n=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(i._zod.bag.minimum=t.minimum)}),e._zod.check=i=>{let n=i.value,a=n.length;if((typeof n=="string"&&a>=t.minimum&&a<t.minimum*2?pt.codePointLength(n):a)>=t.minimum)return;let s=pt.getLengthableOrigin(n);i.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}});W.$ZodCheckLengthEquals=rt.$constructor("$ZodCheckLengthEquals",(e,t)=>{var r;W.$ZodCheck.init(e,t),(r=e._zod.def).when??(r.when=np),e._zod.onattach.push(i=>{let n=i._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=i=>{let n=i.value,a=n.length,o=typeof n=="string"&&a>=t.length&&a<=t.length*2?pt.codePointLength(n):a;if(o===t.length)return;let s=pt.getLengthableOrigin(n),c=o>t.length;i.issues.push({origin:s,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!t.abort})}});W.$ZodCheckStringFormat=rt.$constructor("$ZodCheckStringFormat",(e,t)=>{var r,i;W.$ZodCheck.init(e,t),e._zod.onattach.push(n=>{let a=n._zod.bag;a.format=t.format,t.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(i=e._zod).check??(i.check=()=>{})});W.$ZodCheckRegex=rt.$constructor("$ZodCheckRegex",(e,t)=>{W.$ZodCheckStringFormat.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}});W.$ZodCheckLowerCase=rt.$constructor("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ep.lowercase),W.$ZodCheckStringFormat.init(e,t)});W.$ZodCheckUpperCase=rt.$constructor("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ep.uppercase),W.$ZodCheckStringFormat.init(e,t)});W.$ZodCheckIncludes=rt.$constructor("$ZodCheckIncludes",(e,t)=>{W.$ZodCheck.init(e,t);let r=pt.escapeRegex(t.includes),i=new RegExp(typeof t.position=="number"?`^.{${t.position},}${r}`:r);t.pattern=i,e._zod.onattach.push(n=>{let a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(i)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}});W.$ZodCheckStartsWith=rt.$constructor("$ZodCheckStartsWith",(e,t)=>{W.$ZodCheck.init(e,t);let r=new RegExp(`^${pt.escapeRegex(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(i=>{let n=i._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=i=>{i.value.startsWith(t.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:i.value,inst:e,continue:!t.abort})}});W.$ZodCheckEndsWith=rt.$constructor("$ZodCheckEndsWith",(e,t)=>{W.$ZodCheck.init(e,t);let r=new RegExp(`.*${pt.escapeRegex(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(i=>{let n=i._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=i=>{i.value.endsWith(t.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:i.value,inst:e,continue:!t.abort})}});function Ih(e,t,r){e.issues.length&&t.issues.push(...pt.prefixIssues(r,e.issues))}W.$ZodCheckProperty=rt.$constructor("$ZodCheckProperty",(e,t)=>{W.$ZodCheck.init(e,t),e._zod.check=r=>{let i=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(i instanceof Promise)return i.then(n=>Ih(n,r,t.property));Ih(i,r,t.property)}});W.$ZodCheckMimeType=rt.$constructor("$ZodCheckMimeType",(e,t)=>{W.$ZodCheck.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(i=>{i._zod.bag.mime=t.mime}),e._zod.check=i=>{r.has(i.value.type)||i.issues.push({code:"invalid_value",values:t.mime,input:i.value.type,inst:e,continue:!t.abort})}});W.$ZodCheckOverwrite=rt.$constructor("$ZodCheckOverwrite",(e,t)=>{W.$ZodCheck.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}})});var nc=P(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.Doc=void 0;var rp=class{constructor(t=[],r={}){this.content=[],this.indent=0,this.args=t,this.closed=r}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let i=t.split(`
|
|
14
14
|
`).filter(o=>o),n=Math.min(...i.map(o=>o.length-o.trimStart().length)),a=i.map(o=>o.slice(n)).map(o=>" ".repeat(this.indent*2)+o);for(let o of a)this.content.push(o)}compile(){let t=Function,r=this?.content??[""];return new t(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
|
|
15
15
|
${r.join(`
|
|
@@ -143,15 +143,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
143
143
|
`)}
|
|
144
144
|
`)}function cg(e,t,r){let i=r instanceof ye?r:null,n=r instanceof xt,a=i?{code:i.code,detail:i.detail,message:i.message,fix:i.fix}:{code:n?"unavailable":"internal_error",detail:n?"visa_unreachable":"unexpected",message:Hl(r,{fallback:n?"Visa could not be reached.":"The Visa CLI hit an unexpected error."}),fix:n?null:mo(r).fix},o=Ia();e==="json"?process.stdout.write(`${JSON.stringify({ok:!1,command:t,...a,reference:o})}
|
|
145
145
|
`):process.stderr.write([`Error: ${a.message}`,...a.fix?[a.fix]:[],...Cd(o,""),""].join(`
|
|
146
|
-
`)),process.exitCode=1,xd({code:a.code,kind:G$.ERROR_FAMILIES[a.code]?.kind??"unknown",cause:r})}function W$(e,t,r=process.env,i={}){return e!==void 0||$o(r,i)!==void 0?null:[`No AI app was named or found running here, so ${t} is the default. For another app: visa connect <app>`,"An app that cannot load MCP servers (Muse, say) uses the tools from this shell
|
|
146
|
+
`)),process.exitCode=1,xd({code:a.code,kind:G$.ERROR_FAMILIES[a.code]?.kind??"unknown",cause:r})}function W$(e,t,r=process.env,i={}){return e!==void 0||$o(r,i)!==void 0?null:[`No AI app was named or found running here, so ${t} is the default. For another app: visa connect <app>`,"An app that cannot load MCP servers (Muse, say) uses the tools from this shell with visa-tool. Its owner gives it the Visa skill: the Muse message in the Visa Console, or visa-tool --skill."].join(`
|
|
147
147
|
`)}async function b2(e,t){let r=J$(t.format),i=n=>{r==="table"&&process.stdout.write(`${n}
|
|
148
148
|
`)};try{let n=Number(t.wait??"900");if(!Number.isInteger(n)||n<0||n>3600)throw new ye("invalid_request","wait_seconds",400,!1);if(t.setup!==void 0&&!/^[A-Za-z0-9_-]{8,128}$/.test(t.setup))throw new ye("invalid_request","setup_key_invalid",400,!1);let a=e??jd(),o=rg(a);if(!o)throw new ye("invalid_request",`unknown_client:${a}`.slice(0,64),400,!1);L$({trigger:"connect"});let s="already mounted";sg(o)||(s=`mounted (${D$(o).configPath})`),i(`MCP server: ${o.displayName} ${s}`);let c=W$(e,o.displayName);c&&i(c),t.hud!==!1&&o.id==="claude"&&(Id(As(),{force:!0}),i("Status line: installed in Claude Code"));let u=new sa({server:bi()}),l={mode:t.replace?"replace":void 0,...t.setup?{setupKey:t.setup}:{},...t.another?{another:!0}:{},...t.agent!==void 0?{agent:t.agent}:{},client:o.id},f=Date.now()+n*1e3;await Om(u);let m=Im(l,u.server),h=await _s(l,{client:u,env:m}),g=h.state==="waiting_for_owner"?await zm(u.server,m):null,S=vt(u.server,m).generation,$=!1;for(;h.state==="waiting_for_owner";){if($||($=!0,r==="table"&&(t.open===!1||Fs()?i(`
|
|
149
149
|
Open this link to approve this computer: ${h.owner_url}`):await F$(h.owner_url,{heading:"Approve this computer as your agent in the Visa Console:"}),i(`Check that the page shows the code ${h.code}.`))),Date.now()>=f){td(r,"connect",{...h,client:o.id,pickup:g},[g?.state==="running"?"Waiting for the owner. This computer picks up approval automatically.":"Automatic pickup is interrupted. Run visa connect to resume the preserved setup."]);return}await v2(2e3),h=await _s(l,{client:u,env:m,generation:S})}if(h.state==="ended"){td(r,"connect",{...h,client:o.id},[h.reason==="declined"?"The owner declined this computer. Nothing was connected.":"The setup expired before the owner approved it. Run visa connect to start again."]),process.exitCode=1;return}let x=await u.status().catch(()=>null),N=x?.readiness?.find(D=>D.status==="incomplete")?.continuation;td(r,"connect",{...h,client:o.id,status:x},[h.already?`Already connected as ${h.agent.name}.`:`Connected as ${h.agent.name}.`,...N?.message?[`Next: ${N.message}${N.url?` (${N.url})`:""}`]:[]])}catch(n){cg(r,"connect",n)}}function H$(e,t=process.env){return`${zd(t).webUrl}/agent/enroll/agents?agent=${encodeURIComponent(e)}`}async function w2(e,t){let r=J$(t.format);try{let i=new URL(bi()).origin,n=t.agent!==void 0,a=n?[Dl(i,process.env,t.agent)].filter(Boolean):ki(i).filter(({state:f})=>f.agent||t.all&&(f.setup||f.starting||f.key_handle||f.pickup)).map(({slot:f,state:m})=>({slot:f,state:m,env:Bt(process.env,f)})),s=(n?[]:t.all?Ql.filter(f=>sg(f)):[rg(e??jd())].filter(f=>f!==void 0)).map(f=>(M$(f),f.id));t.all&&Pd(As());let c=t.all===!0||n,u=[];for(let f of c||t.revoke?a:[]){let m=f.state.agent,h=[],g=!1;c&&await ul(i,eo(),f.env,S=>{if(S.server!==i)throw new ye("conflict","agent_server_changed",409,!1);m=S.agent;let $=ll(S,f.env);return h=[...new Set([...$,...(m?Ml(f.env,{server:i,agent_id:m.id}):[]).map(x=>x.request_id)])],g=$.length===0&&(!h.length||t.force===!0),!g}),u.push({name:m?.name??"Pending setup",forgot:g,kept:c&&!g,unresolved:h,revoke_url:m?H$(m.id):null})}let l=u.length===1?u[0]:null;td(r,"disconnect",{unmounted:s,forgot_agent:l?.forgot?l.name:null,kept_agent_key:l?.kept??!1,unresolved_purchases:l?.unresolved??[],revoke_url:l?.revoke_url??null,agents:u},[s.length?`Unmounted from: ${s.join(", ")}`:"Nothing was mounted.",...u.flatMap(f=>[...f.kept?[`Kept ${f.name}'s key on this computer: ${f.unresolved.length} purchase(s) are not settled yet (${f.unresolved.join(", ")}). Visa may still need this key to finish them.`,"Let active calls finish, then check payment_status and disconnect again. `--force` forgets the key once active calls finish."]:[],...f.forgot?[f.revoke_url?`This computer forgot ${f.name}${f.unresolved.length?`, with ${f.unresolved.length} purchase(s) not settled yet`:""}. The agent still exists at Visa until the owner revokes it.`:"This computer forgot the unfinished setup."]:[],...f.revoke_url?[`Revoke ${f.name} in the Visa Console: ${f.revoke_url}`]:[]]),...t.revoke&&!u.length?["No agent is held on this computer, so there is nothing to revoke."]:[]])}catch(i){cg(r,"disconnect",i)}}function S2(e){e.command("connect [client]").description("Connect this computer: mount the Visa MCP server, then set it up as an agent (the owner approves in their browser). Safe to re-run; resumes where it left off.").option("--format <format>","Output: table (human) or json (machine)","table").option("--no-open","Print the approval link instead of opening it.").option("--no-hud","Do not install the Claude Code status line.").option("--setup <key>","Join the setup the owner started in the Visa Console.").option("--replace","Replace this agent's key with a new one (same agent, same limits).").option("--another","Set up one more agent on this computer, with its own key and limits.").option("--agent <name-or-id>","Which agent, when this computer holds several.").option("--wait <seconds>","How long to wait for the owner (0: start and return).","900").action(b2),e.command("disconnect [client]").description("Remove Visa from an AI client. --all also removes the status line and this computer's agent key.").option("--format <format>","Output: table (human) or json (machine)","table").option("--all","Every client, the status line, and this computer's agent key.").option("--revoke","Print the Visa Console page where the owner revokes this computer's agent.").option("--force","With --all or --agent: forget unsettled purchases once active calls finish.").option("--agent <name-or-id>","Forget only this agent on this computer (the others keep working).").action(w2);let t=e.command("config",{hidden:!0}).addHelpCommand(!1);t.command("statusline").description("Render the Visa status line. Run by Claude Code, not by a person.").action(()=>{process.stdout.write(`${Um()}
|
|
150
150
|
`)}),t.command("hud-refresh").description("Refresh the status line cache.").action(()=>Lm())}var G$,v2,K$=Ie(()=>{"use strict";Eo();Z$();If();Nd();B$();_d();Ad();Ti();jm();Zm();ts();bm();Sm();G$=Q(ol());Bl();Jr();Oo();Yl();v2=e=>new Promise(t=>setTimeout(t,e))});var ug,X$=Ie(()=>{"use strict";ug="6820f6e91b762e645c9bf020c0d3673bb99d4a25a824880c0d548e10bb9bc7b1"});var nO={};_t(nO,{RC_ACCESS_MESSAGE:()=>A2,RC_OPEN_COMMANDS:()=>$2,RC_OPEN_TOOLS:()=>E2,isRcBuild:()=>eO,rcAccessGranted:()=>I2});function eO(e=Yo){return/-rc\.|-beta\./.test(e)}function Q$(e){let t=Buffer.from(e),r=Buffer.from(ug);return t.length===r.length&&nd.timingSafeEqual(t,r)}function tO(e){return id.join(At(e),"rc-access")}function I2(e=process.env,t=Yo){if(!eO(t))return!0;let r=e.VISA_RC_CODE;if(r&&Q$(O2(r)))return P2(e),!0;let i=tO(e);if(!rd.existsSync(i))return!1;let n=ua(i)?.trim();return n?Q$(n):!1}function P2(e){try{let t=tO(e);rd.mkdirSync(id.dirname(t),{recursive:!0,mode:448}),Qo(t,`${ug}
|
|
151
|
-
`)}catch{}}var nd,rd,id,E2,$2,O2,A2,rO=Ie(()=>{"use strict";nd=Q(require("crypto")),rd=Q(require("fs")),id=Q(require("path"));X$();za();sl();Ti();E2=new Set(["status","connect"]),$2=new Set(["connect","disconnect","update","config"]);O2=e=>nd.createHash("sha256").update(e.trim()).digest("hex");A2="This is a release-candidate build: set VISA_RC_CODE to the access code your team provided (in this shell, or in the MCP server env block), then retry."});var iO={};_t(iO,{runPreAction:()=>T2});async function T2(e,t){for(let r of e.sweepLegacyState().removed)e.log(`removed stale v1 state file: ${r}`);e.isRcGateExemptPath(t.commandPath)||await e.rcGate({...t.topLevelCommand===void 0?{}:{topLevelCommand:t.topLevelCommand}})}var aO=Ie(()=>{"use strict"});var uO={};_t(uO,{LEGACY_ORPHAN_DIRECTORIES:()=>cO,LEGACY_ORPHAN_FILES:()=>sO,LEGACY_ORPHAN_MIN_AGE_MS:()=>lg,sweepLegacyState:()=>k2});function k2(e={}){let t=e.homeDir??oO.homedir(),r=e.now??Date.now(),i={removed:[],skippedRecent:[]};for(let n of sO){let a=_o.join(t,n.relativePath);try{let o=An.statSync(a);if(!o.isFile())continue;if(r-o.mtimeMs<lg){i.skippedRecent.push(a);continue}An.unlinkSync(a),i.removed.push(a)}catch{continue}}for(let n of cO){let a=_o.join(t,n.relativePath);try{let o=An.lstatSync(a);if(!o.isDirectory())continue;if(r-o.mtimeMs<lg){i.skippedRecent.push(a);continue}if(!An.readdirSync(a,{withFileTypes:!0}).every(c=>!c.isDirectory()||!n.child.test(c.name)?!1:An.readdirSync(_o.join(a,c.name),{withFileTypes:!0}).every(u=>u.isFile()&&n.grandchild.test(u.name))))continue;An.rmSync(a,{recursive:!0,force:!0}),i.removed.push(a)}catch{continue}}return i}var An,oO,_o,lg,sO,cO,lO=Ie(()=>{"use strict";An=Q(require("fs")),oO=Q(require("os")),_o=Q(require("path")),lg=3600*1e3,sO=[{relativePath:_o.join(".visa-mcp","agent-enroll-pending.json"),reason:"v1 enrollment hand-off; replaced by v2 identity pairing (#8490)"}],cO=[{relativePath:_o.join(".visa-cli","runtime-signer"),child:/^[0-9a-f]{32}$/,grandchild:/^visa-runtime-signer(\.exe)?(\.[0-9a-f]{12}\.tmp)?$/,reason:"content-addressed copies of the retired native key helper; the CLI signs with the TypeScript agent-key signer and never runs them (plan v14 K1)"}]});function pO(){return dg||(dg=`ms_${(0,dO.randomUUID)().replace(/-/g,"")}`),dg}var dO,dg,fO=Ie(()=>{"use strict";dO=require("node:crypto"),dg=null});function mO(e){try{e.setTag?.("cli_version","5.0.0-rc.
|
|
151
|
+
`)}catch{}}var nd,rd,id,E2,$2,O2,A2,rO=Ie(()=>{"use strict";nd=Q(require("crypto")),rd=Q(require("fs")),id=Q(require("path"));X$();za();sl();Ti();E2=new Set(["status","connect"]),$2=new Set(["connect","disconnect","update","config"]);O2=e=>nd.createHash("sha256").update(e.trim()).digest("hex");A2="This is a release-candidate build: set VISA_RC_CODE to the access code your team provided (in this shell, or in the MCP server env block), then retry."});var iO={};_t(iO,{runPreAction:()=>T2});async function T2(e,t){for(let r of e.sweepLegacyState().removed)e.log(`removed stale v1 state file: ${r}`);e.isRcGateExemptPath(t.commandPath)||await e.rcGate({...t.topLevelCommand===void 0?{}:{topLevelCommand:t.topLevelCommand}})}var aO=Ie(()=>{"use strict"});var uO={};_t(uO,{LEGACY_ORPHAN_DIRECTORIES:()=>cO,LEGACY_ORPHAN_FILES:()=>sO,LEGACY_ORPHAN_MIN_AGE_MS:()=>lg,sweepLegacyState:()=>k2});function k2(e={}){let t=e.homeDir??oO.homedir(),r=e.now??Date.now(),i={removed:[],skippedRecent:[]};for(let n of sO){let a=_o.join(t,n.relativePath);try{let o=An.statSync(a);if(!o.isFile())continue;if(r-o.mtimeMs<lg){i.skippedRecent.push(a);continue}An.unlinkSync(a),i.removed.push(a)}catch{continue}}for(let n of cO){let a=_o.join(t,n.relativePath);try{let o=An.lstatSync(a);if(!o.isDirectory())continue;if(r-o.mtimeMs<lg){i.skippedRecent.push(a);continue}if(!An.readdirSync(a,{withFileTypes:!0}).every(c=>!c.isDirectory()||!n.child.test(c.name)?!1:An.readdirSync(_o.join(a,c.name),{withFileTypes:!0}).every(u=>u.isFile()&&n.grandchild.test(u.name))))continue;An.rmSync(a,{recursive:!0,force:!0}),i.removed.push(a)}catch{continue}}return i}var An,oO,_o,lg,sO,cO,lO=Ie(()=>{"use strict";An=Q(require("fs")),oO=Q(require("os")),_o=Q(require("path")),lg=3600*1e3,sO=[{relativePath:_o.join(".visa-mcp","agent-enroll-pending.json"),reason:"v1 enrollment hand-off; replaced by v2 identity pairing (#8490)"}],cO=[{relativePath:_o.join(".visa-cli","runtime-signer"),child:/^[0-9a-f]{32}$/,grandchild:/^visa-runtime-signer(\.exe)?(\.[0-9a-f]{12}\.tmp)?$/,reason:"content-addressed copies of the retired native key helper; the CLI signs with the TypeScript agent-key signer and never runs them (plan v14 K1)"}]});function pO(){return dg||(dg=`ms_${(0,dO.randomUUID)().replace(/-/g,"")}`),dg}var dO,dg,fO=Ie(()=>{"use strict";dO=require("node:crypto"),dg=null});function mO(e){try{e.setTag?.("cli_version","5.0.0-rc.412"||"unknown"),zn().surface==="mcp"&&e.setTag?.("mcp_session",pO())}catch{}}function gO(e){try{e.setTag?.("reference",zn().reference)}catch{}}var hO=Ie(()=>{"use strict";Jr();fO()});var LO={};_t(LO,{FATAL_FLUSH_TIMEOUT_MS:()=>gg,addSessionBreadcrumb:()=>eG,captureExceptionForObservability:()=>UO,captureMessageForObservability:()=>XB,defaultProcessCrashHandlerDeps:()=>FB,honoTracingMiddleware:()=>YB,initExpressSentry:()=>JB,initNodeObservability:()=>GB,normalizeIdentityPathSegments:()=>vo,normalizeRedisSpanDescription:()=>xO,registerProcessCrashHandlers:()=>BB,reportFatalAndExit:()=>CO,runBackgroundTick:()=>VB,scrubMerchantUrl:()=>NB,scrubString:()=>Tn,setRequestObservabilityContext:()=>QB,setupExpressSentryErrorHandler:()=>HB,trapBackgroundTickFailure:()=>kO,trapCatastrophicGate:()=>ZB});function U2(){let e=process.env.SENTRY_RELEASE?.trim();if(e)return e;let t=process.env.RAILWAY_GIT_COMMIT_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.GITHUB_SHA||process.env.GIT_COMMIT||"";if(t)return t;let r=typeof process.env.npm_package_version=="string"?process.env.npm_package_version:"";if(r)return r}function wO(){let e={railwayPublicDomain:process.env.RAILWAY_PUBLIC_DOMAIN,railwayEnvironment:process.env.RAILWAY_ENVIRONMENT,railwayEnvironmentName:process.env.RAILWAY_ENVIRONMENT_NAME,railwayGitBranch:process.env.RAILWAY_GIT_BRANCH};return(0,_O.isExplicitProductionRailEnvironment)(e)?"production":(0,_O.isPublicPreviewRailEnvironment)(e)?"staging":null}function Os(){let e=process.env.SENTRY_ENVIRONMENT?.trim();if(e)return e;let t=wO();return t||(process.env.NODE_ENV==="production"?"production":"development")}function Z2(){let e=Os(),t=wO();return t?t==="production"&&e!=="production"?{status:"mismatch",environment:e,railwayClass:t,message:`production deploy is labeled environment=${e}; set SENTRY_ENVIRONMENT=production so production events do not land in the ${e} stream`}:t==="staging"&&e!==pg?L2.has(e)?{status:"legacy",environment:e,railwayClass:t,message:`staging/preview deploy is labeled environment=${e}; the canonical value is ${pg} \u2014 finish the cutover in docs/runbooks/sentry-environment-migration.md (#8777)`}:{status:"mismatch",environment:e,railwayClass:t,message:`staging/preview deploy is labeled environment=${e}; set SENTRY_ENVIRONMENT=${pg} so staging events do not pollute the ${e} stream`}:{status:"ok",environment:e}:{status:"indeterminate",environment:e}}function q2(){let e=process.env.SENTRY_TRACES_SAMPLE_RATE?.trim();if(e===""||e===void 0)return Os()==="production"?.15:1;let t=Number(e);return!Number.isFinite(t)||t<0?0:Math.min(t,1)}function bo(e){return F2[e]?.capture===!0}function ad(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function J2(e){let t=ad(e);return G2.has(t)?!0:B2.some(r=>t.includes(r))}function EO(e){let t=0,r=!1;for(let i=e.length-1;i>=0;i--){let n=e.charCodeAt(i)-48;r&&(n*=2,n>9&&(n-=9)),t+=n,r=!r}return t%10===0}function oB(e,t=od){if(typeof e!="string"||e.length===0)return e;let r=[],i=e.replace(W2,n=>(r.push(n),`\0U${r.length-1}\0`));return i=i.replace(Y2,t).replace(H2,`$1${t}@`).replace(K2,t).replace(X2,`$1 ${t}`).replace(Q2,t).replace(eB,t).replace(tB,t).replace(iB,`$1${t}`).replace(rB,`$1"${t}"`).replace(nB,`$1$2${t}`).replace(aB,n=>{let a=n.replace(/[ -]/g,"");return a.length>=14&&a.length<=19&&EO(a)?t:n}),i.replace(/\u0000U(\d+)\u0000/g,(n,a)=>r[Number(a)]??"")}function uB(e){let t=ad(e),r=sB[t];if(r)return r;for(let[i,n]of cB)if(t.includes(i))return n;return null}function fB(e,t){return bo("contact_details")?e:e.replace(lB,t).replace(dB,t).replace(pB,t)}function yB(e){try{if(!e||typeof e!="object")return{error_code:"unclassified"};let t=e,r=[t.code,t.type].find(n=>typeof n=="string"&&hB.test(n))??(typeof t.code=="number"&&Number.isSafeInteger(t.code)?String(t.code):void 0),i=typeof t.name=="string"&&_B.test(t.name)?t.name:void 0;return{error_code:r??"unclassified",...i?{error_name:i}:{}}}catch{return{error_code:"unclassified"}}}function vB(e){if(bo("content")&&e instanceof Error)return e;let{error_code:t,error_name:r}=yB(e),i=new Error(t);i.name=r??"Error";let n=[];try{if(e instanceof Error){let{name:a,message:o,stack:s}=e;if(typeof a=="string"&&typeof o=="string"&&typeof s=="string"){let c=a===""?o:o===""?a:`${a}: ${o}`;if(s.startsWith(`${c}
|
|
152
152
|
`)){let u=s.slice(c.length+1).split(`
|
|
153
153
|
`);u.every(l=>/^\s+at \S/.test(l))&&(n=u)}}}}catch{}return i.stack=[`${i.name}: ${t}`,...n].join(`
|
|
154
|
-
`),i}function OO(e,t){return e.length>t?`${e.slice(0,t)}\u2026[truncated]`:e}function $s(e){return OO(e,$O)}function bB(e){if(typeof e=="number"&&!Number.isInteger(e))return!1;let t=typeof e=="bigint"?e.toString():e.toFixed(0);return/^\d{14,19}$/.test(t)&&EO(t)}function sd(e,t={}){return typeof e!="string"||e.length===0?e:fB(oB(e,t.neverMarker??od),t.offMarker??yo)}function wB(e,t={}){return cd(e,void 0,0,new WeakSet,t)}function Is(e,t,r={}){return cd(t,e,0,new WeakSet,r)}function yi(e,t={}){if(!e||typeof e!="object")return;let r=e;for(let i of Object.keys(r))r[i]=Is(i,r[i],t)}function cd(e,t,r,i,n){if(t!==void 0){if(J2(t))return n.neverMarker??od;if(n.withheldKeys?.has(ad(t)))return e==null?e:n.offMarker??yo;let a=uB(t);if(a&&!bo(a))return e==null?e:n.offMarker??yo}if(e==null)return e;if(typeof e=="string"){let a=sd(e,n);return t!==void 0&&mB.has(ad(t))?$s(a):a}return typeof e=="number"||typeof e=="bigint"?bB(e)?n.neverMarker??od:e:typeof e!="object"?e:e instanceof Error?$s(sd(e.message,n)):r>=(n.maxDepth??8)?"[depth-limit]":i.has(e)?"[circular]":(i.add(e),Array.isArray(e)?e.map(a=>cd(a,t,r+1,i,n)):Object.fromEntries(Object.entries(e).map(([a,o])=>[a,cd(o,a,r+1,i,n)])))}function EB(e,t=SB){let r=e.trim();if(r.startsWith("{")&&r.endsWith("}"))try{return JSON.stringify(wB(JSON.parse(r),t))}catch{}return OO(sd(e,t),gB)}function TB(e){return IB.test(e)||PB.test(e)||AB.test(e)}function vo(e){if(typeof e!="string"||e.length===0)return e;let t=e.search(/[?#]/),r=t===-1?e:e.slice(0,t),i=t===-1?"":e.slice(t),n=/^[a-z][a-z0-9+.-]*:\/\/[^/]*/i.exec(r),a=n?n[0]:"",s=r.slice(a.length).split("/").map(c=>TB(c)?OB:c).join("/");return`${a}${s}${i}`}function Tn(e){return sd(e,Yt)}function kB(e){yi(e,Yt)}function zB(e){!e||typeof e!="object"||(kB(e.headers),e.cookies!==void 0&&(e.cookies=PO),typeof e.url=="string"&&(e.url=vo(Tn(e.url))),typeof e.query_string=="string"&&(e.query_string=Tn(e.query_string)),e.data!==void 0&&(e.data=bo("content")?Is("data",e.data,Yt):yo))}function jB(e){let t=e.tags;t&&typeof t.url=="string"&&(t.url=vo(Tn(t.url))),typeof e.transaction=="string"&&(e.transaction=vo(Tn(e.transaction)))}function NB(e){if(!e)return"";try{let t=new URL(e),r=vo(Tn(t.pathname));return`${t.origin}${r}`}catch{let t=e.split(/[?#]/,1)[0]??"";return vo(Tn(t))}}function RB(e){let r=e.exception?.values;if(Array.isArray(r))for(let i of r)i&&typeof i.value=="string"&&(i.value=$s(Tn(i.value)))}function CB(e){typeof e.message=="string"&&(e.message=$s(Tn(e.message)));let t=e.logentry;t&&typeof t=="object"&&(typeof t.message=="string"&&(t.message=$s(Tn(t.message))),t.params!==void 0&&(t.params=Is("params",t.params,Yt)))}function AO(e){try{if(e&&typeof e.message=="string"&&(e.message=ud(e.message)),e&&e.data&&typeof e.data=="object"){yi(e.data,TO);let t=e.data;e.category==="console"&&Array.isArray(t.arguments)&&(t.arguments=t.arguments.map(r=>typeof r=="string"?ud(r):r))}return e}catch{return null}}function xB(e){let t=e.breadcrumbs,r=Array.isArray(t)?t:t?.values;if(Array.isArray(r))for(let i=r.length-1;i>=0;i--){let n=r[i];n&&typeof n=="object"&&(AO(n)||r.splice(i,1))}}function ud(e){return EB(e,TO)}function DB(e){let t=e.contexts;if(!t||typeof t!="object")return;let r=t.response;r&&typeof r=="object"&&!Array.isArray(r)?(delete t.response,yi(t,Yt),yi(r,Yt),r.data!==void 0&&(r.data=bo("content")?Is("data",r.data,Yt):yo),t.response=r):yi(t,Yt)}function MB(e){let t=e.spans;if(Array.isArray(t))for(let r of t)!r||typeof r!="object"||(typeof r.description=="string"&&(r.description=Tn(r.description)),r.data&&typeof r.data=="object"&&yi(r.data,Yt))}function UB(e){try{return e&&typeof e.message=="string"&&(e.message=ud(e.message)),e&&typeof e.body=="string"&&(e.body=ud(e.body)),e&&e.attributes&&typeof e.attributes=="object"&&yi(e.attributes,Yt),e}catch{return null}}function yO(e){try{return zB(e.request),e.user!==void 0&&(e.user=bo("account_identifiers")?Is("user",e.user,Yt):void 0),yi(e.extra,Yt),DB(e),yi(e.tags,Yt),jB(e),CB(e),RB(e),xB(e),MB(e),e}catch{return null}}function ZB(e){let t=(e.now??Date.now)(),r=fg.get(e.component);if(r){if(r.totalRejections+=1,t-r.lastCapturedAt<LB)return;r.lastCapturedAt=t}else fg.set(e.component,{lastCapturedAt:t,totalRejections:1});if(process.env.SENTRY_DSN?.trim())try{dd.withScope(i=>{i.setFingerprint(["catastrophic-gate",e.component]),i.setLevel(e.severity??"error"),i.setTag("component",e.component),i.setTag("catastrophic_gate","true");let n=fg.get(e.component)?.totalRejections??1;if(i.setTag("total_rejections_in_window",String(n)),e.tags)for(let[o,s]of Object.entries(e.tags))i.setTag(o,typeof s=="string"?s:String(s));let a=new Error(e.reason);a.name="CatastrophicGateError",dd.captureException(a)})}catch{}}function kO(e){try{let t=(e.now??Date.now)(),r=mg.get(e.component);if(r){if(r.totalFailures+=1,t-r.lastCapturedAt<qB)return;r.lastCapturedAt=t}else mg.set(e.component,{lastCapturedAt:t,totalFailures:1});if(!process.env.SENTRY_DSN?.trim())return;let i=e.error instanceof Error?e.error:new Error(String(e.error));pd.withScope(n=>{if(n.setFingerprint(["background-tick",e.component]),n.setLevel(e.severity??"error"),n.setTag("component",e.component),n.setTag("background_tick","true"),n.setExtra("total_failures_since_boot",mg.get(e.component)?.totalFailures??1),e.extra)for(let[a,o]of Object.entries(e.extra))n.setExtra(a,o);pd.captureException(i)})}catch{}}async function VB(e,t,r){try{await t()}catch(i){kO({component:e,error:i,...r})}}function jO(e){return new Promise(t=>{setTimeout(t,e).unref?.()})}function NO(e){return e instanceof Error?e:new Error(String(e))}function RO(e,t,r,i){e.log({level:"error",ts:i,component:e.component??"process",msg:t,error:r.message,stack:r.stack})}async function CO(e,t,r){let i=NO(t);try{RO(r,e,i,new Date().toISOString()),r.capture(i,{component:r.component??"process",event:e}),await Promise.race([r.flush(gg),(r.delay??jO)(gg)])}catch{}finally{r.exit(1)}}function FB(e){return{capture:e,flush:t=>zO.flush(t),exit:t=>process.exit(t),log:t=>console.error(JSON.stringify(t)),delay:jO}}function BB(e){process.on("unhandledRejection",t=>{let r=NO(t);try{RO(e,"unhandledRejection",r,new Date().toISOString()),e.capture(r,{component:e.component??"process",event:"unhandledRejection"}),e.onError?.("unhandledRejection",r)}catch{}}),process.on("uncaughtException",t=>{e.onError?.("uncaughtException",t),CO("uncaughtException",t,e)})}function xO(e){return e.replace(/:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,":?").replace(/:[a-f0-9]{16,}/gi,":?")}function DO(e){try{let t=Z2();if(t.status==="legacy"){console.warn(`level=warn component=sentry-env-binding-legacy service=${e} railway_class=${t.railwayClass} environment=${t.environment} ${t.message}`);return}if(t.status!=="mismatch")return;console.error(`level=error component=sentry-env-binding-mismatch service=${e} railway_class=${t.railwayClass} environment=${t.environment} ${t.message}`),Xe.withScope(r=>{r.setTag("component","sentry-env-binding-mismatch"),r.setTag("railway_class",t.railwayClass),r.setLevel("error"),r.setFingerprint(["sentry-env-binding-mismatch"]),Xe.captureMessage(`Sentry environment binding mismatch: ${e}`)})}catch{}}function MO(e){let t=U2();return{environment:Os(),...t?{release:t}:{},tracesSampleRate:q2(),enableLogs:!0,integrations:[Xe.consoleLoggingIntegration({levels:["warn","error"]})],beforeSend(r){let i=yO(r);return i===null?null:i},beforeSendTransaction(r){try{for(let n of r.spans??[])n.description&&(n.description=xO(n.description));let i=yO(r);return i===null?null:i}catch{return null}},beforeBreadcrumb(r){return AO(r)},beforeSendLog(r){return UB(r)},initialScope:r=>(r.setTag("service",e),r)}}function GB(e){if(ld)return;let t=process.env.SENTRY_DSN?.trim();if(!t){e.dsnProvided=!1;return}e.dsnProvided=!0;try{Xe.init({dsn:t,...MO(e.serviceName)}),ld=!0,console.log(`[visa/observability] Sentry initialized service=${e.serviceName} env=${Os()}`),DO(e.serviceName)}catch(r){console.error("[visa/observability] Sentry.init failed:",r),e.dsnProvided=!1}}function JB(e){if(ld)return;let t=process.env.SENTRY_DSN?.trim();if(!t){e.dsnProvided=!1;return}e.dsnProvided=!0;try{Xe.init({dsn:t,...MO(e.serviceName),integrations:[Xe.expressIntegration(),Xe.consoleLoggingIntegration({levels:["warn","error"]})]}),ld=!0,console.log(`[visa/observability] Sentry initialized service=${e.serviceName} env=${Os()}`),DO(e.serviceName)}catch(r){console.error("[visa/observability] Sentry.init (express) failed:",r),e.dsnProvided=!1}}function WB(e){let t=e,r=Number(t?.status??t?.statusCode);return Number.isInteger(r)&&r>=400&&r<=599?r:500}function HB(e){process.env.SENTRY_DSN?.trim()&&e.use((t,r,i,n)=>{try{let a=WB(t);if(a>=500){let o=r?.route?.path;UO(vB(t),{component:"express",http_status:String(a),route:typeof o=="string"?`${r.baseUrl??""}${o}`:"unmatched"})}}catch{}n(t)})}function YB(){return async(e,t)=>{if(!process.env.SENTRY_DSN?.trim()){await t();return}let r=e.req.path,i=e.req.method;return Xe.startSpan({op:"http.server",name:`${i} ${r}`,attributes:{"http.method":i,"http.route":r}},async()=>{try{await t()}catch(n){throw Xe.captureException(n),n}})}}function UO(e,t,r){if(process.env.SENTRY_DSN?.trim())try{Xe.withScope(i=>{if(t)for(let[n,a]of Object.entries(t))i.setTag(n,a);if(r?.extra)for(let[n,a]of Object.entries(r.extra))i.setExtra(n,a);r?.fingerprint&&i.setFingerprint(r.fingerprint),r?.clearBreadcrumbs&&i.clearBreadcrumbs(),r?.level&&i.setLevel(r.level),Xe.captureException(e)})}catch{}}function KB(e,t){if(t)for(let[r,i]of Object.entries(t))i==null||i===""||e.setTag(r,String(i))}function XB(e,t,r){if(process.env.SENTRY_DSN?.trim())try{Xe.withScope(i=>{if(KB(i,t),r?.extra)for(let[n,a]of Object.entries(r.extra))i.setExtra(n,a);if(r?.contexts)for(let[n,a]of Object.entries(r.contexts))i.setContext(n,a);r?.fingerprint&&i.setFingerprint(r.fingerprint),r?.level&&i.setLevel(r.level),Xe.captureMessage(e)})}catch{}}function QB(e){if(process.env.SENTRY_DSN?.trim())try{let t=Xe.getCurrentScope();e.userLogin&&t.setUser({id:e.userLogin,username:e.userLogin}),e.toolName&&t.setTag("tool_name",e.toolName),e.eventKind&&t.setTag("event_kind",e.eventKind),e.endpoint&&t.setTag("endpoint",e.endpoint),e.source&&t.setTag("source",e.source),e.authMethod&&t.setTag("auth_method",e.authMethod),e.visaKeyAuthOutcome&&t.setTag("visa_key_auth_outcome",e.visaKeyAuthOutcome),e.visaKeyServingEnvironment&&t.setTag("visa_key_serving_environment",e.visaKeyServingEnvironment),e.visaKeyEnvironment&&t.setTag("visa_key_environment",e.visaKeyEnvironment),e.paymentRail&&t.setTag("payment_rail",e.paymentRail),e.paymentCurrency&&t.setTag("payment_currency",e.paymentCurrency),e.merchantName&&t.setTag("merchant_name",e.merchantName),e.protocol&&t.setTag("protocol",e.protocol),e.sessionBudgetId&&t.setTag("session_budget_id",e.sessionBudgetId),e.resolvedModel&&t.setTag("resolved_model",e.resolvedModel),e.railwayServiceName&&t.setTag("railway_service",e.railwayServiceName),e.railwayEnvironmentName&&t.setTag("railway_environment",e.railwayEnvironmentName),typeof e.resultSuccess=="boolean"&&t.setTag("result_success",String(e.resultSuccess)),typeof e.httpStatus=="number"&&t.setTag("http_status",String(e.httpStatus));let r={};e.requestId&&(r.request_id=e.requestId),t.setContext("request",r);let i={};typeof e.paymentAmount=="number"&&(i.payment_amount=e.paymentAmount),e.transactionId&&(i.transaction_id=e.transactionId),Object.keys(i).length>0&&t.setContext("payment",i);let n={};e.railwayDeploymentId&&(n.deployment_id=e.railwayDeploymentId),e.railwayReplicaId&&(n.replica_id=e.railwayReplicaId),Object.keys(n).length>0&&t.setContext("railway",n)}catch{}}function eG(e,t,r="info"){if(process.env.SENTRY_DSN?.trim())try{Xe.addBreadcrumb({category:"session-budget",message:e,level:r,data:t})}catch{}}var Xe,dd,pd,zO,z2,vO,j2,bO,N2,R2,C2,x2,D2,M2,_O,pg,L2,SO,V2,PJ,F2,B2,G2,W2,H2,Y2,K2,X2,Q2,eB,tB,nB,rB,iB,aB,od,sB,cB,lB,dB,pB,yo,$O,mB,gB,hB,_B,IO,SB,PO,$B,Yt,OB,IB,PB,AB,TO,LB,fg,qB,mg,gg,ld,ZO=Ie(()=>{"use strict";Xe=Q(require("@sentry/node"),1),dd=Q(require("@sentry/node"),1),pd=Q(require("@sentry/node"),1),zO=Q(require("@sentry/node"),1),z2=Object.create,vO=Object.defineProperty,j2=Object.getOwnPropertyDescriptor,bO=Object.getOwnPropertyNames,N2=Object.getPrototypeOf,R2=Object.prototype.hasOwnProperty,C2=(e,t)=>function(){try{return t||(0,e[bO(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(i){throw t=0,i}},x2=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bO(t))!R2.call(e,n)&&n!==r&&vO(e,n,{get:()=>t[n],enumerable:!(i=j2(t,n))||i.enumerable});return e},D2=(e,t,r)=>(r=e!=null?z2(N2(e)):{},x2(t||!e||!e.__esModule?vO(r,"default",{value:e,enumerable:!0}):r,e)),M2=C2({"../shared/dist/rail-preview.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeRailEnvironmentValue=a,e.isLiveVgsEnvironment=o,e.isExplicitProductionRailEnvironment=s,e.isPublicPreviewRailEnvironment=c,e.clickhouseDatabaseHasStagingMarker=l,e.resolveClickhouseEnvBinding=f,e.resolveDeploymentEnvClass=m,e.detectDeploymentEnvNodeEnvMismatch=h;var t=new Set(["visacli.sh","app.visacli.sh","auth.visacli.sh","api.visacli.sh"]);function r(g){return(g||"").trim().toLowerCase()}function i(g){let S=r(g),$=S;(S.startsWith("http://")||S.startsWith("https://"))&&($=S.slice(S.indexOf("://")+3));let x=$.indexOf("/");x!==-1&&($=$.slice(0,x));let N=$.indexOf(":");return N!==-1&&($=$.slice(0,N)),$.startsWith("www.")?$.slice(4):$}function n(g,S){let $="";for(let x of r(g)){if(x>="a"&&x<="z"||x>="0"&&x<="9"){$+=x;continue}if($&&S.has($))return!0;$=""}return $?S.has($):!1}function a(g){return r(g)}function o(g){return new Set(["live","prod","production"]).has(a(g))}function s(g){let S=i(g.railwayPublicDomain),$=r(g.railwayEnvironment),x=r(g.railwayEnvironmentName),N=r(g.railwayGitBranch);return t.has(S)||$==="production"||x==="production"||N==="main"||N==="production"}function c(g){if(s(g))return!1;let S=i(g.railwayPublicDomain),$=new Set(["preview","staging","stage"]),x=new Set(["preview"]),N=r(g.railwayGitBranch);return n(S,x)||n(g.railwayEnvironment,$)||n(g.railwayEnvironmentName,$)||N==="staging"||N==="preview"||S.endsWith(".up.railway.app")||S.endsWith(".railway.app")}var u=new Set(["staging","stage","preview"]);function l(g){let S=r(g);if(!S)return!1;for(let $ of S.split(/[^a-z0-9]+/))if(u.has($))return!0;return!1}function f(g){let S=(g.clickhouseDatabase||"").trim(),$=l(S);return s(g)?$?{status:"mismatch",environment:"production",database:S,message:`production deploy is pointed at a non-production ClickHouse database (${S||"<empty>"}); production must use an unmarked database such as visa_mcp`}:{status:"ok",environment:"production",database:S}:c(g)?$?{status:"ok",environment:"preview",database:S}:{status:"mismatch",environment:"preview",database:S,message:`staging/preview deploy is pointed at the production ClickHouse database (${S||"<empty>"}); staging must use a marked database such as visa_mcp_staging`}:{status:"indeterminate"}}function m(g){return s(g)?"production":c(g)?"preview":"unknown"}function h(g,S){let $=m(g),x=(S||"").trim().toLowerCase();return $==="unknown"?{status:"indeterminate",deploymentEnv:$,nodeEnv:x,message:null}:$==="production"?x===""||x==="production"?{status:"ok",deploymentEnv:$,nodeEnv:x,message:null}:{status:"mismatch",deploymentEnv:$,nodeEnv:x,message:`Railway signals classify this deploy as production, but NODE_ENV=${x||"<empty>"}. Dev-only guards keyed on NODE_ENV!=='production' would silently activate. Set NODE_ENV=production on this Railway service.`}:new Set(["","development","test","preview","staging","production"]).has(x)?{status:"ok",deploymentEnv:$,nodeEnv:x,message:null}:{status:"mismatch",deploymentEnv:$,nodeEnv:x,message:`Railway signals classify this deploy as preview/staging, but NODE_ENV=${x||"<empty>"}. Set NODE_ENV=production on deployed Railway preview services.`}}}}),_O=D2(M2());pg="staging",L2=new Set(["preview"]);SO={service_health:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Errors and stack traces, HTTP status, latency, route and tool names, service and release names, error codes and error class names. Unhandled 5xx route errors reach Sentry by class, code (only the code its producer set, never inferred from the message), route and stack frames, without the message, because a message can quote a request or an upstream response. Where error text is still printed it is capped at 300 characters: error, message and msg fields, other exception values, Sentry event messages, breadcrumbs, and plain-text log lines (one printed error, across all its lines, shares one 300-character budget; its stack frames share a separate 1,000-character budget). A JSON log line is filtered by its keys instead. ClickHouse keeps only code-shaped errors while content is off.",why:"Find and fix failures; uptime and latency alerts."},usage:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Which feature or tool was used, when, from which client (CLI version, connector, MCP client name), and session grouping ids.",why:"Know what is used, drive version upgrades, and spot broken clients."},account_identifiers:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Internal account and agent ids, sign-in login handle, the profile display name, and client IP addresses. Logs never carry the sign-in handle, whatever this switch says.",why:"Per-account support, abuse investigation, and per-owner dashboards."},payment_facts:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Payment rail, amount, currency, merchant (a hostname for client-reported payments, the recipient address for Tempo; never agent-written text), on-chain transaction hash and internal transaction id, payment outcome codes. B payment request rows project only rail, currency and proven moved amount from the validated public payment resource: exact asset micros become major units, USDC.e is labelled USDC, and unresolved or conservative amounts stay unknown. Request rows can repeat a payment; they are not deduplicated settlement or spend records. In logs, the plain field names amount, amount_micros, currency, rail, recipient and merchant_domain follow this switch too.",why:"Spend and settlement dashboards and payment-failure alerts. Not the financial record: that lives in the payments tables."},contact_details:{capture:!1,clickhouseRetentionDays:30,purgeStoredWhenOff:"approved",what:"Email addresses, phone numbers and postal addresses.",why:"Not needed for operations; kept off, as today."},content:{capture:!1,clickhouseRetentionDays:90,purgeStoredWhenOff:"held",what:"Prompts, semantic request parameters, tool results, error text written by clients, and agent-written purchase descriptions. Raw HTTP bodies, credentials and private approval-context carriers are always excluded.",why:"Off. Only for debugging with explicit, reviewed sign-off."},session_replay:{capture:!0,clickhouseRetentionDays:0,purgeStoredWhenOff:"approved",what:"Masked browser session replays from the web app (all text and inputs masked, media blocked, no network bodies): 5% of sessions and every session with an error.",why:"Reproduce web bugs. Sentry only; never written to ClickHouse."}},V2=["body","requestbody","responsebody","rawbody","bodybase64","headers","original","originalcontext","requestedterms","preparedterms","nativechargerequest","reviewdetails","approvaldetails","prepared","intent","signinginput"],PJ=Object.keys(SO),F2=SO;B2=["authorization","cookie","password","passwd","passphrase","secret","token","apikey","adminkey","privatekey","signingkey","masterkey","encryptionkey","keyprefix","keymaterial","credential","voucher","hmac","jwt","bearer","mnemonic","seedphrase","cardnumber","cardnum","cvv","cvc","cryptogram","davv","tavv","expmonth","expyear","expirymonth","expiryyear","expirationdate","cardholder","networktoken","vgs","webauthn","passkey","attestationobject","authenticatordata","clientdatajson","userhandle","credentialpublickey"],G2=new Set([...V2,"pan","key","rawkey","plaintextkey","ssn","nonce","signature","sig","vouchersignature","attestation","assertion","seed","otp","pin"]);W2=/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,H2=/\b((?:postgres(?:ql)?|rediss?|amqps?|mongodb(?:\+srv)?|mysql|clickhouse|https?):\/\/[^\s:@/]+:)[^\s@/]+@/gi,Y2=/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?(?:-----END [A-Z ]*PRIVATE KEY-----|$)/g,K2=/\beyJ[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{4,}/g,X2=/\b(Bearer|Basic)\s+[A-Za-z0-9._~+/-]+=*/gi,Q2=/\b(?:(?:VisaKey|visakey)_[A-Za-z0-9._~+/-]{16,}|vk_[A-Za-z0-9._~+/-]{32,})=*/g,eB=/\b(?:sk|pk|rk|ghp|gho|ghu|ghs|github_pat|ak|whsec|xox[abpr])[_-][A-Za-z0-9._~+/=-]{8,}/g,tB=/\bCRD[A-Za-z0-9]{16,}\b/g,nB=/\b(password|passwd|secret|token|api[_-]?key|authorization|cvv|cvc|voucher|network[_-]?token|cryptogram(?:[_-]?value)?|davv|tavv|exp[_-]?month|exp[_-]?year)\b(\s*[=:]\s*["']?)(?!(?:Bearer|Basic)\s)[^\s"',;&}]+/gi,rB=/("(?:[A-Za-z_]*(?:token|secret|password|cryptogram|cvv|cvc|davv|tavv)[A-Za-z_]*|exp_?month|exp_?year|network_?token)"\s*:\s*)("(?:\\.|[^"\\])*"|[0-9]+)/gi,iB=/([?&](?:token|access_token|refresh_token|id_token|code|api_key|apikey|password|secret|sig|signature|voucher|session|cli|clipk|cli_pk)=)[^&#\s]+/gi,aB=/\b\d(?:[ -]?\d){12,18}\b/g;od="[never-captured]";sB={email:"contact_details",useremail:"contact_details",owneremail:"contact_details",phone:"contact_details",phonenumber:"contact_details",address:"contact_details",address1:"contact_details",address2:"contact_details",addressline1:"contact_details",addressline2:"contact_details",streetaddress:"contact_details",postalcode:"contact_details",zipcode:"contact_details",zip:"contact_details",prompt:"content",systemprompt:"content",userprompt:"content",userrequest:"content",input:"content",messages:"content",text:"content",body:"content",requestbody:"content",responsebody:"content",rawbody:"content",toolparams:"content",toolresult:"content",resultjson:"content",purpose:"content",expectedresult:"content",arguments:"content",args:"content",params:"content",toolargs:"content",toolarguments:"content",result:"content",response:"content",output:"content",content:"content",description:"content",payload:"content",product:"content",narrative:"content",merchantname:"payment_facts",merchantdomain:"payment_facts",merchanthost:"payment_facts",merchantorigin:"payment_facts",recipient:"payment_facts",paymentrail:"payment_facts",rail:"payment_facts",paymentamount:"payment_facts",amount:"payment_facts",amountmicros:"payment_facts",paymentcurrency:"payment_facts",currency:"payment_facts",transactionid:"payment_facts",txhash:"payment_facts",user:"account_identifiers",userlogin:"account_identifiers",ownerlogin:"account_identifiers",githubuser:"account_identifiers",userdisplayname:"account_identifiers",ip:"account_identifiers",ipaddress:"account_identifiers",clientip:"account_identifiers",remoteaddress:"account_identifiers",remoteaddr:"account_identifiers",xforwardedfor:"account_identifiers"},cB=[["email","contact_details"],["phone","contact_details"],["prompt","content"]];lB=/(?:"[^"\r\n]{1,64}"|[a-zA-Z0-9._%+-]{1,64})@(?:\[[^\]\s]{1,64}\]|[a-zA-Z0-9-]{1,63}(?:\.[a-zA-Z0-9-]{1,63}){0,8}\.[a-zA-Z]{2,63})/g,dB=/\+\d{1,3}(?:[\s.-]?\d){7,14}\b/g,pB=/\b(?:\+?1[\s.-]?)?(?:\(\d{3}\)|\d{3})[\s.-]\d{3}[\s.-]\d{4}\b/g;yo="[not-captured]",$O=300,mB=new Set(["error","err","errormessage","errmsg","reason","cause","exception","message","msg","detail"]),gB=$O,hB=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$/,_B=/^[A-Z][A-Za-z0-9]{0,63}$/;IO=new Set(["user","userlogin","ownerlogin","githubuser","firstdriftuser","login"]);SB={withheldKeys:IO};PO="[Filtered]",$B=8,Yt={neverMarker:PO,offMarker:yo,maxDepth:$B},OB=":id",IB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,PB=/^[0-9a-f]{16,}$/i,AB=/^\d+$/;TO={...Yt,withheldKeys:IO};LB=300*1e3,fg=new Map;qB=300*1e3,mg=new Map;gg=2e3;ld=!1});var WO={};_t(WO,{initSentry:()=>JO,isSentryConfigured:()=>GO,reportFatal:()=>nG,sentryNodeLoader:()=>BO});function GO(){return process.env.SENTRY_DSN&&process.env.SENTRY_DSN.trim(),!0}function tG(){let e=process.env.SENTRY_DSN?.trim();return e||"https://b773083b7a0c26d300b5609d790c6618@o4511295591153664.ingest.us.sentry.io/4511295767969792"}async function JO(){if(FO)return VO;if(!GO())return null;process.env.SENTRY_DSN||(process.env.SENTRY_DSN=tG()),process.env.SENTRY_ENVIRONMENT||(process.env.SENTRY_ENVIRONMENT="staging"),!process.env.SENTRY_RELEASE&&qO&&(process.env.SENTRY_RELEASE=`visa-cli@${qO}`);try{(await Promise.resolve().then(()=>(ZO(),LO))).initNodeObservability({serviceName:"visa-cli"});let t=await BO.load();return VO=t,FO=!0,mO(t),t}catch{return null}}async function nG(e,t){try{let r=await JO();r&&(gO(r),r.captureException(e),await r.flush(2e3).catch(()=>{}))}catch{}process.exit(t?.exitCode??1)}var qO,VO,FO,BO,HO=Ie(()=>{"use strict";hO();qO="5.0.0-rc.411",VO=null,FO=!1,BO={load:async()=>await import("@sentry/node")}});var YO=require("commander"),KO=require("child_process"),XO=require("util"),rG=(0,XO.promisify)(KO.execFile),QO=Ps().version;for(let e of[process.stdout,process.stderr])e.on("error",t=>{throw t.code==="EPIPE"&&process.exit(0),t});async function iG(){let{buildUpgradePlan:e,formatInstallConflictWarning:t,resolveUpdateNpmTag:r}=await Promise.resolve().then(()=>(Og(),$g)),{getClaudeSettingsPath:i}=await Promise.resolve().then(()=>(_d(),Ag)),{selfHealVisaHudIntegration:n}=await Promise.resolve().then(()=>(Ad(),Fg)),a=e(r(QO),void 0,void 0,{withDiagnostics:!0}),o=a.diagnostics?t(a.diagnostics,a.display):null;try{o&&console.warn(`Warning: ${o}`),console.log(`Updating Visa CLI with ${a.packageManager}: ${a.display}`);let{stdout:s,stderr:c}=await rG(a.command,a.args,{timeout:5*6e4,maxBuffer:10*1024*1024});s.trim()&&process.stdout.write(s),c.trim()&&process.stderr.write(c);for(let u of n(i(),{force:!0}).messages)console.log(u);console.log("Visa CLI update complete. Restart any running MCP clients to use the new version.")}catch(s){let{getLogPath:c,logger:u}=await Promise.resolve().then(()=>(on(),Rs)),{currentReference:l}=await Promise.resolve().then(()=>(Jr(),zs)),{reportFailure:f,updateFailureCode:m}=await Promise.resolve().then(()=>(Oo(),Gs));u.warn("update:failed",{command:a.display,code:typeof s?.code=="string"||typeof s?.code=="number"?s.code:null,message:String(s?.message??s).slice(0,2e3)}),console.error(`Visa CLI could not be updated. To update by hand, run: ${a.display}`),console.error(`log: ${c()}`),console.error(`ref: ${l()}`),await f({code:m(s),kind:"unknown",cause:s}),process.exit(1)}}async function aG(){if(process.argv[2]==="config"&&process.argv[3]==="statusline"){let{renderStatusline:l}=await Promise.resolve().then(()=>(Zm(),l$));process.stdout.write(`${l()}
|
|
154
|
+
`),i}function OO(e,t){return e.length>t?`${e.slice(0,t)}\u2026[truncated]`:e}function $s(e){return OO(e,$O)}function bB(e){if(typeof e=="number"&&!Number.isInteger(e))return!1;let t=typeof e=="bigint"?e.toString():e.toFixed(0);return/^\d{14,19}$/.test(t)&&EO(t)}function sd(e,t={}){return typeof e!="string"||e.length===0?e:fB(oB(e,t.neverMarker??od),t.offMarker??yo)}function wB(e,t={}){return cd(e,void 0,0,new WeakSet,t)}function Is(e,t,r={}){return cd(t,e,0,new WeakSet,r)}function yi(e,t={}){if(!e||typeof e!="object")return;let r=e;for(let i of Object.keys(r))r[i]=Is(i,r[i],t)}function cd(e,t,r,i,n){if(t!==void 0){if(J2(t))return n.neverMarker??od;if(n.withheldKeys?.has(ad(t)))return e==null?e:n.offMarker??yo;let a=uB(t);if(a&&!bo(a))return e==null?e:n.offMarker??yo}if(e==null)return e;if(typeof e=="string"){let a=sd(e,n);return t!==void 0&&mB.has(ad(t))?$s(a):a}return typeof e=="number"||typeof e=="bigint"?bB(e)?n.neverMarker??od:e:typeof e!="object"?e:e instanceof Error?$s(sd(e.message,n)):r>=(n.maxDepth??8)?"[depth-limit]":i.has(e)?"[circular]":(i.add(e),Array.isArray(e)?e.map(a=>cd(a,t,r+1,i,n)):Object.fromEntries(Object.entries(e).map(([a,o])=>[a,cd(o,a,r+1,i,n)])))}function EB(e,t=SB){let r=e.trim();if(r.startsWith("{")&&r.endsWith("}"))try{return JSON.stringify(wB(JSON.parse(r),t))}catch{}return OO(sd(e,t),gB)}function TB(e){return IB.test(e)||PB.test(e)||AB.test(e)}function vo(e){if(typeof e!="string"||e.length===0)return e;let t=e.search(/[?#]/),r=t===-1?e:e.slice(0,t),i=t===-1?"":e.slice(t),n=/^[a-z][a-z0-9+.-]*:\/\/[^/]*/i.exec(r),a=n?n[0]:"",s=r.slice(a.length).split("/").map(c=>TB(c)?OB:c).join("/");return`${a}${s}${i}`}function Tn(e){return sd(e,Yt)}function kB(e){yi(e,Yt)}function zB(e){!e||typeof e!="object"||(kB(e.headers),e.cookies!==void 0&&(e.cookies=PO),typeof e.url=="string"&&(e.url=vo(Tn(e.url))),typeof e.query_string=="string"&&(e.query_string=Tn(e.query_string)),e.data!==void 0&&(e.data=bo("content")?Is("data",e.data,Yt):yo))}function jB(e){let t=e.tags;t&&typeof t.url=="string"&&(t.url=vo(Tn(t.url))),typeof e.transaction=="string"&&(e.transaction=vo(Tn(e.transaction)))}function NB(e){if(!e)return"";try{let t=new URL(e),r=vo(Tn(t.pathname));return`${t.origin}${r}`}catch{let t=e.split(/[?#]/,1)[0]??"";return vo(Tn(t))}}function RB(e){let r=e.exception?.values;if(Array.isArray(r))for(let i of r)i&&typeof i.value=="string"&&(i.value=$s(Tn(i.value)))}function CB(e){typeof e.message=="string"&&(e.message=$s(Tn(e.message)));let t=e.logentry;t&&typeof t=="object"&&(typeof t.message=="string"&&(t.message=$s(Tn(t.message))),t.params!==void 0&&(t.params=Is("params",t.params,Yt)))}function AO(e){try{if(e&&typeof e.message=="string"&&(e.message=ud(e.message)),e&&e.data&&typeof e.data=="object"){yi(e.data,TO);let t=e.data;e.category==="console"&&Array.isArray(t.arguments)&&(t.arguments=t.arguments.map(r=>typeof r=="string"?ud(r):r))}return e}catch{return null}}function xB(e){let t=e.breadcrumbs,r=Array.isArray(t)?t:t?.values;if(Array.isArray(r))for(let i=r.length-1;i>=0;i--){let n=r[i];n&&typeof n=="object"&&(AO(n)||r.splice(i,1))}}function ud(e){return EB(e,TO)}function DB(e){let t=e.contexts;if(!t||typeof t!="object")return;let r=t.response;r&&typeof r=="object"&&!Array.isArray(r)?(delete t.response,yi(t,Yt),yi(r,Yt),r.data!==void 0&&(r.data=bo("content")?Is("data",r.data,Yt):yo),t.response=r):yi(t,Yt)}function MB(e){let t=e.spans;if(Array.isArray(t))for(let r of t)!r||typeof r!="object"||(typeof r.description=="string"&&(r.description=Tn(r.description)),r.data&&typeof r.data=="object"&&yi(r.data,Yt))}function UB(e){try{return e&&typeof e.message=="string"&&(e.message=ud(e.message)),e&&typeof e.body=="string"&&(e.body=ud(e.body)),e&&e.attributes&&typeof e.attributes=="object"&&yi(e.attributes,Yt),e}catch{return null}}function yO(e){try{return zB(e.request),e.user!==void 0&&(e.user=bo("account_identifiers")?Is("user",e.user,Yt):void 0),yi(e.extra,Yt),DB(e),yi(e.tags,Yt),jB(e),CB(e),RB(e),xB(e),MB(e),e}catch{return null}}function ZB(e){let t=(e.now??Date.now)(),r=fg.get(e.component);if(r){if(r.totalRejections+=1,t-r.lastCapturedAt<LB)return;r.lastCapturedAt=t}else fg.set(e.component,{lastCapturedAt:t,totalRejections:1});if(process.env.SENTRY_DSN?.trim())try{dd.withScope(i=>{i.setFingerprint(["catastrophic-gate",e.component]),i.setLevel(e.severity??"error"),i.setTag("component",e.component),i.setTag("catastrophic_gate","true");let n=fg.get(e.component)?.totalRejections??1;if(i.setTag("total_rejections_in_window",String(n)),e.tags)for(let[o,s]of Object.entries(e.tags))i.setTag(o,typeof s=="string"?s:String(s));let a=new Error(e.reason);a.name="CatastrophicGateError",dd.captureException(a)})}catch{}}function kO(e){try{let t=(e.now??Date.now)(),r=mg.get(e.component);if(r){if(r.totalFailures+=1,t-r.lastCapturedAt<qB)return;r.lastCapturedAt=t}else mg.set(e.component,{lastCapturedAt:t,totalFailures:1});if(!process.env.SENTRY_DSN?.trim())return;let i=e.error instanceof Error?e.error:new Error(String(e.error));pd.withScope(n=>{if(n.setFingerprint(["background-tick",e.component]),n.setLevel(e.severity??"error"),n.setTag("component",e.component),n.setTag("background_tick","true"),n.setExtra("total_failures_since_boot",mg.get(e.component)?.totalFailures??1),e.extra)for(let[a,o]of Object.entries(e.extra))n.setExtra(a,o);pd.captureException(i)})}catch{}}async function VB(e,t,r){try{await t()}catch(i){kO({component:e,error:i,...r})}}function jO(e){return new Promise(t=>{setTimeout(t,e).unref?.()})}function NO(e){return e instanceof Error?e:new Error(String(e))}function RO(e,t,r,i){e.log({level:"error",ts:i,component:e.component??"process",msg:t,error:r.message,stack:r.stack})}async function CO(e,t,r){let i=NO(t);try{RO(r,e,i,new Date().toISOString()),r.capture(i,{component:r.component??"process",event:e}),await Promise.race([r.flush(gg),(r.delay??jO)(gg)])}catch{}finally{r.exit(1)}}function FB(e){return{capture:e,flush:t=>zO.flush(t),exit:t=>process.exit(t),log:t=>console.error(JSON.stringify(t)),delay:jO}}function BB(e){process.on("unhandledRejection",t=>{let r=NO(t);try{RO(e,"unhandledRejection",r,new Date().toISOString()),e.capture(r,{component:e.component??"process",event:"unhandledRejection"}),e.onError?.("unhandledRejection",r)}catch{}}),process.on("uncaughtException",t=>{e.onError?.("uncaughtException",t),CO("uncaughtException",t,e)})}function xO(e){return e.replace(/:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,":?").replace(/:[a-f0-9]{16,}/gi,":?")}function DO(e){try{let t=Z2();if(t.status==="legacy"){console.warn(`level=warn component=sentry-env-binding-legacy service=${e} railway_class=${t.railwayClass} environment=${t.environment} ${t.message}`);return}if(t.status!=="mismatch")return;console.error(`level=error component=sentry-env-binding-mismatch service=${e} railway_class=${t.railwayClass} environment=${t.environment} ${t.message}`),Xe.withScope(r=>{r.setTag("component","sentry-env-binding-mismatch"),r.setTag("railway_class",t.railwayClass),r.setLevel("error"),r.setFingerprint(["sentry-env-binding-mismatch"]),Xe.captureMessage(`Sentry environment binding mismatch: ${e}`)})}catch{}}function MO(e){let t=U2();return{environment:Os(),...t?{release:t}:{},tracesSampleRate:q2(),enableLogs:!0,integrations:[Xe.consoleLoggingIntegration({levels:["warn","error"]})],beforeSend(r){let i=yO(r);return i===null?null:i},beforeSendTransaction(r){try{for(let n of r.spans??[])n.description&&(n.description=xO(n.description));let i=yO(r);return i===null?null:i}catch{return null}},beforeBreadcrumb(r){return AO(r)},beforeSendLog(r){return UB(r)},initialScope:r=>(r.setTag("service",e),r)}}function GB(e){if(ld)return;let t=process.env.SENTRY_DSN?.trim();if(!t){e.dsnProvided=!1;return}e.dsnProvided=!0;try{Xe.init({dsn:t,...MO(e.serviceName)}),ld=!0,console.log(`[visa/observability] Sentry initialized service=${e.serviceName} env=${Os()}`),DO(e.serviceName)}catch(r){console.error("[visa/observability] Sentry.init failed:",r),e.dsnProvided=!1}}function JB(e){if(ld)return;let t=process.env.SENTRY_DSN?.trim();if(!t){e.dsnProvided=!1;return}e.dsnProvided=!0;try{Xe.init({dsn:t,...MO(e.serviceName),integrations:[Xe.expressIntegration(),Xe.consoleLoggingIntegration({levels:["warn","error"]})]}),ld=!0,console.log(`[visa/observability] Sentry initialized service=${e.serviceName} env=${Os()}`),DO(e.serviceName)}catch(r){console.error("[visa/observability] Sentry.init (express) failed:",r),e.dsnProvided=!1}}function WB(e){let t=e,r=Number(t?.status??t?.statusCode);return Number.isInteger(r)&&r>=400&&r<=599?r:500}function HB(e){process.env.SENTRY_DSN?.trim()&&e.use((t,r,i,n)=>{try{let a=WB(t);if(a>=500){let o=r?.route?.path;UO(vB(t),{component:"express",http_status:String(a),route:typeof o=="string"?`${r.baseUrl??""}${o}`:"unmatched"})}}catch{}n(t)})}function YB(){return async(e,t)=>{if(!process.env.SENTRY_DSN?.trim()){await t();return}let r=e.req.path,i=e.req.method;return Xe.startSpan({op:"http.server",name:`${i} ${r}`,attributes:{"http.method":i,"http.route":r}},async()=>{try{await t()}catch(n){throw Xe.captureException(n),n}})}}function UO(e,t,r){if(process.env.SENTRY_DSN?.trim())try{Xe.withScope(i=>{if(t)for(let[n,a]of Object.entries(t))i.setTag(n,a);if(r?.extra)for(let[n,a]of Object.entries(r.extra))i.setExtra(n,a);r?.fingerprint&&i.setFingerprint(r.fingerprint),r?.clearBreadcrumbs&&i.clearBreadcrumbs(),r?.level&&i.setLevel(r.level),Xe.captureException(e)})}catch{}}function KB(e,t){if(t)for(let[r,i]of Object.entries(t))i==null||i===""||e.setTag(r,String(i))}function XB(e,t,r){if(process.env.SENTRY_DSN?.trim())try{Xe.withScope(i=>{if(KB(i,t),r?.extra)for(let[n,a]of Object.entries(r.extra))i.setExtra(n,a);if(r?.contexts)for(let[n,a]of Object.entries(r.contexts))i.setContext(n,a);r?.fingerprint&&i.setFingerprint(r.fingerprint),r?.level&&i.setLevel(r.level),Xe.captureMessage(e)})}catch{}}function QB(e){if(process.env.SENTRY_DSN?.trim())try{let t=Xe.getCurrentScope();e.userLogin&&t.setUser({id:e.userLogin,username:e.userLogin}),e.toolName&&t.setTag("tool_name",e.toolName),e.eventKind&&t.setTag("event_kind",e.eventKind),e.endpoint&&t.setTag("endpoint",e.endpoint),e.source&&t.setTag("source",e.source),e.authMethod&&t.setTag("auth_method",e.authMethod),e.visaKeyAuthOutcome&&t.setTag("visa_key_auth_outcome",e.visaKeyAuthOutcome),e.visaKeyServingEnvironment&&t.setTag("visa_key_serving_environment",e.visaKeyServingEnvironment),e.visaKeyEnvironment&&t.setTag("visa_key_environment",e.visaKeyEnvironment),e.paymentRail&&t.setTag("payment_rail",e.paymentRail),e.paymentCurrency&&t.setTag("payment_currency",e.paymentCurrency),e.merchantName&&t.setTag("merchant_name",e.merchantName),e.protocol&&t.setTag("protocol",e.protocol),e.sessionBudgetId&&t.setTag("session_budget_id",e.sessionBudgetId),e.resolvedModel&&t.setTag("resolved_model",e.resolvedModel),e.railwayServiceName&&t.setTag("railway_service",e.railwayServiceName),e.railwayEnvironmentName&&t.setTag("railway_environment",e.railwayEnvironmentName),typeof e.resultSuccess=="boolean"&&t.setTag("result_success",String(e.resultSuccess)),typeof e.httpStatus=="number"&&t.setTag("http_status",String(e.httpStatus));let r={};e.requestId&&(r.request_id=e.requestId),t.setContext("request",r);let i={};typeof e.paymentAmount=="number"&&(i.payment_amount=e.paymentAmount),e.transactionId&&(i.transaction_id=e.transactionId),Object.keys(i).length>0&&t.setContext("payment",i);let n={};e.railwayDeploymentId&&(n.deployment_id=e.railwayDeploymentId),e.railwayReplicaId&&(n.replica_id=e.railwayReplicaId),Object.keys(n).length>0&&t.setContext("railway",n)}catch{}}function eG(e,t,r="info"){if(process.env.SENTRY_DSN?.trim())try{Xe.addBreadcrumb({category:"session-budget",message:e,level:r,data:t})}catch{}}var Xe,dd,pd,zO,z2,vO,j2,bO,N2,R2,C2,x2,D2,M2,_O,pg,L2,SO,V2,PJ,F2,B2,G2,W2,H2,Y2,K2,X2,Q2,eB,tB,nB,rB,iB,aB,od,sB,cB,lB,dB,pB,yo,$O,mB,gB,hB,_B,IO,SB,PO,$B,Yt,OB,IB,PB,AB,TO,LB,fg,qB,mg,gg,ld,ZO=Ie(()=>{"use strict";Xe=Q(require("@sentry/node"),1),dd=Q(require("@sentry/node"),1),pd=Q(require("@sentry/node"),1),zO=Q(require("@sentry/node"),1),z2=Object.create,vO=Object.defineProperty,j2=Object.getOwnPropertyDescriptor,bO=Object.getOwnPropertyNames,N2=Object.getPrototypeOf,R2=Object.prototype.hasOwnProperty,C2=(e,t)=>function(){try{return t||(0,e[bO(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(i){throw t=0,i}},x2=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bO(t))!R2.call(e,n)&&n!==r&&vO(e,n,{get:()=>t[n],enumerable:!(i=j2(t,n))||i.enumerable});return e},D2=(e,t,r)=>(r=e!=null?z2(N2(e)):{},x2(t||!e||!e.__esModule?vO(r,"default",{value:e,enumerable:!0}):r,e)),M2=C2({"../shared/dist/rail-preview.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeRailEnvironmentValue=a,e.isLiveVgsEnvironment=o,e.isExplicitProductionRailEnvironment=s,e.isPublicPreviewRailEnvironment=c,e.clickhouseDatabaseHasStagingMarker=l,e.resolveClickhouseEnvBinding=f,e.resolveDeploymentEnvClass=m,e.detectDeploymentEnvNodeEnvMismatch=h;var t=new Set(["visacli.sh","app.visacli.sh","auth.visacli.sh","api.visacli.sh"]);function r(g){return(g||"").trim().toLowerCase()}function i(g){let S=r(g),$=S;(S.startsWith("http://")||S.startsWith("https://"))&&($=S.slice(S.indexOf("://")+3));let x=$.indexOf("/");x!==-1&&($=$.slice(0,x));let N=$.indexOf(":");return N!==-1&&($=$.slice(0,N)),$.startsWith("www.")?$.slice(4):$}function n(g,S){let $="";for(let x of r(g)){if(x>="a"&&x<="z"||x>="0"&&x<="9"){$+=x;continue}if($&&S.has($))return!0;$=""}return $?S.has($):!1}function a(g){return r(g)}function o(g){return new Set(["live","prod","production"]).has(a(g))}function s(g){let S=i(g.railwayPublicDomain),$=r(g.railwayEnvironment),x=r(g.railwayEnvironmentName),N=r(g.railwayGitBranch);return t.has(S)||$==="production"||x==="production"||N==="main"||N==="production"}function c(g){if(s(g))return!1;let S=i(g.railwayPublicDomain),$=new Set(["preview","staging","stage"]),x=new Set(["preview"]),N=r(g.railwayGitBranch);return n(S,x)||n(g.railwayEnvironment,$)||n(g.railwayEnvironmentName,$)||N==="staging"||N==="preview"||S.endsWith(".up.railway.app")||S.endsWith(".railway.app")}var u=new Set(["staging","stage","preview"]);function l(g){let S=r(g);if(!S)return!1;for(let $ of S.split(/[^a-z0-9]+/))if(u.has($))return!0;return!1}function f(g){let S=(g.clickhouseDatabase||"").trim(),$=l(S);return s(g)?$?{status:"mismatch",environment:"production",database:S,message:`production deploy is pointed at a non-production ClickHouse database (${S||"<empty>"}); production must use an unmarked database such as visa_mcp`}:{status:"ok",environment:"production",database:S}:c(g)?$?{status:"ok",environment:"preview",database:S}:{status:"mismatch",environment:"preview",database:S,message:`staging/preview deploy is pointed at the production ClickHouse database (${S||"<empty>"}); staging must use a marked database such as visa_mcp_staging`}:{status:"indeterminate"}}function m(g){return s(g)?"production":c(g)?"preview":"unknown"}function h(g,S){let $=m(g),x=(S||"").trim().toLowerCase();return $==="unknown"?{status:"indeterminate",deploymentEnv:$,nodeEnv:x,message:null}:$==="production"?x===""||x==="production"?{status:"ok",deploymentEnv:$,nodeEnv:x,message:null}:{status:"mismatch",deploymentEnv:$,nodeEnv:x,message:`Railway signals classify this deploy as production, but NODE_ENV=${x||"<empty>"}. Dev-only guards keyed on NODE_ENV!=='production' would silently activate. Set NODE_ENV=production on this Railway service.`}:new Set(["","development","test","preview","staging","production"]).has(x)?{status:"ok",deploymentEnv:$,nodeEnv:x,message:null}:{status:"mismatch",deploymentEnv:$,nodeEnv:x,message:`Railway signals classify this deploy as preview/staging, but NODE_ENV=${x||"<empty>"}. Set NODE_ENV=production on deployed Railway preview services.`}}}}),_O=D2(M2());pg="staging",L2=new Set(["preview"]);SO={service_health:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Errors and stack traces, HTTP status, latency, route and tool names, service and release names, error codes and error class names. Unhandled 5xx route errors reach Sentry by class, code (only the code its producer set, never inferred from the message), route and stack frames, without the message, because a message can quote a request or an upstream response. Where error text is still printed it is capped at 300 characters: error, message and msg fields, other exception values, Sentry event messages, breadcrumbs, and plain-text log lines (one printed error, across all its lines, shares one 300-character budget; its stack frames share a separate 1,000-character budget). A JSON log line is filtered by its keys instead. ClickHouse keeps only code-shaped errors while content is off.",why:"Find and fix failures; uptime and latency alerts."},usage:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Which feature or tool was used, when, from which client (CLI version, connector, MCP client name), and session grouping ids.",why:"Know what is used, drive version upgrades, and spot broken clients."},account_identifiers:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Internal account and agent ids, sign-in login handle, the profile display name, and client IP addresses. Logs never carry the sign-in handle, whatever this switch says.",why:"Per-account support, abuse investigation, and per-owner dashboards."},payment_facts:{capture:!0,clickhouseRetentionDays:730,purgeStoredWhenOff:"approved",what:"Payment rail, amount, currency, merchant (a hostname for client-reported payments, the recipient address for Tempo; never agent-written text), on-chain transaction hash and internal transaction id, payment outcome codes. B payment request rows project only rail, currency and proven moved amount from the validated public payment resource: exact asset micros become major units, USDC.e is labelled USDC, and unresolved or conservative amounts stay unknown. Request rows can repeat a payment; they are not deduplicated settlement or spend records. In logs, the plain field names amount, amount_micros, currency, rail, recipient and merchant_domain follow this switch too.",why:"Spend and settlement dashboards and payment-failure alerts. Not the financial record: that lives in the payments tables."},contact_details:{capture:!1,clickhouseRetentionDays:30,purgeStoredWhenOff:"approved",what:"Email addresses, phone numbers and postal addresses.",why:"Not needed for operations; kept off, as today."},content:{capture:!1,clickhouseRetentionDays:90,purgeStoredWhenOff:"held",what:"Prompts, semantic request parameters, tool results, error text written by clients, and agent-written purchase descriptions. Raw HTTP bodies, credentials and private approval-context carriers are always excluded.",why:"Off. Only for debugging with explicit, reviewed sign-off."},session_replay:{capture:!0,clickhouseRetentionDays:0,purgeStoredWhenOff:"approved",what:"Masked browser session replays from the web app (all text and inputs masked, media blocked, no network bodies): 5% of sessions and every session with an error.",why:"Reproduce web bugs. Sentry only; never written to ClickHouse."}},V2=["body","requestbody","responsebody","rawbody","bodybase64","headers","original","originalcontext","requestedterms","preparedterms","nativechargerequest","reviewdetails","approvaldetails","prepared","intent","signinginput"],PJ=Object.keys(SO),F2=SO;B2=["authorization","cookie","password","passwd","passphrase","secret","token","apikey","adminkey","privatekey","signingkey","masterkey","encryptionkey","keyprefix","keymaterial","credential","voucher","hmac","jwt","bearer","mnemonic","seedphrase","cardnumber","cardnum","cvv","cvc","cryptogram","davv","tavv","expmonth","expyear","expirymonth","expiryyear","expirationdate","cardholder","networktoken","vgs","webauthn","passkey","attestationobject","authenticatordata","clientdatajson","userhandle","credentialpublickey"],G2=new Set([...V2,"pan","key","rawkey","plaintextkey","ssn","nonce","signature","sig","vouchersignature","attestation","assertion","seed","otp","pin"]);W2=/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,H2=/\b((?:postgres(?:ql)?|rediss?|amqps?|mongodb(?:\+srv)?|mysql|clickhouse|https?):\/\/[^\s:@/]+:)[^\s@/]+@/gi,Y2=/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?(?:-----END [A-Z ]*PRIVATE KEY-----|$)/g,K2=/\beyJ[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{4,}/g,X2=/\b(Bearer|Basic)\s+[A-Za-z0-9._~+/-]+=*/gi,Q2=/\b(?:(?:VisaKey|visakey)_[A-Za-z0-9._~+/-]{16,}|vk_[A-Za-z0-9._~+/-]{32,})=*/g,eB=/\b(?:sk|pk|rk|ghp|gho|ghu|ghs|github_pat|ak|whsec|xox[abpr])[_-][A-Za-z0-9._~+/=-]{8,}/g,tB=/\bCRD[A-Za-z0-9]{16,}\b/g,nB=/\b(password|passwd|secret|token|api[_-]?key|authorization|cvv|cvc|voucher|network[_-]?token|cryptogram(?:[_-]?value)?|davv|tavv|exp[_-]?month|exp[_-]?year)\b(\s*[=:]\s*["']?)(?!(?:Bearer|Basic)\s)[^\s"',;&}]+/gi,rB=/("(?:[A-Za-z_]*(?:token|secret|password|cryptogram|cvv|cvc|davv|tavv)[A-Za-z_]*|exp_?month|exp_?year|network_?token)"\s*:\s*)("(?:\\.|[^"\\])*"|[0-9]+)/gi,iB=/([?&](?:token|access_token|refresh_token|id_token|code|api_key|apikey|password|secret|sig|signature|voucher|session|cli|clipk|cli_pk)=)[^&#\s]+/gi,aB=/\b\d(?:[ -]?\d){12,18}\b/g;od="[never-captured]";sB={email:"contact_details",useremail:"contact_details",owneremail:"contact_details",phone:"contact_details",phonenumber:"contact_details",address:"contact_details",address1:"contact_details",address2:"contact_details",addressline1:"contact_details",addressline2:"contact_details",streetaddress:"contact_details",postalcode:"contact_details",zipcode:"contact_details",zip:"contact_details",prompt:"content",systemprompt:"content",userprompt:"content",userrequest:"content",input:"content",messages:"content",text:"content",body:"content",requestbody:"content",responsebody:"content",rawbody:"content",toolparams:"content",toolresult:"content",resultjson:"content",purpose:"content",expectedresult:"content",arguments:"content",args:"content",params:"content",toolargs:"content",toolarguments:"content",result:"content",response:"content",output:"content",content:"content",description:"content",payload:"content",product:"content",narrative:"content",merchantname:"payment_facts",merchantdomain:"payment_facts",merchanthost:"payment_facts",merchantorigin:"payment_facts",recipient:"payment_facts",paymentrail:"payment_facts",rail:"payment_facts",paymentamount:"payment_facts",amount:"payment_facts",amountmicros:"payment_facts",paymentcurrency:"payment_facts",currency:"payment_facts",transactionid:"payment_facts",txhash:"payment_facts",user:"account_identifiers",userlogin:"account_identifiers",ownerlogin:"account_identifiers",githubuser:"account_identifiers",userdisplayname:"account_identifiers",ip:"account_identifiers",ipaddress:"account_identifiers",clientip:"account_identifiers",remoteaddress:"account_identifiers",remoteaddr:"account_identifiers",xforwardedfor:"account_identifiers"},cB=[["email","contact_details"],["phone","contact_details"],["prompt","content"]];lB=/(?:"[^"\r\n]{1,64}"|[a-zA-Z0-9._%+-]{1,64})@(?:\[[^\]\s]{1,64}\]|[a-zA-Z0-9-]{1,63}(?:\.[a-zA-Z0-9-]{1,63}){0,8}\.[a-zA-Z]{2,63})/g,dB=/\+\d{1,3}(?:[\s.-]?\d){7,14}\b/g,pB=/\b(?:\+?1[\s.-]?)?(?:\(\d{3}\)|\d{3})[\s.-]\d{3}[\s.-]\d{4}\b/g;yo="[not-captured]",$O=300,mB=new Set(["error","err","errormessage","errmsg","reason","cause","exception","message","msg","detail"]),gB=$O,hB=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$/,_B=/^[A-Z][A-Za-z0-9]{0,63}$/;IO=new Set(["user","userlogin","ownerlogin","githubuser","firstdriftuser","login"]);SB={withheldKeys:IO};PO="[Filtered]",$B=8,Yt={neverMarker:PO,offMarker:yo,maxDepth:$B},OB=":id",IB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,PB=/^[0-9a-f]{16,}$/i,AB=/^\d+$/;TO={...Yt,withheldKeys:IO};LB=300*1e3,fg=new Map;qB=300*1e3,mg=new Map;gg=2e3;ld=!1});var WO={};_t(WO,{initSentry:()=>JO,isSentryConfigured:()=>GO,reportFatal:()=>nG,sentryNodeLoader:()=>BO});function GO(){return process.env.SENTRY_DSN&&process.env.SENTRY_DSN.trim(),!0}function tG(){let e=process.env.SENTRY_DSN?.trim();return e||"https://b773083b7a0c26d300b5609d790c6618@o4511295591153664.ingest.us.sentry.io/4511295767969792"}async function JO(){if(FO)return VO;if(!GO())return null;process.env.SENTRY_DSN||(process.env.SENTRY_DSN=tG()),process.env.SENTRY_ENVIRONMENT||(process.env.SENTRY_ENVIRONMENT="staging"),!process.env.SENTRY_RELEASE&&qO&&(process.env.SENTRY_RELEASE=`visa-cli@${qO}`);try{(await Promise.resolve().then(()=>(ZO(),LO))).initNodeObservability({serviceName:"visa-cli"});let t=await BO.load();return VO=t,FO=!0,mO(t),t}catch{return null}}async function nG(e,t){try{let r=await JO();r&&(gO(r),r.captureException(e),await r.flush(2e3).catch(()=>{}))}catch{}process.exit(t?.exitCode??1)}var qO,VO,FO,BO,HO=Ie(()=>{"use strict";hO();qO="5.0.0-rc.412",VO=null,FO=!1,BO={load:async()=>await import("@sentry/node")}});var YO=require("commander"),KO=require("child_process"),XO=require("util"),rG=(0,XO.promisify)(KO.execFile),QO=Ps().version;for(let e of[process.stdout,process.stderr])e.on("error",t=>{throw t.code==="EPIPE"&&process.exit(0),t});async function iG(){let{buildUpgradePlan:e,formatInstallConflictWarning:t,resolveUpdateNpmTag:r}=await Promise.resolve().then(()=>(Og(),$g)),{getClaudeSettingsPath:i}=await Promise.resolve().then(()=>(_d(),Ag)),{selfHealVisaHudIntegration:n}=await Promise.resolve().then(()=>(Ad(),Fg)),a=e(r(QO),void 0,void 0,{withDiagnostics:!0}),o=a.diagnostics?t(a.diagnostics,a.display):null;try{o&&console.warn(`Warning: ${o}`),console.log(`Updating Visa CLI with ${a.packageManager}: ${a.display}`);let{stdout:s,stderr:c}=await rG(a.command,a.args,{timeout:5*6e4,maxBuffer:10*1024*1024});s.trim()&&process.stdout.write(s),c.trim()&&process.stderr.write(c);for(let u of n(i(),{force:!0}).messages)console.log(u);console.log("Visa CLI update complete. Restart any running MCP clients to use the new version.")}catch(s){let{getLogPath:c,logger:u}=await Promise.resolve().then(()=>(on(),Rs)),{currentReference:l}=await Promise.resolve().then(()=>(Jr(),zs)),{reportFailure:f,updateFailureCode:m}=await Promise.resolve().then(()=>(Oo(),Gs));u.warn("update:failed",{command:a.display,code:typeof s?.code=="string"||typeof s?.code=="number"?s.code:null,message:String(s?.message??s).slice(0,2e3)}),console.error(`Visa CLI could not be updated. To update by hand, run: ${a.display}`),console.error(`log: ${c()}`),console.error(`ref: ${l()}`),await f({code:m(s),kind:"unknown",cause:s}),process.exit(1)}}async function aG(){if(process.argv[2]==="config"&&process.argv[3]==="statusline"){let{renderStatusline:l}=await Promise.resolve().then(()=>(Zm(),l$));process.stdout.write(`${l()}
|
|
155
155
|
`);return}let{beginProcessAttempt:e}=await Promise.resolve().then(()=>(Jr(),zs)),{cliCommandStep:t}=await Promise.resolve().then(()=>(Oo(),Gs));e("cli","other");let{registerAgentCommands:r}=await Promise.resolve().then(()=>(K$(),Y$)),{RC_ACCESS_MESSAGE:i,RC_OPEN_COMMANDS:n,rcAccessGranted:a}=await Promise.resolve().then(()=>(rO(),nO)),o=new YO.Command;o.name("visa-cli").description("Visa CLI: connect this computer to Visa as an agent. Agents use the MCP tools; owners use the Visa Console.").version(QO).addHelpCommand(!1);let{runPreAction:s}=await Promise.resolve().then(()=>(aO(),iO)),{sweepLegacyState:c}=await Promise.resolve().then(()=>(lO(),uO)),{logger:u}=await Promise.resolve().then(()=>(on(),Rs));o.hook("preAction",async(l,f)=>{let m=f,h=[f.name()];for(;m.parent&&m.parent!==o;)m=m.parent,h.unshift(m.name());e("cli",t(h.join(" "))),await s({sweepLegacyState:c,log:g=>u.info(g),isRcGateExemptPath:g=>n.has(g.split(" ")[0]??""),rcGate:async()=>{a()||(process.stderr.write(`${i}
|
|
156
156
|
`),process.exit(1))}},{commandPath:m.name()})}),r(o),o.command("update").description("Update Visa CLI on the current release channel (RC stays on @visa/cli@rc; stable stays on @visa/cli@latest)").action(iG),await o.parseAsync()}async function hg(e,t,r){let{getLogPath:i,logger:n}=await Promise.resolve().then(()=>(on(),Rs)),{currentReference:a}=await Promise.resolve().then(()=>(Jr(),zs)),{reportFailure:o}=await Promise.resolve().then(()=>(Oo(),Gs));if(t===null){let{userMessage:c}=await Promise.resolve().then(()=>(Yl(),O$));console.error(c(e))}else console.error(t);if(console.error(`log: ${i()}`),console.error(`ref: ${a()}`),r)n.error(`cli:${r}`,e),await o({step:"crash",code:r,kind:"unknown",cause:e});else{let{classifyAgentError:c}=await Promise.resolve().then(()=>(Bl(),h$)),u=c(e);await o({code:u.code,kind:u.kind,cause:e})}let{reportFatal:s}=await Promise.resolve().then(()=>(HO(),WO));await s(e)}var eI="Visa CLI stopped because of an unexpected problem.";aG().catch(e=>hg(e,null));process.on("uncaughtException",e=>hg(e,eI,"uncaught_exception"));process.on("unhandledRejection",e=>hg(e,eI,"unhandled_rejection"));
|
|
157
157
|
/*! Bundled license information:
|