{"_id":"openwolf","_rev":"14-463a6a950291eaaf727cdad6e0e18bbc","name":"openwolf","dist-tags":{"latest":"2.5.3"},"versions":{"1.0.0":{"name":"openwolf","version":"1.0.0","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@1.0.0","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"6e0499e1b985045fcf20b1591aa985d63c774383","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-1.0.0.tgz","fileCount":112,"integrity":"sha512-OFQxlk9rg10tjSy75u98Ufg6C2biZQPIqcVFwu79FwrU+s1Y/muIcpv5d0BXLl/3maXOcP9LTykblJy/4mrXGQ==","signatures":[{"sig":"MEUCIQDpy17QGaGAMl3alwr/lGNSOu1ICDDAMubA5Y9LY17/lgIgVbLRIoDs/zSzi9IdmLkjh2IqsYdGfk6PAl8nq2doCcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339006},"type":"module","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsc --watch","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.6.2","description":"Token-conscious AI brain for Claude Code projects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.18.0","glob":"^11.0.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.0.0","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_1.0.0_1773950281037_0.9641830448400524","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"openwolf","version":"1.0.1","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@1.0.1","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"cf163954f646207301dbb3b31be1713dbce95930","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-1.0.1.tgz","fileCount":112,"integrity":"sha512-gU3CRnAM57aDB7RZHPVFPBe1CrHMleytwk42jthk58a7iG2wNTB7KMx0ln2/3NXIxDyJfCB/J7+GzO6JEPLhkw==","signatures":[{"sig":"MEYCIQD8WZ0Uz6YkG4PNo4iidkewImFN17pIeYMEj4188JmGPgIhAKg/I9CZbkRivmmnAgsPyzM4muu/J4DzGdgqNrWdUzdC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339336},"type":"module","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsc --watch","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.6.2","description":"Token-conscious AI brain for Claude Code projects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.18.0","glob":"^11.0.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.0.0","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_1.0.1_1773950998052_0.6867345396429281","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"openwolf","version":"1.0.2","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@1.0.2","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"83cd382bc23a1084ed56a4553ddc3e039a7973c2","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-1.0.2.tgz","fileCount":112,"integrity":"sha512-oxQVbo4weutBYH1r+KXykcnY642qR3xmFceioiWl/mIwPlGzHelWnr7orJx6Uhs6GQ/GkpGKxdhMy2Whz16LEA==","signatures":[{"sig":"MEUCID+lvZ/+aHoIe/6dCdm4QmdQMnO0nlzyzNsgnnw0Y7k8AiEAu+XYL9MrLFvpCV0KKbvQhd7/8Ibohe056XjrfbGmkr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339976},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"e6e60bb1bce30da31a5619b8a6c627f3999de31c","scripts":{"dev":"tsc --watch","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.6.2","description":"Token-conscious AI brain for Claude Code projects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.0.0","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_1.0.2_1773952735058_0.11886553044444437","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"openwolf","version":"1.0.3","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@1.0.3","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"47d24522ceb23d0de1b1b081e7708739f7b1f43e","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-1.0.3.tgz","fileCount":112,"integrity":"sha512-tEOe2QoToHmGbOyi7FjSdD5zXMjV2wTZ5Rn/6942XMByQiphrmvO06VlhHnG5RA2bOMu6bsUHiZ1qsPtJnLScw==","signatures":[{"sig":"MEUCIHu+Tk3BU87M9MuOxvLcP2vKbNhfeuelbqbLxfbipTCeAiEAl24zk0t+kL7Gb/M8aJlrVrbTbTqC0FV8ZVyz7iRbTmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339971},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"00c607fdd99f14773218121f91c2b0dfa3b1bd1a","scripts":{"dev":"tsc --watch","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.6.2","description":"Token-conscious AI brain for Claude Code projects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.0.0","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_1.0.3_1773959853203_0.07018350670058227","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"openwolf","version":"1.0.4","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@1.0.4","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"269ea47864e02f4cd309e5fdc2f3c894cf8c8062","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-1.0.4.tgz","fileCount":112,"integrity":"sha512-Bx+l12PsBu1XbcAp2ikY0pOPq0nUUMtuf/48M3BAfHDbQelnVrAnQWOLZbtBuNDJmDOxVU69fBO7QXEjOVc0tQ==","signatures":[{"sig":"MEYCIQDX8VUMkEl7MeazL+NJkMKeUKoxyU/QukYx0FZdBolU/gIhAMi4B2VSgoWW0lf1/uQvzYfNr3rKv5lgCrVbMrdSN82Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1340424},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"0cd76dedd83092c03d3f50c01982e49ed0e671cb","scripts":{"dev":"tsc --watch","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.6.2","description":"Token-conscious AI brain for Claude Code projects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.0.0","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^3.0.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_1.0.4_1773960854631_0.13122467633522894","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"openwolf","version":"2.0.0","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.0.0","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"f8427ca75868bd5b73bd51d44e2aa10f4b300b4c","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.0.0.tgz","fileCount":153,"integrity":"sha512-c4Jom7enpP2Yy6nbwpklAElj/bbUsriuM1tTdsUCga72H8z75GSSdM9htFaRuPrk1G5C4sO3sQ37adslwbundw==","signatures":[{"sig":"MEUCICg2ZqvHf8YIIWFmpdLSgsq9o0vZ9wbC6LamvSBRqeuyAiEAtqTwYVPtghv16k11mhTgOZgq9x9Xe2kDXbpO9vaqyp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1550719},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"7e7335ac5dabd952bffd0e6ecaca35d3b091fdcc","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"The second brain for Claude Code, now for every AI coding assistant: context management, architecture scaffolding, and smarter token utilization through lifecycle hooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.0.0_1784068916516_0.06792836842883254","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"openwolf","version":"2.0.1","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.0.1","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"8687056d09ae88cd0fd42b9c1013f1cd65e1b48d","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.0.1.tgz","fileCount":153,"integrity":"sha512-049cNjWxcrniJ9VkJwAWNh2vtqCSyMYGp9+Fc+FCZKj/daBIWGucHUgzpdLovHdDRvSUg6QJ2oQUSFQvJhbOTQ==","signatures":[{"sig":"MEUCIGTb2w9GwdwViHxIyvUjRTtJT8L6oKf9Qt47/lz+TPZjAiEAkKRJL5phxzGc4W+gQyYEz1QhmXVWT6wfiidN6NZsZGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1560807},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"9b0e770d3077dac6ddfa579c43c165d9fe782ed0","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"The second brain for Claude Code, now for every AI coding assistant: context management, architecture scaffolding, and smarter token utilization through lifecycle hooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.0.1_1784072144296_0.9700388910387197","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"openwolf","version":"2.0.3","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.0.3","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"def8a5911de2f2bb9fe93a8c508d5312617c85a8","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.0.3.tgz","fileCount":155,"integrity":"sha512-Y5JuCTW8JLJNd4JCcfNxGDwmWY1yu0DBuzr7LErvM7f0Y49nz8KO5+tjJ5jlnVzCkYVLOEipigfTVOGv1g1jrg==","signatures":[{"sig":"MEQCIH2cCZYm4/r/4TdXmRLRK06zKt5gwfQIbVTgQJLxPAotAiAcsjnYohBg5Mj7p6lqBrJZmXmzanLS5/L0qvrbF6KL1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580721},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"2af988ac32c98debee65032e7043c8c7e86c4f5c","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"The second brain for Claude Code, now for every AI coding assistant: context management, architecture scaffolding, and smarter token utilization through lifecycle hooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.0.3_1786986322513_0.8134771849905991","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"openwolf","version":"2.0.4","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.0.4","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"71005dd479aea042b7037b07cd7ff456a8c6c93f","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.0.4.tgz","fileCount":167,"integrity":"sha512-TpGalbAyWHqVb6/YjXkr/+TcOHPUhlZErsRNqsF0oXAdGa2uAsVUXP8IDbi0njZxVmyY5QOfsqs16DNqHFLYzQ==","signatures":[{"sig":"MEYCIQCxY6ItaFFQSSsoywiLRUP0H3ZW8y5ceqAMZMcgLTUizAIhAPMWj3UXCu7OYOdFST+va/uytk/RSTLWlQ7MaWFZHhMi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646076},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"7769e5ed55bf02ebb84c16e70bea427282a4236f","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"The second brain for Claude Code, now for every AI coding assistant: context management, architecture scaffolding, and smarter token utilization through lifecycle hooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.0.4_1787069886903_0.7622818415557044","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"openwolf","version":"2.4.1","keywords":["claude","ai","context","token","openwolf","claude-code","developer-tools"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.4.1","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"9a81d9ac61a06b97af5aa67de38081d0b3860bb3","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.4.1.tgz","fileCount":219,"integrity":"sha512-xOAUqPgw26JuJWAmMzxPG53kf95tsnJzgzRrLAq+ixMlmI9be41XRwRvYMjB8q7jon95Xi8fYQvvFMpVBy+bBg==","signatures":[{"sig":"MEUCIQD9y86U7GsUBflwY4/kI00zx+dQPtiH5LuR5e1KlqAcbQIgQ1jENrrrsTASYt7TE6BOiMNoU2FeGnFmDSPVLho71q8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2003312},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"c8acf0a0338439dd8b4f691c576be2b49787e4d5","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"The second brain for Claude Code, now for every AI coding assistant: context management, architecture scaffolding, and smarter token utilization through lifecycle hooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1","web-tree-sitter":"^0.24.7","tree-sitter-wasms":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.4.1_1787256166739_0.38128086932893535","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"openwolf","version":"2.5.0","keywords":["claude-code","codex","opencode","agent-memory","context-engineering","observability","context","token","openwolf","developer-tools","ai"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.5.0","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"c70db033afead36ee7840baa4956d0d5077a25e6","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.5.0.tgz","fileCount":218,"integrity":"sha512-PslCmYpk8zszbVWV1bKLMFdK70Ldwl1Elfyfen0xkuQERKgbN/R6Oht6Q2PdPLr+YNHxZbuqpAgIdpMOIyDV0Q==","signatures":[{"sig":"MEYCIQDoKrk8eh5dMuq1GgR6d2bVotX4UopJLRmaH3p/NDEe+wIhAN9PWFf2yOcdvYiLg+IGplT5bTPmQQsdo2YmcCk3dqa2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2014867},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"12c21b593b316bd97d91a7fb16a031fd92035009","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"One project memory across Claude Code, Codex and OpenCode. Token usage measured, not estimated. Zero API calls.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1","web-tree-sitter":"^0.24.7","tree-sitter-wasms":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.5.0_1787374166591_0.6543203030785396","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"openwolf","version":"2.5.1","keywords":["claude-code","codex","opencode","agent-memory","context-engineering","observability","context","token","openwolf","developer-tools","ai"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.5.1","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"239d64425dd0610a5d615ce5b113ee11a8d6fb98","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.5.1.tgz","fileCount":222,"integrity":"sha512-GaffICiUE3e8DTykPsMkmpLiTk1Prx1wG53hg5wtAgbHs9YVogg9QHDojzuvoaKZvvq5jYyBghovyHLVHruerQ==","signatures":[{"sig":"MEQCIHlmA1f4TSwDbbM+d4qHwBBH2S9K/qNWvE/ch7egc1CFAiAKPrGIq2zU9vwUGVIUhkRPXkdcWlqfbTlG2QxjB3TZVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2095321},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"a7625af4df494cafc00c197bff26fa3af4d0f649","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm build:hooks && pnpm build:dashboard","docs:dev":"vitepress dev docs","prebuild":"node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"One project memory across Claude Code, Codex and OpenCode. Token usage measured, not estimated. Zero API calls.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.18.0","open":"^10.0.0","chalk":"^5.3.0","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1","web-tree-sitter":"^0.24.7","tree-sitter-wasms":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@vitejs/plugin-react":"^4.0.0"},"optionalDependencies":{"puppeteer-core":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.5.1_1788035477121_0.7079163721069852","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"openwolf","version":"2.5.2","keywords":["claude-code","codex","opencode","agent-memory","context-engineering","observability","context","token","openwolf","developer-tools","ai"],"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","_id":"openwolf@2.5.2","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"homepage":"https://github.com/cytostack/openwolf","bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"bin":{"openwolf":"dist/bin/openwolf.js"},"dist":{"shasum":"928b309e9d01d5d5ebf6155d05f76849eaf7983f","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.5.2.tgz","fileCount":324,"integrity":"sha512-UVHARmFaYoqXJoEIgohmOTCHI8uiPJVEISZyLVrgsQIw4xqDK/uD61B6xJbJx8cn/XOauPincXrSTH4AvKfGxw==","signatures":[{"sig":"MEQCIQCch3WrOCPHhb0bo/iwJ3vSImR7Ii5HAe/PocDdoZ6MGQIfVB6nyv6D0kJ6Idf4AlWMmvsjI28h8dxcjPvCmL9a1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAapLnLQxFG1Kkk4YvCcoeFJrSEp+wdi7zc2V/52zkrNAiB9FFldTpLw2ozftOtZk9QKTbKXTHAJ34arwT1korpn4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2849040},"pnpm":{"overrides":{"qs":"6.16.0","body-parser":"2.3.0"}},"type":"module","_from":"file:/tmp/openwolf-2.5.2.tgz","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm check:plugin && pnpm check:dashboard && pnpm build:hooks && pnpm build:dashboard","pretest":"node scripts/sync-plugin-runtime.mjs && tsc && tsc -p tsconfig.hooks.json && pnpm check:plugin && pnpm check:dashboard","docs:dev":"vitepress dev docs","prebuild":"node scripts/sync-plugin-runtime.mjs && node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","check:plugin":"tsc -p tsconfig.plugin.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard","check:dashboard":"tsc -p tsconfig.dashboard.json"},"_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"_resolved":"/tmp/openwolf-2.5.2.tgz","_integrity":"sha512-UVHARmFaYoqXJoEIgohmOTCHI8uiPJVEISZyLVrgsQIw4xqDK/uD61B6xJbJx8cn/XOauPincXrSTH4AvKfGxw==","repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"Local project memory, context tools and recorded token usage for coding agents.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.21.3","open":"^10.0.0","chalk":"^5.3.0","ignore":"^7.0.9","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1","web-tree-sitter":"^0.24.7","tree-sitter-wasms":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@opencode-ai/plugin":"^1.18.30","@vitejs/plugin-react":"^4.0.0"},"openwolfRuntime":{"protocol":1},"_npmOperationalInternal":{"tmp":"tmp/openwolf_2.5.2_1789487924910_0.26705533389977654","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"_id":"openwolf@2.5.3","bin":{"openwolf":"dist/bin/openwolf.js"},"bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"dist":{"shasum":"4b509e5a532068daa7d74fd1f3000fc6e09d1849","tarball":"https://registry.npmjs.org/openwolf/-/openwolf-2.5.3.tgz","fileCount":349,"integrity":"sha512-mgSeEDuTYp8K4o515i4yhYpL/AmKrRpG0CTR3JjESoP1FpRaMtXCz40xHUc3DrA2nHufqpk1Oi3rHUzRmvp/BA==","signatures":[{"sig":"MEQCIA5fuypVBIQLQsJ1fvTERiFHFh/YsGnqbF08Npg2T9A+AiAySYKXvK3APZ+N2M7WSXqJqQFwdoqtofEWHGfSuAHvqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD5At1jGvFu5UBlT4pn6b3CMSSt8bZGvSKWDAVCobBzOgIgWpnMp5Msrw3p/yimhnUdvsH23c8UFSA3hikv3hVqbZM="}],"unpackedSize":2703067},"name":"openwolf","pnpm":{"overrides":{"qs":"6.16.0","body-parser":"2.3.0"}},"type":"module","_from":"file:/tmp/openwolf-review/release/openwolf-2.5.3.tgz","author":{"name":"Cytostack Pvt Ltd"},"engines":{"node":">=20.0.0"},"license":"AGPL-3.0-only","scripts":{"dev":"tsc --watch","test":"node --test tests/*.test.ts","build":"tsc && pnpm check:plugin && pnpm check:dashboard && pnpm build:hooks && pnpm build:dashboard","pretest":"node scripts/sync-plugin-runtime.mjs && tsc && tsc -p tsconfig.hooks.json && pnpm check:plugin && pnpm check:dashboard","docs:dev":"vitepress dev docs","prebuild":"node scripts/sync-plugin-runtime.mjs && node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true})\"","docs:build":"vitepress build docs","build:hooks":"tsc -p tsconfig.hooks.json","check:plugin":"tsc -p tsconfig.plugin.json","prepublishOnly":"pnpm build","build:dashboard":"cd src/dashboard/app && npx vite build --outDir ../../../dist/dashboard","check:dashboard":"tsc -p tsconfig.dashboard.json"},"version":"2.5.3","_npmUser":{"name":"openwolf","email":"cytostack@gmail.com"},"homepage":"https://github.com/cytostack/openwolf","keywords":["claude-code","codex","opencode","agent-memory","context-engineering","observability","context","token","openwolf","developer-tools","ai"],"_resolved":"/tmp/openwolf-review/release/openwolf-2.5.3.tgz","_integrity":"sha512-mgSeEDuTYp8K4o515i4yhYpL/AmKrRpG0CTR3JjESoP1FpRaMtXCz40xHUc3DrA2nHufqpk1Oi3rHUzRmvp/BA==","repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"_npmVersion":"11.12.1","description":"Local project memory, context tools and recorded token usage for coding agents.","directories":{},"maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.3","open":"^10.0.0","chalk":"^5.3.0","ignore":"^7.0.9","express":"^5.2.1","chokidar":"^4.0.0","commander":"^12.0.0","node-cron":"^4.2.1","web-tree-sitter":"^0.24.7","tree-sitter-wasms":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^19.0.0","recharts":"^2.15.0","@types/ws":"^8.5.12","react-dom":"^19.0.0","vitepress":"^1.6.4","typescript":"^5.7.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@types/react":"^19.0.0","@types/express":"^5.0.0","@types/node-cron":"^3.0.11","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","@opencode-ai/plugin":"^1.18.30","@vitejs/plugin-react":"^4.0.0"},"openwolfRuntime":{"protocol":1},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openwolf_2.5.3_1792440015876_0.9459966242907205"}}},"time":{"created":"2026-03-19T19:58:01.036Z","modified":"2026-10-19T20:00:16.232Z","1.0.0":"2026-03-19T19:58:01.254Z","1.0.1":"2026-03-19T20:09:58.195Z","1.0.2":"2026-03-19T20:38:55.249Z","1.0.3":"2026-03-19T22:37:33.417Z","1.0.4":"2026-03-19T22:54:14.797Z","2.0.0":"2026-07-14T22:41:56.715Z","2.0.1":"2026-07-14T23:35:44.455Z","2.0.3":"2026-08-17T17:05:22.902Z","2.0.4":"2026-08-18T16:18:07.100Z","2.4.1":"2026-08-20T20:02:46.900Z","2.5.0":"2026-08-22T04:49:26.807Z","2.5.1":"2026-08-29T20:31:17.297Z","2.5.2":"2026-09-15T15:58:45.049Z","2.5.3":"2026-10-19T20:00:16.049Z"},"bugs":{"url":"https://github.com/cytostack/openwolf/issues"},"author":{"name":"Cytostack Pvt Ltd"},"license":"AGPL-3.0-only","homepage":"https://github.com/cytostack/openwolf","keywords":["claude-code","codex","opencode","agent-memory","context-engineering","observability","context","token","openwolf","developer-tools","ai"],"repository":{"url":"git+https://github.com/cytostack/openwolf.git","type":"git"},"description":"Local project memory, context tools and recorded token usage for coding agents.","maintainers":[{"name":"openwolf","email":"cytostack@gmail.com"}],"readme":"<h1 align=\"center\">OpenWolf</h1>\n\n<p align=\"center\">\n  <strong>Keep project memory across your coding agents.</strong>\n</p>\n\n<p align=\"center\">\n  OpenWolf keeps task context, project maps and known fixes in one local folder.<br />\n  Help Claude Code, Codex and OpenCode continue saved work and find relevant code.<br />\n  Reduce repeated context and review recorded token usage by agent and model.<br />\n  Memory and indexing run locally without extra model calls.\n</p>\n\n<p align=\"center\">\n  <sub><b>Hooks:</b> Claude Code, Codex CLI &nbsp;·&nbsp; <b>Plugin:</b> OpenCode &nbsp;·&nbsp; <b>Compatible hooks:</b> Grok Build &nbsp;·&nbsp; <b>Context only:</b> Cursor, Gemini CLI, Antigravity</sub>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/openwolf\"><img src=\"https://img.shields.io/npm/v/openwolf?color=cb3837&label=npm\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/openwolf\"><img src=\"https://img.shields.io/npm/dm/openwolf?color=2ea44f&label=downloads\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/cytostack/openwolf/stargazers\"><img src=\"https://img.shields.io/github/stars/cytostack/openwolf?color=444&label=stars\" alt=\"GitHub stars\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-AGPL--3.0-blue\" alt=\"License\" /></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/badge/node-%3E%3D20-2ea44f\" alt=\"Node.js\" /></a>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/openwolf-dashboard.png\" alt=\"\" width=\"900\" />\n</p>\n\n| Without OpenWolf | With OpenWolf |\n|------------------|---------------|\n| A new session may need the same project explanation again | Saved task context, project notes and known fixes remain in `.wolf/` |\n| Switching agents can leave unfinished work in the previous conversation | Explicit Claude and Codex handover packets carry selected saved context |\n| Usage records are spread across agent sessions | Available token counters and API cost estimates are grouped by agent and model |\n| Older session notes make useful information harder to find | Eligible old notes are archived with verified restore pointers |\n| Repeated file reads and large command results use session space | Read guidance and supported output controls help reduce repeated context |\n\n## What it does\n\nA coding session produces useful context: the task objective, files changed,\nfailed tests and the next action. That information can be difficult to recover\nafter compaction, a restart or a change of agent. Large file reads and command\nresults can also fill a session with repeated text.\n\nOpenWolf stores selected context beside your project and connects to the\nsession and tool events your coding agent supports:\n\n- Keep the objective, completed work, unresolved problems and next action in\n  a checkpoint. Supported Claude and Codex hooks can restore saved context.\n- Find files and symbols through a project map with descriptions, line ranges\n  and import relationships. Partial scans preserve earlier entries.\n- Save project notes and known fixes for later sessions. Archive eligible old\n  session notes while retaining active, latest and pinned notes.\n- Identify repeated reads of unchanged files. Supported Claude hooks can\n  shorten selected large Bash results and retain the original output locally.\n- Review available provider token counters, model cost estimates, hook health\n  and completed OpenWolf activity in the dashboard.\n\n## Quick start\n\n```bash\nnpm install -g openwolf\ncd your-project\nopenwolf init\n```\n\n`init` detects installed agents and sets up their project integration.\nComplete any project or hook trust review shown by your agent, then start a\nnew session. You can select agents with `--agent claude codex opencode`.\n\n## Supported agents\n\n| Agent | Integration |\n|-------|-------------|\n| Claude Code | Lifecycle hooks, read guidance, Bash output controls and skills |\n| Codex CLI | Project hooks and `AGENTS.md`: saved task recovery and supported session and tool events |\n| OpenCode | Native plugin and `AGENTS.md`: session and tool events, usage records and activity toasts |\n| Grok Build | Enabled Claude-compatible hook discovery; activity notices stay in the dashboard |\n| Cursor | Rules file (context only) |\n| Gemini CLI | `GEMINI.md` block (context only) |\n| Antigravity | `AGENTS.md` block (context only) |\n\nAgents use the project's `.wolf/` directory. The generated `.gitignore`\nexcludes local runtime data. Review notes, bug records and indexed content\nbefore sharing them. Hook coverage depends on the installed agent version.\nSee the [integration guide](docs/hooks.md) for details.\n\n## How it works\n\n`openwolf init` creates `.wolf/` and registers supported hooks or a plugin.\nMemory, indexing and usage processing run locally without extra model calls.\nThe optional background update worker contacts npm to check for new runtimes.\n\n| File | Purpose |\n|------|---------|\n| `anatomy-index.json` | Project index: file descriptions, sizes, symbols and imports |\n| `cerebrum.md` | Candidate preferences, conventions and recurring corrections |\n| `STATUS.md` | Current project status and unfinished work |\n| `buglog.json` | Searchable records of problems and fixes |\n| `memory.md` | Session notes and outcomes |\n| `token-ledger.json` | Operational records and separate content-size estimates |\n| `hooks/` | Installed lifecycle hooks and session state |\n| `cache/bash/` | Preserved originals of shortened Bash output |\n| `handoff/` | Task checkpoints, source references and handover packets |\n| `archive/` | Older session notes with verified restore pointers |\n| `usage/`, `activity/` | Recorded usage and completed OpenWolf actions |\n\nDuring a session:\n\n- **Session start.** Load a short project index and available saved task\n  evidence. New sessions can select a verified compatible runtime update.\n- **Before reads.** Identify eligible repeated reads and offer symbol guidance\n  for large indexed files. Changed files and ranged reads are handled separately.\n- **After Bash.** Supported Claude hooks can shorten selected output above an\n  estimated size threshold. The original stays in a local cache. Test and\n  build output are advisory-only by default.\n- **Every 25 tool batches.** Supported Claude events can repeat selected\n  approved rules within a size budget. Durable instruction injection requires\n  an independently protected installation and administrator review.\n- **On compaction.** Save a checkpoint for supported recovery paths. Recovery\n  uses persisted task evidence; it cannot reproduce every part of live context.\n- **On stop.** Record available usage and session observations. Eligible\n  activity notices report completed work within the configured message limit.\n\n## Measurement\n\n```bash\nopenwolf report\n```\n\nExample from a checked Codex session, shown in a shortened format:\n\n```\n  Recorded provider usage\n    Input tokens:           50,393\n      Cached input:         28,800\n      Fresh input:          21,593\n    Output tokens:             146\n      Reasoning tokens:         80\n    Total tokens:           50,539\n\n  Cost calculation\n    Fresh input:            model input rate\n    Cached input:           model cached-input rate\n    Output:                 model output rate\n\n  Coverage\n    Cached input is included in input tokens.\n    Reasoning is included in output tokens in this record.\n    Content-size estimates are reported separately.\n```\n\nHow to read the reports:\n\n1. Recorded usage comes from available Claude transcripts, Codex session\n   records and OpenCode plugin records. Repeated records are reconciled.\n   Missing counters remain unavailable rather than being reported as zero.\n2. Cost estimates use the relevant provider and model rates, including\n   separate cache categories where available. They represent API list prices,\n   not subscription charges. Unknown models and pricing assumptions are shown.\n3. Local estimates describe content size and output changes. They are separate\n   from provider counters and do not prove a fixed amount of token savings.\n\n`openwolf usage report --json` provides the recorded-usage report.\n`openwolf bench --repo <fixture> --yes` compares supported coding tasks with\nand without OpenWolf. It uses real model access and can consume paid usage.\n\n## Reliability\n\nHook heartbeats, runtime checks and dashboard health help identify missing\nor failing integrations. Project updates check installed hook modules and\nreport errors. Concurrent writes use journals or locks where required, and\nincomplete project scans retain entries they did not reach.\n\nCompatible stable hook and plugin updates can be prepared in the background\nfor new sessions. Major upgrades are notification-only by default. A running\nsession keeps its selected runtime. This does not replace the global CLI or\na running dashboard daemon. See [automatic updates](docs/automatic-updates.md).\n\n## Security\n\n- The dashboard binds to `127.0.0.1` by default and requires a project token.\n- Hooks do not approve tool calls. Permissions remain with the agent and user.\n- Handover imports check project identity, source records and repository drift.\n- Sensitive-file exclusions and path checks reduce accidental exposure. Review\n  saved content before sharing it; automatic filtering has limits.\n- Saved notes do not approve themselves. Automatic durable instruction\n  injection requires independent administrator review and a protected runtime.\n\n## Skills\n\nAvailable through the supported agent integration:\n\n- `/handoff` helps update `STATUS.md` with current work and open items.\n- `/security-audit` guides a project review and records findings in the bug log.\n- `/reframe` guides interface review, framework selection and migration work.\n\nSkills guide your coding agent and use its normal model budget. For an explicit\nClaude and Codex transfer, use the [handover commands](docs/commands.md).\nOpenWolf can read supported local session records used for Claude recovery;\nit does not run Claude's `/resume` inside Codex or access private reasoning.\n\n## Dashboard\n\n```bash\nopenwolf dashboard\n```\n\nThe local dashboard shows project memory, the code index, handover records,\nrecorded token usage and API cost estimates by agent and model. Usage coverage\nand missing data remain visible.\n\nActivity history shows completed OpenWolf work, such as saved checkpoints,\nrestored context and archived notes. Hook health and update status show which\nruntime is installed and whether a newer compatible runtime is ready. Data\nrefreshes while the dashboard is open. Restart the daemon after a package\nupgrade to load updated dashboard code.\n\n## Commands\n\n```\nopenwolf init               Set up .wolf/ and detected agents\nopenwolf status             Check installation and hook health\nopenwolf scan               Refresh the project index\nopenwolf scan --check       Check index freshness without writing\nopenwolf find <query>       Find an indexed symbol or file\nopenwolf find --file <p>    Show one file's description and symbol map\nopenwolf map                Show a focused project overview\nopenwolf report             Review operational records and usage\nopenwolf usage report       Report available provider token counters\nopenwolf handoff list       Find saved Claude and Codex sessions\nopenwolf handoff search <q> Search saved task evidence\nopenwolf memory archive     Archive eligible older session notes\nopenwolf bench              Compare supported tasks (--yes required)\nopenwolf bug search <term>  Search known problems and fixes\nopenwolf dashboard          Open the local dashboard\nopenwolf cron list          List scheduled maintenance tasks\nopenwolf update             Refresh registered projects from the installed package\nopenwolf self-update        Check npm and prepare a compatible project runtime\nopenwolf restore [backup]   List backups or restore the selected snapshot\n```\n\n## Requirements\n\nNode.js 20 or later and at least one supported agent. OpenWolf runs on macOS,\nLinux and Windows. Bug-log search uses Node's built-in SQLite where available\nand falls back to a simpler matcher otherwise.\n\n## Limitations\n\n- Recorded usage is limited to the counters each agent saves. Local\n  character-ratio estimates are not exact provider token counts.\n- Hook and display support differ by agent and version. Claude output controls\n  are not available through every other integration.\n- Handover transfers selected saved evidence. A full live Claude to Codex to\n  Claude coding handover and broader token-efficiency comparisons remain\n  unverified. See the [validation record](docs/release-2.5.2.md).\n- Protected durable memory needs independent administrator setup. Ordinary\n  project maps, checkpoints, archival and activity reporting work without it.\n\n[Report a problem](https://github.com/cytostack/openwolf/issues).\n\n## Contributors\n\nContributor acknowledgements are retained below. The [credits](CREDITS.md)\nand [issue and PR audit](docs/audit/README.md) distinguish reporters, PR\nsubmitters, original authors and co-authors. Adapted work is identified\nseparately from merged contributions.\n\n| | | | | |\n|:-:|:-:|:-:|:-:|:-:|\n| [<img src=\"https://github.com/fsener.png\" width=\"60\"/>](https://github.com/fsener)<br/>**fsener** | [<img src=\"https://github.com/albertomenache.png\" width=\"60\"/>](https://github.com/albertomenache)<br/>**albertomenache** | [<img src=\"https://github.com/whydoyouwork.png\" width=\"60\"/>](https://github.com/whydoyouwork)<br/>**whydoyouwork** | [<img src=\"https://github.com/mann1x.png\" width=\"60\"/>](https://github.com/mann1x)<br/>**mann1x** | [<img src=\"https://github.com/GordongWang.png\" width=\"60\"/>](https://github.com/GordongWang)<br/>**GordongWang** |\n| [<img src=\"https://github.com/WeathermanTony.png\" width=\"60\"/>](https://github.com/WeathermanTony)<br/>**WeathermanTony** | [<img src=\"https://github.com/goashem.png\" width=\"60\"/>](https://github.com/goashem)<br/>**goashem** | [<img src=\"https://github.com/bryandent.png\" width=\"60\"/>](https://github.com/bryandent)<br/>**bryandent** | [<img src=\"https://github.com/levnikmyskin.png\" width=\"60\"/>](https://github.com/levnikmyskin)<br/>**levnikmyskin** | [<img src=\"https://github.com/svanack404.png\" width=\"60\"/>](https://github.com/svanack404)<br/>**svanack404** |\n| [<img src=\"https://github.com/riverwolf67.png\" width=\"60\"/>](https://github.com/riverwolf67)<br/>**riverwolf67** | [<img src=\"https://github.com/nottyjay.png\" width=\"60\"/>](https://github.com/nottyjay)<br/>**nottyjay** | [<img src=\"https://github.com/alfasin.png\" width=\"60\"/>](https://github.com/alfasin)<br/>**alfasin** | [<img src=\"https://github.com/ChasLui.png\" width=\"60\"/>](https://github.com/ChasLui)<br/>**ChasLui** | [<img src=\"https://github.com/JarrodAI.png\" width=\"60\"/>](https://github.com/JarrodAI)<br/>**JarrodAI** |\n| [<img src=\"https://github.com/meketreve.png\" width=\"60\"/>](https://github.com/meketreve)<br/>**meketreve** | [<img src=\"https://github.com/Laptopcorei7.png\" width=\"60\"/>](https://github.com/Laptopcorei7)<br/>**Laptopcorei7** | [<img src=\"https://github.com/statik1.png\" width=\"60\"/>](https://github.com/statik1)<br/>**statik1** | [<img src=\"https://github.com/spignataro.png\" width=\"60\"/>](https://github.com/spignataro)<br/>**spignataro** | [<img src=\"https://github.com/Esturban.png\" width=\"60\"/>](https://github.com/Esturban)<br/>**Esturban** |\n| [<img src=\"https://github.com/prghbla.png\" width=\"60\"/>](https://github.com/prghbla)<br/>**prghbla** | [<img src=\"https://github.com/1re2turn1.png\" width=\"60\"/>](https://github.com/1re2turn1)<br/>**1re2turn1** | [<img src=\"https://github.com/aevnar.png\" width=\"60\"/>](https://github.com/aevnar)<br/>**aevnar** | [<img src=\"https://github.com/davdittrich.png\" width=\"60\"/>](https://github.com/davdittrich)<br/>**davdittrich** | [<img src=\"https://github.com/krsfer.png\" width=\"60\"/>](https://github.com/krsfer)<br/>**krsfer** |\n| [<img src=\"https://github.com/kantorcodes.png\" width=\"60\"/>](https://github.com/kantorcodes)<br/>**kantorcodes** | | | | |\n\n## License\n\n[AGPL-3.0](LICENSE)\n\n## Author\n\nCreated by Farhan Palathinkal, [Cytostack](https://github.com/cytostack)\n","readmeFilename":"README.md"}