@burtson-labs/bandit-stealth-cli 1.7.112 → 1.7.113

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.
Files changed (2) hide show
  1. package/dist/cli.js +1 -1
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1176,7 +1176,7 @@ ${a.accomplishments.topFiles.length>0?`
1176
1176
  <h1>You're signed in.</h1>
1177
1177
  <p>Bandit picked up your session. You can close this tab and return to your terminal.</p>
1178
1178
  </div>
1179
- </body></html>`;t(A1r,"startLoopbackListener");t(N1r,"openBrowser");t(O1r,"buildDefaultDeviceLabel");t(F1r,"runOAuthSignIn")});var sue=Nt((P4r,M1r)=>{M1r.exports={name:"@burtson-labs/bandit-stealth-cli",version:"1.7.112",description:"Bandit \u2014 a local-first AI coding agent for your terminal. Same runtime as the Bandit Stealth VS Code / Cursor extension.",keywords:["ai","agent","cli","coding-agent","llm","ollama","local-first","bandit","burtson-labs","terminal","repl","developer-tools"],homepage:"https://burtson.ai",bugs:{email:"team@burtson.ai"},license:"MIT",author:{name:"Burtson Labs",email:"team@burtson.ai",url:"https://burtson.ai"},bin:{bandit:"./dist/cli.js"},main:"dist/cli.js",files:["dist/cli.js","README.md","LICENSE"],engines:{node:">=20"},publishConfig:{access:"public"},scripts:{typecheck:"tsc -p tsconfig.json --noEmit",build:"node build.mjs","build:publish":"node build.mjs --publish",dev:"node build.mjs --watch",start:"node dist/cli.js",smoke:"node build.mjs && node dist/__smoke__/smoke.js",integration:"node build.mjs && node dist/__integration__/ollama.js",eval:"node build.mjs && node dist/__eval__/eval.js",benchmark:"node build.mjs && node dist/__eval__/benchmark.js","gen-logo":"node scripts/gen-logo.mjs","preview-banner":"node scripts/preview-banner.mjs",clean:"rm -rf dist",prepack:"node scripts/prepack.mjs",postpack:"node scripts/postpack.mjs",prepublishOnly:"pnpm run clean && pnpm run typecheck && pnpm run build:publish"},dependencies:{"pdf-parse":"^2.4.5"},devDependencies:{"@burtson-labs/agent-core":"workspace:*","@burtson-labs/host-kit":"workspace:*","@burtson-labs/stealth-core-runtime":"workspace:*","@types/node":"^20.11.0","@types/pdf-parse":"^1.1.5","@types/pngjs":"^6.0.5",esbuild:"^0.28.0",pngjs:"^7.0.0",typescript:"^5.4.0"}}});var sbr={};module.exports=LLt(sbr);var Qm=vu(require("fs")),yOe=vu(require("os")),vm=vu(require("path")),s9=vu(require("readline")),cue=vu(require("child_process")),Vp=vu(jV()),BF=vu(R6e());var FF=vu(require("fs")),j6e=vu(require("os")),u6=vu(require("path")),XV=vu(require("child_process"));function OF(a){return a==="~"?j6e.homedir():a.startsWith("~/")?u6.join(j6e.homedir(),a.slice(2)):a}t(OF,"expandHome");var XL=16*1024,KV=32*1024,eft=1e4,C0r=3e4,L6e=200,$6e=new Set(["node_modules",".git","dist","build","out",".next",".turbo","coverage","target","__pycache__",".venv","venv"]);function P0r(a){let s=t(d=>{let f=d.match(/^(.*?)\{([^}]+)\}(.*)$/);if(!f)return[d];let[,v,x,I]=f;return x.split(",").map(j=>`${v}${j.trim()}${I}`)},"braceExpand"),l=a.match(/^([^*{}]+?)\/\*\*\/(.+)$/);if(l){let[,d,f]=l;return{includes:s(f),subDir:d}}return{includes:s(a),subDir:""}}t(P0r,"expandGlobForGrep");var MF=class{constructor(s,l,d={}){this.workspaceRoot=s;this.languageAdapters=l;this.options=d;this._readFiles=new Set}static{t(this,"CliToolExecutionContext")}markFileRead(s){this._readFiles.add(OF(s))}hasFileBeenRead(s){return this._readFiles.has(OF(s))}async readFile(s){return FF.promises.readFile(OF(s),"utf-8")}async writeFile(s,l){let d=OF(s);if(this.options.approveWrite&&!await this.options.approveWrite(d,l))throw new Error(`Write to ${d} rejected by user`);await FF.promises.mkdir(u6.dirname(d),{recursive:!0}),await FF.promises.writeFile(d,l,"utf-8")}async listFiles(s,l){let d=OF(l??this.workspaceRoot),f=E0r(s),v=[];return await tft(d,d,f,v),v.slice(0,L6e).sort()}async listDirectoryEntries(s){let l=OF(s),d=await FF.promises.readdir(l,{withFileTypes:!0}),f=[];for(let v of d){if(v.name.startsWith("."))continue;let x=v.isDirectory();if(v.isSymbolicLink())try{x=(await FF.promises.stat(u6.join(l,v.name))).isDirectory()}catch{x=!1}f.push(x?`${v.name}/`:v.name)}return f.sort()}async searchCode(s,l,d){let f=OF(l??this.workspaceRoot);return this.runRipgrep(s,f,d).catch(()=>this.runGrep(s,f,d))}async runCommand(s,l,d){return new Promise(f=>{let v="",x="",I=XV.spawn(s,l,{cwd:d??this.workspaceRoot,shell:process.platform==="win32",env:{...process.env}}),j=setTimeout(()=>{I.kill("SIGTERM"),f({stdout:v.slice(0,KV),stderr:x+`
1179
+ </body></html>`;t(A1r,"startLoopbackListener");t(N1r,"openBrowser");t(O1r,"buildDefaultDeviceLabel");t(F1r,"runOAuthSignIn")});var sue=Nt((P4r,M1r)=>{M1r.exports={name:"@burtson-labs/bandit-stealth-cli",version:"1.7.113",description:"Bandit \u2014 a local-first AI coding agent for your terminal. Same runtime as the Bandit Stealth VS Code / Cursor extension.",keywords:["ai","agent","cli","coding-agent","llm","ollama","local-first","bandit","burtson-labs","terminal","repl","developer-tools"],homepage:"https://burtson.ai",bugs:{email:"team@burtson.ai"},license:"MIT",author:{name:"Burtson Labs",email:"team@burtson.ai",url:"https://burtson.ai"},bin:{bandit:"./dist/cli.js"},main:"dist/cli.js",files:["dist/cli.js","README.md","LICENSE"],engines:{node:">=20"},publishConfig:{access:"public"},scripts:{typecheck:"tsc -p tsconfig.json --noEmit",build:"node build.mjs","build:publish":"node build.mjs --publish",dev:"node build.mjs --watch",start:"node dist/cli.js",smoke:"node build.mjs && node dist/__smoke__/smoke.js",integration:"node build.mjs && node dist/__integration__/ollama.js",eval:"node build.mjs && node dist/__eval__/eval.js",benchmark:"node build.mjs && node dist/__eval__/benchmark.js","gen-logo":"node scripts/gen-logo.mjs","preview-banner":"node scripts/preview-banner.mjs",clean:"rm -rf dist",prepack:"node scripts/prepack.mjs",postpack:"node scripts/postpack.mjs",prepublishOnly:"pnpm run clean && pnpm run typecheck && pnpm run build:publish"},dependencies:{"pdf-parse":"^2.4.5"},devDependencies:{"@burtson-labs/agent-core":"workspace:*","@burtson-labs/host-kit":"workspace:*","@burtson-labs/stealth-core-runtime":"workspace:*","@types/node":"^20.11.0","@types/pdf-parse":"^1.1.5","@types/pngjs":"^6.0.5",esbuild:"^0.28.0",pngjs:"^7.0.0",typescript:"^5.4.0"}}});var sbr={};module.exports=LLt(sbr);var Qm=vu(require("fs")),yOe=vu(require("os")),vm=vu(require("path")),s9=vu(require("readline")),cue=vu(require("child_process")),Vp=vu(jV()),BF=vu(R6e());var FF=vu(require("fs")),j6e=vu(require("os")),u6=vu(require("path")),XV=vu(require("child_process"));function OF(a){return a==="~"?j6e.homedir():a.startsWith("~/")?u6.join(j6e.homedir(),a.slice(2)):a}t(OF,"expandHome");var XL=16*1024,KV=32*1024,eft=1e4,C0r=3e4,L6e=200,$6e=new Set(["node_modules",".git","dist","build","out",".next",".turbo","coverage","target","__pycache__",".venv","venv"]);function P0r(a){let s=t(d=>{let f=d.match(/^(.*?)\{([^}]+)\}(.*)$/);if(!f)return[d];let[,v,x,I]=f;return x.split(",").map(j=>`${v}${j.trim()}${I}`)},"braceExpand"),l=a.match(/^([^*{}]+?)\/\*\*\/(.+)$/);if(l){let[,d,f]=l;return{includes:s(f),subDir:d}}return{includes:s(a),subDir:""}}t(P0r,"expandGlobForGrep");var MF=class{constructor(s,l,d={}){this.workspaceRoot=s;this.languageAdapters=l;this.options=d;this._readFiles=new Set}static{t(this,"CliToolExecutionContext")}markFileRead(s){this._readFiles.add(OF(s))}hasFileBeenRead(s){return this._readFiles.has(OF(s))}async readFile(s){return FF.promises.readFile(OF(s),"utf-8")}async writeFile(s,l){let d=OF(s);if(this.options.approveWrite&&!await this.options.approveWrite(d,l))throw new Error(`Write to ${d} rejected by user`);await FF.promises.mkdir(u6.dirname(d),{recursive:!0}),await FF.promises.writeFile(d,l,"utf-8")}async listFiles(s,l){let d=OF(l??this.workspaceRoot),f=E0r(s),v=[];return await tft(d,d,f,v),v.slice(0,L6e).sort()}async listDirectoryEntries(s){let l=OF(s),d=await FF.promises.readdir(l,{withFileTypes:!0}),f=[];for(let v of d){if(v.name.startsWith("."))continue;let x=v.isDirectory();if(v.isSymbolicLink())try{x=(await FF.promises.stat(u6.join(l,v.name))).isDirectory()}catch{x=!1}f.push(x?`${v.name}/`:v.name)}return f.sort()}async searchCode(s,l,d){let f=OF(l??this.workspaceRoot);return this.runRipgrep(s,f,d).catch(()=>this.runGrep(s,f,d))}async runCommand(s,l,d){return new Promise(f=>{let v="",x="",I=XV.spawn(s,l,{cwd:d??this.workspaceRoot,shell:process.platform==="win32",env:{...process.env}}),j=setTimeout(()=>{I.kill("SIGTERM"),f({stdout:v.slice(0,KV),stderr:x+`
1180
1180
  [process timed out]`,exitCode:124})},C0r);I.stdout?.on("data",B=>{v+=B.toString(),v.length>KV&&I.kill("SIGTERM")}),I.stderr?.on("data",B=>{x+=B.toString()}),I.on("close",B=>{clearTimeout(j),f({stdout:v.slice(0,KV),stderr:x.slice(0,4*1024),exitCode:B??0})}),I.on("error",B=>{clearTimeout(j),f({stdout:"",stderr:B.message,exitCode:1})})})}async watchCommand(s,l,d,f){return new Promise(v=>{let x="",I="",j=!1,B=!1,J=XV.spawn(s,l,{cwd:d??this.workspaceRoot,shell:process.platform==="win32",env:{...process.env}}),X=t(be=>{B||(B=!0,v({stdout:x.slice(0,KV),stderr:I.slice(0,4*1024),exitCode:be,endedEarly:j}))},"finish"),V=setTimeout(()=>{try{J.kill("SIGTERM")}catch{}let be=setTimeout(()=>{try{J.kill("SIGKILL")}catch{}X(null)},1e3);J.once("close",Se=>{clearTimeout(be),X(typeof Se=="number"?Se:null)})},f);J.stdout?.on("data",be=>{if(x+=be.toString(),x.length>KV)try{J.kill("SIGTERM")}catch{}}),J.stderr?.on("data",be=>{I+=be.toString()}),J.on("close",be=>{B||(clearTimeout(V),j=!0,X(typeof be=="number"?be:null))}),J.on("error",be=>{B||(clearTimeout(V),j=!0,I+=be.message,X(1))})})}runRipgrep(s,l,d){return new Promise((f,v)=>{let x=["--color=never","--line-number","--max-count=25","--max-filesize=1M",...[...$6e].map(J=>["--glob",`!${J}`]).flat()];d&&x.push("--glob",d),x.push(s,l);let I="",j=XV.spawn("rg",x,{shell:!1}),B=setTimeout(()=>{j.kill("SIGTERM"),f(I.slice(0,XL))},eft);j.stdout?.on("data",J=>{I+=J.toString(),I.length>XL&&j.kill("SIGTERM")}),j.on("close",J=>{clearTimeout(B),J!=null&&J>=2&&I.length===0?v(new Error(`rg exited with code ${J}`)):f(I.slice(0,XL))}),j.on("error",v)})}runGrep(s,l,d){return new Promise((f,v)=>{let x=[...$6e].map(Se=>["--exclude-dir",Se]).flat(),I=d?P0r(d):{includes:[],subDir:""},j=I.includes.flatMap(Se=>["--include",Se]),B=I.subDir?`${l}/${I.subDir}`:l,J=["-rn","-E","--color=never",...x,...j,s,B],X="",V=XV.spawn("grep",J,{shell:!1}),be=setTimeout(()=>{V.kill("SIGTERM"),f(X.slice(0,XL))},eft);V.stdout?.on("data",Se=>{X+=Se.toString(),X.length>XL&&V.kill("SIGTERM")}),V.on("close",Se=>{clearTimeout(be),Se!=null&&Se>=2&&X.length===0?v(new Error(`grep exited with code ${Se}`)):f(X.slice(0,XL))}),V.on("error",v)})}};function E0r(a){let s=D0r(a);return l=>s.test(l.replace(/\\/g,"/"))}t(E0r,"compileGlob");function D0r(a){let s="^";for(let l=0;l<a.length;l++){let d=a[l];if(d==="*")a[l+1]==="*"?(s+=".*",l++,a[l+1]==="/"&&l++):s+="[^/]*";else if(d==="?")s+="[^/]";else if(d==="{"){let f=a.indexOf("}",l);if(f===-1){s+="\\{";continue}let v=a.slice(l+1,f).split(",").map(I0r).join("|");s+=`(?:${v})`,l=f}else/[.+^$()|\\]/.test(d)?s+="\\"+d:s+=d}return s+="$",new RegExp(s)}t(D0r,"globToRegex");function I0r(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}t(I0r,"escapeRegex");async function tft(a,s,l,d){if(d.length>=L6e)return;let f;try{f=await FF.promises.readdir(a,{withFileTypes:!0})}catch{return}for(let v of f){if(d.length>=L6e)return;if($6e.has(v.name))continue;let x=u6.join(a,v.name),I=u6.relative(s,x);v.isDirectory()?await tft(x,s,l,d):v.isFile()&&l(I)&&d.push(x)}}t(tft,"walk");var nft=vu(require("child_process")),UP=vu(require("fs")),ift=vu(require("os")),B6e=vu(require("path")),aft=vu(require("crypto"));function z6e(){let a=aft.randomBytes(4).toString("hex");return B6e.join(ift.tmpdir(),`bandit-paste-${Date.now()}-${a}.png`)}t(z6e,"freshTempPath");function qle(a,s,l={}){try{let d=nft.spawnSync(a,s,{...l,encoding:void 0});return{stdout:Buffer.isBuffer(d.stdout)?d.stdout:Buffer.from(d.stdout??""),code:d.status}}catch{return{stdout:Buffer.alloc(0),code:null}}}t(qle,"tryExec");async function Wle(){return process.platform==="darwin"?A0r():process.platform==="linux"?N0r():process.platform==="win32"?O0r():null}t(Wle,"readClipboardImage");function A0r(){let a=z6e(),s=`set pngData to (the clipboard as \xABclass PNGf\xBB)
1181
1181
  set outFile to (open for access (POSIX file "${a}") with write permission)
1182
1182
  write pngData to outFile
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burtson-labs/bandit-stealth-cli",
3
- "version": "1.7.112",
3
+ "version": "1.7.113",
4
4
  "description": "Bandit — a local-first AI coding agent for your terminal. Same runtime as the Bandit Stealth VS Code / Cursor extension.",
5
5
  "keywords": [
6
6
  "ai",