{"_id":"agent-bober","_rev":"33-2a0190a8beb884e8df464428cfee1d20","name":"agent-bober","dist-tags":{"latest":"0.19.0"},"versions":{"0.1.0":{"name":"agent-bober","version":"0.1.0","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.1.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/bober4ik/agent-bober#readme","bugs":{"url":"https://github.com/bober4ik/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"8a7a7d7605d093055bfe75da91c182ce3622700a","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.1.0.tgz","fileCount":212,"integrity":"sha512-kxwXn3lewONzmQwlFawhjMRjUM8bYrbNo59voSmCyL21hC15eNeZKa4ocyHI2Xy5wRPPI6Yjx62TkjF38OYMpA==","signatures":[{"sig":"MEQCIHgBIYQSrjWIggiLsonXf4JoAkIge2auEt6EPGC25EVUAiBkNLp2PWxld6zS4MDrQrZuTCzyr7cud3TsZKNpzyPXHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":820764},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2f1f6adb626393d2de4c65bb3cda0bc6be26fba9","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/bober4ik/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.1.0_1774536548768_0.17331997934431986","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"agent-bober","version":"0.2.0","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.2.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"3d469bae1f5508a480c2a0adec4483e57f1215ac","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.2.0.tgz","fileCount":212,"integrity":"sha512-9BKDqgMDV2FVo3SfJJAdNeIOGYRopIg4pYDco2TmY7gRfJdHosLRMHtC5qLcKtOQTxqqRM+CA0wW7+mQAwrDGA==","signatures":[{"sig":"MEYCIQDFBFFzVs4kFfO/VD8o9FL20YHYmhcwxgO9i5MdSOGtbwIhAKlunliHk0/nuImbkFcnPic9io2g8+7ahnMABtmttscx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":820760},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b502a287bb30ef8ca979d294a924dbeda3673181","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.2.0_1774537844283_0.5842517794374666","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"agent-bober","version":"0.2.1","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.2.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"7a77a84bd9acaf3191bbe128a46f371d4288b8af","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.2.1.tgz","fileCount":212,"integrity":"sha512-ckgtczYxns9I17g3kT1g4mIQrlBHy/nm2e7s09JdrcG4lDDFQ5GV2O70brDfUQn0m0mw0RbNPSjB7AQ2KtzioA==","signatures":[{"sig":"MEQCIBrngbR4zsXIe48bwWunYHoACPsWFlbVXqdFfOM0f4kjAiB1AOw3PQhrFUBxycKNKCnJv5TPvV76CzdAj8Aq+rwuog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":821835},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8c3b71a66dfa2def425934a919c8bd86a80c0311","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.2.1_1774540130531_0.5811635430412805","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"agent-bober","version":"0.2.3","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.2.3","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"d2fe7e768a3f6a1ce17afce869ca60d023f15b71","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.2.3.tgz","fileCount":212,"integrity":"sha512-FrgREW1orpSPLc09Ya7iZEfgckV4oB8QLCbKqWBaS6XUa9hfOZRjZnHVvyXh6mVL4hDQJ1JnvqPrCORdFH9YWA==","signatures":[{"sig":"MEUCIGwxReSVefY5wB0nUVhDu2Z7s/DF5A6Q98BddorqWFEnAiEA+UrkbRxoI7lKzEgxUAJqTPG5f+Gq4uv1xgL7hkvgPoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":822930},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4919cb251e5e4c8531bcc3d1976a7e65f733ec61","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.2.3_1774541211847_0.9924915189577539","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"agent-bober","version":"0.3.0","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.3.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"7f0c3116ad70ffa5eb47932dfb6fb557c8600b54","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.3.0.tgz","fileCount":212,"integrity":"sha512-iOrnrnV3eKeFkJdDJpAwYMmUIu1K6XKpifnhU9uH96hxULgmrej0SEl/EhmxJ7Erc7Mn+i1Itqm96esYDYqDJg==","signatures":[{"sig":"MEUCIBcgJ5af090ye7EXORHIL/vhKTEGrpUr5mlHNbKUUsEOAiEAoa7AX/ONm/L4vvy2XnxxSrdi5nEI7mgSNtzh8AK8Z+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":829110},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ba24e7aa7e9b67775bdb1cdf705ad6b84ea188f0","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.3.0_1774542012480_0.9586113331695663","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"agent-bober","version":"0.4.1","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"bober4ik"},"license":"MIT","_id":"agent-bober@0.4.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"28f3d1c288edc197bd3751a811e5c79d3903aa73","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.4.1.tgz","fileCount":215,"integrity":"sha512-sQHkeNjMy2+Kq7LZpvei83WboEGDvt8kgmzwG0Q+NZFm3lklEDqq/gF8yqWhp+GAcso/LIBLsoar8PIBkjAGqw==","signatures":[{"sig":"MEUCIDsk2TIe5H5BBUBY1QUw0MxOGuw1mXqhCh67p/WiZzTyAiEAhQQkYQynJh2qfq9Khq299ORpLdhOBFjLPCBZILzRzPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":848488},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"284906650f8380a9f237b2b281ab0990aa60bb7b","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.4.1_1774545235667_0.19223237202354748","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"agent-bober","version":"0.4.2","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.4.2","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"dc684ea477b5a19029a6024cef8cdc2ac61dafa2","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.4.2.tgz","fileCount":215,"integrity":"sha512-Yj7jtmKabbQLoFMGu5PbwdU9eNPKdk3obBU9FuNxwlMcAsF9IRWDb/AWaesWjXeCWBTmwvAkp8+NPGn1QEJHcw==","signatures":[{"sig":"MEUCIHILHt333aw0slEYTCcpv9kiIIC+bPpTRwiNa4Va7nMdAiEA9n040jyC56U8XaoHPsSrvGq96qB2qPDVYaNgWFfuxm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":848705},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"10ca4ef99c391b1647507b4bd80459d18a97bcb8","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.4.2_1774545807300_0.5128134014636068","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"agent-bober","version":"0.4.3","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.4.3","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"0a0a6fcb331fd1fb2ddaba0437f30783dabc1ae8","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.4.3.tgz","fileCount":215,"integrity":"sha512-b2Ue0heNhAuTTuOdt4d/HdBd+pFOx5nnAx/75Rbr4h0ifUQrbkeH+6LE3FykYiQZoTRWnYFwgTY2hEXgMA6mjg==","signatures":[{"sig":"MEYCIQCjy0FTlOkr8DWimgY0b3qDDkTq1opRihw28jCwGPGh/QIhAPajXc6o2+pl2axf5JslRYb7ASNC67ayFZKgFlXOeBUZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":850152},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"83873ab749c49cdea65c1566eb4cbde6b9e4d0cc","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.4.3_1774551678954_0.4589531714164041","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"agent-bober","version":"0.5.0","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.5.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"666a4dfe53676553e9c381e35669868717c2a216","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.5.0.tgz","fileCount":217,"integrity":"sha512-lQ4dP9PXwPVSFdufISxqWmC8vjlMnbiOrTIwYP9HMpY3hv5uGQNrGujX2YPNs26vldWY5QyamJQXGvAlAzKSYA==","signatures":[{"sig":"MEUCIQCI4R+5WwA5OsOQNcGT7AsCWcaBTIPX5Mobzf3b4XEsXwIgCrM3yOnB2IhcbRr+1MI0tYeA5bUevqIq+lCAfKnoh1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":915769},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"46ae15dfc1dd0074972082387bbcad4361282379","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.5.0_1774556300993_0.9549578794318017","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"agent-bober","version":"0.5.1","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.5.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"7a4f698783a4d5c4e49b6becd7e24e652b7eea74","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.5.1.tgz","fileCount":217,"integrity":"sha512-JEf1Vjz965QJMgzWeziMPUuWOT+nfSI4heWlluoTBjoS+1xKMQm/+3Mqe8WaGJ0eUp+GzRt0jntDNzA2KuD9Sw==","signatures":[{"sig":"MEUCIDZeK2d+mj/xo5E+pVv1aAizLlXjcmbJpIEFS/sCJ57OAiEAp3jiFaRSPoIDiWcrNlLYW6K7rGWbCJzwB3r41MZn2Og=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":929013},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2ecd09e2424f638f52ca1480a774abffa169627c","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.5.1_1774558932104_0.6968301276776336","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"agent-bober","version":"0.5.3","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.5.3","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"dd621709f755f71f5e761c1e5ccb16f29e0b5441","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.5.3.tgz","fileCount":217,"integrity":"sha512-L2Qm+CzmmyPAmQZm7yJALd/NDyqpwzvzlVYEBVH+uGDiv//JOaLFv7NI+Y+I0mNDnT+RF5XSnHdU6n5BTuE8DQ==","signatures":[{"sig":"MEQCIDFcFpWoGIF5/6gQme/oJ2I7YpDi7dxxhvfA2DkbDHIGAiBszbrijgdqpSV9RyXEZG9f5SKFgTzrEs/xpcQ5dOqWyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":929771},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f9199d7561a2aab278450ee797c2c1ba65d28ea2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.5.3_1774563107285_0.731818178400184","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"agent-bober","version":"0.6.0","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.6.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"76fb69caab628fbc33cb47b530734484a1dd367b","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.6.0.tgz","fileCount":241,"integrity":"sha512-pbZe12xXXgOeWcUyQBHPgO87fFwBvKSu/6Yn/0TVxcVeNQipWjb//GIkO2n8JXMlrzYkrPyYIsWZQf6cPTeZLQ==","signatures":[{"sig":"MEUCIQCh8fOiqLSyYOgtSC26KodzwU/RR6YuvjMFZcgDWjAxwAIgG/IPpJAPww+Bew3d8Sxj0fsfFQgYkEk0y9H3mr/bdZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1019630},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"68d4b473de7500ab80ed7fec9a95f0363d7e5d13","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.6.0_1774576074482_0.5734517223676616","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"agent-bober","version":"0.6.1","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.6.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"851eac762bbc14d353b4508ac0a251d497bca2d6","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.6.1.tgz","fileCount":241,"integrity":"sha512-nn8t+4IyNYEw2x746AfUfZxPUkmh+HeIYHYRI12vu0TpoOLpxemfJGADPCJsi0tf2aa2Ht2u6+Yyj+dNzndsvQ==","signatures":[{"sig":"MEUCIQDjEutrwLjrkrHm9Lq95oEGLD88aRIj+qPAL6V0PyQIPQIgFKfG1lpHyLBCxVzkzLhmZATuaB0hyKMGKQYSQOzBvpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020204},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7ed86ebb62a4e6e35ba52d675b97fc0da32bbcae","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.6.1_1774582604460_0.9413543345931166","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"agent-bober","version":"0.6.2","keywords":["claude","agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.6.2","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"f8aa1174e36a9ac678e60d9624f6f18f430b33cd","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.6.2.tgz","fileCount":241,"integrity":"sha512-n+k/8Z6u4NIcHOsDAY7ymC79Zo1OXImkCmYzKtAmHCwsx96J1KbIuhDzsc1gjmodMA7j+VfBP2SfV76DYIzftA==","signatures":[{"sig":"MEQCIGYw7/hciiN/h/XBuCv1NsSon2TyUj3L16UrNu3Ov6RUAiAPsuAWE/FV2cVQv/to81onkuml8L2oKiYgO44D69jV6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020575},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"86050c8c22c7b1ee98e53f6d2e5f9c2fef36c72c","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.6.2_1774595931244_0.36882793497501987","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"agent-bober","version":"0.7.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.7.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://github.com/BOBER3r/agent-bober#readme","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"96a5cade79898919e8b99a4eb1ac5d54800a435d","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.7.0.tgz","fileCount":329,"integrity":"sha512-E3YcvkffWkq7ri6osp5V+5IOIkDHLlMLVp6fXi+NIDeJ9mYo3ci+6S7il+eEUGdQ2Vl2h6pQurnX/fTtDfxOKA==","signatures":[{"sig":"MEYCIQCb8cmJrZbYnL852ZCgvwV2EAVsWDSDDypMkLyOUS6sqQIhAKwRCr0ZjL8HR+DHu/CMT9dh2E3X0cnPRTdB78sLeY9X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1224047},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d56ee012e609683c27d89ed1c94eafd4c60bd528","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.7.0_1774737010643_0.9650524971121841","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"agent-bober","version":"0.8.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.8.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"4bdee8496bc202af5a592ce55aa21e3cef5466a3","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.8.0.tgz","fileCount":373,"integrity":"sha512-itp+NxcLPikmNm5l7hN7tMoGVnUITivF+Cxapl8A3IdIfda9ierYgJO4q++c7p2KeFO/HvxY9263TG38ugRYig==","signatures":[{"sig":"MEUCIH3yu0NKENyXUu7+2qpAKkIOHU/JIwe5Zf500fFrr3COAiEArGlbKtbV8C6OqMaxRiOJGgUN9RqeGqQKVkKJyjm+Q0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1381969},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"02d05207cfb67e678978e17a81294daa109b88f5","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.8.0_1774793288019_0.20046354083654583","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"agent-bober","version":"0.8.1","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.8.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"c5da2069e324707b032a626349271df604a34dda","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.8.1.tgz","fileCount":373,"integrity":"sha512-QgH/0qOvzUZDmc1bVziNHfwai33bmjHgAxBSvfiTznnAqvlRcucYRVoysudAgOr2UB3/cnlSIjztzz9so2v2Rw==","signatures":[{"sig":"MEYCIQD7DdHbJhA34zX8/MTzUpMq0lptJgAJEtHUlgzaGLMxfAIhAPbVMsyXDlUOaiRZJvcH/9NeBoBLgPyXf1gmiKfqxMvP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1383234},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"613bce285d4a76be5fa679f3445e1a6a66dc00d7","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.8.1_1774806384263_0.242374820925098","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"agent-bober","version":"0.9.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.9.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"37bdba5c9a8d9049d830b730e2f023d797ef9cde","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.9.0.tgz","fileCount":390,"integrity":"sha512-LWb+IoUQokm/J+5U9oO/jfqd69mzVQtJiLTIb2Mh9l6/3uaKBPfGNN2y1QZuS274dglOPMweNLtTmKHa1z7Opg==","signatures":[{"sig":"MEUCICbEdkrnpgUTmXTEmZWsyTZQ9Dz4LyL5ENuD3cIU3VeFAiEAnnpp5OY1kImixwBaAbRZIXaFKWJtqeYlczlUycU1O58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1450850},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1f5e2bf3c6039de2de88978c84d3a931e3fc2937","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.9.0_1774942789237_0.12801468384332848","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"agent-bober","version":"0.10.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.10.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"413fc0210cf9dfdde69c6937b67bc2e51991ec11","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.10.0.tgz","fileCount":401,"integrity":"sha512-2qAxs2VB+bd4S2tIs0cHK1Pa0rmzeVHUpw5Ll3ZevN4gkRD4ExitY+DTC4w4twDaJt8EKiswUC2UaFJjl0w/WA==","signatures":[{"sig":"MEUCIQC90shttOVSjZnsKz1TDViHJDdbGk9VTn5lAWrkU7fLEQIgJnUIIcjSQ7PMAeOcUWll0DM6dYooocOwhXgMB5ohUho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1517082},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"44fe81245346b310f46b289275da5834549b0519","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.10.0_1774969011190_0.0009394552603141371","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"agent-bober","version":"0.10.1","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.10.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"ca9d5096c8706a7675494e9cc72e41c5d41a4407","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.10.1.tgz","fileCount":429,"integrity":"sha512-xEnkstRRh7LKq1q99hzpbyHw2Ew8Jq5RPkdQQjZV4a9gsWGTILsQxaecUS1HzSalTyXJ3PMmU8H3y+XT+kQBDg==","signatures":[{"sig":"MEQCIHvNLs3Vlg9o7T8f9vKDn+7qhL6KeHpmYRDhnt6gw2OZAiBqKwysBmpBwrhAbnYBjI2YxDsFCgcm4NIhhssdLseJIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1562187},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"31802d71d527344380aa55cd5d3234635f012d00","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.10.1_1774970786641_0.0059361902225512075","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"agent-bober","version":"0.10.2","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.10.2","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"c062a467bbb8575be7e454bc0181bebcf0226a9d","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.10.2.tgz","fileCount":429,"integrity":"sha512-om9JVrI2nyh9dyHclStuCGI/XUysWkJGDTZ627se/dUoEzXhyYfjOpGy2UbujjRUFdWrM6isyqLMuWBkRhJItw==","signatures":[{"sig":"MEUCIEJjsttC/NuY15haXGkhPREM8Vj9XpgF0CBbTrNK6ZFsAiEAozesaRTmhOIZeF3WjVIGnOhk9WJ0hirpfs50BgiobXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1562219},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"033d84fbf4294ab19c1a0eca9b173ee8d1b87620","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.10.2_1774971453218_0.7192271286668837","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"agent-bober","version":"0.11.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"488d072853324c970268073702e4bf68ba86529e","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.0.tgz","fileCount":438,"integrity":"sha512-x0ROmjPLC8UdnJeuMVdjnonVQ4ARDphNDHIA8FzZaO+TBV5iwWMSBPHyIX5HrtBw4PgjM84Y6JiWVQpPTsfw1g==","signatures":[{"sig":"MEQCIDbqEJKOP0v7K3znb+PDEoCUPtwyXEYXYAgtDEGBrSOXAiByizt6/97LZ381vVvd7Xwxssp0dJifKrn28t01ZbMs8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1604582},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"033d84fbf4294ab19c1a0eca9b173ee8d1b87620","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Generator-Evaluator multi-agent harness for building applications autonomously with any LLM. Supports Claude, GPT, Gemini, Ollama. Includes MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.0_1775047580233_0.9667057102633481","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"agent-bober","version":"0.11.1","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"62c18ebaa4e81d50765cd439e410ca05dbe81a59","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.1.tgz","fileCount":438,"integrity":"sha512-bbaR35j0Hh8gcMb1Bu6KoyTpHdhcftx/SLeUF4PWFXcmrDRBEUhYE7y4sMNXPgko/iNsBI1BjgY1JkwFiDGd3A==","signatures":[{"sig":"MEYCIQDWYmAuKI23ST2El0PieyFGmSjcxu3LlZ8TNRdCIPxgoQIhAPZ0AeXo/6mn+pR5RYrHD4nb0OLNyomOoYMsA8+tvFSW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1621538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9c78db7a0b6f9d7af3d78add02b655446e4de136","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.1_1775130779899_0.797440384357454","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"agent-bober","version":"0.11.3","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.3","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"cd8ea2c62caa05e3e66027270a24564f4f4d512a","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.3.tgz","fileCount":438,"integrity":"sha512-704BuJzty8XgYbxO2dhAo0ngW7uJB9p8x4GvSOJqrmSmynuEC9zMS1u1hZYFZ10kNt3H0Q5aGsft8WG4jN8OzQ==","signatures":[{"sig":"MEUCIQCKR5vOxLB/sxN4KHM8dwaJ4UG3S85DeKaPx6v03elVUwIgIZXSh3h3/SB2ZKrZig1tQq9/jr9NIqMXMg9l/eBlMhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1621538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"40dd76f6dffdbc9230683bfb58a133e17bcc295b","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.3_1775135733919_0.12856377790310303","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"agent-bober","version":"0.11.4","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.4","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"23ea24aaff4fee15a71066feeee1dd318295dfbe","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.4.tgz","fileCount":438,"integrity":"sha512-61hSgv5HmLHSIPV6GL1oy7oRMY5AofZqWHQSDx7cB8qV6iMsQr4CSq1yugo5rJIEisqbEw/OBdyfDAj5WPW/0g==","signatures":[{"sig":"MEYCIQCX3fBXC3YuTMNuDfiU13Et5Bje9/J1G1smRwPTaMSDrAIhAOTIXpbP2QODPGdvCpjPeRIQCjzbl/5HPg8TCwD0aZN8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1621538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3286783bc5146d9642db708d09ccd04befb2e62e","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.4_1775136367788_0.09102847952891846","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"agent-bober","version":"0.11.5","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.5","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"9604786349e0de81c26e2045b895ae05f1afb0e6","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.5.tgz","fileCount":438,"integrity":"sha512-vR/BXYJjwdaMCHZfGILiCnSbw55cCblaJvjKO9Aq5GaleszSaiT/PCHBtMW3gYVlwkFBz4yUJFzD8nH8dcMqrg==","signatures":[{"sig":"MEUCIQCbvIOaJ6Hq6vJgsphObcnbcSj7S9s/CDP8kIAA3go6TwIgaLV7mbOSq63f1VgNOIQmsImC4L2bn+jpdva1kDu4zLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1625134},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"63b33127fe3d35a22c5da33734098fe8f837a38d","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.5_1775138632343_0.5872703677925117","host":"s3://npm-registry-packages-npm-production"}},"0.11.6":{"name":"agent-bober","version":"0.11.6","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.11.6","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"f1bfb0a78478116d03cd36492f57cc7c57207d1f","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.11.6.tgz","fileCount":438,"integrity":"sha512-fx4ae9HXMq8tivf4zJoO4bUg7hNXLr4CumVGeIvzMvSnjSD6ly5PcEbF8QwNcufwzgPQ72jJlvCWepe8VmnJxw==","signatures":[{"sig":"MEQCIHJUSu5W3AL2s5JyqD0h95ZN3CIYR3cSj60CwftOFo8QAiApNDF40h/7rQ6CagAdGKqI2UPr3B/pQ3cTvkRm4QhZSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1625166},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"83dc48c3a05a1bd0057da991865943c9ca01e269","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.11.6_1775139869390_0.31593400416326967","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"agent-bober","version":"0.12.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.12.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"c773eebebaf927440c3b18684a76af03e7102a90","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.12.0.tgz","fileCount":441,"integrity":"sha512-dhlauJIQsPn/3wlrD7wOU5BFfo9Tuw8KqOeioDDiUFkPhTFrJdaD5tznFm6bZzuNxz/d2GA/0VFxX+fYiadciQ==","signatures":[{"sig":"MEUCIEGHR74yUC9uiyu3tiKrGehu1ZYuDgdqfN1Edpzh0GbzAiEAum86ReEFDUXczjkT1/gXK5QZkKxshLEGjFamO6U+GCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1749650},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"931154af72da3bfc7da7dc3059b212b77d7a7e0a","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.39.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.12.0_1776449638381_0.16093410719769818","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"agent-bober","version":"0.15.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.15.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"0f28ab12475eea12a4c3c825f7b15ecc7aead941","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.15.0.tgz","fileCount":833,"integrity":"sha512-o3XqXS7QWBIw4fwxyJJtvEvRiMOd9knMasQJ320Hsydvue0DYkOEyaOcpF8A3OQZ5sGSOuECWYwUdKZo6kgfVA==","signatures":[{"sig":"MEUCIQC5Q71Uebk/A1rR5rigXJbnd2qVdmKmNcnDE3w9FEARJQIgLK1QHCnl3aIjAD9UGNw+3dxJGEdYNIEuabDNKbJ21qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3310507},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"95f9965aba97b940602354e00b6935d60f2fb880","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator pipeline. Supports Claude, GPT, Gemini, Ollama. MCP server for Cursor/Windsurf.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","semver":"^7.8.1","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.100.1","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.19.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","markdownlint-cli":"^0.48.0","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":">=4.0.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.15.0_1780081225774_0.3303919025403723","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"agent-bober","version":"0.17.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","deepseek","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.17.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"6422f5f9ffc5bd691d4a68a3069028afc4611e5c","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.17.0.tgz","fileCount":1013,"integrity":"sha512-DnljQmfwNDpRQ2+P+RB4XdfwyKL/AMb44wZXTmg5TU0vUcBuY2We1N6rSQe3dGq1rBBQqA1TEXESwRUaUCxCEQ==","signatures":[{"sig":"MEYCIQDDJ/5mlIARXjxMxIn9tNpRm80Cf+zlmAJwiPsY3qvxkgIhAIHBAouK3W3/+/89MtD5P4MXf7DuOyxRV5S4WSu3zPL4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3899072},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6a7d16a5fd13510315f793b8296359a29473ca9f","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","update-all":"node scripts/update-all.mjs","prepublishOnly":"npm run build","update-all:check":"node scripts/update-all.mjs --check"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator, Documenter pipeline. Supports Claude, GPT, Gemini, DeepSeek, Ollama, and Claude Code subscriptions. MCP server for Cursor/Windsurf","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","semver":"^7.8.1","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.100.1","zod-to-json-schema":"^3.25.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","markdownlint-cli":"^0.48.0","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":"^6.42.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.17.0_1781378241464_0.6389868191771102","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"agent-bober","version":"0.17.1","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","deepseek","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.17.1","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"fbb92aa91aa80fcd27f5305924511887daccb744","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.17.1.tgz","fileCount":1017,"integrity":"sha512-Rlmq/zEg6Gk6K/x13KuuanI3YL/Ih7xdA2j9dX/ez8e4giyGYw4n08+KuGWouaw7iW9tcnfuwpBIBnq7opwkBg==","signatures":[{"sig":"MEUCIQC6PM0KdOXtSZp3vGBecvUpBGe86zFUyp2Y8i0by1K8swIgRDVxScdHK/IE24SzMh8DY6sPd3sysP2KFGThA4LUqwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3909266},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a0f7d4cbb1fa10831bdfa5de5a327b8727ff5ce6","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","update-all":"node scripts/update-all.mjs","prepublishOnly":"npm run build","update-all:check":"node scripts/update-all.mjs --check"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator, Documenter pipeline. Supports Claude, GPT, Gemini, DeepSeek, Ollama, and Claude Code subscriptions. MCP server for Cursor/Windsurf","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","semver":"^7.8.1","prompts":"^2.4.2","commander":"^13.1.0","@anthropic-ai/sdk":"^0.100.1","zod-to-json-schema":"^3.25.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","markdownlint-cli":"^0.48.0","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":"^6.42.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.17.1_1781430053971_0.12859557414300604","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"agent-bober","version":"0.18.0","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","deepseek","ollama","plugin"],"author":{"name":"BOBER3r"},"license":"MIT","_id":"agent-bober@0.18.0","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"homepage":"https://agentbober.com","bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"bin":{"agent-bober":"dist/cli/index.js"},"dist":{"shasum":"98be8f33627337db30e4dd8803ecdb5ed70a6004","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.18.0.tgz","fileCount":1285,"integrity":"sha512-MuwLji38vKbV17Kt4M6sKH7AUoUflQ0Wjh7oVO4E9+olSMXb95Q5n9AV6L9uYKWhj7YZ5+bohpYH/KlmyJw7mw==","signatures":[{"sig":"MEUCIQDZU3eDur/Bnl7zNsB7oPqgQohMgr6tkG4iZbw8LXq1zgIgNRcTWphMHV1BpZFidoTxagnuzGYsEkLZ7K0TkW7sZ5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4727088},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"879136237cfaf41f00abf12efec1aa809f7db4fb","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","update-all":"node scripts/update-all.mjs","prepublishOnly":"npm run build","update-all:check":"node scripts/update-all.mjs --check"},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"repository":{"url":"git+https://github.com/BOBER3r/agent-bober.git","type":"git"},"_npmVersion":"10.9.2","description":"Multi-agent harness for building applications autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator, Documenter pipeline. Supports Claude, GPT, Gemini, DeepSeek, Ollama, and Claude Code subscriptions. MCP server for Cursor/Windsurf","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^8.1.1","zod":"^3.24.2","glob":"^11.0.1","chalk":"^5.4.1","execa":"^9.5.2","semver":"^7.8.1","prompts":"^2.4.2","commander":"^13.1.0","better-sqlite3":"^11.9.1","@anthropic-ai/sdk":"^0.100.1","zod-to-json-schema":"^3.25.2","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^3.0.5","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.13.0","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","markdownlint-cli":"^0.48.0","@types/better-sqlite3":"^7.6.13","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"peerDependencies":{"openai":"^6.42.0","@google/generative-ai":">=0.21.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-bober_0.18.0_1782185751340_0.4119710788179598","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"agent-bober","version":"0.19.0","description":"Multi-agent, multi-provider harness for building software autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator, Documenter pipeline with a fail-closed security-audit gate, a fleet orchestrator for bulk multi-agent runs, and a cros","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"agent-bober":"dist/cli/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","lint":"eslint src/","typecheck":"tsc --noEmit","typecheck:tests":"tsc --noEmit -p tsconfig.test.json","test":"vitest","update-all":"node scripts/update-all.mjs","update-all:check":"node scripts/update-all.mjs --check","prepublishOnly":"npm run build"},"keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","deepseek","ollama","plugin","security-audit","fleet","incident-response","knowledge-platform"],"author":{"name":"BOBER3r"},"license":"MIT","homepage":"https://agentbober.com","repository":{"type":"git","url":"git+https://github.com/BOBER3r/agent-bober.git"},"bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@anthropic-ai/sdk":"^0.100.1","@modelcontextprotocol/sdk":"^1.28.0","better-sqlite3":"^11.9.1","chalk":"^5.4.1","commander":"^13.1.0","execa":"^9.5.2","glob":"^11.0.1","grammy":"^1.44.0","ora":"^8.1.1","prompts":"^2.4.2","sax":"^1.6.0","semver":"^7.8.1","zod":"^3.24.2","zod-to-json-schema":"^3.25.2"},"peerDependencies":{"@google/generative-ai":">=0.21.0","openai":"^6.42.0","damcrawler":">=0.3.0","playwright":">=1.40.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@google/generative-ai":{"optional":true},"damcrawler":{"optional":true},"playwright":{"optional":true}},"devDependencies":{"@eslint/js":"^10.0.1","@types/better-sqlite3":"^7.6.13","@types/node":"^22.13.0","@types/prompts":"^2.4.9","@types/sax":"^1.2.7","@types/semver":"^7.7.1","@typescript-eslint/eslint-plugin":"^8.22.0","@typescript-eslint/parser":"^8.22.0","eslint":"^10.0.0","markdownlint-cli":"^0.48.0","typescript":"^5.7.3","vitest":"^3.0.5"},"_id":"agent-bober@0.19.0","gitHead":"66ea2730e74078e9ec5dcf55fb7d5c806841814d","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-dFXclOAO9JWLC7WgazHC8FQ94sXxm48D9FWEMFx3N6xV1Ho6pTcvyTge+Jc/SgOw3LxJ8G26pXTe4FF13BEVaQ==","shasum":"0bd861ed4345d9d7eb1fc4f8aabb46c46efaa250","tarball":"https://registry.npmjs.org/agent-bober/-/agent-bober-0.19.0.tgz","fileCount":1953,"unpackedSize":7195216,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDZIBGpZ+xsM2gatE1Q2YwzYyeD1IYfirOVltKGkMGWjAiEA8sR4HMYbueacMXIhcFaCS58b5TPfy2GQk3NvVB6+d/Q="}]},"_npmUser":{"name":"bober3r","email":"BOBER3r@proton.me"},"directories":{},"maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-bober_0.19.0_1785095163489_0.7820516488396543"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T14:49:08.768Z","modified":"2026-07-26T19:46:03.885Z","0.1.0":"2026-03-26T14:49:08.971Z","0.2.0":"2026-03-26T15:10:44.507Z","0.2.1":"2026-03-26T15:48:50.741Z","0.2.3":"2026-03-26T16:06:52.045Z","0.3.0":"2026-03-26T16:20:12.688Z","0.4.1":"2026-03-26T17:13:55.888Z","0.4.2":"2026-03-26T17:23:27.662Z","0.4.3":"2026-03-26T19:01:19.228Z","0.5.0":"2026-03-26T20:18:21.302Z","0.5.1":"2026-03-26T21:02:12.279Z","0.5.3":"2026-03-26T22:11:47.524Z","0.6.0":"2026-03-27T01:47:54.663Z","0.6.1":"2026-03-27T03:36:44.705Z","0.6.2":"2026-03-27T07:18:51.466Z","0.7.0":"2026-03-28T22:30:10.880Z","0.8.0":"2026-03-29T14:08:08.242Z","0.8.1":"2026-03-29T17:46:24.459Z","0.9.0":"2026-03-31T07:39:49.433Z","0.10.0":"2026-03-31T14:56:51.432Z","0.10.1":"2026-03-31T15:26:26.850Z","0.10.2":"2026-03-31T15:37:33.431Z","0.11.0":"2026-04-01T12:46:20.393Z","0.11.1":"2026-04-02T11:53:00.068Z","0.11.3":"2026-04-02T13:15:34.133Z","0.11.4":"2026-04-02T13:26:07.978Z","0.11.5":"2026-04-02T14:03:52.563Z","0.11.6":"2026-04-02T14:24:29.590Z","0.12.0":"2026-04-17T18:13:58.550Z","0.15.0":"2026-05-29T19:00:26.004Z","0.17.0":"2026-06-13T19:17:21.645Z","0.17.1":"2026-06-14T09:40:54.254Z","0.18.0":"2026-06-23T03:35:51.612Z","0.19.0":"2026-07-26T19:46:03.702Z"},"bugs":{"url":"https://github.com/BOBER3r/agent-bober/issues"},"author":{"name":"BOBER3r"},"license":"MIT","homepage":"https://agentbober.com","keywords":["agent","harness","multi-agent","autonomous","generator-evaluator","claude-code","cursor","mcp","claude","openai","gemini","deepseek","ollama","plugin","security-audit","fleet","incident-response","knowledge-platform"],"repository":{"type":"git","url":"git+https://github.com/BOBER3r/agent-bober.git"},"description":"Multi-agent, multi-provider harness for building software autonomously with any LLM. Researcher, Planner, Curator, Generator, Evaluator, Documenter pipeline with a fail-closed security-audit gate, a fleet orchestrator for bulk multi-agent runs, and a cros","maintainers":[{"name":"bober3r","email":"BOBER3r@proton.me"}],"readme":"# agent-bober\n\n[![npm version](https://img.shields.io/npm/v/agent-bober.svg)](https://www.npmjs.com/package/agent-bober)\n[![license](https://img.shields.io/npm/l/agent-bober.svg)](https://github.com/BOBER3r/agent-bober/blob/main/LICENSE)\n\n**Multi-agent harness for building applications autonomously with any LLM.**\n\n[agentbober.com](https://agentbober.com) | [npm](https://www.npmjs.com/package/agent-bober) | [GitHub](https://github.com/BOBER3r/agent-bober)\n\nInspired by Anthropic's engineering publication [**\"Harness design for long-running application development\"**](https://www.anthropic.com/engineering/harness-design-long-running-apps), agent-bober implements a multi-agent pipeline as a reusable, installable workflow. It orchestrates AI agents in a structured loop: a **Researcher** analyzes your codebase, a **Planner** decomposes your idea into sprint contracts, a **Curator** pre-analyzes code patterns and utilities for each sprint, a **Generator** writes the code with curated context, and an **Evaluator** independently verifies each sprint against its contract before moving on. The result is autonomous, high-quality software development with built-in guardrails, context resets, and brutally honest evaluation.\n\nWorks with **Claude, GPT, Gemini, Ollama**, and any OpenAI-compatible endpoint. Mix and match providers per agent role.\n\n```\nYou describe a feature\n        |\n        v\n  +------------+\n  | Researcher |   Two-phase codebase analysis: generates questions,\n  +------------+   then explores with NO feature knowledge. Facts only.\n        |\n        v\n  +------------+   (optional — set pipeline.architectPhase: true)\n  |  Architect |   5-checkpoint solution design: components, data flow,\n  +------------+   ADRs, and architecture doc. Output goes to planner only.\n        |\n        v\n  +-----------+\n  |  Planner  |   Mandatory questions, design discussion doc,\n  +-----------+   structure outline, then sprint contracts.\n        |\n        v\n  +-----------+\n  |  Curator  |   Reads codebase FOR the sprint: extracts patterns,\n  +-----------+   utils, affected files, test templates. Saves briefing.\n        |\n        v\n  +-----------+     +-----------+\n  | Generator | --> | Evaluator |   Writes code, then verifies it:\n  +-----------+     +-----------+   typecheck, lint, build, tests.\n        ^               |\n        |   (rework)    |\n        +---------------+\n              |\n              v         Repeats per sprint until all\n        [Next Sprint]   contracts are satisfied.\n```\n\n---\n\n## Operating Modes\n\nagent-bober operates in four modes — pick the one that matches your situation. See\n[VISION.md](./VISION.md) for full documentation, worked examples, and configuration details.\n\n| Mode | When to Use | Entry Point |\n|------|-------------|-------------|\n| **Autopilot** | Feature spikes, greenfield work, no production risk | `agent-bober run` |\n| **Careful-Flow** | Production behavior changes, want checkpoint approval | `agent-bober run --mode careful` |\n| **Diagnose** | Production system is broken right now | `agent-bober incident start` |\n| **Postmortem** | After resolving an incident, generate a retrospective | `bober postmortem generate` |\n\n---\n\n## Installation\n\nThere are two ways to run agent-bober, and they are complementary:\n\n- **Claude Code plugin** — the skills (`/bober-run`, `/bober-plan`, …) and subagents, running on your Claude Code subscription. No npm or API key required.\n- **npm package** — the standalone CLI + MCP server (`agent-bober`), which calls LLM providers directly (anthropic / deepseek / claude-code) and powers headless, CI, and programmatic runs.\n\nFor the full feature set, install both.\n\n### Claude Code Plugin\n\nInstall the plugin from its marketplace, then install `bober`:\n\n```text\n/plugin marketplace add BOBER3r/agent-bober\n/plugin install bober@agent-bober\n```\n\nThis installs 24 skills + 11 subagents. Update later with `/plugin update bober`. The plugin runs the Researcher → Planner → Curator → Generator → Evaluator pipeline as Claude Code subagents on your Claude subscription — provider selection (the [Capability Matrix](#capability-matrix)) does **not** apply in this mode.\n\n### npm CLI / MCP Server\n\n```bash\n# Install globally\nnpm install -g agent-bober\n\n# Or use directly with npx\nnpx agent-bober init\n```\n\n**Updating later:** upgrade the package, then refresh each project's installed commands/agents:\n\n```bash\nnpm i -g agent-bober@latest      # upgrade the global CLI/engine\nagent-bober update               # in each project: refresh .claude/ commands + agents (config untouched)\n```\n\n`update` re-emits `.claude/commands/` and `.claude/agents/` from the new package version without touching your `bober.config.json` or `.bober/` state. Claude Code **plugin** users update separately with `/plugin update bober` (the plugin tracks the GitHub repo, not npm).\n\nThis is required to use the DeepSeek / claude-code providers, run bober headlessly or in CI, or expose the MCP server. A few plugin skills (`bober.plan`, `bober.sprint`, `bober.impact`, `bober.onboard`, `bober.graph`) also shell out to the `agent-bober` CLI, so installing it unlocks their full behavior. Graph features additionally require the separate [`tokensave`](#graph-tokensave-integration) binary.\n\nagent-bober works in multiple environments:\n\n- **Claude Code** -- Plugin with 20+ slash commands (`/bober-plan`, `/bober-run`, etc.) — install via the marketplace above\n- **Cursor / Windsurf** -- MCP server with 37 tools in the chat interface\n- **Any MCP-compatible IDE** -- MCP server via stdio transport\n- **Any terminal** -- CLI commands (`npx agent-bober run \"feature\"`)\n\n## Quick Start\n\n### Any Project\n```bash\nnpx agent-bober init\n```\n\nInteractive setup -- pick your AI provider, choose a preset, describe what you want to build.\n\n### With a Preset\n```bash\nnpx agent-bober init nextjs         # Next.js full-stack app\nnpx agent-bober init react-vite     # React + Vite\nnpx agent-bober init solidity       # EVM smart contracts (Hardhat)\nnpx agent-bober init anchor         # Solana programs (Anchor)\nnpx agent-bober init api-node       # Node.js API\nnpx agent-bober init python-api     # Python API (FastAPI)\n```\n\n### Existing Codebase\n```bash\ncd your-existing-project\nnpx agent-bober init brownfield\n```\n\nBrownfield init **auto-discovers your codebase**: scans package.json scripts, CI configs, git history, file naming patterns, import conventions, test setup, and documentation. It auto-generates project principles and configures evaluator strategies with the correct commands -- no manual setup needed.\n\nThen in Claude Code:\n```\n/bober-principles   # Define project standards (optional but recommended)\n/bober-research     # Two-phase codebase research (facts only, no opinions)\n/bober-architect    # Solution architecture design (optional, for complex features)\n/bober-plan         # Describe your feature, get a structured plan\n/bober-sprint       # Execute the next sprint\n/bober-eval         # Evaluate the sprint output\n/bober-run          # Full autonomous pipeline\n```\n\nSpecialized workflows:\n```\n/bober-react        # React web app workflow\n/bober-solidity     # EVM smart contract workflow\n/bober-anchor       # Solana program workflow\n/bober-brownfield   # Existing codebase workflow\n/bober-playwright   # Set up and generate E2E tests\n```\n\n---\n\n## Graph (Tokensave) Integration\n\n> **Optional.** The graph is an opt-in enhancement — agent-bober's core pipeline (Researcher → Planner → Curator → Generator → Evaluator) works fully without it. Enable it only if you want semantic code search, impact analysis, and auto-generated onboarding docs.\n\nagent-bober integrates with [tokensave](https://github.com/aovestdipaperino/tokensave) to build a structural code graph that powers semantic search, impact analysis, and automated onboarding documentation.\n\n**Prerequisite — install the `tokensave` binary.** It is a native Rust binary, **not** an npm package, so `npm install -g agent-bober` does **not** install it. Install it separately:\n\n```bash\n# macOS (Homebrew)\nbrew install aovestdipaperino/tap/tokensave\n# Windows (Scoop)\nscoop bucket add tokensave https://github.com/aovestdipaperino/scoop-bucket && scoop install tokensave\n# Any platform (Cargo / Rust)\ncargo install tokensave\n```\n\nRequired version range: **`>=6.0.0-beta.1 <7.0.0`**. agent-bober verifies this on `agent-bober graph init` and prints the correct install hint if `tokensave` is missing or out of range. If the binary is absent, graph features degrade gracefully and the rest of the pipeline is unaffected.\n\nOnce `tokensave` is installed, enable the graph by adding a `graph` section to `bober.config.json`:\n\n```json\n{\n  \"graph\": {\n    \"enabled\": true,\n    \"languageTier\": \"core\"\n  }\n}\n```\n\nOnce enabled, three new CLI commands and slash commands become available:\n\n```bash\nagent-bober graph init         # Initialise the graph index\nagent-bober graph sync         # Re-index changed files (--force for full re-index)\nagent-bober graph status       # Check graph status (--json for machine-readable)\nagent-bober onboard            # Generate .bober/onboarding/ documentation\nagent-bober impact <symbol>    # Analyse impact radius and test coverage\n```\n\nIn Claude Code, the same workflows are available as slash commands: `/bober-graph`, `/bober-onboard`, `/bober-impact`.\n\nFor architecture details see: [`.bober/architecture/arch-20260524-port-code-review-graph-architecture.md`](.bober/architecture/arch-20260524-port-code-review-graph-architecture.md)\n\n---\n\n## Multi-Provider Support\n\nagent-bober is **provider-agnostic**. Use any LLM provider for any agent role. Mix and match providers freely -- use one for planning, another for generation, a local model for evaluation.\n\n### Supported Providers\n\n| Provider | Shorthands | API Key (env var) |\n|----------|-----------|---------|\n| **Anthropic** (default) | `opus`, `sonnet`, `haiku` | `ANTHROPIC_API_KEY` |\n| **DeepSeek** | `deepseek`, `deepseek-v4-pro`, `deepseek-v4-flash` | `DEEPSEEK_API_KEY` |\n| **OpenAI** | Any OpenAI model ID | `OPENAI_API_KEY` |\n| **Google Gemini** | `gemini-pro`, `gemini-flash` | `GOOGLE_API_KEY` or `GEMINI_API_KEY` |\n| **OpenAI-Compatible** | Any model (Ollama, LM Studio, Groq, custom endpoints) | Optional (none for local servers) |\n\nShorthands resolve to the latest model version automatically. You can also pass any full model ID directly -- it will be sent to the provider as-is.\n\n> **Which API key do I need? (read this first)**\n>\n> **The default is Anthropic, so `ANTHROPIC_API_KEY` on its own means every role calls Claude — nothing else.** Setting `ANTHROPIC_API_KEY` does **not** turn on DeepSeek. Provider selection is **config-driven, not key-driven**: a key is only used if a role is actually pointed at that provider.\n>\n> To use **DeepSeek** you need **three** things together:\n> 1. `npm install openai` — the OpenAI SDK is the OpenAI-compatible client DeepSeek runs through (an optional peer dependency).\n> 2. `export DEEPSEEK_API_KEY=sk-...` — get a key at <https://platform.deepseek.com>. (`ANTHROPIC_API_KEY` is **not** needed if no role uses Anthropic.)\n> 3. Point one or more roles at DeepSeek in `bober.config.json` — see [DeepSeek setup (full example)](#deepseek-setup-full-example) below.\n>\n> DeepSeek is **not** reachable with the `--provider` CLI flag alone (that flag only swaps the provider name; DeepSeek also needs its model + endpoint) — configure it in `bober.config.json`.\n\n### Capability Matrix\n\n> **This matrix applies to the standalone CLI / programmatic provider layer only** (`npx agent-bober run …`), where bober calls each provider's API directly. It does **not** apply to the **Claude Code plugin**: when you run a skill like `/bober-run` inside Claude Code, the roles are spawned as Claude Code subagents on your Claude subscription, so provider selection (including `claude-code`) does not apply. See [Claude Code Plugin](#claude-code-plugin) below.\n\n| Role                   | anthropic (default)  | deepseek (openai-compat) | claude-code (subscription) |\n| ---------------------- | -------------------- | ------------------------ | -------------------------- |\n| planner                | yes                  | yes                      | yes (no tools needed)      |\n| researcher (phase 1/2) | yes                  | yes                      | yes (no tools needed)      |\n| curator                | yes                  | yes (tools)              | no (runs own loop)         |\n| generator              | yes                  | yes (tools)              | no (runs own loop)         |\n| evaluator              | yes                  | yes (tools)              | no (runs own loop)         |\n| code-reviewer          | yes                  | yes (tools)              | no (runs own loop)         |\n| documenter             | yes                  | yes (tools)              | no (runs own loop)         |\n\n**DeepSeek prerequisites:** `npm install openai` (optional peer dep) and set `DEEPSEEK_API_KEY` in\nyour environment. DeepSeek supports all roles including tool-calling roles (curator, generator,\nevaluator, code-reviewer).\n\n**claude-code prerequisites:** An active Claude subscription (Pro/Max/Team) and the `claude` CLI\non PATH. claude-code is **planner and researcher only** — it cannot be used for tool-using roles\nbecause the `claude -p` interface does not support tool-calling. As of the **2026-06-15 ToS update**,\nprogrammatic subscription use is metered (Agent-SDK credit, billed at API rates, no rollover).\nEach `claude -p` call injects approximately **40,000 tokens of system-prompt overhead**.\n\nSee [`docs/providers.md`](docs/providers.md) for copy-paste config snippets for each provider.\n\n### DeepSeek setup (full example)\n\nDeepSeek runs through the built-in OpenAI-compatible adapter pointed at `https://api.deepseek.com`. End-to-end:\n\n**1. Install the OpenAI-compatible client** (one-time):\n\n```bash\nnpm install openai\n```\n\n**2. Export your DeepSeek key** (get one at <https://platform.deepseek.com>):\n\n```bash\nexport DEEPSEEK_API_KEY=sk-...\n```\n\n**3a. Configure roles — shorthand (simplest).** Set only the `model`; the provider (`openai-compat`) and the `https://api.deepseek.com` endpoint are inferred automatically:\n\n```jsonc\n// bober.config.json — DeepSeek for every role\n{\n  \"planner\":    { \"model\": \"deepseek-v4-pro\" },\n  \"researcher\": { \"model\": \"deepseek-v4-flash\" },\n  \"curator\":    { \"model\": \"deepseek-v4-pro\" },\n  \"generator\":  { \"model\": \"deepseek-v4-pro\" },\n  \"evaluator\":  { \"model\": \"deepseek-v4-flash\" }\n}\n```\n\n**3b. Configure roles — explicit (equivalent).** Spell out the provider and endpoint if you prefer — also the form to use for a self-hosted DeepSeek-compatible gateway:\n\n```jsonc\n{\n  \"generator\": {\n    \"provider\": \"openai-compat\",\n    \"model\": \"deepseek-v4-pro\",\n    \"endpoint\": \"https://api.deepseek.com\"\n  }\n}\n```\n\n**4. Run:**\n\n```bash\nagent-bober run \"Build a REST API with auth and CRUD\"\n```\n\n> Use `\"provider\": \"openai-compat\"` (as in 3b), **not** `\"provider\": \"deepseek\"` — `deepseek` is a *model* shorthand, not a provider name, so `\"provider\": \"deepseek\"` is rejected as an unsupported provider.\n\n**Mix providers** — e.g. plan on Claude (highest quality) and generate/evaluate on DeepSeek (cheaper). You then need **both** `ANTHROPIC_API_KEY` and `DEEPSEEK_API_KEY` in your environment:\n\n```jsonc\n{\n  \"planner\":   { \"model\": \"opus\" },\n  \"generator\": { \"model\": \"deepseek-v4-pro\" },\n  \"evaluator\": { \"model\": \"deepseek-v4-flash\" }\n}\n```\n\n### Configuration\n\nSet providers per agent role in `bober.config.json`:\n\n```jsonc\n{\n  \"planner\": {\n    \"provider\": \"anthropic\",\n    \"model\": \"opus\"\n  },\n  \"generator\": {\n    \"provider\": \"openai\",\n    \"model\": \"your-preferred-model\"\n  },\n  \"evaluator\": {\n    \"provider\": \"openai-compat\",\n    \"model\": \"any-local-model\",\n    \"endpoint\": \"http://localhost:11434/v1\"\n  }\n}\n```\n\nThe `ollama/` prefix is a shortcut for local models:\n```jsonc\n{ \"model\": \"ollama/llama3\" }  // resolves to openai-compat at localhost:11434\n```\n\nOverride provider for all roles from the CLI:\n```bash\nnpx agent-bober run \"feature\" --provider openai\n```\n\nProvider SDKs (`openai`, `@google/generative-ai`) are **optional peer dependencies** -- install only what you use. Only `@anthropic-ai/sdk` is required by default.\n\n### Anthropic features (Claude Opus 4.8)\n\n- **Latest model by default.** The `opus` shorthand resolves to **`claude-opus-4-8`** (1M context, adaptive thinking). Pin the previous generation with the `opus-4-7` shorthand.\n- **Prompt caching, on by default.** Multi-turn Anthropic calls reuse a cached system + recent-message prefix (ephemeral `cache_control`, system-and-last-3 strategy), cutting input-token cost. Disable per role with `\"providerConfig\": { \"promptCaching\": false }`.\n- **Effort control.** Set `effort` (`low` | `medium` | `high` | `xhigh` | `max`) to trade latency/cost against depth; when omitted, the API default applies (`high` on Opus 4.8). Other providers ignore it.\n- **Mid-conversation system updates.** Instructions can be revised mid-task without breaking the prompt cache (Anthropic `mid_conv_system` blocks).\n\n---\n\n## MCP Server (Cursor, Windsurf, etc.)\n\nagent-bober includes an MCP (Model Context Protocol) server that exposes **37 tools** across pipeline, run-management, careful-flow approvals, multi-project discovery, incident response, and graph in any MCP-compatible IDE.\n\n### Setup for Cursor\n\nAdd to `.cursor/mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"bober\": {\n      \"command\": \"npx\",\n      \"args\": [\"agent-bober\", \"mcp\"]\n    }\n  }\n}\n```\n\n### Setup for Windsurf\n\nAdd to your Windsurf MCP configuration:\n```json\n{\n  \"mcpServers\": {\n    \"bober\": {\n      \"command\": \"npx\",\n      \"args\": [\"agent-bober\", \"mcp\"]\n    }\n  }\n}\n```\n\n### Available MCP Tools\n\n| Tool | Type | Description |\n|------|------|-------------|\n| `bober_init` | sync | Initialize project config and `.bober/` directory |\n| `bober_plan` | sync | Plan a feature, create sprint contracts |\n| `bober_sprint` | sync | Execute the next sprint (generator + evaluator loop) |\n| `bober_eval` | sync | Evaluate a sprint independently |\n| `bober_architect` | sync | Solution architecture -- 5-checkpoint flow producing docs + ADRs |\n| `bober_research` | sync | Two-phase codebase research -- fact-only analysis |\n| `bober_run` | async | Full autonomous pipeline (returns immediately, poll with status) |\n| `bober_brownfield` | async | Brownfield pipeline for existing codebases |\n| `bober_react` | async | React web application pipeline (Vite or Next.js) |\n| `bober_solidity` | async | EVM smart contract pipeline (Hardhat/Foundry) |\n| `bober_anchor` | async | Solana program pipeline (Anchor) |\n| `bober_playwright` | sync | Set up, run, or check Playwright E2E tests |\n| `bober_status` | poll | Check pipeline progress or read current status |\n| `bober_contracts` | read | List all sprint contracts or read a specific one |\n| `bober_spec` | read | Read the current PlanSpec |\n| `bober_principles` | read/write | Read or set project principles |\n| `bober_config` | read/write | Read or update `bober.config.json` |\n| `bober_list_pending_approvals` · `bober_approve_checkpoint` · `bober_reject_checkpoint` | careful-flow | List / approve / reject checkpoint approvals (careful mode) |\n| `bober_list_active_runs` · `bober_get_run_status` · `bober_abort_run` · `bober_run_in_worktree` | run-mgmt | Manage concurrent and isolated-worktree runs |\n| `bober_subscribe_events` · `bober_unsubscribe_events` | events | Live run event stream |\n| `bober_get_project_state` · `bober_list_projects` · `bober_list_specs` | discovery | Multi-project state + spec discovery |\n| `bober_incident_start` · `bober_incident_status` · `bober_incident_list` · `bober_incident_abort` · `bober_rollback_start` · `bober_postmortem_get` · `bober_playbook_search` · `bober_playbook_list` | incident | Diagnose, roll back, postmortem, and search playbooks |\n\n*(37 tools total — the rows above summarize the additional categories beyond the core pipeline tools.)*\n\n---\n\n## Brownfield Auto-Discovery\n\nWhen you run `agent-bober init brownfield` (or use the `bober_init` MCP tool with mode=brownfield), agent-bober deeply analyzes your existing codebase and automatically:\n\n### What It Scans\n\n| Area | What It Reads | What It Detects |\n|------|---------------|-----------------|\n| **Package scripts** | `package.json` scripts, lockfiles | Build/test/lint/typecheck commands, package manager (npm/yarn/pnpm/bun) |\n| **CI/CD** | `.github/workflows/*.yml`, `.gitlab-ci.yml` | CI check commands, deployment steps |\n| **Git history** | Last 50 commits, branch names | Commit message format (conventional commits, prefixes), branch naming strategy |\n| **Code conventions** | Samples up to 20 source files | File naming (camelCase/kebab-case/PascalCase), import style, export patterns, TypeScript strictness |\n| **Test setup** | Test files, framework configs | Test framework, file naming pattern (*.test.ts vs *.spec.ts), mocking library, coverage config |\n| **Documentation** | README.md, CONTRIBUTING.md, CLAUDE.md, .cursorrules, docs/ | Existing standards and guidelines |\n\n### What It Produces\n\n1. **`.bober/principles.md`** -- Comprehensive project principles synthesized by a single LLM call from the scan data. Each rule includes file path examples from your actual codebase and notes any inconsistencies (e.g., \"Most files use camelCase but `src/utils/parse-config.ts` uses kebab-case\").\n\n2. **`bober.config.json`** -- Evaluator strategies with real, PM-qualified command strings (e.g., `{ type: \"lint\", command: \"pnpm run lint\", required: true }`), plus CI-derived custom strategies labeled `(from CI)`.\n\n### How It Works\n\n```bash\n$ npx agent-bober init brownfield\n\nAnalyzing codebase...\n\nDetected: TypeScript, React, Vite, ESLint, Vitest, Playwright\nPackage manager: pnpm\nGit: conventional commits (feat:/fix:), feature/* branches\nTests: vitest, *.test.ts, co-located\n\nAuto-configured strategies:\n  typecheck  pnpm run typecheck  (required)\n  lint       pnpm run lint       (required)\n  build      pnpm run build      (required)\n  unit-test  pnpm run test       (required)\n  playwright npx playwright test (optional)\n\nLook good? [Y/n]\n```\n\nThe `/bober-principles` command also triggers auto-discovery when called with no arguments in a brownfield project -- it analyzes the codebase instead of asking interview questions.\n\n---\n\n## Commands\n\n### Slash Commands (Claude Code)\n\n| Command | Description |\n|---|---|\n| `/bober-principles` | Define project principles -- AI expands your rough notes into standards |\n| `/bober-research` | Two-phase codebase research -- opinion-free facts for planning |\n| `/bober-architect` | Solution architecture workflow -- 5-checkpoint discussion producing architecture docs + ADRs |\n| `/bober-plan` | Plan any feature -- research, questions, design doc, outline, contracts |\n| `/bober-sprint` | Execute the next sprint contract |\n| `/bober-eval` | Evaluate current sprint output |\n| `/bober-run` | Full autonomous pipeline (research + plan + sprint + eval loop) |\n| `/bober-react` | React web application workflow |\n| `/bober-solidity` | EVM smart contract workflow |\n| `/bober-anchor` | Solana program workflow |\n| `/bober-brownfield` | Existing codebase workflow |\n| `/bober-playwright` | Set up Playwright E2E testing, generate tests, debug failures |\n| `/bober-code-review` | Advisory review of the sprint diff against the contract + anti-pattern catalog |\n| `/bober-security-audit` | On-demand stack-aware security audit of a path (or the working tree) -- spawns the `bober-security-auditor` subagent, presents severity-ranked findings; advisory-only |\n| `/bober-seo` | SEO/GEO suite orchestrator -- routes to the 8 workflows (`bober seo <workflow> [target]`), offline by default, live data behind two default-false egress axes; spawns `bober-seo-strategist`/`bober-seo-verifier` |\n| `/bober-verify` | Verification-before-completion -- run checks and confirm output before claiming success |\n| `/bober-debug` | Systematic debugging -- reproduce, isolate, hypothesize, fix, verify |\n| `/bober-graph` | Manage the code graph index -- init, sync, status (requires tokensave) |\n| `/bober-impact` | Analyse the impact radius and test coverage of a symbol or file |\n| `/bober-onboard` | Generate onboarding docs from the code graph |\n| `/bober-incident` | Run the incident lifecycle -- diagnose, deploy, verify, postmortem |\n| `/bober-diagnose` | Investigate a production incident -- evidence at boundaries, hypothesize-and-disprove |\n| `/bober-deploy` | Execute a remediation action with blast-radius classification + change-management gates |\n| `/bober-runbook` | Execute a step-by-step recovery procedure with pre/postcondition gates |\n| `/bober-postmortem` | Synthesize an evidence-cited postmortem from incident artifacts |\n| `/bober-using-bober` | Establishes how to find and use bober skills (loaded at conversation start) |\n\n> **Preset-aware install:** `agent-bober init <preset>` installs the universal commands above plus only the stack-specific commands matching your preset or mode -- e.g. `/bober-solidity` is added for a `solidity` project, `/bober-react` and `/bober-playwright` for `nextjs`/`react-vite`, and `/bober-brownfield` for an existing codebase. The Claude Code plugin (`/plugin install`) always ships the full set.\n\n### CLI\n\n```bash\nnpx agent-bober init [preset]                            # Initialize project (with provider selection)\nnpx agent-bober update                                   # Refresh .claude/ commands + agents after upgrading the package\nnpx agent-bober plan \"feature\"                           # Run the planner (also materializes sprint contracts)\nnpx agent-bober plan answer <specId>                     # Resolve clarification questions interactively\nnpx agent-bober plan answer <specId> <questionId> \"...\"  # Resolve a single clarification question\nnpx agent-bober sprint                                   # Execute next sprint (consumes plan's contracts)\nnpx agent-bober eval                                     # Evaluate current sprint\nnpx agent-bober run \"feature\"                            # Full autonomous loop\nnpx agent-bober run \"feature\" --team example             # Full autonomous loop using the 'example' team\nnpx agent-bober chat                                     # Interactive chat REPL (roster + memory aware)\nnpx agent-bober chat example                             # Interactive chat REPL using the 'example' team\nnpx agent-bober chat hub                                 # Priority-hub chat REPL (in-session /priority + /decide)\nnpx agent-bober mcp                                      # Start MCP server (Cursor/Windsurf)\n```\n\n#### Chat Steer Commands (Phase 2 — mid-flight HITL)\n\nInside the `agent-bober chat` REPL you can steer in-flight runs with these commands:\n\n| Command | Description |\n|---|---|\n| `/careful [on\\|off]` | Toggle approval gates for new runs. When ON, new runs spawn with `--approve-gates post-research,post-plan,post-sprint` and pause at each curated gate waiting for human input. |\n| `/approve <checkpointId>` | Approve a pending checkpoint (e.g. `post-plan`, `post-sprint`) and resume the run. |\n| `/reject <checkpointId> [feedback]` | Reject a pending checkpoint with optional feedback for the run to use on retry. |\n| `/tell <runId> <text>` | Queue free-text guidance for a run — applied at the next pipeline boundary. |\n| `/pause <runId>` | Soft-pause a run at the next cooperative boundary. The process stays alive. |\n| `/resume <runId>` | Resume a soft-paused run. |\n| `/stop <runId>` | Hard-stop a run by killing its process (contrast with `/pause` which is cooperative). |\n| `/runs` | List all active and recent runs. |\n| `/help` | Show the full command list. |\n| `/exit` | Exit the chat session. |\n\n**Curated gates** (triggered by `--approve-gates`): `post-research`, `post-plan`, `post-sprint`. Each gate pauses the run and surfaces a notice in the next chat turn. Use `/approve` or `/reject` to resolve.\n\n**Limitation:** Only one careful run at a time is fully supported. Pending markers are checkpointId-keyed in a shared `.bober/approvals/` directory, so two concurrent careful runs that hit the same gate id would collide. The non-chat equivalents (`list-approvals`, `approve`, `reject`) remain available as fallback. See `docs/chat-steer.md` for the full model and the documented limitations.\n\n#### New Commands (Sprints 9–25)\n\nThe following commands were added after the initial release. Full reference in [COMMANDS.md](./COMMANDS.md).\n\n```bash\n# Checkpoint approval (careful-flow mode)\nnpx agent-bober list-approvals                        # List pending checkpoints\nnpx agent-bober approve <checkpointId>                # Approve a checkpoint\nnpx agent-bober approve <checkpointId> --edit <file>  # Approve with edit delta\nnpx agent-bober reject <checkpointId>                 # Reject a checkpoint\nnpx agent-bober audit show <runId>                    # Show audit log for a run\n\n# Incident response\nnpx agent-bober incident start '<symptom>' --severity S2   # Start incident\nnpx agent-bober incident status <incidentId>               # Check status\nnpx agent-bober incident end <incidentId> --verified       # Mark resolved\nnpx agent-bober incident list                              # List all incidents\nnpx agent-bober incident abort <incidentId> --reason \"...\"  # Abort incident\n\n# Rollback\nnpx agent-bober rollback <incidentId> --dry-run    # Preview rollback plan\nnpx agent-bober rollback <incidentId>              # Execute rollback\n\n# Postmortem\nnpx agent-bober postmortem generate <incidentId>   # Generate retrospective\nnpx agent-bober postmortem show <incidentId>       # Print retrospective\n\n# Playbooks\nnpx agent-bober playbook list                      # List all playbooks\nnpx agent-bober playbook show <name>               # Show playbook content\nnpx agent-bober playbook search '<symptom>'        # Search by symptom\n\n# Medical team (Phase 6)\nnpx agent-bober medical import <file>              # Stream-import a health export (e.g. Apple Health export.xml)\nnpx agent-bober medical import-labs <pdf>          # Parse a lab PDF into vault notes + health store (cloud-inference axis; fail-closed off)\nnpx agent-bober medical supplements add <name> [--dose <d>]  # Record a supplement as a FactStore fact (medical scope; idempotent re-add)\nnpx agent-bober medical supplements list           # Print supplements from the markdown-frontmatter file\nnpx agent-bober medical profile show               # Decrypt + show the SOPS-encrypted personalization profile (fail-closed if sops missing)\nnpx agent-bober medical profile set <key> <value>  # Update one profile field (age/sex/conditions/...); re-encrypts via sops (age backend, local)\nnpx agent-bober medical whoop sync [--since <iso>] # Sync WHOOP recovery/sleep/cycle/workout (device-connection axis)\nnpx agent-bober medical review [--dig-deeper <id>] # Deterministic offline proactive pass -> trend + cadence-gap + cross-marker-offer Finding notes; --dig-deeper runs the gated 4-lens deep analysis for an offer\nnpx agent-bober medical recommend <question> [--goal <g>]  # 4-lens judge panel -> action/question Finding (cloud-inference axis; fail-closed local)\nnpx agent-bober medical research [--marker <m>]    # Online MedlinePlus research -> grounded vault research notes + watch findings (literature-retrieval axis; zero egress off)\n\n# Vault knowledge base\nnpx agent-bober vault reindex --scope <domain> [--vault <dir>]  # Rebuild the derived FactStore from a vault's note frontmatter\n\n# Priority hub (cross-domain Findings)\nnpx agent-bober hub list                           # Print Findings from the project's own FactStore + sibling kb-* repos (read-only, deduped by id); title [kind] urgency/severity per line\nnpx agent-bober hub priority [--domain <d>] [--due <days>] [--tag <t>]  # Rank pooled Findings (general, or filtered) and write priority.md into the kb-hub vault; prints a ranked summary\nnpx agent-bober hub decide \"X vs Y\"                # Rank Findings under decision scope (only X/Y-relevant survive) and write priority.md\n\n# Task inbox (zero-friction capture into the hub pool)\nnpx agent-bober task add \"<text>\" [--domain <d>]   # Capture a plain task as one open kind=action Finding in the hub pool; deterministic, never prompts/blocks\nnpx agent-bober task list [--all] [--status <s>]   # List tasks (open + in-progress + woken snoozed by default; --all or --status widens to done/dropped)\nnpx agent-bober task start <id>                    # Move a task to in-progress (supersede; prior status kept as history)\nnpx agent-bober task done <id>                     # Mark a task done (supersede; hidden from the default list, still in --all)\nnpx agent-bober task drop <id>                     # Abandon a task → status=dropped via supersede (never deleted)\nnpx agent-bober task snooze <id> --until <when>    # Defer a task: status=snoozed + snooze-until:<ISO> tag; hidden from default list until wake time passes (lazy, no timer)\nnpx agent-bober task ingest [file]                 # Domain seam: ingest a Finding JSON (file or stdin) into the hub pool; content-id dedup (domain|title|kind), schema-validated, fail-closed exitCode=1\nnpx agent-bober task from-gmail <thread>           # Opt-in: capture one Gmail thread as an open action task. OFF by default (taskInbox.gmailEgress) — refuses with no MCP client/network when disabled; sanitizes connector errors (never leaks tokens)\n\n# Do-bridge (promote a Finding into an agent-bober run)\nnpx agent-bober do <findingId> --dry-run           # Preview the agent-bober run task a coding/projects Finding would launch (read-only: no mutation, no approval marker, no spawn); unsupported domain → exitCode=1\nnpx agent-bober do <findingId>                      # Real path: write a promote-<id> approval marker, gate (TTY confirm / non-TTY wait for agent-bober approve|reject), then launch detached `agent-bober run` on approve — links Finding.promotesTo (runId, status launched) + moves it open→in-progress; reject leaves it unchanged\nnpx agent-bober do <findingId> --yes               # Real path, auto-approve (skip the confirm prompt; still writes+clears the marker)\nnpx agent-bober do --reconcile                     # Reconcile launched promotions: read each run's run-state.json snapshot → advance the Finding (completed→done, aborted/failed→open, running→unchanged); also runs best-effort at the start of every `agent-bober do`\n\n# Calendar planner (deterministic slot-fill from ranked Findings)\nnpx agent-bober calendar plan --dry-run --findings <path> [--freebusy <path>]  # Place ranked Findings into open slots in priority order (pure JS, LLM never packs); print scheduled (ISO start/end) + unscheduled (reason) — dry-run writes nothing to any calendar\nnpx agent-bober calendar plan --export-ics <path> --findings <path> [--freebusy <path>]  # Same slot-fill, then write the plan to a local-first RFC 5545 .ics file (one VEVENT per scheduled item, UTC DTSTART/DTEND) with zero network egress — import it manually into your calendar app\nnpx agent-bober calendar plan --findings <path> [--freebusy <path>]  # Live path: slot, then PROPOSE through the existing approval gate — writes a pending marker + plan sidecar and ZERO events; prints checkpointId (calendar-<id>) + how to approve. No auto-approve in any mode\nnpx agent-bober calendar apply <checkpointId>      # Write events for an approved plan: detects the approved/rejected marker inline → connector.writeEvents EXACTLY once on approval / never on reject (Google still egress-gated). Approve first: agent-bober approve <checkpointId> (or /approve in chat)\n\n# Research scheduler (recurring multi-model research jobs)\nnpx agent-bober research job add --question \"...\" [--cadence daily|weekly|monthly] [--tier <t>] [--domain <d>] [--target-repo <r>] [--online-research]  # Define a recurring research job as JSON under .bober/research/jobs/ (validated by ResearchJobSchema; deterministic jobId=sha256(question|createdAt); --online-research stored but inert until egress lands)\nnpx agent-bober research job list                  # List all defined research jobs (jobId, cadence, question, [domain])\nnpx agent-bober research job remove <jobId>        # Delete a research job's JSON file (not-found → exitCode=1)\nnpx agent-bober research run <jobId>               # Execute one stored job: query ≥2 distinct tier-policy provider/model blocks, write a vault research note (frontmatter jobId/question/models[]/generatedAt), emit exactly one kind:\"watch\" hub Finding; prints the note path. Offline unless research.egress.onlineResearch; never throws (not-found → exitCode=1)\nnpx agent-bober research tick [--watch] [--interval <ms>]  # Run every job due as of now (nextDueAt unset or <= now) on the same path; idempotent — advances each run job's nextDueAt by cadence (daily+1d/weekly+7d/monthly+1mo) + sets lastRunAt, so a 2nd tick runs nothing. Clock read only at the boundary. --watch = in-process setInterval (default 1h); for unattended runs use OS cron/launchd, e.g. `0 * * * * agent-bober research tick`\nnpx agent-bober research digest [--since <iso>]    # Aggregate research runs in [since, now] (default last 24h) into a morning digest under .bober/research/digests/<date>.{md,json} — markdown (one bullet per run: title/top finding/source) + JSON for the Telegram bot. Reads vault research notes (non-sensitive titles only); empty window writes both files with an explicit no-new-research body; never throws\n\n# Telegram frontend (local long-polling bot; transport + whitelist + funnel + zero-friction capture + scoped hub-priority commands + inline approve/adjust/reject gate + document-upload medical-ingest opt-in + streaming in-place progress + silent scheduled digest + multi-LLM /fleet secretary view) — spec COMPLETE (7/7 sprints)\nnpx agent-bober telegram                           # Start the local getUpdates long-polling bot (NO server/webhook/inbound port). Reads TELEGRAM_BOT_TOKEN (required; absent → exitCode=1, no network) + TELEGRAM_ALLOWED_USERS (comma-separated numeric ids; empty → deny-all, fail-closed) from env. Plain text from a whitelisted sender is captured as one open inbox task (message = title, no other required field) with a \"Captured: <title>\" reply; /priority, /today, and /decide X vs Y reply with a numbered ranked list from the priority hub (ephemeral scope parsed from the command, delegated to the hub CLI subprocess so the LLM stays out of the adapter, titles only); /pending lists pending approval checkpoints with [Approve][Adjust][Reject] inline buttons whose taps write the SAME .approved.json/.rejected.json disk markers the approve/reject CLI writes (no new mechanism — calendar/do-bridge resolve through the one existing gate; Approve has no editDelta, Adjust carries editDelta, Reject carries feedback; taps are whitelist-first + pendingExists-guarded, Adjust/Reject collect a follow-up text turn via ephemeral in-memory state); uploading a document (Telegram is NOT E2E-encrypted) DEFERS the download behind a per-upload [Yes][No] opt-in that names the local medical store (.bober/medical) — only on Yes does it download to a temp dir + hand the file to the existing `medical import` ingest exactly once (medical egress/consent/audit guards stay authoritative in the subprocess) + reply with a non-sensitive count only (no PHI) + remove the temp dir; No/no-confirm ingests nothing; /start gets a help stub and any other /command an \"Unknown command\" stub; everyone else gets one denial echoing their own id. Two Sprint-6 outbound delivery modes (presentation only, no run/fleet/scheduler logic): streamProgress reports a long-running operation by editing ONE status message in place — one sendSafeForEdit send (captures the message id) + N sendSafeEdit edits on the SAME id over an injected async iterable (never a new message per tick; live do-bridge wiring left as a documented seam in src/do-bridge/do.ts), and sendDigest delivers a scheduler-handed digest payload silently (sendSafe with {silent:true} → disable_notification; content/cadence owned by the research-scheduler). /fleet (Sprint 7) shows the most recent fleet run: a read-only renderer reads .bober/fleet-synthesis.json, groups findings by per-agent FactRecord.subject, and replies with a header (round count) + one labeled section per agent (label + one-line summary of the latest finding + round + confidence + finding count); the SAME renderer feeds the live streaming sections, over-long values are truncated to one line, missing/empty synthesis → \"no recent fleet run\" (never throws), /fleet is whitelist-gated first (non-whitelisted reads nothing), and SynthesisBundle/FactRecord are type-only imports so the bot keeps zero runtime coupling to src/fleet/better-sqlite3 (no new dep). All text replies leave through the single sendSafe funnel + all keyboards through the single sendSafeKeyboard funnel + streaming through sendSafeForEdit/sendSafeEdit (four chokepoints total; the new silent option is an optional 4th sendSafe arg so prior callers are byte-identical); grammy is isolated behind the transport wrapper. Ctrl+C (SIGINT/SIGTERM) stops it; never throws. spec-20260628-telegram-frontend is COMPLETE (7/7 sprints); deferred: live do-bridge streaming wire + live smoke tests need a real bot token, Tier 2/Tier 3 → sibling specs\n\n# Security audit (three surfaces over one runSecurityAudit core: fail-closed pipeline gate + this CLI + the advisory `bober.security-audit` skill; opt-in, default-off) — spec-20260712 COMPLETE (7/7). agent-bober itself dogfoods the gate (security.enabled=true, scanners:[] — LLM-only). Full reference: docs/security-audit.md\nnpx agent-bober security-audit [target]            # Run an on-demand stack-aware security audit against a local path (or the working tree when target is omitted). Runs the SAME runSecurityAudit core the in-pipeline gate uses (with evaluation=null), persists a cited artifact to .bober/security/<id>-security-audit.md, and prints a summary (verdict, per-bucket counts, top findings as path:line, artifact path). Exit code: 0 = pass, 2 = blocked-by-threshold OR fail-closed (audit threw / auditor output unparseable) — wire it into CI. Blocking threshold is security.standaloneBlockOn ('critical' default | 'important' also fails on important-bucket findings). Does NOT require security.enabled=true — the explicit invocation IS the opt-in; the pipeline gate's critical-only veto is untouched. After the exit code is computed, critical (hub severity/urgency 5) + important (3) findings are emitted into the priority hub (best-effort, guarded by security.hub default true; never changes the exit code) so they show up in `bober hub list`/`priority`. Local paths only (no remote URLs). For a conversational audit inside Claude Code use the `/bober-security-audit` skill (advisory-only; spawns the bober-security-auditor subagent)\n\n# SEO / GEO suite (one `bober seo <workflow>` CLI + the /bober-seo orchestration skill + bober-seo-strategist/verifier subagents; opt-in, default-off, offline by default) — spec-20260715 COMPLETE; the SEO improver+builder (spec-20260717) and the in-house AI-visibility Hybrid (spec-20260718) extensions are also COMPLETE. Full reference: docs/seo.md\nnpx agent-bober seo <workflow> [target]            # Run one of 8 SEO/GEO workflows (technical-audit, rank-track, content-decay, topical-map, ai-visibility, parasite-watch, internal-linking, schema-audit) end-to-end. Offline by default (reads .bober/seo/imports/<capability>.csv|json); live data ONLY behind five default-false egress axes: config.seo.egress.{search-console (GSC), serp-provider (DataForSEO), ai-visibility, ai-visibility-scrape, site-crawl}. The ai-visibility axis now routes to an in-house Hybrid (3 BYOK grounded-API engines: anthropic/openai/perplexity) instead of the offline arm; ai-visibility-scrape adds a separately-gated damcrawler UI-scrape arm (chatgpt-ui/perplexity-ui). Exit 0=pass, 2=blocked-or-fail-closed (1 reserved). Prints `SEO report <id>: verdict=…, findings=…, droppedUncited=…`. Guardrails: never-encode tactics dropped at parse, humanApprovalRequired findings, every finding carries a primary-source citation. For a conversational run in Claude Code use /bober-seo.\n\n# Fleet orchestrator (spawn N isolated agent-bober children in bulk)\nnpx agent-bober fleet <manifest>                   # Run a fleet of agent-bober children from a manifest (full reference in COMMANDS.md)\nnpx agent-bober fleet expand <goal>                # Decompose a goal into a fleet manifest and optionally run it (full reference in COMMANDS.md)\nnpx agent-bober fleet expand-deep <goal>           # Robustly decompose a large/ambiguous goal (two-stage plan-then-expand) into a fleet manifest and optionally run it (full reference in COMMANDS.md)\n\n# Config, telemetry & introspection\nnpx agent-bober config [migrate]                   # Inspect and migrate bober.config.json (full reference in COMMANDS.md)\nnpx agent-bober telemetry <status|purge|export>    # Inspect, export, or purge local telemetry events (opt-in, local-only; full reference in COMMANDS.md)\nnpx agent-bober worktree run <task>                # Run the full Bober pipeline in an isolated git worktree on a new branch (full reference in COMMANDS.md)\nnpx agent-bober memory <distill|list|show|prune>   # Inspect and distill self-improvement lessons (full reference in COMMANDS.md)\nnpx agent-bober facts <add|list|show|invalidate>   # Inspect and manage semantic bi-temporal facts (full reference in COMMANDS.md)\n```\n\n#### Clarification gating\n\nWhen the planner can't fully decompose a feature without more information, it stops with `status: \"needs-clarification\"` instead of fabricating sprints — and writes **no** contracts. The CLI surfaces the open questions and you resolve them via `plan answer`. After the last question is answered the spec auto-promotes to `status: \"ready\"`, its sprint contracts are materialized into `.bober/contracts/`, and the next `sprint`/`run` proceeds. See the **Architecture** section for the full lifecycle.\n\n### Fully Autonomous Mode (no human in the loop)\n\n**Option A: Claude Code (recommended)**\n\nLaunch Claude Code with auto-accept permissions, then run the pipeline:\n\n```bash\ncd your-project\nagent-bober init nextjs\nclaude --dangerously-skip-permissions\n# Inside Claude Code:\n/bober-run Build a complete dashboard with auth, CRUD, and charts\n```\n\nClaude will plan, build, evaluate, rework, and iterate without asking you anything. Come back to a finished project.\n\n**Option B: CLI with API key**\n\n```bash\nexport ANTHROPIC_API_KEY=sk-ant-...\ncd your-project\nagent-bober init nextjs\nagent-bober run \"Build a complete dashboard with auth, CRUD, and charts\"\n```\n\nThe CLI uses the Anthropic SDK directly -- no approval prompts at all.\n\n**Option C: With a different provider**\n\n```bash\nexport OPENAI_API_KEY=sk-...\ncd your-project\nagent-bober init nextjs\nagent-bober run \"Build a complete dashboard with auth, CRUD, and charts\" --provider openai\n```\n\nFor **DeepSeek**, set `DEEPSEEK_API_KEY` and point your roles at the `deepseek` model in `bober.config.json` — the `--provider` flag alone is not enough, since DeepSeek also needs its model + endpoint (see [DeepSeek setup (full example)](#deepseek-setup-full-example)):\n\n```bash\nnpm install openai\nexport DEEPSEEK_API_KEY=sk-...\ncd your-project\nagent-bober init nextjs\n# in bober.config.json set \"model\": \"deepseek-v4-pro\" on the roles you want\nagent-bober run \"Build a complete dashboard with auth, CRUD, and charts\"\n```\n\n---\n\n## Lens Panels (multi-perspective evaluation & architecture)\n\nBoth the **evaluator** and the **architect** can run as a *lens panel* -- fanning a single decision out across several independent perspectives, then reconciling them into one verdict. Panels are **opt-in and off by default**; when disabled, behavior is byte-identical to the single-pass path.\n\n- **Evaluator panel** (`evaluator.panel`): runs each sprint evaluation through the built-in lenses **correctness**, **security**, **regression**, **quality**, and **simplicity**, with bounded fan-out and a reconcile step, recording per-lens verdicts as telemetry.\n- **Architect panel** (`architect.panel`): gates the architecture approach-selection and review checkpoints through the built-in lenses **scalability**, **security**, **cost**, **operability**, **maintainability**, **reversibility**, and **simplicity**, with a fail-closed reconcile.\n\nThe **simplicity** lens is a complexity-only perspective (YAGNI): it hunts code that reinvents the standard library, dependencies doing what a native platform feature already does, single-implementation abstractions, dead flexibility, and logic that could be materially shorter — while being explicitly forbidden from ever recommending the removal of a test, a validation at a trust boundary, error handling, security, or accessibility. It pairs with a generator convention: deliberate simplifications with a known ceiling are marked with a `bober:` comment naming the ceiling **and** the upgrade path (e.g. `// bober: global lock, per-account locks if throughput matters`), so a shortcut reads as an auditable choice rather than an oversight — and the code-reviewer treats a marked shortcut as intent, an unmarked one with an obvious ceiling as a finding.\n\nEnable a panel and (optionally) restrict or override the lenses:\n\n```jsonc\n{\n  \"evaluator\": {\n    \"panel\": { \"enabled\": true, \"lenses\": [\"correctness\", \"security\"], \"maxConcurrent\": 4 }\n  },\n  \"architect\": {\n    \"panel\": { \"enabled\": true }   // empty \"lenses\" => all built-ins\n  }\n}\n```\n\nLeave `lenses` empty to use the full built-in set; `maxConcurrent` bounds how many lenses run in parallel (default 4). The same panels are available on the Claude Code plugin surface via the lens-aware evaluator/architect agents.\n\n---\n\n## Teams\n\nagent-bober supports domain-agnostic **teams** — named configurations that route each run or chat session to a distinct set of providers, a separate memory namespace, and a chosen pipeline shape. **Adding a team is data, not code**: declare it in `bober.config.json`, no source changes required.\n\n```jsonc\n{\n  \"defaultTeam\": \"programming\",   // Active team when --team / chat <team> is omitted\n  \"teams\": {\n    \"example\": {\n      \"displayName\": \"Example research team\",\n      \"memoryNamespace\": \"example\",   // Lessons land in .bober/memory/example/\n      \"pipelineShape\": \"ts\",\n      \"providers\": { \"chat\": \"openai\" }\n    }\n  }\n}\n```\n\n```bash\nnpx agent-bober run \"summarise research\" --team example\nnpx agent-bober chat example\n```\n\nThe built-in **programming** team is always available (no config entry needed) and uses\nthe default `.bober/memory/` path and the project's configured providers.\n\nFor full documentation on the three differentiation axes (provider routing / memory\nnamespace / pipeline shape), the built-in programming team, and the deferred\n`.bober/teams/*.json` file registry, see [docs/teams.md](./docs/teams.md).\n\n---\n\n## Documentation\n\nThe `bober/medical-team` build turns agent-bober into a **local-first, multi-LLM personal\nknowledge platform** — recurring research + fleet runs produce Findings and vault notes, the\npriority hub ranks them, and a local Telegram bot is the read/act surface. Start with the umbrella\nguide, then drill into a subsystem:\n\n- **[docs/knowledge-platform.md](./docs/knowledge-platform.md)** — umbrella guide: how the pieces\n  connect, one-time setup, and end-to-end quick-starts. **Read this first.**\n- [docs/fleet.md](./docs/fleet.md) — multi-LLM fleet (heterogeneous children, difficulty tiers, blackboard, synthesis).\n- [docs/research-scheduler.md](./docs/research-scheduler.md) — recurring multi-model research jobs, vault notes, digests.\n- [docs/telegram.md](./docs/telegram.md) — the local long-polling Telegram frontend.\n- [docs/providers.md](./docs/providers.md) — provider/model selection and env-var setup.\n- [docs/storage.md](./docs/storage.md) — the local SQLite / JSON storage model and egress axes.\n\n---\n\n## Configuration\n\nAll configuration lives in `bober.config.json` at your project root. The `init` command creates this file from a template, and you can customize it afterward.\n\n### Full Configuration Reference\n\n```jsonc\n{\n  // -- Project -----------------------------------------\n  \"project\": {\n    \"name\": \"my-app\",                     // Project name\n    \"mode\": \"greenfield\",                 // \"greenfield\" | \"brownfield\"\n    \"preset\": \"nextjs\",                   // Optional: \"nextjs\" | \"react-vite\" | \"solidity\" | \"anchor\" | \"api-node\" | \"python-api\"\n    \"description\": \"A task management app with real-time collaboration\"\n  },\n\n  // -- Planner -----------------------------------------\n  \"planner\": {\n    \"provider\": \"anthropic\",              // \"anthropic\" | \"openai\" | \"google\" | \"openai-compat\"\n    \"model\": \"opus\",                      // Any model string or shorthand\n    \"endpoint\": null,                     // Custom base URL (for openai-compat)\n    \"providerConfig\": {},                 // Provider-specific settings\n    \"maxClarifications\": 5,               // Max clarifying questions (0 to skip)\n    \"contextFiles\": [                     // Extra files the planner should read\n      \"docs/architecture.md\"\n    ]\n  },\n\n  // -- Curator (NEW in 0.11.0) -------------------------\n  \"curator\": {\n    \"provider\": \"anthropic\",              // \"anthropic\" | \"openai\" | \"google\" | \"openai-compat\"\n    \"model\": \"opus\",                      // Default: opus (thorough codebase analysis)\n    \"endpoint\": null,                     // Custom base URL (for openai-compat)\n    \"providerConfig\": {},                 // Provider-specific settings\n    \"maxTurns\": 25,                       // Max tool-use turns for curation\n    \"enabled\": true                       // Set false to skip curation (generator explores on its own)\n  },\n\n  // -- Generator ---------------------------------------\n  \"generator\": {\n    \"provider\": \"anthropic\",              // \"anthropic\" | \"openai\" | \"google\" | \"openai-compat\"\n    \"model\": \"sonnet\",                    // Any model string or shorthand\n    \"endpoint\": null,                     // Custom base URL (for openai-compat)\n    \"providerConfig\": {},                 // Provider-specific settings\n    \"maxTurnsPerSprint\": 50,              // Max tool-use turns per sprint\n    \"autoCommit\": true,                   // Auto-commit after each sprint\n    \"branchPattern\": \"bober/{feature-name}\" // Git branch naming\n  },\n\n  // -- Evaluator ---------------------------------------\n  \"evaluator\": {\n    \"provider\": \"anthropic\",              // \"anthropic\" | \"openai\" | \"google\" | \"openai-compat\"\n    \"model\": \"sonnet\",                    // Any model string or shorthand\n    \"endpoint\": null,                     // Custom base URL (for openai-compat)\n    \"providerConfig\": {},                 // Provider-specific settings\n    \"strategies\": [                       // Evaluation strategies to run\n      { \"type\": \"typecheck\", \"required\": true },\n      { \"type\": \"lint\",      \"required\": true },\n      { \"type\": \"build\",     \"required\": true },\n      { \"type\": \"unit-test\", \"required\": true },\n      { \"type\": \"playwright\",\"required\": false }\n    ],\n    \"maxIterations\": 3,                   // Max rework cycles per sprint\n    \"plugins\": [],                        // Custom evaluator plugin paths\n    \"panel\": {                            // Multi-lens evaluation (opt-in, off by default)\n      \"enabled\": false,                   // Run the evaluator across multiple lenses\n      \"lenses\": [],                       // [] = built-ins: correctness, security, regression, quality, simplicity\n      \"maxConcurrent\": 4                  // Max lenses evaluated in parallel\n    }\n  },\n\n  // -- Documenter (per-sprint docs, on by default) -----\n  \"documenter\": {\n    \"enabled\": true,                      // Spawn a doc subagent after each sprint passes; set false to skip\n    \"model\": \"sonnet\",                    // Model for the documentation pass\n    \"maxTurns\": 20,                       // Max tool-use turns for the doc pass\n    \"timeoutMs\": 300000,                  // Advisory: a documenter timeout never downgrades the passed sprint\n    \"provider\": \"anthropic\",              // Optional provider override\n    \"endpoint\": null                      // Custom base URL (for openai-compat)\n  },\n\n  // -- Architect (lens panel, opt-in) ------------------\n  \"architect\": {\n    \"panel\": {\n      \"enabled\": false,                   // Multi-lens architecture review (off by default)\n      \"lenses\": [],                       // [] = built-ins: scalability, security, cost, operability, maintainability, reversibility, simplicity\n      \"maxConcurrent\": 4\n    }\n  },\n\n  // -- Security auditor (opt-in; whole section optional, default-off; agent-bober's own repo dogfoods it with { enabled: true, scanners: [] } — LLM-only) --\n  \"security\": {                           // Optional. Omit entirely => byte-identical (no key, no defaults).\n    \"enabled\": false,                     // Fail-closed pipeline gate runs ONLY when exactly true. NOT required by the standalone CLI.\n    \"failClosed\": true,                   // Unparseable auditor output / timeout blocks. Default true.\n    \"timeoutMs\": 300000,                  // Per-audit time-box (pipeline gate).\n    \"model\": \"opus\",                      // Auditor model. Any model string or shorthand.\n    \"maxTurns\": 20,                       // Max read-only tool-use turns for the audit.\n    \"standaloneBlockOn\": \"critical\",      // CI threshold for `bober security-audit`: 'critical' | 'important'. Gate ignores this key.\n    \"scanners\": [],                       // Opt-in deterministic pre-filter strategies (EvalStrategy[]). slither/semgrep JSON parsed into auditor priors; unknown scanners → raw-text excerpt. Nonzero exit ⇒ [] (use exit-0 commands). Empty ⇒ zero child processes.\n    \"hub\": true                           // Emit critical (severity 5) / important (severity 3) findings into the priority hub after the verdict (gate + CLI). Best-effort; false ⇒ zero hub writes. Never affects the verdict/exit code.\n  },\n\n  // -- Sprint ------------------------------------------\n  \"sprint\": {\n    \"maxSprints\": 10,                     // Max sprints per plan\n    \"requireContracts\": true,             // Require contract agreement before coding\n    \"sprintSize\": \"medium\"                // \"small\" | \"medium\" | \"large\"\n  },\n\n  // -- Pipeline ----------------------------------------\n  \"pipeline\": {\n    \"engine\": \"ts\",                       // Orchestration engine: \"ts\" (default) | \"skill\" | \"workflow\"\n    \"researchPhase\": true,                // Run two-phase research before planning (default: true)\n    \"architectPhase\": false,              // Run solution architecture phase before planning (default: false)\n    \"maxIterations\": 20,                  // Max total iterations across all sprints\n    \"requireApproval\": false,             // Pause for user approval between sprints\n    \"contextReset\": \"always\"              // \"always\" | \"on-threshold\" | \"never\"\n  },\n\n  // -- Commands ----------------------------------------\n  \"commands\": {\n    \"install\":   \"npm install\",\n    \"build\":     \"npm run build\",\n    \"test\":      \"npm test\",\n    \"lint\":      \"npm run lint\",\n    \"dev\":       \"npm run dev\",\n    \"typecheck\": \"npx tsc --noEmit\"\n  },\n\n  // -- Teams (NEW: adding a team is data, not code) ----\n  \"defaultTeam\": \"programming\",           // Optional. Active team when --team / chat <team> is omitted.\n  \"teams\": {                              // Optional. Each entry is a team defined purely as DATA.\n    \"example\": {\n      \"displayName\": \"Example research team\",\n      \"memoryNamespace\": \"example\",       // Lessons land in .bober/memory/example/\n      \"pipelineShape\": \"ts\",              // \"ts\" | \"skill\" | \"workflow\"\n      \"providers\": { \"chat\": \"openai\" }   // Partial role->provider override; unset roles keep defaults\n    }\n  },\n\n  // -- Medical team egress (Phase 6; all three axes default false) --\n  \"medical\": {                            // Optional. Omit entirely => zero egress (all axes off).\n    \"egress\": {                           // Three INDEPENDENT opt-in axes; code-enforced zero-egress default.\n      \"cloudInference\": false,            // Permit cloud inference synthesis. Default false.\n      \"literatureRetrieval\": false,       // Permit MedlinePlus literature retrieval. Default false.\n      \"deviceConnection\": false           // Permit WHOOP device-connection egress. Default false.\n    },\n    \"inference\": {                        // Optional. Synthesis/critic model override. Omit => local Ollama default.\n      \"provider\": \"openai-compat\",        // Default openai-compat. A CLOUD provider here needs egress.cloudInference=true.\n      \"endpoint\": \"http://localhost:11434/v1\", // Default localhost (Ollama). Non-localhost => treated as cloud + gated.\n      \"model\": \"llama3\"                   // Default llama3. Threaded into both synthesis and the grounding critic.\n    },\n    \"vaultDir\": \".bober/medical/vault\"    // Optional. Vault dir for proactive-review Finding notes. Omit => <root>/.bober/medical/vault.\n  },\n\n  // -- Vault (on-device Obsidian MCP read/write adapter) --\n  \"vault\": {                              // Optional. Omit entirely => no MCP adapter.\n    \"obsidian\": {                         // Declares ONE on-device Obsidian MCP server.\n      \"name\": \"my_vault\",                 // Alphanumeric/underscore. Used in errors — never secrets.\n      \"mcpCommand\": \"npx\",                // Local executable to spawn (stdio). REMOTE schemes are refused.\n      \"mcpArgs\": [\"-y\", \"obsidian-mcp-server\"],\n      \"mcpEnv\": { \"OBSIDIAN_API_KEY\": \"...\" }, // OPAQUE secret — never logged or stringified.\n      \"enabled\": true,                    // Default true.\n      \"toolNames\": {                      // Optional. Override per-op tool names for a non-cyanheads server.\n        \"readNote\": \"obsidian_read_file\",      // Default (cyanheads/obsidian-mcp-server).\n        \"writeNote\": \"obsidian_update_file\",   // Default.\n        \"listNotes\": \"obsidian_list_files_in_dir\" // Default.\n      }\n    }\n  },\n\n  // -- Task inbox Gmail egress (opt-in; isolated single axis, default false) --\n  \"taskInbox\": {                          // Optional. Omit entirely => zero Gmail egress.\n    \"gmailEgress\": false                  // Permit `agent-bober task from-gmail` to read a thread via the MCP connector. Default false.\n  },\n\n  // -- Calendar planner (Google Calendar egress, opt-in; default 'ics', zero-egress) --\n  \"calendar\": {                           // Optional. Omit entirely => local .ics connector, zero cloud egress.\n    \"egress\": {                           // Single opt-in axis; code-enforced fail-closed default.\n      \"cloudCalendar\": false              // Permit Google Calendar (cloud) free/busy read + event write. Default false.\n    },\n    \"connector\": \"ics\",                   // 'ics' (local, default) | 'google' (cloud, needs egress.cloudCalendar=true + a 0600 token).\n    \"timezone\": \"America/New_York\"        // Optional IANA tz, informational only (not used in epoch-ms slot math).\n  },\n\n  // -- Research scheduler online egress (opt-in; isolated single axis, default false) --\n  \"research\": {                           // Optional. Omit entirely => research runs are fully offline.\n    \"egress\": {                           // Single opt-in axis; code-enforced fail-closed default.\n      \"onlineResearch\": false             // Permit `agent-bober research run` web/online retrieval. Default false.\n    }\n  }\n}\n```\n\n> **The Obsidian MCP adapter is on-device only.** `VaultMcpAdapter` wraps the existing\n> `ExternalMcpServer` and exposes `readNote` / `writeNote` / `listNotes` over the declared\n> server. An `isOnDevice()` guard **refuses any non-local declaration before the server is\n> spawned** — a `mcpCommand` with a remote URL scheme (`https?`/`wss?`/`ftp`/`tcp://`) or an\n> `mcpArgs` element pointing at a non-loopback host throws (naming only `name`, never `mcpEnv`).\n> `mcpEnv` is treated as opaque secrets and is never logged. Tool names default to\n> cyanheads/obsidian-mcp-server and are overridable for other servers (e.g. the Obsidian Local\n> REST API plugin's built-in MCP). The adapter is an independent read/write surface — it is **not**\n> wired into `agent-bober vault reindex`, which reads notes from the local filesystem. See\n> [docs/sprints/sprint-spec-20260628-obsidian-vault-store-4.md](./docs/sprints/sprint-spec-20260628-obsidian-vault-store-4.md).\n\n> **Zero-egress is code-enforced for the medical team.** All three `medical.egress` axes\n> default `false`, so a medical SOP turn makes **zero outbound calls** out of the box —\n> a numeric question is answered from deterministic local compute and a literature\n> question abstains, with no network module ever reached. The default is enforced two\n> ways: the runtime `EgressGuard` (whose `assertAllowed` throws when an axis is off) and\n> a scoped `no-restricted-imports` ESLint boundary over `src/medical/**/*.ts` that makes\n> any network import a lint error (with **two** sanctioned exceptions — the\n> literature-retrieval source `src/medical/retrieval/medline-source.ts` and the WHOOP\n> client `src/medical/whoop/whoop-client.ts`). Opting `literatureRetrieval` **in** turns\n> on a real MedlinePlus / NIH (no-auth) grounded retrieval + cited synthesis that\n> **abstains unless a retrieved passage supports the claim**; it runs the synthesis on a\n> **local** model (Ollama by default). Opting `deviceConnection` **in** turns on the\n> au","readmeFilename":"README.md"}