{"_id":"@bramato/openrouter-mock-generator","_rev":"12-71dd7504606365a24e048d3559d6ed70","name":"@bramato/openrouter-mock-generator","dist-tags":{"latest":"2.1.1"},"versions":{"1.0.0":{"name":"@bramato/openrouter-mock-generator","version":"1.0.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.0.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js"},"dist":{"shasum":"eb59806b96a64408024d936ccc0f5fe6f6591801","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.0.0.tgz","fileCount":34,"integrity":"sha512-tLQsbMohbcm9Zlv3z4goHEUmTmKWhAD4jN1Yle6V9BBxe5gauVNYEumdZ4d03kWtnbFJ5KEOrKqgLHqk+yg9+Q==","signatures":[{"sig":"MEUCIQDx3raay8p/ewi1iycs+2zwWbmjA5XJmsgTUiK04k62+wIgXZa43vY52QpKJQk6un7WjtUrrdQnFO8woOfSInoet9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77186},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"b6ab319371eda33b63ca505a7b53c78acf239395","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@bramato/openrouter-mock-generator":"file:bramato-openrouter-mock-generator-1.0.0.tgz"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.0.0_1754397023266_0.7008995499003932","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bramato/openrouter-mock-generator","version":"1.0.1","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.0.1","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js"},"dist":{"shasum":"8d73f016f1b389303d96789558359d1548ccfd94","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.0.1.tgz","fileCount":34,"integrity":"sha512-F5pEK6DidZ0fWr6pK2JmTXRgIbuOSZ/BzenwZR/RPU+Z+rYCGqdbRn9dUNIOTsdCc36w2SXoSB50fscob/5ojA==","signatures":[{"sig":"MEUCIQDaRzEfXcLZbn4l0xKj7IWjP8tegL//8HJLRzzYEelIKwIgMNuYO4kJaRIlXOz2ZlYnRpiHqkiJEsgi8NgHYYrgQKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77369},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"9114fdbac50541beb49d7dc42ae11065810a89bf","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.0.1_1754397262555_0.43781681882246115","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bramato/openrouter-mock-generator","version":"1.1.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.1.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"453b51ccf6e0d9545e26c9e482737b6cee7cc9fd","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.1.0.tgz","fileCount":78,"integrity":"sha512-244YC7y97Ut41FBb0Utbd0Fm5H0s+a65sm0cU3uSZK3ZzzEaOnPQySmEx4EzBCmEJLEaZ8f/PGwezYzc3EYaJQ==","signatures":[{"sig":"MEUCIQDbJlLohMVgX+rKS3Ia4WF4YM4oPBYP1ejYqE979+b6vAIgDiPwG+/SpnDRKU7DfRW6UmCdLZVgqZx7DVzNYMKdRS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398134},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"e14a0a64690c6becc2b6a8b748e4a996bdeb5428","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.1.0_1754404869297_0.7448783921909994","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bramato/openrouter-mock-generator","version":"1.1.1","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.1.1","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"910d104ce71aaa03e05bd970a57c04fd39a636d8","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.1.1.tgz","fileCount":78,"integrity":"sha512-9bBaatyVZppJQsMTBadOMVgLS/fiwck+SK5avfBcvr+yjU9nlLXnZWwDatLTTXqunl6LCieQLKQMvzpXtpGnvg==","signatures":[{"sig":"MEUCIG29IA0KHzeqbrT0OyTQFWpi7eHlHtgH9nZePZXv05TJAiEAxr550HUgWpJhE+UjyjaHi9tLV7NbB33o91nH0BaphMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394538},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"e1101276ec0a9cc1df7e29615fd6c2410369e007","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.1.1_1754405626231_0.4837066009253026","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bramato/openrouter-mock-generator","version":"1.1.2","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.1.2","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"71d41e1831fc79ac02dea7263fe07acf4d27c24c","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.1.2.tgz","fileCount":78,"integrity":"sha512-WqI8iKsZD+48mcPLzJFuUtt8T0EpUUjKayGk8l7mA8nTdxQlYgvcg9DKg7Mt+UoWrgX8jXcmZqKDCZTZxmMgzQ==","signatures":[{"sig":"MEYCIQChnAl8/NRoIbxFlvBnXoUUpRUO5v8YiRCsj27Jm+MdGwIhAPj93WHNZunkxM91UvUV74JUOjINyxcGZztqqbgsS/W1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395359},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"b607caf43132bb2605df1347a9b70d2b3b406936","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.1.2_1754406877438_0.6280445528603678","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bramato/openrouter-mock-generator","version":"1.2.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.2.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"15651cd0fc06ec90d8c2afa90e09df89d0d1a155","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.2.0.tgz","fileCount":82,"integrity":"sha512-DQvFwcZMcl/Y4zKzwjE4jNNWq6uCly++8wl+TsKZOUcSNt9367ZvOmYVO5A3vc2RYoADLBzopb5CP7sX91UKzw==","signatures":[{"sig":"MEYCIQD827PJ4eyw+d8Ponjd4zl29sd/idWwx6Nk/3hEAxOgYAIhAM2HGIgZUIJl4RzC4qIoIrAD880qvWIkyl+IyN5gP9pM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420486},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"f78414d6da1402d62a7188d2009ed0115807580c","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.2.0_1754407770755_0.6570051965019243","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bramato/openrouter-mock-generator","version":"1.3.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.3.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"ced669fe5c6f794e7262844e800c4cd5b7bbbac2","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.3.0.tgz","fileCount":86,"integrity":"sha512-5iq0jPAMh/As5X0b6drk/0BiTPnQnxTZpH8hHv65OI/9VZznQyBNwTMA/uNFwwQ7bAQYMEuyZuxf0k6mgnNd0w==","signatures":[{"sig":"MEUCIHNc5D3Oa61FESw5beuo5Vfbml1Qn0qP9oIQAKIxu+cDAiEA4HpHmvE8yZxXTtOCrlLNeyfeaIvsxPh+mJItUgCjNEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438464},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"13f1e273cdd8b59d26700c58e8548cd0e6928342","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.3.0_1754408669565_0.40149563273207933","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@bramato/openrouter-mock-generator","version":"1.3.1","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.3.1","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"1bd3030058a782b433a25c7b7a7fb0b200a23f1a","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.3.1.tgz","fileCount":86,"integrity":"sha512-tRkvWMoDcctEIIxGHEG9nQ4Ai39nfFIGmhCDcktajOp8ZaH0VyeT/hfMrKRiI85Z9iMjlNid/usbWvWRi7UeLw==","signatures":[{"sig":"MEUCIQDBuYSgikt8FkPkU0kd8GadKk9Vgs3HSBAjDiYdjL9b3AIgMgAqqKsf8zy+svmWKXBCKZBC58HdtoO4yalGFoRNS3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441990},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"fd9340d8efa953d19b88c986dbe7eeaf946bd7f1","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.3.1_1754458878295_0.3424036686222023","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@bramato/openrouter-mock-generator","version":"1.3.2","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@1.3.2","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"a9a2e5487529951809834f49831d50b2b72582c8","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-1.3.2.tgz","fileCount":86,"integrity":"sha512-xOjijVRtK/jkt79y6C3G88x3PSGol8ELupNbHFplIUXNuVbJ1PhlGxH0DUfTIeWSC5RbKBNG8B6ggVuQwC9QWg==","signatures":[{"sig":"MEUCIQChpfE4O5w7drJrmflOD62eaHgvAvJhhLyKOM96+YA9tAIgcBuYPOJAXdGvY4yVIH9frmAnD653rIhG90WbtkOqtRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446358},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"8734dbe5aad9810678a6c3f6eaaed45adbbc2c4e","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_1.3.2_1754461316050_0.8037392804828687","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bramato/openrouter-mock-generator","version":"2.0.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@2.0.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"3dabb8d6fb69e83af83062c3f720433c5acddfcb","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-2.0.0.tgz","fileCount":82,"integrity":"sha512-VXYH1Yu6d5ppA+WjdxpBOEIdWkctHhrf89nm3QaEUACrLuMtVG6pfjK4qYTl7O9DEJ9+wXqNZRUriNxjLW6zgw==","signatures":[{"sig":"MEYCIQDt2UEdYHvn6xxLvdZca2vYCILmHwpU/+e+oNvkhEEdHwIhAOC2iWzQX/qg9UamNdnG3WeMY95/xg3k3ca1f09ooguf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436094},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"06bc191f77f39899420f669b7864a19c9cd3fb46","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0","openrouter-agents":"^1.2.1","@bramatom/git-copilot":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_2.0.0_1754576671879_0.22202390686818152","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@bramato/openrouter-mock-generator","version":"2.1.0","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","_id":"@bramato/openrouter-mock-generator@2.1.0","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"bin":{"ai-init":"dist/bin/init.js","ai-generate-mock":"dist/bin/cli.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-generate-images":"dist/bin/generate-images.js"},"dist":{"shasum":"d68c6ad12fee0ac97129c521f68ecaf6a75765a7","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-2.1.0.tgz","fileCount":82,"integrity":"sha512-dZK34JAeslu+qpDbPevoJ8/+X+W5NrGBakHZKbrOhIm+ovOrHAnsb1TCK9uH+XLjWSjIir8Nus6+VyHYRUVR+A==","signatures":[{"sig":"MEQCIBo5U1Fb3vFZfRVReQPS7Q5Y544MkkpK+fy5sXws1e5eAiB7On1Z9lt9Pa5K2upQxE25OtfMTOGPycn7pHpcMlyT4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440237},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"21c710b91fd5fe4f59ee4f4642763efca5ace962","scripts":{"dev":"tsc --watch","lint":"npm run format:check","test":"jest","build":"tsc","clean":"rm -rf dist && rm -rf coverage","format":"prettier --write \"src/**/*.{ts,js,json}\"","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"npm run clean","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"repository":{"url":"git+https://github.com/bramato/openrouter-mock-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dotenv":"^17.2.1","cli-progress":"^3.12.0","openrouter-agents":"^1.2.1","@bramatom/git-copilot":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","ts-jest":"^29.4.1","prettier":"^3.6.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/openrouter-mock-generator_2.1.0_1754576951472_0.8245936934770242","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@bramato/openrouter-mock-generator","version":"2.1.1","description":"AI-powered mock data generator using OpenRouter API with JSON mode support","main":"dist/index.js","types":"dist/index.d.ts","bin":{"ai-generate-mock":"dist/bin/cli.js","ai-generate-images":"dist/bin/generate-images.js","ai-spaces-manager":"dist/bin/spaces-manager.js","ai-init":"dist/bin/init.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ci":"jest --ci --coverage --watchAll=false","format":"prettier --write \"src/**/*.{ts,js,json}\"","format:check":"prettier --check \"src/**/*.{ts,js,json}\"","lint":"npm run format:check","prepublishOnly":"npm run build","clean":"rm -rf dist && rm -rf coverage","prebuild":"npm run clean"},"keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"author":{"name":"bramato"},"license":"MIT","engines":{"node":">=16.0.0"},"devDependencies":{"@types/cli-progress":"^3.11.6","@types/jest":"^30.0.0","@types/node":"^20.10.0","@types/prettier":"^2.7.3","jest":"^30.0.5","prettier":"^3.6.2","ts-jest":"^29.4.1","typescript":"^5.3.0"},"repository":{"type":"git","url":"git+https://github.com/bramato/openrouter-mock-generator.git"},"bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"homepage":"https://github.com/bramato/openrouter-mock-generator#readme","publishConfig":{"access":"public"},"dependencies":{"@bramatom/git-copilot":"^1.0.4","cli-progress":"^3.12.0","dotenv":"^17.2.1","openrouter-agents":"^1.2.1"},"_id":"@bramato/openrouter-mock-generator@2.1.1","gitHead":"21c710b91fd5fe4f59ee4f4642763efca5ace962","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-iGxZzfHuImFDLVcDGRE9D1QR1jYIT88kRVxKbQFSWukwg3qdB/AJVuTNe8lqhWBY4WP7qMtZGcr3oSnlW1Clbg==","shasum":"87ede4fb4593346aaff146047c16933b29787064","tarball":"https://registry.npmjs.org/@bramato/openrouter-mock-generator/-/openrouter-mock-generator-2.1.1.tgz","fileCount":82,"unpackedSize":439224,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDGS4wFPBEhHD75H6Q4JlL6cIPrlyZtRdVxRZaGac11GwIhAJJqlHxYQgM16zgcRiEI4u5CoCR9X6JAf3yTh3eJa7+W"}]},"_npmUser":{"name":"bramatom","email":"bramatom@gmail.com"},"directories":{},"maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openrouter-mock-generator_2.1.1_1754577224201_0.9775789554591672"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-05T12:30:23.152Z","modified":"2025-08-07T14:33:44.687Z","1.0.0":"2025-08-05T12:30:23.508Z","1.0.1":"2025-08-05T12:34:22.772Z","1.1.0":"2025-08-05T14:41:09.492Z","1.1.1":"2025-08-05T14:53:46.412Z","1.1.2":"2025-08-05T15:14:37.686Z","1.2.0":"2025-08-05T15:29:31.111Z","1.3.0":"2025-08-05T15:44:29.783Z","1.3.1":"2025-08-06T05:41:18.555Z","1.3.2":"2025-08-06T06:21:56.230Z","2.0.0":"2025-08-07T14:24:32.111Z","2.1.0":"2025-08-07T14:29:11.653Z","2.1.1":"2025-08-07T14:33:44.486Z"},"bugs":{"url":"https://github.com/bramato/openrouter-mock-generator/issues"},"author":{"name":"bramato"},"license":"MIT","homepage":"https://github.com/bramato/openrouter-mock-generator#readme","keywords":["ai","mock-data","openrouter","json","generator","cli","typescript","openai","anthropic","claude","gpt"],"repository":{"type":"git","url":"git+https://github.com/bramato/openrouter-mock-generator.git"},"description":"AI-powered mock data generator using OpenRouter API with JSON mode support","maintainers":[{"name":"bramatom","email":"bramatom@gmail.com"}],"readme":"# OpenRouter AI Mock Generator\n\n[![npm version](https://badge.fury.io/js/%40bramato%2Fopenrouter-mock-generator.svg)](https://www.npmjs.com/package/@bramato/openrouter-mock-generator)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3.0-blue.svg)](https://www.typescriptlang.org/)\n[![OpenRouter Agents](https://img.shields.io/badge/OpenRouter--Agents-v1.2.1-green.svg)](https://github.com/bramato/openrouter-agents)\n\n**Generate realistic mock data with AI-powered intelligence and professional image processing.**\n\nTransform your development workflow with an advanced mock data generator that combines state-of-the-art language models with intelligent image processing. Perfect for frontend development, testing, prototyping, and creating compelling demos with realistic content.\n\n> 🚨 **BREAKING CHANGES in v2.0.0**: This version introduces a new architecture powered by [OpenRouter Agents](https://github.com/bramato/openrouter-agents) for enhanced AI capabilities and specialized agents. See [Migration Guide](#-migration-from-v1x-to-v200) below.\n\n## Why Choose This Generator?\n\n### 🎯 **Intelligent Data Generation**\n- Analyzes your JSON structure and generates contextually appropriate data\n- Supports complex nested objects and arrays\n- Maintains data relationships and patterns from your examples\n\n### 🖼️ **Professional Image Processing**\n- Replaces placeholder images with AI-generated, contextually relevant images\n- Automatic cloud storage integration (AWS S3, DigitalOcean Spaces)\n- Smart optimization reduces image generation costs by up to 30%\n\n### 🚀 **Developer-First Experience**\n- Simple CLI commands get you started in minutes\n- Comprehensive TypeScript API for programmatic usage\n- Interactive configuration wizard handles complex setup\n\n### 🤖 **NEW v2.0.0: Powered by OpenRouter Agents**\n- **Specialized AI Agents**: Uses dedicated MockDataAgent for intelligent data generation\n- **Enhanced Architecture**: Modular design with better separation of concerns\n- **Future-Ready**: Access to the entire OpenRouter Agents ecosystem\n- **Backward Compatible**: Same CLI and API interface you know and love\n\n---\n\n## Quick Installation\n\n```bash\nnpm install @bramato/openrouter-mock-generator\n```\n\n## Getting Started\n\n### Step 1: Initial Setup\n\nRun the interactive configuration wizard to set up your API keys and preferences:\n\n```bash\nnpx ai-init\n```\n\nThe wizard will configure:\n- **OpenRouter API Key** (Required) - For AI text generation\n- **Model Selection** - Choose optimal models for your use case\n- **Image Processing** (Optional) - Hugging Face API + Cloud storage setup\n\n### Step 2: Generate Your First Mock Data\n\n```bash\n# Try the included example file (users, products, orders)\nnpx ai-generate-mock example.json --count 20\n\n# Basic generation with placeholder images\nnpx ai-generate-mock your-sample.json --count 50\n\n# Professional generation with AI images (requires setup)\nnpx ai-generate-mock products.json --images --count 25\n```\n\n### Step 3: Customize Your Output\n\n```bash\n# Add custom preferences for more targeted data\nnpx ai-generate-mock products.json \\\n  --preferences \"Luxury Italian fashion brands with premium pricing\" \\\n  --count 30 \\\n  --images\n```\n\n**That's it!** Your mock data is generated and ready to use in your application.\n\n## CLI Reference\n\n### Core Commands\n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `ai-init` | Interactive setup wizard | `npx ai-init` |\n| `ai-generate-mock` | Generate mock data from JSON sample | `npx ai-generate-mock data.json --count 50` |\n\n### Command Options\n\n| Option | Short | Description | Example |\n|--------|-------|-------------|---------|\n| `--count` | `-c` | Number of items to generate | `--count 100` |\n| `--output` | `-o` | Output file path | `--output results.json` |\n| `--preferences` | `--pref` | Custom generation instructions | `--pref \"Italian luxury brands\"` |\n| `--array-path` | `-p` | Target specific JSON array | `--array-path \"data.products\"` |\n| `--images` | | Force enable AI image processing | `--images` |\n| `--no-images` | | Force disable AI image processing | `--no-images` |\n| `--analyze` | `-a` | Analyze structure without generating | `--analyze` |\n\n### Common Usage Patterns\n\n```bash\n# Standard data generation\nnpx ai-generate-mock products.json --count 50\n\n# Professional images with custom preferences\nnpx ai-generate-mock catalog.json \\\n  --images \\\n  --preferences \"High-end electronics with professional photography\" \\\n  --count 25\n\n# Target specific array in complex JSON\nnpx ai-generate-mock complex-data.json \\\n  --array-path \"store.inventory.products\" \\\n  --count 100 \\\n  --output inventory.json\n\n# Analyze before generating\nnpx ai-generate-mock data.json --analyze\n```\n\n## TypeScript/JavaScript API\n\n### Basic Implementation (v2.0.0+)\n\n```typescript\nimport { MockGeneratorService } from '@bramato/openrouter-mock-generator';\n\n// MockGeneratorService now uses OpenRouter Agents internally\nconst generator = new MockGeneratorService();\n\nconst result = await generator.generateMockData({\n  inputFile: 'products.json',\n  outputFile: 'generated_products.json',\n  count: 50,\n  preferences: 'Italian fashion brands with euro pricing'\n});\n\nif (result.success) {\n  console.log(`✅ Generated ${result.generatedCount} items`);\n  console.log(`🤖 Powered by MockDataAgent from openrouter-agents`);\n} else {\n  console.error(`❌ Generation failed: ${result.error}`);\n}\n```\n\n### Advanced Configuration with OpenRouter Agents\n\n```typescript\nimport { MockGeneratorService } from '@bramato/openrouter-mock-generator';\nimport { AgentManager } from 'openrouter-agents';\n\n// Direct access to the underlying Agent ecosystem (v2.0.0+)\nconst agentManager = new AgentManager({\n  openRouter: {\n    apiKey: 'your-api-key',\n    baseURL: 'https://openrouter.ai/api/v1'\n  }\n});\n\n// Get the specialized MockDataAgent\nconst mockAgent = agentManager.getAgent('mock-data');\n\n// Traditional API still works (uses agents internally)\nconst generator = new MockGeneratorService(\n  undefined, // Use default OpenRouter config\n  true       // Enable image processing\n);\n\nconst result = await generator.generateMockData({\n  inputFile: 'catalog.json',\n  outputFile: 'enhanced_catalog.json',\n  count: 25,\n  preferences: 'Luxury electronics with professional product photography',\n  enableImageProcessing: true\n});\n```\n\n### Using MockDataAgent Directly (New v2.0.0 Feature)\n\n```typescript\nimport { MockDataAgent } from 'openrouter-agents';\n\n// Create specialized mock data agent\nconst agent = new MockDataAgent({\n  name: 'product-generator',\n  openRouter: {\n    apiKey: process.env.OPENROUTER_API_KEY!,\n    model: 'anthropic/claude-3.5-sonnet'\n  },\n  temperature: 0.7\n});\n\n// Generate structured data\nconst response = await agent.process({\n  input: {\n    template: { name: 'string', price: 'number', category: 'string' },\n    count: 10,\n    preferences: 'Italian luxury fashion'\n  },\n  options: { forceJson: true }\n});\n\nconsole.log(response.data); // Structured JSON array\n```\n\n### Standalone Image Processing\n\nTransform existing mock data by replacing placeholder images with AI-generated ones:\n\n```typescript\nimport { PostProcessingOrchestrator } from '@bramato/openrouter-mock-generator';\nimport fs from 'fs';\n\nconst processor = new PostProcessingOrchestrator('your-hf-api-key', {\n  verbose: true,\n  enableOptimization: true,\n  uploadToCloud: true\n});\n\n// Load existing mock data\nconst mockData = JSON.parse(fs.readFileSync('existing-data.json', 'utf8'));\n\n// Process images\nconst result = await processor.processData(mockData);\n\nif (result.success) {\n  // Save enhanced data with real images\n  fs.writeFileSync('enhanced-data.json', \n    JSON.stringify(result.processedData, null, 2)\n  );\n  console.log('✅ Image processing complete');\n}\n```\n\n## Configuration\n\n### Required Environment Variables\n\n```bash\n# OpenRouter API (Required)\nOPENROUTER_API_KEY=your-openrouter-api-key\n```\n\n### Optional Configuration\n\n#### AI Model Settings\n```bash\nOPENROUTER_DEFAULT_MODEL=anthropic/claude-3.5-sonnet\nOPENROUTER_MOCK_GENERATOR_MODEL=openai/gpt-4o-mini\n```\n\n#### AI Image Processing\n```bash\nHUGGINGFACE_API_KEY=your-huggingface-token\nSTORAGE_PROVIDER=aws  # or 'digitalocean'\n```\n\n#### AWS S3 Storage\n```bash\nAWS_ACCESS_KEY_ID=your-access-key\nAWS_SECRET_ACCESS_KEY=your-secret-key\nAWS_REGION=us-east-1\nAWS_S3_BUCKET_NAME=your-bucket-name\nAWS_S3_ENDPOINT=custom-endpoint  # optional\n```\n\n#### DigitalOcean Spaces Storage\n```bash\nDO_SPACES_ACCESS_KEY=your-access-key\nDO_SPACES_SECRET_KEY=your-secret-key\nDO_SPACES_REGION=fra1\nDO_SPACES_NAME=your-space-name\nDO_API_TOKEN=your-api-token  # optional\n```\n\n> **💡 Tip:** Use the `npx ai-init` wizard to set up these variables interactively.\n\n## Supported AI Models\n\n**Automatic JSON-mode compatibility** - Only models that support structured JSON output are used:\n\n| Provider | Models | Best For |\n|----------|--------|----------|\n| **OpenAI** | GPT-4o, GPT-4o Mini, GPT-4 Turbo, GPT-3.5 Turbo | General purpose, consistent output |\n| **Anthropic** | Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Haiku | Complex reasoning, detailed content |\n| **Google** | Gemini Pro, Gemini Flash | Fast generation, multilingual |\n| **Meta** | Llama models via OpenRouter | Cost-effective, good performance |\n\n> The system automatically selects the best model based on your configuration and task complexity.\n\n---\n\n## Real-World Examples\n\n### 🚀 Complete Example: Multi-Entity System\n\nTry the included example file to see the full power of the generator:\n\n```bash\n# Generate realistic data for users, products, and orders\nnpx ai-generate-mock example.json --count 20 --images\n\n# Or target a specific entity type\nnpx ai-generate-mock example.json --count 50 --array-path users\nnpx ai-generate-mock example.json --count 30 --array-path products --images\n```\n\n**Using the included `example.json`** which contains:\n- **👥 User profiles** with addresses, preferences, and social data\n- **📱 Products** with specifications, ratings, and image galleries  \n- **📦 Orders** with shipping, payment, and tracking information\n\n**Generated results include:**\n- Professional user avatars and product photography\n- Contextual data relationships (orders link to existing users/products)\n- Italian locale with realistic names and addresses\n- Complex nested objects and arrays\n- Consistent image seeds for repeatable results\n\n**Sample generated user:**\n```json\n{\n  \"id\": 2,\n  \"name\": \"Giulia Bianchi\",\n  \"email\": \"giulia.bianchi@example.com\",\n  \"age\": 28,\n  \"avatar\": \"https://picsum.photos/200/200?random=giulia\",\n  \"address\": {\n    \"street\": \"Corso Buenos Aires 45\",\n    \"city\": \"Milano\", \n    \"zipCode\": \"20124\",\n    \"country\": \"Italia\"\n  },\n  \"preferences\": {\n    \"newsletter\": true,\n    \"theme\": \"light\",\n    \"language\": \"it\"\n  },\n  \"profile\": {\n    \"bio\": \"UX Designer specializzata in interfacce mobile innovative\",\n    \"website\": \"https://giuliabianchi.design\",\n    \"social\": {\n      \"linkedin\": \"https://linkedin.com/in/giuliabianchi\",\n      \"github\": \"https://github.com/giuliabianchi\"\n    }\n  }\n}\n```\n\n### 🛍️ E-commerce Product Catalog\n\n```bash\nnpx ai-generate-mock products.json \\\n  --images \\\n  --preferences \"Luxury Italian fashion from Milano boutiques\" \\\n  --count 30\n```\n\n**Generated content includes:**\n- Professional product photography\n- Brand-appropriate thumbnails and galleries\n- Contextual banner images for promotions\n\n### 🍕 Restaurant Menu System\n\n```bash\nnpx ai-generate-mock menu.json \\\n  --images \\\n  --preferences \"Traditional Italian regional cuisine with wine pairings\" \\\n  --count 20\n```\n\n**Produces:**\n- High-quality food photography\n- Restaurant ambiance images\n- Chef and staff portraits\n\n### 👥 User Management System\n\n```bash\nnpx ai-generate-mock users.json \\\n  --images \\\n  --preferences \"Professional Italian business people from major cities\" \\\n  --count 100\n```\n\n**Creates:**\n- Professional headshot portraits\n- Company logos and branding\n- Office environment backgrounds\n\n---\n\n## Use Cases\n\n### 🔧 **Development & Testing**\n- **Frontend Development**: Realistic data for UI components and layouts\n- **API Testing**: Comprehensive datasets for endpoint validation  \n- **Database Seeding**: Meaningful sample data for development environments\n- **Demo Applications**: Professional-grade content for presentations\n\n### 🎨 **Design & Prototyping**\n- **UI/UX Design**: Contextual content for design systems and mockups\n- **Client Presentations**: Realistic prototypes with professional imagery\n- **A/B Testing**: Varied content sets for testing different approaches\n- **Design Validation**: Real-world data scenarios for user testing\n\n### 📈 **Marketing & Content**\n- **Campaign Development**: Sample content for marketing materials\n- **Portfolio Showcase**: Professional examples for service demonstrations\n- **Content Strategy**: Diverse datasets for testing content approaches\n- **Brand Guidelines**: Consistent imagery and messaging examples\n\n## Custom Preferences Guide\n\nEnhance your generated data with specific instructions to guide the AI:\n\n### Industry-Specific Examples\n\n```bash\n# E-commerce & Retail\n--preferences \"Luxury Italian fashion brands with Milano designers and euro pricing\"\n\n# Food & Hospitality  \n--preferences \"Traditional Italian regional cuisine with seasonal ingredients and wine pairings\"\n\n# Professional Services\n--preferences \"Italian business professionals from Rome, Milan, and Naples with LinkedIn-style profiles\"\n\n# Real Estate\n--preferences \"Historic Italian properties in city centers with Renaissance and Baroque architecture\"\n\n# Technology\n--preferences \"Italian tech companies and startups with modern, innovation-focused branding\"\n\n# Travel & Tourism\n--preferences \"Italian cultural events, festivals, and tourist attractions with regional authenticity\"\n```\n\n### Best Practices\n- **Be Specific**: Include geographical, cultural, or industry context\n- **Set Tone**: Specify whether content should be formal, casual, luxury, budget-friendly, etc.\n- **Add Details**: Mention specific attributes like pricing ranges, demographics, or styles\n- **Use Examples**: Reference well-known brands or concepts for clearer direction\n\n---\n\n## Advanced AI Image Processing\n\nTransform placeholder images into professional, contextually-appropriate visuals automatically.\n\n### 🔄 **Processing Pipeline**\n\n1. **Smart Detection** - Identifies placeholder image URLs (`https://picsum.photos/*`)\n2. **Context Analysis** - Analyzes surrounding JSON data for image context\n3. **Intelligent Optimization** - Groups similar images to minimize generation costs\n4. **AI Generation** - Creates professional images using FLUX.1-dev and Qwen-Image models\n5. **Cloud Integration** - Uploads to AWS S3 or DigitalOcean Spaces with CDN optimization\n6. **Seamless Replacement** - Updates JSON with new cloud-hosted URLs\n\n### 📸 **Image Categories**\n\n| Type | Description | Use Cases |\n|------|-------------|-----------|\n| **Product Photos** | Professional product photography with proper lighting | E-commerce catalogs, inventory |\n| **Portrait & Avatars** | High-quality headshots and professional portraits | User profiles, team pages |\n| **Banners & Headers** | Wide-format promotional and branding images | Marketing materials, headers |\n| **Thumbnails** | Optimized small-format preview images | Card layouts, galleries |\n| **Logos & Branding** | Professional brand identity elements | Company profiles, partnerships |\n| **Backgrounds** | Contextual environment and texture images | UI backgrounds, hero sections |\n\n### ⚡ **Smart Optimizations**\n\n- **Cost Reduction**: Up to 30% savings through intelligent image reuse\n- **Context Awareness**: Images generated based on surrounding data context\n- **Batch Efficiency**: Concurrent processing with intelligent rate limiting\n- **Graceful Fallbacks**: Maintains placeholder images if generation fails\n- **CDN Integration**: Automatic content delivery network optimization\n\n\n## Troubleshooting\n\n### Common Issues & Solutions\n\n#### 🚫 **Image Processing Not Working**\n\n**Symptoms**: Images remain as placeholder URLs\n```bash\n# 1. Verify configuration\nnpx ai-init\n\n# 2. Test with minimal example\nnpx ai-generate-mock sample.json --images --count 1\n\n# 3. Check environment variables\necho $HUGGINGFACE_API_KEY\necho $STORAGE_PROVIDER\n```\n\n#### ☁️ **Cloud Storage Upload Failures**\n\n**Symptoms**: Generated images not accessible via URLs\n```bash\n# Verify cloud storage configuration\ncat .env | grep -E \"(STORAGE_PROVIDER|AWS_|DO_)\"\n\n# Test permissions\n# AWS: Check IAM permissions for S3 bucket access\n# DigitalOcean: Verify Spaces access keys and region\n```\n\n#### 🔑 **API Authentication Errors**\n\n**OpenRouter Issues**:\n- Verify API key at [OpenRouter Dashboard](https://openrouter.ai/keys)\n- Check account balance and usage limits\n\n**Hugging Face Issues**:\n- Confirm token permissions at [HF Settings](https://huggingface.co/settings/tokens)\n- Ensure \"Make calls to the serverless Inference API\" is enabled\n\n#### 📄 **JSON Processing Errors**\n\n**Symptoms**: \"Cannot parse input file\" or similar errors\n```bash\n# Analyze your JSON structure\nnpx ai-generate-mock your-file.json --analyze\n\n# Common fixes:\n# - Ensure valid JSON syntax\n# - Check for proper array structures  \n# - Verify file encoding (UTF-8)\n```\n\n#### ⚡ **Rate Limiting & Performance**\n\n**Symptoms**: Slow generation or timeout errors\n- **Reduce count**: Use smaller `--count` values for testing\n- **Check quotas**: Review API usage limits on provider dashboards\n- **Optimize batching**: System auto-adjusts, but complex data may need smaller batches\n\n#### 🔧 **Environment Configuration**\n\n**Problem**: Environment variables not loading\n```bash\n# ✅ Correct format\nOPENROUTER_API_KEY=your-actual-key\n\n# ❌ Incorrect (spaces around =)\nOPENROUTER_API_KEY = your-actual-key\n```\n\n**Debug steps**:\n1. Check `.env` file exists in project root\n2. Verify no extra spaces or quotes around values\n3. Restart terminal/application after changes\n\n---\n\n## Frequently Asked Questions\n\n### **API Requirements**\n\n**Q: Do I need both OpenRouter and Hugging Face API keys?**  \nA: OpenRouter is required for text generation. Hugging Face is optional - only needed for AI image processing.\n\n**Q: Are there free tiers available?**  \nA: Yes! OpenRouter offers free credits for new accounts, and Hugging Face has a generous free tier with rate limits.\n\n### **Storage & Configuration**\n\n**Q: Can I use both AWS S3 and DigitalOcean Spaces?**  \nA: No, you must choose one storage provider. Configure this during `npx ai-init` setup.\n\n**Q: What happens if cloud storage fails?**  \nA: The system gracefully falls back to placeholder images, ensuring your mock data generation always succeeds.\n\n### **Image Processing**\n\n**Q: Can I process existing mock data with AI images?**  \nA: Absolutely! Use the `PostProcessingOrchestrator` class programmatically, or re-run generation with `--images` flag.\n\n**Q: What image formats and sizes are supported?**  \nA: Generates PNG images with contextually appropriate dimensions. Supports product photos, avatars, banners, thumbnails, and more.\n\n**Q: How does cost optimization work?**  \nA: The system intelligently detects similar image contexts and reuses generated images, reducing generation costs by up to 30%.\n\n### **Technical Details**\n\n**Q: Which AI models work best?**  \nA: The system auto-selects optimal models. GPT-4o Mini offers great balance of speed/quality, while Claude 3.5 Sonnet excels at complex data structures.\n\n**Q: Can I use this in production applications?**  \nA: Yes! The tool is designed for professional use with proper error handling, rate limiting, and cloud integration.\n\n---\n\n## Architecture Overview\n\n### **Microservices Design**\n- **ImageUrlExtractor**: Identifies and categorizes image URLs in JSON data\n- **DescriptionGenerator**: Creates contextual AI prompts based on surrounding data\n- **ImageProcessingAnalyzer**: Optimizes generation strategy and detects duplicates\n- **UrlReplacer**: Seamlessly updates JSON with new cloud-hosted image URLs\n- **PostProcessingOrchestrator**: Coordinates all services with intelligent error handling\n\n### **Performance Features**\n- **Smart Batching**: Automatic optimization based on data complexity\n- **Concurrent Processing**: Parallel image generation with rate limiting\n- **CDN Integration**: Automatic content delivery network optimization\n- **Intelligent Caching**: Reuses similar images for cost efficiency\n\n## 🔄 Migration from v1.x to v2.0.0\n\n### What Changed\n\n**v2.0.0 introduces a new architecture** powered by [OpenRouter Agents](https://github.com/bramato/openrouter-agents), providing:\n\n- **Specialized AI Agents**: MockDataAgent optimized for data generation\n- **Better Modularity**: Cleaner separation between text generation and image processing\n- **Future Extensibility**: Access to the growing OpenRouter Agents ecosystem\n- **Enhanced Performance**: Improved error handling and response processing\n\n### Breaking Changes\n\n❌ **Removed Dependencies**:\n- Internal `openrouter.ts` and `openrouter-api.ts` services (moved to openrouter-agents package)\n\n✅ **Added Dependencies**:\n- `openrouter-agents: ^1.2.1` - Core agent functionality\n\n### Migration Steps\n\n1. **Update to v2.0.0**:\n   ```bash\n   npm install @bramato/openrouter-mock-generator@^2.0.0\n   ```\n\n2. **No Code Changes Required**: \n   - All existing CLI commands work unchanged\n   - All existing TypeScript/JavaScript APIs remain compatible\n   - Configuration and environment variables are identical\n\n3. **Optional: Explore New Features**:\n   ```typescript\n   // Access the underlying agent system (new in v2.0.0)\n   import { MockDataAgent } from 'openrouter-agents';\n   \n   const agent = new MockDataAgent({\n     name: 'my-generator',\n     openRouter: { apiKey: 'your-key' }\n   });\n   ```\n\n### Compatibility Matrix\n\n| Feature | v1.x | v2.0.0 | Notes |\n|---------|------|--------|---------|\n| CLI Commands | ✅ | ✅ | Identical interface |\n| MockGeneratorService API | ✅ | ✅ | Same methods and options |\n| Image Processing | ✅ | ✅ | Enhanced performance |\n| Environment Variables | ✅ | ✅ | No changes required |\n| TypeScript Types | ✅ | ✅ | Improved with agent types |\n| **MockDataAgent Access** | ❌ | ✅ | **New:** Direct agent usage |\n| **Agent Ecosystem** | ❌ | ✅ | **New:** Access to all OpenRouter Agents |\n\n### Why Upgrade?\n\n- 🎯 **Specialized Agents**: Purpose-built AI agents for better performance\n- 🔧 **Better Architecture**: More maintainable and extensible codebase\n- 🚀 **Future Features**: Access to new agents as they're released\n- 📈 **Enhanced Reliability**: Improved error handling and response processing\n- 🔗 **Ecosystem Access**: Use code generators, translators, and more from the same package\n\n### Need Help?\n\nIf you encounter issues during migration:\n1. Check the [OpenRouter Agents documentation](https://github.com/bramato/openrouter-agents#readme)\n2. File an issue on [GitHub Issues](https://github.com/bramato/openrouter-mock-generator/issues)\n3. Review the [v2.0.0 changelog](#changelog) below\n\n---\n\n## 📋 Changelog\n\n### v2.0.0 (Latest) - Major Architecture Update\n**Release Date**: Current\n\n**🚨 BREAKING CHANGES:**\n- Migrated to OpenRouter Agents architecture\n- Removed internal OpenRouter service files\n- Added `openrouter-agents ^1.2.1` dependency\n\n**✨ NEW FEATURES:**\n- **MockDataAgent Integration**: Specialized AI agent for data generation\n- **Agent Ecosystem Access**: Direct access to OpenRouter Agents platform\n- **Enhanced Architecture**: Improved modularity and extensibility\n- **Better Error Handling**: More robust processing with agent-based approach\n\n**🔧 IMPROVEMENTS:**\n- Same CLI interface with improved backend performance\n- Enhanced TypeScript support with agent types\n- Better separation of concerns between text and image generation\n- Backward-compatible API maintains all existing functionality\n\n**📦 DEPENDENCIES:**\n- Added: `openrouter-agents ^1.2.1`\n- Updated: Core dependencies for better compatibility\n\n### v1.3.2 (Previous) - Stability Improvements\n- Enhanced image processing pipeline\n- Improved error handling for cloud storage\n- Better configuration management\n- Performance optimizations\n\n---\n\n## License & Support\n\n**License**: MIT - Free for commercial and personal use\n\n**Author**: [bramato](https://github.com/bramato)\n\n### **Contributing**\nWe welcome contributions! Please feel free to submit issues, feature requests, or pull requests on GitHub.\n\n### **Support**\n- 📖 **Documentation**: This README covers all features and use cases\n- 🤖 **OpenRouter Agents**: Check the [OpenRouter Agents documentation](https://github.com/bramato/openrouter-agents#readme)\n- 🐛 **Bug Reports**: Please use GitHub Issues with detailed reproduction steps\n- 💡 **Feature Requests**: Share your ideas through GitHub Discussions\n- 🔧 **Configuration Help**: Use the interactive `npx ai-init` wizard\n\n### **Related Projects**\n- 🤖 **[OpenRouter Agents](https://github.com/bramato/openrouter-agents)**: The core AI agent platform powering this generator\n- 📦 **[NPM Package](https://www.npmjs.com/package/openrouter-agents)**: OpenRouter Agents on NPM\n- 🌐 **[OpenRouter Platform](https://openrouter.ai)**: Access to 100+ AI models\n\n---\n\n⭐ **If this tool accelerates your development workflow, please star both repositories:**\n- **[Mock Generator](https://github.com/bramato/openrouter-mock-generator)** - This project\n- **[OpenRouter Agents](https://github.com/bramato/openrouter-agents)** - The underlying AI platform","readmeFilename":"README.md"}