@mind-your-now/myn 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,49 +2,25 @@
2
2
 
3
3
  Habit streaks, habit chains, scheduling, and reminders.
4
4
 
5
- ## Base Path
5
+ ## Actions
6
6
 
7
- - Streaks and chains: `/api/v1/habit-chains`
8
- - Reminders: `/api/habits/reminders`
7
+ The `myn_habits` tool supports these actions: `streaks`, `skip`, `chains`, `schedule`, `reminders`.
9
8
 
10
9
  ## Endpoints
11
10
 
12
- ### List All Habit Streaks
11
+ ### Get Habit Streak
13
12
 
14
13
  ```
15
- GET /api/v1/habit-chains/streaks
14
+ GET /api/v2/unified-tasks/{habitId}/streak
16
15
  ```
17
16
 
18
- Returns streak data for all habits.
19
-
20
- **Response Fields:**
21
-
22
- | Field | Type | Description |
23
- |-------|------|-------------|
24
- | `habits` | object[] | Array of habit streak objects |
25
- | `habits[].habitId` | UUID | Habit identifier |
26
- | `habits[].title` | string | Habit title |
27
- | `habits[].currentStreak` | number | Current consecutive completions |
28
- | `habits[].longestStreak` | number | All-time longest streak |
29
- | `habits[].totalCompletions` | number | Total times completed |
30
- | `habits[].lastCompletedAt` | datetime | Last completion timestamp |
31
-
32
- ```bash
33
- curl -H "X-API-KEY: $MYN_API_KEY" \
34
- "$MYN_API_URL/api/v1/habit-chains/streaks"
35
- ```
36
-
37
- ### Get Specific Habit Streak
38
-
39
- ```
40
- GET /api/v1/habit-chains/{habitId}/streaks
41
- ```
17
+ Returns streak data for a specific habit. Requires `habitId`.
42
18
 
43
19
  **Query Parameters:**
44
20
 
45
21
  | Parameter | Type | Description |
46
22
  |-----------|------|-------------|
47
- | `includeHistory` | boolean | Include day-by-day streak history |
23
+ | `includeHistory` | boolean | Include day-by-day streak history (default: false) |
48
24
 
49
25
  **Response Fields:**
50
26
 
@@ -54,7 +30,7 @@ GET /api/v1/habit-chains/{habitId}/streaks
54
30
  | `currentStreak` | number | Current consecutive completions |
55
31
  | `longestStreak` | number | All-time longest streak |
56
32
  | `totalCompletions` | number | Total times completed |
57
- | `lastCompletedAt` | datetime | Last completion timestamp |
33
+ | `lastCompletedAt` | datetime | Last completion timestamp (nullable) |
58
34
  | `streakHistory` | object[] | Day-by-day history (only if `includeHistory=true`) |
59
35
  | `streakHistory[].date` | date | Calendar date |
60
36
  | `streakHistory[].completed` | boolean | Whether the habit was completed that day |
@@ -62,26 +38,30 @@ GET /api/v1/habit-chains/{habitId}/streaks
62
38
  ```bash
63
39
  # Basic streak info
64
40
  curl -H "X-API-KEY: $MYN_API_KEY" \
65
- "$MYN_API_URL/api/v1/habit-chains/660e8400-e29b-41d4-a716-446655440001/streaks"
41
+ "$MYN_API_URL/api/v2/unified-tasks/HABIT_ID/streak"
66
42
 
67
43
  # With full history
68
44
  curl -H "X-API-KEY: $MYN_API_KEY" \
69
- "$MYN_API_URL/api/v1/habit-chains/660e8400-e29b-41d4-a716-446655440001/streaks?includeHistory=true"
45
+ "$MYN_API_URL/api/v2/unified-tasks/HABIT_ID/streak?includeHistory=true"
70
46
  ```
71
47
 
48
+ **Note:** There is no bulk streaks endpoint. Use the `schedule` action to see all habits.
49
+
72
50
  ### Skip Habit (Preserve Streak)
73
51
 
74
52
  ```
75
- POST /api/v1/habit-chains/{habitId}/skip
53
+ POST /api/v2/unified-tasks/{habitId}/skip
76
54
  ```
77
55
 
78
56
  Marks a habit as skipped for a day without breaking the streak.
79
57
 
58
+ **Required:** `habitId`
59
+
80
60
  **Body Parameters:**
81
61
 
