@lisa.ai/agent 2.5.2 → 2.5.3

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/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Be=Object.create;var le=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var We=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty;var Je=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ze=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qe(e))!ze.call(t,n)&&n!==s&&le(t,n,{get:()=>e[n],enumerable:!(o=Ye(e,n))||o.enumerable});return t};var v=(t,e,s)=>(s=t!=null?Be(We(t)):{},Ze(e||!t||!t.__esModule?le(s,"default",{value:t,enumerable:!0}):s,t));var Oe=Je((Nt,Xe)=>{Xe.exports={name:"@lisa.ai/agent",version:"2.5.2",description:"Lisa.ai Autonomous CI/CD Worker Agent",main:"dist/index.js",bin:{"lisa-agent":"dist/index.js"},files:["dist/"],scripts:{build:"tsup",typecheck:"tsc --noEmit",start:"node dist/index.js",dev:"ts-node src/index.ts",prepublishOnly:"npm run typecheck && npm run build"},keywords:["lisa","ci","cd","agent"],author:"Lisa.ai",license:"ISC",dependencies:{"@ai-sdk/anthropic":"^3.0.46","@ai-sdk/google":"^3.0.30","@ai-sdk/openai":"^3.0.30","@octokit/rest":"^22.0.1",ai:"^6.0.94",commander:"^11.1.0",dotenv:"^17.3.1","simple-git":"^3.31.1"},devDependencies:{"@types/jest":"^30.0.0","@types/node":"^20.0.0","ts-node":"^10.9.1",tsup:"^8.5.1",typescript:"^5.0.0"}}});var _e=require("commander"),se=v(require("fs")),Ne=v(require("path")),Ue=v(require("readline"));var ue=v(require("dotenv"));ue.config({quiet:!0});async function z(t){let e=process.env.LISA_CONTROL_PLANE_URL||"http://localhost:3000";try{let s=`${e}/api/config/${t}`;console.log(`[Lisa.ai Agent] Fetching dynamic configuration from ${s}...`);let o=await fetch(s);if(!o.ok){let i=o.status===404?"not_found":"unreachable";return console.warn(i==="not_found"?`[Lisa.ai Agent Warning] Control Plane returned 404. Project '${t}' not found.`:`[Lisa.ai Agent Warning] Control Plane returned ${o.status}. Falling back to local defaults.`),{ok:!1,reason:i}}return{ok:!0,config:await o.json()}}catch{return console.warn(`[Lisa.ai Agent Warning] Failed to reach Control Plane (${e}). Using local fallback configuration.`),{ok:!1,reason:"unreachable"}}}var Ie=require("child_process"),S=v(require("fs")),Y=v(require("path"));var x=v(require("path")),j=v(require("fs"));function J(t,e=[],s=process.cwd()){let o=t.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,""),n=e.map(a=>x.resolve(a)),i=/([a-zA-Z]:[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue)|[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))(?:\s*[:(])/g,r;for(;(r=i.exec(o))!==null;){let a=r[1];if(a){if(/[/\\](node_modules|dist|build)[/\\]/.test(a))continue;let h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}}let l=/FAIL\s+([a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))/gi,d;for(;(d=l.exec(o))!==null;){let a=d[1],h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}let g=/([a-zA-Z]:[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue)|[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))/g,m;for(;(m=g.exec(o))!==null;){let a=m[1];if(a){if(/[/\\](node_modules|dist|build)[/\\]/.test(a))continue;let h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}}let p=/\b([A-Z][a-zA-Z0-9]{3,})\b/g,c,f=new Set,u=["Error","TypeError","SyntaxError","ReferenceError","RangeError","NullInjectorError","Object","Boolean","String","Number","Array","Chrome","Windows","Linux","Macintosh","UserContext","TestBed","Module","Unexpected","Expected","ChromeHeadless","Users","AppData","Local","Temp","Process","Component","Validation","Directory","Configuration","Documentation"];for(;(c=p.exec(o))!==null;){let a=c[1];if(a&&!u.includes(a)&&!f.has(a)){f.add(a),console.log(`[Lisa.ai Parser] Discovered abstract symbol failure: ${a}. Scanning project tree...`);let h=de(a,s,n);if(h)return x.relative(s,h)}}return null}function de(t,e,s){if(!j.existsSync(e))return null;let o=j.readdirSync(e);for(let n of o){let i=x.join(e,n);if(n==="node_modules"||n==="dist"||n==="build"||n===".git"||n===".angular")continue;let r;try{r=j.statSync(i)}catch{continue}if(r.isDirectory()){let l=de(t,i,s);if(l)return l}else if(n.match(/\.(ts|tsx|js|jsx|vue)$/)){let l=j.readFileSync(i,"utf8");if(l.includes(`class ${t}`)||l.includes(`function ${t}`)||l.includes(`const ${t}`)||l.includes(`let ${t}`)||l.includes(`exports.${t}`)||l.includes(`module.exports.${t}`)){let d=i,g=x.extname(i),m=i.slice(0,-g.length);if(!n.includes(".spec.")&&!n.includes(".test.")){let p=[`${m}.spec${g}`,`${m}.test${g}`,`${m}.spec.js`,`${m}.test.js`];for(let c of p)if(j.existsSync(c)){d=c;break}}if(!s.includes(x.resolve(d)))return d}}}return null}var B=require("ai"),pe=require("@ai-sdk/openai"),ge=require("@ai-sdk/anthropic"),me=require("@ai-sdk/google"),fe=v(require("dotenv"));fe.config({quiet:!0});var ie=15e3;function he(t,e){return t.length<=ie?t:(console.warn(`[Lisa.ai LLM] ${e} is ${t.length} chars \u2014 truncating to ${ie} to stay within context window.`),t.slice(0,ie)+`
2
+ "use strict";var Be=Object.create;var le=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var We=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty;var Je=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ze=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qe(e))!ze.call(t,n)&&n!==s&&le(t,n,{get:()=>e[n],enumerable:!(o=Ye(e,n))||o.enumerable});return t};var v=(t,e,s)=>(s=t!=null?Be(We(t)):{},Ze(e||!t||!t.__esModule?le(s,"default",{value:t,enumerable:!0}):s,t));var Oe=Je((Nt,Xe)=>{Xe.exports={name:"@lisa.ai/agent",version:"2.5.3",description:"Lisa.ai Autonomous CI/CD Worker Agent",main:"dist/index.js",bin:{"lisa-agent":"dist/index.js"},files:["dist/"],scripts:{build:"tsup",typecheck:"tsc --noEmit",start:"node dist/index.js",dev:"ts-node src/index.ts",prepublishOnly:"npm run typecheck && npm run build"},keywords:["lisa","ci","cd","agent"],author:"Lisa.ai",license:"ISC",dependencies:{"@ai-sdk/anthropic":"^3.0.46","@ai-sdk/google":"^3.0.30","@ai-sdk/openai":"^3.0.30","@octokit/rest":"^22.0.1",ai:"^6.0.94",commander:"^11.1.0",dotenv:"^17.3.1","simple-git":"^3.31.1"},devDependencies:{"@types/jest":"^30.0.0","@types/node":"^20.0.0","ts-node":"^10.9.1",tsup:"^8.5.1",typescript:"^5.0.0"}}});var _e=require("commander"),se=v(require("fs")),Ne=v(require("path")),Ue=v(require("readline"));var ue=v(require("dotenv"));ue.config({quiet:!0});async function z(t){let e=process.env.LISA_CONTROL_PLANE_URL||"http://localhost:3000";try{let s=`${e}/api/config/${t}`;console.log(`[Lisa.ai Agent] Fetching dynamic configuration from ${s}...`);let o=await fetch(s);if(!o.ok){let i=o.status===404?"not_found":"unreachable";return console.warn(i==="not_found"?`[Lisa.ai Agent Warning] Control Plane returned 404. Project '${t}' not found.`:`[Lisa.ai Agent Warning] Control Plane returned ${o.status}. Falling back to local defaults.`),{ok:!1,reason:i}}return{ok:!0,config:await o.json()}}catch{return console.warn(`[Lisa.ai Agent Warning] Failed to reach Control Plane (${e}). Using local fallback configuration.`),{ok:!1,reason:"unreachable"}}}var Ie=require("child_process"),S=v(require("fs")),Y=v(require("path"));var x=v(require("path")),j=v(require("fs"));function J(t,e=[],s=process.cwd()){let o=t.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,""),n=e.map(a=>x.resolve(a)),i=/([a-zA-Z]:[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue)|[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))(?:\s*[:(])/g,r;for(;(r=i.exec(o))!==null;){let a=r[1];if(a){if(/[/\\](node_modules|dist|build)[/\\]/.test(a))continue;let h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}}let l=/FAIL\s+([a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))/gi,d;for(;(d=l.exec(o))!==null;){let a=d[1],h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}let g=/([a-zA-Z]:[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue)|[a-zA-Z0-9_.\-\/\\]+\.(?:ts|tsx|js|jsx|vue))/g,m;for(;(m=g.exec(o))!==null;){let a=m[1];if(a){if(/[/\\](node_modules|dist|build)[/\\]/.test(a))continue;let h=x.isAbsolute(a)?a:x.resolve(s,a);if(!n.includes(h)&&j.existsSync(h))return a}}let p=/\b([A-Z][a-zA-Z0-9]{3,})\b/g,c,f=new Set,u=["Error","TypeError","SyntaxError","ReferenceError","RangeError","NullInjectorError","Object","Boolean","String","Number","Array","Chrome","Windows","Linux","Macintosh","UserContext","TestBed","Module","Unexpected","Expected","ChromeHeadless","Users","AppData","Local","Temp","Process","Component","Validation","Directory","Configuration","Documentation"];for(;(c=p.exec(o))!==null;){let a=c[1];if(a&&!u.includes(a)&&!f.has(a)){f.add(a),console.log(`[Lisa.ai Parser] Discovered abstract symbol failure: ${a}. Scanning project tree...`);let h=de(a,s,n);if(h)return x.relative(s,h)}}return null}function de(t,e,s){if(!j.existsSync(e))return null;let o=j.readdirSync(e);for(let n of o){let i=x.join(e,n);if(n==="node_modules"||n==="dist"||n==="build"||n===".git"||n===".angular")continue;let r;try{r=j.statSync(i)}catch{continue}if(r.isDirectory()){let l=de(t,i,s);if(l)return l}else if(n.match(/\.(ts|tsx|js|jsx|vue)$/)){let l=j.readFileSync(i,"utf8");if(l.includes(`class ${t}`)||l.includes(`function ${t}`)||l.includes(`const ${t}`)||l.includes(`let ${t}`)||l.includes(`exports.${t}`)||l.includes(`module.exports.${t}`)){let d=i,g=x.extname(i),m=i.slice(0,-g.length);if(!n.includes(".spec.")&&!n.includes(".test.")){let p=[`${m}.spec${g}`,`${m}.test${g}`,`${m}.spec.js`,`${m}.test.js`];for(let c of p)if(j.existsSync(c)){d=c;break}}if(!s.includes(x.resolve(d)))return d}}}return null}var B=require("ai"),pe=require("@ai-sdk/openai"),ge=require("@ai-sdk/anthropic"),me=require("@ai-sdk/google"),fe=v(require("dotenv"));fe.config({quiet:!0});var ie=15e3;function he(t,e){return t.length<=ie?t:(console.warn(`[Lisa.ai LLM] ${e} is ${t.length} chars \u2014 truncating to ${ie} to stay within context window.`),t.slice(0,ie)+`
3
3
 
4
4
  // ... (truncated)`)}function ye(t,e){if(!/\b(describe|it\(|test\(|expect\(|beforeEach|afterEach|suite|assert\.|cy\.)\b/.test(t))throw new Error(`LLM returned a non-code response for ${e} (possible context overflow). Skipping to prevent file corruption.`)}function ve(t){if(!t||t.length===0)return"";let e={unit:"unit tests \u2014 test every function/method in complete isolation, mocking ALL external dependencies, services, and I/O",integration:"integration tests \u2014 test how modules work together using real service/repository layers; for HTTP routes use supertest or equivalent",e2e:"end-to-end tests \u2014 simulate complete user flows using the configured e2e framework (Playwright/Cypress); cover the full path from HTTP request to response or UI action to assertion"};return`5. Test scope \u2014 generate ALL of the following test types for this file:
5
5
  ${t.map(o=>` \u2022 ${e[o]??o}`).join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lisa.ai/agent",
3
- "version": "2.5.2",
3
+ "version": "2.5.3",
4
4
  "description": "Lisa.ai Autonomous CI/CD Worker Agent",
5
5
  "main": "dist/index.js",
6
6
  "bin": {