{"_id":"@cjlludwig/rereadme","_rev":"12-e268b7644b5a6116efd290a4b5354d0d","name":"@cjlludwig/rereadme","dist-tags":{"latest":"0.0.16"},"versions":{"0.0.4":{"name":"@cjlludwig/rereadme","version":"0.0.4","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.4","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"b79e8ae9f34747f8d567d10e456c78bc99ee9fa7","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.4.tgz","fileCount":14,"integrity":"sha512-DIs3t0NdUgrrI42110YOntCvhUBvQOBc12wdQoP82wlPOLOLL/IwghuM5Kqm0IlKRzMLO5cDEw6uRp1F1SM3pw==","signatures":[{"sig":"MEUCIHJ02nFKtcaYBrIpLAvbWuetmcJU6LCf+ktW9VuH3BhaAiEA/YCsug52Ciy/3vRgfBCW1sDS2FTrJFj3rJhsxVv39KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79002},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"9a14e7b62e455152f62e224a02dc3c9f37d0a6b7","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.4_1773186665768_0.7081358846872914","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@cjlludwig/rereadme","version":"0.0.5","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.5","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"392a44c0bbe97535178a251216b22bd0f1295a1c","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.5.tgz","fileCount":14,"integrity":"sha512-ayOUwbuqkx6sQcy5CXnL+cCwxMAsu9XTiPSSErGCTB124AC5+Lxz7+OPBNgXcc5zrfY84PfKId6ctYb/XYtCfw==","signatures":[{"sig":"MEQCIEhewaeGSmGOxV91aZWQES5DaTWM5hU46wGiE0B/r42MAiBhw0hpLhyxAWqoxa3iI2v2IqFBn/f4jw3xQvOJLqG3kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78745},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"bcd6d769e3a33770371c8bbf4ed820bf3d4e0b1a","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.5_1773187532283_0.7305743185598819","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@cjlludwig/rereadme","version":"0.0.6","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.6","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"2e4ee56ae1204f3e2eee21ed7a090f010d299784","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.6.tgz","fileCount":14,"integrity":"sha512-WwFZY7Snd0Iggj1QupuBhuRr7912hJqcdTbe+9RyjqffBM0QikX5qmBb4Uzw/1JlIqgLv2fUDQgiahi37h1Dzw==","signatures":[{"sig":"MEUCIAkRFGSxf6qLxh6d4ZQET8f+2BT67svrT13BMBVvTlP0AiEAtpAqXUm5bUZ26W1XBNPBNCNXpzhEzVDsUQC1avIGgvQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78869},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"ad731a028cb6df5a6fe0f2ad4faa153b8a680ccb","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.6_1773189114724_0.17832984216985737","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@cjlludwig/rereadme","version":"0.0.8","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.8","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"7ea3d0960fc3ab39f47537f33b40f6b8a7104de1","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.8.tgz","fileCount":14,"integrity":"sha512-/U1LLZrSimZWYjfyfQBMvwnK6ggL5eemQaXc4ov3k4OSt7Ibl9G7ZnbCp+N5YCgT2bn7b2YWU33Zyih27Y/vng==","signatures":[{"sig":"MEUCIQCX1WatZQIni475wGnPyNGTL1kDQJuERyZub2XoIi0wIAIgBDuxp+zVAPDHQX5ByCKFiauDmGpNlQxDXp3CdxpJ7/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78995},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"623e2a50961289680a589c3ee8ed1dac69187f19","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.8_1773262480556_0.4049915507984496","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@cjlludwig/rereadme","version":"0.0.9","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.9","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"11e23d69c59895d025eb99123bab68262e6a48ea","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.9.tgz","fileCount":14,"integrity":"sha512-j8Yb9nhhQIHvD7CZUBy8MTtuDsh9CM2RQIpZ2AkRQpmponcs+ResKUM7VNjwyCK+MvoCkhYSLCyf2SIjIRskkg==","signatures":[{"sig":"MEUCIDfyWCIMJ4tEBB69mhtlNTx8MzCa0HgE3OhDA0rTBsX5AiEAlaOSuvVl1gM7Vd3KyzHG4hixvZWWekrDLikIGTuSkQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78995},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"9ba454c899cde8434c5d27f9420d5ae677f08c9c","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.9_1773263768727_0.045376758367750014","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@cjlludwig/rereadme","version":"0.0.10","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.10","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"e7cfb108ee35b3efd59baa904f68dc781e670029","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.10.tgz","fileCount":14,"integrity":"sha512-GCJZuL4CaZi5IHUC4yUI15BBPBdL/8uzSOTDaDtGIhwhIrbNIMg0grJ4CAmNVRl1h9WcstYyNqbruSLbDj+sZA==","signatures":[{"sig":"MEUCIDDxNpuJNtTwQSKCixKsmbcAEx0TllvPqZ3XmLVIKl/GAiEA7J29zu2Zo6DmwMPOzKoIuPxH6Pt7TtRgfu258BuGlOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79044},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"b589d8415299bd086fb16020e3d15e765ccaa09a","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.10_1773328464815_0.05173345903076232","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@cjlludwig/rereadme","version":"0.0.11","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.11","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"d43019554d1302102988e81e8e6d100ef2537131","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.11.tgz","fileCount":14,"integrity":"sha512-fmjXJfXxCBYTcSaxJQBD4xOF08X6dona0oPfOXLkULj8YXSnxaylfrdb3nCbnV4AmtQZt7aPWRWf3NXcs1b6cQ==","signatures":[{"sig":"MEUCICjop/Fe0MN4KljA1bJe6r33j3EZEG6cKJY7qIVb150LAiEAiRPjrxSIEYeSQtjJM76oZB2TUBZ+AzQy9bNJJXi+YTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79044},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"d4ac407a99ba3d05b9bea67fa750fbde372cb4f3","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.11_1773341739648_0.7184502688964465","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@cjlludwig/rereadme","version":"0.0.12","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.12","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"5af2ab5f3dd3a90f12ad0180172311ee1faef6f4","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.12.tgz","fileCount":14,"integrity":"sha512-GV0wc7tkars/6Yk69anjnTjrjrmKbuKcdf2+WL4fe2CltJquceQFyOF86nozDXu53HYbD7R2ptIFDv9f9MHsQA==","signatures":[{"sig":"MEYCIQD+GIPDh7vxwbjIgp2oAYUM7c/YzIsKopiwPrT6w2TLDAIhAOG5T1NKM7wirN+yhF73UCcXNpxJATh2mOT/6M/lfGvA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79044},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"d732a7dfbd02b12e327f21c4e054a4ee1090ea08","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.9.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.0","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.4.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.12_1773343262107_0.42503876188592393","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@cjlludwig/rereadme","version":"0.0.13","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.13","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"452dd559c54272d31b8e41263623af860b2f876e","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.13.tgz","fileCount":14,"integrity":"sha512-y6JYhYJUXmN6z3uTl+Ve788SW0wbOewCnjaEAnwibQ/1ymIcn84HoW5etqwmMZNawuRa4k7GGGlurwQmLliEUA==","signatures":[{"sig":"MEUCIQDNKk6i3X6EdTN7XSMEO1nluBakgGFzVkyxZmzkiaXJZwIgemU+TJ36NYAcRx6qsLTUAmBgEXlmfyLDiFfgajJCJws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80483},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"3685fa2d61b309b4dd74471b21eb82b96286fc46","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.1","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","openai":"6.33.0","picocolors":"1.1.1","markdownlint":"0.40.0","@clack/prompts":"1.0.1","@openai/agents":"0.8.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.13_1775506240222_0.6431290593696957","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@cjlludwig/rereadme","version":"0.0.14","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.14","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"bcb7d62f6b08bf2824257651eae402dc49c1bfc9","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.14.tgz","fileCount":15,"integrity":"sha512-n0YtyBwqP4Me1WBlmaOolyeWLkUSpjscysgYit6c7pAEgKi+amtAKCevvtZ0wdYyPRpZWinIcFm0JQL8nZ3XKA==","signatures":[{"sig":"MEUCIQCgIzqY06QYaRKxPOJYpt8eORM0Fl8D/HUtodc8Ex3gtwIgYvqv9LtOXD8VmFJS3eEvP5lssHgHj3W87omNdvYKATM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91825},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"ce036c0546f1273626a6241847c51313cda269bb","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","lint":"make lint-ts lint-md lint-py lint-pkg","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --coverageReporters=json-summary --cache --cacheDirectory=.cache/jest --silent","build":"tsc","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","check:all":"make check test","test:full":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --no-cache","typecheck":"make typecheck-ts typecheck-py","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","check:static":"make check","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.14.1","dependencies":{"zx":"8.8.5","tsx":"4.21.0","zod":"4.3.6","globby":"16.1.1","openai":"6.33.0","unified":"11.0.5","picocolors":"1.1.1","markdownlint":"0.40.0","remark-parse":"11.0.0","@clack/prompts":"1.0.1","@openai/agents":"0.8.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/mdast":"4.0.4","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-unused-imports":"^4.4.1","eslint-plugin-eslint-comments":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.14_1777337763531_0.7769482733411317","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@cjlludwig/rereadme","version":"0.0.15","keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","_id":"@cjlludwig/rereadme@0.0.15","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"bin":{"rereadme":"bin/rereadme.js"},"dist":{"shasum":"67bce554b509f216ec8664c2eaf10b64af85f5d1","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.15.tgz","fileCount":15,"integrity":"sha512-YJ1ON9FmsQra5197YbUX39tqkw9fbqfFEzlUhDf6V8PBD2d5Lz4pXf3U4+pMWhSVEx16sD0sha9CJ8P+3HdHEA==","signatures":[{"sig":"MEYCIQDv50ORfv3dWsKez01w4LAJx2D/I/cTt8pTX23DufxG6wIhALIvAvT4PPCUc9GVgGonF9JoEdpQpz0vtJCREeUALK+s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92542},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"408bd31681d41cc5e7947581e3b029befb0b71dd","scripts":{"dev":"tsx ./script.ts","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","help":"tsx ./script.ts --help","lint":"make lint-ts lint-md lint-py lint-pkg","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --coverageReporters=json-summary --cache --cacheDirectory=.cache/jest --silent","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && node -e \"const fs=require('fs');fs.cpSync('templates','dist/templates',{recursive:true});fs.cpSync('.markdownlint.jsonc','dist/.markdownlint.jsonc')\"","check":"tsx ./script.ts --check","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","start":"node dist/script.js","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","prepack":"npm run build","prepare":"husky || true","refresh":"tsx ./script.ts","eval:all":"cd evals && uv run pytest -v","check:all":"make check test","test:full":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --no-cache","typecheck":"make typecheck-ts typecheck-py","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","check:static":"make check","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","refresh:interactive":"tsx ./script.ts --interactive"},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"repository":{"url":"git+https://github.com/cjlludwig/rereadme.git","type":"git"},"_npmVersion":"11.13.0","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","directories":{},"lint-staged":{"*.md":"markdownlint --fix","*.{ts,js}":"eslint --fix"},"_nodeVersion":"24.16.0","dependencies":{"zx":"8.8.5","zod":"4.3.6","globby":"16.1.1","openai":"6.33.0","unified":"11.0.5","picocolors":"1.1.1","markdownlint":"0.40.0","remark-parse":"11.0.0","@clack/prompts":"1.0.1","@openai/agents":"0.8.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"^30.2.0","husky":"^9.1.7","eslint":"^10.0.0","publint":"^0.3.12","depcheck":"^1.4.7","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@eslint/js":"^10.0.1","typescript":"5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","lint-staged":"^16.2.7","@types/mdast":"4.0.4","@types/fs-extra":"^11.0.4","typescript-eslint":"^8.56.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-unused-imports":"^4.4.1","eslint-plugin-eslint-comments":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/rereadme_0.0.15_1781790773157_0.6835327472699844","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@cjlludwig/rereadme","version":"0.0.16","description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","type":"module","bin":{"rereadme":"bin/rereadme.js"},"keywords":["readme","documentation","cli","ai","automation","openai"],"author":{"name":"Connor Ludwig"},"license":"MIT","homepage":"https://github.com/cjlludwig/rereadme#readme","bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"repository":{"type":"git","url":"git+https://github.com/cjlludwig/rereadme.git"},"publishConfig":{"access":"public","provenance":true},"scripts":{"dev":"tsx ./script.ts","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && node -e \"const fs=require('fs');fs.cpSync('templates','dist/templates',{recursive:true});fs.cpSync('.markdownlint.jsonc','dist/.markdownlint.jsonc')\"","start":"node dist/script.js","test":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --coverageReporters=json-summary --cache --cacheDirectory=.cache/jest --silent","test:full":"NODE_OPTIONS=--experimental-vm-modules jest ./tests --coverage --no-cache","lint":"make lint-ts lint-md lint-py lint-pkg","typecheck":"make typecheck-ts typecheck-py","check":"tsx ./script.ts --check","check:static":"make check","check:all":"make check test","refresh":"tsx ./script.ts","refresh:interactive":"tsx ./script.ts --interactive","help":"tsx ./script.ts --help","setup":"git submodule update --init evals/datasets/express-server evals/datasets/rereadme evals/datasets/front-end && cd evals && uv sync","eval":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server.py test_rereadme.py test_express_server_agents.py test_rereadme_agents.py test_front_end.py -v","eval:rereadme":"cd evals && NO_COLOR=1 uv run deepeval test run test_rereadme.py test_rereadme_agents.py -v","eval:agents":"cd evals && NO_COLOR=1 uv run deepeval test run test_express_server_agents.py test_rereadme_agents.py -v","eval:front-end":"cd evals && NO_COLOR=1 uv run deepeval test run test_front_end.py -v","eval:report":"cd evals && NO_COLOR=1 uv run python evaluate.py","eval:ci":"cd evals && uv run pytest test_ci_mode.py -v","eval:all":"cd evals && uv run pytest -v","prepack":"npm run build","prepare":"husky || true"},"dependencies":{"@clack/prompts":"1.0.1","@openai/agents":"0.8.3","globby":"16.1.1","markdownlint":"0.40.0","openai":"6.33.0","picocolors":"1.1.1","remark-parse":"11.0.0","unified":"11.0.5","zod":"4.3.6","zx":"8.8.5"},"devDependencies":{"@eslint/js":"^10.0.1","@swc/core":"^1.15.11","@swc/jest":"^0.2.39","@types/fs-extra":"^11.0.4","@types/jest":"^30.0.0","@types/mdast":"4.0.4","@types/node":"^25.2.3","depcheck":"^1.4.7","eslint":"^10.0.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-unused-imports":"^4.4.1","husky":"^9.1.7","jest":"^30.2.0","lint-staged":"^16.2.7","publint":"^0.3.12","tsx":"4.21.0","typescript":"5.9.3","typescript-eslint":"^8.56.0"},"engines":{"node":">=22.0.0"},"lint-staged":{"*.{ts,js}":"eslint --fix","*.md":"markdownlint --fix"},"gitHead":"2c71d852ded7227b20a4793658847a9ff5832609","_id":"@cjlludwig/rereadme@0.0.16","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-kQAUgYozJQVYtogAcIUOFd70DVsfW9EloBBytKeYKdYRwuyfAn8dfY55kfLsZ+Wagjh8nkW73Hdy9fYEeVtJbg==","shasum":"8f3fde86988e88b5d55c43befccfde266dc894b9","tarball":"https://registry.npmjs.org/@cjlludwig/rereadme/-/rereadme-0.0.16.tgz","fileCount":16,"unpackedSize":96805,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cjlludwig%2frereadme@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDliF+JzWuxHMs7J6Tpj5Fl7/hlC+p/DDL2aDN2ND3uzQIhALhZcbtQH//pZeII6UpN/UZ/b71816+Fd5gJCLIHa8p+"}]},"_npmUser":{"name":"cjludwig13","email":"cjlludwig@gmail.com"},"directories":{},"maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rereadme_0.0.16_1781815047415_0.42672989705945374"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T23:51:05.544Z","modified":"2026-06-18T20:37:27.824Z","0.0.4":"2026-03-10T23:51:05.924Z","0.0.5":"2026-03-11T00:05:32.436Z","0.0.6":"2026-03-11T00:31:54.862Z","0.0.8":"2026-03-11T20:54:40.701Z","0.0.9":"2026-03-11T21:16:08.899Z","0.0.10":"2026-03-12T15:14:24.953Z","0.0.11":"2026-03-12T18:55:39.792Z","0.0.12":"2026-03-12T19:21:02.247Z","0.0.13":"2026-04-06T20:10:40.376Z","0.0.14":"2026-04-28T00:56:03.676Z","0.0.15":"2026-06-18T13:52:53.281Z","0.0.16":"2026-06-18T20:37:27.569Z"},"bugs":{"url":"https://github.com/cjlludwig/rereadme/issues"},"author":{"name":"Connor Ludwig"},"license":"MIT","homepage":"https://github.com/cjlludwig/rereadme#readme","keywords":["readme","documentation","cli","ai","automation","openai"],"repository":{"type":"git","url":"git+https://github.com/cjlludwig/rereadme.git"},"description":"CLI tool to refresh README automatically with up-to-date information based on code contents, documents, and external sources","maintainers":[{"name":"cjludwig13","email":"cjlludwig@gmail.com"}],"readme":"# ReReadme\n\n![Node version](https://img.shields.io/badge/node-%3E%3D22-brightgreen)\n![License](https://img.shields.io/badge/license-MIT-blue)\n![Build](https://github.com/cjlludwig/ReReadme/actions/workflows/ci.yml/badge.svg)\n![Last Commit](https://img.shields.io/github/last-commit/cjlludwig/ReReadme)\n[![npm](https://img.shields.io/npm/v/%40cjlludwig%2Frereadme)](https://www.npmjs.com/package/@cjlludwig/rereadme)\n\n`rereadme` is a CLI tool that refreshes `README.md` files by analyzing a repository and generating an updated README from a template using an AI agent workflow built on the OpenAI Agents SDK. It supports both a full regeneration mode and a PR-friendly CI mode that analyzes diffs and produces targeted patch suggestions.\n\n<!-- markdownlint-disable -->\n<div align=\"center\">\n   <img src=\"docs/assets/demo.gif\" alt=\"rereadme demo\" />\n</div>\n<!-- markdownlint-enable -->\n\n## Why rereadme?\n\nIn most engineering organizations, distributed systems READMEs are stale at best and nonexistent at worst. They're treated as optional hygiene rather than critical infrastructure. Historically, the cost of poor documentation was absorbed through onboarding friction and tribal knowledge — inefficient, but tolerable.\n\nThat economic model does not scale in an AI-assisted development environment.\n\nHeadless coding agents now interact with your repository repeatedly. Each session must reconstruct context that should already exist in a well-written README. Without it, agents navigate blindly attempting to gather context. A realistic orientation pass for a non-trivial service often consumes\n**>10,000 tokens per session**. If documentation is stale or missing, that cost repeats every time an agent session begins.\n\n> Pay once to persist context. Or pay repeatedly to rediscover it.\n\n`rereadme` runs a tuned agent workflow that explores your repository deliberately, synthesizes context, and persists it as a high-signal README. Because the workflow is CI-friendly, pull requests can be evaluated against the existing documentation to detect drift — changes that modify behavior without updating docs can be flagged or failed automatically.\n\n## Quick Start\n\n```shell\nnpm install -g @cjlludwig/rereadme\n\nexport OPENAI_API_KEY=\"your_api_key_here\"\n\n# Run in any repo\ncd /your/repo\nrereadme\n```\n\n## Getting Started\n\n> [!IMPORTANT]\n> `rereadme` sends Git-tracked file contents to the OpenAI API to generate documentation. Gitignored files are never read and all agent access is sandboxed to the repo root but if your organization has data-governance or IP policies around external AI services, review those before use.\n>\n> See [Security](docs/security.md) for access protections and [Observability](docs/observability.md) for agent trace visibility.\n\n### Dependencies\n\n- Node.js >= 22.0.0 (enforced by `engines.node` in `package.json`)\n- `OPENAI_API_KEY` environment variable (see OpenAI [Developer Quickstart](http://developers.openai.com/api/docs/quickstart/))\n- Optional: `OPENAI_BASE_URL` environment variable for enterprise API keys scoped to regional endpoints (e.g., `https://us.api.openai.com/v1`)\n- Optional: `markdownlint-cli` for formatting and linting of the generated README\n\n**Troubleshooting Dependencies:**\n\n- Run `rereadme --check` to verify all tools are installed correctly (or `npm run check` if using locally)\n- For markdownlint issues, try the npm version: `npm install -g markdownlint-cli`\n\n### Installation\n\n#### Global Installation (Recommended)\n\n```shell\nnpm install -g @cjlludwig/rereadme\n\n# Verify installation\nrereadme --help\n```\n\n## Usage\n\n> For real-world usage scenarios, see [Workflows](docs/workflows.md).\n\n### CLI Tool Usage\n\n```shell\n# Run the complete README refresh workflow in current directory\nrereadme\n\n# Show detailed command output\nrereadme --verbose\n\n# Run with interactive mode (pause between steps)\nrereadme --interactive\n\n# Specify output file\nrereadme --output README-new.md\n\n# Override the AI model (default: gpt-5-nano, tuned for cost-efficiency)\n# Frontier models (e.g. gpt-4o, 5.2) produce richer output at higher cost\nrereadme --model gpt-5.2\n\n# Skip backup creation\nrereadme --no-backup\n\n# Generate agents documentation\nrereadme --agents\nrereadme --agents --agents-output AGENTS.md\n\n# Use custom templates\nrereadme --template MY_TEMPLATE.md\nrereadme --agents --agents-template MY_AGENTS_TEMPLATE.md\n\n# CI mode: analyze diff and write README-suggestions.md\nrereadme --ci\nrereadme --ci --base-ref origin/main\n\n# CI mode: analyze diff and apply patches directly to README.md\nrereadme --ci --apply\n\n# Apply an existing suggestions file to README.md\nrereadme --apply\nrereadme --apply --ci-output custom-suggestions.md\n\n# Check dependencies only\nrereadme --check\n\n# Show help\nrereadme --help\n```\n\n### Local Development Usage\n\n```shell\nnpm run dev                        # Run basic workflow\nnpm run dev -- --verbose          # Show detailed output\nnpm run dev -- --interactive      # Run with manual step approval\nnpm run dev -- --check            # Check dependencies only\nnpm run help                       # Show help\n```\n\n### CI Integration\n\nAdd `rereadme` to your PR pipeline to detect documentation drift automatically. The `DiffAnalyzer` agent reads the diff, determines whether changes are significant enough to document, and posts suggestions as a PR comment without modifying the README.\n\n```yaml\n# .github/workflows/readme-ci.yml\nname: README CI Suggestions\non:\n  pull_request:\n    branches: [main]\njobs:\n  readme-suggestions:\n    runs-on: ubuntu-latest\n    permissions:\n      pull-requests: write\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n      - uses: cjlludwig/ReReadme@v0\n        with:\n          openai-api-key: ${{ secrets.OPENAI_API_KEY }}\n# ⚠️ README-suggestions.md written on drift\n# ✍️ PR comment posted automatically\n```\n\nAdding `--apply` writes the patched README directly to `README.md` (with a timestamped backup):\n\n```shell\n# Analyze diff and write suggestions only (safe, no README changes)\nrereadme --ci\n\n# Analyze diff and apply patches in one step\nrereadme --ci --apply\n\n# Apply a previously written suggestions file\nrereadme --apply\n```\n\n### Custom Templates\n\n> For template design guidance and conventions, see [Templates](docs/templates.md).\n\nSupply your own markdown template with `--template FILE` (for README) or `--agents-template FILE` (for AGENTS.md, requires `--agents`).\n\nTemplate requirements:\n\n- Must be a valid markdown file with at least one heading (`#`)\n- Use `>` blockquote lines as content descriptors (matches agent behavior)\n- Use `<--` comment blocks to contain content examples (matches agent behavior)\n- Maximum size: 50KB\n\n## Architecture\n\n> For local setup, development workflow, and contribution standards, see [Development](docs/development.md).\n> See [Observability](docs/observability.md) for more details on the agentic workflow.\n\nThe tool is built using:\n\n- **OpenAI Agents SDK** — AI-driven README generation and diff analysis with full tracing support\n- **Google ZX** — Shell operations and CLI orchestration\n- **TypeScript** — Type-safe development with modern JavaScript features\n\n## Quality\n\nLLMs are inherently non-deterministic, so `rereadme` takes a two-layer approach to quality. Tool calls are tested explicitly in the Jest unit suite to assert allowed filesystem actions and path boundaries — the deterministic, security-critical behavior that must hold on every run.\n\nGeneral output quality — structure, accuracy, completeness — is validated through a DeepEval eval framework that runs `rereadme` against real dataset repos and compares output against golden READMEs using both deterministic checks and an LLM-as-judge metric.\n\nSee [evals/README.md](evals/README.md) for setup, metrics, and the golden README workflow.\n\n## Security\n\n`rereadme` is designed for use in shared environments and CI pipelines. Key protections:\n\n- **Repo-sandboxed filesystem access** — Every agent path request is resolved against the working directory and rejected if it escapes (`safePath()` in `lib/tools.ts`). No file outside the repo root can be read.\n- **Gitignored files are never exposed** — All filesystem tools enforce gitignore rules before returning content. Secrets, credentials, and sensitive files in `.gitignore` are never sent to the AI.\n- **Git-repo requirement** — The tool does not run outside a git repository, ensuring gitignore protections are always active.\n- **Read-only agents** — Agent tools are read-only. File writes happen only at the CLI layer with a timestamped backup. In CI mode, the README is never modified unless `--apply` is explicitly passed.\n- **No telemetry** — The only external network calls are to the OpenAI API. No usage data is routed anywhere else.\n- **API key never written to disk** — `OPENAI_API_KEY` is read from the environment and never included in output files, agent traces, or verbose logs.\n\nSee [Security](docs/security.md) for full details.\n\n## Contributing\n\nContributions are welcome. See [Development](docs/development.md) for setup, workflow, and quality standards.\n\nOpen issues and feature requests at [github.com/cjlludwig/rereadme/issues](https://github.com/cjlludwig/rereadme/issues).\n\n## Troubleshooting\n\n**Common issues:**\n\n- **Missing dependencies** — Run `rereadme --check` to identify missing tools\n- **OpenAI API errors** — Ensure `OPENAI_API_KEY` is set and has sufficient credits\n- **Permission errors** — Ensure you have write access to `README.md`\n\n**Tips:**\n\n- Use `--interactive` mode to review changes at each step\n- Use `--verbose` to see detailed command output and live agent tool calls for debugging\n- The tool creates automatic timestamped backups before overwriting any file\n- The tool works best with structured codebases that follow standard conventions\n\n## References\n\n- [Google ZX Documentation](https://google.github.io/zx/)\n- [OpenAI Agents SDK Documentation](https://openai.github.io/openai-agents-js/)\n- [OpenAI Platform — Traces](https://platform.openai.com/logs?api=traces)\n- [Markdownlint CLI](https://github.com/igorshubovych/markdownlint-cli)\n\n## License\n\nThis project is licensed under the MIT License.\n","readmeFilename":"README.md"}