82
62
  | Field | Type | Description |
83
63
  |-------|------|-------------|
84
- | `skipDate` | date | Date to skip (default: today, YYYY-MM-DD) |
64
+ | `skipDate` | date | Date to skip (YYYY-MM-DD, default: today) |
85
65
  | `reason` | string | Optional reason for skipping |
86
66
 
87
67
  **Response Fields:**
@@ -94,7 +74,7 @@ Marks a habit as skipped for a day without breaking the streak.
94
74
  | `newStreakCount` | number | Updated streak count |
95
75
 
96
76
  ```bash
97
- curl -X POST "$MYN_API_URL/api/v1/habit-chains/660e8400-e29b-41d4-a716-446655440001/skip" \
77
+ curl -X POST "$MYN_API_URL/api/v2/unified-tasks/HABIT_ID/skip" \
98
78
  -H "X-API-KEY: $MYN_API_KEY" \
99
79
  -H "Content-Type: application/json" \
100
80
  -d '{
@@ -106,7 +86,7 @@ curl -X POST "$MYN_API_URL/api/v1/habit-chains/660e8400-e29b-41d4-a716-446655440
106
86
  ### List All Chains
107
87
 
108
88
  ```
109
- GET /api/v1/habit-chains
89
+ GET /api/habits/chains
110
90
  ```
111
91
 
112
92
  Returns all habit chains (grouped sequences of habits).
@@ -120,17 +100,17 @@ Returns all habit chains (grouped sequences of habits).
120
100
  | `chains[].name` | string | Chain name |
121
101
  | `chains[].habitCount` | number | Number of habits in the chain |
122
102
  | `chains[].totalCompletions` | number | Total completions across all habits |
123
- | `chains[].lastCompletedAt` | datetime | Last completion in this chain |
103
+ | `chains[].lastCompletedAt` | datetime | Last completion in this chain (nullable) |
124
104
 
125
105
  ```bash
126
106
  curl -H "X-API-KEY: $MYN_API_KEY" \
127
- "$MYN_API_URL/api/v1/habit-chains"
107
+ "$MYN_API_URL/api/habits/chains"
128
108
  ```
129
109
 
130
110
  ### Get Specific Chain
131
111
 
132
112
  ```
133
- GET /api/v1/habit-chains/{chainId}
113
+ GET /api/habits/chains/{chainId}/status
134
114
  ```
135
115
 
136
116
  **Response Fields:**
@@ -149,13 +129,13 @@ GET /api/v1/habit-chains/{chainId}
149
129
 
150
130
  ```bash
151
131
  curl -H "X-API-KEY: $MYN_API_KEY" \
152
- "$MYN_API_URL/api/v1/habit-chains/770e8400-e29b-41d4-a716-446655440002"
132
+ "$MYN_API_URL/api/habits/chains/CHAIN_ID/status"
153
133
  ```
154
134
 
155
135
  ### Get Habit Schedule
156
136
 
157
137
  ```
158
- GET /api/v1/habit-chains/schedule
138
+ GET /api/v2/unified-tasks/schedule
159
139
  ```
160
140
 
161
141
  Returns the habit schedule for the upcoming days.
@@ -172,7 +152,7 @@ Returns the habit schedule for the upcoming days.
172
152
  |-------|------|-------------|
173
153
  | `schedule` | object[] | Array of daily schedules |
174
154
  | `schedule[].date` | date | Calendar date |
175
- | `schedule[].dayOfWeek` | string | Day name (e.g., `Monday`) |
155
+ | `schedule[].dayOfWeek` | number | Day of week number |
176
156
  | `schedule[].habits` | object[] | Habits due on that day |
177
157
  | `schedule[].habits[].habitId` | UUID | Habit identifier |
178
158
  | `schedule[].habits[].title` | string | Habit title |
@@ -184,11 +164,11 @@ Returns the habit schedule for the upcoming days.
184
164
  ```bash
185
165
  # Default 7-day schedule
186
166
  curl -H "X-API-KEY: $MYN_API_KEY" \
187
- "$MYN_API_URL/api/v1/habit-chains/schedule"
167
+ "$MYN_API_URL/api/v2/unified-tasks/schedule"
188
168
 
189
169
  # 14-day schedule
190
170
  curl -H "X-API-KEY: $MYN_API_KEY" \
