{"_id":"forjajs","_rev":"30-f7a9e14cc547067d08193cff2a8c1c6e","name":"forjajs","dist-tags":{"latest":"4.1.2"},"versions":{"1.1.0":{"name":"forjajs","version":"1.1.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"382f95050ce2078fd8abaab885f85f7dbe92cd2e","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.0.tgz","fileCount":558,"integrity":"sha512-DBzVQmjmSPMMoTvcP/XL4Az578zwlI/pi4s05ItwwHbm49ZqjU7KgRUjdgUyCVZlj8B3Jom5mHTGv+qADL9AHw==","signatures":[{"sig":"MEUCIE5SluAeltIVlmzu+1Msv2AcOIp2Ik6imezTNGlDo5qrAiEAzGaL0SP8AwUfk0ebIdJGzTydg7ITzrbflSZadFY18+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1349509},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"3d94eb6b7627264a9bebc9e6d80a440afa63d1fe","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","dashboard":"cd dashboard && npm start","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","dashboard:dev":"cd dashboard && npm run dev","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","catalog:manifests":"node bin/forja.mjs catalog:manifests","dashboard:install":"cd dashboard && npm install && cd web && npm install","dashboard:web:dev":"cd dashboard/web && npm run dev","project:dashboard":"node bin/forja.mjs project:dashboard","dashboard:web:build":"cd dashboard/web && npm run build","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"better-sqlite3":"^12.11.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.0_1783346824287_0.9767184995661926","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"forjajs","version":"1.1.1","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"44c074a7b638b3f170bfc73e99d2a3ac96572e7b","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.1.tgz","fileCount":564,"integrity":"sha512-XiB1n6+AR+LWb7HC7BjnD0125AziM1VEmlmb6bzr08FEdG2yr3jIQoF2aOvPZZ45ZU7TOgHJ3XVe+LAWQSiWRA==","signatures":[{"sig":"MEYCIQDkjgcITL4UbCkx/W+0bueuB4+zC6ZO0czfYMGzSwzR0gIhAL1nKNdG5J42hsiE84awljoQ/vs+7YjUjnCRzJ7yo8i1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1373100},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"c49079b64bc800195461f8260f09ebd67ec4f545","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","dashboard":"cd dashboard && npm start","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","dashboard:dev":"cd dashboard && npm run dev","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","catalog:manifests":"node bin/forja.mjs catalog:manifests","dashboard:install":"cd dashboard && npm install && cd web && npm install","dashboard:web:dev":"cd dashboard/web && npm run dev","project:dashboard":"node bin/forja.mjs project:dashboard","dashboard:web:build":"cd dashboard/web && npm run build","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.16.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"22.22.2","dependencies":{"otplib":"^13.4.1","qrcode":"^1.5.4","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.1_1783643433244_0.7077370828009761","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"forjajs","version":"1.1.2","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.2","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"e044a4a3b164e6aa877db76f03335a29bd276070","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.2.tgz","fileCount":564,"integrity":"sha512-hoav+wMFMgd07kAXf2koBeK35iIgMLK4Aqwx53qHhTcIND17X4TwGKjxvyLYdtQSsK1HZA9lsMiZkKGXIIFVnA==","signatures":[{"sig":"MEUCIQCd3CvmcXfUl/abI0ipNZiS0AluKTNFTUGs0Y3pOIVG+gIgcbsygXrxILxND3aJtiTfHgsW8jTAEf46w9ji6F5/VLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1373051},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"575ed46e04640c92094360affea45b34b38c1de0","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","dashboard":"cd dashboard && npm start","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","dashboard:dev":"cd dashboard && npm run dev","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","catalog:manifests":"node bin/forja.mjs catalog:manifests","dashboard:install":"cd dashboard && npm install && cd web && npm install","dashboard:web:dev":"cd dashboard/web && npm run dev","project:dashboard":"node bin/forja.mjs project:dashboard","dashboard:web:build":"cd dashboard/web && npm run build","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.16.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.2_1783643916663_0.8279329651633762","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"forjajs","version":"1.1.3","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.3","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"e63e976b55e36a3c1f976553ba054ce89c92da68","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.3.tgz","fileCount":561,"integrity":"sha512-l1a0rnynYwNLln3ershS06PfcQimRNYN9doOkjRI0/qoYym5UmYPG6icv4ONZr1cg3M7RhCVxskB+f7DErKvsQ==","signatures":[{"sig":"MEUCIEfSq5aL35uE37MhE/pN3XQhT9kdrJfBBEcF7LFZ3iVnAiEAlyPzb2xu+bwss8NUV4fNzKTSSD7coPLbIxTKivhYhEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356195},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"2fff8c5762cd301ef8cc43df4ce63c882ff64d18","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","catalog:manifests":"node bin/forja.mjs catalog:manifests","project:dashboard":"node bin/forja.mjs project:dashboard","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.16.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.3_1783646981133_0.7295693560888068","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"forjajs","version":"1.1.4","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.4","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"f555c115a670718c44b0d36a592ff3cb69891618","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.4.tgz","fileCount":574,"integrity":"sha512-RIbGwf+eHn0dcktu9pu5p6BRs+VRUmhFQgtdy2J0BvfdjY9DJSUgYSovbFQERRYgxyFIyXtlJ9jxAjqo0CVKNA==","signatures":[{"sig":"MEQCIGq3p+c7kFQzZlqxOqHuUWkSC0wQH6+RhzQ/d1FUPcb5AiAWCuygFX1aUkOCA3qsowENxaYjxznVBodp1+V70hkNsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1485821},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"3bf608cfe31065f72e604c5070e10719ad15b98e","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","release:check":"node bin/forja.mjs release:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","prepublishOnly":"node bin/forja.mjs release:check -- --publish","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.mjs catalog:manifests","project:dashboard":"node bin/forja.mjs project:dashboard","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.4_1783993791473_0.18762621449699224","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"forjajs","version":"1.1.5","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.5","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"e378f658e8a2fa51b33503e272eb81de214b3f20","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.5.tgz","fileCount":574,"integrity":"sha512-GPTeM1EyriMJ1QYvpi+ACiH5H9RcpNNgPZW8Pdd+VrUYKuYjOS9QA37zc7nCxOHr9LRn8B2HgjDCdGEG18m7JQ==","signatures":[{"sig":"MEUCIQDDwWo+n6kG/Z+WCV8f+nkkrhn/ALTmGz1JFcCSW3am8AIgY8cEf8KBJBjdgszA1G15Xqzmy4RaazY4Xoywo5N0wEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1489370},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"136f1ec801ca365d8d3668c4cb0ad19eed7e5a42","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","release:check":"node bin/forja.mjs release:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","prepublishOnly":"node bin/forja.mjs release:check -- --publish","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.mjs catalog:manifests","project:dashboard":"node bin/forja.mjs project:dashboard","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.4.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.5_1784063913777_0.3889062342453131","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"forjajs","version":"1.1.6","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.1.6","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"58e044e382222cbfe74720c1efc23b97bcddefd7","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.1.6.tgz","fileCount":575,"integrity":"sha512-EBcWuKLJNT67CbVvRu4A82Efgpm0JCXC9LuCcV3Ovl4MXwJgniSAMMHergPDXYiGQ7oyk/PL7cl0RexUVVuw/A==","signatures":[{"sig":"MEQCIGOEeDaVp7uVmPJV0TK+NNlxK7X0y+9o0BpOl0fRdAsoAiARf2Ld6q37RrEfM4gpZQRrzv0qapNww8uzXzD7/ARFPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1503254},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"15f0e0a599f80dbcce15e489057ca5fd74fc95a0","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","release:check":"node bin/forja.mjs release:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","prepublishOnly":"node bin/forja.mjs release:check -- --publish","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.mjs catalog:manifests","project:dashboard":"node bin/forja.mjs project:dashboard","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.1.6_1784081512353_0.810138366585208","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"forjajs","version":"1.2.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.2.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"bin/forja.mjs","init-project":"bin/init-project.js","create-memory-nest-kit":"bin/create-memory-nest-kit.js"},"dist":{"shasum":"446e5ec72c12bfe209f8268faada2f813f20548f","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.2.0.tgz","fileCount":611,"integrity":"sha512-h+k7X86/2v912upLpkM/cwG2nN+FrAvt2Ux30+AaJw/6+zeZ82LdYzOpuym88OCSUQII6y6pcGTczSUg5LnpOA==","signatures":[{"sig":"MEUCIQCaYF1WDnVSuncnCqqoktZrDRAPnyByhTQ6h4+pSdnaQQIgYBq01ZG3sZJz7PfWsmbk5cJ2r7963VePvJooOxTjN7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1625537},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"5384537248e50de2c963b0c7f1cafd20f9042518","scripts":{"dev":"node scripts/dev.mjs","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.mjs","gsd:plan":"node bin/forja.mjs gsd:plan","ops:plan":"node bin/forja.mjs gsd:plan","spec:new":"node bin/forja.mjs spec:new","code:sync":"node bin/forja.mjs code:sync","gsd:check":"node bin/forja.mjs gsd:check","ops:check":"node bin/forja.mjs gsd:check","spec:plan":"node bin/forja.mjs spec:plan","code:check":"node bin/forja.mjs code:check","code:index":"node bin/forja.mjs code:index","code:query":"node bin/forja.mjs code:query","ops:sprint":"node bin/forja.mjs sprint:status","spec:check":"node bin/forja.mjs spec:check","spec:tasks":"node bin/forja.mjs spec:tasks","agent:brief":"node bin/forja.mjs agent:brief","agent:route":"node bin/forja.mjs agent:route","code:impact":"node bin/forja.mjs code:impact","code:status":"node bin/forja.mjs code:status","gsd:handoff":"node bin/forja.mjs gsd:handoff","ops:handoff":"node bin/forja.mjs gsd:handoff","project:new":"node bin/forja.mjs project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.mjs design:check","init:project":"node bin/forja.mjs init:project","project:list":"node bin/forja.mjs project:list","sprint:start":"node bin/forja.mjs sprint:start","tools:doctor":"node bin/forja.mjs tools:doctor","context:smart":"node bin/forja.mjs context:smart","design:select":"node bin/forja.mjs design:select","memory:schema":"node bin/forja.mjs memory:schema","memory:vacuum":"node bin/forja.mjs memory:vacuum","project:check":"node bin/forja.mjs project:check","release:check":"node bin/forja.mjs release:check","sprint:status":"node bin/forja.mjs sprint:status","catalog:assets":"node bin/forja.mjs catalog:assets","context:budget":"node bin/forja.mjs context:budget","context:sprint":"node bin/forja.mjs context:sprint","hermes:handoff":"node bin/forja.mjs hermes:handoff","memory:extract":"node bin/forja.mjs memory:extract","prepublishOnly":"node bin/forja.mjs release:check -- --publish","sync:universal":"node bin/forja.mjs sync:universal","workspace:init":"node bin/forja.mjs workspace:init","memory:compress":"node bin/forja.mjs memory:compress","query:universal":"node bin/forja.mjs query:universal","sprint:complete":"node bin/forja.mjs sprint:complete","token:benchmark":"node bin/forja.mjs token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.mjs catalog:manifests","project:dashboard":"node bin/forja.mjs project:dashboard","workspace:project:check":"node bin/forja.mjs workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.2.0_1784388774781_0.057186246758176296","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"forjajs","version":"1.3.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.3.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"338b065611336e274da600245ae5b3868e570601","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.3.0.tgz","fileCount":661,"integrity":"sha512-gBkxI3JQ6x7mE1Osk885E/O8r/XcpE3uA0zykg/YZ8NYow6/1bQmX4Rc0YB8g15UV7xOus0DOYuYessQjvG8SQ==","signatures":[{"sig":"MEUCIQDiaO+JDZLuoHLS6e2/ofupswS+m2B8BDFX8cqDxyJSvgIgaTnu5GlwbI2i9kCASgs7biB1TkIJhtQ7oLZArT5t1OE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1737939},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"d76fa6a26c61a4682044da901ee8c927d121b905","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.3.0_1784490035435_0.6720593692138059","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"forjajs","version":"1.3.1","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.3.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"31f96dcfbd92664e2ee0ce2ef39a3d5a71b7b597","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.3.1.tgz","fileCount":661,"integrity":"sha512-LVPf6YYA7hkDSAQmVQ02JO96ScCuwsN3+1cczRoEHRyjLoQiFNdBM5D9m8uSExPdQ1ScO/qcTVOC12WKvBv+cw==","signatures":[{"sig":"MEUCIA6YAn4gu7gno98cpjPdwItYmbPlK7Sx4Ig9S7b+m6XBAiEAv+0iPGOTIz1rXEXSYZcGOg6+00bsr2k+dnMmzMj5gF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1738846},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"b54bdd95991c00385aea242dd5266ed8c6ea5490","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.3.1_1784490289985_0.8090696677163556","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"forjajs","version":"1.3.2","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.3.2","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"ef9a67d213985fe0ea90697d55b1fe291bf74c50","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.3.2.tgz","fileCount":659,"integrity":"sha512-sPF20i5e2OTxcReQAgpjYl6Is4TaAzmBRAR5p80lNfa6OHzUt7kHu0YZI23N23dEValzzLOTFH4w2/LuPp3kXQ==","signatures":[{"sig":"MEQCIBO9MQdk0gBdV21uFnj8dRGo11J8Xx9/M2kd2DBTgNcvAiAvxrlQ2dGc1C/rJZRfuRLlw7W7zjJz0wT13cy5FzaFbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1736245},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"b442224e414fc560b40a07d315fd14985b5a5df0","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.3.2_1784492783803_0.9770754126864893","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"forjajs","version":"1.5.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.5.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"a1306512eae707083c9ffa76be87876d3685542f","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.5.0.tgz","fileCount":684,"integrity":"sha512-48x2sxH3nmce4TULj0gQSRfJtU+IoQ5NGhABwkWbon7nl/b+uVrsjXyHf8s2S0iAA9ppbG1AUb51TC5TJpoyxA==","signatures":[{"sig":"MEUCID/0stlBplJkUhN8CdxzKdD+ZQDv4dIuw4BEWgLwku1IAiEA+rjeyIaZ3F8PUCmcBvPvBaDkPzJFzRjLc/DXv86uy20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1824586},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"237485d8fb805ce889ee774957fd07b9089b9722","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.5.0_1784539449960_0.1302473168382361","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"forjajs","version":"1.6.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.6.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"2179bd578c261208b5081d81e9a5eae2381cea94","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.6.0.tgz","fileCount":692,"integrity":"sha512-fBtGblKiZzTtriepeE3vK+MVfFJLghHICioFNfDJN0un56k/ubxS9VvMRjJERxzqKbawcjy+ljwE39UeypHVpA==","signatures":[{"sig":"MEUCIFB/Rz8fv9Ej3oyWAqFGmExZxcoVwNDe1fo/iRwrUk5lAiEAjYT6qEh3ILgglD++EqeQQPu4okgN+do50z/4anC6xig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1848258},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"df37f2b565ebba185e41aac73c96acbce582ca7c","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.6.0_1784544953326_0.7192634885030373","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"forjajs","version":"1.6.1","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.6.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"a70a7755c8b952bd781a1c9bb4af8c013697a91c","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.6.1.tgz","fileCount":692,"integrity":"sha512-FmM7vKe4/Cp/837dT6NJ1hMfD5VcwoLiZvFspyjETCoqKFnhfErTqbJeBXlUNlQBOsGfgQNgnCKgJ24serRmrw==","signatures":[{"sig":"MEQCIGZh1kF3PqCVusyV4LzJ6MT6TMNfnRG54eGmiPoZ58vYAiApsGIw+ixepX73t83fKz3n12cMU51WS7xpi3jls1gRgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1851008},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"52cae0d339c3097ef4bec50af34360e24db68131","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.6.1_1784557906730_0.8754116814179582","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"forjajs","version":"1.6.2","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.6.2","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"1214a516e34e4d7c1ee248744e0a8bd43675c7e4","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.6.2.tgz","fileCount":692,"integrity":"sha512-qmmTBavLBjm+umtB8p6tihgeOAYtq6Z+PaanlPK8KWbdbKRacmBaM+AXi3xEFMh7lC1dwIpbyxd4+AuigIT3Hg==","signatures":[{"sig":"MEYCIQCnFfUvjWInUyWAmBwMkhsEr0wfqgl5yc/0p5quGRzUzQIhAO+AFBEvmLAp+gSTVkpdDooQH8t9d11EdV5a5kfw1wmj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1856802},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"3fb02c4c841bb3281693d65dd6fcf4e5ad543e8a","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.6.2_1784681036010_0.6529753036913197","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"forjajs","version":"1.7.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.7.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"c3cf88eef938915b808702c5a98d6dcb5d87f41c","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.7.0.tgz","fileCount":698,"integrity":"sha512-rUTciAnaC9BsGi4mf+8PNCQNC2XO0WlkeRMY/YH3OQNi9EQQkCOQKmjaHrHj54bf5/jboPL1EhZuB7cE2mez3A==","signatures":[{"sig":"MEQCIGG8w10GaNmB7BjfDpXzrARNADGW1SISB8/GLfyKV1A/AiB9F8kHcqgoCKuY8FjnwNw8SlFlv3sRGSLT7rXbGrdusg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1888276},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"d8dc422ed3e63987f7d71fdb77c990db368871e7","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.7.0_1784685913684_0.4179665010546756","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"forjajs","version":"1.7.1","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.7.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"e3ed24998fe3bc4c19310c8910b6923d5580687a","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.7.1.tgz","fileCount":698,"integrity":"sha512-1tmVplvt/hQvY8zHcAoM7wGgSwrv82/kdjsRjDoFrzT0nfMj6Kci6mb7mgrxu17NujPZWGYuDKydWzzNRE95rg==","signatures":[{"sig":"MEQCIFbeFFGf+88gC9XXsbagubpU4RQmpZXxaRh3boQrGojLAiBgC39ZjtXRlcKaSoNTEBAdWwB5Eqvui0tHyFaAIBerhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1891428},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"b2c180785fa06e7e1d00c0f2ab32007b6010c540","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.7.1_1784694346627_0.21752958275700673","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"forjajs","version":"1.7.2","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.7.2","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"fed31d4b445144a1f2d26357e4b2fdebfd44522f","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.7.2.tgz","fileCount":699,"integrity":"sha512-ddi+QRBo4KHUYPB0oRodVMapgE3O1gugeD2KdXX2AYXmkmdCIxpDv7apDtigb5yfOVQYIu5pSAbonrPJh3+ddQ==","signatures":[{"sig":"MEQCIFWA/wnOtgc27qkAN7Vg90d5igSMDwXO7mb0IO1mpwr0AiBbDbYUUwt7yJ+ljoymkqOIDpBuP6Hgw8JxMqTGCnBfqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1901992},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"46db69d1c3bab4089f5e150194035fc279c65f8d","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.7.2_1784712707454_0.5790478900982314","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"forjajs","version":"1.7.3","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@1.7.3","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"8426b9147b45bc58a8d5e226aa68a1d900167c5a","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-1.7.3.tgz","fileCount":700,"integrity":"sha512-6hoYDBSy6ZZgOvIy63twA+rYK+mw0+Jpo+Esow70Me5RFWVDhxT81QM+EYTdXngFZBbhbu5gvUlvgk0hb2R8iA==","signatures":[{"sig":"MEUCIQCZHMDNRsS671UfIjNYrKBwDd1GCb5PQ9hyrlot7aEKAgIgEctEiUoau5DgpmQXIVNks3Lyx/6XjHokNwj6+oDxF88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1907877},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"6331099b4c5a3e912873d11793eaff3e895e93f5","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_1.7.3_1784836219939_0.3310791288580408","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"forjajs","version":"2.0.0","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@2.0.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"03c5d47d5ffc97cc27f877caa57943ee6483a982","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-2.0.0.tgz","fileCount":819,"integrity":"sha512-YB+IqnJYVEsXzUy9HI4Ebr91ZSMfONHSlHw58JwcZ7anik2WyNuclCY1ME3PDTAB+f3K+TUaWWZUqD9KgDCD1g==","signatures":[{"sig":"MEQCIH3Rr1feqP7Vr+Mzu5c8vP7+h/Hz7AOFtpOn8eM+ugC0AiBoGd91/3xiFergA66Q9BKDFSestTIP0XUKF5ZAaEfUtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2237606},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"3ec9b1445c4f5343ebb4397b8f36c9818b71a430","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","better-sqlite3":"^12.11.1","@nestjs/swagger":"^11.4.5","reflect-metadata":"^0.2.2","swagger-ui-express":"^5.0.1","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^26.1.1","@types/react":"^19.2.2","@types/express":"^5.0.6","@types/react-dom":"^19.2.2"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_2.0.0_1785556594277_0.5662770599728721","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"forjajs","version":"2.0.1","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@2.0.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"41cd94460789647dae8e612e9baec95463ab0033","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-2.0.1.tgz","fileCount":819,"integrity":"sha512-NWqiUsWAASihHNT6DX/ZoTyXZTQf2voYx0dcf9p3I7uv3nSJeMObbaChyPIT90Kf2CDKj6k6Z4SgjoC0pCpU1Q==","signatures":[{"sig":"MEUCIANhl8h257W4pgO403JsIVcpJIJJO6t/ibCBU3bdh3R9AiEAw8HO+K9jAozDhKLPvkdjlc7HlxHLBUoyMIqdcAc/q8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2237929},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"9afa16a4357542fd78584b7e323b8d42b34c6863","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_2.0.1_1785557537592_0.015175834140603417","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"forjajs","version":"2.0.2","keywords":["agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@2.0.2","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"cc62fe607eef7ec69639acfce90b49aa8da5337f","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-2.0.2.tgz","fileCount":855,"integrity":"sha512-57mQnE0pvlnUVm/7rE5CT5sl2nLd7NKzJybgk8IoVH2szxC6D7HxPF73i8AnEm/TnOfxP/BtsFBTnb+bPvFulQ==","signatures":[{"sig":"MEUCIQDEbnpim93TZplY1R6gnzCPaEqY/8RFFF6/0gBsVzByBwIgBz6qjJ3IKmVsEKAyI54gWyTl2fz1GTucF3p96Kt4lyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2356084},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"ace454e1c195a9a44d98ae57cf98f469d7eb4c2b","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"Forja — framework CLI-first de orquestração multiagente, memória hierárquica e geração de projetos com IA","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_2.0.2_1785593626894_0.4756801458108795","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"forjajs","version":"2.0.3","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@2.0.3","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"a0bb7dacdb211637dd8d66d710613bda1bd9f291","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-2.0.3.tgz","fileCount":882,"integrity":"sha512-hrjjFyT8A5lutwqkEjZo70NLBEhiglDFYLdeGaO+1e4mYp2eJl5hS45UHpUR3mFx/8fsgqwQt+E3Ol+BI0S1pQ==","signatures":[{"sig":"MEUCIQDYWsugOor4oVISMSfQZakRgz5CmGEzmDXhVhyh8dHI/gIgJCHHj0mL2/f3aMbDBDWcVS/beHlAoHI/lxwlHLMjKMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2400653},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"26b43c58a1ef1419a6b8e9e9344724ced601f2a4","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","gsd:plan":"node bin/forja.ts gsd:plan","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"26.5.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_2.0.3_1785635367039_0.7192763346911786","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"forjajs","version":"2.0.4","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@2.0.4","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"8372939fae407a26f1a5e5063aec841f59085b7a","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-2.0.4.tgz","fileCount":894,"integrity":"sha512-qnJgZ1CtvUi2+qbHg3Ia+R07XOvFbZv7UqRXFvUHfVUG4p+jwFn1vprk0/1vQRF3+62CTCwPIEaaf/OOvLBflw==","signatures":[{"sig":"MEUCIQCy9AH5Rc/erJ8rRqWntatQnlnBrnvuEDhR9HrO6CkEHAIgKlESjjF/GgmIDQrloiifffRhc11BMcbsmF7cnOaLRCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2506787},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"374ef2b9fec29162263a118dc0c380dbaa28cec5","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.12.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"24.14.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_2.0.4_1786982752320_0.9953415185768788","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"forjajs","version":"3.0.0","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@3.0.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"5c78bb648b56592e4039b6a4ecdcc618837d9b5d","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-3.0.0.tgz","fileCount":982,"integrity":"sha512-gC9srtZkudfoWb/wFMo4gZpF2kfHfgKB9w00mKzqFELTWDr5CzPca7TXLN/xl0uhu/HWKAip3K1dv9p3an78og==","signatures":[{"sig":"MEQCIEuQXBknZ8DBSuQKAqmL9EZfNA73Kt3iy6h12TOgF6pLAiBqrwo/N2IdHCix6N4sQpvtj3s3sd1FYds/wmXjekFSwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2925334},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"953e785a7a8c233fa14b8c668daeb3769a083e9b","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.19.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"24.20.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_3.0.0_1788278189170_0.777473919483779","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"forjajs","version":"4.0.0","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@4.0.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"163910a8f71b02993c52ce8fb2f9ed2849a2bc36","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-4.0.0.tgz","fileCount":1005,"integrity":"sha512-lX2Xoz+KsdKzzZH8ofyhbD2aHOCiGDoP9EYQ/SlZbwL+YS9/GW4jfJCWWceIt514xlwMsBFS4gb3vaMVO02ymg==","signatures":[{"sig":"MEQCIE6HL5pxb35NfBf9RLUJ89V8dVtMcuD5Riuf7qAZ0N9lAiAytqj/e/SckD/6tzfGcQAJ4pYmKcXVy2E8Lh4WdewMrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2972840},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"f3935284dba2a97ebb3f52c7bda20bd721fc2de2","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"26.4.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"ajv":"^8.20.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_4.0.0_1788640196283_0.4381839425919456","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"forjajs","version":"4.0.1","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@4.0.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"9ee96330cccb8a8e713efe5ee1f15d457b1fe1e7","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-4.0.1.tgz","fileCount":1005,"integrity":"sha512-oJ6/gerGeLdCSuGgHQY38ISITCAQN4DpaOznRJvaWreVn2vgSu1wV1mA18bDK8XZxBcsLstnxYkvcgFKbNyywg==","signatures":[{"sig":"MEUCIQD8XaYrjpkroE2IdRVoVPlHy8B8uDC25yto/v+poSdvAAIgKilPF3n1X7PbhY0cB0RzInlPlF4VJATa+GSn77Ew2SI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2973984},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"59712d4f5689c66fe998246056894aac763fb878","scripts":{"dev":"node scripts/dev.ts","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.17.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"26.4.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"ajv":"^8.20.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_4.0.1_1788640587795_0.7353963226036515","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"forjajs","version":"4.1.0","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@4.1.0","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"ded4af5a9d95eeb59a65c8a8b0d324d8461b747f","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-4.1.0.tgz","fileCount":1055,"integrity":"sha512-n20di4L59uI/mL8O0IZlCGgC6zz8ixc71Fanatf5IrOQiuFalU6Sei+DjiNNg86qBDJHLkU4uJ5nTSWKd/HXIQ==","signatures":[{"sig":"MEQCIHV7knsDdCR8Fjc2EJpwXNOJtCMjuARVEOT4H8GnXDyCAiAkMP1+dRJjj4ERJBBlK7mOC1QKXYXirUpV6tj1cmEsCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3299820},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"9e0bf91147f4c51d0ab6e3871ff477df6a12316f","scripts":{"dev":"node scripts/dev.ts","next":"node bin/forja.ts next","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","setup":"node bin/forja.ts setup","status":"node bin/forja.ts status","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.19.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"26.8.1","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"ajv":"^8.20.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_4.1.0_1788877364136_0.21168671891538593","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"forjajs","version":"4.1.1","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"author":{"name":"Allan Pablo"},"license":"MIT","_id":"forjajs@4.1.1","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"homepage":"https://github.com/allanpablo/forja#readme","bugs":{"url":"https://github.com/allanpablo/forja/issues"},"bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"dist":{"shasum":"a3051c170f2896e04efe9901ec72abd64bb9dcf7","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-4.1.1.tgz","fileCount":1055,"integrity":"sha512-gYRMtKUI0cCmGoYW84eeOoRkX6Eml/0d4xCENMgPcUpi6rJhgqKtTBL3LRQW2azGwufG60v2b0KyVgm1Zd80dg==","signatures":[{"sig":"MEYCIQCl+Gv/DP0v7VlYNIA5FHk6oJCulTnSxPwm4iJmYGLoIAIhANFGd4u+P43zZWW8U479M1rU+Xk7kIfUEC+sahUPgTHm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3305104},"main":"index.js","type":"module","engines":{"node":">=20"},"gitHead":"40ca829d903a88e3d67fbb77990515f3b8bbbd6e","scripts":{"dev":"node scripts/dev.ts","next":"node bin/forja.ts next","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","setup":"node bin/forja.ts setup","status":"node bin/forja.ts status","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.19.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"_nodeVersion":"26.8.1","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"ajv":"^8.20.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"tmp":"tmp/forjajs_4.1.1_1788878449514_0.4732971335113618","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"_id":"forjajs@4.1.2","bin":{"forja":"dist/bin/forja.js","init-project":"dist/bin/init-project.js","create-memory-nest-kit":"dist/bin/create-memory-nest-kit.js"},"bugs":{"url":"https://github.com/allanpablo/forja/issues"},"dist":{"shasum":"73d91abff574399be073fbe884f7d15139606e84","tarball":"https://registry.npmjs.org/forjajs/-/forjajs-4.1.2.tgz","fileCount":1055,"integrity":"sha512-gMoLVo6OP9DRFusXwYi9SQZ3IVjt8UCGgcbYx3jXCW1/pZxGFbR9QBIGOUrcG/UWDRI4vdZ2V6+exB5s/BVGkw==","signatures":[{"sig":"MEUCIGrSZll8op/xDDwtNdLzvK0jx5ndB8PPCSeGLJrNV3yaAiEA57an4dWuOfii8G+bOQQwxkABsYez6hOTE+TNOnITs5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDW8gPvS9aHhGo1SegwaejIlH3JhoG85BjzkovxmB9saAIgeWbfCa9/z7IjT2PslE/fl4abR2rsYkZzomNiaWxPc1I="}],"unpackedSize":3310948},"main":"index.js","name":"forjajs","type":"module","author":{"name":"Allan Pablo"},"engines":{"node":">=20"},"gitHead":"6d99b3b5cb78520afa851359128647147a0cfab3","license":"MIT","scripts":{"dev":"node scripts/dev.ts","next":"node bin/forja.ts next","test":"node --test test/*.test.js","build":"tsc -p tsconfig.build.json","forja":"node bin/forja.ts","setup":"node bin/forja.ts setup","status":"node bin/forja.ts status","llm:run":"node bin/forja.ts llm:run","gsd:plan":"node bin/forja.ts gsd:plan","llm:eval":"node bin/forja.ts llm:eval","ops:plan":"node bin/forja.ts gsd:plan","spec:new":"node bin/forja.ts spec:new","code:sync":"node bin/forja.ts code:sync","gsd:check":"node bin/forja.ts gsd:check","llm:probe":"node bin/forja.ts llm:probe","ops:check":"node bin/forja.ts gsd:check","spec:plan":"node bin/forja.ts spec:plan","code:check":"node bin/forja.ts code:check","code:index":"node bin/forja.ts code:index","code:query":"node bin/forja.ts code:query","llm:doctor":"node bin/forja.ts llm:doctor","ops:sprint":"node bin/forja.ts sprint:status","spec:check":"node bin/forja.ts spec:check","spec:tasks":"node bin/forja.ts spec:tasks","agent:brief":"node bin/forja.ts agent:brief","agent:route":"node bin/forja.ts agent:route","code:impact":"node bin/forja.ts code:impact","code:status":"node bin/forja.ts code:status","gsd:handoff":"node bin/forja.ts gsd:handoff","ops:handoff":"node bin/forja.ts gsd:handoff","project:new":"node bin/forja.ts project:new","types:check":"tsc --noEmit","design:check":"node bin/forja.ts design:check","init:project":"node bin/forja.ts init:project","project:list":"node bin/forja.ts project:list","sprint:start":"node bin/forja.ts sprint:start","tools:doctor":"node bin/forja.ts tools:doctor","context:smart":"node bin/forja.ts context:smart","dashboard:dev":"npm --prefix apps/dashboard run dev","demo:autonomy":"node scripts/demo-autonomy.ts","design:select":"node bin/forja.ts design:select","llm:recommend":"node bin/forja.ts llm:recommend","memory:schema":"node bin/forja.ts memory:schema","memory:vacuum":"node bin/forja.ts memory:vacuum","project:check":"node bin/forja.ts project:check","release:check":"node bin/forja.ts release:check","sprint:status":"node bin/forja.ts sprint:status","catalog:assets":"node bin/forja.ts catalog:assets","context:budget":"node bin/forja.ts context:budget","context:sprint":"node bin/forja.ts context:sprint","demo:workspace":"node bin/forja.ts demo:workspace","hermes:handoff":"node bin/forja.ts hermes:handoff","memory:extract":"node bin/forja.ts memory:extract","prepublishOnly":"node bin/forja.ts release:check -- --publish","sync:universal":"node bin/forja.ts sync:universal","workspace:init":"node bin/forja.ts workspace:init","dashboard:build":"npm --prefix apps/dashboard run build","dashboard:start":"npm --prefix apps/dashboard run start","memory:compress":"node bin/forja.ts memory:compress","query:universal":"node bin/forja.ts query:universal","sprint:complete":"node bin/forja.ts sprint:complete","token:benchmark":"node bin/forja.ts token:benchmark","//prepublishOnly":"Gate do tarball (ADR-0024). NUNCA mova para prepack: o gate roda `npm pack`, e o prepack o dispararia de novo — recursão infinita. npm pack não dispara prepublishOnly, e é por isso que ele é o único hook seguro aqui.","benchmark:context":"node scripts/context-benchmark.ts","catalog:manifests":"node bin/forja.ts catalog:manifests","llm:profiles:init":"node bin/forja.ts llm:profiles:init","project:dashboard":"node bin/forja.ts project:dashboard","workspace:project:check":"node bin/forja.ts workspace:project:check"},"version":"4.1.2","_npmUser":{"name":"allanpablo1","email":"contato@allanpablo.com.br"},"homepage":"https://github.com/allanpablo/forja#readme","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"overrides":{"next":{"sharp":"^0.35.3","postcss":"^8.5.25"}},"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"_npmVersion":"11.19.0","description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","directories":{},"maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"_nodeVersion":"24.21.0","allowScripts":{"better-sqlite3@12.11.1":true},"dependencies":{"ajv":"^8.20.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","next":"^16.2.12","rxjs":"^7.8.2","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@types/react":"^19.2.2","@nestjs/common":"^11.1.28","@types/express":"^5.0.6","@nestjs/swagger":"^11.4.5","@types/react-dom":"^19.2.2","reflect-metadata":"^0.2.2","@tanstack/react-query":"^5.90.5","@nestjs/platform-express":"^11.1.28"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forjajs_4.1.2_1789747840686_0.20723821101604578"}}},"time":{"created":"2026-07-06T14:07:04.144Z","modified":"2026-09-18T16:10:40.991Z","1.1.0":"2026-07-06T14:07:04.450Z","1.1.1":"2026-07-10T00:30:33.414Z","1.1.2":"2026-07-10T00:38:36.841Z","1.1.3":"2026-07-10T01:29:41.365Z","1.1.4":"2026-07-14T01:49:51.659Z","1.1.5":"2026-07-14T21:18:33.995Z","1.1.6":"2026-07-15T02:11:52.507Z","1.2.0":"2026-07-18T15:32:54.977Z","1.3.0":"2026-07-19T19:40:35.657Z","1.3.1":"2026-07-19T19:44:50.165Z","1.3.2":"2026-07-19T20:26:24.024Z","1.5.0":"2026-07-20T09:24:10.121Z","1.6.0":"2026-07-20T10:55:53.518Z","1.6.1":"2026-07-20T14:31:46.895Z","1.6.2":"2026-07-22T00:43:56.245Z","1.7.0":"2026-07-22T02:05:13.857Z","1.7.1":"2026-07-22T04:25:46.843Z","1.7.2":"2026-07-22T09:31:47.609Z","1.7.3":"2026-07-23T19:50:20.160Z","2.0.0":"2026-08-01T03:56:34.423Z","2.0.1":"2026-08-01T04:12:17.781Z","2.0.2":"2026-08-01T14:13:47.144Z","2.0.3":"2026-08-02T01:49:27.259Z","2.0.4":"2026-08-17T16:05:52.500Z","3.0.0":"2026-09-01T15:56:29.400Z","4.0.0":"2026-09-05T20:29:56.490Z","4.0.1":"2026-09-05T20:36:28.026Z","4.1.0":"2026-09-08T14:22:44.333Z","4.1.1":"2026-09-08T14:40:49.666Z","4.1.2":"2026-09-18T16:10:40.829Z"},"bugs":{"url":"https://github.com/allanpablo/forja/issues"},"author":{"name":"Allan Pablo"},"license":"MIT","homepage":"https://github.com/allanpablo/forja#readme","keywords":["agents","agentic","agent-runtime","mcp","graph-memory","context-engineering","local-first","developer-tools","autonomous-agents","orchestration","memory","sqlite","sdd"],"repository":{"url":"git+https://github.com/allanpablo/forja.git","type":"git"},"description":"ForjaJS é uma plataforma local-first para memória, contexto, governança e execução supervisionada de agentes de desenvolvimento","maintainers":[{"name":"allanpablo1","email":"contato@allanpablo.com.br"}],"readme":"<h1 align=\"center\">🔨 Forja</h1>\n\n<p align=\"center\">\n  <strong>Transforme IA de codificação em uma equipe de engenharia com processo e memória:<br>todo projeto nasce com spec, toda decisão vira ADR, e nada se perde entre sessões.</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/forjajs\"><img src=\"https://img.shields.io/npm/v/forjajs?style=flat-square&color=cb3837&logo=npm\" alt=\"npm\"></a>\n  <img src=\"https://github.com/allanpablo/forja/actions/workflows/ci.yml/badge.svg\" alt=\"CI\">\n  <img src=\"https://img.shields.io/badge/operação-CLI--first-3553ff?style=flat-square\" alt=\"CLI-first\">\n  <img src=\"https://img.shields.io/badge/agentes-6_papéis-orange?style=flat-square\" alt=\"6 agentes\">\n  <img src=\"https://img.shields.io/badge/pipeline-SDD_+_GSD-teal?style=flat-square\" alt=\"SDD+GSD\">\n  <img src=\"https://img.shields.io/badge/memória-SQLite_FTS5-green?style=flat-square\" alt=\"Memória\">\n  <img src=\"https://img.shields.io/badge/node-%E2%89%A520-339933?style=flat-square&logo=node.js&logoColor=white\" alt=\"Node >= 20\">\n  <img src=\"https://img.shields.io/badge/license-MIT-1a1a1a?style=flat-square\" alt=\"MIT\">\n  <img src=\"https://img.shields.io/badge/PRs-welcome-8957e5?style=flat-square\" alt=\"PRs welcome\">\n</p>\n\n<p align=\"center\"><sub>🌐 <a href=\"README.md\">English</a> · <strong>Português</strong></sub></p>\n\n---\n\n## Por que a Forja existe\n\nAgentes de IA são **amnésicos e indisciplinados**: cada sessão recomeça do zero, decisões\nde arquitetura evaporam, o código diverge da intenção — e quem opera vários produtos ao\nmesmo tempo paga esse imposto multiplicado por N.\n\nA **Forja** é o estúdio em volta da IA. Ela coordena **6 papéis de agentes** num pipeline\n**Spec-Driven (SDD)** + **Get-Stuff-Done (GSD)**, mantém uma **memória hierárquica**\nindexada em SQLite que sobrevive entre sessões, e amarra tudo num **core CLI único com\ngates e trilha de auditoria** (`forja`, ADR-0020). Multi-IA por design (Claude, Copilot,\nGemini, Codex). A operação é inteiramente via CLI.\n\n**Para quem**: o dev solo ou time pequeno que opera múltiplos produtos com IA como\nprincipal força de trabalho — e precisa da disciplina de um time grande sem ter esse time.\n\n## Os 3 pilares\n\n| Pilar | O que entrega | Prova |\n|---|---|---|\n| **Memória que sobrevive** | contexto hierárquico, buscável, compartilhado entre sessões e IAs | SQLite FTS5, smart-context (ADR-0003) |\n| **Processo que governa** | nada vira código sem spec; nada estrutural sem ADR; comandos auditados | SDD+GSD, handoffs 7 campos (ADR-0005), core `forja` (ADR-0020) |\n| **Fábrica, não projeto único** | workspace multi-produto, times de agentes por projeto | ADR-0019, harness, codegraph (ADR-0017) |\n\n> Este repositório é o **motor (framework)** — não hospeda aplicações em produção.\n> Os produtos do usuário vivem no **workspace Forja** (`~/forja-workspace` por padrão), fora deste repo.\n> Veja ADR-0019 para a rationale.\n\n## 60 segundos de Forja\n\n```console\n$ forja spec:new pagamentos-pix\n✓ Spec criada: specs/pagamentos-pix/spec.md          # nada vira código sem isso\n\n$ forja gsd:handoff plan pagamentos-pix\nHandoff registrado: product → sdd-architect          # 7 campos, auditável (ADR-0005)\n\n$ forja code:impact processPayment\nMapa de impacto: processPayment (profundidade 2)     # blast radius ANTES de editar\n--- Chamadores diretos ---\nBillingController.charge · RetryWorker.run\n\n$ forja gsd:check pagamentos-pix\nOK   GSD runbook      OK   Spec directory\nOK   SDD spec check   OK   Codegraph\nResultado: gates básicos prontos.                    # governança executável, não checklist\n```\n\nE cada comando acima ficou gravado em `.context/forja-runs.jsonl` — quando a governança pergunta \"o processo foi seguido?\", a resposta é um arquivo, não uma promessa.\n\n## Por que não só…?\n\n| Alternativa | Onde ela para | O que a Forja acrescenta |\n|---|---|---|\n| **Claude Code / Copilot puros** | brilhantes na sessão, amnésicos entre sessões | memória FTS5 + processo + auditoria em volta da IA |\n| **LangGraph / CrewAI** | infraestrutura para *construir* agentes | a camada de cima: opera o time de agentes no dia a dia |\n| **Templates & spec kits** | param quando a spec está escrita | pipeline completo até a governança, com gates que executam |\n\n## Capacidades-chave\n\n- **Core CLI único** — todo comando de processo passa por `forja <comando>`: registry declarativo, gates transversais (workspace) e auditoria append-only em `.context/forja-runs.jsonl` (ADR-0020).\n- **Orquestração multiagente** — 6 papéis (orchestrator, context-engineer, sdd-architect, product, marketing, governance) com handoffs rastreados (7 campos, ADR-0005).\n- **Memória hierárquica** — global → domínio → tarefa → resumo, com busca FTS5 e *smart-context* em 3 modos (ADR-0003).\n- **Pipeline SDD + GSD** — `spec → plan → tasks → check`, decisões registradas como ADRs.\n- **Auto-verificação (invariantes que rodam)** — o framework prova a si mesmo: uma família de gates guarda cada fronteira (núcleo, tarball, coerência de doc, topologia de agentes, projeto gerado), e `check:all` roda a bateria inteira num veredito só. A governança deixa de depender de disciplina — vira harness.\n- **Economia de token medida, não afirmada** — a memória (`context.md` como mapa) economiza ~60% vs explorar no frio, e `token:economy` **prova** isso nos seus domínios. `code:context` entrega o mapa pronto; `memory:audit` garante que ele não mente sobre o código.\n- **Geração de projetos** — `project:new` cria scaffold completo no workspace (memória, agentes, instruções multi-IA, backend NestJS como boilerplate padrão) e registra a ficha; `project:upgrade` traz peças novas para projetos já gerados sem tocar no código do usuário.\n- **3 capacidades integradas** (ADR-0016): **codegraph** (análise de código via MCP), **harness** (desenho de times de agentes), **ai-engineering** (base de conhecimento).\n- **Engineering Control Plane** (v3.0, ADR-0078) — o Engineering Graph vira ADRs/SPECs em nós de primeira classe consultáveis; a Architecture Constitution checa o código real contra decisões já registradas; o Change Risk Engine pontua uma mudança 0-100 com fatores nomeados e evidenciados; `forja simulate` testa um ref num worktree isolado e nunca promove sozinho. Uma façade só, `forja engineer \"<objetivo>\"`, compõe tudo isso — contexto, ADRs relevantes, checagem de arquitetura, risco, agentes recomendados, incidentes parecidos — antes de você começar. Todo score é informação pra um humano/regra de política consultar, nunca uma decisão autônoma por si só.\n\n## ⚡ Quick start\n\n```bash\n# Instalar (o pacote é forjajs; o comando é forja)\nnpm install -g forjajs\nforja                    # help agrupado por domínio\n\n# Preparar o workspace de produção (canto fixo dos projetos)\nforja workspace:init\n\n# Criar um projeto novo (gera em ~/forja-workspace/projects/<nome>)\nforja project:new meu-projeto --ai claude,copilot\n\n# Entrar no ciclo SDD/GSD da primeira feature\nforja spec:new minha-feature\nforja spec:plan minha-feature\nforja spec:tasks minha-feature\nforja spec:check minha-feature\n```\n\n### Provar autonomia supervisionada localmente\n\nA prova offline determinística usa uma fixture externa, Git worktree real,\naprovação humana, `npm test` real, validação de diff, promoção, estado SQLite,\nevidências no GraphLoop e handoff compacto:\n\n```bash\nnpm run demo:autonomy\n```\n\nO fluxo completo está documentado em [`docs/2x/SPRINT-12-REAL-AUTONOMY-PLAN.md`](docs/2x/SPRINT-12-REAL-AUTONOMY-PLAN.md).\n\nMeça o baseline determinístico de contexto e a evidência de cache:\n\n```bash\nnpm run benchmark:context\n```\n\nO sandbox também expõe rollback explícito e auditável após promoção. Os limites\noficiais dos plugins `@forja/plugin-github` e `@forja/plugin-docker` estão disponíveis;\nhandlers externos de rede ou Docker precisam ser injetados e permissionados pelo host.\n\n> Clonou o repo em vez de instalar? Os mesmos comandos rodam como\n> `node bin/forja.ts <comando>` — os scripts npm são apenas aliases finos do core.\n> A fonte é TypeScript e roda nativa: **dev exige Node ≥ 22.6** (strip-types). O pacote *publicado*\n> embarca `dist/*.js` e roda em **Node ≥ 20** — o `release-gate` prova isso a cada release (SPEC-012).\n\nPasso a passo de **criar vs atualizar** projeto: [`docs/processo-projeto.md`](docs/processo-projeto.md).\n\n## Como funciona — o processo\n\n```\n💡 Demanda\n   ├─ projeto NÃO existe ─► project:new + boilerplate + harness (desenha o time)\n   └─ projeto JÁ existe ──► overlay --only-memory + codegraph init (entende o código)\n                                              │\n                                              ▼\n   CICLO CLI-first (docs/fluxo.md):\n   1·Entender → 2·Especificar → 3·Arquitetar → 4·Decompor → 5·Implementar → 6·Governar → ✅\n```\n\n| Etapa | Papel | Capacidade |\n|-------|-------|------------|\n| 1 Entender | context-engineer | codegraph · ai-engineering |\n| 2 Especificar | product | — |\n| 3 Arquitetar | sdd-architect | harness · ADR |\n| 4 Decompor | sdd-architect | — |\n| 5 Implementar | orchestrator + worker | codegraph (MCP) |\n| 6 Governar | governance | codegraph (`affected`) |\n\nMapa completo do ciclo: [`docs/fluxo.md`](docs/fluxo.md).\n\n## As 3 capacidades integradas\n\n| Capacidade | Papel | Como usar |\n|---|---|---|\n| **codegraph** | análise de código (MCP local) | `forja code:index` · `codegraph explore \"<área>\"` · ferramentas MCP `codegraph_explore`/`codegraph_node` |\n| **harness** | desenho de times de agentes (plugin) | na sessão Claude Code: _\"build a harness for this project\"_ → gera `.claude/agents` + `.claude/skills` |\n| **ai-engineering** | base de conhecimento (referência) | ver [`docs/capacidades-externas.md`](docs/capacidades-externas.md) |\n\nDetalhes e reinstalação: [`docs/capacidades-externas.md`](docs/capacidades-externas.md) · [ADR-0016](memory/90-decisions/0016-integracao-capacidades-externas.md).\n\n## O core `forja`\n\nTodos os comandos de processo passam por um único ponto de entrada (ADR-0020):\n\n```bash\nforja                              # help agrupado por domínio\nforja <comando> [args]             # no repo clonado: node bin/forja.ts <comando>\n```\n\nO core aplica **gates** antes de executar (ex.: comandos de produto falham cedo sem\nworkspace) e grava **auditoria** de cada execução (comando, args, exit code, duração)\nem `<workspace>/.context/forja-runs.jsonl` — a trilha que a governança usa no review.\nOs scripts npm do repo são aliases finos que roteiam pelo core.\n\n## Comandos essenciais\n\n```bash\n# Workspace & projetos\nforja workspace:init                       # cria ~/forja-workspace\nforja project:new <nome> --ai claude,copilot  # cria projeto no workspace\nforja project:list                         # lista projetos do workspace\nforja project:upgrade                      # traz peças novas de scaffold p/ um projeto (aditivo; --apply)\nforja workspace:project:check <nome>       # valida padrões num projeto do workspace\n\n# Pipeline SDD\nforja spec:new <slug>                      # também: spec:plan · spec:tasks · spec:check\n\n# Sprint & handoffs (GSD)\nforja sprint:start                         # também: sprint:status · sprint:complete\nforja gsd:plan <slug>                      # runbook GSD em .context/\nforja gsd:handoff <intent> <slug>          # handoff entre papéis (ADR-0005)\nforja gsd:check <slug>                     # gates básicos do runbook\nforja orchestrate \"<objetivo>\" --slug <s>  # abre a corrida: a cadeia SDD/GSD como máquina de estados (SPEC-021)\nforja orchestrate:status <slug>            # o estado da máquina: etapas, gates, vereditos\nforja orchestrate:advance <slug>           # roda o gate da etapa; verde → próxima; vermelho → trava\n\n# Análise de código (codegraph)\nforja code:check                           # índice confiável (worktree + freshness)\nforja code:impact <símbolo>                # chamadores + blast radius antes de editar\nforja code:context <domínio>               # pacote de contexto mínimo (o mapa; --code p/ o código)\nforja code:query \"<termo>\"                 # também: code:index · code:sync · code:status\n\n# Memória & contexto (workspace)\nforja sync:universal                       # reindexa SQLite FTS5 do workspace\nforja query:universal \"<query>\"            # busca FTS5\nforja context:smart                        # smart-context (3 modos, ADR-0003)\nforja token:economy [--project <path>]     # economia de token; --project mede seus domínios reais (ADR-0009)\nforja memory:compress                      # arquiva runs antigos + VACUUM\nforja memory:extract                       # extrai conhecimento global da memória\nforja memory:audit                         # coerência mapa↔código: mapa não mente + módulo sem mapa (SPEC-017)\n\n# Qualidade & release\nforja project:check                        # standards do framework (pre-commit)\nforja tools:doctor                         # raio-x do núcleo; separa permissão/lock de corrupção; exit 1 se quebrou\nforja release:check --publish              # gate do tarball antes de publicar\nforja project:smoke                        # gate do projeto gerado; --full instala e builda o backend\nforja check:all                            # a bateria inteira de gates, um veredito; --full inclui os caros (SPEC-020)\nforja project:dashboard                    # relatório estático de status\n\n# Governança & auditoria\nforja audit:sync                           # projeta a trilha de auditoria numa tabela consultável\nforja audit:query --failed                 # consulta: --failed, --cmd <x>, --since 7d\nforja governance:dashboard                 # painel HTML estático (gates, SDD, auditoria) — sem servidor\n```\n\n## Separação framework × workspace\n\nO Forja é dividido em duas partes:\n\n1. **Framework** (este repositório): motor, convenções, scripts e memória do próprio framework.\n2. **Workspace** (`~/forja-workspace` por padrão): \"canto fixo\" onde vivem os projetos de produto, a memória universal deles e as specs de produto.\n\nO caminho do workspace é resolvido por prioridade:\n\n1. Variável de ambiente `FORJA_WORKSPACE`\n2. Campo `workspaceRoot` em `~/.forjarc.json`\n3. Padrão: `~/forja-workspace`\n\nVeja ADR-0019 para a decisão arquitetural.\n\n## Estrutura do repositório (framework)\n\n```\nbin/          CLIs (forja — o core; init-project, create-memory-nest-kit)\nlib/          Módulos reutilizáveis; lib/core/ é o motor de invariantes (registry, checks, health, release, doc-graph, gates)\nscripts/      Automação (sprint-manager, agent-router, sync-universal-memory, …)\nspecs/        Pipeline SDD do próprio framework (spec → plan → tasks)\nboilerplates/ Templates de stack (api-rest, saas, ecommerce, microservices, monorepo)\nmemory/       Memória do framework (00-global … 90-decisions/ADRs)\ndocs/         Documentação por persona e por tópico (ver DOC-MAP.md)\nprompts/      Prompts portáteis dos 6 papéis\n.claude/      Sub-agents e settings do Claude Code\nprojects/     LEGADO — não usar; projetos vivem no workspace externo\n```\n\n## Estrutura do workspace\n\n```\n~/forja-workspace/\n  projects/              # produtos gerados\n  memory/\n    sqlite/universal.db  # SQLite FTS5 dos produtos\n    30-projects/         # fichas dos projetos\n  specs/                 # specs de produto\n  .context/              # runbooks GSD de produto\n  README.md\n```\n\n## Documentação\n\n- [`DOC-MAP.md`](DOC-MAP.md) — mapa por papel e por tópico (comece aqui)\n- [`docs/processo-projeto.md`](docs/processo-projeto.md) — criar vs atualizar projeto\n- [`docs/fluxo.md`](docs/fluxo.md) — mapa do ciclo CLI-first\n- [`AGENTS.md`](AGENTS.md) — os 6 papéis e a topologia\n- [`memory/90-decisions/`](memory/90-decisions/) — ADRs com rationale\n- [`CHANGELOG.md`](CHANGELOG.md) — histórico\n\n## Convenções\n\n- **CLI-first** — sprints, SDD, GSD, handoffs e governança por comando; o front nunca é gate.\n- **ADRs** — toda decisão estrutural vira `memory/90-decisions/NNNN-titulo.md`.\n- **Handoffs** — 7 campos obrigatórios (ADR-0005), gravados no SQLite (ADR-0008).\n- **Releases** — toda versão nova reconcilia o README com o seu comportamento e abre a entrada do\n  `CHANGELOG.md` por uma seção `### O que melhorou` (diff em linguagem de produto vs. a versão\n  anterior, reusada como nota de release no GitHub). Runbook: [`docs/publishing.md`](docs/publishing.md).\n- **pt-BR** — comunicação e documentação em português.\n\n## Roadmap\n\nO fio condutor: **converter conhecimento que vive em convenção em invariante executável.** Cada\nitem abaixo ou fecha uma fronteira do framework por um gate, ou leva esse padrão para os projetos\ngerados.\n\n**Entregue** (v3.0.0 — Engineering Control Plane, ADR-0078)\n\n- [x] **Engineering Graph** — ADRs/SPECs como nós de primeira classe consultáveis\n  (`adr:list/show/impact/graph`), extração determinística, sem LLM (SPEC-032).\n- [x] **Architecture Constitution** — `## Constraints` de ADR viram regras checadas contra o código\n  real (`architecture:compile/check/status/explain/approve`), reaproveitando o `ApprovalLedger`, não\n  um sistema de aprovação paralelo (SPEC-033).\n- [x] **Change Risk Engine** — score 0-100 com 7 fatores nomeados e evidenciados\n  (`risk:assess/explain`); o `PolicyEngine` pode opcionalmente consultá-lo (`riskScoreRange`), nunca\n  um motor de decisão paralelo (SPEC-034).\n- [x] **Evidence Ledger + `forja engineer`** — view agregada por run, e a façade que compõe contexto\n  + ADRs relevantes + arquitetura + risco + agentes recomendados + incidentes parecidos + fluxo\n  recomendado antes de você começar (SPEC-035, estendida em SPEC-042).\n- [x] **Agent Identity & Reputation, Smart Routing** — registro persistente de agente com reputação\n  derivada de comportamento real, nunca auto-declarada (`agent:register/score/recommend`,\n  SPEC-036/037).\n- [x] **Predictive Change Simulation** — `forja simulate <ref>` testa um ref num worktree git\n  isolado; nunca promove sozinho (SPEC-038).\n- [x] **AI Code Provenance + Runtime Monitoring** — `forja blame`/`sbom` (proveniência em\n  granularidade de arquivo), `agent:monitor` (detecção de anomalia de comportamento contra a\n  própria linha de base do agente) — os dois são informação pro `PolicyEngine`/um humano consultar,\n  nunca automático (SPEC-039/040).\n- [x] **Learning Loop** — `incident:record/list/similar`, sugestão por palavra-chave, nunca\n  aplicação automática (SPEC-041).\n- [x] **Prontidão de Autonomous Maintenance** — ADR-0079 documenta os guardrails que qualquer spec\n  futura de manutenção autônoma real precisará respeitar; deliberadamente não habilitada ainda, por\n  desenho explícito da própria visão.\n\n**Entregue** (até v1.6.0)\n\n- [x] **Família de gates** — cada fronteira do framework guarda por um invariante que roda: núcleo\n  (`tools:doctor`, ADR-0023), tarball (`release:check`, ADR-0024), coerência de doc + ADRs + topologia\n  de agentes (ADR-0025, SPEC-019), projeto gerado (`project:smoke`, ADR-0029). E `check:all` reúne a\n  bateria num veredito (SPEC-020).\n- [x] **Migração TypeScript completa** — fonte 100% `.ts`, publica `dist/`, `noImplicitAny` ON. Achou\n  bugs latentes que nenhum teste pegava (SPEC-012).\n- [x] **Economia de memória como sistema** — **medida** (`token:economy` prova ~60% vs frio),\n  **entregue** (`code:context`), **protegida** (`memory:audit`, nas duas direções) e **propagada**: o\n  projeto gerado herda o gate dos mapas (ADR-0030).\n- [x] **`project:upgrade`** — atualizar um projeto já gerado sem perder código: aditivo, nunca\n  sobrescreve (SPEC-018).\n- [x] **Clean Architecture calibrado** — camadas onde se pagam, enxuto onde não; e a claim de token\n  **medida e corrigida** — a economia é da memória, não das camadas (ADR-0027).\n- [x] **`builds` do backend gerado sob toolchain novo** — o template alinhou o `better-sqlite3` ao\n  do framework (^12, com prebuilds); o `check:all --full` compila o backend gerado em Node 26.\n- [x] **`release-auditor` consome o gate** — o agente executa e julga `release:check --publish`\n  (ADR-0024), incluindo o `consumer-spec-new`; não reimplementa o procedimento.\n\n**Próximos passos** (por dependência, não por desejo)\n\n- [ ] **Cross-project Intelligence** (resto da Fase 6) — correlacionar incidentes entre múltiplos\n  repositórios; exige uma fonte de dado que este workspace de um único repositório ainda não tem.\n- [ ] **Boilerplates além de NestJS** — o processo é agnóstico de stack; os templates vão atrás.\n\nSugestões? Abra uma issue — feature não-trivial aqui começa por spec, inclusive as suas.\n\n## English\n\nFull English version: **[README.md](README.md)**. In short — **Forja** turns coding AI into an\nengineering team with process and memory: every project starts from a spec, every structural\ndecision becomes an ADR, and nothing is lost between sessions. Documentation is in Brazilian\nPortuguese — that's part of the project's identity; the CLI and the code are readable regardless.\n\n---\n\n<p align=\"center\">\n  <strong>A Forja te ajudou a domar seus agentes?</strong><br>\n  Uma ⭐ é o que faz o projeto chegar a mais devs que estão pagando o imposto da IA amnésica.\n</p>\n\n<p align=\"center\"><sub>Forja (npm: <code>forjajs</code>) · MIT License · <a href=\"CONTRIBUTING.md\">Contribuindo</a></sub></p>\n","readmeFilename":"README.pt-BR.md"}