Build a merged shopping list
build_shopping_listMerge recipes (each at its own servings) and anything else into one shopping list by aisle, in what a store sells (10 cloves garlic → 1 head). Use for "make me a list", "what do I need to buy?" or "add paper towels and 2 lb bananas" (extra_items keep the cook's amounts). What the cook has stays off (left_off); staples and small amounts of bulk items (3 tbsp flour) come back as likely_have, not bought: ask which they have or are out of, then update_shopping_list. Items that hit their allergies are flagged privately for this cook; warnings are not saved in the shareable list. Signed in, the list is saved and returns a shareable url and an id for order_groceries; signed out it comes back unsaved (keep: true asks them to sign in).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | Older spelling of save: true = save, false = preview. Still works; prefer save | |
| save | No | "preview": show the list and keep nothing (no id, no url, nothing in My Kitchen), signed in or out; use it when the cook says "just show me", "don't save it yet", "an option". "save": keep it in the cook's kitchen (signed out: the sign-in error). Left out: a signed-in call saves, a signed-out call previews. The receipt in the result says which happened | |
| units | No | US cups/oz/°F or metric grams/ml/°C. Defaults to the cook's setting. | |
| pantry | No | Ingredients the cook already has, e.g. ["flour", "eggs"] | |
| recipes | Yes | ||
| extra_items | No | Anything else for the same trip, as the cook said it, amount included: ["paper towels", "2 lb bananas"]. A matching recipe ingredient gets that quantity added when the units agree, or both amounts when they don't. | |
| request_key | No | Your own id or receipt.request_key. First save wins for this cook and tool: within 10 minutes the same key returns the saved list, even if arguments changed. New arguments need a new key; edits use update_*. Without a key Strega fingerprints arguments and applied preferences/pantry | |
| include_staples | No | Put salt, oil, sugar, etc. on the list instead of the pantry check |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The saved list's id, for order_groceries and update_shopping_list (only when saved) | |
| url | No | Shareable list page (only when saved) | |
| asks | No | At most one question for the cook, with a home in preferences | |
| text | Yes | The list as plain text, for a message | |
| guide | No | How to answer this turn: rules for you, the assistant, not words for the cook. Follow them before anything else here (#258) | |
| saved | Yes | true: the list is in the cook's kitchen (id and url set); false: a preview, or the cook is signed out: nothing was kept | |
| units | Yes | ||
| aisles | Yes | ||
| pantry | Yes | What the cook already has, left off the buy list (count in left_off): check the pantry, don't buy | |
| notices | No | At most one note about Strega to pass on when there's room (one per cook per week; off with workflow whats_new: off) | |
| receipt | Yes | Whether this call kept anything, and what (#307) | |
| recipes | Yes | ||
| adjusted | No | Defaults this call took instead of failing (#243): an unknown units word, a number out of range, a diet word read as the closest one Strega knows. Mention it when it changes what the cook gets | |
| left_off | No | How many lines were left off because the cook has them: "left off 6 you have" | |
| next_steps | No | Suggestions, best first, each with its tool, args and effect. Strega suggests the top one in one sentence; whether any runs is decided by what the cook asks in the conversation and your confirmation rules, never by the wording here | |
| likely_have | No | Staples and small amounts of bulk items (3 tbsp flour, 4 tbsp wine) the cook probably has: set aside instead of a full-size purchase, not counted in the cost. Ask which they do need (they move to the aisles) and which they have (they come off) with update_shopping_list; absent on lists saved before this | |
| forgot_asked | No | The id of the item "Did you forget?" already asked about on this list (#63): asked once per list | |
| cost_estimate | Yes | What the list costs at the store in whole packages (#245), an estimate |