191
- "$MYN_API_URL/api/v1/habit-chains/schedule?days=14"
171
+ "$MYN_API_URL/api/v2/unified-tasks/schedule?days=14"
192
172
  ```
193
173
 
194
174
  ### List All Reminders
@@ -208,7 +188,7 @@ Returns reminder settings for all habits.
208
188
  | `reminders[].title` | string | Habit title |
209
189
  | `reminders[].enabled` | boolean | Whether the reminder is active |
210
190
  | `reminders[].reminderTime` | time | Time of day for the reminder (nullable, HH:mm) |
211
- | `reminders[].reminderDays` | string[] | Days the reminder fires (e.g., `["MON", "WED", "FRI"]`) |
191
+ | `reminders[].reminderDays` | number[] | Days the reminder fires |
212
192
 
213
193
  ```bash
214
194
  curl -H "X-API-KEY: $MYN_API_KEY" \
@@ -221,9 +201,18 @@ curl -H "X-API-KEY: $MYN_API_KEY" \
221
201
  GET /api/habits/reminders/{habitId}
222
202
  ```
223
203
 
204
+ **Response Fields:**
205
+
206
+ | Field | Type | Description |
207
+ |-------|------|-------------|
208
+ | `habitId` | UUID | Habit identifier |
209
+ | `remindersEnabled` | boolean | Whether reminders are active |
210
+ | `reminderTime` | time | Time of day (nullable, HH:mm) |
211
+ | `reminderDays` | number[] | Days the reminder fires |
212
+
224
213
  ```bash
225
214
  curl -H "X-API-KEY: $MYN_API_KEY" \
226
- "$MYN_API_URL/api/habits/reminders/660e8400-e29b-41d4-a716-446655440001"
215
+ "$MYN_API_URL/api/habits/reminders/HABIT_ID"
227
216
  ```
228
217
 
229
218
  ### Update Reminder
@@ -240,18 +229,11 @@ PUT /api/habits/reminders/{habitId}
240
229
  | `time` | time | Time of day for the reminder (HH:mm) |
241
230
 
242
231
  ```bash
243
- # Enable a reminder at 7:30 AM
244
- curl -X PUT "$MYN_API_URL/api/habits/reminders/660e8400-e29b-41d4-a716-446655440001" \
232
+ curl -X PUT "$MYN_API_URL/api/habits/reminders/HABIT_ID" \
245
233
  -H "X-API-KEY: $MYN_API_KEY" \
246
234
  -H "Content-Type: application/json" \
247
235
  -d '{
248
236
  "enabled": true,
249
237
  "time": "07:30"
250
238
  }'
251
-
252
- # Disable a reminder
253
- curl -X PUT "$MYN_API_URL/api/habits/reminders/660e8400-e29b-41d4-a716-446655440001" \
254
- -H "X-API-KEY: $MYN_API_KEY" \
255
- -H "Content-Type: application/json" \
256
- -d '{"enabled": false}'
257
239
  ```
@@ -8,13 +8,14 @@ Household members, invites, and chore management.
8
8
 
9
9
  ## Getting the Household ID
10
10
 
11
- Most endpoints require a `householdId`. Get it from the user profile:
11
+ Most endpoints require a `householdId`. The plugin auto-resolves it via:
12
12
 
13
- ```bash
14
- curl -H "X-API-KEY: $MYN_API_KEY" "$MYN_API_URL/api/v1/customers/me"
15
- # → { "households": [{ "id": "uuid", "name": "Home" }] }
13
+ ```
14
+ GET /api/v1/households/current
16
15
  ```
17
16
 
17
+ Response: `{ "id": "uuid" }`
18
+
18
19
  ## Endpoints
19
20
 
20
21
  ### List Members
@@ -78,12 +79,20 @@ curl -X POST "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/invites" \
78
79
  -d '{"email": "jane@example.com", "role": "member"}'
79
80
  ```
80
81
 
81
- ### List Chores
82
+ ### List Chores (Today)
82
83
 
83
84
  ```
84
- GET /api/v2/chores?householdId={householdId}
85
+ GET /api/v2/chores/today?householdId={householdId}
85
86
  ```
86
87
 
88
+ Returns today's chores for the household.
89
+
90
+ **Query Parameters:**
91
+
92
+ | Parameter | Type | Description |
93
+ |-----------|------|-------------|
94
+ | `householdId` | UUID | Required |
95
+
87
96
  **Response:**
88
97
 
89
98
  ```json
