{"_id":"@dastbal/nestjs-ai-agent","_rev":"15-3f2292afdf8b38b8452cc9a1baf80904","name":"@dastbal/nestjs-ai-agent","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.0","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.0","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"fae15f55f64a6e54fce9bfdba9e867d3e659a215","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.0.tgz","fileCount":32,"integrity":"sha512-vjwqTOpohYJQ1c+8S9G1yBaAWCyT47WhMZ00aGkRmiD4/0lAgWOWVp6s8yPdvMoA6d5H9wu//zkXoLbE2EG6xA==","signatures":[{"sig":"MEQCIH1fGAY+1gp0vID1VdypmcRbE+u6JbJaJSNISuN16okgAiAwGIseYmCvBvO+2ZHgfPQAaR5ADIDyQjLClIdAlQL00A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95028},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f6cf37fb3954ec7a97a930fc21882b5377829842","scripts":{"gen":"ts-node src/bin/cli.ts","build":"tsc","start:dev":"ts-node src/bin/cli.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.7","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/langgraph":"1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13"},"peerDependencies":{"@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.0_1769824679208_0.633966679081513","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.1","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.1","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"f6f2146f87851e99081739283ef7bcecca99a051","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.1.tgz","fileCount":32,"integrity":"sha512-HF6JzkoG2Btfk84Jgb+qbExm6EzilhI/ug03qWBtwmdL8Nj//Fd93RzfHGLyDzBm5VHE1yFs/ISW0gmS2G6enQ==","signatures":[{"sig":"MEUCIQDSpaq2m7fcfPmEb06EoWw6t7jsNqj0UT7oZldPta8yOQIgGNEuMe1ubFh7wSwDrkZCJO2EgI2OF3vF8l2C+W232h0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95045},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f6cf37fb3954ec7a97a930fc21882b5377829842","scripts":{"gen":"ts-node src/bin/cli.ts","build":"tsc","start:dev":"ts-node src/bin/cli.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.7","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/langgraph":"1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.1_1769825400328_0.06800343737922687","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.2","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.2","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"8f10968348fc117ee2d8e232f42b54b4167fee1c","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.2.tgz","fileCount":32,"integrity":"sha512-O9qZFbhO6kIoDRlrzuQ84P9CN1VStLgWFj4Mjqr7vXSxUmBZSenwSVA8sfBizxsry/txeQX98fGtaur8dI3y5g==","signatures":[{"sig":"MEQCIB/44+iZ1hVGIs+l+SWjepgXAzWaKj/KK5m6X53SB3USAiAuxJC7ACz+5p/FgXZmRhX7aCifbFk6ck/R3gr962k68g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101551},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9c39a5cf9d1998ee800b7da70fc0ce6fe6a93a1b","scripts":{"gen":"ts-node src/bin/cli.ts","build":"tsc","start:dev":"ts-node src/bin/cli.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.7","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/langgraph":"1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.2_1769831300901_0.25847694033207436","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.3","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.3","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"cdfbbdb517ea2315f28bab1ba2cbe0f16af31350","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.3.tgz","fileCount":32,"integrity":"sha512-NR4hQfbkJUAgKf2kypXTysSwKkmzPMACNuUW/0IJWju8D20LAX2huLJrlly5nLaoDz8jHN4Lc2jAt6IYFfYq6Q==","signatures":[{"sig":"MEUCIQDKVCpY0bHrM+fe5IZsPphUXHV+ZRB5PNejtD4SJqhSRAIgTI155Fo6GYSheUZ/PxyqXjb9L/GX0qMRoygnsShGUA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99000},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3a0a9a81797997fd607f5a5ac63933d9deddc4bb","scripts":{"gen":"ts-node src/bin/cli.ts","build":"tsc","start:dev":"ts-node src/bin/cli.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.7","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/langgraph":"1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.3_1769833247602_0.3508070601293585","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.5","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.5","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"5f56063eede4d9a1b3c065020e33a75befafdba8","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.5.tgz","fileCount":34,"integrity":"sha512-W/U5Ol+HlEotg8JLSXUYhU1Qr8935X1F0d4uEN3EO65kirpKEvfoYRs/jAKra3Ue9tHPuq1+9y4uPRyXREVrUQ==","signatures":[{"sig":"MEUCIQCP5xI+7m4AKEDMOeOJ2jJCn51c6tEwefr80S6rjIKI5AIgWoYJl7iBkK3VyaHH2X/T33jVXKFg/UsNCJ1P6QzWb6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105165},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ee3415d83256ed3eae2697ff73c38128eaf16f7f","scripts":{"gen":"ts-node src/bin/cli.ts","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.5_1770216546824_0.412703448752189","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.6","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.6","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"fe35a91a08cce9d1df86f0c19c047829edbe96aa","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.6.tgz","fileCount":38,"integrity":"sha512-8SnMx7naukQJ5adAj7eY1DWqbps+dUs1QjLYU4Ro6t9I64CbiDluwBv1Gofm+Ji+q2fEmXB35R8XfGuzFL6r6Q==","signatures":[{"sig":"MEUCICyxJZk6L4JRkFRVNWJj4zYOY32qWyO35YbsuhB1hOjAAiEA8yHiVpL1wGhiPEo+ZXlMvRv5qv4hhKRfFpmMkohGfCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124744},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9aced283dd1d50d34981898e559ba21d141e8511","scripts":{"gen":"ts-node src/bin/cli.ts","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","node":"ts-node src/bin/cli.ts node","test":"jest","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.6_1770488403502_0.8789869176783229","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.7","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.7","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"gen":"dist/bin/cli.js"},"dist":{"shasum":"0828591ce30c21ef730ef7b721aedc9be5b5cbdb","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.7.tgz","fileCount":54,"integrity":"sha512-U/pYpuqvvGsbYhnr892lyMNa2Qa30njB12L15cY2zZn/wl99G1HIm+sUhqiu2WSlTtHNc2hyj/kh8c+SGdwBAw==","signatures":[{"sig":"MEQCIEsrrd4TD2U/s75MkJGUVh5jK7zLD+Cw+KACFIw+f7E4AiB9TV/w9oZ1rs4xmLCRsehIgYoXwnPJ94y76Tz+UU2SDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143610},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4e7c06a90e07bf92fdba501bb32dea9790b1b1cb","scripts":{"gen":"ts-node src/bin/cli.ts","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","node":"ts-node src/bin/cli.ts node","test":"jest","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.7_1770504175414_0.26808871418349844","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.8","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.8","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"b82817bbe06e02a725ae291760615bdf424e592b","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.8.tgz","fileCount":54,"integrity":"sha512-DrC+ArQKFBF8tL7N/rO7pP4rppkD3YYTQ/PDeAydK/ZByW0fI7SWN9rzI14ZASnHeArSKXREaC5er1OLmwy5ww==","signatures":[{"sig":"MEUCIHwZxZHYten836DJmVC3tR9Nj30Uy9s5B8D16z6kpQS2AiEAmbLlyMXzULtgtBfHwLCb1AvEh+yLBpxey8yFVHT01fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143469},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fdacac01e71c2c2224545eca88d0226abc051572","scripts":{"gen":"ts-node src/bin/cli.ts","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts graph","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.8_1770505619569_0.031324452341660924","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@dastbal/nestjs-ai-agent","version":"1.0.9","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.0.9","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"a8b1a723d1fce8ebe1d5af7c77b027f92c75c0c4","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.0.9.tgz","fileCount":54,"integrity":"sha512-PZb1i3WfOcQa5Q357xU4s84NEvBT5ygoHNGrixnW2E2rkMtxEOo8R/sqez4ttxLgT5aCFqcr8U5KknVZhLnRHw==","signatures":[{"sig":"MEUCIGR3I9ueMTURtkjBgXJqSkCpkTu0FiTnjYXrq+lOXxzCAiEAnqZJBtwjxnJGUfh/bRESybh99PW6ab6wKk3Fmhqx01E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143851},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fdacac01e71c2c2224545eca88d0226abc051572","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.3.5","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.0.9_1770507142072_0.22816878632489046","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dastbal/nestjs-ai-agent","version":"1.1.0","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.1.0","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"97ebbb8c86cf78d6fb7622fa71ffff90d0437e19","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.1.0.tgz","fileCount":82,"integrity":"sha512-PHC4NEMfyMrUPxI2fCUDmDYcqd63NdTsAa1VqGut1UUBLRtvu7SC5HKwlSyYyyasXolkyy8n3XjaLQ6dd8jAPA==","signatures":[{"sig":"MEYCIQCTQjmwurmEEyTNQoJXhcmVB04Igw/mNIqnP4eFLyfpKwIhAIUvrdph9PBSCm9gmPywwjCIsHINO/9CWh2Qw13GLA/T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192918},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1fdba7ab1f72cf86511ead77b82c39f7e9b6b319","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^5.4.1","zod":"^4.3.6","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.6.1","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-supervisor":"^1.0.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.1.0_1774293938937_0.8804413193772509","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@dastbal/nestjs-ai-agent","version":"1.2.0","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.2.0","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"fba217579c009ae530499969e0bd7c9d7cedc54e","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.2.0.tgz","fileCount":122,"integrity":"sha512-5VzeEeOplttAQJcSnqXUsnnYHwqUUdBkaFq/bVgoBQD5FWHLuQZHBSMvGSszgThUFcEnHWmU2ju73fmJPq0sTQ==","signatures":[{"sig":"MEUCIQDcth5O1meqqB9lW6tMF1qLoloI816q/pxhiz2nvxhkUQIgfM6HS9Sz7FqR4e8sVgeOq7l/BCkYerQ516FbOF/Tz8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328317},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3d1a2e3c4a4a7b38c86e3dabe26ab720a08bb522","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^5.4.1","zod":"^4.3.6","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.10.2","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-supervisor":"^1.0.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.2.0_1780605202446_0.8017677597320576","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@dastbal/nestjs-ai-agent","version":"1.2.1","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.2.1","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"788a8a06792691f281e01887eb3d8293f94ed8af","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.2.1.tgz","fileCount":124,"integrity":"sha512-JKQw3O6cbuIEBgUIE7hi9aY7ErPSpW7WDpegm3JM/CXEVtg4hRfOwdqfgcfoTBkuVXDR0RTjvPf+u7pMJsgaYw==","signatures":[{"sig":"MEQCIGIWTAELkgo7yZK8tp3E3QyEp5NhG7MaNGI3HvuFl1luAiBmKx/eUzPgZLZZLa43FPUsGaPKVqFAx15SPOAD8/MtlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340733},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2179df3ea88934d97d7bdcfa3f932b587981109f","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^5.4.1","zod":"^4.3.6","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.10.2","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-supervisor":"^1.0.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.2.1_1780606074858_0.5840515530167778","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dastbal/nestjs-ai-agent","version":"1.3.0","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.3.0","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"32ba5c0e525a9c306fecb0cd2c742ae5f5d4b533","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.3.0.tgz","fileCount":130,"integrity":"sha512-fG6MItPknKzNMi4sy0UjT/RYWZuWRCO0S3tF+r2GtButdZaRw2N0fgZDK4keAiPBTqojABKEm93GmdiSW55oPQ==","signatures":[{"sig":"MEMCHxBdrbxiqta5qqGNT1DqLvweEDqbHUTMLuDaVNwoMkUCIBrNxnIUfcCKW/TwAcMD+t74D6PGHNVXDZzlf8Lsf27H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403835},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b4a0e10e9438d4f1edd1c12f48b11828b18927d1","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^5.4.1","zod":"^4.3.6","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.10.2","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.48","@langchain/ollama":"^1.2.7","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-supervisor":"^1.0.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.3.0_1780610634827_0.9221439550765056","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@dastbal/nestjs-ai-agent","version":"1.4.1","author":{"name":"David Balladares"},"license":"MIT","_id":"@dastbal/nestjs-ai-agent@1.4.1","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"bin":{"agent":"dist/bin/cli.js"},"dist":{"shasum":"1a18b1c4363c88a6fd513d93d1bb356bc23766be","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.4.1.tgz","fileCount":132,"integrity":"sha512-saAA8IsT7qGNhNt6geqxwCDZQXiWFw1bVRsTXGOkOD4modQJbWWueo8E597u0D6EegYZ5ae/SH0ZHVCSsuR0WQ==","signatures":[{"sig":"MEUCIA+GQZA3DPbzBkJ3rnqfCFk8p8olgV/kYSeMdNGByl1qAiEA/LNOike5M3/ZGXmRPoq7YNiC3GXR7YKAj/qF3hWjojw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441846},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6e7625efb6273ca2a4ffcd4b4951d3b76c200cac","scripts":{"gen":"ts-node src/bin/cli.ts classic","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","agent":"ts-node src/bin/cli.ts","build":"tsc","test:cov":"jest --coverage","start:dev":"ts-node src/bin/cli.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"_npmVersion":"10.8.2","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^5.4.1","zod":"^4.3.6","uuid":"^13.0.0","chalk":"^4.1.2","dotenv":"^17.2.3","sqlite3":"^5.1.7","ts-morph":"^27.0.2","commander":"^14.0.2","langchain":"^1.2.16","deepagents":"^1.10.2","better-sqlite3":"^12.5.0","@langchain/core":"^1.1.48","@langchain/ollama":"^1.2.7","@langchain/langgraph":"^1.0.7","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph-supervisor":"^1.0.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@langchain/langgraph-cli":"^1.1.11"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-ai-agent_1.4.1_1780683514337_0.16185268416086873","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@dastbal/nestjs-ai-agent","version":"1.5.0","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","author":{"name":"David Balladares"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","bin":{"agent":"dist/bin/cli.js"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","gen":"ts-node src/bin/cli.ts classic","agent":"ts-node src/bin/cli.ts","start:dev":"ts-node src/bin/cli.ts","prepublishOnly":"npm run build","type-check":"tsc --noEmit","test":"jest","test:cov":"jest --coverage","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix"},"dependencies":{"@langchain/core":"^1.1.48","@langchain/google-vertexai":"^2.1.6","@langchain/langgraph":"^1.0.7","@langchain/langgraph-checkpoint-sqlite":"^1.0.0","@langchain/langgraph-supervisor":"^1.0.1","@langchain/ollama":"^1.2.7","better-sqlite3":"^12.5.0","chalk":"^4.1.2","commander":"^14.0.2","deepagents":"^1.10.2","dotenv":"^17.2.3","langchain":"^1.2.16","langsmith":"^0.7.5","ora":"^5.4.1","sqlite3":"^5.1.7","ts-morph":"^27.0.2","uuid":"^13.0.0","zod":"^4.3.6"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.1.13 || ^0.2.0"},"devDependencies":{"@langchain/langgraph-cli":"^1.1.11","@nestjs/common":"^10.4.22","@types/better-sqlite3":"^7.6.13","@types/jest":"^30.0.0","@types/node":"^20.19.30","@types/uuid":"^10.0.0","jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.0.0"},"_id":"@dastbal/nestjs-ai-agent@1.5.0","gitHead":"5bbf008af650a20fd432297368367b3ac9e6d992","_nodeVersion":"22.21.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XQRa2GmGGWy+D/iZbMD1BHwlGkx8rp/M/YWtr1p1QzYEnFz0tnH0nHXhl6UBue9rU2GL+kOhYwOOzNPoiQvEvQ==","shasum":"02b17b76034ccd5bdff2f260d727ad5fe1cb1086","tarball":"https://registry.npmjs.org/@dastbal/nestjs-ai-agent/-/nestjs-ai-agent-1.5.0.tgz","fileCount":132,"unpackedSize":474303,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGfy7KZcFDmaKq+u3YLW1ldWdckZXWHQ8eaS4PTGhS4aAiEAxMFW3aEa1Fmm/NbSYqB17euGGw+d493EGAELmLjr63g="}]},"_npmUser":{"name":"dastbal","email":"davidxsteven@gmail.com"},"directories":{},"maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-ai-agent_1.5.0_1780691354794_0.6199147238595022"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-31T01:57:59.140Z","modified":"2026-06-05T20:29:15.094Z","1.0.0":"2026-01-31T01:57:59.363Z","1.0.1":"2026-01-31T02:10:00.480Z","1.0.2":"2026-01-31T03:48:21.071Z","1.0.3":"2026-01-31T04:20:47.769Z","1.0.5":"2026-02-04T14:49:06.986Z","1.0.6":"2026-02-07T18:20:03.677Z","1.0.7":"2026-02-07T22:42:55.563Z","1.0.8":"2026-02-07T23:06:59.713Z","1.0.9":"2026-02-07T23:32:22.287Z","1.1.0":"2026-03-23T19:25:39.109Z","1.2.0":"2026-06-04T20:33:22.587Z","1.2.1":"2026-06-04T20:47:55.038Z","1.3.0":"2026-06-04T22:03:54.964Z","1.4.1":"2026-06-05T18:18:34.499Z","1.5.0":"2026-06-05T20:29:14.985Z"},"author":{"name":"David Balladares"},"license":"MIT","description":"Autonomous AI Agent for NestJS - Principal Software Engineer Level with RAG and SQLite persistence","maintainers":[{"name":"dastbal","email":"davidxsteven@gmail.com"}],"readme":"# NestJS AI Agent Lib\n\n[![NestJS AI Agent](https://img.shields.io/badge/NestJS%20AI%20Agent-Lib-blue?style=flat-square)](https://github.com/your-repo/nestjs-ai-agent-lib)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](https://opensource.org/licenses/MIT)\n\n> Built with ❤️ by **David Balladares** — Principal Software Engineer level autonomous agent for NestJS.\n\nAn autonomous AI agent framework designed specifically for **NestJS** projects. It analyzes, plans, writes, and verifies code with specialized subagents, all accessible via a premium streaming CLI. Leverages **Google Gemini (Vertex AI)** or **local Ollama** models without requiring API keys for local inference.\n\n---\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Getting Started with NestJS](#getting-started-with-nestjs)\n  - [Option A — Ollama (Local, Free, No API Key) 🦙](#option-a--ollama-local-free-no-api-key-)\n  - [Option B — Google Gemini (Cloud)](#option-b--google-gemini-cloud)\n- [CLI — Interactive Streaming Sessions](#cli--interactive-streaming-sessions)\n  - [Session Management](#session-management)\n  - [Switching Models — `/model` command](#switching-models---model-command)\n  - [LLM Switching via env var](#llm-switching-via-env-var)\n- [Agent Modes](#agent-modes)\n  - [Deep Agent (`deep`)](#deep-agent-deep)\n  - [Orchestrator (`orchestrate`)](#orchestrator-orchestrate)\n- [Architecture](#architecture)\n- [Core Concepts](#core-concepts)\n  - [NestJS Integration](#nestjs-integration)\n  - [Safety Features](#safety-features)\n  - [RAG X-Ray Strategy](#rag-x-ray-strategy)\n- [Project Structure](#project-structure)\n- [Roadmap](#roadmap)\n- [License](#license)\n\n---\n\n## Overview\n\nThis library empowers your NestJS applications with an autonomous AI agent capable of:\n\n- 📋 **Intelligent Planning:** Classifies task complexity (SMALL/MEDIUM/LARGE) and plans execution accordingly.\n- 🔍 **Codebase Analysis:** Performs semantic search over your project using Retrieval-Augmented Generation (RAG) for deep understanding (X-Ray strategy).\n- 💾 **Safe Code Writing:** Writes code with automatic backups before every file modification.\n- 🧪 **Automated Testing:** Integrates with Jest and `tsc --noEmit` for TDD, self-correcting on failures.\n- 🤖 **Subagent Delegation:** Spawns specialized \"Researcher\" and \"Coder\" subagents for complex tasks.\n- ✋ **Human-in-the-Loop (HITL):** Prompts for approval on critical operations like file deletion or infrastructure changes.\n- 💬 **Persistent Memory:** Maintains full conversation history via SQLite, enabling continuation across named sessions.\n- 🧠 **Context Compression:** Automatically summarizes long conversations to prevent context overflow.\n- 🎨 **Beautiful Output:** Renders responses in markdown with rich formatting (chalk, icons, code blocks).\n- ⚙️ **Autonomous Execution:** Executes full plans without requiring manual `yes/no` confirmations.\n- 🩹 **Self-Healing:** Recovers automatically from corrupted session states.\n- 🦙 **Local LLM Support:** Full integration with Ollama, allowing use of models like Gemma4, Qwen3.6, Llama3.2 locally — free, offline, and no API key needed.\n\n---\n\n## Key Features\n\n*   **NestJS Native:** Designed from the ground up for NestJS projects.\n*   **Domain-Driven Design (DDD) Support:** Understands and can generate code following DDD principles.\n*   **Architecture Aware:** Can analyze and refactor code while respecting architectural boundaries.\n*   **TDD Workflow:** Integrates seamlessly with Jest for Test-Driven Development.\n*   **Multiple LLM Backends:** Supports Google Gemini (cloud) and Ollama (local).\n*   **Codebase Indexing (RAG):** Enables the agent to understand your project's structure and code through semantic search.\n*   **Safety First:** Robust file system safety, HITL approvals for destructive actions.\n*   **Efficient CLI:** Real-time token streaming and interactive model switching.\n*   **Skills System (v1.4):** 12 keyword-triggered skills — the agent automatically loads the right guide for every task (DDD module, tests, refactor, security audit, architecture validation, and more). Base prompt stays lean regardless of how many skills exist.\n*   **Mentor Mode (v1.4):** Always-on lightweight mentoring (root cause + trade-off on every response) plus a deep `/mentor` toggle for Socratic dialogue, Forced Output Contract, and architectural decision explanations.\n*   **AGENTS.md Context Tiering (v1.4):** Separate context files — `ANTIGRAVITY.md` for the human, `AGENTS.md` for the agent — following OpenHands Context Tiering best practice.\n\n---\n\n## Getting Started with NestJS\n\n### Option A — Ollama (Local, Free, No API Key) 🦙\n\nThe recommended and fastest way to start, running entirely on your machine.\n\n**1. Install [Ollama](https://ollama.com) and pull a model:**\n\n```bash\n# Recommended model for a balance of quality and performance\nollama pull gemma4        # ~10 GB\n\n# Or, for faster inference with lower RAM usage:\nollama pull gemma4:e2b    # ~7 GB\n\n# Or, for strong reasoning with a compact model:\nollama pull qwen3.6       # ~4 GB\n```\n\n**2. Install project dependencies:**\n\n```bash\nnpm install\n```\n\n**3. Configure your environment variables:**\n\nCreate a `.env.development` file in the project root:\n\n```dotenv\n# .env.development\n\n# Use the model you pulled with Ollama\nAGENT_MODEL=ollama:gemma4\n\n# Optional: Only if Ollama runs on a non-default port (e.g., 11434)\n# OLLAMA_BASE_URL=http://localhost:11434\n```\n\n**4. Run the agent:**\n\n```bash\nnpm run agent -- deep\n```\n\nThat's it! No Google account or API key needed.\n\n> **Tip:** Inside the agent session, type `/model` to interactively switch between Ollama models or even to Gemini cloud models if you configure them.\n\n---\n\n### Option B — Google Gemini (Cloud)\n\nLeverages Google's powerful Vertex AI models. Requires authentication.\n\n#### Option B1 — Your personal Google account (Recommended for local development) ✅\n\n```bash\n# 1. Install the Google Cloud SDK: https://cloud.google.com/sdk/docs/install\n# 2. Authenticate and set your GCP project:\ngcloud auth application-default login --project YOUR_GCP_PROJECT_ID\n\n# 3. Configure your environment variables:\n# Create or update .env.development:\n# AGENT_MODEL=gemini-2.5-flash-lite\n\n# 4. Run the agent:\nnpm run agent -- deep\n```\n\n#### Option B2 — Service Account (CI/CD, Production)\n\n**Required IAM Role:**\n*   `roles/aiplatform.user` (Vertex AI User)\n\nAssign this role to your service account in the GCP Console: **IAM & Admin → IAM → Grant Access**.\n\n```dotenv\n# .env.development\n# Path to your service account key file\nGOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/your/service-account.json\n\n# Choose your Gemini model\nAGENT_MODEL=gemini-2.5-flash-lite\n```\n\n---\n\n## CLI — Interactive Streaming Sessions\n\nThe agent provides an interactive CLI experience similar to other advanced chatbots, with real-time token streaming and clear status indicators for tool execution.\n\n```\n╭────────────────────────────────────────────────╮\n│                                                │\n│  NestJS AI Agent — Deep Mode                  │\n│  Single autonomous agent with planning tools  │\n│  Model: ollama:gemma4                         │\n│  Session: auth-module (continuing)            │\n│  Type your task. Ctrl+C to exit.              │\n│                                                │\n╰────────────────────────────────────────────────╯\n\nYou: Create a UsersModule following DDD principles.\n\n  ⠋  Thinking...\n╭─ 📋  write_todos\n│  └─ Creating implementation plan...\n╰─ ✓  done in 1.2s\n\n╭─ 🔍  ask_codebase\n│  └─ How is AuthModule structured for DDD?\n╰─ ✓  done in 3.4s\n\nAgent: I will create a UsersModule following the same DDD pattern as AuthModule...\n       (tokens stream as they are generated)\n\n──────────────────────────────────────────────────\n\nYou: ▋\n```\n\n### Session Management\n\nManage conversation history and context using session IDs.\n\n| Command                                 | Behavior                                                              |\n| :-------------------------------------- | :-------------------------------------------------------------------- |\n| `npm run agent -- deep`                 | **Ephemeral** — Starts a fresh session each time.                     |\n| `npm run agent -- deep --session auth`  | **Persistent** — Reopens or creates the `auth` session context.       |\n| `npm run agent -- orchestrate --session feature-x` | Same persistence for the orchestrator mode.                         |\n| `npm run agent -- deep \"Your task\"`     | Starts an ephemeral session with an initial human message.            |\n| `npm run agent -- deep --session session-name \"Your task\"` | Starts/resumes a named session with an initial message. |\n\n> **Note:** Session data is stored in `.agent/deep_agent_history.db` and `.agent/orchestrator_history.db`.\n\n---\n\n### Switching Models — `/model` command\n\nInteract with the agent and switch LLM models on-the-fly without losing your current session context.\n\n```\nYou: /model\n\n╭────────────────────────────────────────────────────╮\n│  🔧  Switch LLM Model                              │\n│  Type the number and press Enter.                  │\n│  Press 0 or Enter to cancel.                       │\n╰────────────────────────────────────────────────────╯\n\n  Select Provider:\n  1. ⚡  Vertex AI  (Gemini cloud — requires Google credentials)\n  2. 🦙  Ollama     (Local models — free, no API key needed)  ← active\n  Provider: 2\n\n  Detecting Ollama models... ✓ (4 found)\n\n  Select Ollama Model:\n  1. gemma4:26b  (17 GB)\n  2. gemma4:e2b  (7.2 GB)\n  3. gemma4:e4b  (9.6 GB)\n  4. gemma4      (9.6 GB)\n  Model: 1\n\n  ✅ Switching to ollama:gemma4:26b\n  💾 Saved to .env\n  🔄 Restarting agent with new model...\n```\n\nThe selected model is automatically saved to your `.env` file for future sessions.\n\n### Slash Commands\n\n| Command | Description | State |\n|---|---|---|\n| `/model` | Switch the active LLM model interactively (Ollama or Vertex AI) | — |\n| `/mentor` | Toggle deep mentor mode — Forced Output Contract, trade-off analysis, Socratic gates | `[ON]` / `[OFF]` |\n| `/help` | Show all available slash commands with their current state | — |\n| `Ctrl+C` | Exit the session cleanly | — |\n\n#### Mentor Mode in depth\n\nThe agent operates with **two levels of mentoring**:\n\n**Level 1 — Always ON (built into the base prompt)**\nEvery fix, implementation, or architectural decision includes:\n- **Root Cause** — why it broke (not just what)\n- **Why this approach** — rationale over alternatives for significant decisions\n- **Trade-off** — what's accepted or limited\n\nFor changes touching >5 files or public API contracts, the agent pauses and uses `ask_human` before implementing.\n\n**Level 2 — `/mentor` deep mode**\nType `/mentor` to activate the full `skills/mentor-mode.md`:\n- **Forced Output Contract** — explicit rationale + trade-offs before every code block\n- **Architectural Escalation Gate** — presents alternatives rejected and why\n- **Ask-Before HITL Gate** — confirms plan before big changes\n- **Socratic Check** — asks if you want to go deeper before implementing concepts\n- **Pattern Name Callout** — names the design pattern being applied (Repository, DDD, CQRS, etc.)\n\nType `/mentor` again to return to standard mode. The always-on Level 1 mentor remains active.\n\nType `mentor`, `teach me`, `explain why`, or `trade-off` naturally in a message to auto-trigger mentor mode via Progressive Disclosure.\n\n---\n\n### LLM Switching via env var\n\nAlternatively, set the `AGENT_MODEL` environment variable before running the agent.\n\n```powershell\n# Windows PowerShell\n\n# ── Ollama (local, free) ──────────────────────────────────────────\n# Balanced quality/performance\n$env:AGENT_MODEL=\"ollama:gemma4\";       npm run agent -- deep\n\n# Fast, low RAM\n$env:AGENT_MODEL=\"ollama:gemma4:e2b\";   npm run agent -- deep\n\n# High quality (large download)\n$env:AGENT_MODEL=\"ollama:gemma4:26b\";   npm run agent -- deep\n\n# Strong reasoning, compact\n$env:AGENT_MODEL=\"ollama:qwen3.6\";      npm run agent -- deep\n\n# General purpose offline\n$env:AGENT_MODEL=\"ollama:llama3.2\";     npm run agent -- deep\n\n# ── Vertex AI (cloud) ─────────────────────────────────────────────\n# Fast & cheap (default if no GOOGLE_APPLICATION_CREDENTIALS)\n$env:AGENT_MODEL=\"gemini-2.5-flash-lite\"; npm run agent -- deep\n\n# Balanced speed + quality\n$env:AGENT_MODEL=\"gemini-2.5-flash\";      npm run agent -- deep\n\n# Max capability (architecture, complex refactors)\n$env:AGENT_MODEL=\"gemini-2.5-pro\";        npm run agent -- orchestrate\n```\n\n```bash\n# Linux / macOS\n# Ollama examples\nAGENT_MODEL=ollama:gemma4 npm run agent -- deep\nAGENT_MODEL=ollama:qwen3.6 npm run agent -- deep\n\n# Gemini examples\nAGENT_MODEL=gemini-2.5-flash-lite npm run agent -- deep\nAGENT_MODEL=gemini-2.5-pro npm run agent -- orchestrate\n```\n\n**Available Model Tiers:**\n\n| Tier Alias | Model String             | Provider   | Best For                               |\n| :--------- | :----------------------- | :--------- | :------------------------------------- |\n| `gemma`    | `ollama:gemma4`          | 🦙 Local    | Best local model for general coding    |\n| `gemma-2b` | `ollama:gemma4:e2b`      | 🦙 Local    | Fast, low RAM (~7 GB)                  |\n| `gemma-4b` | `ollama:gemma4:e4b`      | 🦙 Local    | Balance speed/quality (~9.6 GB)        |\n| `gemma-26b`| `ollama:gemma4:26b`      | 🦙 Local    | Max quality (~17 GB)                   |\n| `qwen`     | `ollama:qwen3.6`         | 🦙 Local    | Strong reasoning, compact (~4 GB)      |\n| `local`    | `ollama:llama3.2`        | 🦙 Local    | General purpose offline                |\n| `lite`     | `gemini-3.1-flash-lite`  | ⚡ Cloud    | Quick edits, Q&A (cheapest)           |\n| `flash`    | `gemini-3.5-flash`       | ⚡ Cloud    | Balanced speed + quality (recommended) |\n| `pro`      | `gemini-3.1-pro`         | ⚡ Cloud    | Architecture, complex refactors        |\n\n> **Embeddings Note:** For Retrieval-Augmented Generation (RAG), the agent consistently uses **Vertex AI's `text-embedding-004`** model, regardless of the chat model selected. This ensures a stable and high-quality codebase index even when switching between local Ollama and cloud Gemini models.\n\n---\n\n## Agent Modes\n\n### Deep Agent (`deep`) — Single Autonomous Agent\n\nIdeal for most day-to-day tasks: debugging, code analysis, single-file modifications, quick questions, and medium-complexity features.\n\n```bash\n# Start an ephemeral session\nnpm run agent -- deep\n\n# Start a persistent session named \"my-feature\"\nnpm run agent -- deep --session my-feature\n\n# Ask a specific question about a file\nnpm run agent -- deep \"explain src/core/agent/deep-agent-factory.ts\"\n```\n\n**Task Sizing:** The agent automatically classifies tasks before execution:\n*   **SMALL:** (1-2 files, straightforward changes) → Executes directly (Read → Write → Done). Max 3 tool calls.\n*   **MEDIUM:** (3+ files, new feature) → Creates a brief `write_todos` plan and executes it.\n*   **LARGE:** (Entire module, major refactor) → Follows a detailed, step-by-step plan using `write_todos`.\n\n**Core Tools:**\n*   `write_todos`: Plans and tracks multi-step tasks.\n*   `list_files`: Lists directory contents.\n*   `safe_read_file`: Reads file content safely.\n*   `safe_write_file`: Writes to files with automatic backups.\n*   `ask_codebase`: Performs semantic search over your codebase using RAG.\n*   `refresh_project_index`: Rebuilds the RAG index (e.g., after bulk file writes).\n*   `run_integrity_check`: Runs `tsc --noEmit` to ensure type safety.\n*   `run_tests`: Executes Jest test suites.\n\n---\n\n### Orchestrator (`orchestrate`) — Multi-SubAgent Coordinator\n\nBest suited for complex, large-scale tasks such as implementing entire modules, significant refactoring efforts, or adding major features that span multiple files and components.\n\n```bash\n# Start an ephemeral orchestrator session\nnpm run agent -- orchestrate\n\n# Start a persistent session for a major refactor\nnpm run agent -- orchestrate --session big-refactor\n```\n\n**Mandatory Workflow:** The orchestrator strictly follows a predefined protocol to ensure thoroughness and quality:\n1.  **`write_todos`:** Creates a comprehensive plan covering analysis, implementation, and verification.\n2.  **`task(researcher)`:** Delegates analysis to the `researcher` subagent, which examines the codebase and produces a detailed implementation plan.\n3.  **`task(coder)`:** Delegates implementation to the `coder` subagent, which follows the researcher's plan, adheres to Test-Driven Development (TDD), and writes tests *before* implementation.\n4.  **`run_integrity_check`:** Verifies that the entire project is free of TypeScript errors after the `coder` finishes.\n\n**Subagents:**\n*   **Researcher:** A read-only analyst. Uses tools like `ask_codebase` and `safe_read_file` to understand the project and generate structured plans.\n*   **Coder:** An implementation specialist. Uses `safe_write_file`, `run_tests`, and `run_integrity_check`. Writes `.spec.ts` files first, then implements the corresponding code. Self-corrects up to 3 times upon test failures.\n\n---\n\n## Architecture\n\n```mermaid\ngraph TD\n    subgraph CLI Interface\n        A[Interactive Stream]:::cli --> B(Session Management);\n        B --> C[/model Command];\n        B --> D[Model Switching Logic];\n        B --> E[Agent Mode Selection];\n    end\n\n    subgraph Agent Core\n        E --> F(DeepAgentFactory);\n        F --> G[LLMProvider];\n        G -- Ollama --> H(OllamaChatAdapter);\n        G -- Gemini --> I(ChatVertexAI);\n        F -- Simple Agent --> J(createDeepAgent);\n        F -- Orchestrator --> K(createDeepAgent);\n        K --> L[Researcher Subagent];\n        K --> M[Coder Subagent];\n    end\n\n    subgraph Services & Tools\n        J --> N(Core Tools);\n        K --> N;\n        N --> O(SafeFilesystemBackend);\n        N --> P(RAG IndexerService);\n        N --> Q(Checkpointer SqliteSaver);\n        J --> Q;\n        K --> Q;\n    end\n\n    classDef cli fill:#4CAF50,stroke:#333,stroke-width:2px;\n    classDef session fill:#FFC107,stroke:#333,stroke-width:2px;\n    classDef modelcmd fill:#2196F3,stroke:#333,stroke-width:2px;\n    classDef mode fill:#FF9800,stroke:#333,stroke-width:2px;\n    classDef factory fill:#9C27B0,stroke:#333,stroke-width:2px;\n    classDef subagent fill:#00BCD4,stroke:#333,stroke-width:2px;\n\n    class A cli;\n    class B session;\n    class C modelcmd;\n    class E mode;\n    class F factory;\n    class L,M subagent;\n```\n\n*   **CLI:** Handles user interaction, model switching (`/model`), and session management.\n*   **Agent Core:** `DeepAgentFactory` orchestrates agent creation, routing requests to either a simple `DeepAgent` or a multi-subagent `Orchestrator`.\n*   **LLM Integration:** `LLMProvider` routes requests to `OllamaChatAdapter` for local models or `ChatVertexAI` for cloud models.\n*   **Services & Tools:** Provides core functionalities like safe file operations, RAG indexing, conversation persistence (SQLite), and the underlying LLM tooling.\n\n---\n\n## Core Concepts\n\n### NestJS Integration\n\nThis library is built with NestJS in mind. It understands NestJS conventions for project structure, modules, services, controllers, and DDD. When you ask the agent to perform tasks like \"create a user module\" or \"add authentication to this service,\" it leverages its knowledge of NestJS patterns to generate appropriate, idiomatic code.\n\n### Safety Features\n\n*   **`safe_write_file`:** Before writing any file, the agent creates a timestamped backup in `.agent/backups/`. This ensures you can always revert to the previous version if the agent's changes are not as expected.\n*   **Project Root Sandboxing:** The agent operates strictly within the project's root directory. It cannot access or modify files outside this scope.\n*   **Human-in-the-Loop (HITL):** For potentially destructive operations (e.g., deleting files/directories, dropping database tables, modifying infrastructure files like `docker-compose.yml` or `.env.production`), the agent will pause and explicitly ask for your approval.\n\n### RAG X-Ray Strategy\n\nThe agent uses Retrieval-Augmented Generation (RAG) to understand your codebase:\n1.  **Indexing:** The `IndexerService` scans your `src/` directory on startup. This index is lazily updated — it only rebuilds if it's older than 5 minutes, ensuring fast agent startup times.\n2.  **Semantic Search:** When you ask questions about your code, the `ask_codebase` tool performs a vector similarity search against the index.\n3.  **Contextual Understanding:** The search results provide relevant code snippets and dependency information, giving the LLM a deep understanding of your project's structure and logic.\n\n*   **Ollama Mode:** If you're using Ollama without Google Cloud credentials, RAG indexing is gracefully skipped. The agent will still function but without the codebase-aware semantic search capabilities.\n\n---\n\n## Project Structure\n\nThe library follows a clean, modular structure:\n\n```\n/nestjs-ai-agent-lib\n├── src/\n│   ├── bin/                      # CLI entry points (deep, orchestrate)\n│   │   └── cli.ts\n│   ├── core/                     # Core agent logic & services\n│   │   ├── agent/                # Agent factories (DeepAgentFactory)\n│   │   │   ├── factory.ts        # Legacy ReAct agent\n│   │   │   ├── graph-factory.ts  # Legacy StateGraph agent\n│   │   │   └── deep-agent-factory.ts  # ⭐ Active: Creates DeepAgent & Orchestrator\n│   │   ├── config/               # Configuration loading (env vars, model resolution)\n│   │   │   ├── model-resolver.ts\n│   │   │   └── model-switcher.ts\n│   │   ├── llm/                  # LLM provider routing & adapters\n│   │   │   ├── provider.ts\n│   │   │   └── ollama-adapter.ts # Handles Ollama's specific API requirements\n│   │   ├── subagents/            # Specialized agents for orchestration\n│   │   │   ├── coder.subagent.ts\n│   │   │   └── researcher.subagent.ts\n│   │   ├── rag/                  # Retrieval-Augmented Generation\n│   │   │   └── indexer.ts        # Codebase indexing service\n│   │   └── tools/                # Custom tool implementations (safe file ops, etc.)\n│   │       └── index.ts\n│   ├── presentation/             # CLI UI and presentation logic\n│   │   ├── cli/\n│   │   │   ├── chat-session.ts   # Main interactive loop + slash command dispatcher\n│   │   │   ├── model-menu.ts     # Interactive model selection UI\n│   │   │   ├── stream-renderer.ts # Output formatting (tokens, tools, Agent header)\n│   │   │   ├── markdown-renderer.ts # Markdown → chalk styled terminal output\n│   │   │   └── theme.ts          # CLI styling and icons\n│   │   └── index.ts\n├── skills/                       # ⭐ Agent skills — keyword-triggered, read-only\n│   ├── create-ddd-module.md      # DDD module creation protocol\n│   ├── write-tests.md            # TDD & Jest spec templates\n│   ├── refactor-safely.md        # Inside-out refactor, find callers first\n│   ├── create-endpoint.md        # REST endpoint + DTO + Swagger\n│   ├── debug-typescript.md       # TS error lookup table & fix protocol\n│   ├── analyze-codebase.md       # Read-only RAG analysis mode\n│   ├── evaluate-own-work.md      # Self-review checklist before \"done\"\n│   ├── git-workflow.md           # Conventional commits & version branching\n│   ├── security-audit.md         # OWASP API Top 10 for NestJS\n│   ├── research-output-format.md # Structured Researcher→Coder handoff (MetaGPT SOP)\n│   ├── validate-architecture-boundaries.md  # DDD forbidden import detector\n│   └── mentor-mode.md            # Deep mentor: Forced Output Contract + Socratic gates\n├── AGENTS.md                     # ⭐ Project context for AI agents (read-only)\n├── ANTIGRAVITY.md                # ADR log & work history for the human developer\n├── .agent/                       # Agent runtime data\n│   ├── deep_agent_history.db     # SQLite DB for named deep agent sessions\n│   ├── orchestrator_history.db   # SQLite DB for named orchestrator sessions\n│   ├── index.meta.json           # Timestamp for RAG index freshness\n│   └── backups/                  # Timestamped backups before each file write\n├── .env.development              # Example environment file\n├── package.json\n└── tsconfig.json\n```\n\n---\n\n## Roadmap\n\n| Phase | Feature | Status |\n|---|---|---|\n| **v1.0** | Foundational Deep Agent (`deep` mode) | ✅ Done |\n|   | Basic LLM switching (env var) | ✅ Done |\n|   | Core tools (filesystem, RAG basic) | ✅ Done |\n| **v1.1** | Orchestrator (`orchestrate` mode) | ✅ Done |\n|   | Researcher & Coder subagents | ✅ Done |\n|   | TDD workflow enforcement | ✅ Done |\n| **v1.2** | Advanced CLI Features | ✅ Done |\n|   | Interactive `/model` switching | ✅ Done |\n|   | Session persistence & management | ✅ Done |\n|   | Context compression | ✅ Done |\n|   | Safety: Auto-recovery, HITL | ✅ Done |\n| **v1.3** | **Ollama Local Inference Support** | ✅ **Done** |\n|   | Full multi-provider routing | ✅ Done |\n|   | `OllamaChatAdapter` for compatibility | ✅ Done |\n|   | Support for `gemma4`, `qwen3.6`, `llama3.2` | ✅ Done |\n| **v1.4** | **Skills System & Mentor Mode** | ✅ **Done** |\n|   | 12 keyword-triggered skills (`skills/*.md`) | ✅ Done |\n|   | Progressive Disclosure — keyword map in base prompt | ✅ Done |\n|   | FILE PROTECTION LAW (skills + ANTIGRAVITY + AGENTS.md) | ✅ Done |\n|   | `AGENTS.md` Context Tiering (agent vs. human save state) | ✅ Done |\n|   | Always-on lightweight mentor (base prompt invariant) | ✅ Done |\n|   | `/mentor` deep mode (Forced Output Contract + Socratic gates) | ✅ Done |\n|   | Structured Researcher→Coder handoff (`research-output-format.md`) | ✅ Done |\n|   | DDD layer boundary validator (`validate-architecture-boundaries.md`) | ✅ Done |\n| **v1.4.2** | **Stability & CLI Polish** | ✅ **Done** |\n|   | Bug: `MODEL_TIERS` expansion — `resolveModel()` never used tiers (silent crash) | ✅ Fixed |\n|   | Bug: Fake Anthropic — `claude` removed from tiers, honest error on unsupported provider | ✅ Fixed |\n|   | Bug: Phase 2 proactive auto-compression — `checkAndCompressContext()` after every turn | ✅ Fixed |\n|   | Bug: `reflect-metadata` CLI crash — removed dead `@Injectable()` from 3 services | ✅ Fixed |\n|   | CLI: Richer markdown renderer — code blocks with full `╭──╮` borders, header icons (`★`, `❖`, `›`), 2-space global indent | ✅ Done |\n|   | CLI: `⬆ Agent ────` header replaces plain `Agent:` label | ✅ Done |\n| **v1.5.0** | **LangSmith Observability** | ✅ **Done** |\n|   | langsmith SDK integration via auto-instrumentation | ✅ Done |\n|   | Zero-code tracing: all LLM calls, tool calls, LangGraph steps | ✅ Done |\n|   | Configure with 3 env vars: LANGCHAIN_TRACING_V2, LANGCHAIN_API_KEY, LANGCHAIN_PROJECT | ✅ Done |\n|   | No-op when env vars are absent (safe for library consumers) | ✅ Done |\n| **Future** | SSE HTTP API (`/agent/stream`) | ⏳ Planned |\n|   | Agent self-evolution — write new skills from patterns it discovers | ⏳ Planned |\n|   | Anthropic Claude support (`@langchain/anthropic`) | ⏳ Planned |\n|   | LangGraph state-level mentor toggle (true per-session stateful mode) | ⏳ Planned |\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}