8f83a1eaae
New "Generate meal" button on any owned collection — pick a theme (free text) and 2-6 courses (starter/main/side/dessert/drink), one generateObject call produces a coherent recipe per course (shared cuisine/style, matching flavors across courses) and all of them get saved as real recipes and added to that collection in one action. Follows the meal-plan generation route's established pattern: single withAiQuota charge for the whole generation, then a pre-flight loop charging the tier's recipe limit once per generated recipe (rolled back on a partial breach) before the insert transaction runs. Recipes are tagged with their course name for later filtering; visibility defaults to private like every other AI-generated recipe. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
632 B
JSON
24 lines
632 B
JSON
{
|
|
"name": "epicure",
|
|
"version": "0.52.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "pnpm --filter web dev",
|
|
"build": "pnpm --filter web build",
|
|
"lint": "pnpm -r lint",
|
|
"typecheck": "pnpm -r typecheck",
|
|
"db:generate": "pnpm --filter @epicure/db generate",
|
|
"db:migrate": "pnpm --filter @epicure/db migrate",
|
|
"db:seed": "pnpm --filter @epicure/db seed",
|
|
"db:backfill-usernames": "pnpm --filter @epicure/db backfill-usernames",
|
|
"db:studio": "pnpm --filter @epicure/db studio"
|
|
},
|
|
"devDependencies": {
|
|
"typescript": "^5.8.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=22",
|
|
"pnpm": ">=11"
|
|
}
|
|
}
|