@@ -106,22 +115,31 @@ GET /api/v2/chores?householdId={householdId}
106
115
 
107
116
  ```bash
108
117
  curl -H "X-API-KEY: $MYN_API_KEY" \
109
- "$MYN_API_URL/api/v2/chores?householdId=HOUSEHOLD_ID"
118
+ "$MYN_API_URL/api/v2/chores/today?householdId=HOUSEHOLD_ID"
110
119
  ```
111
120
 
112
121
  ### Get Chore Schedule
113
122
 
114
123
  ```
115
- GET /api/v2/chores/schedule
124
+ GET /api/v2/chores/schedule/range
116
125
  ```
117
126
 
127
+ Returns chore schedule for a date range.
128
+
118
129
  **Query Parameters:**
119
130
 
120
131
  | Parameter | Type | Description |
121
132
  |-----------|------|-------------|
122
133
  | `householdId` | UUID | Required |
123
- | `date` | date | Specific date (YYYY-MM-DD) |
124
- | `weekStart` | date | Start of week to view |
134
+ | `startDate` | date | Start date (YYYY-MM-DD, defaults to today) |
135
+ | `endDate` | date | End date (YYYY-MM-DD, defaults to startDate + 7 days) |
136
+
137
+ **Tool Parameters:**
138
+
139
+ | Parameter | Type | Description |
140
+ |-----------|------|-------------|
141
+ | `date` | date | Specific date (sets both startDate and endDate) |
142
+ | `weekStart` | date | Start of week (endDate computed as +7 days) |
125
143
 
126
144
  **Response:**
127
145
 
@@ -137,7 +155,9 @@ GET /api/v2/chores/schedule
137
155
  "title": "Take out trash",
138
156
  "assignedTo": "member-uuid",
139
157
  "estimatedMinutes": 10,
140
- "completed": false
158
+ "completed": false,
159
+ "completedAt": null,
160
+ "completedBy": null
141
161
  }
142
162
  ]
143
163
  }
@@ -149,15 +169,17 @@ GET /api/v2/chores/schedule
149
169
 
150
170
  ```bash
151
171
  curl -H "X-API-KEY: $MYN_API_KEY" \
152
- "$MYN_API_URL/api/v2/chores/schedule?householdId=HOUSEHOLD_ID&date=2026-03-01"
172
+ "$MYN_API_URL/api/v2/chores/schedule/range?householdId=HOUSEHOLD_ID&startDate=2026-03-01&endDate=2026-03-07"
153
173
  ```
154
174
 
155
175
  ### Complete Chore
156
176
 
157
177
  ```
158
- POST /api/v2/chores/{choreId}/complete
178
+ POST /api/v2/chores/instances/{choreId}/complete
159
179
  ```
160
180
 
181
+ **Uses read-before-write guard** — reads chore instance state hash before completing.
182
+
161
183
  **Body:**
162
184
 
163
185
  | Field | Type | Required | Description |
@@ -168,8 +190,9 @@ POST /api/v2/chores/{choreId}/complete
168
190
  **Response:** `{ choreId, completed, completedAt, nextDueDate? }`
169
191
 
170
192
  ```bash
171
- curl -X POST "$MYN_API_URL/api/v2/chores/CHORE_ID/complete" \
193
+ curl -X POST "$MYN_API_URL/api/v2/chores/instances/CHORE_ID/complete" \
172
194
  -H "X-API-KEY: $MYN_API_KEY" \
195
+ -H "X-MYN-State-Hash: abc123" \
173
196
  -H "Content-Type: application/json" \
174
197
  -d '{"note": "Both bins taken to curb"}'
175
198
  ```
@@ -6,15 +6,16 @@ Grocery and shopping list management scoped to households.
6
6
 
7
7
  `/api/v1/households/{householdId}/grocery-list`
8
8
 
9
+ ## Actions
10
+
11
+ The `myn_lists` tool supports these actions: `get`, `add`, `update`, `toggle`, `delete`, `delete_checked`, `bulk_add`, `convert_to_tasks`.
12
+
9
13
  ## Prerequisites
10
14
 
11
- All list endpoints require a `householdId`. Retrieve it from the current user profile:
15
+ All list endpoints require a `householdId`. The plugin auto-resolves it via:
12
16
 
