{"_id":"@amirdaraee/namewise","_rev":"30-d09342784f43abe6082e757fda9afdc9","name":"@amirdaraee/namewise","dist-tags":{"latest":"2.3.1"},"versions":{"0.3.0":{"name":"@amirdaraee/namewise","version":"0.3.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.3.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"2e6923f1434f26ff4b58c51dab9da3e2163065c2","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.3.0.tgz","fileCount":105,"integrity":"sha512-zffaCjRHcuk4KVfHegJBlmQ29g6vTd91gAefE4XF4NcPDHG4jIpsfu9YCp1ZQ/0h2ExCMmzyJP85Tz40QbXtpQ==","signatures":[{"sig":"MEQCICnEo3DrTbhIgEmYhNeKUutTD6LM0aqTWA6sfowwGK6qAiBIlYZ1AajVPTD60oSvbGWzv4btxEwDjjXnea3iA6vliQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1250232},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ed6230851c9e2f1a678eeeb7748fccfa38966c25","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.9.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"xlsx":"^0.18.5","openai":"^5.19.1","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.3.0_1757111488483_0.6090155118005836","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amirdaraee/namewise","version":"0.3.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.3.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"5ed09389d0fdc64657b2f14106511f0c6bfb0205","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.3.1.tgz","fileCount":105,"integrity":"sha512-4dmjWjhus21TKH19GDQU2vwfiKMAq52yLMZ8Yz9dfYWIjZfXQoi0nMWqmCgDZtZ+W4pHsoZtNVLWZ7mJ7BtOgw==","signatures":[{"sig":"MEUCIQCMjQYKVRtVipKOtgTTCjKN4h+HtvOZ+qJaZ0zBgJn7owIgULaDNZM1QfvjMyXuul+3hXspyB/iWsSWP+vnwgyVJ0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1252262},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"81de89045d64d3844f8fc825adb00afc15727b3f","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.9.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.3.1_1757114281947_0.421636902311447","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@amirdaraee/namewise","version":"0.4.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.4.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"51149846e64bd26e7d109cc5bebd1fa764b1b14e","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.4.0.tgz","fileCount":131,"integrity":"sha512-+fr/p/sb7su18pejWH1Z4i0ObDz1XNIk7T2eppr0bUN2DZiECqUHki4h7xbjGbFyIc62yEFghF5ioQqMJKzT3Q==","signatures":[{"sig":"MEUCIFB9zONeD7b5DhhCljfadsuQgVv+k4oxokmyaU9NyzkeAiEA0feYgvJCxcm9Hv9Rg4kM9hzM/oL4RACswKULAsz1tWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1326986},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9d077e8513cd44c3a952cca3338877bb13a4989c","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"20.19.5","dependencies":{"openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.4.0_1757945771049_0.5349633057536443","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@amirdaraee/namewise","version":"0.4.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.4.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"0b37f9aa0683c30b0f4aa050f823022d4f43496c","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.4.1.tgz","fileCount":139,"integrity":"sha512-HIBRhUpc3D99kZWi1xT+S50xpX+27k+w3oP6qs3yP8hRlW7KM27wayg/o14h7PWhC+ZACO4vasCYJ7BTqLS7MA==","signatures":[{"sig":"MEYCIQCzQVLuwd3JC+WFLyBbsZaN8cIO/7TjIe9HRNtv5TadCwIhALDRNi2aHLm/zXRgEmhi07yTmracsbVSfg2zWHk6dGIA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1362641},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f36c963d53c83dd05593ae24d340b65db9b0a477","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"20.19.5","dependencies":{"openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.4.1_1757949936331_0.3852475139454752","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@amirdaraee/namewise","version":"0.5.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.5.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"131f0506a5c05b6e9777353b6a44feb1d0a742eb","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.5.1.tgz","fileCount":146,"integrity":"sha512-ZhpweZt0fHyG0Ceem86ao0JEeLX0VvEwYVKOW8MRoEJuigtEcpdudoM9Cyo+7qOfyVDjR6O+eXyjCmvAAKUl+w==","signatures":[{"sig":"MEQCIBiVRbgOg+7x4yvo7zQexxz7tfbjpOLGiXxpeDD3PyvMAiAcLnipwdsgqG/YqMb+IdZ5WnOYHS6ueaE6mf8SeuoY4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6603315},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cfdefd1734c07d3191b2fa39d5944fd783aed408","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"20.19.5","dependencies":{"canvas":"3.2.0","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.5.1_1762772385226_0.7909672179135712","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@amirdaraee/namewise","version":"0.5.2","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.5.2","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"7e1b663fdb9429e8c60d5f9b23560fe5ff904359","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.5.2.tgz","fileCount":146,"integrity":"sha512-n4F3rVIx2hwnrK5n49QQgDS9RE/33ylLzJWRyqANem/6WmBnm87jxhBDUflO5MKNNZi2trtuuvCZgv+KHbz2/g==","signatures":[{"sig":"MEYCIQCEwKmoYNmFKw2p7jd84ve+7ZwyZPYREwrx7pWQ5G8GjAIhAJ4iKS0VlKMGY/i5gmm+vs7hoKCq7ia0mgOuikUrWR2l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6604437},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5f9061a679b524684988a74a50f537ca66613b84","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"20.19.5","dependencies":{"canvas":"3.2.0","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.5.2_1762773470046_0.7864825452451394","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@amirdaraee/namewise","version":"0.5.3","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.5.3","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"c10f571c22f96be408ad4eb9d3e81546191d03e2","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.5.3.tgz","fileCount":146,"integrity":"sha512-SDIq2l+rOfsQ5jwRNTQcuM0dqfmz/oozkEsV34LdQs9hEpcCnqr7ZWG0nDvnHEIfvC3NI1HL8dZgV7cOUrbftg==","signatures":[{"sig":"MEYCIQDLHM/N0Cy5iTQu3psosOWP3kBuL9jal1xebLYH3pjvXQIhAJOkrlpB8c+rSNaPumnw2JNJ5FHC7RMm0ZLbsDY0Lazo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6604542},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"29b030bdc0d83e4e963b5fedb4eea7c866d2b01f","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"20.19.5","dependencies":{"canvas":"3.2.0","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.5.3_1762803957526_0.1236336002535654","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@amirdaraee/namewise","version":"0.5.4","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.5.4","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"ef75341f29028170d2075b0faae524a190134352","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.5.4.tgz","fileCount":81,"integrity":"sha512-2neO3zm5G3RLI38uG5WkLlufnbSZaREwHdPVR8y0M37ktbmyfTxdIdzHxctZFxYL+IsdaPTJu3CeFr5E6wbD/w==","signatures":[{"sig":"MEUCIB1scNkk+hTS5Vph0irPUbWosjEP1wCUg+L0/ICSed6pAiEAg5MV4vNquiHAz+6U7tBJ46t1H4cizhJqFn+89L+i7hk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167293},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"ee33d404596f62f61ffb975a8d355eb32d16cfdf","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.9.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"canvas":"3.2.0","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"^1.10.0","fs-extra":"^11.3.1","inquirer":"^12.9.4","commander":"^14.0.0","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.5.4_1774993837662_0.5275166606214563","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@amirdaraee/namewise","version":"0.5.5","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.5.5","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"58d38086f9687d6642dc31889e2e989bca9cc141","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.5.5.tgz","fileCount":81,"integrity":"sha512-vbpfdsyO8Jf21I60n3MlaA4sMH9qa5LZwtpLzTQmN8pL1R1Ekfo4oFj/ahhzS9dtLvXqlrZW1jSf/HB11sC8pQ==","signatures":[{"sig":"MEUCIQDEVrAS5uPT+wnbvlcrg6Bt8IBjhJsKhT/HnHjFrwBVQAIgGd5WaZsiEhjH4F5e5eLcn64ur2gVx6pLIiEpViS2tJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169906},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7a5df23b9a3bd4d9ba54ad880b6a8953f1dd026b","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.9.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.5.5_1775078226001_0.14028553073583283","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@amirdaraee/namewise","version":"0.6.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.6.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"a6a27439312d2740ec66cd20c6ed765ed1c4d073","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.6.0.tgz","fileCount":92,"integrity":"sha512-3BhZ+kYRk+yyrkoHikfYL4cCw9fCmlH2WdB5tKkgnt+v1lAdDqMs+j4XYn1AloOlKPKsyHWHKouenZv4E37pBQ==","signatures":[{"sig":"MEYCIQCTCATbumrkP1CoeJhFCbxYjYz4e0KKUmG+S5aCroJNBAIhAIJBW4AH2vapLO91UvQcVvikezCM2UgfAjm5PbKFSQkV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187842},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1a66b14c56729ac03fa97928378acdedbd10bffa","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.9.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.6.0_1775117082434_0.05329855483257617","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@amirdaraee/namewise","version":"0.6.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.6.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"e60fbed8f87e475f3e4187e036abd293e5c782e2","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.6.1.tgz","fileCount":92,"integrity":"sha512-3N3gPlpPQIbKulQ885FymNkmGnNFBP03BAn1Fb5VPeFXlZYTWAaW3Elob+/1h4cpP2HETsyUBCtTqOW5/HCsNg==","signatures":[{"sig":"MEQCIA0lS0fL2SJTkQYMTP2FP+iIfN7SPW7mhDftbhOsZfsAAiAGFgY6DNiGYa4wjjClxJPssEKXCwx81sgIOFldvBBHtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183205},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"0cb28c96bea4fec622b27f78b8c5431db77320dc","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.9.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.6.1_1775131844061_0.06443170471088555","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@amirdaraee/namewise","version":"0.6.2","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.6.2","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"2156664330d7b48d5a1264abc1cd1629eebd96a2","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.6.2.tgz","fileCount":92,"integrity":"sha512-sa1TXo8lTYUQogxGTGzOC/Rtti7vhskEnHRO3kf9GMDOCva9fT6LVcCfFOLeUUtuAGUcHdR1dTScBj0dCpI95w==","signatures":[{"sig":"MEQCIAXhh81CASKC1ZeXsbjJOVK1aUGSFlmlLL7NNM7dGpcMAiB0KBgIyHjEzf56bxQvUEO5zyfgBYCDs5PUYFcBCuzjfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185818},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"25c7811009f29e63874bbf14bfd75002f64551d2","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.9.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.0","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.6.2_1775135101411_0.7972240682579517","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@amirdaraee/namewise","version":"0.7.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.7.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"6de14a4b0441d87690d8f50953290369f1daad7e","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.7.0.tgz","fileCount":176,"integrity":"sha512-AWlpCADEBx6ckddiY/iVakqxK9QdJHbql7vxmtmjXqz/v9DvlQfxqw2nkCmr2mPyL2tCv4nN/NWRxl/eUYXyIA==","signatures":[{"sig":"MEUCIQDaaaqYo8uy4p5eVgNL32EQsh7XjY36/8156GEC38D7WgIgBsl8LUKb5OQwF/GlhvKMw1VbB0nQhc60ECTzI6DVy/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348708},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"c5ff592c57759372d5785a1ce73f78743de96dba","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.7.0_1775682105857_0.689606459426261","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@amirdaraee/namewise","version":"0.7.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.7.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"6ee9638d402eda4d5a3d6fa08c9734caf005ed60","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.7.1.tgz","fileCount":176,"integrity":"sha512-4OW7qqi1wQAiY1TlomzQ8D7elHmBk/nelF/ZZzNaHQuE9o++RTfVywHU4bVB10iKYtcVVBBKiXkWVPfmjIv7Dg==","signatures":[{"sig":"MEUCIHsvfotpU93tzLvrqF523sz0wEdQkn/CZZ2yAN6b+KHnAiEA2ET7qXbCWxgyyYOZWzzj9cpG1xncl/OFMGOFCgsM0BE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353992},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7420b1e755b9a53f3fdf28075b639c4ae70581f4","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.7.1_1775755955696_0.4760690174598128","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@amirdaraee/namewise","version":"0.7.2","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.7.2","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"5c48e3e4286b2d7623ff2720d46d4cef42c68068","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.7.2.tgz","fileCount":176,"integrity":"sha512-aUkd7mVt+nvIruyzeDMqjxM/gJfolnXE2GZ3Gb97PSOHiT3IsW7rUTYuPxIkGldYWpebP71IcxyjZipQOFuyrQ==","signatures":[{"sig":"MEUCIFIQhUkkUfi2Azb7T5aaq9RI8BJ0OO1twTno3AeKW9CNAiEA4Ld5EcXR1KubDTCKjVTMEpH0GY6oyHT5iuLXgA9FgOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357531},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b43349b4990b4d9dbfa8299730f87e45ba5de72d","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.7.2_1775761949936_0.17761002207443255","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@amirdaraee/namewise","version":"0.8.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.8.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"6fd937106b9d61ad27d0bf77d79da9310e57da10","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.8.0.tgz","fileCount":184,"integrity":"sha512-V1kg2rv0h1VY/O4og62P80f0FWuHDzmsc59MLMEem/UwO+1sBrjErSofQZsdmuQVjsq1aU+9LaXI9svaMujAew==","signatures":[{"sig":"MEUCIQDoO59rO3POtbZ8OdXEdihulswNwr2+dWMe7O1H7AhlggIgETOsgwZBm2gtxn076huNjBeqitqJ8aZKHQzPlvEvvDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361591},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"5422682273ec93eb3547b047fd9d0eeec8a37c62","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"exifr":"7.1.3","canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","heic-convert":"2.1.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@types/heic-convert":"2.1.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.8.0_1775838005118_0.8334580763290638","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@amirdaraee/namewise","version":"0.9.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.9.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"621f20f3d1e528d41621c46597f604a6040a0ed0","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.9.0.tgz","fileCount":196,"integrity":"sha512-jtzcDtwkEg2Hb4H2Mf8qgNy7wlOfHMmB/r0w+qoNC4qKjKJjjIOdUVH59f/os29HKD7OrZkIMV3P+281CRiyvA==","signatures":[{"sig":"MEYCIQDCJFMDdxr8R0q1Vpr9eGs6i9rUJGNIVJp+aZLjIKr6BwIhAOgGfSp++9pwDQP6O+ZUh8/1gI8Bhy3TWQWNY7+xEqI+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407110},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"c3552e7500e23cc95e1ed7c7660c3ac2cf579eda","scripts":{"dev":"tsx src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ora":"9.3.0","chalk":"5.6.2","exifr":"7.1.3","canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","heic-convert":"2.1.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","pdfkit":"0.8.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/pdfkit":"0.17.5","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@types/heic-convert":"2.1.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.9.0_1776025437715_0.44657487123390704","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@amirdaraee/namewise","version":"0.10.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@0.10.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"ab51864793767cea0b68e9f9148853aa0288ce40","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-0.10.0.tgz","fileCount":201,"integrity":"sha512-KPntu68WTimyoGuNmsVVSu22Yab1HeiQp4mv0STjudacYBofHHWADjG31kc4q2amhTlatf/lmj4LENQ4iVsojw==","signatures":[{"sig":"MEYCIQC1fhtBpEtHS8KXmYGOboI+RcSG0L4v47NyTam3Hgo2/wIhALY7TSDg35N1KyXw4yPm+7JUj3d540hFbP5f8vHmTbuC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422147},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"90684ea8fa153400f74c0fe40ba1c53c0f5d5b58","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.13.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"9.3.0","chalk":"5.6.2","exifr":"7.1.3","canvas":"3.2.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","heic-convert":"2.1.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0","pdf-to-png-converter":"3.14.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","eslint":"10.4.1","pdfkit":"0.8.3","vitest":"^3.2.4","@eslint/js":"10.0.1","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/pdfkit":"0.17.5","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","typescript-eslint":"8.61.0","@types/heic-convert":"2.1.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/namewise_0.10.0_1781043740167_0.4024725655681669","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@amirdaraee/namewise","version":"1.0.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@1.0.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"ecaad13b61cba4e46a047fe899102cde29cab8e1","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-1.0.0.tgz","fileCount":206,"integrity":"sha512-QBopOktJGNaXKaGEGBbWBkpsdregRQff+JofNpIBHD0cWhBuonHcpzEIYcaqdVasi9Gwii96xZblasraW4UFKQ==","signatures":[{"sig":"MEYCIQD6x3qtWSzaEcYlx/u5T0CA+QcMTWJgN8Wq9/qJDmz9iwIhAIW43rIATZUWAM39cRB5ToPZTefzAQoC6H6gKErV6h7d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439645},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"5cb32945cf9bffcce721aa0e14436b2ef6e46bdf","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.13.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"9.3.0","chalk":"5.6.2","exifr":"7.1.3","openai":"^5.19.1","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.4","inquirer":"^12.9.4","commander":"14.0.3","pdfjs-dist":"5.4.149","heic-convert":"2.1.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"^0.61.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","eslint":"10.4.1","pdfkit":"0.8.3","vitest":"^3.2.4","@eslint/js":"10.0.1","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/pdfkit":"0.17.5","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","typescript-eslint":"8.61.0","@types/heic-convert":"2.1.0","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/namewise_1.0.0_1781044980544_0.011572032740857718","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@amirdaraee/namewise","version":"1.0.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@1.0.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"1e27016ae758a4badef560e4b3c839026d8f16dc","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-1.0.1.tgz","fileCount":206,"integrity":"sha512-VYmSP3n6XUBR/AG3x+uw1ka//pNjFQ9+Wx0mvpi8OyunstABKnUGOP1l1Ef+IDJPhMj20nO0ADbiCZE+GxmAgw==","signatures":[{"sig":"MEYCIQDHW8rBO18ZqRERL0G4jYfj2itN7X7K4q9drNcsMPUKiAIhAJ66EI7wFx5p7LyMG2aDvIFnHCFEejl0p60jxWZUFSD1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441471},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"53f441ed46055480eace717bf6b02e8d9d489058","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"overrides":{"uuid":"^11.1.1"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.13.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"9.4.0","chalk":"5.6.2","exifr":"7.1.3","openai":"6.42.0","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.5","inquirer":"14.0.2","commander":"14.0.3","pdfjs-dist":"6.0.227","heic-convert":"2.1.0","pdf-extraction":"^1.0.2","@anthropic-ai/sdk":"0.104.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.22.4","eslint":"10.4.1","pdfkit":"0.19.0","vitest":"^3.2.4","@eslint/js":"10.0.1","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"25.9.2","@types/pdfkit":"0.17.5","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","typescript-eslint":"8.61.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"3.14.0"},"_npmOperationalInternal":{"tmp":"tmp/namewise_1.0.1_1781102982382_0.7392633953424461","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@amirdaraee/namewise","version":"1.1.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@1.1.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"30b79f3cc3400647b57c385960539dc7a1bfb034","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-1.1.1.tgz","fileCount":238,"integrity":"sha512-sECs3I9KxYkbjTy7POnJRszSRkOdydPmKk/ZcTIvc+aWWYhkn9GTZ7aiMRwf/Gdy/lg8eoaF/goDKNO+fcVT3w==","signatures":[{"sig":"MEUCIFjmrLEiwXjUUUycwRVVqLThBc6DW8APdK+Co4ovi0bXAiEAnEOYkDLGSqY8dM8a1muckupMJuEN7qZxJV9T1vtH+gY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449773},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d661a8149e8e0679482afe029210bcfc3657bf1e","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"overrides":{"uuid":"^11.1.1"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.16.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"9.4.1","chalk":"5.6.2","exifr":"7.1.3","openai":"6.45.0","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.6","inquirer":"14.0.2","commander":"15.0.0","pdfjs-dist":"6.0.227","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.110.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.0","eslint":"10.6.0","pdfkit":"0.19.1","vitest":"4.1.9","@eslint/js":"10.0.1","@vitest/ui":"4.1.9","typescript":"6.0.3","@types/node":"25.9.2","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.62.1","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.9"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_1.1.1_1783273832827_0.44070717241718804","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@amirdaraee/namewise","version":"1.2.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@1.2.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"2d62cdaf9bd50cb0f21a0cb7cd258f9666e3776d","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-1.2.0.tgz","fileCount":238,"integrity":"sha512-G0UctFWYV64yEezYQdgc/dn9655L9MNOuv/73xfpODML1njj83bcqAFqNQME/tm8JeLWMNBU/kG0NKQ+0l74DA==","signatures":[{"sig":"MEYCIQCuudyKLFeb/FFQKduG1maakjM07rxXcO8NVJiLBPuXoQIhALWelWXSRDC+CFn1SfzNZPXXI1pHjSpCCeMO5ZZHLgL+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468307},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"64170c9f436d37045a3a60ca9b47f665348292db","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"overrides":{"uuid":"^11.1.1"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.16.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"9.4.1","chalk":"5.6.2","exifr":"7.1.3","openai":"6.45.0","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.3.6","inquirer":"14.0.2","commander":"15.0.0","pdfjs-dist":"6.0.227","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.110.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.0","eslint":"10.6.0","pdfkit":"0.19.1","vitest":"4.1.9","@eslint/js":"10.0.1","@vitest/ui":"4.1.9","typescript":"6.0.3","@types/node":"25.9.2","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.62.1","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.9"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_1.2.0_1783856558437_0.3718019523238216","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@amirdaraee/namewise","version":"1.2.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@1.2.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"0ac250d8247c03be51b772ec69cbe07f21eae242","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-1.2.1.tgz","fileCount":238,"integrity":"sha512-2XJNFIBrSKCxzzNeRDbf/8eKAyZkhgcqIBEfP2ch0QWpbWAROyKhuAbbIeSG+gEzrSR/UWZ6q85wl+qW98jMrg==","signatures":[{"sig":"MEQCIHWqm1IyK8fSWk+9JULG3k/cIUob7HnywrwCREkdvdx4AiAwSR/u8S9LGHjwm2K2hmo2hKKDXapX4aXxWJk5FJvsUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469273},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"2436a01fcc9a95f696dbab794ba7281994a1556f","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"amirdaraee","email":"amirdaraee@gmail.com"},"overrides":{"uuid":"^11.1.1","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.16.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"9.4.1","chalk":"5.6.2","exifr":"7.1.3","openai":"6.45.0","exceljs":"^4.4.0","mammoth":"1.12.0","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.0.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.115.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.1","eslint":"10.8.0","pdfkit":"0.19.1","vitest":"4.1.10","@eslint/js":"10.0.1","@vitest/ui":"4.1.10","typescript":"6.0.3","@types/node":"26.1.2","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.65.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.10"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/namewise_1.2.1_1785503257482_0.9335110673088769","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@amirdaraee/namewise","version":"2.0.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.0.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"0c4985778090a5af0d7e3c27948e4a78a318ae9d","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.0.0.tgz","fileCount":232,"integrity":"sha512-wM7aT6IqdSyZoU0pFu9NZe9LKOpO5/ZwLYIlW1vJZdJKTsiT9LQtK3xtVahSzLfDYD33g+uVRamO7CwmdvbLfw==","signatures":[{"sig":"MEQCIA9pl/JFBeKBW7ou6hk8ggZ75r+VFPR++GOVFqMOW1ghAiB9dnqkmI1VfU/dtrq6GVIHQhUAFOoZCuPWx6fW7NmAYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfTmPu2ziAurkv6iGVI2Z4ZH3ALB7XRvAu/z4dc3KvQQIgMMPqrOTSGZLmWjxu3vVlA6qq9DNJcSiisQWKYRhwxTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":456835},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"121e2d547e2e05c35c7ead7f4e46844a12e075b4","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"5.6.2","exifr":"7.1.3","openai":"6.45.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.0.0_1789326019844_0.13093852814811324","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@amirdaraee/namewise","version":"2.1.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.1.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"2540a25b3d267e05a1a8cd6c110663b74d8751a8","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.1.0.tgz","fileCount":232,"integrity":"sha512-TOJnC1zNt3H1ha9aDOWQ2rOBPAaESS8BGYun7RbguLwQHuHRCf8tCLeY0h+sZUDUBSL1KvfV0+nu4OO31/4myQ==","signatures":[{"sig":"MEUCICjif11BvUxJopiuX4kB2c+RPpW4xmomDZ1PHo2np9ljAiEAzIYqWmtfGdEfF+YAuHd9bRX1ipyM0r+HbAl/rebAwNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBaIFcb1z0LsO6gp/ANdtkPnRMLMWS8iJSgXnyvs2QgnAiAyW7zYysiMOOysC404x9tzL6fALvw8tEqzz/o7WltAYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457374},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"6e8407429f6294a34e5e9526237c65081615c53a","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.1.0_1789327973863_0.4817741512564566","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@amirdaraee/namewise","version":"2.1.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.1.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"b47895094ca5662d2ca393322393324356174057","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.1.1.tgz","fileCount":236,"integrity":"sha512-HWHDhlvK5ikzK1cKuu3UBFk9pa/B6C0ujuelM6fgapmNPqGBBCdJaqzluM19Bwt0HyuD27zVvUvQT/mjoweH8w==","signatures":[{"sig":"MEYCIQDGLPG4yXkHfXmbm1DUgcyUCnaBGbtGD+sYs7t0RAmJlAIhAJ20noDnVrt7wodOJ4gL8HBvK2A5c4Z9Qqt50htae+fU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDWgwAgac0tAMEcKiyu7M2L206dHpUdooEOHIwQqiHCeAIhAISGYK/+AfcWiVWi/tVVl9cRJAg3Pd0X0tjEZh42sLRf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":466197},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"2ea22a4faf54923de51758c67d32ed118237f700","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.1.1_1789332310504_0.23824476804865236","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@amirdaraee/namewise","version":"2.2.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.2.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"e1ce952bc7d602d11ce9105000a8f1839d57343e","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.2.0.tgz","fileCount":240,"integrity":"sha512-OvlI+zCPe2yQKycxCt/J/4q6fVXAGJvorOGmrJwzDUm9I+eUTVIAVT1DYVoOn54QXEullMgAaFUuHc+sGbboeg==","signatures":[{"sig":"MEQCIAmylLuNYRs9sXQrNWnGgX8a2yURdciblWnfZvyglwGiAiBBKVG6EcPnPsf+Ub81lve8xxwP2I8r13LkfSZ0NrFkPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICR1+Fp6mJ4iPdhupDbAExQPIL2yfIEjKnB6wNN0UHuBAiEAuA/YmBt3iWnfZNV1CzWiuSC+U3mklBC2t62q2MLijGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":484885},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"5dd2f43aee91198b5d2a1c622c6e1aa22b9e1428","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.2.0_1789375094761_0.3088710691840768","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@amirdaraee/namewise","version":"2.2.1","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.2.1","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"5c81fdcd62cb9215e63bb981f6afe2ed264a1a4a","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.2.1.tgz","fileCount":240,"integrity":"sha512-xl4OZFlSEYhv4js9JwOoaTKznfIldljdnejcy3c0JjaZtzaR0H4fCup9gjXg4JVXNf04nX8J02mD5XEi653MQg==","signatures":[{"sig":"MEYCIQCAaXzS6a4IuAVw3yt+4T5SB6HYO65zAhWL6PqYWo0aYAIhAMCcqOlOUB66+n7zp4hFjYEqcMuT89aJsheyLIQcEGx8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC4uQwtXen62SY2feYAfWVf0WpMD5U/Nk5DztQtccPB2QIhALE/IVK8CLoJz0x7hSuFF+wC04PxzAvBdN6hHP1KWdfX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":487487},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"d4f8f54e1c0c235560ab94e8f25dc77ad14e5d0f","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.2.1_1789392953459_0.9021050666057759","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@amirdaraee/namewise","version":"2.3.0","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"author":{"name":"ai-rename contributors"},"license":"MIT","_id":"@amirdaraee/namewise@2.3.0","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"homepage":"https://github.com/amirdaraee/namewise#readme","bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"bin":{"namewise":"dist/index.js"},"dist":{"shasum":"6551866ff23a4be43a181df28b51c8f22966e786","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.3.0.tgz","fileCount":240,"integrity":"sha512-kO+gqiAzI4ONcfriLAKevLmIYoEqzEHGrdVkm28OjKxmulcTVZsTQh2ykSbUtVhfTkGg6wpGK5BiNBMG8BdASw==","signatures":[{"sig":"MEUCIFHTK3rKIGwgjWQ1BF6OmhKP6GqbXyH6RRTuVRrSJWK5AiEA6Okuz8N7AqfbgRJuk2sdCbfaR9r3LvaiRW2vHtuxdw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCokFguxOKGge2Ztyvj9G/kMp4rqedqJeC8nynGa84RgAIgHmCmVs2MgCfhQ4OGs8owb3CIJ9vH2UkuEpMG4BO8ti8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491091},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.13.0"},"gitHead":"4b1410fbdeae81d05a114a4cc0100d8657628321","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"4.1.11","@eslint/js":"10.0.1","@vitest/ui":"4.1.11","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"4.1.11"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/namewise_2.3.0_1789396457088_0.19567250191242724","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"_id":"@amirdaraee/namewise@2.3.1","bin":{"namewise":"dist/index.js"},"bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"dist":{"shasum":"b06a28af9759d8a9b9168731c18f3a17699293cc","tarball":"https://registry.npmjs.org/@amirdaraee/namewise/-/namewise-2.3.1.tgz","fileCount":244,"integrity":"sha512-hE8X3ozPMLdL0TJt6YBHkQHj406fQOtskNZOIc+fTq9RbhW8GMq3oU12iMTsGR2GGTqOxq4YgmtEs8CkCtmkmw==","signatures":[{"sig":"MEUCIQDprqlvIJ0SfTOZFd/mVmLlY6G5nzUb4EwhX6pLf/BZ/gIgH4AafRiNCuJ+GvVcED+LpwoYqSZ/JTfcGsA/Rw/ZWtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAONAUcZC++KB3HOHBABpk/7kNPV9nqAg1djzCoxo/dCAiB6mxpCT23UJLOzWPGNJ61Xgw2cj1WMmxgQIDD+gDvH7w=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amirdaraee%2fnamewise@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":496535},"main":"dist/index.js","name":"@amirdaraee/namewise","type":"module","types":"./dist/index.d.ts","author":{"name":"ai-rename contributors"},"engines":{"node":">=22.13.0"},"gitHead":"416b88322a2196173ecd5757c7198cc46fc5b6b6","license":"MIT","scripts":{"dev":"tsx src/index.ts","lint":"eslint .","test":"vitest","build":"tsc","smoke":"npm run build && npm run smoke:generate && node dist/index.js rename smoke-corpus --dry-run","start":"node dist/index.js","prepare":"npm run build","release":"npm run build && npm run test:run && npm version patch","test:ui":"vitest --ui","test:run":"vitest run","test:unit":"vitest run tests/unit","test:watch":"vitest --watch","release:major":"npm run build && npm run test:run && npm version major","release:minor":"npm run build && npm run test:run && npm version minor","test:coverage":"vitest run --coverage","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test:run","smoke:generate":"tsx scripts/generate-smoke-corpus.ts","test:integration":"vitest run tests/integration"},"version":"2.3.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ccb04aa5-e63b-461f-bc35-c9b0e261e1df"}},"homepage":"https://github.com/amirdaraee/namewise#readme","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"overrides":{"uuid":"^11.1.1","@xmldom/xmldom":"^0.8.15","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"_npmVersion":"11.19.0","description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","directories":{},"maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"ora":"9.4.1","chalk":"6.0.0","exifr":"7.1.3","openai":"7.15.0","exceljs":"^4.4.0","mammoth":"1.12.3","chokidar":"5.0.0","fs-extra":"11.4.0","inquirer":"14.2.2","commander":"15.0.0","pdfjs-dist":"6.2.108","heic-convert":"2.1.0","@anthropic-ai/sdk":"0.125.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.13","eslint":"10.10.0","pdfkit":"0.20.2","vitest":"5.0.0","@eslint/js":"10.0.1","@vitest/ui":"5.0.0","typescript":"6.0.3","@types/node":"26.4.1","@types/pdfkit":"0.17.6","@types/fs-extra":"^11.0.4","@types/inquirer":"9.0.10","typescript-eslint":"8.70.0","@types/heic-convert":"2.1.1","@vitest/coverage-v8":"5.0.0"},"optionalDependencies":{"canvas":"3.2.3","pdf-to-png-converter":"4.2.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/namewise_2.3.1_1789401259726_0.06744826310629959"}}},"time":{"created":"2025-09-05T22:31:28.371Z","modified":"2026-09-14T15:54:20.163Z","0.3.0":"2025-09-05T22:31:28.829Z","0.3.1":"2025-09-05T23:18:02.241Z","0.4.0":"2025-09-15T14:16:11.269Z","0.4.1":"2025-09-15T15:25:36.542Z","0.5.1":"2025-11-10T10:59:45.494Z","0.5.2":"2025-11-10T11:17:50.305Z","0.5.3":"2025-11-10T19:45:57.782Z","0.5.4":"2026-03-31T21:50:37.860Z","0.5.5":"2026-04-01T21:17:06.215Z","0.6.0":"2026-04-02T08:04:42.611Z","0.6.1":"2026-04-02T12:10:44.197Z","0.6.2":"2026-04-02T13:05:01.572Z","0.7.0":"2026-04-08T21:01:46.001Z","0.7.1":"2026-04-09T17:32:35.890Z","0.7.2":"2026-04-09T19:12:30.095Z","0.8.0":"2026-04-10T16:20:05.282Z","0.9.0":"2026-04-12T20:23:57.881Z","0.10.0":"2026-06-09T22:22:20.411Z","1.0.0":"2026-06-09T22:43:00.700Z","1.0.1":"2026-06-10T14:49:42.545Z","1.1.1":"2026-07-05T17:50:32.988Z","1.2.0":"2026-07-12T11:42:38.635Z","1.2.1":"2026-07-31T13:07:37.704Z","2.0.0":"2026-09-13T19:00:19.933Z","2.1.0":"2026-09-13T19:32:53.967Z","2.1.1":"2026-09-13T20:45:10.614Z","2.2.0":"2026-09-14T08:38:14.855Z","2.2.1":"2026-09-14T13:35:53.589Z","2.3.0":"2026-09-14T14:34:17.177Z","2.3.1":"2026-09-14T15:54:19.835Z"},"bugs":{"url":"https://github.com/amirdaraee/namewise/issues"},"author":{"name":"ai-rename contributors"},"license":"MIT","homepage":"https://github.com/amirdaraee/namewise#readme","keywords":["ai","rename","files","smart","content","cli","automation","organization","claude","openai"],"repository":{"url":"git+https://github.com/amirdaraee/namewise.git","type":"git"},"description":"AI-powered CLI tool that intelligently renames files based on their content using Claude or OpenAI","maintainers":[{"name":"amirdaraee","email":"amirdaraee@gmail.com"}],"readme":"# Namewise\n\n[![Tests](https://github.com/amirdaraee/namewise/actions/workflows/test.yml/badge.svg)](https://github.com/amirdaraee/namewise/actions/workflows/test.yml)\n[![npm](https://img.shields.io/npm/v/@amirdaraee/namewise.svg)](https://www.npmjs.com/package/@amirdaraee/namewise)\n[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](#testing--development)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-22.13+-green.svg)](https://nodejs.org/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n\n**AI-Powered File Renaming CLI Tool**\n\nAutomatically rename files based on their content using AI providers (Claude, OpenAI, Ollama, LMStudio). Transform messy filenames like `document1.pdf` or `IMG_20240315_143022.pdf` into descriptive names like `project-requirements-document.pdf` or `quarterly-sales-report-q4-2023.pdf`.\n\n> **Perfect for**: Document management, file organization, bulk renaming based on content analysis\n\n## Features\n\n- **AI-Powered Renaming**: Uses cloud providers (Claude, OpenAI) or local LLMs (Ollama, LMStudio) to generate descriptive filenames\n- **Privacy First**: Local LLM support means your files never leave your machine\n- **No-AI Mode**: Rename using file metadata only — no API key required (`--no-ai`)\n- **Interactive Setup**: First-time wizard to configure provider, API key, naming convention and more (`namewise init`)\n- **Batch Rename (no AI)**: Sequence-number, prefix/suffix, date-stamp, strip, or truncate filenames in bulk (`--sequence`, `--prefix`, `--suffix`, `--date-stamp`, `--strip`, `--truncate`)\n- **Pattern Rename**: Regex/sed-style find-and-replace on filenames, chainable, no AI needed (`--pattern`)\n- **Watch Mode**: Monitor a directory and auto-rename new files as they arrive (`namewise watch`)\n- **Sanitize**: Clean filenames by removing unsafe characters and applying naming conventions (`namewise sanitize`)\n- **Dedup**: Find and optionally delete duplicate files by content hash (`namewise dedup`)\n- **Apply Plans**: Execute a saved rename plan from a previous `--output` report (`namewise apply`)\n- **Config Management**: Manage `~/.namewise.json` from the CLI (`namewise config get|set|list`)\n- **Storage Stats**: Show file count and size breakdown by type (`namewise stats`)\n- **Tree View**: Visual directory tree with file sizes and per-folder summaries (`namewise tree`)\n- **File Info**: Detailed metadata for any file or directory including SHA-256 hash (`namewise info`)\n- **Organize**: Move files into subfolders by extension, date, or size (`namewise organize`)\n- **Flatten**: Move all nested files up to the root directory (`namewise flatten`)\n- **Clean Empty Dirs**: Find and remove empty directories recursively (`namewise clean-empty`)\n- **Find**: Search files by extension, name glob, size range, or date range (`namewise find`)\n- **Diff Directories**: Compare two directories by filename or content hash (`namewise diff`)\n- **Recursive Scanning**: Scan nested directories with an optional depth limit\n- **Undo Support**: Reverse any previous rename session via `namewise undo` (or `undo --all`)\n- **Config File**: Set persistent defaults in `~/.namewise.json` or per-project `.namewise.json`\n- **Concurrency Control**: Process multiple files in parallel with a configurable limit\n- **Conflict Auto-Numbering**: When a target name is taken, automatically appends `-2`, `-3`, etc.\n- **JSON Report Output**: Save a full rename report to a file with `--output`\n- **Personal File Templates**: Customizable templates for different file categories (documents, movies, music, series, photos, books)\n- **Smart Categorization**: Automatic file type detection or manual category selection\n- **Naming Convention Options**: 6 different formats (kebab-case, snake_case, camelCase, PascalCase, lowercase, UPPERCASE)\n- **Multiple File Types**: Supports PDF, DOCX, DOC, XLSX, XLS, TXT, MD, RTF, JPG, JPEG, PNG, GIF, BMP, TIFF, HEIC, and WEBP files\n- **Image Renaming**: Vision-capable models analyze image content to generate descriptive filenames\n- **EXIF Fallback**: `--no-ai` mode extracts EXIF metadata (description, date) from image files when available\n- **Dry Run Mode**: Preview changes before renaming files; when `dryRun` is set in config, you're offered to apply the previewed renames right away\n- **Size Limits**: Configurable maximum file size limits\n- **Session Logs**: Structured JSON logs written to `~/.namewise/logs/` when enabled with `--log` or `\"log\": true` in config\n\n## Quick Start\n\n```bash\n# Install\nnpm install -g @amirdaraee/namewise\n\n# Run the interactive setup wizard (recommended for first use)\nnamewise init\n\n# Preview renames (recommended first)\nnamewise rename ./my-documents --dry-run --provider claude\n\n# Actually rename\nnamewise rename ./my-documents --provider claude --api-key your-api-key\n```\n\n## Installation\n\n```bash\nnpm install -g @amirdaraee/namewise\n```\n\n> **Note on optional dependencies:** `canvas` and `pdf-to-png-converter` are *optional* native packages used only for scanned-PDF and image vision analysis. If your machine lacks a C/C++ build toolchain they simply won't install — the CLI and all text-based features still work. When a scanned PDF or image is encountered without them, namewise skips it with a clear message explaining how to enable support (`npm install -g canvas pdf-to-png-converter`).\n\n## Usage\n\n### Command Structure\n```bash\nnamewise init                               # First-time setup wizard\nnamewise rename [directory] [options]       # AI-powered rename (or batch rename with flags)\nnamewise sanitize [directory] [options]     # Clean filenames without AI\nnamewise dedup [directory] [options]        # Find and remove duplicate files\nnamewise watch [directory] [options]        # Auto-rename new files as they arrive\nnamewise apply <plan.json> [options]        # Execute a saved rename plan\nnamewise config <list|get|set> [key] [val] # Manage ~/.namewise.json\nnamewise undo [session-id] [options]        # Reverse a previous rename session\nnamewise stats [directory] [options]        # Storage breakdown by file type\nnamewise tree [directory] [options]         # Visual directory tree with sizes\nnamewise info <path>                        # Metadata for a file or directory\nnamewise organize [directory] [options]     # Move files into subfolders\nnamewise flatten [directory] [options]      # Move all nested files to root\nnamewise clean-empty [directory] [options]  # Remove empty directories\nnamewise find [directory] [options]         # Search files by criteria\nnamewise diff <dir1> <dir2> [options]       # Compare two directories\n```\n\n### `init`\n\nRun `namewise init` to launch the interactive setup wizard. It will ask:\n\n| Step | Question | Notes |\n|------|----------|-------|\n| 1 | **Scope** — global (`~/.namewise.json`) or project (`./.namewise.json`) | Global applies everywhere |\n| 2 | **AI provider** — claude, openai, ollama, lmstudio | |\n| 3 | **API key** | Cloud providers only; stored in config file |\n| 4 | **Base URL** | Local providers only; skipped if using the default |\n| 5 | **Model** | Leave blank to use the provider default |\n| 6 | **Naming convention** | kebab-case, snake_case, camelCase, etc. |\n| 7 | **Output language** | e.g. `English`, `French` — leave blank to match document language |\n| 8 | **Always dry-run by default?** | Recommended `Yes` for first-time users |\n| 9 | **Your name** | Optional; used in document/photo templates |\n| 10 | **Context** | Optional; guides AI naming for files in this scope |\n\nAfter init, all saved settings apply automatically — no flags needed on every run.\n\n### `rename` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--provider` | AI provider (`claude`, `openai`, `ollama`, `lmstudio`) | `claude` |\n| `--base-url` | Base URL for local LLM providers | Auto-detected |\n| `--model` | Model name (overrides provider default for any provider) | Provider default |\n| `--api-key` | API key for the chosen provider | Interactive prompt |\n| `--case` | Naming convention (kebab-case, snake_case, camelCase, PascalCase, lowercase, UPPERCASE) | `kebab-case` |\n| `--template` | File category template (document, movie, music, series, photo, book, general, auto) | `general` |\n| `--name` | Personal name to include in filenames | - |\n| `--date` | Date format (YYYY-MM-DD, YYYY, YYYYMMDD, none) | `none` |\n| `--dry-run` | Preview changes without renaming | `false` |\n| `--max-size` | Maximum file size in MB (images/PDFs above it are still analyzed via a compressed copy) | `10` |\n| `-r, --recursive` | Recursively scan subdirectories | `false` |\n| `--depth <n>` | Maximum recursion depth (requires `--recursive`) | Unlimited |\n| `--concurrency <n>` | Files to process in parallel | `3` |\n| `--output <path>` | Save rename report as JSON to this path | - |\n| `--pattern <pattern>` | Regex rename pattern (repeatable); skips AI | - |\n| `--no-ai` | Use file metadata instead of AI (no API call) | `false` |\n| `--language <lang>` | Output language for generated filenames (e.g. `English`, `French`) | Document language |\n| `--context <text>` | Free-form context about the files to guide AI naming (e.g. `\"These are John's 2023 tax documents\"`) | - |\n\n### `sanitize` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--dry-run` | Preview changes without renaming | `false` |\n| `-r, --recursive` | Process subdirectories | `false` |\n| `--case` | Naming convention to apply | `kebab-case` |\n\n### `dedup` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `-r, --recursive` | Scan subdirectories | `false` |\n| `--delete` | Delete duplicates after confirmation | `false` |\n\n### `undo` Options\n\n| Option | Description |\n|--------|-------------|\n| `--list` | List recent rename sessions with their IDs |\n| `--all` | Undo all sessions at once |\n| `[session-id]` | Undo a specific session by ID (default: most recent) |\n\n### Batch rename flags (on `rename`, no AI required)\n\n| Flag | Description | Example |\n|------|-------------|---------|\n| `--sequence` | Replace filenames with padded sequence numbers | `001.pdf`, `002.pdf` |\n| `--sequence-prefix <p>` | Prefix for sequence numbers | `--sequence-prefix photo` → `photo-001.jpg` |\n| `--prefix <text>` | Prepend text to every filename stem | `--prefix \"2024-\"` |\n| `--suffix <text>` | Append text to every filename stem | `--suffix \"-final\"` |\n| `--date-stamp <created\\|modified>` | Prepend file date to stem | `--date-stamp modified` |\n| `--strip <pattern>` | Remove a substring or regex from stems | `--strip \"IMG_\"` |\n| `--truncate <n>` | Truncate stems to N characters | `--truncate 20` |\n\n### `stats` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `-r, --recursive` | Include subdirectories | `false` |\n\n### `tree` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--depth <n>` | Maximum depth to display | Unlimited |\n\n### `organize` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--by <mode>` | Organisation mode: `ext` \\| `date` \\| `size` | `ext` |\n| `-r, --recursive` | Include subdirectories | `false` |\n| `--dry-run` | Preview without moving files | `false` |\n\n### `flatten` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--dry-run` | Preview without moving files | `false` |\n\n### `clean-empty` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--dry-run` | Preview without deleting directories | `false` |\n\n### `find` Options\n\n| Option | Description |\n|--------|-------------|\n| `--ext <ext>` | Filter by file extension (e.g. `pdf`) |\n| `--name <glob>` | Filter by filename glob (e.g. `\"*.report*\"`) |\n| `--larger-than <size>` | Minimum size (e.g. `5mb`, `100kb`, `500`) |\n| `--smaller-than <size>` | Maximum size (e.g. `10mb`) |\n| `--newer-than <date>` | Modified after date (`YYYY-MM-DD`) |\n| `--older-than <date>` | Modified before date (`YYYY-MM-DD`) |\n| `-r, --recursive` | Search subdirectories (default: `true`) |\n\n### `diff` Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--by <mode>` | Compare by `name` or `hash` (content-aware, detects renames) | `name` |\n| `-r, --recursive` | Compare subdirectories | `true` |\n\n### Examples\n\n**First-time setup:**\n```bash\nnamewise init\n# Walks through provider, API key, naming convention, dry-run preference, and your name\n# Saves to ~/.namewise.json or ./.namewise.json\n```\n\n**Basic usage:**\n```bash\nnamewise rename ./documents --dry-run\n# Result: quarterly-financial-report.pdf\n```\n\n**Recursive scan with depth limit:**\n```bash\nnamewise rename ./projects --recursive --depth 2 --dry-run\n```\n\n**Save a JSON report:**\n```bash\nnamewise rename ./documents --output ./report.json\n```\n\n**Rename using metadata only (no API key needed):**\n```bash\nnamewise rename ./documents --no-ai --dry-run\n```\n\n**Force output language (e.g. rename Farsi documents with English names):**\n```bash\nnamewise rename ./farsi-docs --language English --dry-run\nnamewise rename ./documents --language French\n```\n\n**Provide context to guide AI naming:**\n```bash\nnamewise rename ./tax-docs --context \"These are John's 2023 tax documents\" --dry-run\nnamewise rename ./contracts --context \"Legal agreements for Acme Corp projects\"\n```\n\n**Regex pattern rename (no AI):**\n```bash\nnamewise rename ./docs --pattern \"s/IMG_//i\" --pattern \"s/ /-/g\" --dry-run\n```\n\n**Clean filenames without AI:**\n```bash\nnamewise sanitize ./downloads --dry-run\nnamewise sanitize ./downloads --case snake_case\n```\n\n**Find and remove duplicate files:**\n```bash\nnamewise dedup ./photos --recursive\nnamewise dedup ./photos --recursive --delete\n```\n\n**Watch a directory and auto-rename new files:**\n```bash\nnamewise watch ./inbox --provider claude --template document\nnamewise watch ./inbox --no-ai --case snake_case\n```\n\n**Apply a saved rename plan:**\n```bash\nnamewise rename ./docs --output ./plan.json --dry-run\nnamewise apply ./plan.json\n```\n\n**Manage config from the CLI:**\n```bash\nnamewise config list\nnamewise config get provider\nnamewise config set case snake_case\n```\n\n**Undo the last rename session:**\n```bash\nnamewise undo\nnamewise undo --all\n```\n\n**List and undo a specific session:**\n```bash\nnamewise undo --list\nnamewise undo 2026-04-02T10:30:00.000Z\n```\n\n**Batch rename without AI:**\n```bash\nnamewise rename ./photos --sequence --sequence-prefix holiday\n# holiday-001.jpg, holiday-002.jpg, ...\n\nnamewise rename ./docs --prefix \"2024-\" --dry-run\nnamewise rename ./exports --suffix \"-final\" --truncate 30\nnamewise rename ./downloads --strip \"IMG_\" --date-stamp modified\n```\n\n**Storage stats:**\n```bash\nnamewise stats ./documents\nnamewise stats ./projects --recursive\n```\n\n**Directory tree:**\n```bash\nnamewise tree ./src\nnamewise tree ./src --depth 3\n```\n\n**File or directory info:**\n```bash\nnamewise info ./report.pdf\nnamewise info ./downloads\n```\n\n**Organise files into subfolders:**\n```bash\nnamewise organize ./downloads --by ext --dry-run\nnamewise organize ./photos --by date\nnamewise organize ./backup --by size --dry-run\n```\n\n**Flatten nested directories:**\n```bash\nnamewise flatten ./inbox --dry-run\nnamewise flatten ./inbox\n```\n\n**Remove empty directories:**\n```bash\nnamewise clean-empty ./projects --dry-run\nnamewise clean-empty ./projects\n```\n\n**Find files by criteria:**\n```bash\nnamewise find ./downloads --ext pdf\nnamewise find ./photos --larger-than 5mb --newer-than 2024-01-01\nnamewise find . --name \"*.report*\" --smaller-than 1mb\n```\n\n**Compare two directories:**\n```bash\nnamewise diff ./backup ./original\nnamewise diff ./backup ./original --by hash   # detects renamed files\n```\n\n**Personal documents with your name and date:**\n```bash\nnamewise rename ./documents --template document --name \"john\" --date \"YYYYMMDD\" --dry-run\n# Result: driving-license-john-20250905.pdf\n```\n\n**Movies with automatic detection:**\n```bash\nnamewise rename ./movies --template auto --dry-run\n# Result: the-dark-knight-2008.mkv\n```\n\n**TV series with season/episode detection:**\n```bash\nnamewise rename ./shows --template auto --dry-run\n# Result: breaking-bad-s01e01.mkv\n```\n\n**Snake case naming convention:**\n```bash\nnamewise rename ./docs --case snake_case --dry-run\n# Result: project_requirements_document.pdf\n```\n\n**Local LLMs (no API key required):**\n```bash\n# Ollama - requires 'ollama serve' running\nnamewise rename ./documents --provider ollama --dry-run\n\n# LMStudio - requires local server enabled\nnamewise rename ./contracts --provider lmstudio --dry-run\n```\n\n**Cloud providers:**\n```bash\nexport ANTHROPIC_API_KEY=your-key\nnamewise rename ./documents --provider claude --dry-run\n\nexport OPENAI_API_KEY=your-key\nnamewise rename ./files --provider openai --dry-run\n\nexport NINEROUTER_API_KEY=your-9router-key\nnamewise rename ./files --provider 9router --model glm/glm-5.1 --dry-run\n```\n\n**Before and after:**\n```\nBefore:\n├── IMG_20240315_143022.pdf\n├── document1.docx\n├── Report Q4 2023 FINAL FINAL.xlsx\n\nAfter:\n├── quarterly-financial-report-q4-2023.pdf\n├── project-requirements-specification.docx\n├── annual-sales-performance-summary.xlsx\n```\n\n## Config File\n\nSet persistent defaults so you don't have to repeat flags on every run.\n\n**User-wide defaults** (`~/.namewise.json`):\n```json\n{\n  \"provider\": \"claude\",\n  \"case\": \"snake_case\",\n  \"concurrency\": 5\n}\n```\n\n**Per-project overrides** (`<targetDir>/.namewise.json`):\n```json\n{\n  \"template\": \"document\",\n  \"name\": \"alice\",\n  \"date\": \"YYYYMMDD\"\n}\n```\n\nPriority order (highest to lowest): CLI flags > project config > user config.\n\nSupported keys: `provider`, `apiKey`, `case`, `template`, `name`, `date`, `maxSize`, `model`, `baseUrl`, `concurrency`, `recursive`, `depth`, `output`, `dryRun`, `language`, `context`.\n\n## Supported File Types\n\n| Type | Extensions | Parser |\n|------|------------|--------|\n| PDF Documents | `.pdf` | pdfjs-dist |\n| Microsoft Word | `.docx`, `.doc` | mammoth |\n| Microsoft Excel | `.xlsx`, `.xls` | exceljs |\n| Text Files | `.txt`, `.md`, `.rtf` | Native fs |\n| Images | `.jpg`, `.jpeg`, `.png`, `.gif`, `.bmp`, `.tiff`, `.heic`, `.webp` | canvas + heic-convert |\n\n## File Templates\n\n| Template | Pattern | Example Output | When to Use |\n|----------|---------|----------------|-------------|\n| `general` | `{content}` | `meeting-notes-q4-2024.pdf` | Default — simple descriptive names |\n| `document` | `{content}-{name}-{date}` | `driving-license-john-20250905.pdf` | Personal documents, contracts, certificates |\n| `movie` | AI provides full name | `the-dark-knight-2008.mkv` | Movie files — AI includes release year |\n| `series` | AI provides full name | `breaking-bad-s01e01.mkv` | TV series — AI includes season/episode |\n| `music` | AI provides full name | `the-beatles-hey-jude.mp3` | Music files — AI includes artist name |\n| `photo` | `{content}-{name}-{date}` | `vacation-paris-john-20240715.jpg` | Personal photos |\n| `book` | AI provides full name | `george-orwell-1984.pdf` | Books — AI includes author name |\n| `auto` | *Automatic* | *Varies by detected type* | Let AI detect and choose best template |\n\n## AI Provider Setup\n\n| Provider | Vision Support | API Key Required | Default Model |\n|----------|---------------|-----------------|---------------|\n| `claude` | Yes | Yes (`ANTHROPIC_API_KEY`) | `claude-opus-4-8` |\n| `openai` | Yes | Yes (`OPENAI_API_KEY`) | `gpt-5.5` |\n| `ollama` | Model-dependent | No | `llama3.1` |\n| `lmstudio` | Model-dependent | No | `local-model` |\n| `9router` | Model-dependent | Yes (`NINEROUTER_API_KEY`) | none — `--model` required |\n\n**9Router** is a self-hosted gateway that fans one OpenAI-compatible endpoint out to 40+ upstream\nproviders with tiered fallback. It runs locally (default `http://localhost:20128`) but authenticates\nwith its own issued key, separate from the upstream provider keys it holds. Models are namespaced by\nupstream, so there is no default — pass one:\n\n```bash\nexport NINEROUTER_API_KEY=your-9router-key\nnamewise rename ./documents --provider 9router --model glm/glm-5.1 --dry-run\n```\n\nPrefixes include `cc/`, `cx/`, `gh/`, `glm/`, `minimax/`, `kr/` and `vertex/`. Because 9Router fronts\npaid upstreams, token counts are reported in the summary rather than shown as `N/A`. The base URL\nmust point at localhost; tunnel a remote gateway rather than naming it directly.\n\n### Unattended runs\n\n`rename`, `dedup --delete` and `undo --all` ask for confirmation. Pass `-y`/`--yes` to skip it, for\ncron jobs and CI:\n\n```bash\nnamewise rename ./inbox --provider 9router --model cheap --yes\nnamewise dedup ./archive --recursive --delete --yes\n```\n\nWith `--yes`, a missing API key fails with a clear error instead of prompting — an unattended run\nshould never block on a question nobody is there to answer.\n\nAdd `--log` to write a JSON session log to `~/.namewise/logs/` (the last 20 runs are kept).\n\n> A saved API key is scoped to the provider it was saved for. Selecting a different provider ignores\n> it — with a warning — rather than forwarding a cloud key to whatever gateway `--base-url` names.\n\n> **Image files** require a vision-capable model. If the selected model does not support vision, the file is recorded as failed and skipped — no rename is attempted.\n\n### Image Files\n\nTo rename image files, use any vision-capable provider:\n\n```bash\n# Claude (vision enabled by default)\nnamewise rename ./photos --provider claude --dry-run\n\n# OpenAI GPT-4o (vision enabled by default)\nnamewise rename ./photos --provider openai --dry-run\n\n# Ollama with a vision model\nnamewise rename ./photos --provider ollama --model llava --dry-run\n```\n\nFor `--no-ai` mode, Namewise reads EXIF metadata from image files:\n- Uses `ImageDescription` or `UserComment` if present\n- Falls back to `DateTimeOriginal` → `photo-YYYY-MM-DD` format\n- Falls back to the original filename stem if no EXIF data is found\n\n```bash\nnamewise rename ./photos --no-ai --dry-run\n# Result: photo-2024-07-15.jpg (from EXIF date) or vacation-paris.jpg (from filename)\n```\n\n### Local LLMs (no API keys required)\n\n**Ollama**\n1. Install: Download from [ollama.ai](https://ollama.ai)\n2. Start server: `ollama serve`\n3. Pull a model: `ollama pull llama3.1`\n4. Use: `--provider ollama`\n\n**LMStudio**\n1. Install: Download from [lmstudio.ai](https://lmstudio.ai)\n2. Download and load a model in LMStudio\n3. Enable \"Local Server\" mode\n4. Use: `--provider lmstudio`\n\n### Cloud Providers (API keys required)\n\n**Claude (Anthropic)** — recommended for accuracy\n1. Visit [Anthropic Console](https://console.anthropic.com/)\n2. Generate an API key\n3. `export ANTHROPIC_API_KEY=your-key`\n4. Default model: `claude-opus-4-8` (override with `--model`)\n\n**OpenAI**\n1. Visit [OpenAI Platform](https://platform.openai.com/api-keys)\n2. Create an API key\n3. `export OPENAI_API_KEY=your-key`\n4. Default model: `gpt-5.5` (override with `--model`)\n\n## How It Works\n\n1. **File Discovery**: Scans directory (recursively if `--recursive`) for supported file types\n2. **Content Extraction**: Uses specialized parsers to extract text and metadata; falls back to vision AI for scanned PDFs\n3. **AI Processing**: Sends up to 5000 characters of content plus metadata to the configured AI provider for filename suggestions\n4. **Template & Convention**: Applies the chosen category template and naming convention; for `document` and `photo` templates, uses the document's own creation date from metadata when available\n5. **Conflict Resolution**: If the target name exists, auto-numbers (`-2`, `-3`, …)\n6. **Rename / Preview**: Renames files on disk, or shows a preview in dry-run mode\n7. **History**: Saves the session to `~/.namewise/history.json` for later undo (includes token usage for cloud providers)\n\n### Token Usage\n\nAfter each `rename` session using a cloud provider (Claude or OpenAI), Namewise displays token counts in the stats summary:\n\n```\nStats: 1.2s elapsed | 0.45 MB processed | 2 PDF, 1 TXT\nTokens: 1,240 input / 87 output\n```\n\nToken usage is also saved to `~/.namewise/history.json` alongside the rename records, so you can track API consumption over time.\n\nFor local providers (Ollama, LMStudio), token counts are not available:\n\n```\nTokens: N/A (local provider)\n```\n\n## Session Logs\n\nSession logging is **off by default**. Enable it with `--log` on any command, or set it permanently in your config file.\n\n```bash\n# Enable for a single run\nnamewise rename ./docs --dry-run --log\n\n# Enable permanently\nnamewise config set log true\n```\n\nWhen enabled, a structured log is written to `~/.namewise/logs/` for every run.\n\n**Log file naming:** `YYYY-MM-DDTHH-MM-SS-<command>.log`  \nExample: `2026-04-12T10-30-00-rename.log`\n\n**Format:** Newline-delimited JSON (one object per line):\n\n```json\n{\"ts\":\"2026-04-12T10:30:00.000Z\",\"level\":\"info\",\"msg\":\"session_start\",\"command\":\"rename\",\"directory\":\"/Users/amir/docs\",\"provider\":\"claude\",\"dryRun\":false}\n{\"ts\":\"2026-04-12T10:30:02.456Z\",\"level\":\"warn\",\"msg\":\"vision_skipped\",\"file\":\"photo.jpg\",\"reason\":\"provider does not support vision\"}\n{\"ts\":\"2026-04-12T10:30:03.789Z\",\"level\":\"error\",\"msg\":\"ParseError\",\"hint\":\"The file may be corrupt or in an unsupported format\",\"stack\":\"ParseError: ...\"}\n{\"ts\":\"2026-04-12T10:30:04.000Z\",\"level\":\"info\",\"msg\":\"session_end\",\"total\":55,\"succeeded\":54,\"failed\":1,\"elapsedMs\":4123}\n```\n\n**Auto-pruned** to the 20 most recent files — older logs are deleted automatically at the start of each run.\n\n**Reading logs:**\n\n```bash\n# View the latest log\ncat ~/.namewise/logs/$(ls -t ~/.namewise/logs/ | head -1)\n\n# Pretty-print with jq\ncat ~/.namewise/logs/2026-04-12T10-30-00-rename.log | jq .\n\n# Show only errors\ncat ~/.namewise/logs/2026-04-12T10-30-00-rename.log | jq 'select(.level == \"error\")'\n```\n\n**Error output:** When a known error occurs, Namewise shows the message and a hint directly in the terminal:\n\n```\n✗  API key required for Claude\n   → Check your API key — ensure ANTHROPIC_API_KEY or OPENAI_API_KEY is set, or run: namewise config set apiKey YOUR_KEY\n```\n\nFor unexpected errors, the terminal either points to the log (if `--log` was used) or prompts you to enable it:\n\n```\n# With --log enabled:\n✗  An unexpected error occurred.\n   → See log: ~/.namewise/logs/2026-04-12T10-30-00-rename.log\n\n# Without --log:\n✗  An unexpected error occurred.\n   → Run with --log for detailed error information.\n```\n\n## Safety Features\n\n- **Dry Run Mode**: Always preview changes first with `--dry-run`\n- **Undo**: Reverse any session with `namewise undo` (or `undo --all`)\n- **Conflict Auto-Numbering**: Never overwrites an existing file\n- **File Size Limits**: Files above `--max-size` are skipped — except images and PDFs, which are analyzed through a size-reduced copy (originals are never modified); a 100MB hard ceiling applies\n- **Extension Preservation**: Original file extensions are never changed\n- **Comprehensive Testing**: 1,000+ tests with 100% coverage, run on Node 22/24 in CI\n\n## Testing & Development\n\n```bash\n# Development\nnpm run dev          # Run in development mode\nnpm run build        # Build TypeScript\nnpm start            # Run built version\n\n# Testing\nnpm test             # Run all tests (watch mode)\nnpm run test:run     # Run tests once\nnpm run test:coverage # Coverage report\nnpm run test:unit    # Unit tests only\nnpm run test:integration # Integration tests only\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Make your changes and add tests\n4. Run tests: `npm test`\n5. Submit a pull request\n\n## Requirements\n\n- **Node.js**: 22.13.0 or higher\n- **AI Provider**: Choose one:\n  - **Local**: Ollama or LMStudio (no API key needed)\n  - **Cloud**: Claude (Anthropic) or OpenAI API key\n\n## Troubleshooting\n\n<details>\n<summary>Common Issues</summary>\n\n**Enable session logging for details** — run with `--log` to capture a full structured log in `~/.namewise/logs/`:\n```bash\nnamewise rename ./docs --log\n```\nWhen an unexpected error occurs with `--log` enabled, the terminal prints the exact log path:\n```\n✗  An unexpected error occurred.\n   → See log: ~/.namewise/logs/2026-04-12T10-30-00-rename.log\n```\n\n**PDF parsing errors:**\n- Ensure the PDF is not password protected\n- Check the file is not corrupted\n- Try reducing the `--max-size` limit\n\n**API errors (cloud providers):**\n- Verify the API key is valid and has sufficient credits\n- Check your internet connection\n- Run again to confirm the error is not transient (rate limits auto-hint wait time)\n\n**Local LLM connection errors:**\n- Ensure Ollama server is running (`ollama serve`)\n- Check LMStudio local server is enabled\n- Verify correct base URL and port\n- Confirm the model is loaded and available\n\n**Permission errors:**\n- Check file permissions\n- Run with appropriate user privileges\n- Ensure files are not open in another application\n\n</details>\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for the full release history.\n\n## License\n\n[MIT License](./LICENSE) — Feel free to use, modify, and distribute this project.\n\n---\n\n[Report Bug](https://github.com/amirdaraee/namewise/issues) • [Request Feature](https://github.com/amirdaraee/namewise/issues)\n","readmeFilename":"README.md"}