13
- ```bash
14
- # Get your household ID
15
- curl -H "X-API-KEY: $MYN_API_KEY" \
16
- "$MYN_API_URL/api/v1/customers/me"
17
- # Response includes: households[0].id
17
+ ```
18
+ GET /api/v1/households/current
18
19
  ```
19
20
 
20
21
  ## Endpoints
@@ -31,7 +32,7 @@ Returns the full grocery list for the household.
31
32
 
32
33
  | Field | Type | Description |
33
34
  |-------|------|-------------|
34
- | `householdId` | UUID | Household identifier |
35
+ | `success` | boolean | Operation success |
35
36
  | `items` | object[] | Array of list items |
36
37
  | `items[].id` | UUID | Item identifier |
37
38
  | `items[].name` | string | Item name |
@@ -40,19 +41,22 @@ Returns the full grocery list for the household.
40
41
  | `items[].notes` | string | Additional notes (nullable) |
41
42
  | `items[].checked` | boolean | Whether the item has been picked up |
42
43
  | `items[].addedAt` | datetime | When the item was added |
43
- | `items[].addedBy` | string | Name of the user who added the item |
44
- | `categories` | string[] | All distinct categories in the list |
45
- | `lastModified` | datetime | Last modification timestamp |
44
+ | `items[].addedBy` | number | User ID who added the item |
45
+ | `items[].addedByName` | string | Name of the user who added the item (nullable) |
46
+ | `items[].position` | number | Sort position |
47
+ | `items[].householdId` | UUID | Household ID |
48
+ | `items[].createdAt` | datetime | Creation timestamp |
49
+ | `items[].updatedAt` | datetime | Last update timestamp |
46
50
 
47
51
  ```bash
48
52
  curl -H "X-API-KEY: $MYN_API_KEY" \
49
- "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-446655440003/grocery-list"
53
+ "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list"
50
54
  ```
51
55
 
52
56
  ### Add Item
53
57
 
54
58
  ```
55
- POST /api/v1/households/{householdId}/grocery-list/items
59
+ POST /api/v1/households/{householdId}/grocery-list
56
60
  ```
57
61
 
58
62
  **Body Parameters:**
@@ -64,15 +68,10 @@ POST /api/v1/households/{householdId}/grocery-list/items
64
68
  | `quantity` | string | Optional quantity (e.g., `2 lbs`, `1 gallon`) |
65
69
  | `notes` | string | Optional notes |
66
70
 
67
- **Response Fields:**
68
-
69
- | Field | Type | Description |
70
- |-------|------|-------------|
71
- | `itemId` | UUID | New item identifier |
72
- | `added` | boolean | Whether the item was successfully added |
71
+ **Response:** `{ success, item: { id, name, category?, quantity?, notes?, checked, addedAt, addedByName? } }`
73
72
 
74
73
  ```bash
75
- curl -X POST "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-446655440003/grocery-list/items" \
74
+ curl -X POST "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list" \
76
75
  -H "X-API-KEY: $MYN_API_KEY" \
77
76
  -H "Content-Type: application/json" \
78
77
  -d '{
@@ -83,37 +82,83 @@ curl -X POST "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-44665544000
83
82
  }'
84
83
  ```
85
84
 
86
- ### Toggle Item Checked
85
+ ### Update Item
87
86
 
88
87
  ```
89
- PATCH /api/v1/households/{householdId}/grocery-list/items/{itemId}
88
+ PATCH /api/v1/households/{householdId}/grocery-list/{itemId}
90
89
  ```
91
90
 
91
+ Updates an existing grocery list item. At least one field is required.
92
+
92
93
  **Body Parameters:**
93
94
 
94
95
  | Field | Type | Description |
95
96
  |-------|------|-------------|
96
- | `checked` | boolean | Set checked state (toggles if omitted by some clients) |
97
+ | `name` | string | New item name |
98
+ | `category` | string | New category |
99
+ | `quantity` | string | New quantity |
100
+ | `notes` | string | New notes |
97
101
 
98
- **Response Fields:**
102
+ **Response:** `{ success, item: { id, name, category?, quantity?, notes?, checked } }`
99
103
 
100
- | Field | Type | Description |
101
- |-------|------|-------------|
102
- | `itemId` | UUID | Item identifier |
103
- | `checked` | boolean | New checked state |
104
+ ```bash
105
+ curl -X PATCH "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/ITEM_ID" \
106
+ -H "X-API-KEY: $MYN_API_KEY" \
107
+ -H "Content-Type: application/json" \
108
+ -d '{"quantity": "6", "notes": "Updated quantity"}'
109
+ ```
110
+
111
+ ### Toggle Item Checked
112
+
113
+ ```
114
+ PATCH /api/v1/households/{householdId}/grocery-list/{itemId}/toggle
115
+ ```
116
+
117
+ Toggles the checked state of a grocery list item.
118
+
119
+ **Response:** `{ success, item: { id, name, checked }, checked }`
104
120
 
105
121
  ```bash
106
- # Mark an item as picked up
107
- curl -X PATCH "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-446655440003/grocery-list/items/990e8400-e29b-41d4-a716-446655440004" \
122
+ curl -X PATCH "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/ITEM_ID/toggle" \
108
123
  -H "X-API-KEY: $MYN_API_KEY" \
109
124
  -H "Content-Type: application/json" \
110
- -d '{"checked": true}'
125
+ -d '{}'
126
+ ```
127
+
128
+ ### Delete Item
129
+
130
+ ```
131
+ DELETE /api/v1/households/{householdId}/grocery-list/{itemId}
132
+ ```
133
+
134
+ Deletes a single grocery list item.
135
+
136
+ **Response:** `{ success, deleted }`
137
+
138
+ ```bash
139
+ curl -X DELETE "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/ITEM_ID" \
140
+ -H "X-API-KEY: $MYN_API_KEY"
141
+ ```
142
+
143
+ ### Delete Checked Items
144
+
145
+ ```
146
+ DELETE /api/v1/households/{householdId}/grocery-list/checked
147
+ ```
148
+
149
+ Deletes all checked (completed) items from the grocery list.
150
+
151
+ **Response:** `{ success, deletedCount, undoAvailable }`
152
+
153
+ ```bash
154
+ curl -X DELETE "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/checked" \
155
+ -H "X-API-KEY: $MYN_API_KEY"
111
156
  ```
112
157
 
113
158
  ### Bulk Add Items
114
159
 
115
160
  ```
116
- POST /api/v1/households/{householdId}/grocery-list/items/bulk
161
+ POST /api/v1/households/{householdId}/grocery-list/bulk
117
162
  ```
118
163
 
119
164
  **Body Parameters:**
@@ -125,15 +170,10 @@ POST /api/v1/households/{householdId}/grocery-list/items/bulk
125
170
  | `items[].category` | string | Optional category |
126
171
  | `items[].quantity` | string | Optional quantity |
127
172
 
128
- **Response Fields:**
129
-
130
- | Field | Type | Description |
131
- |-------|------|-------------|
132
- | `addedCount` | number | Number of items added |
133
- | `itemIds` | UUID[] | IDs of the newly created items |
173
+ **Response:** `{ success, items: [{ id, name, category?, quantity?, checked }], count }`
134
174
 
135
175
  ```bash
136
- curl -X POST "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-446655440003/grocery-list/items/bulk" \
176
+ curl -X POST "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/bulk" \
137
177
  -H "X-API-KEY: $MYN_API_KEY" \
138
178
  -H "Content-Type: application/json" \
139
179
  -d '{
@@ -161,16 +201,10 @@ Converts grocery list items into MYN tasks (e.g., for a shopping trip).
161
201
  | `uncheckedOnly` | boolean | Only convert unchecked items (default: true) |
162
202
  | `priority` | string | Priority for created tasks (e.g., `OPPORTUNITY_NOW`) |
163
203
 
164
- **Response Fields:**
165
-
166
- | Field | Type | Description |
167
- |-------|------|-------------|
168
- | `convertedCount` | number | Number of items converted to tasks |
169
- | `taskIds` | UUID[] | IDs of the created tasks |
204
+ **Response:** `{ success, tasks: [{ id, title }], count }`
170
205
 
171
206
  ```bash
172
- # Convert unchecked items to Opportunity Now tasks
173
- curl -X POST "$MYN_API_URL/api/v1/households/880e8400-e29b-41d4-a716-446655440003/grocery-list/convert-to-tasks" \
207
+ curl -X POST "$MYN_API_URL/api/v1/households/HOUSEHOLD_ID/grocery-list/convert-to-tasks" \
174
208
  -H "X-API-KEY: $MYN_API_KEY" \
175
209
  -H "Content-Type: application/json" \
176
210
  -d '{